Re: [RFC PATCH] x86/doc/boot_protocol: Correct the description of "reloc"

From: Cao jin
Date: Thu Sep 26 2019 - 03:55:46 EST


On 9/26/19 2:01 PM, Ingo Molnar wrote:
> * Cao jin <caoj.fnst@xxxxxxxxxxxxxx> wrote:
>
>> The fields marked with (reloc) actually are not dedicated for writing,
>> but communicating info for relocatable kernel with boot loaders. For
>> example:
>>
>> ============ ============
>> Field name: pref_address
>> Type: read (reloc)
>> Offset/size: 0x258/8
>> Protocol: 2.10+
>> ============ ============
>>
>> ============ ========================
>> Field name: code32_start
>> Type: modify (optional, reloc)
>> Offset/size: 0x214/4
>> Protocol: 2.00+
>> ============ ========================
>>
>> Signed-off-by: Cao jin <caoj.fnst@xxxxxxxxxxxxxx>
>> ---
>> Unless I have incorrect non-native understanding for "fill in", I think
>> this is inaccurate.
>>
>> Documentation/x86/boot.rst | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/Documentation/x86/boot.rst b/Documentation/x86/boot.rst
>> index 08a2f100c0e6..a611bf04492d 100644
>> --- a/Documentation/x86/boot.rst
>> +++ b/Documentation/x86/boot.rst
>> @@ -243,7 +243,7 @@ bootloader ("modify").
>>
>> All general purpose boot loaders should write the fields marked
>> (obligatory). Boot loaders who want to load the kernel at a
>> -nonstandard address should fill in the fields marked (reloc); other
>> +nonstandard address should consult with the fields marked (reloc); other
>> boot loaders can ignore those fields.
>>
>> The byte order of all fields is littleendian (this is x86, after all.)
>
> Well, this documentation is written from the point of view of a
> *bootloader*, not the kernel. So the 'fill in' says that the bootloader
> should write those fields - which is correct, right?
>

Take pref_address or relocatable_kernel for example, they have type:
read (reloc), does boot loader need to write them? I don't see grub does
this at least.

--
Sincerely,
Cao jin