Bootstraps for Mips/OCTEON platforms
    Andrew Duane 
    aduane at juniper.net
       
    Sun Feb 20 18:48:46 UTC 2011
    
    
  
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 at juniper.net      Westford, MA  01886-3418
________________________________________
From: owner-freebsd-mips at freebsd.org [owner-freebsd-mips at freebsd.org] On Behalf Of Juli Mallett [jmallett at freebsd.org]
Sent: Friday, February 18, 2011 6:02 PM
To: Warner Losh
Cc: freebsd-mips at freebsd.org
Subject: Re: Bootstraps for Mips/OCTEON platforms
On Fri, Feb 18, 2011 at 14:55, Warner Losh <imp at 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 at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mips
To unsubscribe, send any mail to "freebsd-mips-unsubscribe at freebsd.org"
    
    
More information about the freebsd-mips
mailing list