I’ve tried to understand where the problem could be but I did not get a consistent result so far. I believe that the problem of the board not erased is due to an incorrect flash base address somewhere. The Nano Matter board is correctly flashed (erase and loaded) using Arduino IDE on Mac Intel while does not get flashed with Mac arm64 (apple M4).
Hereunder the two logs from Arduino IDE
APPLE INTEL:
Open On-Chip Debugger 0.12.0+dev-01514-g21fa2de70 (2024-02-07-19:03)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
debug_level: 2
Info : auto-selecting first available session transport "swd". To override use 'transport select <transport>'.
FlashBase =
0x08000000
efm32s2_dci_read_se_status
Info : Using CMSIS-DAPv2 interface with VID:PID=0x2341:0x0072, serial=2313FCEF
Info : CMSIS-DAP: SWD supported
Info : CMSIS-DAP: FW Version = 2.0.0
Info : CMSIS-DAP: Serial# = 2313FCEF
Info : CMSIS-DAP: Interface Initialised (SWD)
Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1
Info : CMSIS-DAP: Interface ready
Info : clock speed 1000 kHz
Info : SWD DPIDR 0x6ba02477
Info : [efm32s2.cpu] Cortex-M33 r0p4 processor detected
Info : [efm32s2.cpu] target has 8 breakpoints, 4 watchpoints
Info : [efm32s2.cpu] Examination succeed
Info : starting gdb server for efm32s2.cpu on 3333
Info : Listening on port 3333 for gdb connections
[efm32s2.cpu] halted due to debug-request, current mode: Thread
xPSR: 0xf9000000 pc: 0x08000170 msp: 0x20001008
[efm32s2.cpu] halted due to debug-request, current mode: Thread
xPSR: 0xf9000000 pc: 0x08000170 msp: 0x20001008
** Programming Started **
Info : detected part: MG24B210, rev 18
Info : flash size = 1536 KiB
Info : flash page size = 8192 B
** Programming Finished **
APPLE Silicon M4:
Open On-Chip Debugger 0.12.0+dev-01294-g2e60e2eca-dirty (2025-08-21-13:13)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
debug_level: 2
Info : auto-selecting first available session transport "swd". To override use 'transport select <transport>'.
efm32s2_dci_read_se_status
Info : Using CMSIS-DAPv2 interface with VID:PID=0x2341:0x0072, serial=2313FCEF
Info : CMSIS-DAP: SWD supported
Info : CMSIS-DAP: FW Version = 2.0.0
Info : CMSIS-DAP: Serial# = 2313FCEF
Info : CMSIS-DAP: Interface Initialised (SWD)
Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1
Info : CMSIS-DAP: Interface ready
Info : clock speed 1000 kHz
Info : SWD DPIDR 0x6ba02477
Info : [efm32s2.cpu] Cortex-M33 r0p4 processor detected
Info : [efm32s2.cpu] target has 8 breakpoints, 4 watchpoints
Info : starting gdb server for efm32s2.cpu on 3333
Info : Listening on port 3333 for gdb connections
[efm32s2.cpu] halted due to debug-request, current mode: Thread
xPSR: 0xf9000000 pc: 0x08000170 msp: 0x20001008
[efm32s2.cpu] halted due to debug-request, current mode: Thread
xPSR: 0xf9000000 pc: 0x08000170 msp: 0x20001008
** Programming Started **
Info : detected part: MG24B210, rev 18
Info : flash size = 1536 KiB
Info : flash page size = 8192 B
Warn : Don't know EFR/EFM Gx family number, can't set MSC register. Defaulting to EF{M,R}xG22 values..
Info : GG START --> 24
Info : detected part: MG24B210, rev 18
Info : flash size = 1536 KiB
Info : flash page size = 8192 B
Warn : Don't know EFR/EFM Gx family number, can't set MSC register. Defaulting to EF{M,R}xG22 values..
Info : GG START --> 24
Warn : no flash bank found for address 0x08006000
** Programming Finished **
As you can see there is no error but only a warn . I have searched for this message and found it in efm32s2.c where there is a long list of CPU Family data. Here to follow the first lines:
static const struct efm32_family_data efm32_families[] = {
{ 16, "EFR32MG1P Mighty", .series = 1 },
{ 17, "EFR32MG1B Mighty", .series = 1 },
{ 18, "EFR32MG1V Mighty", .series = 1 },
{ 19, "EFR32BG1P Blue", .series = 1 },
{ 20, "EFR32BG1B Blue", .series = 1 },
{ 21, "EFR32BG1V Blue", .series = 1 },
{ 25, "EFR32FG1P Flex", .series = 1 },
{ 26, "EFR32FG1B Flex", .series = 1 },
{ 27, "EFR32FG1V Flex", .series = 1 },
{ 28, "EFR32MG2P Mighty", .series = 1 },
{ 29, "EFR32MG2B Mighty", .series = 1 },
{ 30, "EFR32MG2V Mighty", .series = 1 },
{ 31, "EFR32BG12P Blue", .series = 1 },
{ 32, "EFR32BG12B Blue", .series = 1 },
{ 33, "EFR32BG12V Blue", .series = 1 },
You can see from the flash output (both platforms) that the family number is 24 but for some reason it is resolved on Mac INTEL and not on Mac M4. On this last platform the warning suggests that it is defaulting to G22 values.
Any suggestion is appreciated