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
/*
 *  Copyright (C) 2018 Realtek Semiconductor Corporation.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  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.
 */
 
struct rtb_struct;
 
#define BAUDRATE_4BYTES
 
#define ROM_LMP_NONE            0x0000
#define ROM_LMP_8723a           0x1200
#define ROM_LMP_8723b           0x8723
#define ROM_LMP_8821a           0x8821
#define ROM_LMP_8761a           0x8761
#define ROM_LMP_8761btc        0x8763
 
#define ROM_LMP_8703a           0x87b3
#define ROM_LMP_8763a           0x8763
#define ROM_LMP_8703b           0x8703
#define ROM_LMP_8723c           0x87c3 /* ??????? */
#define ROM_LMP_8822b           0x8822
#define ROM_LMP_8822c           0x8822
#define ROM_LMP_8852a           0x8852
#define ROM_LMP_8723cs_xx       0x8704
#define ROM_LMP_8723cs_cg       0x8705
#define ROM_LMP_8723cs_vf       0x8706
 
/* Chip type */
#define CHIP_8703AS    1
#define CHIP_8723CS_CG 3
#define CHIP_8723CS_VF 4
#define CHIP_8723CS_XX 5
#define CHIP_8703BS   7
#define CHIP_8725AS   0x05
 
/* software id */
#define CHIP_UNKNOWN    0x00
#define CHIP_8761AT    0x1F
#define CHIP_8761ATF    0x2F
#define CHIP_8761BTC    0x3F
#define CHIP_8761BH4    0x4F
#define CHIP_8723BS    0x5F
#define CHIP_BEFORE    0x6F
#define CHIP_8822BS    0x70
#define CHIP_8723DS    0x71
#define CHIP_8821CS    0x72
#define CHIP_8822CS    0x73
#define CHIP_8761B    0x74
#define CHIP_8852AS    0x75
#define CHIP_8723FS    0x76
#define CHIP_8852BS    0x77
 
#define RTL_FW_MATCH_CHIP_TYPE  (1 << 0)
#define RTL_FW_MATCH_HCI_VER    (1 << 1)
#define RTL_FW_MATCH_HCI_REV    (1 << 2)
struct patch_info {
   uint32_t    match_flags;
   uint8_t     chip_type;
   uint16_t    lmp_subver;
   uint16_t    proj_id;
   uint8_t     hci_ver;
   uint16_t    hci_rev;
   char        *patch_file;
   char        *config_file;
   char        *ic_name;
};
 
struct patch_info *get_patch_entry(struct rtb_struct *btrtl);
uint8_t *rtb_read_config(const char *file, int *cfg_len, uint8_t chip_type);
uint8_t *rtb_read_firmware(struct rtb_struct *btrtl, int *fw_len);
uint8_t *rtb_get_final_patch(int fd, int proto, int *rlen);