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;
>

Reply via email to