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>
next in thread | previous in thread | raw e-mail | index | archive | help
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, sad= ly, 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 en= try point, and once firmware is flashed into released platforms, it's effec= tively 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 gu= essing 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 Be= half 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 relat= ed >> 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 righ= t > now. uboot gives us: > > in a3 is passed in the cavium hardware descriptor. All other registers a= re > 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"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AC6674AB7BC78549BB231821ABF7A9AE970EA0646A>