The diff is handling hyp-mode and making all the necessary operations in order to be able to run bhyve-arm (which will be added at the next diff)
Details
- Reviewers
andrew - Group Reviewers
ARM - Commits
- rS315712: Add the early hypervisor code needed on 32-bit ARMv7. This will be used
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
sys/arm/arm/hypervisor-stub.S | ||
---|---|---|
1 ↗ | (On Diff #26389) | You should add a license. |
8 ↗ | (On Diff #26389) | You should add __FBSDID("$FreeBSD$"); here, and wrap the code with #if __ARM_ARCH >= 7 |
17–20 ↗ | (On Diff #26389) | Can you add these (and other registers below) to sys/arm/include/sysreg.h then use the macros here. |
24 ↗ | (On Diff #26389) | You should add a macro to sys/arm/include/armreg.h for this. |
sys/arm/arm/locore-v6.S | ||
73–75 | I think we should be passing this to initarm via the struct arm_boot_params *. Although I note we are running low on free registers. | |
sys/conf/files.arm | ||
70 | You can make this optional on armv6, we don't need to build it on anything earlier than that. |
I've applied all the recomandations from Andrew, besides the "struct arm_boot_params *" one.
sys/arm/arm/hypervisor-stub.S | ||
---|---|---|
48–51 ↗ | (On Diff #26411) | Do we need these comments now? It should be obvious what register each instruction is updating. |
55 ↗ | (On Diff #26411) | Can you change this comment to /* ... */ |
57 ↗ | (On Diff #26411) | Maybe a comment saying there is an implicit instruction barrier in the eret in the caller. |
58 ↗ | (On Diff #26411) | This one can be RET |
Can you check the diff you uploaded didn't replace tabs with spaces. It's not applying to my svn checkout.