Current-Users archive

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

Re: Fwd: port-amd64/43309: VX800 and CN896-VT8237S is not configured in RAID mode

On Wed, May 29, 2019 at 2:57 PM Michael van Elst <> wrote:
> (Andrius V) writes:
> >current-users, possibly it will have better visibility here. I wrote a
> >small patch which should fix:
> >* VX800 IDE will set correct UDMA mode. (VX855 should too, but can't test)
> That shouldn't be a problem to apply.

So I think I can be quite confident about this patch only (so at least
UDMA mode is correct on IDE mode):
--- a/sys/dev/pci/viaide.c
+++ b/sys/dev/pci/viaide.c
@@ -309,6 +309,16 @@ static const struct pciide_product_desc
pciide_via_products[] =  {
+         0,
+         NULL,
+         via_chip_map,
+       },
+         0,
+         NULL,
+         via_chip_map,
+       },
@@ -546,6 +556,14 @@ via_chip_map(struct pciide_softc *sc, const
struct pci_attach_args *pa)
                                aprint_normal("VT8251 ATA133 controller\n");
                                sc->sc_wdcdev.sc_atac.atac_udma_cap = 6;
+                       case PCI_PRODUCT_VIATECH_VX800:
+                               aprint_normal("VX800 ATA133 controller\n");
+                               sc->sc_wdcdev.sc_atac.atac_udma_cap = 6;
+                               break;
+                       case PCI_PRODUCT_VIATECH_VX855:
+                               aprint_normal("VX855 ATA133 controller\n");
+                               sc->sc_wdcdev.sc_atac.atac_udma_cap = 6;
+                               break;
                                aprint_normal("unknown VIA ATA controller\n");

--- a/sys/dev/pci/pcidevs
+++ b/sys/dev/pci/pcidevs
@@ -7704,6 +7704,7 @@ product VIATECH VT8231_PWR        0x8235  VT8231
Power Management Controller
 product VIATECH VT8363_PPB     0x8305  VT8363 (Apollo KT133) PCI to AGP Bridge
 product VIATECH CX700          0x8324  CX700 PCI-LPC Bridge
 product VIATECH VX800          0x8353  VX800/VX820 PCI-LPC Bridge
+product VIATECH VX855          0x8409  VX855  PCI-LPC Bridge
 product VIATECH VT8371_PPB     0x8391  VT8371 (Apollo KX133) PCI-PCI Bridge
 product VIATECH VT8501AGP      0x8501  VT8501 (Apollo MVP4) CPU-AGP Bridge
 product VIATECH VT82C597AGP    0x8597  VT82C597 (Apollo VP3) CPU-AGP Bridge

> >* If RAID mode is selected in BIOS (in my board), disks will be
> >recognized and attached. Possibly should fix id:7372 of 8237S variant
> >too (can't test).
> I wonder how enabling UDMA makes that possible.

On my "patch", I used via_sata_chip_map_new method for VX800 which was
actually written for VT6421 controller. Apparently it "fits" to some
extent for VX800 to recognize disk on AHCI mode. A hack, so, I will
need to understand better and rewrite, removed it for now... Since, I
can't test 8237S (7372),  I removed it as well (used

> >* There's caveat that I am getting these errors below depending on
> >BIOS config for viaide0 or/and viaide1:
> >viaide1: autoconfiguration error: couldn't map SATA regs
> >viaide1: bus-master DMA support present, but unused (couldn't map registers)
> >viaide1: autoconfiguration error: couldn't map native-PCI interrupt
> Looks like both share the same registers and interrupt and viaide(4) doesn't
> handle this, or maybe viaide1 doesn't really exist. You can use pcictl to
> dump the configuration space, in particular the BAR entries to shine a
> light on this.

I am quite immature at all this, if possible, please, provide more
specific command and a bit of info on what to look at? Though, yes, I
believe viaide1 doesn't exist.

Thank you for the help.

> --
>                                 Michael van Elst
> Internet:
>                                 "A potential Snark may lurk in every tree."

Home | Main Index | Thread Index | Old Index