[coreboot] Understanding BIOS I/O Adresses
peter at stuge.se
Mon Nov 16 16:23:10 CET 2015
Please don't post disassembly of code from outside the project. Thanks.
> I have some difficulties to understand what is done
Welcome to x86 firmware. Some day you may even grow to appreciate
> Is there a way to find out what these addresses are used for?
You have to look for a lot of different documentation, and piece
together the complete picture on your own.
Get Ralf Brown's interrupt list. It includes an IO port list with
some register explanations.
Also look at operating system programming documentation. This is 386
class hardware, read books about operating system programming on the
386 and on older hardware.
Writing a 386 operating system is also a good exercise to learn about
There are good IA-32 books from Intel. They're a couple thousand
> In particular I'm interested in 0x80, 0x84/0x85, 0x8c/0x8d.
PORT 0080-008F - DMA PAGE REGISTERS (74612)
0084 RW extra page register
0085 RW extra page register
008C RW extra page register
008D RW extra page register
So either something is being done with the DMA controller (seems
unlikely in early boot) or these registers have a completely
different meaning at that time in the platform lifecycle.
I would not expect that there is any good documentation about this.
Good luck and have fun!
More information about the coreboot