Port-i386 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

TOS7301 disk controller support



Hi all!

I have an old Toshiba 310CDS with an obscure disk controller, which I'd like to get working with a proper driver (ideally with DMA). There is an existing NetBSD driver (pciide_pnpbios) for the TOS7300 controllers, which seem to be very similar to the TOS7301 controller in the laptop - they share a Windows driver.
The controller identifies itself as a TOS7301 PnP BIOS device. The device has a pair of I/O regions, in much the same vein as the TOS7300 device, however it is missing the 3rd (DMA) I/O region.

I have attempted to get the disk controller working using the TOS7300 driver by changing the device ID and commenting out the first call to pnpbios_io_map, the line setting sc->sc_dma_ok = 1 and the following for loop, the line setting sc->sc_wdcdev.sc_atac.atac_cap |= ATAC_CAP_DMA, and both with and without the section below "idedma_ctl = 0". However, this always results in a crash ("fatal page fault") in bus_space_read_1 (called from wdc_do_reset). Strangely, calling bus_space_read_1 with the same arguments as listed from the ddb prompt works just fine (returning 50). I'd appreciate some help figuring out what I have done wrong, as getting something working would be helpful.

The drive works (very slowly) with the default driver. I don't know whether the driver works at all on a machine with a TOS7300 controller, and I doubt it gets much testing, so that might be a problem. I have disabled ACPI and SMP for now, as otherwise the disk controller only shows up as a PNP0600 device.

Alastair Hughes


Home | Main Index | Thread Index | Old Index