apa1480 detected only at startup ...

2001-02-27
2001-03-01
  • christophe barbe

    Hi,

    I try to configure my laptop (Toshiba satellite 2520cds) to use an adaptec apa1480 cardbus. If the card is inserted before the boot process, it's well recognized and works. The irq 5 is given to the scsi driver aic7xxx but it's already used by the sound driver. That shared irq leads to a strange effect with sound but seem's to have no effect for the scsi.
    When I tried to insert/remove the card after the boot process, the card is not recognized (or really rarely) as said in the 3.6 paragraph of the
    pcmcia howto.
    I've tried the cs_irq=4 (and 5) but the system freeze when I insert a card or reload the cardmgr.

    In /var/log/messages, I see
    ISA irqs (default) = 4,7,9,10 polling interval = 1000 ms
    or
    ISA irqs (default) = 4,5,7,9,10,12 polling nterval = 1000 ms

    Why the polling method is used ?

    Is the irq for the scsi drive attributed by the pcmcia tool or is it another problem ? How can I set another IRQ ?

    Christophe

     
    • David Hinds

      David Hinds - 2001-02-28

      It would be useful to show all the startup messages from the PCMCIA drivers.  That would also indicate what version of the PCMCIA drivers you're using, and what kernel version.

      Polling is used when the PCMCIA drivers can't figure out the PCI interrupt assigned to the bridge, and also can't test interrupts to be sure which ones work and which ones don't.  Most bridges allow software to test which interrupts work; this doesn't seem to work with the Toshiba bridges.  So the driver defaults to polling since that is safe.  Polling is not your problem.

      -- Dave

       
      • christophe barbe

        Yes I can give you all information you want. I run a 2.2.18 kernel (under debian potato) and the last pcmcia release. After the output of the debug tool, I've pasted a part of /var/log/messages and the corresponding part of /var/log/daemons. To get this output I've try multiple insert/eject (real and soft with cardctl) and finnaly after a lot of try I managed to see my scsi drive.

        I hope this output answer to you.
        I still don't understand how is attributed the irq to the scsi driver. /proc/interrupts said that irq 5 is assigned to aic7xxx but this driver is not compiled in my kernel and not as a module so i imagine that the apa1480 driver simulate it.
        And why the audio driver use an irq without reporting it in /proc/interrupts ?

        # ./test_setup
        Current kernel: 2.2.18 #1 Thu Feb 22 22:17:33 CET 2001
        Module info from /lib/modules/2.2.18/pcmcia/pcmcia_core.o:
          Linux PCMCIA Card Services 3.1.24
          options: [pci] [cardbus] [apm]

        Startup options from /etc/pcmcia.conf:
          PCMCIA=yes
          PCIC=i82365
          PCIC_OPTS=
          CORE_OPTS=
          CARDMGR_OPTS=

        Checking current syslog files in /var/log:
          All PCMCIA messages are in /var/log/syslog.

        Module status:
          The PCMCIA kernel modules are loaded correctly.

        Daemon status:
          cardmgr is running (process 263)

        Current socket status from /var/lib/pcmcia/stab:
          Socket 0: empty
          Socket 1: empty

        -- in /var/log/messages --

        Feb 26 22:25:34 turing kernel: Linux PCMCIA Card Services 3.1.24
        Feb 26 22:25:34 turing kernel:   kernel build: 2.2.18 #1 Thu Feb 22 22:17:33 CET 2001
        Feb 26 22:25:34 turing kernel:   options:  [pci] [cardbus] [apm]
        Feb 26 22:25:34 turing kernel: PCI routing table version 1.0 at 0xf9060
        Feb 26 22:25:34 turing kernel: Intel PCIC probe:
        Feb 26 22:25:34 turing kernel:   Toshiba ToPIC97 rev 07 PCI-to-CardBus at slot 00:13, mem 0x68000000
        Feb 26 22:25:34 turing kernel:     host opts [0]: [slot 0xf0] [ccr 0x10] [cdr 0x86] [rcr 0x02] [no pci irq] [lat 168/176] [bus 20/20]
        Feb 26 22:25:34 turing kernel:     host opts [1]: [slot 0xf0] [ccr 0x20] [cdr 0x86] [rcr 0x02] [no pci irq] [lat 168/176] [bus 21/21]
        Feb 26 22:25:34 turing kernel:     ISA irqs (default) = 4,7,9,10 polling interval = 1000 msFeb 26 22:25:35 turing kernel: cs: IO port probe 0x0c00-0x0cff: excluding 0xcf8-0xcff
        Feb 26 22:25:35 turing kernel: cs: IO port probe 0x0800-0x08ff: clean.
        Feb 26 22:25:35 turing kernel: cs: IO port probe 0x0100-0x04ff: excluding 0x220-0x22f 0x378-0x37f 0x480-0x48f 0x4d0-0x4d7
        Feb 26 22:25:35 turing kernel: cs: IO port probe 0x0a00-0x0aff: clean.
        Feb 26 22:25:49 turing kernel: cs: memory probe 0x0d0000-0x0dffff: clean.
        Feb 26 22:25:49 turing kernel: memory_cs: mem0: anonymous: unknown size
        Feb 26 22:27:28 turing kernel: unloading PCMCIA Card Services

        Feb 26 22:27:29 turing kernel: Linux PCMCIA Card Services 3.1.24
        Feb 26 22:27:29 turing kernel:   kernel build: 2.2.18 #1 Thu Feb 22 22:17:33 CET 2001
        Feb 26 22:27:29 turing kernel:   options:  [pci] [cardbus] [apm]
        Feb 26 22:27:29 turing kernel: PCI routing table version 1.0 at 0xf9060
        Feb 26 22:27:29 turing kernel: Intel PCIC probe:
        Feb 26 22:27:29 turing kernel:   Toshiba ToPIC97 rev 07 PCI-to-CardBus at slot 00:13, mem 0x68000000
        Feb 26 22:27:29 turing kernel:     host opts [0]: [slot 0xf0] [ccr 0x10] [cdr 0x86] [rcr 0x02] [no pci irq] [lat 168/176] [bus 20/20]
        Feb 26 22:27:29 turing kernel:     host opts [1]: [slot 0xf0] [ccr 0x20] [cdr 0x86] [rcr 0x02] [no pci irq] [lat 168/176] [bus 21/21]
        Feb 26 22:27:29 turing kernel:     ISA irqs (default) = 4,7,9,10 polling interval = 1000 ms
        Feb 26 22:27:29 turing kernel: cs: IO port probe 0x0c00-0x0cff: excluding 0xcf8-0xcff
        Feb 26 22:27:29 turing kernel: cs: IO port probe 0x0800-0x08ff: clean.
        Feb 26 22:27:29 turing kernel: cs: IO port probe 0x0100-0x04ff: excluding 0x220-0x22f 0x378-0x37f 0x480-0x48f 0x4d0-0x4d7
        Feb 26 22:27:29 turing kernel: cs: IO port probe 0x0a00-0x0aff: clean.
        Feb 26 22:27:30 turing kernel: cs: memory probe 0x0d0000-0x0dffff: clean.
        Feb 26 22:28:21 turing kernel: cs: IO port probe 0x0c00-0x0cff: excluding 0xcf8-0xcff
        Feb 26 22:28:21 turing kernel: cs: IO port probe 0x0800-0x08ff: clean.
        Feb 26 22:28:21 turing kernel: cs: IO port probe 0x0100-0x04ff: excluding 0x220-0x22f 0x378-0x37f 0x480-0x48f 0x4d0-0x4d7
        Feb 26 22:28:21 turing kernel: cs: IO port probe 0x0a00-0x0aff: clean.
        Feb 26 22:28:57 turing kernel: cs: IO port probe 0x0c00-0x0cff: excluding 0xcf8-0xcff
        Feb 26 22:28:57 turing kernel: cs: IO port probe 0x0800-0x08ff: clean.
        Feb 26 22:28:57 turing kernel: cs: IO port probe 0x0100-0x04ff: excluding 0x220-0x22f 0x378-0x37f 0x480-0x48f 0x4d0-0x4d7
        Feb 26 22:28:57 turing kernel: cs: IO port probe 0x0a00-0x0aff: clean.
        Feb 26 22:30:02 turing kernel: cs: cb_alloc(bus 20): vendor 0x9004, device 0x6075
        Feb 26 22:30:03 turing kernel: cs: cb_config(bus 20)
        Feb 26 22:30:03 turing kernel:   fn 0 bar 1: io 0x800-0x8ff
        Feb 26 22:30:03 turing kernel:   fn 0 bar 2: mem 0x60030000-0x60030fff
        Feb 26 22:30:03 turing kernel:   fn 0 rom: mem 0x60020000-0x6002ffff
        Feb 26 22:30:03 turing kernel:   irq 9
        Feb 26 22:30:03 turing kernel: apa1480_attach(device 14:00.0)
        Feb 26 22:30:03 turing kernel: (scsi0) <Adaptec PCMCIA SCSI controller> found at PCI 20/0/0
        Feb 26 22:30:03 turing kernel: (scsi0) Narrow Channel, SCSI ID=7, 3/255 SCBs
        Feb 26 22:30:03 turing kernel: (scsi0) Downloading sequencer code... 422 instructions downloaded
        Feb 26 22:30:03 turing kernel: scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 5.1.31/3.2.4
        Feb 26 22:30:03 turing kernel:        <Adaptec PCMCIA SCSI controller>
        Feb 26 22:30:03 turing kernel: scsi : 1 host.
        Feb 26 22:30:07 turing kernel: (scsi0:0:1:0) Synchronous at 20.0 Mbyte/sec, offset 7.
        Feb 26 22:30:07 turing kernel:   Vendor: YAMAHA    Model: CRW2100S          Rev: 1.0H
        Feb 26 22:30:07 turing kernel:   Type:   CD-ROM                             ANSI SCSI revision: 02

        -- in /var/log/daemon.log --

        Feb 26 22:27:29 turing cardmgr[2636]: starting, version is 3.1.24
        Feb 26 22:27:29 turing cardmgr[2636]: watching 2 sockets
        Feb 26 22:27:30 turing cardmgr[2636]: initializing socket 0
        Feb 26 22:27:30 turing cardmgr[2636]: unsupported card in socket 0
        Feb 26 22:27:30 turing cardmgr[2636]:   no product info available
        ...
        Feb 26 22:28:21 turing cardmgr[2636]: re-loading config file
        Feb 26 22:28:37 turing cardmgr[2636]: initializing socket 0
        Feb 26 22:28:37 turing cardmgr[2636]: unsupported card in socket 0
        Feb 26 22:28:37 turing cardmgr[2636]:   no product info available
        ...
        Feb 26 22:30:02 turing cardmgr[2636]: initializing socket 0
        Feb 26 22:30:02 turing cardmgr[2636]: socket 0: Adaptec APA-1480 SCSI Host Adapter
        Feb 26 22:30:02 turing cardmgr[2636]: executing: 'modprobe cb_enabler'
        Feb 26 22:30:03 turing cardmgr[2636]: executing: 'modprobe apa1480_cb'

         
        • David Hinds

          David Hinds - 2001-02-28

          Why do you think irq 5 is used by the sound driver, if it does not show up in /proc/interrupts?  In your system log, it looks like the APA1480 card was assigned to irq 9, and it looks like irq 5 is not even an option.

          The apa1480_cb driver is a Cardbus version of the aic7xxx driver.

          You can also try the latest beta at ftp://projects.sourceforge.net/pub/pcmcia-cs/NEW to see if that makes any difference.  There are still a number of unsolved issues with Toshiba CardBus bridges, though this does not sound like one I've heard before.

          -- Dave

           
    • christophe barbe

      I think that irq 5 is used by my sound card because I add it as an option in my modules.conf and it is also printed in my bios.
      What I've not try yet is to use another irq for my audio chip. i'm not sure that it's possible but i will have a look tonight (i've not my laptop now).
      I will send here my 'cat /proc/interrupts' output.

      Thanks

       
    • christophe barbe

      Ok, I've changed the irq for my sound card, the strange sound effect has disappeard (as expected).
      So the problem is not  related to this shared irq.
      I've missed to report one point which now seems to me to be important: First the card was recognized as memory_cs. If I've understood, this is the normal thing for a not recognized card (the insertion is seen but the card is unknown so the memory driver is used by default). My first reflex was to delete all references to memory_cs in /etc/pcmcia/config.
      It looks like a problem between 16/32 bits cards.
      I don't understand why but the card is seen (when it doesn't work) as a 16 bits card.
      I add various output : a first serie after booting with the card inserted (so it's recognized) and a second serie where the card is not recognized (but there's some output which indicate a 16 bits card.

      I can now use my card (I need to boot with it inside) but I hope we can solve this problem.

      Christophe

      ------

      memory_cs

      in my bios
      com1 : irq4
      com2 : irq3
      lpt1 : irq7
      snd  : irq9 (previously 5, and other possible value 11)

      # cat /proc/interrupts
                 CPU0      
        0:      41963          XT-PIC  timer
        1:        823          XT-PIC  keyboard
        2:          0          XT-PIC  cascade
        5:        107          XT-PIC  aic7xxx
        9:      12309          XT-PIC  MS Sound System
      11:       6910          XT-PIC  usb-ohci
      12:          8          XT-PIC  PS/2 Mouse
      13:          1          XT-PIC  fpu
      14:       4015          XT-PIC  ide0
      15:         34          XT-PIC  ide1
      NMI:          0

      # ./dump_cis
      Socket 0:
        manfid 0x012f, 0xcb01
        vers_1 5.0, "Adaptec", "APA-1480 SCSI Host Adapter", "", ""
        funcid scsi_adapter
        BAR 1 size 256b [io]
        BAR 2 size 256b [mem]
        BAR 7 size 2kb [mem]
        config_cb base 0x00f2 last_index 0x00
        cftable_entry_cb 0x00 [default]
          Vcc Vnom 3300mV Istatic 150mA Iavg 230mA Ipeak 300mA
          io_base 1
          irq mask 0xffff [level] [shared]
          mem_base 2 7
      # ./dump_cisreg
      ioctl(): No data available
      # ./dump_exca
      Socket 0:
        Identification and revision = 0x83
        Interface status = 0xcf
          [bvd1/stschg] [bvd2/spkr] [detect] [poweron] [gpi]
        Power control = 0x51
          [Vcc=5v] [Vpp=5v]
        Interrupt and general control = 0x05
          [reset] [irq=5]
        Card status change interrupt control = 0x08
          [detect] [irq=0]
        Card detect and general control = 0x00
        
        memory 0: 0x0000-0x1fff @ 0x00000000 [off] [8bit]
        memory 1: 0x0000-0x1fff @ 0x00000000 [off] [8bit]
        memory 2: 0x0000-0x1fff @ 0x00000000 [off] [8bit]
        memory 3: 0x0000-0x1fff @ 0x00000000 [off] [8bit]
        memory 4: 0x0000-0x1fff @ 0x00000000 [off] [8bit]
        io 0: 0x0000-0x0001 [off] [8bit]
        io 1: 0x0000-0x0001 [off] [8bit]# ./dump_pirq
      Interrupt routing table found at address 0xf9060:
        Version 1.0, size 0x0070
        Interrupt router is device 00:01.0
        PCI exclusive interrupt mask: 0x0000 []
        Compatible router: vendor 0x1179 device 0x0602

      Device 00:11.0 (slot 0): Communication controller
        INTA: link 0x01, irq mask 0x1ef0 [4,5,6,7,9,10,11,12]

      Device 00:0b.0 (slot 0): USB Controller
        INTA: link 0x01, irq mask 0x1ef0 [4,5,6,7,9,10,11,12]

      Device 00:08.0 (slot 0): VGA compatible controller
        INTA: link 0x01, irq mask 0x1ef0 [4,5,6,7,9,10,11,12]

      Device 00:13.0 (slot 0): CardBus bridge
        INTA: link 0x01, irq mask 0x1ef0 [4,5,6,7,9,10,11,12]
        INTB: link 0x01, irq mask 0x1ef0 [4,5,6,7,9,10,11,12]

      Device 00:07.0 (slot 0): Communication controller
        INTA: link 0xff, irq mask 0x0008 [3]

      Interrupt router at 00:01.0:
      Could not read router info from /proc/bus/pci/00/01.0.
      # ./dump_tcic
      Databook TCIC-2 probe: not found.

      when card is in but not detected

      # cardctl status
      Socket 0:
        3.3V 16-bit PC Card
        function 0: [ready], [wp], [bat low]
      Socket 1:
        no card
      # ./dump_cis    
      Socket 0:
        no CIS present
      # ./dump_cisreg
      ioctl(): No data available

      # ./dump_exca  
      Socket 0:
        Identification and revision = 0x83
        Interface status = 0xfd
          [bvd1/stschg] [detect] [wrprot] [ready] [poweron] [gpi]
        Power control = 0xd9
          [output] [Vcc=3.3v] [Vpp=5v]
        Interrupt and general control = 0x40
          [irq=0]
        Card status change interrupt control = 0x08
          [detect] [irq=0]
        Card detect and general control = 0x00
        
        memory 0: 0x0000-0x0fff @ 0x000d0000 [on] [8bit] [ws1]
        memory 1: 0x0000-0x1fff @ 0x00000000 [off] [8bit]
        memory 2: 0x0000-0x1fff @ 0x00000000 [off] [8bit]
        memory 3: 0x0000-0x1fff @ 0x00000000 [off] [8bit]
        memory 4: 0x0000-0x1fff @ 0x00000000 [off] [8bit]
        io 0: 0x0000-0x0001 [off] [8bit]
        io 1: 0x0000-0x0001 [off] [8bit]
      # ./dump_pirq
      Interrupt routing table found at address 0xf9060:
        Version 1.0, size 0x0070
        Interrupt router is device 00:01.0
        PCI exclusive interrupt mask: 0x0000 []
        Compatible router: vendor 0x1179 device 0x0602

      Device 00:11.0 (slot 0): Communication controller
        INTA: link 0x01, irq mask 0x1ef0 [4,5,6,7,9,10,11,12]

      Device 00:0b.0 (slot 0): USB Controller
        INTA: link 0x01, irq mask 0x1ef0 [4,5,6,7,9,10,11,12]

      Device 00:08.0 (slot 0): VGA compatible controller
        INTA: link 0x01, irq mask 0x1ef0 [4,5,6,7,9,10,11,12]

      Device 00:13.0 (slot 0): CardBus bridge
        INTA: link 0x01, irq mask 0x1ef0 [4,5,6,7,9,10,11,12]
        INTB: link 0x01, irq mask 0x1ef0 [4,5,6,7,9,10,11,12]

      Device 00:07.0 (slot 0): Communication controller
        INTA: link 0xff, irq mask 0x0008 [3]

      Interrupt router at 00:01.0:
      Could not read router info from /proc/bus/pci/00/01.0.
      # ./dump_tcic
      Databook TCIC-2 probe: not found.

       

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks