background image

LA-51XX Compact Flash Adapter

Driver Programmer’s Guide

Summary of Contents for LA-51XX

Page 1: ... LA 51XX Compact Flash Adapter Driver Programmer s Guide ...

Page 2: ... reserved MOTOROLA and the Stylized M Logo are registered in the US Patent Trademark Office Symbol is a registered trademark of Symbol Technologies Inc All other product or service names are the property of their respective owners ...

Page 3: ...re Upload 2 3 2 1 5 Firmware Upload Flow 2 4 2 2 Management Path 2 5 2 2 1 PIMFOR 2 5 2 2 2 Getoid 2 6 2 2 3 Setoid 2 8 2 3 Data Path 2 10 2 3 1 Tx Data Path 2 10 2 3 2 Rx Data Path 2 11 2 4 Important Data Structures 2 12 2 4 1 Data Path Structures 2 12 2 4 2 Management Path Structures 2 14 2 5 Driver API Definition 2 16 2 5 1 Data Path APIs 2 16 2 5 2 Management Path APIs 2 17 Chapter 3 Applicati...

Page 4: ...TOC 2 LA 51XX Compact Flash Adapter Driver Programmer s Guide ...

Page 5: ...mware runs from Internal Memory only and supports wireless client mode functionality only LAN Local Area Network Linux Linux Operating System MAC Medium Access Control NIC Network Interface Controller OID Object Identifier OS Operating System PCMCIA Personal Computer Memory Card International Association 16 Bit PIMFOR Proprietary Integrated Mechanism For Object Relay RAM Random Access Memory ROM R...

Page 6: ... Firmware provides 802 11functionality It receives 802 3 data packets from the driver on host converts them into 802 11 data packets and sends them to the wireless media Similarly it receives 802 11 packets from wireless media converts them to 802 3 packet and passes them to the driver on host The SHoC architecture implements majority of the 802 11 functionality on the WLAN device In some MAC arch...

Page 7: ...Introduction 1 3 SSN WPA with AES and TKIP ciphers and EAP and PSK authentication RSN WPA2 with AES and TKIP ciphers and EAP and PSK authentication ...

Page 8: ...1 4 LA 51XX Compact Flash Adapter Driver Programmer s Guide ...

Page 9: ...is larger it cannot be uploaded in a single step It is therefore necessary to split the firmware into a number of smaller blocks and to have a simple program on the device which accepts and disposes these firmware blocks The former is solved by the WRM file format the latter is solved by the Upload Helper 2 1 1 WRM file format The WRM format is an array of n blocks which must be parsed by the driv...

Page 10: ...of readiness before it may conclude that the upload failed for some reason 2 1 2 Upload Helper Function The UH forms the content of the first WRM block and the Boot flag tells the driver to RAM boot after the block is uploaded This effectively boots the UH which installs itself at address 0 ITCM and starts communicating with the driver through the software defined READY interrupt mask 0x2000 as th...

Page 11: ...ue with the regular PCI protocol initialization Please refer 1 for PCI protocol initialization procedure 2 1 4 Overview of Firmware Upload The firmware upload process entails the following 1 The driver copies UH into device AHB RAM memory 2 The driver issue a RAM Boot to boot the UH 3 On booting UH installs itself at address 0 ITCM and starts communicating with the driver using PCI interrupt Softw...

Page 12: ...r Driver Programmer s Guide 2 1 5 Firmware Upload Flow This diagram depicts the complete initialization flow of the 802 11 SHoC device and shows the information flow between various procedures called during the initialization process ...

Page 13: ...cts as a transport of management information PIMFOR peers may assume correctly formatted packets and mutual understanding of the MIB This design decision is justified by the assumption that PIMFOR is meant to be a management interface internal to a product for example between host driver and firmware It is not meant to be used by third party applications directly The generic packet interface of PI...

Page 14: ...ost to a specific situation or change The OID and value contained in the Trap indicate to which variable the notification refers Reserved is not being used and reserved for future use OID The OID is a 32 bit value uniquely representing a variable or managed object in a system There is only one OID involved in a PIMFOR packet Value Length Value Length indicates the length of the value that follows ...

Page 15: ...et is for PIMFOR_OP_SET or PIMFOR_OP_GET 3 The structure is added into Tx Control queue after converting into fragment 4 Increments Driver_Current_fragment queue value This queue pointer is used to maintain synchronization between device and host Driver interrupts the device for the packet in the transmit control queue 5 The driver suspends the application until a response is received from the fir...

Page 16: ...rogrammer s Guide 2 2 2 2 Flow Diagram 2 2 3 Setoid This section depicts the flow of management control information when a setoid is called from the application running on host to set the configurable parameters on the firmware running on host ...

Page 17: ...length uint32_t oid uint8_t data 2 The s_sm_conf structure is passed to sm_drv_conf which sets the Pimfor Header and reads the value of flags set and checks if the packet is for PIMFOR_OP_SET or PIMFOR_OP_GET 3 The structure is added into Tx Control queue after converting into fragment Driver interrupts the device for the packet in the transmit control queue 4 Increments Driver_Current_fragment qu...

Page 18: ...gram 2 3 1 2 Flow Description 1 The Network Stack delivers an 802 3 data frame for transmission to the Wireless Card by calling the driver transmit function The transmit function verifies whether the data frame can be transmitted or not by assessing the queue availability 2 It then converts the socket buffer to be transmitted into frame format having ic_msg and s_sm_frame header and adds it to the...

Page 19: ...ion such that the data is returned in one of these frames Then it replenishes these frames periodically 2 The device DMAs the received data frame through the PCI Bus interface to the host Please refer 1 for PCI host interface description 3 The device informs the driver a frame has been placed in the receive queue by generating an Update IRQ after updating the receive data queue device counter 4 Th...

Page 20: ...16_t size uint16_t flags define CB_QCOUNT 4 define CB_RX_DATA_QSIZE 8 define CB_TX_DATA_QSIZE 32 define CB_RX_CTRL_QSIZE 4 define CB_TX_CTRL_QSIZE 4 struct control_block uint32_t driver_curr_frag CB_QCOUNT uint32_t device_curr_frag CB_QCOUNT struct fragment rx_data CB_RX_DATA_QSIZE struct fragment tx_data CB_TX_DATA_QSIZE struct fragment rx_high_data CB_RX_DATA_QSIZE struct fragment tx_high_data C...

Page 21: ... struct s_fragq_hdl tx_high_data_hdl CB_TX_DATA_QSIZE struct s_fragq_hdl rx_control_hdl CB_RX_CTRL_QSIZE struct s_fragq_hdl tx_control_hdl CB_TX_CTRL_QSIZE struct pci_hif_local_data struct pci_dev pci_device spinlock_t cb_lock struct control_block control_block uint32_t fragment_c CB_QCOUNT struct local_control_block local_cb_handle uint32_t generate_update_interrupt void remapped_device_base dma_...

Page 22: ... s_sm_conf uint16_t flags uint16_t length uint32_t oid uint8_t data typedef struct uint8_t dest_mac 6 uint8_t src_mac 6 uint16_t ether_type uint8_t version uint8_t operation uint32_t oid uint8_t reserved 2 uint16_t length PimforHeader For more information on the PimforHeader refer PIMFOR Header Format ...

Page 23: ...SHoC Driver Design 2 15 struct s_ic_msg uint8_t channel uint8_t flags uint16_t length uint32_t address struct s_sm_frame frame struct s_ic_link void next void prev link void data ...

Page 24: ...rface to the operating system running on host and the firmware running on device to handle ingress and egress calls of data transfer These packets are Ethernet 802 3 packets Management APIs are the function s which provide an interface to the operating system running on host and the firmware running on device to handle ingress and egress calls of control information These packets are formatted wit...

Page 25: ...SHoC Driver Design 2 17 2 5 2 Management Path APIs ...

Page 26: ...2 18 LA 51XX Compact Flash Adapter Driver Programmer s Guide ...

Page 27: ...is used to set any OID on the firmware Usage setoid device oid data type parameters Supported data types mac long string ssid vdcf key stakey mlme frequencies mt sta attachment ss ssmckey statsc stasetss binary seq double tspecdesc debug short ...

Page 28: ...s Guide 3 2 getoid This application is used to get any OID value from the firmware Usage getoid device oid type size Supported data types mac long string ssid vdcf key stakey mlme frequencies sta bss bssex bsslist ss stats ssmckey stasc binary seq double ...

Page 29: ... irrespective of the interface used To obtain a fully functional driver an interface dependent file should be included For example if PC 16 interface is used an additional file which contains PC 16 specific APIs should be included sm_drv_pc16 c This file contains all APIs specific to the PC 16 subsystem sm_drv_netlink c This file contains all APIs required to provide Netlink Interface ...

Page 30: ...4 2 LA 51XX Compact Flash Adapter Driver Programmer s Guide ...

Page 31: ......

Page 32: ...MOTOROLA INC 1303 E ALGONQUIN ROAD SCHAUMBURG IL 60196 http www motorola com 72E 104392 01 Revision A August 2007 ...

Reviews: