/* ======================================================================== Routine Description: Write Firmware to NIC. Arguments: Return Value: IRQL = Note: ======================================================================== */ NTSTATUS RTUSBFirmwareWrite( IN PRTMP_ADAPTER pAd, IN PUCHAR pFwImage, IN ULONG FwLen) { UINT32 MacReg; NTSTATUS Status; /* ULONG i;*/ USHORT writeLen; /*ULONG FMode = 0;*/ Status = RTUSBReadMACRegister(pAd, MAC_CSR0, &MacReg); /* write firmware */ writeLen = FwLen; #if defined(USB_FIRMWARE_MULTIBYTE_WRITE) || defined(DPA_S) DBGPRINT(RT_DEBUG_TRACE, ("USB_FIRMWARE_MULTIBYTE_WRITE defined! Write_Bytes = %d\n", writeLen)); RTUSBMultiWrite_nBytes(pAd, FIRMWARE_IMAGE_BASE, pFwImage, writeLen, 64); #else DBGPRINT(RT_DEBUG_TRACE, ("USB_FIRMWARE_MULTIBYTE_WRITE not defined!\n")); RTUSBMultiWrite(pAd, FIRMWARE_IMAGE_BASE, pFwImage, writeLen, FALSE); #endif Status = RTUSBWriteMACRegister(pAd, 0x7014, 0xffffffff, FALSE); Status = RTUSBWriteMACRegister(pAd, 0x701c, 0xffffffff, FALSE); /* change 8051 from ROM to RAM */ Status = RTUSBFirmwareRun(pAd); return Status; }
/* ======================================================================== Routine Description: Write Firmware to NIC. Arguments: Return Value: IRQL = Note: ======================================================================== */ NTSTATUS RTUSBFirmwareWrite( IN PRTMP_ADAPTER pAd, IN PUCHAR pFwImage, IN ULONG FwLen) { UINT32 MacReg; NTSTATUS Status; // ULONG i; USHORT writeLen; Status = RTUSBReadMACRegister(pAd, MAC_CSR0, &MacReg); writeLen = FwLen; RTUSBMultiWrite(pAd, FIRMWARE_IMAGE_BASE, pFwImage, writeLen); Status = RTUSBWriteMACRegister(pAd, 0x7014, 0xffffffff); Status = RTUSBWriteMACRegister(pAd, 0x701c, 0xffffffff); Status = RTUSBFirmwareRun(pAd); #ifdef RT30xx RTMPusecDelay(10000); RTUSBWriteMACRegister(pAd,H2M_MAILBOX_CSR,0); AsicSendCommandToMcu(pAd, 0x72, 0x00, 0x00, 0x00);//reset rf by MCU supported by new firmware #endif return Status; }
/* ======================================================================== Routine Description: Write Firmware to NIC. Arguments: Return Value: IRQL = Note: ======================================================================== */ NTSTATUS RTUSBFirmwareWrite( IN PRTMP_ADAPTER pAd, IN PUCHAR pFwImage, IN ULONG FwLen) { UINT32 MacReg; NTSTATUS Status; /* ULONG i;*/ USHORT writeLen; /*ULONG FMode = 0;*/ Status = RTUSBReadMACRegister(pAd, MAC_CSR0, &MacReg); /* write firmware */ writeLen = FwLen; RTUSBMultiWrite(pAd, FIRMWARE_IMAGE_BASE, pFwImage, writeLen); Status = RTUSBWriteMACRegister(pAd, 0x7014, 0xffffffff); Status = RTUSBWriteMACRegister(pAd, 0x701c, 0xffffffff); /* change 8051 from ROM to RAM */ Status = RTUSBFirmwareRun(pAd); return Status; }