[U-Boot] [PATCH v6] mx6: add support of multi-processor command

York Sun yorksun at freescale.com
Wed Sep 3 20:36:53 CEST 2014


On 09/03/2014 11:26 AM, Gabriel Huau wrote:
> Hi York,
> 
> On 09/03/2014 11:00 AM, York Sun wrote:
>> On 07/28/2014 08:15 AM, Stefano Babic wrote:
>>> Hi Gabriel,
>>>
>>> On 26/07/2014 20:35, Gabriel Huau wrote:
>>>> This allows u-boot to load different OS or Bare Metal application on
>>>> different cores of the i.MX6 SoC.
>>>> For example: running Android on cpu0 and a RT OS like QNX/FreeRTOS on cpu1.
>>>>
>>>> Signed-off-by: Gabriel Huau <contact at huau-gabriel.fr>
>>>> ---
>>>> Changes for v2:
>>>> 	- Add a commit log message to explain the purpose of this patch
>>>> Changes for v3:
>>>> 	- Remove unnecessary check for unsigned values when they are negative
>>>> Changes for v4:
>>>> 	- Add CONFIG_MP to the common mx6 configuration
>>>> 	- Get the number of CPUs dynamically instead of using a macro
>>>> Changes for v5:
>>>> 	- Rebase on the last update of the tree (conflicts solved)
>>>> Changes for v6:
>>>> 	- Remove useless switch case
>>>> 	- Update board_f to not depend on mp.h unnecessary
>>>> 	- Fix build warnings
>>>> 	- Update commit message
>>>>
>> <snip>
>>
>>>> --- a/common/board_f.c
>>>> +++ b/common/board_f.c
>>>> @@ -34,6 +34,9 @@
>>>>   #ifdef CONFIG_MPC5xxx
>>>>   #include <mpc5xxx.h>
>>>>   #endif
>>>> +#if (defined(CONFIG_MPC86xx) || defined(CONFIG_E500))
>>>> +#include <asm/mp.h>
>>>> +#endif
>>>>   
>>>>   #include <os.h>
>>>>   #include <post.h>
>>>> @@ -43,9 +46,6 @@
>>>>   #include <watchdog.h>
>>>>   #include <asm/errno.h>
>>>>   #include <asm/io.h>
>>>> -#ifdef CONFIG_MP
>>>> -#include <asm/mp.h>
>>>> -#endif
>>>>   #include <asm/sections.h>
>>>>   #ifdef CONFIG_X86
>>>>   #include <asm/init_helpers.h>
>>>> @@ -381,7 +381,7 @@ static int setup_dest_addr(void)
>>>>   	gd->ram_top = board_get_usable_ram_top(gd->mon_len);
>>>>   	gd->relocaddr = gd->ram_top;
>>>>   	debug("Ram top: %08lX\n", (ulong)gd->ram_top);
>>>> -#if defined(CONFIG_MP) && (defined(CONFIG_MPC86xx) || defined(CONFIG_E500))
>>>> +#if (defined(CONFIG_MPC86xx) || defined(CONFIG_E500))
>> I didn't notice this patch until it got merged. Why dropping CONFIG_MP here?
>> This change breaks these boards
>>
>>   MPC8536DS MPC8536DS_36BIT MPC8536DS_SDCARD MPC8536DS_SPIFLASH qemu-ppce500
>>
>> York
> 
> Sorry, I didn't see the break for these boards.
> 'asm/mp.h' is used only for the powerpc board and using CONFIG_MP force 
> the other architecture (or board) to create an empty header.
> As this header was here to use only specific features (not generic), I 
> removed it and put the include guards only for the boards needed.
> 
> Can't we add these boards to the board_f.c?
> 

I don't mind to change the guard for asm/mp.h. But you shouldn't remove the
guard for the function call. Not all powerpc SoCs support SMP. You could use

+#if defined(CONFIG_MP) && (defined(CONFIG_MPC86xx) || defined(CONFIG_E500))
+#include <asm/mp.h>
+#endif

York



More information about the U-Boot mailing list