From: Heesub Shin Date: Thu, 13 Apr 2017 08:20:58 +0000 (+0900) Subject: wireless/scsc: introduce up_wlan_get_firmware() X-Git-Tag: 1.1_Public_Release~614^2~37 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0a97468a876f7ef1b783a5f4ba2fa4198f3707c5;p=rtos%2Ftinyara.git wireless/scsc: introduce up_wlan_get_firmware() This commit adds a new board-specific function, up_wlan_get_firmware() that returns the address to flash region WiFi Firmware is stored. Change-Id: I2f73f12b9e31188ee5e0777ab042eb577256ef03 Signed-off-by: Heesub Shin --- diff --git a/os/arch/arm/src/artik053/src/artik053_wlan.c b/os/arch/arm/src/artik053/src/artik053_wlan.c index ba29310..8cd8358 100644 --- a/os/arch/arm/src/artik053/src/artik053_wlan.c +++ b/os/arch/arm/src/artik053/src/artik053_wlan.c @@ -149,6 +149,11 @@ int up_wlan_get_mac_addr(char *macaddr) return 0; } +void *up_wlan_get_firmware(void) +{ + return (void *)0x04048000; +} + void up_wlan_init(struct netif *dev) { struct ip_addr ipaddr; diff --git a/os/arch/arm/src/sidk_s5jt200/src/s5jt200_wlan.c b/os/arch/arm/src/sidk_s5jt200/src/s5jt200_wlan.c index 0be7e6f..43215f1 100644 --- a/os/arch/arm/src/sidk_s5jt200/src/s5jt200_wlan.c +++ b/os/arch/arm/src/sidk_s5jt200/src/s5jt200_wlan.c @@ -153,6 +153,11 @@ int up_wlan_get_mac_addr(char *macaddr) return 0; } +void *up_wlan_get_firmware(void) +{ + return (void *)0x04048000; +} + struct netif *wlan_netif; void up_wlan_init(struct netif *dev) diff --git a/os/drivers/wireless/scsc/misc/mif_reg.h b/os/drivers/wireless/scsc/misc/mif_reg.h index eb214ad..0a07292 100644 --- a/os/drivers/wireless/scsc/misc/mif_reg.h +++ b/os/drivers/wireless/scsc/misc/mif_reg.h @@ -133,9 +133,6 @@ struct peterson_mutex { #define WIFI2AP_PMU_SPARE0 ((void *)(PMU_ALIVE_BASE + 0x0900)) /* Control PMU_SPARE0 */ /* Wi-Fi Firmware load address */ -#define WLAN_FW_LOAD_ADDR 0x04048000 - -#define WIFI_FW_LOAD_BASE (WLAN_FW_LOAD_ADDR >> 12) /* Base address where the Wi-Fi firmware is loaded */ #define WIFI_IRAM_MEM_BASE 0x2020 /* Base address for iRAM mappings */ #define WIFI_IMEM_SIZE 0x800 /* Mapped flash region up to the top of the iram_shared block (8 MB) */ diff --git a/os/drivers/wireless/scsc/misc/mxman.c b/os/drivers/wireless/scsc/misc/mxman.c index f40885d..5093276 100644 --- a/os/drivers/wireless/scsc/misc/mxman.c +++ b/os/drivers/wireless/scsc/misc/mxman.c @@ -448,7 +448,7 @@ static int fw_init(struct mxman *mxman, bool *fwhdr_parsed_ok) int r; char *build_id; struct fwhdr *fwhdr = &mxman->fwhdr; - char *fw = (void *)WLAN_FW_LOAD_ADDR; + char *fw = (void *)up_wlan_get_firmware(); r = fwhdr_init(fw, fwhdr, fwhdr_parsed_ok, &mxman->check_crc); if (r) { diff --git a/os/drivers/wireless/scsc/misc/platform_mif.c b/os/drivers/wireless/scsc/misc/platform_mif.c index 0f2bf39..0b828f5 100644 --- a/os/drivers/wireless/scsc/misc/platform_mif.c +++ b/os/drivers/wireless/scsc/misc/platform_mif.c @@ -329,7 +329,7 @@ static int platform_mif_reset(struct scsc_mif_abs *interface, bool reset) if (enable_platform_mif_arm_reset || !reset) { if (!reset) { /* Release from reset */ /* Set WIFI_MEM_BA0 */ - val = WIFI_FW_LOAD_BASE; + val = up_wlan_get_firmware() >> 12; putreg32(val, WIFI2AP_MEM_CONFIG1); /* Set WIFI_MEM_BA1 */