Re: Sierra Wireless / AC775 / Loading an external cisfile as a 'quirck'

From: Dirk-Willem van Gulik (dirkx_at_webweaving.org)
Date: 11/12/05

  • Next message: Xin LI: "Re: SSH From within a Jail"
    Date: Sat, 12 Nov 2005 12:43:27 -0800 (PST)
    To: "M. Warner Losh" <imp@bsdimp.com>
    
    

    On Sat, 12 Nov 2005, M. Warner Losh wrote:

    > OpenBSD solved this problem by listing this card in
    > pcmica_cis_quirk.c. Maybe you can try that as an iterrum solution?

    Ack - thanks a lot for that pointer - trying that now. (Still gives me the
    error below; but I'll fiddle with it).

    > database of bad cards and automatically subsitute the right one? Do
    > we detach an reprobe the card when a new CIS is loaded in (like your
    > example above)?

    That would be very nice; or possibly with a pccardc power up/down (which
    we seem to have lost) or some similar 'reprobe' command. Having the kernel
    filled with all sort of quicks seems less ideal - such a live, after
    detect, method allows you to load a a CIS on detecting a certain card.

    > Being able to load CIS in would fix a bunch of multi-function cards
    > that aren't listed as such (and vice versa).

    And if the CIS would literally be a 'CIS' - then countless Linux and
    MacOSX 'drivers' start to work; as these often just consist of a CIS and a
    bind to something generic.

    Dw

    cbb0: [MPSAFE]
    cbb0: PCI Configuration space:
      0x00: 0xac50104c 0x02100007 0x06070001 0x00022000
      0x10: 0xf0222000 0x020000a0 0x20060504 0xfffff000
      0x20: 0x00000000 0xfffff000 0x00000000 0xfffffffc
      0x30: 0x00000000 0xfffffffc 0x00000000 0x07400112
      0x40: 0x00000000 0x00000001 0x00000000 0x00000000
      0x50: 0x00000000 0x00000000 0x00000000 0x00000000
      0x60: 0x00000000 0x00000000 0x00000000 0x00000000
      0x70: 0x00000000 0x00000000 0x00000000 0x00000000
      0x80: 0x0044b060 0x00000000 0x00000000 0x00000022
      0x90: 0x616600c0 0x00000000 0x00000000 0x00000000
      0xa0: 0xfe110001 0x00c00000 0x00000015 0x0000001b
      0xb0: 0x00000000 0x00000000 0x00000000 0x00000000
      0xc0: 0x00000000 0x00000000 0x00000000 0x00000000
      0xd0: 0x00000000 0x00000000 0x00000000 0x00000000
      0xe0: 0x00000000 0x00000000 0x00000000 0x00000000
      0xf0: 0x00000000 0x00000000 0x00000000 0x00000000
    pci5: driver added
    cbb0: PC Card card activation failed
    pccard0: <16-bit PCCard bus> on cbb0
    pccard0: chip_socket_enable
    pccard0: read_cis
    pcib4: pccard0 requested memory range 0xf0200000-0xf03fffff: good
    cis mem map 0xeb672000 (resource: 0xf0230000)
    pccard0: CIS tuple chain:
    CISTPL_DEVICE type=null speed=null
     01 02 00 ff
    CISTPL_DEVICE_A type=eeprom speed=250ns
     17 03 41 00 ff
    CISTPL_MANFID
     20 04 92 01 10 07
    CISTPL_FUNCID
     21 02 06 00
    CISTPL_VERS_1
     15 31 07 00 53 69 65 72 72 61 20 57 69 72 65 6c
     65 73 73 00 41 43 37 37 35 00 45 44 47 45 20 4e
     65 74 77 6f 72 6b 20 41 64 61 70 74 65 72 00 52
     31 00 ff
    CISTPL_CONFIG
     1a 05 01 03 00 07 73
    CISTPL_CFTABLE_ENTRY
     1b 09 c1 41 19 01 55 66 30 f8 ff
    CISTPL_END
     ff
    cis mem map eb672000
    CISTPL_LINKTARGET expected, code ff observed
    pccard0: check_cis_quirks
    pccard0: using CIS quirks for Sierra Wireless, AC775, EDGE Network
    Adapter, R1
    pccard0: CIS version PC Card Standard 7.0
    pccard0: CIS info: Sierra Wireless, AC775, EDGE Network Adapter, R1
    pccard0: Manufacturer code 0x192, product 0x710
    pccard0: function 1: serial port, ccr addr 700 mask 73
    pccard0: function 1, config table entry 32: I/O card; irq mask 3fbc;
    iomask 0, iospace 3f8-3ff; io8 irqlevel
    pccard0: functions scanning
    pccard0: Card has 1 functions. pccard_mfc is 0
    pccard0: I/O rid 0 start 3f8 end 3ff
    pcib4: pccard0 requested I/O range 0x3f8-0x3ff: in range
    pccard0: Allocation failed for cfe 32
    pccard0: No config entry could be allocated.

    ---
    ***************
    *** 180,186 ****
    --- 180,228 ----
            0,                      /* maxtwins */
      };
    + static struct pccard_function pcmcia_sierra_a555_func1 = {
    +       1,                      /* function number */
    +       PCCARD_FUNCTION_SERIAL,
    +       0x24,                   /* last cfe number */
    +       0x700,                  /* ccr_base */
    +       0x73,                   /* ccr_mask */
    + };
    +
    + static struct pccard_config_entry pcmcia_sierra_a555_func1_cfe0 = {
    +       0x20,                   /* cfe number */
    +       PCCARD_CFE_IO8 | PCCARD_CFE_IRQLEVEL, PCCARD_IFTYPE_IO,
    +       1,                      /* num_iospace */
    +       0,                      /* iomask */
    +       { { 0x0008, 0x3f8 } },  /* iospace */
    +       0x3fbc,                 /* irqmask */
    +       0,                      /* num_memspace */
    +       { },                    /* memspace */
    +       0,                      /* maxtwins */
    + };
    + /* Sierra */
    + #define       PCMCIA_VENDOR_SIERRA    0x0192
    + #define       PCMCIA_CIS_SIERRA_AC710 { NULL, NULL, NULL, NULL }
    + #define       PCMCIA_PRODUCT_SIERRA_AC710     0x0710
    + #define       PCMCIA_CIS_SIERRA_A550  { NULL, NULL, NULL, NULL }
    + #define       PCMCIA_PRODUCT_SIERRA_A550      0xa550
    + #define       PCMCIA_CIS_SIERRA_A555  { NULL, NULL, NULL, NULL }
    + #define       PCMCIA_PRODUCT_SIERRA_A555      0xa555
    + #define       PCMCIA_CIS_SIERRA_A710  { NULL, NULL, NULL, NULL }
    + #define       PCMCIA_PRODUCT_SIERRA_A710      0xa710
    +
      static struct pccard_cis_quirk pccard_cis_quirks[] = {
    +       { PCMCIA_VENDOR_SIERRA, PCMCIA_PRODUCT_SIERRA_A550,
    +         PCMCIA_CIS_INVALID,
    +         &pcmcia_sierra_a555_func1, &pcmcia_sierra_a555_func1_cfe0 },
    +       { PCMCIA_VENDOR_SIERRA, PCMCIA_PRODUCT_SIERRA_A555,
    +         PCMCIA_CIS_INVALID,
    +         &pcmcia_sierra_a555_func1, &pcmcia_sierra_a555_func1_cfe0 },
    +       { PCMCIA_VENDOR_SIERRA, PCMCIA_PRODUCT_SIERRA_A710,
    +         PCMCIA_CIS_INVALID,
    +         &pcmcia_sierra_a555_func1, &pcmcia_sierra_a555_func1_cfe0 },
    +       { PCMCIA_VENDOR_SIERRA, PCMCIA_PRODUCT_SIERRA_AC710,
    +         PCMCIA_CIS_INVALID,
    +         &pcmcia_sierra_a555_func1, &pcmcia_sierra_a555_func1_cfe0 },
            { PCMCIA_VENDOR_3COM, PCMCIA_PRODUCT_3COM_3CXEM556, PCMCIA_CIS_INVALID,
              &pccard_3cxem556_func0, &pccard_3cxem556_func0_cfe0 },
            { PCMCIA_VENDOR_3COM, PCMCIA_PRODUCT_3COM_3CXEM556, PCMCIA_CIS_INVALID,
    _______________________________________________
    freebsd-hackers@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
    To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
    

  • Next message: Xin LI: "Re: SSH From within a Jail"

    Relevant Pages

    • apa-1460 Adaptec pccard
      ... Since a certain lot of time my scsi card doesn't work. ... Below is the result of the cis debug, ... pccard0: on cbb0 ...
      (freebsd-current)
    • cbb problem (long post)
      ... pcib2: device cbb0 requested decoded memory range 0x20000000-0xffffffff ... pccard0: ... PC Card card activation failed ...
      (freebsd-current)
    • Re: Cisco driver stopped working with -current
      ... >>pcmcia card is now picked up by the xe driver rather than an. ... <ACPI PCI bus> on pcib0 ... slot 2 INTA is routed to irq 9 ... pccard0: ...
      (freebsd-current)
    • CF cards / ATAng / interrupt code still broken
      ... ago has problems to boot with my 128MB noname CF card inserted. ... The panic output is very similar the problem Alex Dupre reported ... pccard0: CIS version PCCARD 2.0 or 2.1 ... GEOM: create disk ad0 dp=0xc2972b60 ...
      (freebsd-current)
    • Re: Sierra Wireless / AC775 / Loading an external cisfile as a quirck
      ... The actual data on the card is ... So I am looking for a way to either import a CIS file dynamically; ... time - or to translate a CIS file in what I assume should be a quirk entry ...
      (freebsd-hackers)