Skip to content

Commit a1f424e

Browse files
committed
Add support for CYW43_FIRMWARE_FAMILY_ID
1 parent dd365f8 commit a1f424e

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

main.cpp

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ static const string rp2040_family_name = "rp2040";
113113
static const string rp2350_arm_s_family_name = "rp2350-arm-s";
114114
static const string rp2350_arm_ns_family_name = "rp2350-arm-ns";
115115
static const string rp2350_riscv_family_name = "rp2350-riscv";
116+
static const string cyw43_firmware_family_name = "cyw43-firmware";
116117

117118
static string hex_string(int64_t value, int width=8, bool prefix=true, bool uppercase=false) {
118119
std::stringstream ss;
@@ -367,6 +368,8 @@ struct family_id : public cli::value_base<family_id> {
367368
t = RP2350_ARM_NS_FAMILY_ID;
368369
} else if (value == rp2350_riscv_family_name) {
369370
t = RP2350_RISCV_FAMILY_ID;
371+
} else if (value == cyw43_firmware_family_name) {
372+
t = CYW43_FIRMWARE_FAMILY_ID;
370373
} else {
371374
if (value.find("0x") == 0) {
372375
value = value.substr(2);
@@ -402,6 +405,7 @@ string family_name(unsigned int family_id) {
402405
if (family_id == RP2350_ARM_S_FAMILY_ID) return "'" + rp2350_arm_s_family_name + "'";
403406
if (family_id == RP2350_ARM_NS_FAMILY_ID) return "'" + rp2350_arm_ns_family_name + "'";
404407
if (family_id == RP2350_RISCV_FAMILY_ID) return "'" + rp2350_riscv_family_name + "'";
408+
if (family_id == CYW43_FIRMWARE_FAMILY_ID) return "'" + cyw43_firmware_family_name + "'";
405409
if (!family_id) return "none";
406410
return hex_string(family_id);
407411
}
@@ -3142,12 +3146,12 @@ string str_permissions(unsigned int p) {
31423146
}
31433147

31443148
void insert_default_families(uint32_t flags_and_permissions, vector<std::string> &family_ids) {
3145-
if (flags_and_permissions & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_ABSOLUTE_BITS) family_ids.emplace_back(absolute_family_name);
3146-
if (flags_and_permissions & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2040_BITS) family_ids.emplace_back(rp2040_family_name);
3147-
if (flags_and_permissions & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2350_ARM_S_BITS) family_ids.emplace_back(rp2350_arm_s_family_name);
3148-
if (flags_and_permissions & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2350_ARM_NS_BITS) family_ids.emplace_back(rp2350_arm_ns_family_name);
3149-
if (flags_and_permissions & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2350_RISCV_BITS) family_ids.emplace_back(rp2350_riscv_family_name);
3150-
if (flags_and_permissions & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_DATA_BITS) family_ids.emplace_back(data_family_name);
3149+
if (flags_and_permissions & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_ABSOLUTE_BITS) family_ids.emplace_back(family_name(ABSOLUTE_FAMILY_ID));
3150+
if (flags_and_permissions & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2040_BITS) family_ids.emplace_back(family_name(RP2040_FAMILY_ID));
3151+
if (flags_and_permissions & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2350_ARM_S_BITS) family_ids.emplace_back(family_name(RP2350_ARM_S_FAMILY_ID));
3152+
if (flags_and_permissions & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2350_ARM_NS_BITS) family_ids.emplace_back(family_name(RP2350_ARM_NS_FAMILY_ID));
3153+
if (flags_and_permissions & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_RP2350_RISCV_BITS) family_ids.emplace_back(family_name(RP2350_RISCV_FAMILY_ID));
3154+
if (flags_and_permissions & PICOBIN_PARTITION_FLAGS_ACCEPTS_DEFAULT_FAMILY_DATA_BITS) family_ids.emplace_back(family_name(DATA_FAMILY_ID));
31513155
}
31523156

31533157
#if HAS_LIBUSB
@@ -3290,7 +3294,7 @@ void info_guts(memory_access &raw_access, void *con) {
32903294
family_ids.clear();
32913295
insert_default_families(flags, family_ids);
32923296
for (auto family : partition.extra_families) {
3293-
family_ids.emplace_back(hex_string(family));
3297+
family_ids.emplace_back(family_name(family));
32943298
}
32953299
if (flags & PICOBIN_PARTITION_FLAGS_HAS_NAME_BITS) {
32963300
pstring << ", \"";
@@ -6213,7 +6217,7 @@ bool partition_info_command::execute(device_map &devices) {
62136217
assert((flags_and_permissions & PICOBIN_PARTITION_FLAGS_HAS_NAME_BITS) ||
62146218
got == num_extra_families + 1);
62156219
for (unsigned int j = 1; j < num_extra_families + 1; j++) {
6216-
family_ids.emplace_back(hex_string(family_id_name_buf_32[j + 1]));
6220+
family_ids.emplace_back(family_name(family_id_name_buf_32[j + 1]));
62176221
}
62186222
if (flags_and_permissions & PICOBIN_PARTITION_FLAGS_HAS_NAME_BITS) {
62196223
uint8_t *bytes = &family_id_name_buf[(num_extra_families + 2) * 4];
@@ -6359,7 +6363,7 @@ bool partition_create_command::execute(device_map &devices) {
63596363
fail(ERROR_FORMAT, "Could not parse family ID from %s: %s", family.c_str(), ret.c_str());
63606364
}
63616365
DEBUG_LOG("Got ID %08x\n", id);
6362-
if (id < RP2040_FAMILY_ID || id > FAMILY_ID_MAX) {
6366+
if (id < DEFAULT_FAMILY_ID_MIN || id > FAMILY_ID_MAX) {
63636367
DEBUG_LOG("Adding extra family\n");
63646368
new_p.extra_families.push_back(id);
63656369
}

0 commit comments

Comments
 (0)