Add GIC and SMP examples to the Xilinx Zynq-A9 - #207
Conversation
|
@thejpster the PR depends #205 . |
thejpster
left a comment
There was a problem hiding this comment.
I think you need a toolchain file to get the rustup target installed?
|
Did you mean, I don't need a toolchain inside the examples? I see that is how the other examples are written. The work with the root toolchain file. Let me remove the toolchain file and re-run the local tests once. |
|
Done, removed the example specific toolchain file. The PR depends on 205 that is the CI failures, as I built it ontop of 205 and things work there. |
|
I think your SMP test failed because both cores printed simultaneously. To help the tests be more deterministic it's probably best to have the cores only run one at a time
|
|
And feel free to rebase on #205 if you require it |
e446283 to
24c04e6
Compare
|
I have rebased to #205 all checks pass. @thejpster please have a look. |
|
LGTM but someone else needs to merge #205 first |
Extending the xilinx-zynq-a9 example to demonstrate the SMP ability. The enable SMP we develop the GIC, the GIC implementation is derived from arm_gic::v2 which is a superset of v1 & v2 together as defined here, https://developer.arm.com/documentation/198123/0302/What-is-a-Generic-Interrupt-Controller- The SMP example boots the second core and checks atomics and a cross-core critical section. Each core enables its own MMU. Signed-off-by: Sriram Raghunathan <sriram@hcoop.net>
…_atomics. Signed-off-by: Sriram Raghunathan <sriram@hcoop.net>
…e root toolchain file. Signed-off-by: Sriram Raghunathan <sriram@hcoop.net>
24c04e6 to
c2281dd
Compare
xlinx-zynq-a9 example to demonstrate the SMP ability. The enable SMP we develop the GIC, the GIC implementation is derived from arm_gic::v2 which is a superset of v1 & v2 together as defined here, https://developer.arm.com/documentation/198123/0302/What-is-a-Generic-Interrupt-Controller-
memory-mapped GIC. PERIPHBASE is hardcoded to 0xF8F0_0000 (fixed for
this SoC) rather than read from CBAR, because
issues the Cortex-R52 CBAR encoding, which is undefined on the A9.
Security Extensions) only enables Group 0 on the CPU
interface, so it also enables Group 0 in the Distributor and uses that
group for configure/ack/EOI.