I think lot of interrupts use Port I/O internally. Is this true?
So what kind of magic is used (typically) by interrupt 0x15 eax=0xe820?
Does it uses some ports or is it vendor improved version of manual probing?
Port I/O inside interrupt memory map?
Re: Port I/O inside interrupt memory map?
Have a look at Detecting Memory (x86) - the second paragraph in particular has some relevant information.
As to whether port I/O is used, that seems the most likely - having a look at the specs for some chipsets would give you the definitive answer though.
As to whether port I/O is used, that seems the most likely - having a look at the specs for some chipsets would give you the definitive answer though.
Re: Port I/O inside interrupt memory map?
While it may be true that BIOS service interrupt uses port IO for certain operations (who cares, by the way),lopidas wrote:I think lot of interrupts use Port I/O internally. Is this true?
however, for kernel developer that implement their own drivers and IRQ handlers, they may use memory mapped IO or DMA or other mechanisms to communicate with hardwares.
It is implementation defined, probably map ROM into address space, then run some sort of memtest code directly from ROM, so that it can test all RAM without requiring any functional RAM exists.lopidas wrote:So what kind of magic is used (typically) by interrupt 0x15 eax=0xe820?
Does it uses some ports or is it vendor improved version of manual probing?
- Owen
- Member
- Posts: 1700
- Joined: Fri Jun 13, 2008 3:21 pm
- Location: Cambridge, United Kingdom
- Contact:
Re: Port I/O inside interrupt memory map?
E820 will use the BIOS' internal memory map.
The BIOS' internal memory map will use the SPD EEPROMs on the DIMMs, which it needs to read in order to get the information needed to make the RAM work (because the RAM can't talk to you if it doesn't know what CAS/RAS/etc latencies you're using).
The BIOS' internal memory map will use the SPD EEPROMs on the DIMMs, which it needs to read in order to get the information needed to make the RAM work (because the RAM can't talk to you if it doesn't know what CAS/RAS/etc latencies you're using).