ReturnInfinity / BareMetal-OS-legacy

BareMetal is a 64-bit OS for x86-64 based computers. The OS is written entirely in Assembly while applications can be written in Assembly, C/C++, and Rust.
1.74k stars 302 forks source link

Hard Disk is not being detected by BM OS on physical machine #46

Closed lavapatch closed 11 years ago

lavapatch commented 11 years ago

BM OS successfully boots from the disk but the init_hdd routine does not seem to find it. The disk is connected to SATA port 0

IanSeyler commented 11 years ago

It appears that BareMetal is not finding a PCI device with ID '0x0106' which would be a SATA controller. Debugging has been added to dump the PCI device list.

The board in question is a Asus P8H61-M LE/USB3 - http://www.asus.com/Motherboards/P8H61M_LEUSB3/ Chipset is Intel H61 - http://ark.intel.com/products/52806/Intel-BD82H61-PCH

Perhaps this is a PCI Express issue?

IanSeyler commented 11 years ago

PCI dump did not detect any storage device on that motherboard.

Detected: 0600 Host bridge 0604 PCI bridge 0300 VGA 0780 Communication controller 0C03 USB controller 0403 Audio device 0604 PCI bridge 0C03 USB controller 0601 ISA bridge 0C03 USB controller 0604 PCI bridge 0200 Ethernet

Not searching PCI properly? Change needed for PCI Express?

IanSeyler commented 11 years ago

Functions were not being tested for (Some PCI devices have multiple functions). Fixed!