nova: add x2apic support

Fixes #5413
This commit is contained in:
Alexander Boettcher 2025-01-07 11:12:30 +01:00 committed by Christian Helmuth
parent a0366120ef
commit 12f87260c0
3 changed files with 8 additions and 9 deletions

View File

@ -1 +1 @@
f6ac7ac73d93a11511d407f3130cc31f0c415ea4
a807a373a599ea40bebfc36790cf695d5cf89812

View File

@ -4,7 +4,7 @@ DOWNLOADS := nova.git
# r10 branch
URL(nova) := https://github.com/alex-ab/NOVA.git
REV(nova) := fc9ad04ecec3911302451fcbf6cd87063be66ad0
REV(nova) := 62420ca0cc6e648946bab553045e9334a408b982
DIR(nova) := src/kernel/nova
PATCHES := $(sort $(wildcard $(REP_DIR)/patches/*.patch))

View File

@ -990,13 +990,6 @@ const char * Pager_object::client_pd() const
Pager_entrypoint::Pager_entrypoint(Rpc_cap_factory &)
{
/* sanity check for pager threads */
if (kernel_hip().cpu_max() > PAGER_CPUS) {
error("kernel supports more CPUs (", kernel_hip().cpu_max(), ") "
"than Genode (", (unsigned)PAGER_CPUS, ")");
nova_die();
}
/* detect enabled CPUs and create per CPU a pager thread */
platform_specific().for_each_location([&](Affinity::Location &location) {
unsigned const pager_index = platform_specific().pager_index(location);
@ -1005,6 +998,12 @@ Pager_entrypoint::Pager_entrypoint(Rpc_cap_factory &)
if (!kernel_hip().is_cpu_enabled(kernel_cpu_id))
return;
/* sanity check for pager threads */
if (pager_index >= PAGER_CPUS) {
error("too many CPUs for pager");
return;
}
pager_threads[pager_index].construct(location);
});
}