Current-Users archive

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

Re: PCMCIA on 5.0_RC1 not working?



On Sun, 8 Feb 2009, Iain Hibbert wrote:

> On Sat, 7 Feb 2009, Iain Hibbert wrote:
>
> > With a Thinkpad T60 running 5.0_RC1 if I insert a CF card I get:
> >
> >   wdc2 at pcmcia0 function 0: <SanDisk, SDP, 5/3 0.6>
> >   wdc2: i/o mapped mode
> >   atabus2 at wdc2 channel 0
> >
> > but no wd(4) device node is attached..
>
> further to this, I've booted a 4.0_STABLE kernel and get the same thing,
> so its not a recent problem. On the other hand, a 5.0_RC1 kernel on my old
> machine does attach wd1 to the wdc so its not a generic problem.

and further again, PRs kern/32327 and kern/32328 describe the same trouble
with some older Thinkpads, with the suggested fix being to move the RBUS
area to 12-bit memory with

  options RBUS_IO_BASE="0xa00"          # orig 0x4000
  options RBUS_IO_SIZE="0x0ff"          # orig 0x2000

which does allow PCMCIA cards to work, but alas inserting a Cardbus card
caused a panic relating to lack of bus space, hrm.  This makes me think
perhaps I'm on the right lines and I don't know where the above values
come from but I've enabled a some options:

  options PCI_ADDR_FIXUP
  options PCI_BUS_FIXUP
  options PCI_INTR_FIXUP_DISABLED

these three by themselves made a slight difference in that the pci5 now
shows as "memory space enabled", then

  options CBB_DEBUG
  options CARDBUS_DEBUG
  options CARDSLOT_DEBUG
  options RBUS_DEBUG
  options PCMCIADEBUG
  options PCMCIAVERBOSE

brings a bunch more information. Is it possible to interpret this and work
out what suitable RBUS base/size values might be or do I have to guess?

During boot:

  ppb4 at pci0 dev 30 function 0: vendor 0x8086 product 0x2448 (rev. 0xe2)
  pci5 at ppb4 bus 5
  pci5: i/o space, memory space enabled
  cbb0 at pci5 dev 0 function 0: vendor 0x104c product 0xac56 (rev. 0x00) 
(chipflags 2)
  rbus_new_body: [4000, 6000] type share name [PCI I/O port space]
  rbus_new_body: [40000000, ffffffff] type share name [PCI I/O memory space]
  cbb0: socket base address 0xe4300000
  CardBus latency timer 0xb0 (b0060605)
  PCI latency timer 0xa8 (2a808)
  pccbb_power: CARDBUS_VCC_0V and CARDBUS_VPP_0V [0x44]
  cbb0: cacheline 0x8 lattimer 0xa8
  cbb0: bhlc 0x2a808
  cbb0: interrupting at ioapic0 pin 16
  cardslot0 at cbb0
  cardslot0 attaching CardBus bus...
  cardbus0 at cardslot0: bus 6
  cardslotattach: found cardbus on cardslot0
  pcmcia0 at cardslot0
  cardslotattach: found 16-bit pcmcia bus
  pccbb_pcmcia_card_detect
  pccbb_pci_callback: found cardslot

and then when I insert a CF card:

  cbb0: 0x00000000 card inserted, 0x30000910
  cardslot_event_throw: an event 16-bit Card inserted comes
  pccbb_pcmcia_socket_enable: 3V card
  pccbb_power: CARDBUS_VCC_0V and CARDBUS_VPP_0V [0x44]
  pccbb_power: CARDBUS_VCC_3V and CARDBUS_VPP_VCC [0x11]
  pccbb_pcmcia_delay: "pccen1", sleep 201 ms
  Powercycling because of socket event
  pccbb_pcmcia_delay: "pccen2", sleep 20 ms
  rbus_space_alloc: addr 0, size 1000, mask fff, align 1000
  pccbb_pcmcia_alloc_mem: addr 0x40000000 size 0x400, realsize 0x1000
  pccbb_pcmcia_mem_map window 0 bus 40000000+0+400 at card addr 0
  pccbb_pcmcia_do_mem_map: start 0x40000000 end 0x400003ff off 0xc0000000
  pccbb_pcmcia_do_mem_map window 0: 0000 0080 0040 40
  pcmcia0: CIS version PCMCIA 2.0 or 2.1
  pcmcia0: CIS info: SanDisk, SDP, 5/3 0.6
  pcmcia0: Manufacturer code 0x45, product 0x401
  pcmcia0: function 0: fixed disk(ata), ccr addr 200 mask f
  pcmcia0: function 0, config table entry 0: memory card; irq mask 0; memspace 
0-7ff; maxtwins 1; mwait_required rdybsy_active powerdown
  pcmcia0: function 0, config table entry 1: I/O card; irq mask ffff; iomask 4, 
iospace 0-f; memspace 0-7ff; maxtwins 1; rdybsy_active io8 io16 irqshare 
irqpulse irqlevel powerdown
  pcmcia0: function 0, config table entry 2: I/O card; irq mask 4000; iomask a, 
iospace 1f0-1f7 3f6-3f7; memspace 0-7ff; maxtwins 1; rdybsy_active io8 io16 
irqshare irqpulse irqlevel powerdown
  pcmcia0: function 0, config table entry 3: I/O card; irq mask 4000; iomask a, 
iospace 170-177 376-377; memspace 0-7ff; maxtwins 1; rdybsy_active io8 io16 
irqshare irqpulse irqlevel powerdown
  pcmcia0: function 0, config table entry 7: I/O card; irq mask 4000; iomask a, 
iospace 170-177 376-377; memspace 0-7ff; maxtwins 1; rdybsy_active io8 io16 
irqshare irqpulse irqlevel powerdown
  wdc2 at pcmcia0 function 0: <SanDisk, SDP, 5/3 0.6>
  rbus_space_alloc: addr 0, size 10, mask 1f, align 10
  rbus: trying [4000:4010] 10
  pccbb_pcmcia_io_alloc alloc port 0x4000+0x10
  pccbb_pcmcia_io_map window 0 dynamic port 4000+10
  pccbb_pcmcia_do_io_map win 0 addr 0x4000 size 0x10 width 0
  pccbb_pcmcia_do_io_map start 00 40, stop 0f 40, ioctl 02 enable 40
  wdc2: i/o mapped mode
  pccbb_intr_establish start. 0x0
  pccbb_intr_establish add pil. 0xc2224860
  cbb0: pccbb_pcmcia_socket_settype type io 70
  rbus_space_alloc: addr 0, size 1000, mask fff, align 1000
  pccbb_pcmcia_alloc_mem: addr 0x40000000 size 0x14, realsize 0x1000
  pccbb_pcmcia_mem_map window 0 bus 40000000+200+14 at card addr 0
  pccbb_pcmcia_do_mem_map: start 0x40000000 end 0x40000213 off 0xc0000000
  pccbb_pcmcia_do_mem_map window 0: 0000 0080 0040 40
  atabus2 at wdc2 channel 0
  pccbb_pcmcia_socket_disable
  pccbb_power: CARDBUS_VCC_0V and CARDBUS_VPP_0V [0x44]
  pccbb_pcmcia_delay: "pccwr1", sleep 300 ms
  pccbb_intr_disestablish start. 0xc2224860
  pccbb_intr_disestablish: pil 0xc2224860
  pccbb_intr_disestablish frees one pil
  pccbb_intr_disestablish frees one pil
  pccbb_intr_disestablish: no interrupt handler


iain


Home | Main Index | Thread Index | Old Index