Acer Aspire 5110 PCI Problem

hessijens

Well-Known Member
Vorweg, ich bin Anwender, kein Programierer und habe eigentich gar keine Programierkenntnisse, dafür aber ein Problem mit meinem Acer Aspire 5110 Notebook. Zur Information, das Notebook ist bauglauch dem Acer Aspire 5100 bzw. 3100 und nutzt das gleiche Bios. Allerdings gibt es beim Modell 5110 zusätzlich Cardbus und Firewire und das Problem beschränkt sich wohl auf diese Modelle.

FreeBSD 8.1 konfiguriert beim starten eine RS480 PCI Bridge sowie den PCI SD/MMC Card Reader Controller nicht korrekt. Das Problem der RS480 PCI Bridge konnte ich analog http://lists.freebsd.org/pipermail/freebsd-acpi/2008-May/004905.html mit folgendem korrigierten dreckigen Patch lösen. Die Werte stammen vom Linux.

Code:
*** acpi_pcib_pci.c.orig	2009-08-03 10:13:06.000000000 +0200
--- acpi_pcib_pci.c	2010-05-13 14:59:50.000000000 +0200
***************
*** 133,142 ****
--- 133,150 ----
  {
      struct acpi_pcib_softc *sc;
  
      ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
  
+     if (device_get_unit(dev)==2){
+ 	pci_write_config(dev, PCIR_COMMAND, PCIM_CMD_MEMEN | PCIM_CMD_PORTEN, 1);
+ 	pci_enable_busmaster(dev);
+ 	pci_write_config(dev, PCIR_IOBASEL_1, 0xc0, 1);
+ 	pci_write_config(dev, PCIR_MEMBASE_1, 0xc020, 2);
+ 	pci_write_config(dev, PCIR_MEMLIMIT_1, 0xc020, 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);
      return (acpi_pcib_attach(dev, &sc->ap_prt, sc->ap_pcibsc.secbus));
  }

Bei dem zweiten SDHCI Problem weiß ich nicht mehr weiter:

Ausgabe von pciconf -lbv:

Code:
....
sdhci1@pci0:6:4:4:	class=0x050100 card=0x009f1025 chip=0x05511524 rev=0x01 hdr=0x00
    vendor     = 'ENE Technology Inc'
    device     = 'PCI SD/MMC Card Reader Controller'
    class      = memory
    subclass   = flash
    bar   [10] = type Memory, range 32, base [B]0xafe90000[/B], size 256, enabled

0xafe90000 ist aber laut Linux falsch. Linux lspci -vvv

Code:
...
sdhci1@pci0:6:4:4:	class=0x050100 card=0x009f1025 chip=0x05511524 rev=0x01 hdr=0x00
    vendor     = 'ENE Technology Inc'
    device     = 'PCI SD/MMC Card Reader Controller'
    class      = memory
    subclass   = flash
    bar   [10] = type Memory, range 32, 06:04.4 FLASH memory: ENE Technology Inc SD/MMC Card Reader Controller (rev 01)
        Subsystem: Acer Incorporated [ALI] Device 009f
        Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin B routed to IRQ 23
        Region 0: Memory at [B]c0811900[/B] (32-bit, non-prefetchable) [size=256]
        Capabilities: [80] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Kernel driver in use: sdhci-pci, size 256, enabled

Das führt dann in FreeBSD zu einem: dmesg | grep sdhci

Code:
sdhci0: <ENE CB712 SD> mem 0xc0812000-0xc08120ff irq 23 at device 4.2 on pci6
sdhci0: 1 slot(s) allocated
sdhci0: [ITHREAD]
sdhci1: <ENE CB712 SD 2> mem 0xafe90000-0xafe900ff irq 23 at device 4.4 on pci6
sdhci1-slot0: Reset 0x1 never completed - 0x1.
sdhci1-slot0: ============== REGISTER DUMP ==============
sdhci1-slot0: Sys addr: 0x00000000 | Version:  0x00000000
sdhci1-slot0: Blk size: 0x00000000 | Blk cnt:  0x00000000
sdhci1-slot0: Argument: 0x00000000 | Trn mode: 0x00000000
sdhci1-slot0: Present:  0x00000000 | Host ctl: 0x00000000
sdhci1-slot0: Power:    0x00000000 | Blk gap:  0x00000000
sdhci1-slot0: Wake-up:  0x00000000 | Clock:    0x00000000
sdhci1-slot0: Timeout:  0x00000000 | Int stat: 0x00000000
sdhci1-slot0: Int enab: 0x01ff00fb | Sig enab: 0x01ff00fb
sdhci1-slot0: AC12 err: 0x00000000 | Slot int: 0x00000000
sdhci1-slot0: Caps:     0x00000000 | Max curr: 0x00000000
sdhci1-slot0: ===========================================
sdhci1: Hardware doesn't specify base clock frequency.
sdhci1: Hardware doesn't specify timeout clock frequency.
sdhci1: Hardware doesn't report any support voltages.
sdhci1: 1 slot(s) allocated
sdhci1: [ITHREAD]

Ich habe bereits in den Kernelquellen nachgesehen, habe aber keine Ahnung wie und wo ich die Adresse für das sdhci1 richtig setzen kann. Vielleich kann mir jemand einen Tip/Patch geben.

Und vielleicht gibt es jemanden, der mir sagen kann wie ich die Hacks für eine eventuelle Netbsd-current installation in die NetBSD Sourcen kriege.
 
Zurück
Oben