Skip to content

Commit e8b1d84

Browse files
committed
[RP2XXX] more of RP2350 build infra
1 parent 6bae831 commit e8b1d84

File tree

11 files changed

+96
-34
lines changed

11 files changed

+96
-34
lines changed

.github/workflows/main.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ jobs:
4545
'arduino:renesas_uno:unor4wifi',
4646
'rp2040:rp2040:generic',
4747
'rp2040:rp2040:rpipicow',
48-
'rp2040:rp2040:rpipico2',
48+
'rp2040:rp2040:rpipico2:arch=arm',
49+
'rp2040:rp2040:rpipico2:arch=riscv',
50+
#'rp2040:rp2040:rpipico2w:arch=arm',
51+
#'rp2040:rp2040:rpipico2w:arch=riscv',
4952
'arduino:mbed_rp2040:pico',
5053
#'arduino:mbed_nano:nanorp2040connect',
5154
'SiliconLabs:silabs:nano_matter:protocol_stack=ble_arduino',
@@ -408,6 +411,7 @@ jobs:
408411
if [[ "$BOARD" =~ "rp2040:rp2040:" ]]; then
409412
arduino --pref "boardsmanager.additional.urls=https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json" --save-prefs ;
410413
arduino --install-boards rp2040:rp2040:4.2.1 ;
414+
#arduino --install-boards rp2040:rp2040:4.3.0 ;
411415
arduino --board $BOARD --save-prefs ;
412416
if [[ "$BOARD" =~ "rp2040:rp2040:rpipicow" ]]; then
413417
arduino --pref "custom_freq=rpipicow_120" --save-prefs ;

software/firmware/source/SkyView/Platform_RP2040.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,9 @@ static void RP2040_fini()
504504
#if defined(ARDUINO_RASPBERRY_PI_PICO_W)
505505
if (RP2040_board == RP2040_RPIPICO_W) {
506506
if (cyw43_is_initialized(&cyw43_state)) cyw43_arch_deinit();
507+
#if !(ARDUINO_PICO_MAJOR == 4 && ARDUINO_PICO_MINOR == 3 && ARDUINO_PICO_REVISION == 0)
507508
pinMode(CYW43_PIN_WL_REG_ON, INPUT_PULLDOWN);
509+
#endif
508510
}
509511
#endif /* ARDUINO_RASPBERRY_PI_PICO_W */
510512

@@ -1792,8 +1794,18 @@ IODev_ops_t RP2040_USBSerial_ops = {
17921794
};
17931795

17941796
const SoC_ops_t RP2040_ops = {
1797+
#if defined(PICO_RP2350)
1798+
#if defined(PICO_RISCV)
1799+
SOC_RP2350_RISC,
1800+
"RP2350-RISC",
1801+
#else
1802+
SOC_RP2350_ARM,
1803+
"RP2350-ARM",
1804+
#endif /* PICO_RISCV */
1805+
#else
17951806
SOC_RP2040,
17961807
"RP2040",
1808+
#endif /* PICO_RP2350 */
17971809
RP2040_setup,
17981810
RP2040_post_init,
17991811
RP2040_loop,

software/firmware/source/SkyView/Platform_RP2040.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ enum RP2040_board_id {
6565
RP2040_RPIPICO,
6666
RP2040_RPIPICO_W,
6767
RP2040_WEACT,
68+
RP2350_RPIPICO_2,
69+
RP2350_RPIPICO_2W,
6870
};
6971

7072
/* Console I/O */

software/firmware/source/SkyView/SoCHelper.h

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,11 @@ enum
7474
SOC_ESP32,
7575
SOC_ESP32S2,
7676
SOC_ESP32S3,
77+
SOC_ESP32C2,
7778
SOC_ESP32C3,
7879
SOC_ESP32C6,
80+
SOC_ESP32H2,
81+
SOC_ESP32P4,
7982
SOC_RPi,
8083
SOC_CC13X0,
8184
SOC_CC13X2,
@@ -86,7 +89,12 @@ enum
8689
SOC_SAMD,
8790
SOC_AVR,
8891
SOC_ASR66,
89-
SOC_RP2040
92+
SOC_RP2040,
93+
SOC_RP2350_ARM,
94+
SOC_RP2350_RISC,
95+
SOC_RA4M1,
96+
SOC_EFR32,
97+
SOC_CH32
9098
};
9199

92100
extern const SoC_ops_t *SoC;

software/firmware/source/SkyWatch/Platform_RP2040.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -871,8 +871,18 @@ IODev_ops_t RP2040_USBSerial_ops = {
871871
};
872872

873873
const SoC_ops_t RP2040_ops = {
874+
#if defined(PICO_RP2350)
875+
#if defined(PICO_RISCV)
876+
SOC_RP2350_RISC,
877+
"RP2350-RISC",
878+
#else
879+
SOC_RP2350_ARM,
880+
"RP2350-ARM",
881+
#endif /* PICO_RISCV */
882+
#else
874883
SOC_RP2040,
875884
"RP2040",
885+
#endif /* PICO_RP2350 */
876886
RP2040_setup,
877887
RP2040_post_init,
878888
RP2040_loop,

software/firmware/source/SkyWatch/Platform_RP2040.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ enum RP2040_board_id {
5656
RP2040_RPIPICO,
5757
RP2040_RPIPICO_W,
5858
RP2040_WEACT,
59+
RP2350_RPIPICO_2,
60+
RP2350_RPIPICO_2W,
5961
};
6062

6163
/* Console I/O */

software/firmware/source/SkyWatch/SoCHelper.h

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,11 @@ enum
7171
SOC_ESP32,
7272
SOC_ESP32S2,
7373
SOC_ESP32S3,
74+
SOC_ESP32C2,
7475
SOC_ESP32C3,
7576
SOC_ESP32C6,
77+
SOC_ESP32H2,
78+
SOC_ESP32P4,
7679
SOC_RPi,
7780
SOC_CC13X0,
7881
SOC_CC13X2,
@@ -83,7 +86,12 @@ enum
8386
SOC_SAMD,
8487
SOC_AVR,
8588
SOC_ASR66,
86-
SOC_RP2040
89+
SOC_RP2040,
90+
SOC_RP2350_ARM,
91+
SOC_RP2350_RISC,
92+
SOC_RA4M1,
93+
SOC_EFR32,
94+
SOC_CH32
8795
};
8896

8997
extern const SoC_ops_t *SoC;

software/firmware/source/SoftRF/src/driver/WiFi.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,8 @@ void WiFi_setup()
223223
host_name += "-";
224224
host_name += String((SoC->getChipId() & 0xFFFFFF), HEX);
225225

226-
if (SoC->id == SOC_ESP8266 || SoC->id == SOC_RP2040) {
226+
if (SoC->id == SOC_ESP8266 || SoC->id == SOC_RP2040 ||
227+
SoC->id == SOC_RP2350_ARM || SoC->id == SOC_RP2350_RISC) {
227228
WiFi.mode(WIFI_STA);
228229
if (SoC->WiFi_hostname(host_name) == false) {
229230
return;

software/firmware/source/SoftRF/src/platform/RP2XXX.cpp

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ static void RP2xxx_setup()
311311
SPI1.setSCK(SOC_GPIO_PIN_SCK);
312312
#if !defined(ARDUINO_RASPBERRY_PI_PICO) && \
313313
!defined(ARDUINO_RASPBERRY_PI_PICO_W) && \
314+
!defined(ARDUINO_RASPBERRY_PI_PICO_2) && \
314315
!defined(ARDUINO_RASPBERRY_PI_PICO_2W)
315316
SPI1.setCS(SOC_GPIO_PIN_SS);
316317
#endif /* ARDUINO_RASPBERRY_PI_PICO or ARDUINO_RASPBERRY_PI_PICO_W */
@@ -340,7 +341,7 @@ static void RP2xxx_setup()
340341
#elif defined(ARDUINO_RASPBERRY_PI_PICO_W)
341342
RP2xxx_board = rp2040.isPicoW() ? RP2040_RPIPICO_W : RP2040_RPIPICO;
342343
#elif defined(ARDUINO_RASPBERRY_PI_PICO_2W)
343-
RP2xxx_board = rp2040.isPicoW() ? RP2040_RPIPICO_2W : RP2040_RPIPICO;
344+
RP2xxx_board = rp2040.isPicoW() ? RP2350_RPIPICO_2W : RP2350_RPIPICO_2;
344345
#endif /* ARDUINO_RASPBERRY_PI_PICO */
345346

346347
RP2xxx_board = (SoC->getChipId() == 0xcf516424) ?
@@ -517,7 +518,7 @@ static void RP2xxx_fini(int reason)
517518
Wire.end();
518519

519520
#if defined(ARDUINO_RASPBERRY_PI_PICO_W) || defined(ARDUINO_RASPBERRY_PI_PICO_2W)
520-
if (RP2xxx_board == RP2040_RPIPICO_W) {
521+
if (RP2xxx_board == RP2040_RPIPICO_W || RP2xxx_board == RP2350_RPIPICO_2W) {
521522
if (cyw43_is_initialized(&cyw43_state)) cyw43_arch_deinit();
522523
#if !(ARDUINO_PICO_MAJOR == 4 && ARDUINO_PICO_MINOR == 3 && ARDUINO_PICO_REVISION == 0)
523524
pinMode(CYW43_PIN_WL_REG_ON, INPUT_PULLDOWN);
@@ -761,7 +762,7 @@ static bool RP2xxx_WiFi_hostname(String aHostname)
761762
{
762763
bool rval = false;
763764
#if !defined(EXCLUDE_WIFI) && !defined(USE_ARDUINO_WIFI)
764-
if (RP2xxx_board == RP2040_RPIPICO_W) {
765+
if (RP2xxx_board == RP2040_RPIPICO_W || RP2xxx_board == RP2350_RPIPICO_2W) {
765766
WiFi.hostname(aHostname.c_str());
766767
rval = true;
767768
}
@@ -881,7 +882,8 @@ static void RP2xxx_EEPROM_extension(int cmd)
881882
#endif /* USE_USB_HOST */
882883
#endif /* EXCLUDE_WIFI and EXCLUDE_BLUETOOTH */
883884

884-
if (RP2xxx_board != RP2040_RPIPICO_W &&
885+
if (RP2xxx_board != RP2040_RPIPICO_W &&
886+
RP2xxx_board != RP2350_RPIPICO_2W &&
885887
settings->bluetooth != BLUETOOTH_NONE) {
886888
settings->bluetooth = BLUETOOTH_NONE;
887889
}
@@ -1520,13 +1522,18 @@ IODev_ops_t RP2xxx_USBSerial_ops = {
15201522
};
15211523

15221524
const SoC_ops_t RP2xxx_ops = {
1523-
#if defined(ARDUINO_ARCH_RP2040)
1525+
#if defined(PICO_RP2350)
1526+
#if defined(PICO_RISCV)
1527+
SOC_RP2350_RISC,
1528+
"RP2350-RISC",
1529+
#else
1530+
SOC_RP2350_ARM,
1531+
"RP2350-ARM",
1532+
#endif /* PICO_RISCV */
1533+
#else
15241534
SOC_RP2040,
15251535
"RP2040",
1526-
#elif defined(ARDUINO_ARCH_RP2350)
1527-
SOC_RP2350_ARM,
1528-
"RP2350",
1529-
#endif /* 2XXX */
1536+
#endif /* PICO_RP2350 */
15301537
RP2xxx_setup,
15311538
RP2xxx_post_init,
15321539
RP2xxx_loop,

software/firmware/source/SoftRF/src/platform/RP2XXX.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ enum RP2xxx_board_id {
6969
RP2040_RPIPICO_W,
7070
RP2040_WEACT,
7171
RP2350_RPIPICO_2,
72-
RP2040_RPIPICO_2W,
72+
RP2350_RPIPICO_2W,
7373
};
7474

7575
struct rst_info {

0 commit comments

Comments
 (0)