Okay, i have customised my paging, its now 2MB
this is my paging structure:
Code:
align 4096
PML4:
dq PDPT or 11b
dq 511 dup (PDPT or 10b)
PDPT:
dq 11b or PDP
dq 11b or PDP2
dq 11b or PDP3
dq 11b or PDP4
dq 11b or PDP5
dq 11b or PDP6
dq 11b or PDP7
dq 11b or PDP8
dq 504 dup(10b)
PDP:
dq 512 dup(0x82)
PDP2:
dq 512 dup(0x82)
PDP3:
dq 512 dup(0x82)
PDP4:
dq 512 dup(0x82)
PDP5:
dq 512 dup(0x82)
PDP6:
dq 512 dup(0x82)
PDP7:
dq 512 dup(0x82)
PDP8:
dq 512 dup(0x82)
;;MAPPING 8GB of RAM
thats how i fill first PDP in 32 bit mode:
Code:
mov ecx, 0
.lp1:
mov ebx, [PDP + ecx*8]
mov eax, 0x200000
mul ecx
or ebx, eax
or ebx, 1
lea eax, [PDP + ecx*8]
mov [eax], ebx
inc ecx
cmp ecx, 512
jl .lp1
and remaining 7 GBs in long mode:
Code:
mov r8, 1
.lpp2:
mov rcx, 0
.lp2:
mov rbx, [PDP + rcx*8]
mov r10, rcx
imul r10, 4096
or rbx, r10
mov rax, 0x200000
mul rcx
mov r10, 0x40000000
imul r10, r8
add rax, r10
or rbx, rax
or rbx, 1
lea rax, [PDP + ecx*8]
mov r10, rcx
imul r10, 4096
or rax, r10
mov [rax], rbx
inc rcx
cmp rcx, 512
jl .lp2
inc r8
cmp r8, 8
jl .lpp2
info tlb maps memory to 0x3fe00000
info mem brings back attachment
something is really wrong here and i am not sure what, could you guys provide any help?
it seems to be no difference if i remove the 64-bit paging fill code, same as before with 1GB pages