Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Is CONFIG_VIRTUAL_BUS appropriate?

ytkim
2004-10-18
2013-04-08
  • ytkim
    ytkim
    2004-10-18

    Hi, Dave.

    I have made a 801.11b AP with CONFIG_VIRTUAL_BUS on the ARM system bus and HOSTAP driver.

    Thank you very much.

     
  • J.Bright
    J.Bright
    2004-10-19

    Our hardware does not have a PCI or ISA bus and also does not have a tcic or i82356 (or compatible) host controller. PCMCIA registers are mapped into the memory at a pre-defined address. Anything with the PCMCIA interface could only be done by writing to and reading from the PCMCIA registers in the memory.

    Building the pcmcia-cs modules with CONFIG_PCI or CONFIG_ISA not set results in error "No bus architectures defined". Would CONFIG_VIRTUAL_BUS help in this situation. Any guideline in this regard will be greatly appreciated.

     
    • ytkim
      ytkim
      2004-10-21

      Hi, J.Bright.

      First, I have patched all pcmcia-cs to linux kernel and compiled as static, not module.
      I have wrote a socket driver from the i82365.c and modified cistpl.c and hostap_cs.c because of our address bus lines connected to pcmcia socket.
      This socket socket driver is not a general socket driver but a special driver for my 16bit PC-Card.

      i82365.c has two parts - PCI, ISA.
      I have modified almost ISA part and added these functions for CONFIG_VIRTUAL_BUS,

      static struct bus_operations iobus_operations = {
              NULL,
              iobus_in,
              iobus_ins,
              iobus_out,
              iobus_outs,
              iobus_ioremap,
              iobus_iounmap,
              iobus_read,
              iobus_write,
              iobus_copy_from,
              iobus_copy_to,
              iobus_request_irq,
              iobus_free_irq
      };

      and more info for you is

          t[i].cap.features |= SS_CAP_PCCARD;    //16-bit PC cards
          t[i].cap.features |= SS_CAP_VIRTUAL_BUS;//card access must be performed
                              //using the bus operations
                              //table, rather than using
                              //native bus operations.
          t[i].cap.features |= SS_CAP_STATIC_MAP;    //fixed positioned window
          t[i].cap.features |= SS_CAP_PAGE_REGS;     //allow 32bit addressing
          t[i].cap.features |= SS_CAP_MEM_ALIGN;    //fixed sized window
          t[i].cap.irq_mask = 0xffff;
          t[i].cap.map_size = 0xf00000;    //16MB
          t[i].cap.io_offset = pcmcia_base;    //IO Memory Base
          t[i].cap.pci_irq = 0;
          t[i].cap.cb_dev = NULL;
          t[i].cap.bus = &iobus_operations;

          t[i].cs_irq = isa_irq;.

      'pcmcia_base' is the ioremaped address pointing to I/O memory not attribute memory.
      't[i].cap.io_offset' is no more valid in recent pcmcia-cs and I have no idea.
      t[i] is socket_info_t defined in i82365.c.

      Good luck !!!