Re: [PATCH v1 0/3] x86/boot: Supply boot_param in rdi instead of rsi from startup_64()

From: H. Peter Anvin
Date: Mon Jun 23 2025 - 20:44:29 EST


On June 23, 2025 12:24:50 PM PDT, Brian Gerst <brgerst@xxxxxxxxx> wrote:
>On Mon, Jun 23, 2025 at 2:40 PM Khalid Ali <khaliidcaliy@xxxxxxxxx> wrote:
>>
>> > This is also invoked by some external bootloaders that boot the ELF
>> > image directly, even though this is strongly discouraged.
>> >
>> > Therefore this patchset is NAKed with extreme prejudice.
>>
>> Thanks both of you peter and brian,
>>
>> however, the boot protocol document saying "%rsi must hold the base address of the struct boot_params",
>> it doesn't mention why. Maybe the document needs update to justify the reasons. I wouldn't have known it
>> if you didn't tell me, so this shouldn't confuse anyone else.
>
>The use of RSI was inherited from the 32-bit kernel, but the real
>reason is lost to history. It's just always been that way and there
>is no compelling reason to change it.
>
>
>Brian Gerst
>

The reason isn't lost to history: I picked %esi because I found that none of the weird bootloaders which looked the protected mode jump clobbered that particular register.