[kismac] [binaervarianz] r203 - in branches/usb-drivers: . KisMAC.xcodeproj Sources/Driver/USBJack image
- From: svn@xxxxxxxxxxxxxxxx
- To: kismac@xxxxxxxxxxxxx
- Date: Sun, 08 Oct 2006 22:37:23 +0200
Author: gkruse
Date: 2006-10-08 22:33:48 +0200 (Sun, 08 Oct 2006)
New Revision: 203
Modified:
branches/usb-drivers/KisMAC.xcodeproj/project.pbxproj
branches/usb-drivers/Sources/Driver/USBJack/RalinkJack.mm
branches/usb-drivers/compile.command
branches/usb-drivers/image/KisMACraw.sparseimage
Log:
Start of support for rt73. Really all this does is add a debug print for the
asic version number and add a function stub for load firmware with all the code
commented out. As I don't have an rt73 device, if you have one please try this
rev and report your asic version number.
Modified: branches/usb-drivers/KisMAC.xcodeproj/project.pbxproj
===================================================================
--- branches/usb-drivers/KisMAC.xcodeproj/project.pbxproj 2006-10-08
18:17:13 UTC (rev 202)
+++ branches/usb-drivers/KisMAC.xcodeproj/project.pbxproj 2006-10-08
20:33:48 UTC (rev 203)
@@ -833,7 +833,7 @@
6CE206E7C5B0502200A26C3A /* RalinkJack.mm */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp;
name = RalinkJack.mm; path = USBJack/RalinkJack.mm; sourceTree = "<group>"; };
87CEBA8009AEF03700AEB0B8 /* GrowlController.h */ = {isa =
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path =
GrowlController.h; sourceTree = "<group>"; };
87CEBA8109AEF03700AEB0B8 /* GrowlController.m */ = {isa =
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc;
path = GrowlController.m; sourceTree = "<group>"; };
- 8D1107320486CEB800E47090 /* KisMAC.app */ = {isa =
PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application;
path = KisMAC.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 8D1107320486CEB800E47090 /* KisMAC.app */ = {isa =
PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0;
path = KisMAC.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
Modified: branches/usb-drivers/Sources/Driver/USBJack/RalinkJack.mm
===================================================================
--- branches/usb-drivers/Sources/Driver/USBJack/RalinkJack.mm 2006-10-08
18:17:13 UTC (rev 202)
+++ branches/usb-drivers/Sources/Driver/USBJack/RalinkJack.mm 2006-10-08
20:33:48 UTC (rev 203)
@@ -12,7 +12,6 @@
IOReturn RalinkJack::_init() {
unsigned long Index;
-// unsigned char buffer[22];
unsigned short temp;
unsigned char Value = 0xff;
unsigned int i;
@@ -24,7 +23,19 @@
do
{
- //NdisMSleep(1000);
+ //this is how we dertermine chip type?
+ RTUSBReadMACRegister(MAC_CSR0, &temp); //read the asic
version number
+ NSLog(@"Found Ralink Asic Version %d", temp);
+ if ( temp >= 3){
+ RTUSBReadMACRegister(PHY_CSR2, &temp);
+ RTUSBWriteMACRegister(PHY_CSR2, temp & 0xFFFD);
+ }
+ else
+ {
+ NSLog(@"LNA 3 mode\n");
+ RTUSBWriteMACRegister(PHY_CSR2, 0x3002); // LNA 3 mode
+ }
+
RTUSB_VendorRequest(kUSBOut,
0x1,
0x4,
@@ -73,18 +84,8 @@
//lets mess with the leds to verify we have control
RTUSBWriteMACRegister(MAC_CSR20, 0x0000); //put led under
software control
-
RTUSBWriteMACRegister(MAC_CSR1, 4); //host is ready to work
- RTUSBReadMACRegister(MAC_CSR0, &temp); //read the asic
version number
- if ( temp >= 3){
- RTUSBReadMACRegister(PHY_CSR2, &temp);
- RTUSBWriteMACRegister(PHY_CSR2, temp & 0xFFFD);
- }
- else
- {
- NSLog(@"LNA 3 mode\n");
- RTUSBWriteMACRegister(PHY_CSR2, 0x3002); // LNA 3 mode
- }
+
/* //power save stuff
RTUSBWriteMACRegister(MAC_CSR11, 2);
RTUSBWriteMACRegister(MAC_CSR22, 0x53);
@@ -361,11 +362,179 @@
return kIOReturnSuccess;
}
+IOReturn NICLoadFirmware()
+{
+ IOReturn Status = kIOReturnSuccess;
+ unsigned char * src = NULL;
+ struct file *srcf;
+ int retval = 0, orgfsuid, orgfsgid,
i;
+ //mm_segment_t orgfs;
+ unsigned char * pFirmwareImage;
+ unsigned int FileLength = 0;
+ int ret;
+
+
+ NSLog(@"--> NICLoadFirmware\n");
+/* //pAd->FirmwareVersion = (FIRMWARE_MAJOR_VERSION << 8) +
FIRMWARE_MINOR_VERSION; //default version.
+
+ src = RT2573_IMAGE_FILE_NAME;
+
+ // Save uid and gid used for filesystem access.
+ // Set user and group to 0 (root)
+ //orgfsuid = current->fsuid;
+ //orgfsgid = current->fsgid;
+ //current->fsuid=current->fsgid = 0;
+ //orgfs = get_fs();
+ //set_fs(KERNEL_DS);
+
+ pFirmwareImage = kmalloc(MAX_FIRMWARE_IMAGE_SIZE, MEM_ALLOC_FLAG);
+ if (pFirmwareImage == NULL)
+ {
+ DBGPRINT(RT_DEBUG_ERROR, "NICLoadFirmware-Memory allocate
fail\n");
+ Status = NDIS_STATUS_FAILURE;
+ goto out;
+ }
+
+ if (src && *src)
+ {
+ srcf = filp_open(src, O_RDONLY, 0);
+ if (IS_ERR(srcf))
+ {
+ Status = NDIS_STATUS_FAILURE;
+ DBGPRINT(RT_DEBUG_ERROR, "--> Error %ld opening %s\n",
-PTR_ERR(srcf),src);
+ }
+ else
+ {
+ // The object must have a read method
+ if (srcf->f_op && srcf->f_op->read)
+ {
+ memset(pFirmwareImage, 0x00,
MAX_FIRMWARE_IMAGE_SIZE);
+
+ FileLength = srcf->f_op->read(srcf,
pFirmwareImage, MAX_FIRMWARE_IMAGE_SIZE, &srcf->f_pos);
+ if (FileLength != MAX_FIRMWARE_IMAGE_SIZE)
+ {
+ DBGPRINT_ERR("NICLoadFirmware: error
file length (=%d) in rt73.bin\n",FileLength);
+ Status = NDIS_STATUS_FAILURE;
+ }
+ else
+ { //FileLength == MAX_FIRMWARE_IMAGE_SIZE
+ PUCHAR ptr = pFirmwareImage;
+ USHORT crc = 0;
+
+ for (i=0;
i<(MAX_FIRMWARE_IMAGE_SIZE-2); i++, ptr++)
+ crc = ByteCRC16(*ptr, crc);
+ crc = ByteCRC16(0x00, crc);
+ crc = ByteCRC16(0x00, crc);
+
+ if
((pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-2] != (UCHAR)(crc>>8)) ||
+
(pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-1] != (UCHAR)(crc)))
+ {
+ DBGPRINT_ERR("NICLoadFirmware:
CRC = 0x%02x 0x%02x error, should be 0x%02x 0x%02x\n",
+
pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-2],
pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-1],
+ (UCHAR)(crc>>8), (UCHAR)(crc) );
+
+ if (retval)
+ {
+
DBGPRINT(RT_DEBUG_ERROR, "--> Error %d closing %s\n", -retval, src);
+ }
+
+ Status = NDIS_STATUS_FAILURE;
+ }
+ else
+ {
+
+ if ((pAd->FirmwareVersion) >
((pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-4] << 8) +
pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-3]))
+ {
+
DBGPRINT_ERR("NICLoadFirmware: Ver=%d.%d, local Ver=%d.%d, used FirmwareImage
talbe instead\n",
+
pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-4],
pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-3],
+ FIRMWARE_MAJOR_VERSION,
FIRMWARE_MINOR_VERSION);
+
+ Status =
NDIS_STATUS_FAILURE;
+ }
+ else
+ {
+ pAd->FirmwareVersion =
(pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-4] << 8) +
pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-3];
+
DBGPRINT(RT_DEBUG_TRACE,"NICLoadFirmware OK: CRC = 0x%04x ver=%d.%d\n", crc,
+
pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-4],
pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-3]);
+ }
+
+ }
+ }
+ }
+ else
+ {
+ Status = NDIS_STATUS_FAILURE;
+ DBGPRINT(RT_DEBUG_ERROR, "--> %s does not have
a write method\n", src);
+ }
+
+ retval = filp_close(srcf, NULL);
+ if (retval)
+ {
+ Status = NDIS_STATUS_FAILURE;
+ DBGPRINT(RT_DEBUG_ERROR, "--> Error %d closing
%s\n", -retval, src);
+ }
+ }
+ }
+ else
+ {
+ Status = NDIS_STATUS_FAILURE;
+ DBGPRINT(RT_DEBUG_ERROR, "Error src not available\n");
+ }
+
+
+ if (Status != NDIS_STATUS_SUCCESS)
+ {
+ FileLength = FIRMAREIMAGE_LENGTH;
+ memset(pFirmwareImage, 0x00, FileLength);
+ NdisMoveMemory(pFirmwareImage, &FirmwareImage[0], FileLength);
+ Status = NDIS_STATUS_SUCCESS; // change to success
+
+ DBGPRINT(RT_DEBUG_ERROR, "NICLoadFirmware failed, used local
Firmware(v %d.%d) instead\n",
+ FIRMWARE_MAJOR_VERSION, FIRMWARE_MINOR_VERSION);
+ }
+
+ // select 8051 program bank; write entire firmware image
+ for (i = 0; i < FileLength; i = i + 4)
+ {
+ ret = RTUSBMultiWrite(pAd, FIRMWARE_IMAGE_BASE + i,
pFirmwareImage + i, 4);
+
+ if (ret < 0)
+ {
+ Status = NDIS_STATUS_FAILURE;
+ break;
+ }
+ }
+
+
+out:
+ if (pFirmwareImage != NULL)
+ kfree(pFirmwareImage);
+
+ set_fs(orgfs);
+ current->fsuid = orgfsuid;
+ current->fsgid = orgfsgid;
+
+ if (Status == NDIS_STATUS_SUCCESS)
+ {
+ RTUSBFirmwareRun(pAd);
+
+ //
+ // Send LED command to Firmare after RTUSBFirmwareRun;
+ //
+ RTMPSetLED(pAd, LED_LINK_DOWN);
+
+ }
+
+ DBGPRINT(RT_DEBUG_TRACE,"<-- NICLoadFirmware (src=%s)\n", src);
+
+ */
+ return Status;
+}
IOReturn RalinkJack::RTUSBReadEEPROM(unsigned short Offset,
- unsigned char * pData,
- unsigned short length)
+ unsigned char * pData,
+ unsigned short length)
{
IOReturn Status;
Modified: branches/usb-drivers/compile.command
===================================================================
--- branches/usb-drivers/compile.command 2006-10-08 18:17:13 UTC (rev
202)
+++ branches/usb-drivers/compile.command 2006-10-08 20:33:48 UTC (rev
203)
@@ -86,7 +86,7 @@
cd ..
echo -n "Determine Subversion Revision... "
-SVNVERS=`svnversion -n .`
+SVNVERS=`svn version -n .`
echo $SVNVERS
sed -e "s/\\\$Revision.*\\\$/\\\$Revision: $SVNVERS\\\$/"
Resources/Info.plist.templ > Resources/Info.plist
sed -e "s/\\\$Revision.*\\\$/\\\$Revision: $SVNVERS\\\$/"
Resources/Strings/English.lproj/InfoPlist.strings.templ >
Resources/Strings/English.lproj/InfoPlist.strings
Modified: branches/usb-drivers/image/KisMACraw.sparseimage
===================================================================
(Binary files differ)
Other related posts:
- » [kismac] [binaervarianz] r203 - in branches/usb-drivers: . KisMAC.xcodeproj Sources/Driver/USBJack image