lkml.org 
[lkml]   [2002]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: paging question
    From
    Date
    On Wed, 2002-02-20 at 21:26, Jason Yan wrote:
    > Hi,
    >
    > I have a question about the code to enable to initialize page
    > tables in linux/arch/i386/head.S
    >
    > I search the internet again and again but fail to find any answer
    > so far, maybe you gurus can help me out, here it goes:
    >
    > 48 cld
    > 49 movl $(__KERNEL_DS),%eax
    > 50 movl %eax,%ds
    > 51 movl %eax,%es
    > 52 movl %eax,%fs
    > 53 movl %eax,%gs
    > 81 /*
    > 82 * Initialize page tables
    > 83 */
    > 84 movl $pg0-__PAGE_OFFSET,%edi /* initialize page tables */
    > 85 movl $007,%eax /* "007" doesn't mean with right to kill, but
    > 86 PRESENT+RW+USER */
    > 87 2: stosl
    > 88 add $0x1000,%eax
    > 89 cmp $empty_zero_page-__PAGE_OFFSET,%edi
    > 90 jne 2b
    >
    > I remove the SMP code. According the setup.S, gdt_table is setup as
    > gdt_table:
    > #.quad 0x0000000000000000; // null
    > #.quad 0x0000000000000000; // not used
    > #.quad 0x00cf9a000000ffff; // 0x10 kernel 4GB code at 0x00000000
    > #.quad 0x00cf92000000ffff; // 0x18 kernel 4GB data at 0x00000000
    >
    > 1) So, what's in %eax after line 49 ? 0x0 ?

    0x18, its the index of the 4th item in GDT. Lines 49-53 set the segment
    registers to use the settings in gdt[3];

    > 2) Isn't __PAGE_OFFSET 0xC0000000 ? what's the result of $pg0-__PAGE_OFFSET ?

    the physical address of $pg0, the kernel is linked to PAGE_OFFSET so it
    thinks the address of $pg0 is PAGE_OFFSET+something. Suptracting
    PAGE_OFFSET is the simple way to obtain the physical address.

    --
    // Gianni Tedesco <gianni@ecsc.co.uk>
    80% of all email is a figment of procmails imagination.

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:24    [W:0.041 / U:0.456 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site