Noted. Maybe we can pull in part of barrier.h into io.h. It is easier but I am not sure if it is the cleanest way to go.
York On 06/19/2014 11:01 AM, Jon Loeliger wrote: > That might be a fine starting point. But I might point out > that U-Boot has some notions down this line already too. > For example, do a 'git grep wmb' in the U-Boot repo. > Also ponder arch/arm/include/asm/io.h too. > > HTH, > jdl > > On Thu, Jun 19, 2014 at 12:47 PM, York Sun <york...@freescale.com> wrote: >> On 06/18/2014 07:57 AM, Jon Loeliger wrote: >>> On Tue, Jun 17, 2014 at 5:07 PM, York Sun <york...@freescale.com> wrote: >>>> Previously the driver was only tested on Power SoCs. Minor fix is needed >>>> for ARM SoCs. >>>> >>>> Signed-off-by: York Sun <york...@freescale.com> >>> >>> >>> Hi York! >>> >>> >>>> --- a/drivers/ddr/fsl/fsl_ddr_gen4.c >>>> +++ b/drivers/ddr/fsl/fsl_ddr_gen4.c >>> >>>> @@ -183,12 +184,20 @@ step2: >>>> * we choose the max, that is 500 us for all of case. >>>> */ >>>> udelay(500); >>>> +#ifdef CONFIG_PPC >>>> asm volatile("sync;isync"); >>>> +#else >>>> + asm volatile("dsb sy;isb"); >>>> +#endif >>>> >>>> /* Let the controller go */ >>>> temp_sdram_cfg = ddr_in32(&ddr->sdram_cfg) & ~SDRAM_CFG_BI; >>>> ddr_out32(&ddr->sdram_cfg, temp_sdram_cfg | SDRAM_CFG_MEM_EN); >>>> +#ifdef CONFIG_PPC >>>> asm volatile("sync;isync"); >>>> +#else >>>> + asm volatile("dsb sy;isb"); >>>> +#endif >>>> >>>> total_gb_size_per_controller = 0; >>>> for (i = 0; i < CONFIG_CHIP_SELECTS_PER_CTRL; i++) { >>> >>> This is a great example where we should try to introduce better abstractions >>> in much the same way that Linux has. Specifically, we (U-Boot) collective >>> might work toward some common lower-level abstractions such as a >>> memory_barrier() (and variants), and let those generic names get mapped >>> into architecture-specific implementations via a linked binding. Then this >>> code would not need to change, nor would #ifdefs be needed. >>> >> >> Jon, >> >> Are you suggesting to pick arch/<arch>/include/asm/barrier.h from Linux, or >> part >> of it? >> >> York >> _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot