generated from Embedded_Projects/Fire_RT1052_Pro_Template
88 lines
2.5 KiB
C
88 lines
2.5 KiB
C
#include <string.h>
|
|
|
|
/* WHD resource API */
|
|
#include "whd_resource_api.h"
|
|
|
|
/* Private resource storage identifiers */
|
|
#include "whd_port/resources/whd_resources.h"
|
|
|
|
#define RESOURCE_FIRMWARE_NAME cyw43362a2_firmware_image
|
|
#define RESOURCE_FIRMWARE_SIZE sizeof(RESOURCE_FIRMWARE_NAME)
|
|
|
|
/* CYW43362A2 does not have CLM */
|
|
#define RESOURCE_CLM_NAME
|
|
#define RESOURCE_CLM_SIZE 0
|
|
|
|
#define RESOURCE_NVRAM_NAME cyw43362a2_nvram_image
|
|
#define RESOURCE_NVRAM_SIZE sizeof(RESOURCE_NVRAM_NAME)
|
|
|
|
#define RESOURCE_BUFFER_SIZE 512
|
|
|
|
static uint8_t s_resource_buf[RESOURCE_BUFFER_SIZE];
|
|
|
|
static uint32_t resource_block_size(whd_driver_t whd_drv, whd_resource_type_t type, uint32_t *size_out) {
|
|
*size_out = RESOURCE_BUFFER_SIZE;
|
|
|
|
return WHD_SUCCESS;
|
|
}
|
|
|
|
static uint32_t resource_size(whd_driver_t whd_drv, whd_resource_type_t resource, uint32_t *size_out) {
|
|
switch (resource) {
|
|
case WHD_RESOURCE_WLAN_FIRMWARE:
|
|
*size_out = RESOURCE_FIRMWARE_SIZE;
|
|
break;
|
|
case WHD_RESOURCE_WLAN_NVRAM:
|
|
*size_out = RESOURCE_NVRAM_SIZE;
|
|
break;
|
|
case WHD_RESOURCE_WLAN_CLM:
|
|
*size_out = RESOURCE_CLM_SIZE;
|
|
break;
|
|
default:
|
|
*size_out = 0;
|
|
break;
|
|
}
|
|
return WHD_SUCCESS;
|
|
}
|
|
|
|
static uint32_t resource_no_of_blocks(whd_driver_t whd_drv, whd_resource_type_t type, uint32_t *block_count) {
|
|
uint32_t res_sz = 0U;
|
|
uint32_t blk_sz = 0U;
|
|
|
|
resource_size(whd_drv, type, &res_sz);
|
|
resource_block_size(whd_drv, type, &blk_sz);
|
|
*block_count = res_sz / blk_sz;
|
|
if (res_sz % blk_sz) *block_count += 1;
|
|
|
|
return WHD_SUCCESS;
|
|
}
|
|
|
|
static uint32_t resource_block(whd_driver_t whd_drv, whd_resource_type_t type, uint32_t blockno, const uint8_t **data,
|
|
uint32_t *size_out) {
|
|
uint32_t ret = WHD_SUCCESS;
|
|
uint32_t res_sz = 0U;
|
|
uint32_t blk_sz = 0U;
|
|
|
|
ret = resource_size(whd_drv, type, &res_sz);
|
|
if (ret != WHD_SUCCESS) {
|
|
return ret;
|
|
}
|
|
|
|
ret = resource_block_size(whd_drv, type, &blk_sz);
|
|
if (ret != WHD_SUCCESS) {
|
|
return ret;
|
|
}
|
|
|
|
switch (type) {
|
|
case WHD_RESOURCE_WLAN_FIRMWARE: {
|
|
/* TODO: Implement this */
|
|
}
|
|
}
|
|
return WHD_SUCCESS;
|
|
}
|
|
|
|
whd_resource_source_t resource_ops = {
|
|
.whd_resource_size = resource_size,
|
|
.whd_get_resource_block_size = resource_block_size,
|
|
.whd_get_resource_no_of_blocks = resource_no_of_blocks,
|
|
.whd_get_resource_block = resource_block,
|
|
}; |