none
Resume Support for WinCE6 x86 platform RRS feed

  • Question

  • Hi All,

    I am working on Suspend/Resume feature of WinCE6.0 X86 platform. I found that BIOS gives control to OS in real mode during resume. So, I have written a resume code which will be executed after OS gets control from BIOS during resume. In this code,  I have successfully enabled protected mode with paging disabled and now I can access above 1 MB region. But, now I am restoring the CR3, CR2 register values and then I am trying to enable paging and then  jump back to OS. So, I am actually using the CR3 value before sleep as the page directory base register value for enabling the paging. But after this, whenever I enable the PG bit of CR0 register to enable paging when PE bit (bit 0)of CR0 is set and the CR3, CR4 and CR2 register values are restored, then it restarts the system. So, I cannot enable paging. I also disabled the cache disable bit (CD bit) of CR0 register before enabling paging. But still it doesn’t work.

     

    Can anybody please advise me that whether my approach for enabling paging is correct or not? Or do I need to take some other approach?

    Thanks and regards,

    Janud

    Tuesday, July 24, 2012 5:08 PM

All replies

  • Hi All,

    After searching the net, I found the following:

    Before enabling paging, we have to create an identity mapped addresses.  Identity mapped addresses will map a linear address to the same physical address, i.e, linear address = physical address. It means that even after enabling paging, the effect of paging will not be there as the physical and linear address is the same.

    I found the following about identity mapped address from the file “C:\WINCE600\PRIVATE\WINCEOS\COREOS\NK\LDR\X86\x86start.asm”:

     “; Create the identity-mapped addresses (physical = linear), because
    
    ; Pentium-II requires that once paging is enabled, the next instruction
    
    ; must come from the same address as if paging wasn't enabled. “

    Can anybody confirm about this identity mapping for paging?

    Thanks and regards,

    Janud.

    Wednesday, July 25, 2012 5:10 PM