From: Tom Rini <trini@konsulko.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [EXT] Re: Cavium/Marvell Octeon Support
Date: Wed, 6 Nov 2019 19:21:13 -0500 [thread overview]
Message-ID: <20191107002113.GR4181@bill-the-cat> (raw)
In-Reply-To: <8349720.9jAfi1TMHv@flash>
On Wed, Nov 06, 2019 at 10:18:45PM +0000, Aaron Williams wrote:
> Hi Wolfgang,
>
> On Wednesday, November 6, 2019 7:06:17 AM PST Wolfgang Denk wrote:
> > Dear Aaron,
> >
> > In message
> <BYAPR18MB24402A81E226896D208669F5B17E0@BYAPR18MB2440.namprd18.prod.outlook.com>
> you wrote:
> > > > Definitely not. You could not implement any of this without heavily
> > > > relyin on and deriving from internal interfaces of U-Boot which are
> > > > not exported for non-GPL use.
> > >
> > > See
> > > https://urldefense.proofpoint.com/v2/url?u=https-3A__www.gnu.org_licenses
> > > _old-2Dlicenses_gpl-2D2.0-2Dfaq.en.html-23GPLInProp-3D&d=DwIDaQ&c=nKjWec2b
> > > 6R0mOyPaz7xtfQ&r=3yfMNumMHGMnOfmVc0dViBi3fJfF8ZXRL_aRWSIGwm4&m=a19tqjpYreP
> > > S1AEd1tHmUya1hcqvHmvs57fTB9c5I50&s=rp_kzh8HU_FV56RrXpf-0DCuegF0rrporRqWwdT
> > > MiR0&e= rietarySystem
> > >
> > > This behaves exactly in the manner that is permitted by the GPL.
> > > They are completely separate programs.
> >
> > Are they?
> >
> > You wrote:
> >
> > "There is no linking. Only a call table descriptor is published in a
> > named block of memory."
> >
> > I can only interpret from that that there is a call table, where your
> > applications call into interfaces that have not been exported for
> > non-GPL use. This is not what I call "completely separate".
> >
> >
> > Best regards,
> >
> > Wolfgang Denk
>
> Calling directly into U-Boot would be bad. We don't do that. It wouldn't work
> anyway on our 32-bit bootloader due to the required TLB mapping.
>
> There is no call table. There is a single XKPhys address that points to some
> assembly code that saves the state of the calling application and sets up the
> memory mapping and stack for U-Boot (we map it to 0xFFFFFFFFC0000000) then
> look at an opcode that's passed and parameters. From there it performs one of
> several functions based on the opcode. On the way out the reverse is done, the
> state is restored and the TLB restored before returning to the outside
> application. The calling application has its own virtual memory map, so that
> has to be saved and restored on entry by the assembly code as well.
>
> Since U-Boot uses a TLB for mapping, it's just not possible for an outside
> application to call into U-Boot using a function table, so everything must go
> through the one assembly function. The old U-Boot code was written before EFI
> support was added. It looks like I'll be removing it anyway, though. We have
> never exported any U-Boot functions save for the assembly code and the API
> functionality. The API functionality was not usable by our applications since
> our applications were typically 64-bit whereas our old U-Boot was 32-bit
> running in mapped memory (0xFFFFFFFFC0000000/0xC0000000) and physically
> located at the top of physical memory.
Alright, so I think here's the important thing to look at moving
forward. In mainline U-Boot, the options for communication between
closed source components and U-Boot itself (where GPLv2 is the minimum
license) are either the defined ABI or making use of the EFI ABI. We do
not want to add or support a 3rd method. Thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20191106/7b136b09/attachment.sig>
next prev parent reply other threads:[~2019-11-07 0:21 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-23 3:50 [U-Boot] Cavium/Marvell Octeon Support Aaron Williams
2019-10-24 6:44 ` Chris Packham
2019-10-25 15:13 ` Daniel Schwierzeck
2019-10-26 22:15 ` Tom Rini
2019-10-27 3:08 ` [U-Boot] [EXT] " Aaron Williams
2019-10-27 2:34 ` Aaron Williams
2019-10-29 13:12 ` Wolfgang Denk
2019-10-30 16:20 ` Daniel Schwierzeck
2019-10-30 17:21 ` Wolfgang Denk
2019-10-30 21:23 ` Aaron Williams
2019-10-31 10:36 ` Wolfgang Denk
2019-10-31 17:59 ` Aaron Williams
2019-11-04 15:44 ` Wolfgang Denk
2019-11-04 16:23 ` Tom Rini
2019-11-05 2:08 ` Aaron Williams
2019-11-05 8:37 ` Wolfgang Denk
2019-11-05 10:22 ` Aaron Williams
2019-11-05 11:36 ` Wolfgang Denk
2019-11-05 23:09 ` Aaron Williams
2019-11-06 15:06 ` Wolfgang Denk
2019-11-06 22:18 ` Aaron Williams
2019-11-07 0:21 ` Tom Rini [this message]
2019-11-05 14:15 ` Tom Rini
2019-11-05 1:57 ` Aaron Williams
2019-11-05 8:33 ` Wolfgang Denk
2019-11-05 14:16 ` Tom Rini
2019-10-30 22:05 ` [U-Boot] " Tom Rini
2019-10-30 23:36 ` [U-Boot] [EXT] " Aaron Williams
2019-10-31 10:40 ` Wolfgang Denk
2019-10-31 18:01 ` Aaron Williams
2019-11-04 17:22 ` Tom Rini
2019-11-05 2:13 ` Aaron Williams
2019-11-05 14:09 ` Tom Rini
2019-10-31 13:26 ` Tom Rini
2019-10-31 18:04 ` Aaron Williams
-- strict thread matches above, loose matches on Subject: below --
2019-11-06 0:03 Aaron Williams
2019-11-07 0:34 ` Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191107002113.GR4181@bill-the-cat \
--to=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox