Ok, I see we have page tables, but (how) are you initializing the Page Directory?Waszka wrote: Paging is done like that:Code: Select all
//! 1st 4mb are idenitity mapped for( i=0, frame=0x0, virt=0x00000000; i<1024; i++, frame+=4096, virt+=4096) { //! create a new page unsigned int page=0; st_wpis_dodaj_atryb (&page, I86_PTE_PRESENT); st_wpis_ustaw_ramke (&page, frame); //! ...and add it to the page table table2->m_entries [INDEKS_TABLICY_STRON (virt) ] = page; } // mapping for my kernel for( i=0, frame=0x400000, virt=0xc0000000; i<1024; i++, frame+=4096, virt+=4096) { //! create a new page unsigned int page=0; st_wpis_dodaj_atryb (&page, I86_PTE_PRESENT); st_wpis_ustaw_ramke (&page, frame); //! ...and add it to the page table table->m_entries [INDEKS_TABLICY_STRON (virt) ] = page; }
Sorry for delay I read threw all posts a time or two to see what I may have missed...
Code: Select all
_start:
cli
call SetGDT
[.... rest of the code..... ]
lea ebx, [jadro]
call ebx
jadro:
jmp 0x8:fix_cs
fix_cs:
[... rest of code....]
Code: Select all
_start:
cli
call SetGDT
[.... rest of the code..... ]
jmp 0x8:fix_cs
fix_cs:
[... rest of code....]
[Off for the night.]