hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/** @file */
/******************************************************************************
 *
 * Copyright(c) 2019 Realtek Corporation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 *
 ******************************************************************************/
 
#ifndef _MAC_AX_SECURE_BOOT_H_
#define _MAC_AX_SECURE_BOOT_H_
 
#include "../type.h"
#include "efuse.h"
//#include "fwcmd.h"
 
//#if WIFI_HAL_G6
 
#define OTP_SEC_DIS_ZONE_BASE 0x0
#define OTP_SEC_DIS_ZONE_SIZE 4
#define OTP_SECURE_ZONE_BASE 0x4C0
#define OTP_SECURE_ZONE_SIZE 192
 
#define OTP_KEY_INFO_CELL_01_ADDR 0x5EC
#define OTP_KEY_INFO_CELL_02_ADDR 0x5ED
 
#define OTP_PHY_BASE 0x0
#define OTP_PHY_1ST_B_OFFSET 0
#define OTP_PHY_2ND_B_OFFSET 1
#define OTP_PHY_3RD_B_OFFSET 2
#define OTP_PHY_4TH_B_OFFSET 3
 
#define SEC_B_VAL 0xFC
#define SIC_B_VAL 0xF3
#define JTAG_B_VAL 0xCF
#define UART_TX_B_VAL 0x3F
#define UART_RX_B_VAL 0xFC
 
enum mac_sec_mode {
   MAC_NON_SEC,
   MAC_SEC,
};
 
enum mac_sic_mode {
   MAC_SIC_EN,
   MAC_SIC_DIS,
};
 
enum mac_jtag_mode {
   MAC_JTAG_EN,
   MAC_JTAG_DIS,
};
 
enum mac_uart_tx_mode {
   MAC_UART_TX_EN,
   MAC_UART_TX_DIS,
};
 
enum mac_uart_rx_mode {
   MAC_UART_RX_EN,
   MAC_UART_RX_DIS,
};
 
// externalPN  = 0x5EC[7:0]
// customer    = 0x5ED[3:0]
// serialNum   = 0x5ED[6:4]
// securityRec = 0x5ED[7:7]
#define _external_pn(byte)   ((byte & 0xFF) >> 0)
#define _customer(byte)     ((byte & 0x0F) >> 0)
#define _serial_num(byte)    ((byte & 0x70) >> 4)
#define _security_rec(byte)  ((byte & 0x80) >> 7)
 
#define _1st_double_bits(byte) ((byte & 0x03) >> 0)
#define _2nd_double_bits(byte) ((byte & 0x0C) >> 2)
#define _3rd_double_bits(byte) ((byte & 0x30) >> 4)
#define _4th_double_bits(byte) ((byte & 0xC0) >> 6)
 
u32 mac_chk_sec_rec(struct mac_ax_adapter *adapter, u8 *sec_mode);
u32 mac_pg_sec_phy_wifi(struct mac_ax_adapter *adapter);
u32 mac_cmp_sec_phy_wifi(struct mac_ax_adapter *adapter);
u32 mac_pg_sec_hid_wifi(struct mac_ax_adapter *adapter);
u32 mac_cmp_sec_hid_wifi(struct mac_ax_adapter *adapter);
u32 mac_pg_sec_dis(struct mac_ax_adapter *adapter);
u32 mac_cmp_sec_dis(struct mac_ax_adapter *adapter);
u32 mac_sic_dis(struct mac_ax_adapter *adapter);
u32 mac_chk_sic_dis(struct mac_ax_adapter *adapter, u8 *sic_mode);
u32 mac_jtag_dis(struct mac_ax_adapter *adapter);
u32 mac_chk_jtag_dis(struct mac_ax_adapter *adapter, u8 *jtag_mode);
u32 mac_uart_tx_dis(struct mac_ax_adapter *adapter);
u32 mac_chk_uart_tx_dis(struct mac_ax_adapter *adapter, u8 *uart_tx_mode);
u32 mac_uart_rx_dis(struct mac_ax_adapter *adapter);
u32 mac_chk_uart_rx_dis(struct mac_ax_adapter *adapter, u8 *uart_rx_mode);
 
#endif
//#endif