On 8/22/07, erik quanstrom <[EMAIL PROTECTED]> wrote: > where is that time? what i see in l.s > > MOVL $_startpg(SB), AX /* this is a virtual address > */ > MOVL DX, CR0 /* turn on paging */ > JMP* AX /* jump to the virtual > nirvana */ > > perhaps i am missing it, but i don't see any point in the code > where there's a problem. the two instructions that do the switch > access only registers.
But the EIP has to access the instructions. After the mov, you're still at low memory. Paging is turned on at this time. The JMP is running at 0x10000something. So you turn paging on and do a jump, but paging is on when you do the jmp and fetch from low memory. To make the ifetch work you have to have the low map on. I'll look at that code tonight again to make sure I'm not imaging things, but I think this is right. ron
