Re:questions on high half kernel
Posted: Fri May 12, 2006 12:40 pm
okay, I have tested without directory of index 0 paged.
boches tells me
last, i know why there needs set the 0 page dir a proper address.
it's because, gdt_install is called after init_paging(),while gdt is in section .setup.
thanks all your help.
boches tells me
the EIP is just pointed at00018588554e[CPU0 ] exception(): 3rd (14) exception with no resolution, shutdown status is 00h, resetting
00018588554i[CPU0 ] protected mode
00018588554i[CPU0 ] CS.d_b = 32 bit
00018588554i[CPU0 ] SS.d_b = 32 bit
00018588554i[CPU0 ] | EAX=80000011 EBX=0002bdc0 ECX=00000001 EDX=000003ff
00018588554i[CPU0 ] | ESP=c0104ff8 EBP=c0105008 ESI=0002beda EDI=0002bedb
00018588554i[CPU0 ] | IOPL=0 id vip vif ac vm RF nt of df if tf SF zf af PF cf
00018588554i[CPU0 ] | SEG selector base limit G D
00018588554i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
00018588554i[CPU0 ] | CS:0008( 0001| 0| 0) 40000000 000fffff 1 1
00018588554i[CPU0 ] | DS:0010( 0002| 0| 0) 40000000 000fffff 1 1
00018588554i[CPU0 ] | SS:0010( 0002| 0| 0) 40000000 000fffff 1 1
00018588554i[CPU0 ] | ES:0010( 0002| 0| 0) 40000000 000fffff 1 1
00018588554i[CPU0 ] | FS:0010( 0002| 0| 0) 40000000 000fffff 1 1
00018588554i[CPU0 ] | GS:0010( 0002| 0| 0) 40000000 000fffff 1 1
00018588554i[CPU0 ] | EIP=c01000a8 (c01000a8)
00018588554i[CPU0 ] | CR0=0x80000011 CR1=0 CR2=0x00000040
00018588554i[CPU0 ] | CR3=0x00102000 CR4=0x00000000
00018588554i[CPU0 ] (instruction unavailable) page not present
00018588554i[SYS ] bx_pc_system_c::Reset(SOFTWARE) called
00018588554i[APIC0] local apic in CPU 0 initializing
Code: Select all
c01000a2: 8b 45 f4 mov 0xfffffff4(%ebp),%eax
c01000a5: 0f 22 d8 mov %eax,%cr3
c01000a8: 0f 20 c0 mov %cr0,%eax
c01000ab: 0d 00 00 00 80 or $0x80000000,%eax
c01000b0: 0f 22 c0 mov %eax,%cr0
c01000b3: c9 leave
c01000b4: c3 ret
it's because, gdt_install is called after init_paging(),while gdt is in section .setup.
thanks all your help.