[U-Boot] [PATCH] powerpc/mpc85xx:Disable Debug TLB entry for non-minimal SPL

Prabhakar Kushwaha prabhakar at freescale.com
Mon Jul 1 10:56:23 CEST 2013


On 06/28/2013 09:49 PM, Scott Wood wrote:
> On 06/28/2013 04:05:43 AM, Prabhakar Kushwaha wrote:
>> On 06/27/2013 12:36 AM, Scott Wood wrote:
>>> On 06/25/2013 11:09:04 PM, Prabhakar Kushwaha wrote:
>>>> then it should be like this. slightly complex.
>>>> #if defined(CONFIG_SYS_PPC_E500_DEBUG_TLB) && 
>>>> !(defined(CONFIG_NAND_SPL) || \
>>>>     (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_INIT_MINIMAL)))
>>>>
>>>> or
>>>> #if defined(CONFIG_SYS_PPC_E500_DEBUG_TLB) && (CONFIG_SYS_RAMBOOT) 
>>>> || \
>>>>     (defined(CONFIG_SPL_BUILD) && !defined(CONFIG_SPL_INIT_MINIMAL)))
>>>
>>> The former:
>>>
>>> http://lists.denx.de/pipermail/u-boot/2013-June/157201.html
>>>
>> The defines mentioned at this link and earlier written by me will not 
>> work as they are not taking care of SD boot and NOR boot scenario.
>
> How so?
>
>> Below define will take care of all possible combination
>>  - NOR , SD, SPI boot
>>  - NAND_SPL
>>  - SPL with SPL_INIT_MINIMAL
>>  - SPL without SPL_INIT_MINIMAL
>>
>> #if defined(CONFIG_SYS_PPC_E500_DEBUG_TLB) && 
>> !defined(CONFIG_NAND_SPL) && \
>>     (!defined(CONFIG_SPL_BUILD) || !defined(CONFIG_SPL_INIT_MINIMAL))
>>
>> Took lot of time to figure out :)
>
> That's equivalent to what I suggested in the above link.  You just 
> replaced !(x && y) with (!x || !y).
>
> Or relative to your original suggestion above, you replaced !(x || (y 
> && z)) with !x && (!y || !z).
>
> They're all logically equivalent[1].  The question is just which one 
> is most readable/intuitiv


We have below mentioned issues with defines :-

A)  Earlier suggested by me
#if defined(CONFIG_SYS_PPC_E500_DEBUG_TLB) && !(defined(CONFIG_NAND_SPL) 
|| \
     (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_INIT_MINIMAL)))

This will cause compile failure in SPL build.
in SPL build, CONFIG_NAND_SPL is not defined hence "1" making 
disable_tlb() present. As SPL + SPL_INIT_MINIMAL does not have TLB 
related functions means compilation error.

B)  Define suggested at this link has 
"http://lists.denx.de/pipermail/u-boot/2013-June/157201.html "
#if defined(CONFIG_SYS_PPC_E500_DEBUG_TLB) && \
     !(defined(CONFIG_SPL_INIT_MINIMAL) && defined(CONFIG_SPL_BUILD)) && \
     !defined(CONFIG_NAND_SPL)

here, during SD & NOR boot,  CONFIG_SPL_BUILD is not defined. hece 
complete define = 0.  this make disable_tlb not compile which is wrong.


Only below define solve all the use cases.
#if defined(CONFIG_SYS_PPC_E500_DEBUG_TLB) && !defined(CONFIG_NAND_SPL) 
&& \
     (!defined(CONFIG_SPL_BUILD) || !defined(CONFIG_SPL_INIT_MINIMAL))

Please suggest.

Regards,
Prabhakar







More information about the U-Boot mailing list