Hi, regarding the CS5530 driver initialization (ata cyrix) panic, the problem of channel "dma" and "r_bmio" fields being 0 is due to the hardware PCI config cmd register not having the expected value. In "ata-pci.c / ata_pci_attach()" the code fragment:
/* is busmastering supported ? */ if ((cmd & (PCIM_CMD_PORTEN | PCIM_CMD_BUSMASTEREN)) == (PCIM_CMD_PORTEN | PCIM_CMD_BUSMASTEREN)) { failed because "cmd" was 0x01 instead of 0x05 (the PORTEN | BUSMASTEREN is 0x05). The 5530 datasheet (well, SC1200 datasheet) says cmd bit 2 (Bus Master) must be set to 1... why isnt it? Changing the code at the top of ata_pci_attach() from: cmd = pci_read_config(dev, PCIR_COMMAND, 2); to: pci_write_config(dev, PCIR_COMMAND, 0x05, 2 ); cmd = pci_read_config(dev, PCIR_COMMAND, 2); causes the driver to not to panic on "ata_cyrix_setmode()"; it appears to complete both the probe and attach boot operations. Now the driver is dying (the system is hanging) at the first attempt to use dma, that is, after the first call to "ata_dmastart()". The "ata_dmastart()" completes ok, but the system immediatly hangs (it appears up, but spinning at interrupt level or somesuch, I can sometimes break into ddb or scroll the console a bit before things totally freeze). I'll see what else I can find. Replacing use of the TSC by the 8254 appears to have nothing to do with this problem (although it's necessary for anything even close to accurate sleep'ing). The older version of -current doesn't have this problem. I'll see if I can find why. It's the same hardware, I can boot either system and the old ata driver works ok. I'm debugging the new -current under the old working -current. Did something change in the PCI initialization that's likely a cause? - bruce To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message