m5stack / M5Core2

M5Core2 Arduino Library
MIT License
267 stars 117 forks source link

Boot loop on M5Core2 after burning Core2factoryTest #127

Closed sixhills closed 1 year ago

sixhills commented 1 year ago

Describe the bug

Using M5Burner to re-install Core2FactoryTest on a new Core2 device results in the device entering an infinite boot loop.

To reproduce

  1. In M5Burner, slect "Core2 & Tough" from the left-hand pane.
  2. in the right-hand pane, scroll down to find Core2FactoryTest and click "Download" then "Burn".
  3. The burn appears to work and the device resets.
  4. The screen on the Core2 remains blank.
  5. Selecting "Serial Monitor" from the top menu shows the device in an infinite boot loop with an illegal instruction panic.

Expected behavior

Expected behaviour after a successful burn is for the Core2Factorytest program to start.

Screenshots

Serial monitor output:

ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:1 load:0x3fff0030,len:1100 ho 0 tail 12 room 4 load:0x40078000,len:12308 load:0x40080400,len:3076 entry 0x400805ec Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. Memory dump at 0x400f2f20: 443a20c2 0d0e272a 02a8130c ....

Environment

Additional context

Burning UIFlow to the Core2 works, as do some of the other firmware programs listed in M5Burner. But other firmware programs listed in M5Burner (for example, M5HamRadioCore2) also fail, entering an infinite boot loop after the device resets. This is repeatable: programs that work always work; programs that fail always fail.

There have now been three reports of this problem with new Core2 devices in the community forum. Perhaps a recent hardware change has caused the burn process to fail?

Issue checklist

armel commented 1 year ago

Hello M5Stack dream team 🤗

Indeed, I do suspect a problem with recent M5Core2 production batch, too. Many new M5Core2 owners, after flashing my M5HamRadioCore2 firmware via M5Burner, get an infinite boot loop. Here is how a console trace looks like :

[FROM M5Burner] COM5 opened.
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x4010f730: 16ee8366 9e810054 0008e00d
Core 1 register dump:
PC : 0x4010f734 PS : 0x00060130 A0 : 0x80098eaf A1 : 0x3ffbd920
A2 : 0x3ffc6650 A3 : 0x00000000 A4 : 0x00000001 A5 : 0x00000000
A6 : 0x3ffbcee4 A7 : 0x80000001 A8 : 0x8010f73c A9 : 0x3ffbd900
A10 : 0x00000000 A11 : 0x00060023 A12 : 0x00060023 A13 : 0x00000000
A14 : 0x007bf4d8 A15 : 0x003fffff SAR : 0x00000000 EXCCAUSE: 0x00000000
EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000

Backtrace:0x4010f731:0x3ffbd9200x40098eac:0x3ffbd940

ELF file SHA256: 0000000000000000

Rebooting...
ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1184
load:0x40078000,len:12812
load:0x40080400,len:3032
entry 0x400805e4
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x4010f730: 16ee8366 9e810054 0008e00d
Core 1 register dump:
PC : 0x4010f734 PS : 0x00060130 A0 : 0x80098eaf A1 : 0x3ffbd920
A2 : 0x3ffc6650 A3 : 0x00000000 A4 : 0x00000001 A5 : 0x00000000
A6 : 0x3ffbcee4 A7 : 0x80000001 A8 : 0x8010f73c A9 : 0x3ffbd900
A10 : 0x00000000 A11 : 0x00060023 A12 : 0x00060023 A13 : 0x00000000
A14 : 0x007bf4d8 A15 : 0x003fffff SAR : 0x00000000 EXCCAUSE: 0x00000000
EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000

Backtrace:0x4010f731:0x3ffbd9200x40098eac:0x3ffbd940

ELF file SHA256: 0000000000000000

I'm not able to reproduce it, because my M5Core2 or my M5Core2 AWS date from 2021 or 2022. But it's really strange. I don't know if it is an hardware or a software issue or if I need to adapt my code.

Please, could you explore this issue ?

Armel.

sixhills commented 1 year ago

Armel has correctly deduced the cause of this issue, which is that only the latest version of the ESP-IDF SDK developed by Espressif is compatible with new Core2 devices. Firmware built using the earlier version of the ESP-IDK SDK doesn't work on new Core2 devices and enters an infinite loop on booting, reporting either IllegalInstruction or InstrFetchProhibited.

This means that about half of the firmware listed in M5Burner will need to be rebuilt by their authors using the latest SDK to make them work with new Core2s.

ortlof commented 1 year ago

On wich update will the Arudio Library Support the new ESP-IDK SDK i have a batch of new Core2s wich have the same bootloop on 1.0.5 when an old one works fine.