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>
256 lines
6.0 KiB
C
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_ */
|