The GIC (v2 at least) has a bit in the TYPER register to indicate whether the GIC supports the Security Extensions or not. This bit is not the same as the CPU one.
Currently we are not checking for either before trying to write to the special registers.
This can lead to problems on hardware or simulators that do not provide the security extensions.
Add the missing checks. Their interactions with the CPU flag is not entirely clear to me but using a macro will make it easier to quickly adjust the condition once the CPU bits are sorted as well.
Details
Details
Booted an arm-std6 and an arm64 kernel on gem5 which no longer crashed.
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
I'm a little unsure as to why we are writing to these registers. From the non-secure state the IGROUP register is write-ignored. Writing these was added in rS252370 in a patch submitted by @br. I'm guessing it was for the Samsung Exynos 5250 as the dts for this was added in rS252371, but maybe Ruslan knows.
Comment Actions
Just leaving a comment after an office discussion. My understanding is that the calls were/are needed to undo some boot loader settings to make things work correctly.