Skip to content

Commit 1792796

Browse files
committed
Rename CYW43_USE_PARTITION_FIRMWARE->CYW43_USE_FIRMWARE_PARTITION and CYW43_WIFI_FW_PARTITION_ID->CYW43_FIRMWARE_PARTITION_ID
1 parent 1e7e0c7 commit 1792796

File tree

6 files changed

+119
-10
lines changed

6 files changed

+119
-10
lines changed

src/rp2_common/pico_cyw43_driver/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ if (EXISTS ${PICO_CYW43_DRIVER_PATH}/${CYW43_DRIVER_TEST_FILE})
167167
if (PICO_PLATFORM STREQUAL "rp2040")
168168
message(FATAL_ERROR "RP2040 does not support storing wi-fi firmware in partitions")
169169
endif()
170-
target_compile_definitions(${TARGET} PRIVATE CYW43_USE_PARTITION_FIRMWARE=1)
170+
target_compile_definitions(${TARGET} PRIVATE CYW43_USE_FIRMWARE_PARTITION=1)
171171
pico_embed_pt_in_binary(${TARGET} ${PICO_CYW43_DRIVER_CURRENT_PATH}/wifi_pt.json)
172172

173173
find_package (Python3 REQUIRED COMPONENTS Interpreter)

src/rp2_common/pico_cyw43_driver/cyw43_driver.c

+3-8
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,12 @@
2121

2222
static async_context_t *cyw43_async_context = NULL;
2323

24-
#if CYW43_USE_PARTITION_FIRMWARE
24+
#if CYW43_USE_FIRMWARE_PARTITION
2525
#include "pico/bootrom.h"
2626
#include "hardware/flash.h"
2727
#include "boot/picobin.h"
2828
#include <stdlib.h>
2929

30-
// PICO_CONFIG: CYW43_WIFI_FW_PARTITION_ID, ID of Wi-Fi firmware partition, type=int, default=0x776966696669726d (wififirm), group=pico_cyw43_driver
31-
#ifndef CYW43_WIFI_FW_PARTITION_ID
32-
#define CYW43_WIFI_FW_PARTITION_ID 0x776966696669726d // wififirm
33-
#endif
34-
3530
int32_t cyw43_wifi_fw_len;
3631
int32_t cyw43_clm_len;
3732
uintptr_t fw_data;
@@ -120,7 +115,7 @@ static void cyw43_sleep_timeout_reached(async_context_t *context, __unused async
120115
}
121116

122117
bool cyw43_driver_init(async_context_t *context) {
123-
#if CYW43_USE_PARTITION_FIRMWARE
118+
#if CYW43_USE_FIRMWARE_PARTITION
124119
uint32_t buffer[(16 * 4) + 1] = {}; // maximum of 16 partitions, each with maximum of 4 words returned, plus 1
125120
int ret = rom_get_partition_table_info(buffer, count_of(buffer), PT_INFO_PARTITION_LOCATION_AND_FLAGS | PT_INFO_PARTITION_ID);
126121

@@ -138,7 +133,7 @@ bool cyw43_driver_init(async_context_t *context) {
138133
uint64_t id = 0;
139134
id |= buffer[i++];
140135
id |= ((uint64_t)(buffer[i++]) << 32ull);
141-
if (id == CYW43_WIFI_FW_PARTITION_ID) {
136+
if (id == CYW43_FIRMWARE_PARTITION_ID) {
142137
picked_p = p;
143138
break;
144139
}

src/rp2_common/pico_cyw43_driver/include/cyw43_configport.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ extern "C" {
6363
#endif
6464

6565
#ifndef CYW43_CHIPSET_FIRMWARE_INCLUDE_FILE
66-
#if CYW43_USE_PARTITION_FIRMWARE
66+
#if CYW43_USE_FIRMWARE_PARTITION
6767
#define CYW43_CHIPSET_FIRMWARE_INCLUDE_FILE "cyw43_partition_firmware.h"
6868
#else
6969
#if CYW43_ENABLE_BLUETOOTH

src/rp2_common/pico_cyw43_driver/include/pico/cyw43_driver.h

+7
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@
2020
#include "cyw43_configport.h"
2121
#endif
2222

23+
#if CYW43_USE_FIRMWARE_PARTITION
24+
// PICO_CONFIG: CYW43_FIRMWARE_PARTITION_ID, ID of Wi-Fi firmware partition, type=int, default=0x776966696669726d (wififirm), group=pico_cyw43_driver
25+
#ifndef CYW43_FIRMWARE_PARTITION_ID
26+
#define CYW43_FIRMWARE_PARTITION_ID 0x776966696669726d // wififirm
27+
#endif
28+
#endif
29+
2330
#ifdef __cplusplus
2431
extern "C" {
2532
#endif

tmp.diff

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
--- a/src/rp2_common/pico_crt0/rp2350/memmap_no_flash.ld
2+
+++ b/src/rp2_common/pico_crt0/rp2350/memmap_no_flash.ld
3+
@@ -70,10 +70,10 @@ SECTIONS
4+
*(.dtors)
5+
6+
*(.eh_frame*)
7+
+ . = ALIGN(8);
8+
} > RAM
9+
10+
.rodata : {
11+
- . = ALIGN(4);
12+
*(.rodata*)
13+
*(.srodata*)
14+
. = ALIGN(4);

tools/bh.diff

+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
diff --git a/tools/check_board_header.py b/tools/check_board_header.py
2+
index 3849e14..c259c81 100755
3+
--- a/tools/check_board_header.py
4+
+++ b/tools/check_board_header.py
5+
@@ -29,6 +29,11 @@ chip_interfaces = {
6+
'RP2350B': "src/rp2350/rp2350b_interface_pins.json",
7+
}
8+
9+
+compulsory_cmake_settings = set(['PICO_PLATFORM'])
10+
+compulsory_cmake_default_settings = set(['PICO_FLASH_SIZE_BYTES'])
11+
+matching_cmake_default_settings = set(['PICO_FLASH_SIZE_BYTES', 'PICO_RP2350_A2_SUPPORTED'])
12+
+compulsory_defines = set(['PICO_FLASH_SIZE_BYTES'])
13+
+
14+
DefineType = namedtuple("DefineType", ["name", "value", "resolved_value", "lineno"])
15+
16+
def list_to_string_with(lst, joiner):
17+
@@ -230,7 +235,13 @@ with open(board_header) as header_fh:
18+
if name in cmake_settings:
19+
raise Exception("{}:{} Multiple values for pico_cmake_set {} ({} and {})".format(board_header, lineno, name, cmake_settings[name].value, value))
20+
else:
21+
- cmake_settings[name] = DefineType(name, value, None, lineno)
22+
+ if value:
23+
+ try:
24+
+ # most cmake settings are integer values
25+
+ value = int(value, 0)
26+
+ except ValueError:
27+
+ pass
28+
+ cmake_settings[name] = DefineType(name, value, None, lineno)
29+
continue
30+
31+
# look for "// pico_cmake_set_default BLAH_BLAH=42"
32+
@@ -246,7 +257,13 @@ with open(board_header) as header_fh:
33+
if name in cmake_default_settings:
34+
raise Exception("{}:{} Multiple values for pico_cmake_set_default {} ({} and {})".format(board_header, lineno, name, cmake_default_settings[name].value, value))
35+
else:
36+
- cmake_default_settings[name] = DefineType(name, value, None, lineno)
37+
+ if value:
38+
+ try:
39+
+ # most cmake settings are integer values
40+
+ value = int(value, 0)
41+
+ except ValueError:
42+
+ pass
43+
+ cmake_default_settings[name] = DefineType(name, value, None, lineno)
44+
continue
45+
46+
# look for "#else"
47+
@@ -362,8 +379,9 @@ if board_header_basename == "none.h":
48+
chip = 'RP2040'
49+
other_chip = 'RP2350'
50+
else:
51+
- if 'PICO_PLATFORM' not in cmake_settings:
52+
- raise Exception("{} is missing a pico_cmake_set {} comment".format(board_header, 'PICO_PLATFORM'))
53+
+ for setting in compulsory_cmake_settings:
54+
+ if setting not in cmake_settings:
55+
+ raise Exception("{} is missing a pico_cmake_set {} comment".format(board_header, setting))
56+
if cmake_settings['PICO_PLATFORM'].value == "rp2040":
57+
chip = 'RP2040'
58+
other_chip = 'RP2350'
59+
@@ -375,19 +393,25 @@ else:
60+
chip = 'RP2350B'
61+
if not board_header.endswith("amethyst_fpga.h"):
62+
if 'PICO_RP2350_A2_SUPPORTED' not in cmake_default_settings:
63+
- raise Exception("{} uses chip {} but is missing a pico_cmake_set_default {}".format(board_header, chip, 'PICO_RP2350_A2_SUPPORTED'))
64+
+ raise Exception("{} uses chip {} but is missing a pico_cmake_set_default {} comment".format(board_header, chip, 'PICO_RP2350_A2_SUPPORTED'))
65+
if 'PICO_RP2350_A2_SUPPORTED' not in defines:
66+
raise Exception("{} uses chip {} but is missing a #define {}".format(board_header, chip, 'PICO_RP2350_A2_SUPPORTED'))
67+
- if int(cmake_default_settings['PICO_RP2350_A2_SUPPORTED'].value) != defines['PICO_RP2350_A2_SUPPORTED'].resolved_value:
68+
- raise Exception("{} has mismatched pico_cmake_set_default and #define values for {}".format(board_header, 'PICO_RP2350_A2_SUPPORTED'))
69+
if defines['PICO_RP2350_A2_SUPPORTED'].resolved_value != 1:
70+
raise Exception("{} sets #define {} {} (should be 1)".format(board_header, chip, 'PICO_RP2350_A2_SUPPORTED', defines['PICO_RP2350_A2_SUPPORTED'].resolved_value))
71+
- if 'PICO_FLASH_SIZE_BYTES' not in cmake_default_settings:
72+
- raise Exception("{} is missing a pico_cmake_set_default {} comment".format(board_header, 'PICO_FLASH_SIZE_BYTES'))
73+
- if 'PICO_FLASH_SIZE_BYTES' not in defines:
74+
- raise Exception("{} is missing a #define {}".format(board_header, 'PICO_FLASH_SIZE_BYTES'))
75+
- if cmake_default_settings['PICO_FLASH_SIZE_BYTES'].value != defines['PICO_FLASH_SIZE_BYTES'].resolved_value:
76+
- raise Exception("{} has mismatched pico_cmake_set_default and #define values for {}".format(board_header, 'PICO_FLASH_SIZE_BYTES'))
77+
+ for setting in compulsory_cmake_default_settings:
78+
+ if setting not in cmake_default_settings:
79+
+ raise Exception("{} is missing a pico_cmake_set_default {} comment".format(board_header, setting))
80+
+ for setting in matching_cmake_default_settings:
81+
+ if setting in cmake_default_settings and setting not in defines:
82+
+ raise Exception("{} has pico_cmake_set_default {} but is missing a matching #define".format(board_header, setting))
83+
+ elif setting in defines and setting not in cmake_default_settings:
84+
+ raise Exception("{} has #define {} but is missing a matching pico_cmake_set_default comment".format(board_header, setting))
85+
+ elif setting in defines and setting in cmake_default_settings:
86+
+ if cmake_default_settings[setting].value != defines[setting].resolved_value:
87+
+ raise Exception("{} has mismatched pico_cmake_set_default and #define values for {}".format(board_header, setting))
88+
+ for setting in compulsory_defines:
89+
+ if setting not in defines:
90+
+ raise Exception("{} is missing a #define {}".format(board_header, setting))
91+
92+
if chip is None:
93+
raise Exception("Couldn't determine chip for {}".format(board_header))

0 commit comments

Comments
 (0)