We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi All,
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.
Regards,
Romit
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.