Damien Zammit, le mar. 06 févr. 2024 03:06:28 +0000, a ecrit:
> +    printf("Sending IPIs to APIC ID %u...\n", apic_id);
> +    err = smp_send_ipi_init(apic_id);
> +    hpet_mdelay(10);
> +    err = smp_send_ipi_startup(apic_id, start_eip / PAGE_SIZE);
> +    hpet_udelay(200);
> +    err = smp_send_ipi_startup(apic_id, start_eip / PAGE_SIZE);

I don't think this is really about PAGE_SIZE, but rather

<< (20 - 8)

In that the IPI can send an 8bit value, and the realmode address space
is 20bits, so the best precision that can be achieved for the bootup
address (while still being able to boot anything within the 1MB space)
is 1 << (20 - 8) and thus that's what Intel decided to use.

Samuel

Reply via email to