On Mon, Nov 3, 2025 at 11:37 AM Andrius V <[email protected]> wrote: > > Hi, > > I was recently working on VIA IDE/SATA controllers in NetBSD and noticed a few > missing IDs in the OpenBSD code as a result. > > The VT8237A and VT8237S chipsets need to be identified not only by their SATA > controller IDs, but also by the ISA bus for UDMA support, since their > IDE controller > uses the common VIA chipset PCI ID 0x0571. > > The VT8237S also has an additional PCI ID (0x7372) when RAID mode is selected > in the BIOS. > > The VT8251 includes another PCI ID for the CE version of the southbridge > (0x5287), which is used when IDE mode is selected. > > In addition to the above, I included a few more uncommon variants. > > The VT8233C (ISA bus) supports UDMA100 like the VT8233 (not the VT8233A, which > supports UDMA133). This southbridge is quite rare; I have found it only on a > few RioWorks motherboard models in the internet resources. > > The VT8261 is identified by its ISA bus and SATA controller in IDE mode > (0x9000). The platform was likely discontinued shortly after release, > though at least one regional motherboard used it (and some evaluation boards). > > I did not include PCI IDs for the VX900 (0x9041) and VT8261 (0x9040) in RAID > mode in the patch. > > I am aware of only two board models with RAID mode option in the BIOS > for the VX900, > and only one of them has two SATA ports. Therefore, this ID does not seem > particularly relevant, though it could be added for completeness if you wish. > The VT8261 RAID mode is likely even less relevant due to the rarity of the > southbridge and the availability of IDE mode. > > Additionally, I found that faking VT6410 enable bits is not a good solution > for > add-in cards. While the controller is identified, the hard drives remain > undetected because those channels are actually disabled. A better approach is > to enable them directly. The only downside is that some motherboards may > provide a BIOS option to control this, and we would override it, though such > cases appear to be rare (typically controller is fully disabled, not > visible to OS). > > This does not apply to the VT6415, where faking remains the "best" solution so > far. It uses a different and undocumented register structure compared to other > VIA controllers. > > You can refer to the NetBSD viaide(4) driver for details. > > Regards, > Andrius V
Forgot to add: tested patch on VT8251, VT8261 (without PATA drives, no connector), and VT8237S. Did not test VT8237A (but it has a datasheet and is similar to VT8237(S)) and VT8233C.
