[U-Boot-Users] [RFC/PATCH] 85xx: Initial multicore boot support

Kumar Gala galak at kernel.crashing.org
Tue Jan 22 22:55:54 CET 2008


On Jan 22, 2008, at 2:47 PM, Andy Fleming wrote:

> 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.

That's an idea.  I'd remove <pir> from the list and probably still  
have it explicitly set since not all PPCs might want to do that (right  
now its more of a FSL thing).  Or do something like:

cpu <num> release <addr> <pir or '-'> <r3> <r4> <r7>

- k

- k




More information about the U-Boot mailing list