EHCI BAR0 Memory address inaccessible or not initialised
Posted: Tue Apr 03, 2018 11:17 am
Hello, one and all. This is my first post so please go easy on me!
I am trying to implement EHCI in my OS, but I have encounted a bug specefic to one of my computers.
The BAR0 address from the PCI configuration space, leads to what is meant to be the host controller capability registers. On my old computer that I have, this value works and I can access them and further registers for configuration. On my main computer, when reading back the CAPLENGTH and other registers, a value of all 1s is written into all of the memory locations starting at the BAR0 address.
Is there a way to make the PCI device write and use it's host controller registers? The BAR0 address currently resides outside of Physical RAM on the convicted computer and I have tried a few methods of writing to the PCIs configuration space to change it and initialise the device, with no luck.
Edit: The BAR0 is a memory mapped 32 bit address, with bits 0-3 all 0.
Any pointers in the right direction would be appreciated as well as handy hints from previous encounters.
Thanks
I am trying to implement EHCI in my OS, but I have encounted a bug specefic to one of my computers.
The BAR0 address from the PCI configuration space, leads to what is meant to be the host controller capability registers. On my old computer that I have, this value works and I can access them and further registers for configuration. On my main computer, when reading back the CAPLENGTH and other registers, a value of all 1s is written into all of the memory locations starting at the BAR0 address.
Is there a way to make the PCI device write and use it's host controller registers? The BAR0 address currently resides outside of Physical RAM on the convicted computer and I have tried a few methods of writing to the PCIs configuration space to change it and initialise the device, with no luck.
Edit: The BAR0 is a memory mapped 32 bit address, with bits 0-3 all 0.
Any pointers in the right direction would be appreciated as well as handy hints from previous encounters.
Thanks