[haiku-commits] r40551 - haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx

  • From: kallisti5@xxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 18 Feb 2011 21:30:06 +0100 (CET)

Author: kallisti5
Date: 2011-02-18 21:30:05 +0100 (Fri, 18 Feb 2011)
New Revision: 40551
Changeset: http://dev.haiku-os.org/changeset/40551

Modified:
   
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemDDR.cpp
   
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemDevice.cpp
   
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemDevice.h
   
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemLED.h
   
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemNVM.cpp
   
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemNVM.h
   haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Driver.cpp
   haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Driver.h
   
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Settings.cpp
   haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Settings.h
Log:
no functional change; header copyright correction; more spacing/line-length 
cleanup, yes there a lot more to go

Modified: 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemDDR.cpp
===================================================================
--- 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemDDR.cpp
    2011-02-18 12:32:18 UTC (rev 40550)
+++ 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemDDR.cpp
    2011-02-18 20:30:05 UTC (rev 40551)
@@ -8,14 +8,17 @@
  *     Description: Wrangle Beceem volatile DDR memory.
  */
 
+
 #include "Settings.h"
 #include "BeceemDDR.h"
 
+
 BeceemDDR::BeceemDDR()
 {
   TRACE("Debug: Load DDR handler\n");
 }
 
+
 status_t
 BeceemDDR::DDRInit(WIMAX_DEVICE* swmxdevice)
 {

Modified: 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemDevice.cpp
===================================================================
--- 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemDevice.cpp
 2011-02-18 12:32:18 UTC (rev 40550)
+++ 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemDevice.cpp
 2011-02-18 20:30:05 UTC (rev 40551)
@@ -1,18 +1,24 @@
 /*
- *     Beceem WiMax USB Driver.
+ *     Beceem WiMax USB Driver
  *     Copyright (c) 2010 Alexander von Gluck <kallisti5@xxxxxxxxxxx>
  *     Distributed under the terms of the GNU General Public License.
  *
- *     Based on GPL code developed by: Beceem Communications Pvt. Ltd
+ *  Based on GPL code developed by: Beceem Communications Pvt. Ltd
  *
- *     Driver for USB Ethernet Control Model devices
- *     Copyright (C) 2008 Michael Lotz <mmlr@xxxxxxxx>
- *     Distributed under the terms of the MIT license.
+ *     Authors:
+ *             Alexander von Gluck, <kallisti5@xxxxxxxxxxx>
  *
+ *     Partially using:
+ *             USB Ethernet Control Model devices
+ *                     (c) 2008 by Michael Lotz, <mmlr@xxxxxxxx>
+ *             ASIX AX88172/AX88772/AX88178 USB 2.0 Ethernet Driver
+ *                     (c) 2008 by S.Zharski, <imker@xxxxxx>
+ *
  *     This code is the entry point for the operating system to
  *     Beceem device communications.
  */
 
+
 #include <sys/ioctl.h>
 #include <unistd.h>
 
@@ -24,10 +30,10 @@
 #include "BeOSCompatibility.h" // for pseudo mutex
 #endif
 
+#include "BeceemDevice.h"
 #include "Driver.h"
 #include "Settings.h"
 
-#include "BeceemDevice.h"
 
 mutex gUSBLock;
 

Modified: 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemDevice.h
===================================================================
--- 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemDevice.h
   2011-02-18 12:32:18 UTC (rev 40550)
+++ 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemDevice.h
   2011-02-18 20:30:05 UTC (rev 40551)
@@ -1,17 +1,19 @@
 /*
- *     Beceem WiMax USB Driver.
- *     Copyright (c) 2010 Alexander von Gluck <kallisti5@xxxxxxxxxxx>
- *     Distributed under the terms of the GNU General Public License.
+ *     Beceem WiMax USB Driver
+ *     Copyright 2010-2011 Haiku, Inc. All rights reserved.
+ *     Distributed under the terms of the MIT license.
  *
- *     Based on GPL code developed by: Beceem Communications Pvt. Ltd
+ *     Authors:
+ *             Alexander von Gluck, <kallisti5@xxxxxxxxxxx>
  *
- *     Driver for USB Ethernet Control Model devices
- *     Copyright (C) 2008 Michael Lotz <mmlr@xxxxxxxx>
- *     Distributed under the terms of the MIT license.
- *
- *     Description: Wrangle Beceem wimax usb device
+ *     Partially using:
+ *             USB Ethernet Control Model devices
+ *                     (c) 2008 by Michael Lotz, <mmlr@xxxxxxxx>
+ *             ASIX AX88172/AX88772/AX88178 USB 2.0 Ethernet Driver
+ *                     (c) 2008 by S.Zharski, <imker@xxxxxx>
  */
 
+
 #ifndef _USB_BECEEM_DEVICE_H_
 #define _USB_BECEEM_DEVICE_H_
 

Modified: 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemLED.h
===================================================================
--- 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemLED.h  
    2011-02-18 12:32:18 UTC (rev 40550)
+++ 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemLED.h  
    2011-02-18 20:30:05 UTC (rev 40551)
@@ -1,42 +1,52 @@
 /*
- *     Beceem WiMax USB Driver.
- *     Copyright (c) 2010 Alexander von Gluck <kallisti5@xxxxxxxxxxx>
+ *     Beceem WiMax USB Driver
+ *     Copyright 2010-2011 Haiku, Inc. All rights reserved.
  *     Distributed under the terms of the MIT license.
+ *
+ *     Authors:
+ *             Alexander von Gluck, <kallisti5@xxxxxxxxxxx>
  */
-
 #ifndef _USB_BECEEM_LED_H_
 #define _USB_BECEEM_LED_H_
 
+
 #include <ByteOrder.h>
-
 #include "DeviceStruct.h"
 
+
 class BeceemLED
 {
-
 public:
-                                       BeceemLED();
-               status_t        LEDInit(WIMAX_DEVICE* wmxdevice);
-               status_t        LEDThreadTerminate();
-               status_t        LEDOff(unsigned int index);
-               status_t        LEDOn(unsigned int index);
-               status_t        LightsOut();
-static status_t        LEDThread(void *cookie);
+                                                               BeceemLED();
+                       status_t                        LEDInit(WIMAX_DEVICE* 
wmxdevice);
+                       status_t                        LEDThreadTerminate();
+                       status_t                        LEDOff(unsigned int 
index);
+                       status_t                        LEDOn(unsigned int 
index);
+                       status_t                        LightsOut();
+       static  status_t                        LEDThread(void *cookie);
 
-               WIMAX_DEVICE* pwmxdevice;
+                       WIMAX_DEVICE*           pwmxdevice;
 
-// yuck.  These are in a parent class
-virtual status_t       ReadRegister(unsigned int reg, size_t size, uint32_t* 
buffer){ return NULL; };
-virtual status_t       WriteRegister(unsigned int reg, size_t size, uint32_t* 
buffer){ return NULL; };
-virtual status_t       BizarroReadRegister(unsigned int reg, size_t size, 
uint32_t* buffer){ return NULL; };
-virtual status_t       BizarroWriteRegister(unsigned int reg, size_t size, 
uint32_t* buffer){ return NULL; };
+       // yuck.  These are in a parent class
+       virtual status_t                        ReadRegister(unsigned int reg,
+                                                                       size_t 
size, uint32_t* buffer)
+                                                                       { 
return NULL; };
+       virtual status_t                        WriteRegister(unsigned int reg,
+                                                                       size_t 
size, uint32_t* buffer)
+                                                                       { 
return NULL; };
+       virtual status_t                        BizarroReadRegister(unsigned 
int reg,
+                                                                       size_t 
size, uint32_t* buffer)
+                                                                       { 
return NULL; };
+       virtual status_t                        BizarroWriteRegister(unsigned 
int reg,
+                                                                       size_t 
size, uint32_t* buffer)
+                                                                       { 
return NULL; };
 
 private:
                status_t        GPIOReset();
 
-
 };
 
+
 typedef enum _LEDColors{
        RED_LED = 1,
        BLUE_LED = 2,
@@ -44,5 +54,6 @@
        GREEN_LED = 4
 } LEDColors;
 
+
 #endif // _USB_BECEEM_LED_H
 

Modified: 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemNVM.cpp
===================================================================
--- 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemNVM.cpp
    2011-02-18 12:32:18 UTC (rev 40550)
+++ 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemNVM.cpp
    2011-02-18 20:30:05 UTC (rev 40551)
@@ -20,6 +20,7 @@
 #include "BeceemDevice.h"
 #include "BeceemNVM.h"
 
+
 BeceemNVM::BeceemNVM()
 {
        TRACE("Debug: Load non-volatile memory handler\n");
@@ -84,7 +85,7 @@
        EEPROMBulkRead(0x0, 4, &uiData);
        if (uiData == BECM)
        {
-               TRACE_ALWAYS("Info: EEPROM non-volatile memory detected.\n");
+               TRACE_ALWAYS("Info: EEPROM nvm detected.\n");
                pwmxdevice->nvmType = NVM_EEPROM;
                pwmxdevice->nvmDSDSize = EEPROMGetSize();
                return B_OK;
@@ -95,9 +96,9 @@
                return B_ERROR;
 
        FlashBulkRead(0x0 + pwmxdevice->nvmFlashCalStart, 4, &uiData);
-       if(uiData == BECM)
+       if (uiData == BECM)
        {
-                       TRACE_ALWAYS("Info: Flash non-volatile memory 
detected.\n");
+                       TRACE_ALWAYS("Info: Flash nvm detected.\n");
                        pwmxdevice->nvmType = NVM_FLASH;
                        pwmxdevice->nvmDSDSize = FlashGetSize();
                        return B_OK;
@@ -105,7 +106,7 @@
 
        pwmxdevice->nvmType = NVM_UNKNOWN;
 
-       TRACE_ALWAYS("Error: Couldn't detect non-volatile storage method, found 
0x%X\n",
+       TRACE_ALWAYS("Error: Couldn't detect nvm storage method, found 0x%X\n",
                                uiData);
        return B_ERROR;
 }
@@ -125,7 +126,8 @@
        if (bSelectedChip == ChipIndex)
                return B_OK;
 
-       TRACE("Debug: Selecting chip %d for transaction at 0x%x\n", ChipIndex, 
offset);
+       TRACE("Debug: Selecting chip %d for transaction at 0x%x\n",
+               ChipIndex, offset);
 
        // Migrate selected chip to new selection
        bSelectedChip = ChipIndex;
@@ -136,7 +138,7 @@
        // TRACE("Reading GPIO config 0x%x\n", &GPIOConfig);
        // TRACE("Reading Flash config 0x%x\n", &FlashConfig);
 
-       switch(ChipIndex)
+       switch (ChipIndex)
        {
        case 0:
                PartNum = 0;
@@ -190,7 +192,7 @@
                // Increase offset by FlashCalibratedStart
                myOffset = offset + pwmxdevice->nvmFlashCalStart;
 
-               TRACE("Debug: Performing read of non-volatile flash memory at 
0x%x (%d)\n",
+               TRACE("Debug: Performing read of flash nvm at 0x%x (%d)\n",
                        myOffset, size);
 
                // If firmware was already pushed, Beceem notes a hardware bug 
here.
@@ -257,16 +259,21 @@
 BeceemNVM::FlashGetBaseAddr()
 {
        if (pwmxdevice->driverDDRinit == true) {
-               if (pwmxdevice->nvmFlashCSDone == true && 
pwmxdevice->nvmFlashRaw == false &&
-                       !((pwmxdevice->nvmFlashMajor == 1) && 
(pwmxdevice->nvmFlashMinor == 1)) ) {
+               if (pwmxdevice->nvmFlashCSDone == true
+                       && pwmxdevice->nvmFlashRaw == false
+                       && !((pwmxdevice->nvmFlashMajor == 1)
+                       && (pwmxdevice->nvmFlashMinor == 1))) {
                        return pwmxdevice->nvmFlashBaseAddr;
                } else {
                        return FLASH_CONTIGIOUS_START_ADDR_AFTER_INIT;
                }
        } else {
-               if (pwmxdevice->nvmFlashCSDone == true && 
pwmxdevice->nvmFlashRaw == false &&
-                       !((pwmxdevice->nvmFlashMajor == 1) && 
(pwmxdevice->nvmFlashMinor == 1)) ) {
-                       return pwmxdevice->nvmFlashBaseAddr | 
FLASH_CONTIGIOUS_START_ADDR_BEFORE_INIT;
+               if (pwmxdevice->nvmFlashCSDone == true
+                       && pwmxdevice->nvmFlashRaw == false
+                       && !((pwmxdevice->nvmFlashMajor == 1)
+                       && (pwmxdevice->nvmFlashMinor == 1))) {
+                       return pwmxdevice->nvmFlashBaseAddr
+                               | FLASH_CONTIGIOUS_START_ADDR_BEFORE_INIT;
                } else {
                        return FLASH_CONTIGIOUS_START_ADDR_BEFORE_INIT;
                }
@@ -298,7 +305,8 @@
 
        // Read SPI READQ Register, The output will be 4 bytes long
        // The ID is the first 3 bytes.
-       BizarroReadRegister(FLASH_SPI_READQ_REG, sizeof(RDID), (unsigned 
int*)&RDID);
+       BizarroReadRegister(FLASH_SPI_READQ_REG, sizeof(RDID),
+               (unsigned int*)&RDID);
 
        return (RDID >>8);
 }
@@ -325,16 +333,21 @@
        }
 
        // CS Signature(4), Minor(2), Major(2)
-       FlashBulkRead(pwmxdevice->nvmFlashCSStart, 8, (unsigned 
int*)pwmxdevice->nvmFlashCSInfo);
-       pwmxdevice->nvmFlashCSInfo->FlashLayoutVersion =  
ntohl(pwmxdevice->nvmFlashCSInfo->FlashLayoutVersion);
+       FlashBulkRead(pwmxdevice->nvmFlashCSStart, 8,
+               (unsigned int*)pwmxdevice->nvmFlashCSInfo);
 
+       pwmxdevice->nvmFlashCSInfo->FlashLayoutVersion
+               = ntohl(pwmxdevice->nvmFlashCSInfo->FlashLayoutVersion);
+
        TRACE_ALWAYS("Info: Flash CS Version/Signature: 0x%X/0x%X\n",
                                
(pwmxdevice->nvmFlashCSInfo->FlashLayoutVersion),
                                ntohl(pwmxdevice->nvmFlashCSInfo->MagicNumber));
 
-       if ( ntohl(pwmxdevice->nvmFlashCSInfo->MagicNumber) == 
FLASH_CS_SIGNATURE ) {
-               pwmxdevice->nvmFlashMajor = 
MAJOR_VERSION(pwmxdevice->nvmFlashCSInfo->FlashLayoutVersion);
-               pwmxdevice->nvmFlashMinor = 
MINOR_VERSION(pwmxdevice->nvmFlashCSInfo->FlashLayoutVersion);
+       if (ntohl(pwmxdevice->nvmFlashCSInfo->MagicNumber) == 
FLASH_CS_SIGNATURE) {
+               pwmxdevice->nvmFlashMajor
+                       = 
MAJOR_VERSION(pwmxdevice->nvmFlashCSInfo->FlashLayoutVersion);
+               pwmxdevice->nvmFlashMinor
+                       = 
MINOR_VERSION(pwmxdevice->nvmFlashCSInfo->FlashLayoutVersion);
        } else {
                TRACE_ALWAYS("Error: Unknown flash magic signature!\n");
                pwmxdevice->nvmFlashMajor = 0;
@@ -345,16 +358,20 @@
        if (pwmxdevice->nvmFlashMajor == 0x1)
        {
                // device is older flash map
-               FlashBulkRead(pwmxdevice->nvmFlashCSStart, 
sizeof(FLASH_CS_INFO), (unsigned int*)pwmxdevice->nvmFlashCSInfo);
+               FlashBulkRead(pwmxdevice->nvmFlashCSStart, 
sizeof(FLASH_CS_INFO),
+                       (unsigned int*)pwmxdevice->nvmFlashCSInfo);
                snooze(100);
                FlashCSFlip(pwmxdevice->nvmFlashCSInfo);
                FlashCSDump(pwmxdevice->nvmFlashCSInfo);
 
-               pwmxdevice->nvmFlashCalStart = 
(pwmxdevice->nvmFlashCSInfo->OffsetFromZeroForCalibrationStart);
+               pwmxdevice->nvmFlashCalStart
+                       = 
(pwmxdevice->nvmFlashCSInfo->OffsetFromZeroForCalibrationStart);
 
-               if(!((pwmxdevice->nvmFlashMajor == 1) && 
(pwmxdevice->nvmFlashMinor == 1)))
+               if (!((pwmxdevice->nvmFlashMajor == 1)
+                       && (pwmxdevice->nvmFlashMinor == 1)))
                {
-                       pwmxdevice->nvmFlashCSStart = 
(pwmxdevice->nvmFlashCSInfo->OffsetFromZeroForControlSectionStart);
+                       pwmxdevice->nvmFlashCSStart
+                               = 
(pwmxdevice->nvmFlashCSInfo->OffsetFromZeroForControlSectionStart);
                }
 
                // TODO : Flash Write sizes.. no write support atm
@@ -373,12 +390,13 @@
                        pwmxdevice->fpFlashWriteWithStatusCheck = 
flashWriteStatus;
                }
                */
-       
+
                //BcmGetFlashSectorSize(Adapter, 
(Adapter->psFlashCSInfo->FlashSectorSizeSig),
                //                                              
(Adapter->psFlashCSInfo->FlashSectorSize));
                #endif
 
-               pwmxdevice->nvmFlashBaseAddr = 
pwmxdevice->nvmFlashCSInfo->FlashBaseAddr & 0xFCFFFFFF;
+               pwmxdevice->nvmFlashBaseAddr = 
pwmxdevice->nvmFlashCSInfo->FlashBaseAddr
+                       & 0xFCFFFFFF;
 
        } else {
                // device is newer flash map layout
@@ -604,11 +622,12 @@
 
                if (NumSectTobeRead > 1)
                {
-                       memcpy(&TempBuffer[CurrSectOffsetAddr], ucBuffer, 
SectBoundary-(SectAlignAddr+CurrSectOffsetAddr));
+                       memcpy(&TempBuffer[CurrSectOffsetAddr], ucBuffer,
+                               SectBoundary - (SectAlignAddr + 
CurrSectOffsetAddr));
                        ucBuffer += ((SectBoundary-(SectAlignAddr + 
CurrSectOffsetAddr)));
                        size -= (SectBoundary-(SectAlignAddr + 
CurrSectOffsetAddr));
                } else {
-                       memcpy(&TempBuffer[CurrSectOffsetAddr],ucBuffer, size);
+                       memcpy(&TempBuffer[CurrSectOffsetAddr], ucBuffer, size);
                }
 
                // TODO : SaveHeaderIfPresent if IsFlash2x?
@@ -668,7 +687,7 @@
                }
                #endif
 
-               if(BPStatus)
+               if (BPStatus)
                {
                        RestoreBlockProtect(BPStatus);
                        BPStatus = 0;
@@ -773,15 +792,15 @@
        unsigned int    uiIndex = 0;
 
        // To find the EEPROM size read the possible boundaries of the
-       // EEPROM like 4K,8K etc..accessing the EEPROM beyond its size will 
-       // result in wrap around. So when we get the End of the EEPROM we will 
+       // EEPROM like 4K,8K etc..accessing the EEPROM beyond its size will
+       // result in wrap around. So when we get the End of the EEPROM we will
        // get 'BECM' string which is indeed at offset 0.
 
        EEPROMBulkRead(0x0, 4, &uiData);
 
        if (ntohl(uiData) == BECM)
        {
-               // If EEPROM is present ,it will have 'BECM' string at 0th 
offset.
+               // If EEPROM is present, it will have 'BECM' string at 0th 
offset.
 
                for (uiIndex = 1 ; uiIndex <= 256; uiIndex *= 2)
                {
@@ -854,7 +873,8 @@
                        return B_ERROR;
                }
 
-               BizarroReadRegister(EEPROM_SPI_Q_STATUS_REG, sizeof(unsigned 
int), &Value);
+               BizarroReadRegister(EEPROM_SPI_Q_STATUS_REG, sizeof(unsigned 
int),
+                       &Value);
        }
 
        BizarroReadRegister(EEPROM_READ_DATAQ_REG, sizeof(unsigned int), 
&Value);

Modified: 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemNVM.h
===================================================================
--- 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemNVM.h  
    2011-02-18 12:32:18 UTC (rev 40550)
+++ 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/BeceemNVM.h  
    2011-02-18 20:30:05 UTC (rev 40551)
@@ -2,10 +2,9 @@
  *     Beceem WiMax USB Driver.
  *     Copyright (c) 2010 Alexander von Gluck <kallisti5@xxxxxxxxxxx>
  *     Distributed under the terms of the GNU General Public License.
- *     
+ *
  *     Based on GPL code developed by: Beceem Communications Pvt. Ltd
  */
-
 #ifndef _USB_BECEEM_NVM_H_
 #define _USB_BECEEM_NVM_H_
 
@@ -26,19 +25,23 @@
 #define FLASH_PART_SIZE                                                        
(16 * 1024 * 1024)
 #define FLASH_CONFIG_REG                                               
0xAF003050
 #define FLASH_GPIO_CONFIG_REG                                  0xAF000030
-#define FLASH_CS_INFO_START_ADDR                               0xFF0000        
        // Location for Flash calibration info
+
+// Locations for Flash calibration info
+#define FLASH_CS_INFO_START_ADDR                               0xFF0000
 #define FLASH_AUTO_INIT_BASE_ADDR                              0xF00000
-#define FLASH_CONTIGIOUS_START_ADDR_BEFORE_INIT        0x1F000000              
// Flash base before DDR Init
-#define FLASH_CONTIGIOUS_START_ADDR_AFTER_INIT 0x1C000000              // 
Flash base after DDR Init
+
+// NVM Flash addresses before and after DDR Init
+#define FLASH_CONTIGIOUS_START_ADDR_BEFORE_INIT        0x1F000000
+#define FLASH_CONTIGIOUS_START_ADDR_AFTER_INIT 0x1C000000
 #define FLASH_SPI_CMDQ_REG                                             
0xAF003040
 #define FLASH_SPI_WRITEQ_REG                                   0xAF003044
 #define FLASH_SPI_READQ_REG                                            
0xAF003048
-#define FLASH_SIZE_ADDR                                                        
0xFFFFEC                // Location of Flash memory size
+#define FLASH_SIZE_ADDR                                                        
0xFFFFEC
 #define FLASH_CMD_STATUS_REG_WRITE                             0x01
 #define FLASH_CMD_STATUS_REG_READ                              0x05
 #define FLASH_CMD_WRITE_ENABLE                                 0x06
-#define FLASH_CMD_READ_ID                                              0x9F    
                // Command to read the flash chip ID
-#define FLASH_CS_SIGNATURE                                             
0xBECEF1A5              // Beceem FLAS(H) (get it?)
+#define FLASH_CMD_READ_ID                                              0x9F
+#define FLASH_CS_SIGNATURE                                             
0xBECEF1A5
 
 // Our EEPROM addresses
 #define EEPROM_SPI_Q_STATUS_REG                                        
0x0F003008
@@ -57,9 +60,9 @@
 #define NVM_VERSION_OFFSET             0x020E
 #define NVM_SECTOR_SIZE                        0x10000
 
-#define NVM_READ_DATA_AVAIL            0x00000020                      // was 
EEPROM_READ_DATA_AVAIL
-#define NVM_SPI_Q_STATUS1_REG  0x0F003004                      // was 
EEPROM_SPI_Q_STATUS1_REG
-#define NVM_ALL_QUEUE_FLUSH            0x0000000f                      // was 
EEPROM_ALL_QUEUE_FLUSH
+#define NVM_READ_DATA_AVAIL            0x00000020              // was 
EEPROM_READ_DATA_AVAIL
+#define NVM_SPI_Q_STATUS1_REG  0x0F003004              // was 
EEPROM_SPI_Q_STATUS1_REG
+#define NVM_ALL_QUEUE_FLUSH            0x0000000f              // was 
EEPROM_ALL_QUEUE_FLUSH
 
 #define SCSI_FIRMWARE_MINOR_VERSION            0x5
 
@@ -70,50 +73,68 @@
 #define MAJOR_VERSION(x) (x & 0xFFFF)
 #define MINOR_VERSION(x) ((x >>16) & 0xFFFF)
 
+
 class BeceemNVM
 {
-       int                     bSelectedChip;                  // selected chip
-
 public:
-                                       BeceemNVM();
-       status_t                NVMInit(WIMAX_DEVICE* swmxdevice);
-       status_t                ReadMACFromNVM(ether_address *address);
-       status_t                ValidateDSD(unsigned long hwParam);
+                                                               BeceemNVM();
+                       status_t                        NVMInit(WIMAX_DEVICE* 
swmxdevice);
+                       status_t                        
ReadMACFromNVM(ether_address *address);
+                       status_t                        ValidateDSD(unsigned 
long hwParam);
 
 
-       int                             NVMRead(unsigned int offset, unsigned 
int size, unsigned int* buffer);
-       int                             NVMWrite(unsigned int offset, unsigned 
int size, unsigned int* buffer);
+                       int                                     
NVMRead(unsigned int offset, unsigned int size,
+                                                                       
unsigned int* buffer);
+                       int                                     
NVMWrite(unsigned int offset, unsigned int size,
+                                                                       
unsigned int* buffer);
 
        // yuck.  These are in a child class class
-       virtual status_t        ReadRegister(unsigned int reg, size_t size, 
uint32_t* buffer){ return NULL; };
-       virtual status_t        WriteRegister(unsigned int reg, size_t size, 
uint32_t* buffer){ return NULL; };
-       virtual status_t        BizarroReadRegister(unsigned int reg, size_t 
size, uint32_t* buffer){ return NULL; };
-       virtual status_t        BizarroWriteRegister(unsigned int reg, size_t 
size, uint32_t* buffer){ return NULL; };
+       virtual status_t                        ReadRegister(unsigned int reg,
+                                                                       size_t 
size, uint32_t* buffer)
+                                                                       { 
return NULL; };
+       virtual status_t                        WriteRegister(unsigned int reg,
+                                                                       size_t 
size, uint32_t* buffer)
+                                                                       { 
return NULL; };
+       virtual status_t                        BizarroReadRegister(unsigned 
int reg,
+                                                                       size_t 
size, uint32_t* buffer)
+                                                                       { 
return NULL; };
+       virtual status_t                        BizarroWriteRegister(unsigned 
int reg,
+                                                                       size_t 
size, uint32_t* buffer)
+                                                                       { 
return NULL; };
 
+                       int                             bSelectedChip;          
        // selected chip
+
 private:
-               WIMAX_DEVICE*   pwmxdevice;
+                       WIMAX_DEVICE*   pwmxdevice;
 
-               status_t                NVMDetect();
-               status_t                NVMFlush();
-               status_t                NVMChipSelect(unsigned int offset);
-               status_t                RestoreBlockProtect(unsigned long 
writestatus);
-               unsigned long   DisableBlockProtect(unsigned int offset, size_t 
size);
+                       status_t                        NVMDetect();
+                       status_t                        NVMFlush();
+                       status_t                        NVMChipSelect(unsigned 
int offset);
+                       status_t                        
RestoreBlockProtect(unsigned long writestatus);
+                       unsigned long           DisableBlockProtect(unsigned 
int offset,
+                                                                       size_t 
size);
 
-               int                             FlashGetBaseAddr();
-               unsigned long   FlashReadID();
-               status_t                FlashReadCS();
-               status_t                FlashSectorErase(unsigned int addr, 
unsigned int numOfSectors);
-               status_t                FlashBulkRead(unsigned int offset, 
unsigned int size, unsigned int* buffer);
-               status_t                FlashBulkWrite(unsigned int offset, 
unsigned int size, unsigned int* buffer);
-               status_t                FlashCSFlip(PFLASH_CS_INFO FlashCSInfo);
-               status_t                FlashCSDump(PFLASH_CS_INFO FlashCSInfo);
+                       int                                     
FlashGetBaseAddr();
+                       unsigned long           FlashReadID();
+                       status_t                        FlashReadCS();
+                       status_t                        
FlashSectorErase(unsigned int addr,
+                                                                       
unsigned int numOfSectors);
+                       status_t                        FlashBulkRead(unsigned 
int offset,
+                                                                       
unsigned int size, unsigned int* buffer);
+                       status_t                        FlashBulkWrite(unsigned 
int offset,
+                                                                       
unsigned int size, unsigned int* buffer);
+                       status_t                        
FlashCSFlip(PFLASH_CS_INFO FlashCSInfo);
+                       status_t                        
FlashCSDump(PFLASH_CS_INFO FlashCSInfo);
 
-               unsigned int    EEPROMGetSize();
-               unsigned int    FlashGetSize();
+                       unsigned int            EEPROMGetSize();
+                       unsigned int            FlashGetSize();
 
-               status_t                EEPROMRead(unsigned int offset, 
unsigned int *pdwData);
-               status_t                EEPROMBulkRead( unsigned int offset, 
size_t numBytes, unsigned int* buffer);
+                       status_t                        EEPROMRead(unsigned int 
offset,
+                                                                       
unsigned int *pdwData);
+                       status_t                        EEPROMBulkRead( 
unsigned int offset,
+                                                                       size_t 
numBytes, unsigned int* buffer);
 };
 
+
 #endif // _USB_BECEEM_NVM_H
 

Modified: 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Driver.cpp
===================================================================
--- 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Driver.cpp   
    2011-02-18 12:32:18 UTC (rev 40550)
+++ 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Driver.cpp   
    2011-02-18 20:30:05 UTC (rev 40551)
@@ -1,19 +1,19 @@
 /*
- *     Beceem WiMax USB Driver.
- *     Copyright (c) 2010 Alexander von Gluck <kallisti5@xxxxxxxxxxx>
+ *     Beceem WiMax USB Driver
+ *     Copyright 2010-2011 Haiku, Inc. All rights reserved.
  *     Distributed under the terms of the MIT license.
- *     
- *     Heavily based on code of :
- *     Driver for USB Ethernet Control Model devices
- *     Copyright (C) 2008 Michael Lotz <mmlr@xxxxxxxx>
- *     Distributed under the terms of the MIT license.
  *
- *     The Beceem chipset can be used via multiple interfaces
- *     such as PCMCIA, MII, PCI, SDIO, and Serial. However I have
- *     only found it implemented commercially for PC use as USB. 
+ *     Authors:
+ *             Alexander von Gluck, <kallisti5@xxxxxxxxxxx>
  *
+ *     Partially using:
+ *             USB Ethernet Control Model devices
+ *                     (c) 2008 by Michael Lotz, <mmlr@xxxxxxxx>
+ *             ASIX AX88172/AX88772/AX88178 USB 2.0 Ethernet Driver
+ *                     (c) 2008 by S.Zharski, <imker@xxxxxx>
  */
 
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -28,12 +28,14 @@
 #include "Driver.h"
 #include "Settings.h"
 
+
 int32 api_version = B_CUR_DRIVER_API_VERSION;
 static const char *sDeviceBaseName = "net/usb_beceemwmx/";
 BeceemDevice *gBeceemDevices[MAX_DEVICES];
 char *gDeviceNames[MAX_DEVICES + 1];
 usb_module_info *gUSBModule = NULL;
 
+
 usb_support_descriptor gSupportedDevices[] = {
        { 0, 0, 0, 0x0489, 0xe016},
                // "Ubee WiMAX Mobile USB - PXU1900 (Clear)"
@@ -47,8 +49,10 @@
                // "ZTE TU25 WiMAX Adapter [Beceem BCS200]"
 };
 
+
 mutex gDriverLock;
 
+
 // auto-release helper class
 class DriverSmartLock {
 public:
@@ -56,6 +60,7 @@
        ~DriverSmartLock() { mutex_unlock(&gDriverLock); }
 };
 
+
 BeceemDevice *
 create_beceem_device(usb_device device)
 {

Modified: 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Driver.h
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Driver.h 
2011-02-18 12:32:18 UTC (rev 40550)
+++ haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Driver.h 
2011-02-18 20:30:05 UTC (rev 40551)
@@ -1,18 +1,21 @@
 /*
- *     Beceem WiMax USB Driver.
- *     Copyright (c) 2010 Alexander von Gluck <kallisti5@xxxxxxxxxxx>
+ *     Beceem WiMax USB Driver
+ *     Copyright 2010-2011 Haiku, Inc. All rights reserved.
  *     Distributed under the terms of the MIT license.
  *
- *     Heavily based on code of :
- *     Driver for USB Ethernet Control Model devices
- *     Copyright (C) 2008 Michael Lotz <mmlr@xxxxxxxx>
- *     Distributed under the terms of the MIT license.
+ *     Authors:
+ *             Alexander von Gluck, <kallisti5@xxxxxxxxxxx>
  *
+ *     Partially using:
+ *             USB Ethernet Control Model devices
+ *                     (c) 2008 by Michael Lotz, <mmlr@xxxxxxxx>
+ *             ASIX AX88172/AX88772/AX88178 USB 2.0 Ethernet Driver
+ *                     (c) 2008 by S.Zharski, <imker@xxxxxx>
  */
-
 #ifndef _USB_BECEEM_DRIVER_H_
 #define _USB_BECEEM_DRIVER_H_
 
+
 #include <OS.h>
 #include <KernelExport.h>
 #include <Drivers.h>
@@ -25,6 +28,7 @@
 
 #include <util/kernel_cpp.h>
 
+
 #define DRIVER_NAME    "usb_beceemwmx"
 #define MAX_DEVICES    8
 
@@ -101,6 +105,7 @@
 
 extern usb_module_info *gUSBModule;
 
+
 extern "C" {
 status_t       usb_beceem_device_added(usb_device device, void **cookie);
 status_t       usb_beceem_device_removed(void *cookie);
@@ -112,5 +117,6 @@
 device_hooks *find_device(const char *name);
 }
 
+
 #endif //_USB_BECEEM_DRIVER_H_
 

Modified: 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Settings.cpp
===================================================================
--- 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Settings.cpp 
    2011-02-18 12:32:18 UTC (rev 40550)
+++ 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Settings.cpp 
    2011-02-18 20:30:05 UTC (rev 40551)
@@ -1,19 +1,24 @@
 /*
- *     Beceem WiMax USB Driver.
- *     Copyright (c) 2010 Alexander von Gluck <kallisti5@xxxxxxxxxxx>
+ *     Beceem WiMax USB Driver
+ *     Copyright 2010-2011 Haiku, Inc. All rights reserved.
  *     Distributed under the terms of the MIT license.
- *     
- *     Heavily based on code of :
- *     Driver for USB Ethernet Control Model devices
- *     Copyright (C) 2008 Michael Lotz <mmlr@xxxxxxxx>
- *     Distributed under the terms of the MIT license.
  *
+ *     Authors:
+ *             Alexander von Gluck, <kallisti5@xxxxxxxxxxx>
+ *
+ *     Partially using:
+ *             USB Ethernet Control Model devices
+ *                     (c) 2008 by Michael Lotz, <mmlr@xxxxxxxx>
+ *             ASIX AX88172/AX88772/AX88178 USB 2.0 Ethernet Driver
+ *                     (c) 2008 by S.Zharski, <imker@xxxxxx>
  */
 
+
 #include <lock.h> // for mutex
 
 #include "Settings.h"
 
+
 bool gTraceOn = false;
 bool gTruncateLogFile = false;
 bool gAddTimeStamp = true;
@@ -21,6 +26,7 @@
 static char *gLogFilePath = NULL;
 mutex gLogLock;
 
+
 static 
 void create_log()
 {
@@ -33,6 +39,7 @@
        mutex_init(&gLogLock, DRIVER_NAME"-logging");
 }
 
+
 void load_settings()
 {
        void *handle = load_driver_settings(DRIVER_NAME);
@@ -56,6 +63,7 @@
        create_log();
 }
 
+
 void release_settings()
 {
        if(gLogFilePath != NULL) {
@@ -64,6 +72,7 @@
        }
 }
 
+
 void usb_beceem_trace(bool force, const char* func, const char *fmt, ...)
 {
        if(!(force || gTraceOn)) {

Modified: 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Settings.h
===================================================================
--- 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Settings.h   
    2011-02-18 12:32:18 UTC (rev 40550)
+++ 
haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx/Settings.h   
    2011-02-18 20:30:05 UTC (rev 40551)
@@ -1,22 +1,25 @@
 /*
- *     Ubee WiMax USB Driver.
- *     Copyright (c) 2010 Alexander von Gluck <kallisti5@xxxxxxxxxxx>
+ *     Beceem WiMax USB Driver
+ *     Copyright 2010-2011 Haiku, Inc. All rights reserved.
  *     Distributed under the terms of the MIT license.
- *     
- *     Heavily based on code of :
- *     Driver for USB Ethernet Control Model devices
- *     Copyright (C) 2008 Michael Lotz <mmlr@xxxxxxxx>
- *     Distributed under the terms of the MIT license.
  *
+ *     Authors:
+ *             Alexander von Gluck, <kallisti5@xxxxxxxxxxx>
+ *
+ *     Partially using:
+ *             USB Ethernet Control Model devices
+ *                     (c) 2008 by Michael Lotz, <mmlr@xxxxxxxx>
+ *             ASIX AX88172/AX88772/AX88178 USB 2.0 Ethernet Driver
+ *                     (c) 2008 by S.Zharski, <imker@xxxxxx>
  */
-
 #ifndef _USB_BECEEM_SETTINGS_H_ 
 #define _USB_BECEEM_SETTINGS_H_
 
+
 #include <driver_settings.h> 
-
 #include "Driver.h"
 
+
 void load_settings();
 void release_settings();
 


Other related posts:

  • » [haiku-commits] r40551 - haiku/trunk/src/add-ons/kernel/drivers/network/wimax/usb_beceemwmx - kallisti5