On Tue, May 04, 2021 at 09:30:05AM +0100, Will Deacon wrote: > On Mon, May 03, 2021 at 10:03:59PM +0000, Vikram Sethi wrote: > > Will/Catalin, perhaps you could explain your thought process on why you chose > > Normal NC for ioremap_wc on the armv8 linux port instead of Device GRE or other > > Device Gxx. > > I think a combination of: compatibility with 32-bit Arm, the need to > support unaligned accesses and the potential for higher performance. IIRC the _wc suffix also matches the pgprot_writecombine() used by some drivers to map a video framebuffer into user space. Accesses to the framebuffer are not guaranteed to be aligned (memset/memcpy don't ensure alignment on arm64 and the user doesn't have a memset_io or memcpy_toio). > Furthermore, ioremap() already gives you a Device memory type, and we're > tight on MAIR space. We have MT_DEVICE_GRE currently reserved though no in-kernel user, we might as well remove it. -- Catalin