diff --git a/src/system/kernel/arch/arm/arch_int.cpp b/src/system/kernel/arch/arm/arch_int.cpp index 25aad9e0cf..dcc0973564 100644 --- a/src/system/kernel/arch/arm/arch_int.cpp +++ b/src/system/kernel/arch/arm/arch_int.cpp @@ -96,6 +96,11 @@ arch_int_disable_io_interrupt(int irq) /* arch_int_*_interrupts() and friends are in arch_asm.S */ +void +arch_int_assign_to_cpu(int32 irq, int32 cpu) +{ + // intentionally left blank; no SMP support (yet) +} static void print_iframe(const char *event, struct iframe *frame) diff --git a/src/system/kernel/arch/arm/arch_smp.cpp b/src/system/kernel/arch/arm/arch_smp.cpp index e3d318bd2b..5ae1af5d86 100644 --- a/src/system/kernel/arch/arm/arch_smp.cpp +++ b/src/system/kernel/arch/arm/arch_smp.cpp @@ -15,6 +15,7 @@ #include #include #include +#include status_t @@ -31,6 +32,16 @@ arch_smp_per_cpu_init(kernel_args *args, int32 cpu) } +void +arch_smp_send_multicast_ici(CPUSet& cpuSet) +{ +#if KDEBUG + if (are_interrupts_enabled()) + panic("arch_smp_send_multicast_ici: called with interrupts enabled"); +#endif +} + + void arch_smp_send_ici(int32 target_cpu) { diff --git a/src/system/kernel/arch/arm/arch_system_info.cpp b/src/system/kernel/arch/arm/arch_system_info.cpp index 0fd45695bf..49a3c7318b 100644 --- a/src/system/kernel/arch/arm/arch_system_info.cpp +++ b/src/system/kernel/arch/arm/arch_system_info.cpp @@ -24,6 +24,30 @@ arch_get_system_info(system_info *info, size_t size) } +void +arch_fill_topology_node(cpu_topology_node_info* node, int32 cpu) +{ + switch (node->type) { + case B_TOPOLOGY_ROOT: + node->data.root.platform = B_CPU_PPC_64; + break; + + case B_TOPOLOGY_PACKAGE: + //TODO node->data.package.vendor = sCPUVendor; + node->data.package.cache_line_size = CACHE_LINE_SIZE; + break; + + case B_TOPOLOGY_CORE: + //TODO node->data.core.model = sPVR; + //TODO node->data.core.default_frequency = sCPUClockFrequency; + break; + + default: + break; + } +} + + status_t arch_system_info_init(struct kernel_args *args) {