[LinuxBIOS] Can't boot from IDE on vt8237r

Peter Stuge peter at stuge.se
Thu Jul 26 08:42:14 CEST 2007

On Thu, Jul 26, 2007 at 01:59:45AM -0400, Corey Osgood wrote:
> The cn700/vt8237r is almost working,


> @line 259:
> In vt8237r_enable ffff ffff.
> Disabling static device: PCI: 00:0f.0
> In vt8237r_enable ffff ffff.
> Disabling static device: PCI: 00:0f.1
> why? [..] It looks like bad device numbers

--8<-- src/devices/pci_device.c
/* Now read the vendor and device id */
id = pci_read_config32(dev, PCI_VENDOR_ID);

/* If the device does not have a pci id disable it.
 * Possibly this is because we have already disabled
 * the device.  But this also handles optional devices
 * that may not always show up.
/* If the chain is fully enumerated quit */
if (    (id == 0xffffffff) || (id == 0x00000000) ||
	(id == 0x0000ffff) || (id == 0xffff0000)) 
	if (dev->enabled) {
		printk_info("Disabling static device: %s\n",
		dev->enabled = 0;
	return dev;

The devices are disabled by LB because of the 0xffff VID.

Theory: Some bit needs to be set somewhere in order to have the IDE
PCI device actually exist and return anything meaningful?

> FILO version 0.5 (amp at ampmobile) Sun Jul 22 00:31:32 EDT 2007
> pci_init: 00:0f.1 1106:0571 0101 8a

..and at this point that bit has been set, but the device hasn't been
enabled properly?

> find_ide_controller: found PCI IDE controller 1106:0571 prog_if=0x8a
> find_ide_controller: primary channel: compatibility mode
> find_ide_controller: cmd_base=0x1f0 ctrl_base=0x3f4
> Detected floating bus
> No drive detected on IDE channel 0
> devopen: failed to open ide

You could also try using my FILO IDE patch with the debugging
suggested in my message, it may provide some more debugging hints:


> 	printk_err("NO HARD RESET ON VT8237R! FIX ME!\n");

Remove the function and undefine HAVE_HARD_RESET or whatever the
option is called then


More information about the coreboot mailing list