vesa identity paging 1:1
Posted: Sun Feb 20, 2011 6:26 am
hello and welcome to my another lame post.
many months ago i have setuped basic vesa environment (my system's default video mode is 80x25 textmode). I'm using 1:1 paging, where virtual address means the same physical address, my page directory starts at 0x100000 (1M) and so far i needed only one page table (that's 4Megs). But now i need to access the vesa linear buffer at non-existent memory 0xc0000000 - so i need map these pages too. I'm tired to turn off paging every time a switch to vesa. And with paging off, system ofcourse behaves dodgy, so i need to have it on all the time. i'm very confused by now 0xc0000000 is about 3Gigs, so that would be page table no. 768 i guess. if my page directory starts at 1M, then location of that table (no. 768) must be 0x100C00 (each entry has 32bits). And now what, my first page table at 1M has address 0x101000 where all that pages up to 4Megs are mapped. So what address should the 768. page table have? 0xc00*0x1000+0x100000? evidently nope, i throwing nonsences here.. damm, can anyone please tell me how to map these pages to 1:1?
thanks a lot
many months ago i have setuped basic vesa environment (my system's default video mode is 80x25 textmode). I'm using 1:1 paging, where virtual address means the same physical address, my page directory starts at 0x100000 (1M) and so far i needed only one page table (that's 4Megs). But now i need to access the vesa linear buffer at non-existent memory 0xc0000000 - so i need map these pages too. I'm tired to turn off paging every time a switch to vesa. And with paging off, system ofcourse behaves dodgy, so i need to have it on all the time. i'm very confused by now 0xc0000000 is about 3Gigs, so that would be page table no. 768 i guess. if my page directory starts at 1M, then location of that table (no. 768) must be 0x100C00 (each entry has 32bits). And now what, my first page table at 1M has address 0x101000 where all that pages up to 4Megs are mapped. So what address should the 768. page table have? 0xc00*0x1000+0x100000? evidently nope, i throwing nonsences here.. damm, can anyone please tell me how to map these pages to 1:1?
thanks a lot