Multipurpose Network Processor WLAN Device Driver Version 1.0 Hynix Semiconductor Inc.
- ii -
Copyright. 2002 Hynix Semiconductor Inc. ALL RIGHTS RESERVED. No part of this publication may be copied in any form, by photocopy, microfilm, retrieval system, or by any other means now known or hereafter invented without the prior written permission of Hynix Semiconductor Inc. Hynix Semiconductor Inc. #1, Hyangjeong-dong, Heungduk-gu, Cheongju-si, Chungcheonbuk-do, Republic of Korea Homepage: www.hynix.com Technical Support Homepage: www.softonchip.com H.Q. of Hynix Semiconductor Inc. Marketing Site Sales in Korea Telephone: 82-(0)43-270-4070 Telephone: 82-(0)43-270-4085 Telephone: 82-(0)2-3459-3738 Facsimile: 82-(0)43-270-4099 Facsimile: 82-(0)43-270-4099 Facsimile: 82-(0)2-3459-3945 World Wide Sales Network U.S.A. Taiwan Hong Kong Telephone: 1-408-232-8757 Telephone: 886-(0)2-2500-8357 Telephone: 852-2971-1640 Facsimile: 1-408-232-8135 Facsimile: 886-(0)2-2509-8977 Facsimile: 852-2971-1622 HMS30C7202 Datasheet, ver1.2 03 June. 03 - iii -
Proprietary Notice Hynix logo are trademarks of Hynix Semiconductor Inc. Neither the whole nor any part of the information contained in, or the product described in, this document may be adapted or reproduced in any material from excepts with the prior permission of the copyright holder. The product described in this document is subject to continuous developments and improvements. All particulars of the product and its use contained in this document are given by Hynix in good faith. However, all warranties implied or expressed, including but not limited to implied warranties or merchantability, or fitness for purpose, are excluded. This document is intended only to assist the reader in the use of the product. Hynix Semiconductor Inc. shall not be liable for any loss or damage arising from the use of any information in this document, or any error or omission in such information, or any incorrect use of the product. Hynix Semiconductor Inc. may make changes to specification and product description at any time without notice. Change Log Issue Date Change A-01 2003/07/25 Draft - iv -
TABLE OF CONTENTS 1 OVERVIEW... 2 2 INTEGRATING HOSTAP DRIVER ON UCLINUX... 3 2.1 MODIFY SOURCE CODE... 3 2.2 ADD TO UCLINUX PACKAGE AS A KERNEL IMAGE... 3 2.3 ADD TO PCMCIA PACKAGE... 3 3 BUILD... 5 4 START AP... 6 4.1 IWCONFIG... 6 1-1 -
1 Overview There are many open source projects for supporting Wireless LAN in Linux. Currently, the most of 802.11b chipset is supported. Wireless Extension is also developed for the configuration of WLAN environment. Generally, 802.11b chipsets support only Station (STA) mode or only Access Point (AP) mode. Prism chipset of Intersil is the only one supporting the both mode at same chipset. There are three open source projects for supporting AP using the Prism chip. linux-wlan-ng project (http://www.linux-wlan.org/) is the official open source project supported by Intersil. It needs a AP firmware Buy AP development kit from AbsoluteValue Systems or Buy reference board from Intersil. HostAP driver (http://hostap.epitest.fi/) doesn t need any special firmware. This is a Linux driver for wireless LAN cards based on Intersil's Prism2/2.5/3 chipset. The driver supports a so-called Host AP mode, i.e., it takes care of IEEE 802.11 management functions in the host computer and acts as an AP. This does not require any special firmware for the wireless LAN card. In addition to this, it has support for normal station operations in BSS and possible also in IBSS. Intersil's station firmware for Prism2 chipset supports also called Host AP mode in which the firmware takes care of time critical tasks like beacon sending and frame acknowledging, but leaves other management tasks to host computer driver. This driver implements basic functionality needed to initialize and configure Prism2-based cards, to send and receive frames, and to gather statistics. In addition, it includes an implementation of following IEEE 802.11 functions: authentication (and deauthentication), association (reassociation, and disassociation), data transmission between two wireless stations, power saving (PS) mode signaling and frame buffering for PS stations. The driver has also various features for development debugging and for researching IEEE 802.11 environments like access to hardware configuration records, I/O registers, and frames with 802.11 headers. Open AP project (http://opensource.instant802.com/) is the project for a complete product, not only driver. It uses HostAP driver for support AP. It also includes many other S/W modules for AP, Bridge, roaming, shell, telnet, boa and so on. It s form of kernel patch. To implement AP using NBP1100, we will HostAP driver on uclinux. Reference Site: Wireless resources for Linux http://www.hpl.hp.com/personal/jean_tourrilhes/linux/wireless.html 2-2 -
2 Integrating HostAP driver on uclinux Required resource: uclinux-dist-for_nbp1100 (include nbp1100 PCMCIA package) hostap-2002-09-12.tar.gz (http://hostap.epitest.fi/) 2.1 Modify source code (HOSTAP_DIR)/driver/modules/hostap_hw.c: line 3948 local->bus_m1_buf = (u8 *) kmalloc(prism2_data_maxlen, GFP_KERNEL); 2.2 Add to uclinux package as a kernel image copy (HOSTAP_DIR)/driver/module/* to (UCLINUX_DIR)/linux-2.4.x/drivers/net/wireless/ modify (UCLINUX_DIR)/linux-2.4.x/drivers/net/wireless/Config.in tristate ' Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)' CONFIG_HERMES tristate ' Host AP support for Prism2/2.5/3 IEEE 802.11b' CONFIG_HOSTAP dep_tristate ' Hermes PCMCIA card support' CONFIG_PCMCIA_HERMES $CONFIG_HERMES dep_tristate ' Host AP driver for Prism2/2.5/3 PC Cards' CONFIG_HOSTAP_CS $CONFIG_HOSTAP $CONFIG_PCMCIA modify (UCLINUX_DIR)/linux-2.4.x/drivers/net/wireless/Makefile export-objs := airo.o orinoco.o hermes.o hostap.o hostap_crypt.o obj-$(config_airo_cs) += airo_cs.o airo.o obj-$(config_hostap) += hostap.o hostap_crypt.o hostap_crypt_wep.o obj-$(config_hostap_cs) += hostap_cs.o 2.3 Add to PCMCIA package modify (UCLINUX_DIR)/linux-2.4.x/drivers/pcmcia/ds.c init_pcmcia_ds() -> #ifdef CONFIG_PROC_FS if (proc_pccard) create_proc_read_entry("drivers",0,proc_pccard,proc_read_drivers,null); init_status = 0; #endif { int sock = 0; bind_info_t bind_info; adjust_t adjust; adjust.resource = RES_IO_RANGE; adjust.resource.io.baseport = 0xa0000000; adjust.resource.io.numports = 0xffff; adjust.action = ADD_MANAGED_RESOURCE; 3-3 -
pcmcia_adjust_resource_info(socket_table_ds[sock].handle, &adjust); adjust.resource = RES_MEMORY_RANGE; adjust.resource.memory.base = 0xa8000000; adjust.resource.memory.size = 0x0001000; adjust.action = ADD_MANAGED_RESOURCE; pcmcia_adjust_resource_info(socket_table_ds[sock].handle, &adjust); strcpy(bind_info.dev_info, "hostap_cs"); strcpy(bind_info.name, "hostap_cs"); bind_info.function = 0; bind_info.next = 0; if ( bind_request(sock, &bind_info)!=0) { printk("hostap_cs: Card Services release " "does not match!\n"); } } 4-4 -
3 Build make xconfig select kerneloption->network device->wireless (non-harm radio) -> hostap support / hostap driver make lib_only make user_only make romfs copy (HOSTAP_DIR)/driver/etc/hostap_cs.conf -> (UCLINUX_DIR)/romfs/etc/pcmcia/ make image make 5-5 -
4 Start AP Required Compenent: PCMCIA support (by yonglee) HostAP support/hostap driver iwconfig iwpriv Note: Make sure that NBP1100 is in PC-CARD mode, not in CARD-BUS mode. Start AP: ifconfig wlan0 192.169.1.12 up iwconfig wlan0 essid= ANY_ESSID You can adjust options for WLAN using Wireless Extension utilities for Linux, iwconfig, iwspy, iwpriv and so on. For more usage, refer http://www.hpl.hp.com/personal/jean_tourrilhes/linux/linux.wireless.extensions.html, (HOSTAP_DIR)/README.prism2 4.1 iwconfig Usage: iwconfig interface [essid {NN on off}] /* ESS ID */ [nwid {NN on off}] /* BSS ID */ [freq N.NNNN[k M G]] [channel N] [sens N] /* signal level threshold for reception */ [nick N] [rate {N auto fixed}] [rts {N auto fixed off}] [frag {N auto fixed off}] [enc NNNN-NNNN] /* encryption key */ [power { period N timeout N}] [txpower N {mw dbm}] 6-6 -