Re: pciide(4): identify more VIA IDE/SATA controllers by ISA bus and PCI IDs
Andrius V <[email protected]>
| Newsgroups | gmane.os.openbsd.bugs |
|---|---|
| Message-ID | <CAFO4NkqP1H=bKqzBzHJSeXvV=hwhto+DCWajLbZcjrHs0nXAug@mail.gmail.com> |
Thank you! On Tue, Apr 7, 2026 at 3:18 AM Jonathan Gray <[email protected]> wrote: > > On Mon, Mar 30, 2026 at 12:20:27AM +0300, Andrius V wrote: > > On Sun, Mar 29, 2026 at 9:04 AM Jonathan Gray <[email protected]> wrote: > > > > > > The isa bridge to udma mapping part seems fine. > > > > > > The matching of the RAID id I'd leave out, as no other VIA RAID > > > ids are matched. > > > > OK, I removed VT8237S RAID mode ID from the patch. > > > > > > > > Did you test VT8251/VT8261 on OpenBSD? The Linux code suggests those > > > need different channel handling. > > > > > > > Yes, I have tested VT8251 on OpenBSD. > > At least in a way, that driver attaches drives in all ports > > successfully, sets correct speed, and drives are accessible. > > > > I am aware of slave port handling in Linux (and I think FreeBSD too), > > but I am not fully aware how relevant it is to pciide driver and what > > behaviour it can trigger. > > > > I have tested VT8261 with SATA disks only. My current motherboard > > doesn't have IDE ports (I had one in the past, but it is currently > > broken unfortunately). > > However, VT8261 IDE controller shares same 0x0571 as previous > > southbridges, so I don't expect anything unusual. > > > > The only thing I have noticed on VT8251 in NetBSD, not to write to a > > certain registers to SATA controllers which are used to setup UDMA in > > PATA case, but OpenBSD uses sata_setup_channel(), thus this problem > > wasn't present here. > > > > Regards, > > Andrius V > > thanks, committed > > > diff --git a/sys/dev/pci/pcidevs b/sys/dev/pci/pcidevs > > index d4ee23d6ca3..cb8a37cfb6b 100644 > > --- a/sys/dev/pci/pcidevs > > +++ b/sys/dev/pci/pcidevs > > @@ -9950,6 +9950,7 @@ product VIATECH VT8653_PCI 0x3101 VT8653 PCI > > product VIATECH VT6202 0x3104 VT6202 USB > > product VIATECH VT6105 0x3106 VT6105 RhineIII > > product VIATECH UNICHROME 0x3108 S3 Unichrome PRO IGP > > +product VIATECH VT8233C_ISA 0x3109 VT8233C ISA > > product VIATECH VT8361_PCI 0x3112 VT8361 PCI > > product VIATECH VT8101_PPB 0x3113 VT8101 VPX-64 > > product VIATECH VT8375 0x3116 VT8375 PCI > > @@ -9999,6 +10000,7 @@ product VIATECH CHROME9_HC 0x3371 Chrome9 HC IGP > > product VIATECH VT8237S_ISA 0x3372 VT8237S ISA > > product VIATECH VT8237A_PPB_1 0x337a VT8237A > > product VIATECH VT8237A_PPB_2 0x337b VT8237A > > +product VIATECH VT8261_ISA 0x3402 VT8261 ISA > > product VIATECH VX900_DRAM 0x3410 VX900 DRAM > > product VIATECH VL80X_XHCI 0x3432 VL80x xHCI > > product VIATECH VL805_XHCI 0x3483 VL805 xHCI > > @@ -10018,6 +10020,7 @@ product VIATECH VX800_4 0x4353 VX800 Host > > product VIATECH P4M900_4 0x4364 P4M900 Host > > product VIATECH VX900_1 0x4410 VX900 Host > > product VIATECH K8T890_IOAPIC 0x5238 K8T890 IOAPIC > > +product VIATECH VT8251_SATA_2 0x5287 VT8251 SATA > > product VIATECH PT894_IOAPIC 0x5308 PT894 IOAPIC > > product VIATECH CX700_IDE 0x5324 CX700 IDE > > product VIATECH P4M890_IOAPIC 0x5327 P4M890 IOAPIC > > @@ -10066,6 +10069,7 @@ product VIATECH VT82C597AGP 0x8597 VT82C597 AGP > > product VIATECH VT82C598AGP 0x8598 VT82C598 AGP > > product VIATECH VT82C601 0x8601 VT82C601 AGP > > product VIATECH VT8605_AGP 0x8605 VT8605 AGP > > +product VIATECH VT8261_SATA 0x9000 VT8261 SATA > > product VIATECH VX900_IDE 0x9001 VX900 IDE > > product VIATECH HDA_1 0x9170 HD Audio > > product VIATECH VX800_SDMMC 0x9530 VX800 SD/MMC > > diff --git a/sys/dev/pci/pciide.c b/sys/dev/pci/pciide.c > > index fc925a8f7cb..2b5925aacf0 100644 > > --- a/sys/dev/pci/pciide.c > > +++ b/sys/dev/pci/pciide.c > > @@ -811,6 +811,14 @@ const struct pciide_product_desc pciide_via_products[] = { > > { PCI_PRODUCT_VIATECH_VT8251_SATA, /* VIA VT8251 SATA */ > > 0, > > sata_chip_map > > + }, > > + { PCI_PRODUCT_VIATECH_VT8251_SATA_2, /* VIA VT8251(CE) SATA */ > > + 0, > > + sata_chip_map > > + }, > > + { PCI_PRODUCT_VIATECH_VT8261_SATA, /* VIA VT8261 SATA */ > > + 0, > > + sata_chip_map > > } > > }; > > > > @@ -3511,12 +3519,17 @@ apollo_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa) > > break; > > case PCI_PRODUCT_VIATECH_VT8231_ISA: > > case PCI_PRODUCT_VIATECH_VT8233_ISA: > > + case PCI_PRODUCT_VIATECH_VT8233C_ISA: > > printf(": ATA100"); > > sc->sc_wdcdev.UDMA_cap = 5; > > break; > > case PCI_PRODUCT_VIATECH_VT8233A_ISA: > > case PCI_PRODUCT_VIATECH_VT8235_ISA: > > case PCI_PRODUCT_VIATECH_VT8237_ISA: > > + case PCI_PRODUCT_VIATECH_VT8237A_ISA: > > + case PCI_PRODUCT_VIATECH_VT8237S_ISA: > > + case PCI_PRODUCT_VIATECH_VT8251_ISA: > > + case PCI_PRODUCT_VIATECH_VT8261_ISA: > > printf(": ATA133"); > > sc->sc_wdcdev.UDMA_cap = 6; > > break; >