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.
Hi,
I am trying to develop on real hardware. I am in real mode and reading from device 27AC-8086 (it has header type 0). When I read from it, it has all its BARs to 0. The value in the COMMAND field (register 0x4) is 0x0006, which indicates its MMIO. Why are they 0? should I define them myself? The way I do it after I get the bus/device/function value in eax is:
Theodoros wrote: ↑Sun Dec 08, 2024 3:45 pmIt's before I load my kernel, I get the memory map and mmio addresses so I know where (not) to load kernel.
You only need the INT 0x15 EAX=0xE820 memory map to load your kernel. Everything else you can do after your kernel is running.
Theodoros wrote: ↑Sun Dec 08, 2024 3:45 pmIs there a way to know where it is mapped to?
Its MMIO addresses will be reserved in either the INT 0x15 EAX=0xE820 memory map or in ACPI. You might not know which device the reserved addresses belong to, but it doesn't matter since you won't be accessing it anyway.