mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen/arm: gic: Add GIC SGI boot/self tests in Xen
Boot self-tests (also referred to as boot-time tests or power-on self-tests) are intended to check that Xen has configured the hardware correctly before bringing up any domains. Introduce tests to confirm that, using a dedicated SGI (GIC_SGI_TEST): 1. A cpu can send the SGI to itself 2. A cpu can send the SGI to another specific CPU (CPU0) 3. A cpu can send the SGI to all the other CPUs Each CPU counts the test SGIs it takes. A sender samples those counters before sending and then waits for the count of every CPU it targeted to change, which is how it tells that the SGI was really delivered. The counters are never reset, so comparing against a sample rather than an absolute value keeps concurrent senders from disturbing each other. The snapshot is allocated rather than kept on the stack, as NR_CPUS can be large enough for such an array to overflow it. A test reports a failure by panic(), so Xen never continues on a platform where SGI delivery is broken. When the tests pass, Xen carries on booting normally. Also introduce a config CONFIG_BOOT_SELFTEST which enables these tests. It depends on DEBUG and is off unless explicitly enabled. Also introduce a boolean command line parameter "gic-test", so that a build with CONFIG_BOOT_SELFTEST enabled can be shipped but the tests selected at boot. It is documented in docs/misc/xen-command-line.pandoc. In order to keep all the boot self-tests together in the binary, a separate section "initcallboottest" is introduced. Tests are registered using __initcallboottest() and run once on every CPU by do_init_boottests(), bracketed by begin/end messages. They run before any domain is created on the primary core, and before the idle loop is entered on a secondary core. Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com> Signed-off-by: Michal Orzel <michal.orzel@amd.com> Reviewed-by: Julien Grall <julien@xen.org>
This commit is contained in:
1 parent
3c15013258
commit
24bd190cd9
13 files changed
+271
No files matched your search
@@ -1282,6 +1282,16 @@ available on Intel Panther Lake and Diamond Rapids CPUs, and AMD Zen6 CPUs.
|
||||
FRED is fully supported on AMD hardware. On Intel hardware it is still tech
|
||||
preview, and in particular not security supported.
|
||||
|
||||
### gic-test (arm)
|
||||
> `= <boolean>`
|
||||
|
||||
> Default: `false`
|
||||
|
||||
Only available when `CONFIG_BOOT_SELFTEST` is enabled.
|
||||
|
||||
Run the GIC SGI boot self-tests while each CPU is brought up. Xen panics if
|
||||
an SGI is not delivered; otherwise it carries on booting normally.
|
||||
|
||||
### gnttab
|
||||
> `= List of [ max-ver:<integer>, transitive=<bool>, transfer=<bool> ]`
|
||||
|
||||
|
||||