2020-09-01 03:43:27

by Cao jin

[permalink] [raw]
Subject: [PATCH] Documentation/x86/boot.rst: minor improvement

Typo fix & file name update

Signed-off-by: Cao jin <[email protected]>
---
Documentation/x86/boot.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/x86/boot.rst b/Documentation/x86/boot.rst
index 7fafc7ac00d7..c04afec90486 100644
--- a/Documentation/x86/boot.rst
+++ b/Documentation/x86/boot.rst
@@ -1379,7 +1379,7 @@ can be calculated as follows::
In addition to read/modify/write the setup header of the struct
boot_params as that of 16-bit boot protocol, the boot loader should
also fill the additional fields of the struct boot_params as described
-in zero-page.txt.
+in zero-page.rst.

After setting up the struct boot_params, the boot loader can load
64-bit kernel in the same way as that of 16-bit boot protocol, but
@@ -1391,7 +1391,7 @@ In 64-bit boot protocol, the kernel is started by jumping to the

At entry, the CPU must be in 64-bit mode with paging enabled.
The range with setup_header.init_size from start address of loaded
-kernel and zero page and command line buffer get ident mapping;
+kernel and zero page and command line buffer get identity mapping;
a GDT must be loaded with the descriptors for selectors
__BOOT_CS(0x10) and __BOOT_DS(0x18); both descriptors must be 4G flat
segment; __BOOT_CS must have execute/read permission, and __BOOT_DS
--
2.21.0




2020-09-01 05:27:56

by Cao jin

[permalink] [raw]
Subject: Re: [PATCH] Documentation/x86/boot.rst: minor improvement

Sorry, I mis-copied 2 addresses. make sure they are CCed.

On 9/1/20 11:41 AM, Cao jin wrote:
> Typo fix & file name update
>
> Signed-off-by: Cao jin <[email protected]>
> ---
> Documentation/x86/boot.rst | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/x86/boot.rst b/Documentation/x86/boot.rst
> index 7fafc7ac00d7..c04afec90486 100644
> --- a/Documentation/x86/boot.rst
> +++ b/Documentation/x86/boot.rst
> @@ -1379,7 +1379,7 @@ can be calculated as follows::
> In addition to read/modify/write the setup header of the struct
> boot_params as that of 16-bit boot protocol, the boot loader should
> also fill the additional fields of the struct boot_params as described
> -in zero-page.txt.
> +in zero-page.rst.
>
> After setting up the struct boot_params, the boot loader can load
> 64-bit kernel in the same way as that of 16-bit boot protocol, but
> @@ -1391,7 +1391,7 @@ In 64-bit boot protocol, the kernel is started by jumping to the
>
> At entry, the CPU must be in 64-bit mode with paging enabled.
> The range with setup_header.init_size from start address of loaded
> -kernel and zero page and command line buffer get ident mapping;
> +kernel and zero page and command line buffer get identity mapping;
> a GDT must be loaded with the descriptors for selectors
> __BOOT_CS(0x10) and __BOOT_DS(0x18); both descriptors must be 4G flat
> segment; __BOOT_CS must have execute/read permission, and __BOOT_DS
>


--
Sincerely,
Cao jin


2020-09-01 05:40:23

by H. Peter Anvin

[permalink] [raw]
Subject: Re: [PATCH] Documentation/x86/boot.rst: minor improvement

If you are going to fix the language...

On 2020-08-31 22:25, Cao jin wrote:
> Sorry, I mis-copied 2 addresses. make sure they are CCed.
>
> On 9/1/20 11:41 AM, Cao jin wrote:
>> Typo fix & file name update
>>
>> Signed-off-by: Cao jin <[email protected]>
>> ---
>> Documentation/x86/boot.rst | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/Documentation/x86/boot.rst b/Documentation/x86/boot.rst
>> index 7fafc7ac00d7..c04afec90486 100644
>> --- a/Documentation/x86/boot.rst
>> +++ b/Documentation/x86/boot.rst
>> @@ -1379,7 +1379,7 @@ can be calculated as follows::
>> In addition to read/modify/write the setup header of the struct
>> boot_params as that of 16-bit boot protocol, the boot loader should
>> also fill the additional fields of the struct boot_params as described
>> -in zero-page.txt.
>> +in zero-page.rst.
>>
>> After setting up the struct boot_params, the boot loader can load
>> 64-bit kernel in the same way as that of 16-bit boot protocol, but
>> @@ -1391,7 +1391,7 @@ In 64-bit boot protocol, the kernel is started by jumping to the
>>
>> At entry, the CPU must be in 64-bit mode with paging enabled.

(Paging enabled is redundant here.)

>> The range with setup_header.init_size from start address of loaded
>> -kernel and zero page and command line buffer get ident mapping;
>> +kernel and zero page and command line buffer get identity mapping;

The range with setup_header.init_size from start address of the loaded kernel,
the zero page, and the command line buffer get identity-mapped, anda GDT must
be loaded with the descriptors for selectors __BOOT_CS(0x10) and
__BOOT_DS(0x18): both descriptors must be 4G flat segment with __BOOT_CS
having execute/read
permission and __BOOT_DS...

Also, it might be useful to take a look to see if other data structures, like
setup_data and the initrd also need to be in the identity map.

-hpa

2020-09-01 06:24:28

by Cao jin

[permalink] [raw]
Subject: Re: [PATCH] Documentation/x86/boot.rst: minor improvement

On 9/1/20 1:35 PM, H. Peter Anvin wrote:
> If you are going to fix the language...
>
> On 2020-08-31 22:25, Cao jin wrote:
>> Sorry, I mis-copied 2 addresses. make sure they are CCed.
>>
>> On 9/1/20 11:41 AM, Cao jin wrote:
>>> Typo fix & file name update
>>>

I did quick search in dict & google, didn't see ident = identity, my omission.

>>> Signed-off-by: Cao jin <[email protected]>
...

>>> @@ -1391,7 +1391,7 @@ In 64-bit boot protocol, the kernel is started by jumping to the
>>>
>>> At entry, the CPU must be in 64-bit mode with paging enabled.
>
> (Paging enabled is redundant here.)

Yes, 64-bit defaults with paging enabled. Maybe it is a little bit helpful for
newbies.

>
>>> The range with setup_header.init_size from start address of loaded
>>> -kernel and zero page and command line buffer get ident mapping;
>>> +kernel and zero page and command line buffer get identity mapping;
>
> The range with setup_header.init_size from start address of the loaded kernel,
> the zero page, and the command line buffer get identity-mapped, anda GDT must
> be loaded with the descriptors for selectors __BOOT_CS(0x10) and
> __BOOT_DS(0x18): both descriptors must be 4G flat segment with __BOOT_CS
> having execute/read
> permission and __BOOT_DS...
>
> Also, it might be useful to take a look to see if other data structures, like
> setup_data and the initrd also need to be in the identity map.
>

Thanks for your info. I have indistinct memory that KASLR need them identity
mapped. I will take a look.

--
Sincerely,
Cao jin