luckfox-pico-sdk/sysdrv/drv_ko/wifi/aic8800_netdrv/rwnx_main.h
luckfox-eng29 8f34c2760d project:build.sh: Added fastboot support; custom modifications to U-Boot and kernel implemented using patches.
project:cfg:BoardConfig_IPC: Added fastboot BoardConfig file and firmware post-scripts, distinguishing between
the BoardConfigs for Luckfox Pico Pro and Luckfox Pico Max. project:app: Added fastboot_client and rk_smart_door
for quick boot applications; updated rkipc app to adapt to the latest media library. media:samples: Added more
usage examples. media:rockit: Fixed bugs; removed support for retrieving data frames from VPSS. media:isp:
Updated rkaiq library and related tools to support connection to RKISP_Tuner. sysdrv:Makefile: Added support for
compiling drv_ko on Luckfox Pico Ultra W using Ubuntu; added support for custom root filesystem.
sysdrv:tools:board: Updated Buildroot optional mirror sources, updated some software versions, and stored device
tree files and configuration files that undergo multiple modifications for U-Boot and kernel separately.
sysdrv:source:mcu: Used RISC-V MCU SDK with RT-Thread system, mainly for initializing camera AE during quick
boot. sysdrv:source:uboot: Added support for fastboot; added high baud rate DDR bin for serial firmware upgrades.
sysdrv:source:kernel: Upgraded to version 5.10.160; increased NPU frequency for RV1106G3; added support for
fastboot.

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>
2024-10-14 09:47:04 +08:00

256 lines
6.0 KiB
C

/**
******************************************************************************
*
* @file rwnx_main.h
*
* Copyright (C) RivieraWaves 2012-2019
*
******************************************************************************
*/
#ifndef _RWNX_MAIN_H_
#define _RWNX_MAIN_H_
#include "rwnx_defs.h"
#include "rwnx_platform.h"
#define IOCTL_HOSTAPD (SIOCIWFIRSTPRIV+28)
#define IOCTL_WPAS (SIOCIWFIRSTPRIV+30)
#define TASK_BASE_INDEX 12
#define TASK_CUSTOM (TASK_BASE_INDEX << 10)
#define APP_CMD_NUM_MAX 4
#define APP_CMD_BUF_MAX 128
#define AP_SSID_BUF_MAX 32
#define AP_PSWD_BUF_MAX 64
#define PLATFORM_PREPARE_TIMEOUT 2000
// cmd-table from app to netdrv
enum APPLICATION_CMD
{
APP_CMD_CONNECT = 1,
APP_CMD_DISCONNECT = 2,
APP_CMD_ENTER_SLEEP = 3,
APP_CMD_EXIT_SLEEP = 4,
APP_CMD_GET_MAC_ADDR = 5,
APP_CMD_GET_WLAN_STATUS = 6,
APP_CMD_START_AP = 7,
APP_CMD_CHANGE_AP_MODE = 8,
APP_CMD_STOP_AP = 9,
APP_CMD_SCAN_WIFI = 10,
APP_CMD_HOST_OTA = 11,
};
// cmd-table from netdrv to mcu
enum CUSTOM_CMD_TAG
{
CUST_CMD_CONNECT_REQ = TASK_CUSTOM,
CUST_CMD_CONNECT_CFM,
CUST_CMD_CONNECT_RESULT_CFM,
CUST_CMD_CONNECT_IND,
CUST_CMD_DISCONNECT_REQ,
CUST_CMD_DISCONNECT_CFM,
CUST_CMD_DISCONNECT_IND,
CUST_CMD_ENTER_SLEEP_REQ,
CUST_CMD_ENTER_SLEEP_CFM,
CUST_CMD_EXIT_SLEEP_REQ,
CUST_CMD_EXIT_SLEEP_CFM,
CUST_CMD_SET_MAC_ADDR_REQ,
CUST_CMD_GET_MAC_ADDR_REQ,
CUST_CMD_GET_MAC_ADDR_CFM,
CUST_CMD_GET_WLAN_STATUS_REQ,
CUST_CMD_GET_WLAN_STATUS_CFM,
CUST_CMD_START_AP_REQ,
CUST_CMD_START_AP_CFM,
CUST_CMD_ASSOC_AP_IND,
CUST_CMD_DISASSOC_AP_IND,
CUST_CMD_CHANGE_AP_MODE_REQ,
CUST_CMD_CHANGE_AP_MODE_CFM,
CUST_CMD_STOP_AP_REQ,
CUST_CMD_STOP_AP_CFM,
CUST_CMD_SCAN_WIFI_REQ,
CUST_CMD_SCAN_WIFI_CFM,
CUST_CMD_HOST_OTA_REQ,
CUST_CMD_HOST_OTA_CFM,
CUST_CMD_MAX
};
// aic work mode status
enum AIC_MODE_STATUS
{
AIC_MODE_IDLE, // AIC doesn`t connect AP and start AP
AIC_MODE_WLAN, // AIC connect to AP
AIC_MODE_AP_CONFIG, // AIC start ap to config network
AIC_MODE_AP_DIRECT, // AIC start ap to transfer data between host and AIC
};
// wlan connect status about mcu
enum WLAN_STATUS
{
WLAN_DISCONNECT, // AIC-STA hasn`t connected AP
WLAN_CONNECTED, // AIC-STA has connected AP
};
// wlan connect failure result
enum WLAN_CONN_FAIL_RESULT
{
WLAN_CONN_FAIL, // AIC-STA failed to connect AP
WLAN_PSWD_WRONG, // AIC-STA failed to connect AP since passward wrong
};
// ap start status
enum AP_STATUS
{
AIC_AP_START, // AIC-AP is START
AIC_AP_CLOSE, // AIC-AP is CLOSE
};
// data from mcu to netdrv
struct custom_msg_common
{
int8_t status;
};
struct custom_msg_connect_ind
{
uint8_t ussid[AP_SSID_BUF_MAX];
int8_t rssi;
u32 ip;
u32 gw;
};
struct custom_msg_mac_addr_cfm
{
uint8_t mac_addr[6];
};
struct custom_msg_wlan_status_cfm
{
uint8_t status;
int8_t rssi;
uint8_t ussid[AP_SSID_BUF_MAX];
u32 ip;
u32 gw;
};
struct custom_msg_ap_assoc_sta_ind
{
uint8_t sub_sta_addr[6];
};
struct custom_msg_scan_wifi_result_cfm
{
uint8_t scan_num;
int8_t rssi;
uint8_t bssid[6];
uint8_t ssid[AP_SSID_BUF_MAX];
uint32_t akm;
int channal;
};
// cmd and data from netdrv to mcu
struct custom_msg_hdr
{
u32_l rsv0;
u16_l cmd_id;
u16_l rsv[2];
u16_l len;
};
struct custom_msg_common_req
{
struct custom_msg_hdr hdr;
uint32_t message;
};
struct custom_msg_connect_req
{
struct custom_msg_hdr hdr;
u8_l ssid[AP_SSID_BUF_MAX];
u8_l pw[AP_PSWD_BUF_MAX];
};
struct custom_msg_set_mac_req
{
struct custom_msg_hdr hdr;
u8_l mac_addr[6];
};
struct custom_msg_start_ap_req
{
struct custom_msg_hdr hdr;
u8_l band;
u8_l ssid[AP_SSID_BUF_MAX];
u8_l pw[AP_PSWD_BUF_MAX];
};
struct custom_msg_ctrl_ota_req
{
struct custom_msg_hdr hdr;
uint32_t ota_step;
union {
struct file_info
{
uint32_t file_size;
uint32_t file_crc;
} ota_file_info;
struct pkg_info
{
uint32_t flash_addr;
uint32_t flash_size;
uint8_t pkg_buf[1024];
} ota_pkg_info;
} ota_msg;
};
// custom_msg vnet status and information
typedef struct _aicwf_custom_msg_vnet {
int8_t aic_mode_status;
uint8_t wlan_status;
uint8_t wlan_conn_fail_result;
int8_t ota_status;
int8_t ap_status;
bool comp_sign_get_mac_ready;
bool comp_sign_get_wlan_ready;
struct completion platform_get_mac_done;
struct completion platform_get_wlan_done;
struct custom_msg_mac_addr_cfm macaddr_cfm;
struct custom_msg_connect_ind connect_ind;
struct custom_msg_wlan_status_cfm get_wlan_cfm;
struct custom_msg_ap_assoc_sta_ind ap_assoc_sta_addr_ind;
struct custom_msg_scan_wifi_result_cfm *scan_wifi_cfm_ptr;
struct custom_msg_scan_wifi_result_cfm scan_wifi_cfm[32];
} aicwf_custom_msg_vnet;
// custom_msg app cmd request information
typedef struct _aicwf_custom_msg_app_cmd {
struct custom_msg_connect_req connect_req;
struct custom_msg_hdr common_req;
struct custom_msg_start_ap_req ap_req;
char file_path[APP_CMD_BUF_MAX];
} aicwf_custom_msg_app_cmd;
typedef struct _android_wifi_priv_cmd {
char *buf;
int used_len;
int total_len;
} android_wifi_priv_cmd;
#ifdef CONFIG_COMPAT
typedef struct _compat_android_wifi_priv_cmd {
compat_caddr_t buf;
int used_len;
int total_len;
} compat_android_wifi_priv_cmd;
#endif /* CONFIG_COMPAT */
#if !defined(CONFIG_VNAT_MODE)
int nlaic_rx_rawdata(u8 *data, int len);
int rwnx_nlaic_init(struct rwnx_plat *rwnx_plat, void **platform_data);
void rwnx_nlaic_deinit(void);
#endif
void rwnx_data_dump(char* tag, void* data, unsigned long len);
#endif /* _RWNX_MAIN_H_ */