mirror of https://gitee.com/openkylin/linux.git
Staging: rt2870: remove dead BIN_IN_FILE code
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
c764fcf4e8
commit
7baea26a2d
|
@ -40,8 +40,6 @@
|
||||||
#include "../rt_config.h"
|
#include "../rt_config.h"
|
||||||
#include "firmware.h"
|
#include "firmware.h"
|
||||||
|
|
||||||
//#define BIN_IN_FILE /* use *.bin firmware */
|
|
||||||
|
|
||||||
UCHAR BIT8[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
|
UCHAR BIT8[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
|
||||||
ULONG BIT32[] = {0x00000001, 0x00000002, 0x00000004, 0x00000008,
|
ULONG BIT32[] = {0x00000001, 0x00000002, 0x00000004, 0x00000008,
|
||||||
0x00000010, 0x00000020, 0x00000040, 0x00000080,
|
0x00000010, 0x00000020, 0x00000040, 0x00000080,
|
||||||
|
@ -2743,207 +2741,6 @@ VOID NICEraseFirmware(
|
||||||
NDIS_STATUS NICLoadFirmware(
|
NDIS_STATUS NICLoadFirmware(
|
||||||
IN PRTMP_ADAPTER pAd)
|
IN PRTMP_ADAPTER pAd)
|
||||||
{
|
{
|
||||||
#ifdef BIN_IN_FILE
|
|
||||||
#define NICLF_DEFAULT_USE() \
|
|
||||||
flg_default_firm_use = TRUE; \
|
|
||||||
printk("%s - Use default firmware!\n", __func__);
|
|
||||||
|
|
||||||
NDIS_STATUS Status = NDIS_STATUS_SUCCESS;
|
|
||||||
PUCHAR src;
|
|
||||||
struct file *srcf;
|
|
||||||
INT retval, orgfsuid, orgfsgid, i;
|
|
||||||
mm_segment_t orgfs;
|
|
||||||
PUCHAR pFirmwareImage;
|
|
||||||
UINT FileLength = 0;
|
|
||||||
UINT32 MacReg;
|
|
||||||
ULONG Index;
|
|
||||||
ULONG firm;
|
|
||||||
BOOLEAN flg_default_firm_use = FALSE;
|
|
||||||
|
|
||||||
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("===> %s\n", __func__));
|
|
||||||
|
|
||||||
/* init */
|
|
||||||
pFirmwareImage = NULL;
|
|
||||||
src = RTMP_FIRMWARE_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);
|
|
||||||
|
|
||||||
pAd->FirmwareVersion = (FIRMWARE_MAJOR_VERSION << 8) + \
|
|
||||||
FIRMWARE_MINOR_VERSION;
|
|
||||||
|
|
||||||
|
|
||||||
/* allocate firmware buffer */
|
|
||||||
pFirmwareImage = kmalloc(MAX_FIRMWARE_IMAGE_SIZE, MEM_ALLOC_FLAG);
|
|
||||||
if (pFirmwareImage == NULL)
|
|
||||||
{
|
|
||||||
/* allocate fail, use default firmware array in firmware.h */
|
|
||||||
printk("%s - Allocate memory fail!\n", __func__);
|
|
||||||
NICLF_DEFAULT_USE();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* allocate ok! zero the firmware buffer */
|
|
||||||
memset(pFirmwareImage, 0x00, MAX_FIRMWARE_IMAGE_SIZE);
|
|
||||||
} /* End of if */
|
|
||||||
|
|
||||||
|
|
||||||
/* if ok, read firmware file from *.bin file */
|
|
||||||
if (flg_default_firm_use == FALSE)
|
|
||||||
{
|
|
||||||
do
|
|
||||||
{
|
|
||||||
/* open the bin file */
|
|
||||||
srcf = filp_open(src, O_RDONLY, 0);
|
|
||||||
|
|
||||||
if (IS_ERR(srcf))
|
|
||||||
{
|
|
||||||
printk("%s - Error %ld opening %s\n",
|
|
||||||
__func__, -PTR_ERR(srcf), src);
|
|
||||||
NICLF_DEFAULT_USE();
|
|
||||||
break;
|
|
||||||
} /* End of if */
|
|
||||||
|
|
||||||
/* the object must have a read method */
|
|
||||||
if ((srcf->f_op == NULL) || (srcf->f_op->read == NULL))
|
|
||||||
{
|
|
||||||
printk("%s - %s does not have a write method\n", __func__, src);
|
|
||||||
NICLF_DEFAULT_USE();
|
|
||||||
break;
|
|
||||||
} /* End of if */
|
|
||||||
|
|
||||||
/* read the firmware from the file *.bin */
|
|
||||||
FileLength = srcf->f_op->read(srcf,
|
|
||||||
pFirmwareImage,
|
|
||||||
MAX_FIRMWARE_IMAGE_SIZE,
|
|
||||||
&srcf->f_pos);
|
|
||||||
|
|
||||||
if (FileLength != MAX_FIRMWARE_IMAGE_SIZE)
|
|
||||||
{
|
|
||||||
printk("%s: error file length (=%d) in RT2860AP.BIN\n",
|
|
||||||
__func__, FileLength);
|
|
||||||
NICLF_DEFAULT_USE();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
PUCHAR ptr = pFirmwareImage;
|
|
||||||
USHORT crc = 0xffff;
|
|
||||||
|
|
||||||
|
|
||||||
/* calculate firmware CRC */
|
|
||||||
for(i=0; i<(MAX_FIRMWARE_IMAGE_SIZE-2); i++, ptr++)
|
|
||||||
crc = ByteCRC16(BitReverse(*ptr), crc);
|
|
||||||
/* End of for */
|
|
||||||
|
|
||||||
if ((pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-2] != \
|
|
||||||
(UCHAR)BitReverse((UCHAR)(crc>>8))) ||
|
|
||||||
(pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-1] != \
|
|
||||||
(UCHAR)BitReverse((UCHAR)crc)))
|
|
||||||
{
|
|
||||||
/* CRC fail */
|
|
||||||
printk("%s: CRC = 0x%02x 0x%02x "
|
|
||||||
"error, should be 0x%02x 0x%02x\n",
|
|
||||||
__func__,
|
|
||||||
pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-2],
|
|
||||||
pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-1],
|
|
||||||
(UCHAR)(crc>>8), (UCHAR)(crc));
|
|
||||||
NICLF_DEFAULT_USE();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* firmware is ok */
|
|
||||||
pAd->FirmwareVersion = \
|
|
||||||
(pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-4] << 8) +
|
|
||||||
pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-3];
|
|
||||||
|
|
||||||
/* check if firmware version of the file is too old */
|
|
||||||
if ((pAd->FirmwareVersion) < \
|
|
||||||
((FIRMWARE_MAJOR_VERSION << 8) +
|
|
||||||
FIRMWARE_MINOR_VERSION))
|
|
||||||
{
|
|
||||||
printk("%s: firmware version too old!\n", __func__);
|
|
||||||
NICLF_DEFAULT_USE();
|
|
||||||
break;
|
|
||||||
} /* End of if */
|
|
||||||
} /* End of if */
|
|
||||||
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE,
|
|
||||||
("NICLoadFirmware: CRC ok, ver=%d.%d\n",
|
|
||||||
pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-4],
|
|
||||||
pFirmwareImage[MAX_FIRMWARE_IMAGE_SIZE-3]));
|
|
||||||
} /* End of if (FileLength == MAX_FIRMWARE_IMAGE_SIZE) */
|
|
||||||
break;
|
|
||||||
} while(TRUE);
|
|
||||||
|
|
||||||
/* close firmware file */
|
|
||||||
if (IS_ERR(srcf))
|
|
||||||
;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
retval = filp_close(srcf, NULL);
|
|
||||||
if (retval)
|
|
||||||
{
|
|
||||||
DBGPRINT(RT_DEBUG_ERROR,
|
|
||||||
("--> Error %d closing %s\n", -retval, src));
|
|
||||||
} /* End of if */
|
|
||||||
} /* End of if */
|
|
||||||
} /* End of if */
|
|
||||||
|
|
||||||
|
|
||||||
/* write firmware to ASIC */
|
|
||||||
if (flg_default_firm_use == TRUE)
|
|
||||||
{
|
|
||||||
/* use default fimeware, free allocated buffer */
|
|
||||||
if (pFirmwareImage != NULL)
|
|
||||||
kfree(pFirmwareImage);
|
|
||||||
/* End of if */
|
|
||||||
|
|
||||||
/* use default *.bin array */
|
|
||||||
pFirmwareImage = FirmwareImage;
|
|
||||||
FileLength = sizeof(FirmwareImage);
|
|
||||||
} /* End of if */
|
|
||||||
|
|
||||||
/* enable Host program ram write selection */
|
|
||||||
RTMP_IO_WRITE32(pAd, PBF_SYS_CTRL, 0x10000);
|
|
||||||
|
|
||||||
for(i=0; i<FileLength; i+=4)
|
|
||||||
{
|
|
||||||
firm = pFirmwareImage[i] +
|
|
||||||
(pFirmwareImage[i+3] << 24) +
|
|
||||||
(pFirmwareImage[i+2] << 16) +
|
|
||||||
(pFirmwareImage[i+1] << 8);
|
|
||||||
|
|
||||||
RTMP_IO_WRITE32(pAd, FIRMWARE_IMAGE_BASE + i, firm);
|
|
||||||
} /* End of for */
|
|
||||||
|
|
||||||
RTMP_IO_WRITE32(pAd, PBF_SYS_CTRL, 0x00000);
|
|
||||||
RTMP_IO_WRITE32(pAd, PBF_SYS_CTRL, 0x00001);
|
|
||||||
|
|
||||||
/* initialize BBP R/W access agent */
|
|
||||||
RTMP_IO_WRITE32(pAd, H2M_BBP_AGENT, 0);
|
|
||||||
RTMP_IO_WRITE32(pAd, H2M_MAILBOX_CSR, 0);
|
|
||||||
|
|
||||||
if (flg_default_firm_use == FALSE)
|
|
||||||
{
|
|
||||||
/* use file firmware, free allocated buffer */
|
|
||||||
if (pFirmwareImage != NULL)
|
|
||||||
kfree(pFirmwareImage);
|
|
||||||
/* End of if */
|
|
||||||
} /* End of if */
|
|
||||||
|
|
||||||
set_fs(orgfs);
|
|
||||||
current->fsuid = orgfsuid;
|
|
||||||
current->fsgid = orgfsgid;
|
|
||||||
#else
|
|
||||||
|
|
||||||
NDIS_STATUS Status = NDIS_STATUS_SUCCESS;
|
NDIS_STATUS Status = NDIS_STATUS_SUCCESS;
|
||||||
PUCHAR pFirmwareImage;
|
PUCHAR pFirmwareImage;
|
||||||
ULONG FileLength, Index;
|
ULONG FileLength, Index;
|
||||||
|
@ -3000,8 +2797,6 @@ NDIS_STATUS NICLoadFirmware(
|
||||||
RT28XX_FIRMUD_END(pAd);
|
RT28XX_FIRMUD_END(pAd);
|
||||||
#else
|
#else
|
||||||
RT28XX_WRITE_FIRMWARE(pAd, pFirmwareImage, FileLength);
|
RT28XX_WRITE_FIRMWARE(pAd, pFirmwareImage, FileLength);
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* check if MCU is ready */
|
/* check if MCU is ready */
|
||||||
|
|
Loading…
Reference in New Issue