[U-Boot-Users] [RFC/PATCH] 85xx: Initial multicore boot support
Andy Fleming
afleming at gmail.com
Tue Jan 22 21:47:50 CET 2008
On Jan 22, 2008 3:31 AM, Kumar Gala <galak at kernel.crashing.org> wrote:
>
> On Jan 22, 2008, at 2:59 AM, Wolfgang Denk wrote:
>
> > In message <Pine.LNX.
> > 4.64.0801220214120.31981 at blarg.am.freescale.net> you wrote:
> >> I was hoping to get some feed back on this patch that will add
> >> support for
> >> booting the multiprocessor 85xx chips. The boot mechanism is based
> >> on the
> >> forth coming ePAPR spec (based on how device tree, linux
> >> booting-without-of spec).
> >>
> >> The biggest feedback I'm hoping for is related to the command set
> >> and its
> >> name:
> >>
> >> "cpu - CPU boot table manipulation and release\n",
> >> "<num> reset - Reset cpu <num>\n"
> >> "cpu <num> status - Status of cpu <num>\n"
> >> "cpu <num> release <addr> - Release cpu <num> and start at <addr>\n"
> >
> I should have explained further how this works on 85xx/ppc. We end up
> having a table. Each processor has an entry in the table with the
> following fields:
> * boot addr
> * pir (processor id)
> * r3
> * r4
> * r7
>
> when a value other than '1' is written to the 'boot addr' field that
> processor will come out of spin and load up r3, r4, r5, r6, r7 based
> on the ePAPR calling convention (which pretty much says r3, r4, r7 are
> passed in via FW, r5 is 0, and r6 is a magic #)
What are r3,r4,r5,r6,and r7? Rather than calling them out by
register, is there some more generic way we could set up the
arguments?
cpu <num> release [addr] [args]
Then, for PPC, you would just say:
cpu <num> release <addr> <pir> <r3> <r4> <r7>
The generic code could invoke an arch-defined handler which can parse
the "args" part, and take the appropriate action.
Andy
More information about the U-Boot
mailing list