On 11.01.2019, at 01:31, Andre Przywara <andre.przyw...@arm.com> wrote: > > The normal MMIO accessor macros (readX/writeX) guarantee a strong ordering, > even with normal memory accesses [1]. > For some MMIO operations (framebuffers being a prominent example) this is > not needed, and the rather costly barrier inserted on weakly ordered > systems like ARM costs some performance. > To mitigate this issue, Linux introduced readX_relaxed and > writeX_relaxed primitives, which only guarantee ordering between each > other, so are typically faster due to the missing barrier. > > We probably do not care so much about performance in U-Boot, but want to > have those primitives for two other reasons: > - Being able to use the _relaxed macros simplifies porting drivers from > Linux. > - The missing barrier typically allows to generate smaller code, which can > relieve some chronically tight SPL builds. > > Add those macros definitions by using the __raw versions of the > accessors, which matches an earlier (and less complicated) version of > the Linux implementation. > > [1] https://lwn.net/Articles/698014/
No Signed-off-by? Reviewed-by: Philipp Tomsich <philipp.toms...@theobroma-systems.com> [On my experimental RK3399 after modifying a few drivers:] Tested-by: Philipp Tomsich <philipp.toms...@theobroma-systems.com> _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot