Re: Acer TM6292

From: Alexander Motin <mav_at_FreeBSD.org>
Date: Wed, 10 Jun 2009 15:33:13 +0300
Hi.

Seri Geri wrote:
> - I have an Acer TM6292 (2 GHz CPU, 4 GB RAM, 200 GB HDD) with dock
> station and two 17" TFT monitor to work.
> - I have installed FreeBSD, PC-BSD and DesktopBSD, i386 and x64, release
> and snapsot too on it. Everything is working fine, except the network
> adapters (not even the Broadcom Gbit, but the WiFi too).
> 
> Would you mind please, where can I find something to make them to work ?

At this moment I am using such set of patches/hacks against 8-CURRENT to 
fix some found hardware and FreeBSD issues on this system. They are 
extremely specific for this system, so never hit the tree, but I am 
using them daily and quite happy.

-- 
Alexander Motin

--- sys/dev/ata/chipsets/ata-ahci.c.prev	2009-03-26 22:21:57.000000000 +0200
+++ sys/dev/ata/chipsets/ata-ahci.c	2009-03-26 22:30:34.000000000 +0200
_at__at_ -153,6 +153,10 _at__at_ ata_ahci_ctlr_reset(device_t dev)
     struct ata_pci_controller *ctlr = device_get_softc(dev);
     int timeout;
 
+    if (pci_read_config(dev, 0x00, 4) == 0x28298086 &&
+	(pci_read_config(dev, 0x92, 1) & 0xfe) == 0x04)
+	    pci_write_config(dev, 0x92, 0x01, 1);
+
     /* enable AHCI mode */
     ATA_OUTL(ctlr->r_res2, ATA_AHCI_GHC, ATA_AHCI_GHC_AE);
 

--- sys/dev/acpica/acpi_cmbat.c.prev	2007-03-22 20:16:40.000000000 +0200
+++ sys/dev/acpica/acpi_cmbat.c	2009-04-30 19:44:27.000000000 +0300
_at__at_ -411,6 +411,8 _at__at_ acpi_cmbat_bst(device_t dev, struct acpi
 	acpi_cmbat_get_bst(dev);
 	bstp->state = sc->bst.state;
 	bstp->rate = sc->bst.rate;
+	if (bstp->rate & 0x8000)
+		bstp->rate ^= 0xffff;
 	bstp->cap = sc->bst.cap;
 	bstp->volt = sc->bst.volt;
     } else

--- sys/dev/acpica/acpi_pcib_pci.c.prev	2008-12-01 03:46:59.000000000 +0200
+++ sys/dev/acpica/acpi_pcib_pci.c	2008-12-01 03:46:43.000000000 +0200
_at__at_ -133,6 +133,22 _at__at_ acpi_pcib_pci_attach(device_t dev)
 
     ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
 
+    if (device_get_unit(dev)==2 && pci_read_config(dev, PCIR_COMMAND, 1) == 0){
+	pci_write_config(dev, PCIR_COMMAND, PCIM_CMD_MEMEN | PCIM_CMD_PORTEN, 1);
+	pci_enable_busmaster(dev);
+	pci_write_config(dev, PCIR_IOBASEL_1, 0xf0, 1);
+	pci_write_config(dev, PCIR_MEMBASE_1, 0xf020, 2);
+	pci_write_config(dev, PCIR_MEMLIMIT_1, 0xf020, 2);
+	pci_write_config(dev, PCIR_PMBASEL_1, 0xfff1, 2);
+    }
+    if (device_get_unit(dev)==3 && pci_read_config(dev, PCIR_COMMAND, 1) == 0){
+        pci_write_config(dev, PCIR_COMMAND, PCIM_CMD_MEMEN | PCIM_CMD_PORTEN, 1);
+        pci_enable_busmaster(dev);
+        pci_write_config(dev, PCIR_IOBASEL_1, 0xf0, 1);
+        pci_write_config(dev, PCIR_MEMBASE_1, 0xf030, 2);
+        pci_write_config(dev, PCIR_MEMLIMIT_1, 0xf030, 2);
+        pci_write_config(dev, PCIR_PMBASEL_1, 0xfff1, 2);
+    }
     pcib_attach_common(dev);
     sc = device_get_softc(dev);
     sc->ap_handle = acpi_get_handle(dev);
_at__at_ -143,6 +159,22 _at__at_ static int
 acpi_pcib_pci_resume(device_t dev)
 {
 
+    if (device_get_unit(dev)==2 && pci_read_config(dev, PCIR_COMMAND, 1) == 0){
+	pci_write_config(dev, PCIR_COMMAND, PCIM_CMD_MEMEN | PCIM_CMD_PORTEN, 1);
+	pci_enable_busmaster(dev);
+	pci_write_config(dev, PCIR_IOBASEL_1, 0xf0, 1);
+	pci_write_config(dev, PCIR_MEMBASE_1, 0xf020, 2);
+	pci_write_config(dev, PCIR_MEMLIMIT_1, 0xf020, 2);
+	pci_write_config(dev, PCIR_PMBASEL_1, 0xfff1, 2);
+    }
+    if (device_get_unit(dev)==3 && pci_read_config(dev, PCIR_COMMAND, 1) == 0){
+        pci_write_config(dev, PCIR_COMMAND, PCIM_CMD_MEMEN | PCIM_CMD_PORTEN, 1);
+        pci_enable_busmaster(dev);
+        pci_write_config(dev, PCIR_IOBASEL_1, 0xf0, 1);
+        pci_write_config(dev, PCIR_MEMBASE_1, 0xf030, 2);
+        pci_write_config(dev, PCIR_MEMLIMIT_1, 0xf030, 2);
+        pci_write_config(dev, PCIR_PMBASEL_1, 0xfff1, 2);
+    }
     return (acpi_pcib_resume(dev));
 }
 
Received on Wed Jun 10 2009 - 09:33:30 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:49 UTC