Skip site navigation (1)Skip section navigation (2)
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>