Introduction 1.1 Purpose The purpose of this document is to describe the APIs implemented on the Linux based LA-51XX Compact Flash Adapter driver to communicate with an 802.11 device running with SHoC (Self Hosted Client) firmware. 1.2 Definitions Acronyms and Abbreviation •...
1-2 LA-51XX Compact Flash Adapter Driver Programmer’s Guide • WLAN - Wireless LAN. • WRM - The file format containing the firmware 1.3 System Architecture The following figure depicts the system architecture comprising the SHoC firmware, SHoC driver and applications that interact with driver to configure SHoC firmware: SHoC Driver: The SHoC driver provides an interface between the firmware running on the device and the operating system running on the host.
Page 7
Introduction • SSN/WPA, with AES and TKIP ciphers, and EAP and PSK authentication • RSN/WPA2, with AES and TKIP ciphers, and EAP and PSK authentication.
SHoC Driver Design The SHoC driver is designed for embedded systems. It works with the SHoC firmware running on an 802.11 device. The following sections describe the functionalities and components of the driver. 2.1 Initialization After the device has been powered up, the driver is responsible for writing a firmware image into the device's internal memory.
2-2 LA-51XX Compact Flash Adapter Driver Programmer’s Guide The B-bit is the most significant bit of the 32-bit (little endian) MAX_WAIT field. When set, B-bit tells the driver to issue a RAM-Boot after the corresponding block has been uploaded. A RAM-boot causes the ARM to reset and start executing code from the start of SRAM.
SHoC Driver Design NOTE: The UH expects all uploaded blocks start with a well-formatted header. This header defines the Destination where the binary data (red) inside the block should be copied. If no-copy (NC) flag (L) is set, UH should skip copying the binary data. Size defines how many bytes of binary data there are. Jump contains the address the UH should jump to (by means of a branch instruction) when it is done with the block at hand.
2-4 LA-51XX Compact Flash Adapter 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.
SHoC Driver Design 2.2 Management Path This topic discusses programming interface between the device and the host. The management information is encapsulated by means of the ‘Proprietary Integrated Mechanism For Object Relay’ (PIMFOR) and conveyed between the host and device. 2.2.1 PIMFOR Management information is modeled as a set of variables (or managed objects) residing in an internal management information base (MIB).
2-6 LA-51XX Compact Flash Adapter Driver Programmer’s Guide PIMFOR Header Description Version: The current PIMFOR version. Operation: The operation is one of the following: Get and Set are only sent by a PIMFOR sender such as application/ driver; Response, Error, and Trap are only sent by a PIMFOR receiver i.e.
Page 15
SHoC Driver Design 2.2.2.1 Flow Description 1. When the driver receives the request from the getoid application through Netlink Interface, it frames the request in the s_sm_conf format using sm_drv_get() function: struct s_sm_conf uint16_t flags; uint16_t length; uint32_t oid; uint8_t *data; 2.
2-8 LA-51XX Compact Flash Adapter Driver Programmer’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
SHoC Driver Design 2.2.3.1 Flow Description 1. When the driver receives the request from the setoid application, it frames the request in the s_sm_conf format using sm_drv_set() function: struct s_sm_conf uint16_t flags; uint16_t 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.
2-10 LA-51XX Compact Flash Adapter Driver Programmer’s Guide 2.3 Data Path The Data Path provides an interface 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.
2-11 SHoC Driver Design 4. The driver issues the Update Interrupt to the device. The device on obtaining the interrupt, will initiate the DMA of the data buffer. 5. Once the frame is obtained by the firmware on the device, it converts the frame (802.3 format) to the 802.11 format and transmits on the air.
2-12 LA-51XX Compact Flash Adapter Driver Programmer’s Guide 2.4 Important Data Structures These are the control block data structures which can be sub-divided into Data and Management path structures based on their functionalities. 2.4.1 Data Path Structures struct fragment uint32_t host_address;...
2-16 LA-51XX Compact Flash Adapter Driver Programmer’s Guide 2.5 Driver API Definition APIs used by SHoC driver can be broadly sub-divided into Data path APIs and Management APIs. • Data Path 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 data transfer.
Applications 3.1 setoid This application 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 •...
3-2 LA-51XX Compact Flash Adapter Driver Programmer’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 •...
Source Tree Description 4.1 Source Tree Description This file contains all the API(s) which are independent of device interface. It sm_drv.c provides the basic functionality of the driver irrespective of the interface used. To obtain a fully functional driver an interface dependent file should be included.