Date: Sun, 20 Feb 2011 13:43:51 -0500 From: Andrew Duane <aduane@juniper.net> To: Juli Mallett <jmallett@freebsd.org>, Warner Losh <imp@bsdimp.com> Cc: "freebsd-mips@freebsd.org" <freebsd-mips@freebsd.org> Subject: RE: Bootstraps for Mips/OCTEON platforms Message-ID: <AC6674AB7BC78549BB231821ABF7A9AE970EA0646A@EMBX01-WF.jnpr.net> In-Reply-To: <AANLkTimMZY=Lkum6Wf5vNftw9ycfDHQBDbi0pNdamHTW@mail.gmail.com> References: <AC6674AB7BC78549BB231821ABF7A9AE9409045F43@EMBX01-WF.jnpr.net> <4D5EF8CA.5010008@bsdimp.com>, <AANLkTimMZY=Lkum6Wf5vNftw9ycfDHQBDbi0pNdamHTW@mail.gmail.com>
index | next in thread | previous in thread | raw e-mail
Oh well, looks like I have (another) complicated shim layer to write..... We use standard ELF, and have both U-Boot and a simple embedded bootstrap (J-Boot) on different platforms. Neither one uses the Cavium HW descriptor, as the bootstraps support other MIPS-family chips besides Cavium. Also, sadly, they use a different calling convention with slightly different things in registers A0-A3. U-Boot had already gone it's own way with a separate entry point, and once firmware is flashed into released platforms, it's effectively impossible to change the interface like that. I'll put on my thinking hat and try to decide what to do about this. I'm guessing a new shim entry point that figures out our U-Boot versus J-Boot and tries to construct the right things for platform_start(). I'd like to say this is something I haven't had to do before, but....... -- Andrew Duane Juniper Networks 978-589-0551 10 Technology Park Dr aduane@juniper.net Westford, MA 01886-3418 ________________________________________ From: owner-freebsd-mips@freebsd.org [owner-freebsd-mips@freebsd.org] On Behalf Of Juli Mallett [jmallett@freebsd.org] Sent: Friday, February 18, 2011 6:02 PM To: Warner Losh Cc: freebsd-mips@freebsd.org Subject: Re: Bootstraps for Mips/OCTEON platforms On Fri, Feb 18, 2011 at 14:55, Warner Losh <imp@bsdimp.com> wrote: > On 02/18/2011 12:08, Andrew Duane wrote: >> >> I'm starting at ground zero (almost) with an Octeon based platform related >> to the OCTEON1 config in the -CURRENT. The board uses an existing MIPS >> bootstrap and loader, but that does not seem to be compatible with what the >> kernel expects. What bootstrap is used normally? u-boot? > > u-boot is what we support. There's no other support in the codebase right > now. uboot gives us: > > in a3 is passed in the cavium hardware descriptor. All other registers are > ignored on boot. We only support version 6 and newer of the boot > descriptor. You can see the details of the structure in > sys/mips/cavium/octeon_machdep.c starting with platform_start(). It's worth noting that we don't use the Simple Executive ELF Application calling convention but the Octeon Linux one, so 'bootoctlinux' should be used instead of 'bootoctelf'. Juli. _______________________________________________ freebsd-mips@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-mips To unsubscribe, send any mail to "freebsd-mips-unsubscribe@freebsd.org"help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AC6674AB7BC78549BB231821ABF7A9AE970EA0646A>
