PROTOCOL: Get rid of unreliable gic_iface_no field on AArch64

This commit is contained in:
Kacper Słomiński 2024-07-12 04:58:30 +02:00 committed by mintsuki
parent b56acdb07d
commit b27e1bcb58
4 changed files with 3 additions and 7 deletions

View File

@ -708,7 +708,7 @@ typedef void (*limine_goto_address)(struct limine_smp_info *);
struct limine_smp_info {
uint32_t processor_id;
uint32_t gic_iface_no;
uint32_t reserved1;
uint64_t mpidr;
uint64_t reserved;
limine_goto_address goto_address;
@ -716,8 +716,7 @@ struct limine_smp_info {
};
```
* `processor_id` - ACPI Processor UID as specified by the MADT
* `gic_iface_no` - GIC CPU Interface number of the processor as specified by the MADT (possibly always 0)
* `processor_id` - ACPI Processor UID as specified by the MADT (always 0 on non-ACPI systems)
* `mpidr` - MPIDR of the processor as specified by the MADT or device tree
* `goto_address` - An atomic write to this field causes the parked CPU to
jump to the written address, on a 64KiB (or Stack Size Request size) stack. A pointer to the

View File

@ -483,7 +483,6 @@ static struct limine_smp_info *try_acpi_smp(size_t *cpu_count,
struct limine_smp_info *info_struct = &ret[*cpu_count];
info_struct->processor_id = gicc->acpi_uid;
info_struct->gic_iface_no = gicc->iface_no;
info_struct->mpidr = gicc->mpidr;
// Do not try to restart the BSP

View File

@ -334,7 +334,7 @@ struct limine_smp_response {
struct limine_smp_info {
uint32_t processor_id;
uint32_t gic_iface_no;
uint32_t reserved1;
uint64_t mpidr;
uint64_t reserved;
LIMINE_PTR(limine_goto_address) goto_address;

View File

@ -206,7 +206,6 @@ void ap_entry(struct limine_smp_info *info) {
#if defined (__x86_64__)
e9_printf("My LAPIC ID: %x", info->lapic_id);
#elif defined (__aarch64__)
e9_printf("My GIC CPU Interface no.: %x", info->gic_iface_no);
e9_printf("My MPIDR: %x", info->mpidr);
#elif defined (__riscv)
e9_printf("My Hart ID: %x", info->hartid);
@ -446,7 +445,6 @@ FEAT_START
#if defined (__x86_64__)
e9_printf("LAPIC ID: %x", cpu->lapic_id);
#elif defined (__aarch64__)
e9_printf("GIC CPU Interface no.: %x", cpu->gic_iface_no);
e9_printf("MPIDR: %x", cpu->mpidr);
#elif defined (__riscv)
e9_printf("Hart ID: %x", cpu->hartid);