From 0db6c310ef210a9f5f700fbcb07e4710a8783c43 Mon Sep 17 00:00:00 2001 From: Andrew Scheller Date: Mon, 24 Mar 2025 12:21:35 +0000 Subject: [PATCH] Ensure that all RP2350 board-headers explicitly define PICO_RP2350A --- src/boards/include/boards/pimoroni_pga2350.h | 3 +++ .../include/boards/pimoroni_pico_plus2_rp2350.h | 3 +++ .../include/boards/pimoroni_pico_plus2_w_rp2350.h | 3 +++ src/boards/include/boards/seeed_xiao_rp2350.h | 3 +++ tools/check_board_header.py | 14 +++++++++----- 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/boards/include/boards/pimoroni_pga2350.h b/src/boards/include/boards/pimoroni_pga2350.h index f4f0a3d2a..1bd02dc48 100644 --- a/src/boards/include/boards/pimoroni_pga2350.h +++ b/src/boards/include/boards/pimoroni_pga2350.h @@ -20,6 +20,9 @@ #define PIMORONI_PGA2350 #define PIMORONI_PGA2350_16MB +// --- RP2350 VARIANT --- +#define PICO_RP2350A 0 + // --- BOARD SPECIFIC --- #define PIMORONI_PGA2350_PSRAM_CS_PIN 47 diff --git a/src/boards/include/boards/pimoroni_pico_plus2_rp2350.h b/src/boards/include/boards/pimoroni_pico_plus2_rp2350.h index 34c5fb38f..40fff17d7 100644 --- a/src/boards/include/boards/pimoroni_pico_plus2_rp2350.h +++ b/src/boards/include/boards/pimoroni_pico_plus2_rp2350.h @@ -19,6 +19,9 @@ // For board detection #define PIMORONI_PICO_PLUS2_RP2350 +// --- RP2350 VARIANT --- +#define PICO_RP2350A 0 + // --- BOARD SPECIFIC --- #define SPCE_SPI 0 #define SPCE_TX_MISO_PIN 32 diff --git a/src/boards/include/boards/pimoroni_pico_plus2_w_rp2350.h b/src/boards/include/boards/pimoroni_pico_plus2_w_rp2350.h index ba3c0e56c..7a4f1741f 100644 --- a/src/boards/include/boards/pimoroni_pico_plus2_w_rp2350.h +++ b/src/boards/include/boards/pimoroni_pico_plus2_w_rp2350.h @@ -20,6 +20,9 @@ // For board detection #define PIMORONI_PICO_PLUS2_W_RP2350 +// --- RP2350 VARIANT --- +#define PICO_RP2350A 0 + // --- BOARD SPECIFIC --- #define PIMORONI_PICO_PLUS2_W_USER_SW_PIN 45 #define PIMORONI_PICO_PLUS2_W_PSRAM_CS_PIN 47 diff --git a/src/boards/include/boards/seeed_xiao_rp2350.h b/src/boards/include/boards/seeed_xiao_rp2350.h index 52e163654..69a2ba40b 100644 --- a/src/boards/include/boards/seeed_xiao_rp2350.h +++ b/src/boards/include/boards/seeed_xiao_rp2350.h @@ -17,6 +17,9 @@ // For board detection #define SEEED_XIAO_RP2350 +// --- RP2350 VARIANT --- +#define PICO_RP2350A 1 + //------------- UART -------------// #ifndef PICO_DEFAULT_UART #define PICO_DEFAULT_UART 0 diff --git a/tools/check_board_header.py b/tools/check_board_header.py index 4efeef4c7..3bfce1c5b 100755 --- a/tools/check_board_header.py +++ b/tools/check_board_header.py @@ -196,6 +196,7 @@ def read_defines_from(header_file, defines_dict): if board_header_basename == "amethyst_fpga.h": defines['PICO_RP2350'] = DefineType('PICO_RP2350', 1, 1, -1) + defines['PICO_RP2350A'] = DefineType('PICO_RP2350A', 0, 0, -1) with open(board_header) as header_fh: last_ifndef = None @@ -347,7 +348,7 @@ def read_defines_from(header_file, defines_dict): raise Exception("{}:{} Include-guard #define {} is missing an #ifndef".format(board_header, lineno, name)) if value: raise Exception("{}:{} Include-guard #define {} shouldn't have a value".format(board_header, lineno, name)) - if len(defines) and not (len(defines) == 1 and defines[list(defines.keys())[0]].lineno < 0): + if any(defines[d].lineno >= 0 for d in defines): raise Exception("{}:{} Include-guard #define {} should be the first define".format(board_header, lineno, name)) if name == expected_include_guard: has_include_guard = True @@ -387,12 +388,15 @@ def read_defines_from(header_file, defines_dict): other_chip = 'RP2350' elif cmake_settings['PICO_PLATFORM'].value == "rp2350": other_chip = 'RP2040' - if 'PICO_RP2350A' in defines and defines['PICO_RP2350A'].resolved_value == 1: - chip = 'RP2350A' - else: - chip = 'RP2350B' if 'PICO_RP2350B' in defines: raise Exception("{} sets #define {} {} (should probably be #define {} {})".format(board_header, 'PICO_RP2350B', defines['PICO_RP2350B'].resolved_value, 'PICO_RP2350A', 1 - defines['PICO_RP2350B'].resolved_value)) + if 'PICO_RP2350A' not in defines: + raise Exception("{} has no #define for {} (set to 1 for RP2350A, or 0 for RP2350B)".format(board_header, 'PICO_RP2350A')) + else: + if defines['PICO_RP2350A'].resolved_value == 1: + chip = 'RP2350A' + else: + chip = 'RP2350B' if not board_header.endswith("amethyst_fpga.h"): if 'PICO_RP2350_A2_SUPPORTED' not in cmake_default_settings: raise Exception("{} uses chip {} but is missing a pico_cmake_set_default {} comment".format(board_header, chip, 'PICO_RP2350_A2_SUPPORTED'))