Where is LVT when there is less than 4Gio of memory ?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
DridriLaBastos
Posts: 17
Joined: Wed Feb 15, 2017 8:29 am
Libera.chat IRC: DridriLaBastos

Where is LVT when there is less than 4Gio of memory ?

Post by DridriLaBastos »

I am trying to set the APIC but there is something I misunderstand : according to the intel manual, "APIC registers are memory-mapped to a 4-KByte region of the processor’s physical address space with an initial starting address of FEE00000H" but what if I only have 32MB of memory (which is the default setting on bochs)? The address 0xFEE0_000 is not reachable so what's happening? Where the LVT goes when there is less tan 4Gib of memory in the computer ?
User avatar
max
Member
Member
Posts: 616
Joined: Mon Mar 05, 2012 11:23 am
Libera.chat IRC: maxdev
Location: Germany
Contact:

Re: Where is LVT when there is less than 4Gio of memory ?

Post by max »

Hey,

the APIC registers are mapped to these physical addresses, so they are accessible on those. When the processor accesses these addresses, it will be read/written to the APIC registers instead of the physically available RAM. In the physical address space there could also be other devices mapped.

After all, you can't be sure that when you have 32MB of memory they will be physically available from 0x00000000 to 0x02000000. It could be mapped in different parts to different locations. See this nice page: http://wiki.osdev.org/Detecting_Memory_(x86)

Greets
DridriLaBastos
Posts: 17
Joined: Wed Feb 15, 2017 8:29 am
Libera.chat IRC: DridriLaBastos

Re: Where is LVT when there is less than 4Gio of memory ?

Post by DridriLaBastos »

thank you for the quick answer :)
Post Reply