WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
factory.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.
3 * Description: UPG ab mode config file for product.
4 */
5#ifndef FACTORY_H
6#define FACTORY_H
7
8#include <stdbool.h>
9#include "partition.h"
10#include "errcode.h"
11
12#ifdef __cplusplus
13#if __cplusplus
14extern "C" {
15#endif
16#endif
17
18#define FLASH_PAGE_SIZE_BIT_LENGTH 12
19#define MFG_FACTORY_DEFAULT_MODE 1
20#define MFG_DEFAULT_REGION 0
21#define FACTORY_INFO_OFFSET 2
22#define BYTE_4K 0x1000
23#define BYTE_4K_MASK 0xFFF
24#define MFG_FACTORY_REGION_CONFIG_SIZE 0x1000
25#define MFG_FACTORY_CONFIG_CHECK 0x8F45BA2F
26#define FLASH_MAPPED_END 0x400000
27#define FACTORYBOOT_KEY_AREA_IMAGE_ID 0x4B7CF333
28#define MFG_FACTORY_VALID 0x0
29#define MFG_FACTORY_INVALID 0x1
30#define FLASH_PRIVATE_CUSTOM_CONFIG_TIMES 4
31#define FLASH_PRIVATE_CUSTOM_CONFIG_OFFSET 0x200
32#define IMAGE_HEADER_LEN ((KEY_AREA_STRUCTURE_LENGTH) + (CODE_INFO_STRUCTURE_LENGTH))
33
39
40typedef struct {
41 uint32_t factory_mode; /* 0:normal_mode;1:factory_mode */
42 uint32_t factory_addr_start; /* factory bin start address */
43 uint32_t factory_addr_switch; /* factory bin switch address */
44 uint32_t factory_size; /* factory bin size */
45 uint32_t factory_switch_size; /* factory bin size */
46 uint32_t factory_valid; /* 0:erase 1:invalid;2:valid */
47 uint32_t check_num; /* check number */
49
54
55uint32_t global_interrupt_lock(void);
57#ifdef WS63_PRODUCT_NONE
58uint32_t mfg_get_ftm_run_region(mfg_factory_config_t *mfg_factory_cfg);
59#endif
60uint32_t mfg_get_region_config(mfg_region_config_t *region_cfg);
62errcode_t mfg_flash_read(uint8_t *ram_data, const uint32_t size);
63errcode_t mfg_flash_write(const uint8_t *ram_data, uint32_t size);
64errcode_t mfg_factory_mode_switch(mfg_region_config_t img_info, uint32_t switch_mode, mfg_factory_config_t *config);
66errcode_t mfg_flash_write_info(const uint8_t *ram_data, uint32_t flash_offset, uint32_t size, bool do_erase);
67#ifdef _PRE_WLAN_FEATURE_MFG_TEST
68errcode_t plt_flash_read_data(uint32_t addr, uint32_t size, uint8_t *data);
69errcode_t plt_flash_write_data(uint32_t addr, uint32_t size, uint8_t *data, uint32_t *left);
70#endif
71#ifdef __cplusplus
72#if __cplusplus
73}
74#endif
75#endif
76
77#endif /* FACTORY_H */
errcode_t mfg_flash_read(uint8_t *ram_data, const uint32_t size)
Definition factory.c:134
void global_interrupt_restore(uint32_t)
errcode_t mfg_factory_mode_switch(mfg_region_config_t img_info, uint32_t switch_mode, mfg_factory_config_t *config)
Definition factory.c:301
uint32_t global_interrupt_lock(void)
mfg_region_index
Definition factory.h:34
@ FTM_REGION_COUNT
Definition factory.h:37
@ FTM_REGION_SERVICE
Definition factory.h:35
@ FTM_REGION_FACTORY
Definition factory.h:36
errcode_t mfg_flash_write(const uint8_t *ram_data, uint32_t size)
Definition factory.c:195
errcode_t mfg_flash_erase(void)
Definition factory.c:110
errcode_t mfg_flash_write_info(const uint8_t *ram_data, uint32_t flash_offset, uint32_t size, bool do_erase)
Definition factory.c:165
uint32_t mfg_set_factory_invalid(mfg_factory_config_t *config)
uint32_t mfg_get_region_config(mfg_region_config_t *region_cfg)
Definition factory.c:215
uint32_t errcode_t
Definition of error code.
Definition errcode.h:30
Definition factory.h:40
uint32_t factory_size
Definition factory.h:44
uint32_t factory_addr_start
Definition factory.h:42
uint32_t factory_mode
Definition factory.h:41
uint32_t factory_addr_switch
Definition factory.h:43
uint32_t factory_switch_size
Definition factory.h:45
uint32_t check_num
Definition factory.h:47
uint32_t factory_valid
Definition factory.h:46
Definition factory.h:50
partition_information_t mfg_info
Definition factory.h:52
partition_information_t app_info
Definition factory.h:51
分区信息结构
Definition partition.h:50
Definition hal_uart_v151_regs_def.h:38