On Mon, Jan 07, 2019 at 02:43:05PM +0530, Lokesh Vutla wrote: > Hi All, > I am trying to enable CONFIG_USE_ARCH_MEMSET/MEMCPY on arm64 platforms > and > realized that there is no arm64 specific memcpy available in u-boot. So I > tried porting arm64 specific memcpy from kernel[1]. Memcpy stopped working > after that and observed that if destination address is unaligned then system > hangs. > > After doing a bit more research, understood that unaligned access to device > or strongly ordered memories will fail. And the memory system (even normal > RAM) behaves like strongly ordered memory when the MMU is disabled[2]. In > u-boot MMU is enabled very late after relocation and SPL doesn't enable MMU > at all. > > Before I proceed any further wanted to hear from others if anyone have > already tried and have any working solution. If not should we update the > kernel memcpy to use unaligned destination address and use it in u-boot? > > [1] > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/lib/memcpy.S > [2] > https://community.arm.com/processors/f/discussions/7557/when-and-where-will-the-ldp-instruction-trigger-an-exception
I suspect we should, yes. Adding in some custodians of other arm64 platforms for comment. -- Tom
signature.asc
Description: PGP signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot