diff options
Diffstat (limited to 'kernel/vmem.c')
| -rw-r--r-- | kernel/vmem.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/kernel/vmem.c b/kernel/vmem.c index 741a1e8..cd6bc93 100644 --- a/kernel/vmem.c +++ b/kernel/vmem.c @@ -232,15 +232,15 @@ void vmem_init(uint32_t vesa_physbase) //! create a new page pt_entry page=0; pt_entry_add_attrib (&page, I86_PTE_PRESENT); + pt_entry_add_attrib (&page, I86_PTE_WRITABLE); pt_entry_set_frame (&page, frame); //! ...and add it to the page table table2->m_entries [PAGE_TABLE_INDEX (virt) ] = page; } - //! map 1mb to 3gb (where we are at) - - uint32_t vesa_mapped=0x1000*1024; + //uint32_t vesa_mapped=0x1000*1024; + uint32_t vesa_mapped=vesa_physbase; for (int i=0, frame=vesa_physbase, virt=vesa_mapped; i<1024; i++, frame+=4096, virt+=4096) { @@ -248,7 +248,7 @@ void vmem_init(uint32_t vesa_physbase) //! create a new page pt_entry page=0; pt_entry_add_attrib (&page, I86_PTE_PRESENT); -// pt_entry_add_attrib (&page, I86_PTE_WRITABLE); + pt_entry_add_attrib (&page, I86_PTE_WRITABLE); pt_entry_set_frame (&page, frame); //! ...and add it to the page table @@ -275,16 +275,10 @@ void vmem_init(uint32_t vesa_physbase) log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"enabling paging..."); show_cr(); - - // while(1); x86_paging_enable(); - x86_paging_disable(); - x86_paging_enable(); - vesa_set_physbase(vesa_mapped); - // x86_flush_tlb(0); - // x86_flush_tlb(vesa_physbase); + vesa_set_physbase(vesa_mapped); show_cr(); |
