Currently, I'm working on linux kernel bootup task on "Arm-A78" CPU.
Linux kernel version : linux-kernel5.10.39.
Uboot version : U-Boot 2021.10-rc2
Currently, Uboot is execute successfully and it's load kernel and Device tree on RAM which is configured by uboot and now kernel start it's execution from the RAM.
Problem : When CPU execute "DC ZVA" instruction from the "__pi_memset" function which is in "__primary_switched" function which is part of head.S file of the kernel, It's simply gave an alignment fault.
From ARMv8 reference manual observed that this is because of "Device Type memory".
Question : Is there any configurations in kernel as well as in uboot which we can use to change memory type (Device memory to Normal memory), Or is there any solution for that ?
Here, Except MAIR_EL1 register in kernel which is already set for normal memory, But There is no effect on memory. ( Observed this scenario from PAR_EL1 system register, Which has give physical output address as well as resultant memory attribute.)
Please help me the same.
Is HCR_EL2.TDZ == 0 ?
Thanks for your reply,
Yeah HCR_EL2.TDZ bit is set to zero. ( HCR_EL2 = 0x0000 0300 8000 0000 )
Also here SCTLR_EL1.DZE bit is set to one. ( SCTLR_EL1 - 0x0000 0000 34F4 D91D )
So, Here there is not trap occurs due to this instruction.