From mboxrd@z Thu Jan 1 00:00:00 1970 From: Prabhakar Kushwaha Date: Mon, 1 Jul 2013 14:26:23 +0530 Subject: [U-Boot] [PATCH] powerpc/mpc85xx:Disable Debug TLB entry for non-minimal SPL In-Reply-To: <1372436365.8183.67@snotra> References: <1372436365.8183.67@snotra> Message-ID: <51D14437.6010105@freescale.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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