Motorola LA-51XX Driver Programmer's Manual

Compact flash adapter

Advertisement

Quick Links

LA-51XX Compact Flash Adapter
Driver Programmer's Guide

Advertisement

Table of Contents
loading

Summary of Contents for Motorola LA-51XX

  • Page 1 LA-51XX Compact Flash Adapter Driver Programmer’s Guide...
  • Page 2 © 2007 Motorola, Inc. All rights 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: Table Of Contents

    Contents Chapter 1: Introduction 1.1 Purpose ..................1-1 1.2 Definitions Acronyms and Abbreviation .
  • Page 4 TOC-2 LA-51XX Compact Flash Adapter Driver Programmer’s Guide...
  • Page 5: Chapter 1: Introduction

    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 •...
  • Page 6: System Architecture

    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.
  • Page 8 1-4 LA-51XX Compact Flash Adapter Driver Programmer’s Guide...
  • Page 9: Chapter 2: Shoc Driver Design

    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.
  • Page 10: Upload Helper Function

    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.
  • Page 11: Tasks Performed By The Driver

    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.
  • Page 12: Firmware Upload Flow

    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.
  • Page 13: Management Path

    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).
  • Page 14: Getoid

    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.
  • Page 16: Setoid

    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.
  • Page 18: Data Path

    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.
  • Page 19: Rx Data Path

    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.
  • Page 20: Important Data Structures

    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;...
  • Page 21 2-13 SHoC Driver Design struct s_fragq_hdl struct s_ic_msg* ic_msg; uint32_t ic_msg_flags; dma_addr_t dma_handle; struct local_control_block struct s_fragq_hdl rx_data_hdl[CB_RX_DATA_QSIZE]; struct s_fragq_hdl tx_data_hdl[CB_TX_DATA_QSIZE]; struct s_fragq_hdl rx_high_data_hdl[CB_RX_DATA_QSIZE]; 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;...
  • Page 22: Management Path Structures

    2-14 LA-51XX Compact Flash Adapter Driver Programmer’s Guide 2.4.2 Management Path Structures struct 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;...
  • Page 23 2-15 SHoC Driver Design 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: Driver Api Definition

    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.
  • Page 25: Management Path Apis

    2-17 SHoC Driver Design 2.5.2 Management Path APIs...
  • Page 26 2-18 LA-51XX Compact Flash Adapter Driver Programmer’s Guide...
  • Page 27: Chapter 3: Applications

    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 •...
  • Page 28: Getoid

    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 •...
  • Page 29: Chapter 4: Source Tree Description

    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.
  • Page 30 4-2 LA-51XX Compact Flash Adapter Driver Programmer’s Guide...
  • Page 32 MOTOROLA INC. 1303 E. ALGONQUIN ROAD SCHAUMBURG, IL 60196 http://www.motorola.com 72E-104392-01 Revision A August 2007...

Table of Contents