Edge2 No Longer Boots

I’ve had this Edge2 v12 board for about two months, and it has worked fine until now. Yesterday it was working as expected. The last time I used it I created a device tree overlay for a custom i2c peripheral device, but that shouldn’t have killed the SBC, and it worked fine on reboot after adding the DT overlay. Today it doesn’t seem to boot. If it is booting I’m not getting anything from the HDMI port. I’ve tried entering OOWOW by holding FUN and clicking RES, but still nothing from the HDMI port.

When power is connected to the Edge2 via one of the USB-C ports LED2 is solid red. When the device is powered on using the PWR button, or from the power connector being connected for the first time, LED1 is solid white and LED2 breathes white. When I try to go into OOWOW both LEDs will blink white as the buttons are being pressed, but immediately go back to LED1 being solid white and LED2 breathing white.

Any help is appreciated. Thank you.

That is the indicator that is has booted, is it only the HDMI that isn’t working ?

@Electr1

Thanks for the reply. I guess that is possible, but normally when it boots the fan runs for a couple seconds, and that’s not happening. I tried connecting the TS050 touchscreen, which also didn’t work, but to be honest I can’t remember if I have the mipi-panel overlay added to the overlay config file. I also went into my router to see if the Edge2 was connecting to Wifi (it should connect automatically), and that isn’t happening, so getting in through SSH is out. If it is the HDMI do you know of a way to troubleshoot/fix it? Otherwise, is there another way to get a display or at least console access?

@Chris_O the UART Console access is through the pads on the bottom of the device

@Electr1 I have the IO board from Khadas, and I tried to get a console through UART, but I can’t connect. Any other suggestions? Otherwise, is it possible to get this replaced under warranty, and what is the procedure and timeline for that?

This is the second Edge2 board that has failed on me… admittedly the first one that failed may have been my fault for hot swapping a mipi screen while the device was plugged into power (it wasn’t on though). I’ve been working on a prototype using the Edge2 for some time now, and these failures are concerning to me as I need a reliable sbc for my product. The interruption of my development process is also a bit annoying. Have these boards had a high failure rate?

@Chris_O

Please note, care must be taken when working with sensitive electronics, especially bare open PCBs. They will have the chance of failing when being exposed due to shorting of components etc.

It’s recommended to disconnect all power sources when connecting or disconnecting any peripherals or introducing a hardware change to the device, it will harm the functioning of both the peripherals and the board itself.

@Electr1

I understand what you are saying. I take several precautions to protect the equipment. I’ve been working with sensitive electronics for a long time. I also have an electronics workbench with ESD safeguards.

The first Edge2 I had burned up was possibly because of plugging into the mipi port with the power cable still plugged in. It was a mistake I made because I was having issues with the screen and I got a little impatient… **it happens. Therefore we bought the second Edge2 on our own dime.

This time is different. This is the 2nd Edge2 we’ve bought. I’ve been extra careful not to make any hardware changes while the power is connected, I’m always grounded when working with the PCB (i.e. ESD wristband), etc. It worked fine one day, and the next day it didn’t.

It’s not prudent for me to purchase the workstation because it seems to me I’m not going to be able to get the HDMI working anyway, and that is too much of a hassle to deal with. I also don’t think it’s a good idea to have some janky wiring going to the pogo pads in an attempt to connect through the pogo pads.

Can you tell me if Khadas will replace this under warranty? If so, what is the procedure and timeline for that?

Thank you.

P.S. I don’t think the board is actually booting anyway. When the Edge2 was working properly I seem to remember a sequence of LEDs as it was booting and the fan turning on for a couple seconds prior to the following:

Now it instantly goes to that when I turn the power on.

Hello @Chris_O

Could you follow the docs to setup the serial debug console and capture some booting logs?

https://docs.khadas.com/products/sbc/edge2/development/setup-serial-tool

@numbqq

Here is what I’m getting from the serial port when I power on the board.

DDR Version V1.07 20220412
LPDDR4X, 2112MHz
channel[0] BW=16 Col=10 Bk=8 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=2048MB
channel[1] BW=16 Col=10 Bk=8 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=2048MB
channel[2] BW=16 Col=10 Bk=8 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=2048MB
channel[3] BW=16 Col=10 Bk=8 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=2048MB
change to F1: 528MHz
change to F2: 1068MHz
change to F3: 1560MHz
change to F0: 2112MHz
out
U-Boot SPL board init
U-Boot SPL 2017.09 (May 12 2023 - 11:40:17)
Failed to set cpub01
Failed to set cpub23
I2c2 speed: 100000Hz
MCU: boot mode 0x20: 1, flag 0x92: 0
board_boot_order: /chosen found, using spl_boot_device()
!!! same-as-spl:
!!! /mmc@fe2c0000:
!!! /mmc@fe2e0000:
!!! /spi@fe2b0000/flash@1:
Trying to boot from MMC2 :: 0
Card did not respond to voltage select!
mmc_init: -95, time 12
spl: mmc init failed with error: -95
Trying to boot from MMC1 :: 1
Trying fit image at 0x4000 sector
## Verified-boot: 0
## Checking atf-1 0x00040000 ... sha256(045b2cef29...) + OK
## Checking uboot 0x00200000 ... sha256(e40c25e9bd...) + OK
## Checking fdt 0x0032e308 ... sha256(ffbcac624a...) + OK
## Checking atf-2 0x000f0000 ... sha256(30812190d0...) + OK
## Checking atf-3 0xff100000 ... sha256(cb7bdbec2b...) + OK
## Checking optee 0x08400000 ... sha256(fde0860845...) + OK
Jumping to U-Boot(0x00200000) via ARM Trusted Firmware(0x00040000)
Total: 166.256 ms

INFO:    Preloader serial: 2
NOTICE:  BL31: v2.3():v2.3-481-g17b41886e:derrick.huang
NOTICE:  BL31: Built : 16:20:07, Dec  7 2022
INFO:    spec: 0x13
INFO:    ext 32k is valid
INFO:    ddr: stride-en 4CH
INFO:    GICv3 without legacy support detected.
INFO:    ARM GICv3 driver initialized in EL3
INFO:    valid_cpu_msk=0xff bcore0_rst = 0x0, bcore1_rst = 0x0
INFO:    system boots from cpu-hwid-0
INFO:    idle_st=0x21fff, pd_st=0x11fff9, repair_st=0xfff70001
INFO:    dfs DDR fsp_params[0].freq_mhz= 2112MHz
INFO:    dfs DDR fsp_params[1].freq_mhz= 528MHz
INFO:    dfs DDR fsp_params[2].freq_mhz= 1068MHz
INFO:    dfs DDR fsp_params[3].freq_mhz= 1560MHz
INFO:    BL31: Initialising Exception Handling Framework
INFO:    BL31: Initializing runtime services
INFO:    BL31: Initializing BL32
INFO:    hdmirx_handler: dma not on, ret
I/TC:
I/TC: OP-TEE version: 3.13.0-652-g4542e1efd #derrick.huang (gcc version 10.2.1 20201103 (GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16))) #5 2022年 09月 20日 星期二 09:41:09 CST aarch64
I/TC: Primary CPU initializing
I/TC: Primary CPU switching to normal world boot
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x200000
INFO:    SPSR = 0x3c9


U-Boot 2017.09 (Apr 25 2023 - 13:57:04 +0000)

Model: Khadas Edge2
PreSerial: 2, raw, 0xfeb50000
DRAM:  7.7 GiB
Sysmem: init
Relocation Offset: edb49000
Relocation fdt: eb9f9fe8 - eb9fece0
CR: M/C/I
Using default environment

mmc@fe2c0000: 1, mmc@fe2e0000: 0
Bootdev(atags): mmc 0
MMC0: HS200, 200Mhz
PartType: EFI
DM: v2
No misc partition
boot mode: None
** File not found /dtb.img **
No resource partition
No resource partition
No resource partition
Failed to load DTB, ret=-19
No find valid DTB, ret=-22
Failed to get kernel dtb, ret=-22
gpio: pin 130 (gpio 130) value is 1
"Synchronous Abort" handler, esr 0x96000010

* Reason:        Exception from a Data abort, from current exception level
* PC         =   000000000023a580
* LR         =   0000000000271c48
* SP         =   00000000eb9f9d00
* ESR_EL2    =   0000000096000010
* Reloc Off  =   00000000edb49000

x0 : 0000000000000000 x1 : 00000000eb9f9f20
x2 : 0000000000000001 x3 : 00000000eb9f9f88
x4 : 00000000ebd49150 x5 : 00000000ebd491b0
x6 : 000000000000000c x7 : 00000000ede51180
x8 : 0000000000000020 x9 : 0000000000000008
x10: 00000000ffffffd0 x11: 0000000000000006
x12: 000000000001869f x13: 0000000000003cb8
x14: 0000000000000000 x15: 00000000ffffffff
x16: 0000000000000084 x17: 0000000000000032
x18: 00000000eb9ffcf0 x19: 0000000000000000
x20: 00000000ede50e48 x21: 0000000000000038
x22: 00000000eb9f9f88 x23: 0000000000000001
x24: 0000000000000000 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000000000000
x28: 0000000000000000 x29: 00000000eb9f9ee0


Call trace:
  PC:   [< 0023a580 >]
  LR:   [< 00271c48 >]

Stack:
        [< 0023a580 >]
        [< 00207e9c >]
        [< 0029fbe0 >]
        [< 0021b844 >]
        [< 00201e40 >]

Copy info from "Call trace..." to a file(eg. dump.txt), and run
command in your U-Boot project: ./scripts/stacktrace.sh dump.txt

Resetting CPU ...

### ERROR ### Please RESET the board ###

Resetting the board by pressing the RES button, or trying to get into the OOWOW by pressing FUN + RES gives me the exact same message.

Hello @Chris_O

Can you try to upgrade the OOWOW ? You can follow the steps below:

OOWOW image: https://dl.khadas.com/products/edge2/firmware/oowow/versions/edge2/edge2-oowow-230828.000-spi-upgrade-sd.img.gz

  • Write the OOWOW image above to a SD card - Edge2 Install OS into External Storage [Khadas Docs]
  • Insert the SD card to Edge2-IO SD card slot
  • Power on the board
  • It will reinstall OOWOW automicaly
  • When it is done just remove the SD card and reboot
  • Reinstall system with OOWOW online

@numbqq

I burned the image you gave me to an sd card on my Desktop Ubuntu machine using the following command:

 sudo dd if=/home/myPc/edge2-oowow-230828.000-spi-upgrade-sd.img.gz 1 of=/dev/sdb bs=1M && sync

I didn’t get any errors flashing the sd card.

I put the sd card in the Edge2 (i.e. the IO board) and powered it on. I got the same message I did before on the serial console.

Is there a button combination I’m supposed to press on startup? Does the sd card need to be formatted a certain way before running the dd command, or does the dd command format the disk as well?

Thank you.

Hi @numbqq and @Electr1,

Is there anything else I should try? If not, are you guys going to cover this under warranty?

Thanks,

Chris

Hello @Chris_O

@hyphop will help you to upgrade the OOWOW on the SPI Flash.

HOW-TO restore OOWOW on SPI flash

GOOD LUCK

Hi @hyphop,

Okay, that worked. Thank you.

I will mark this as solved, but before I do hopefully you will be kind enough to look at the questions below. This episode has made me realize that it might be beneficial for me to have a little understanding of how the OOWOW works.

  1. Since burning the OOWOW fixed the problem, does that mean that the SPI flash was corrupted?

  2. Is u-boot on the SPI flash as well?

  3. Is there anything you know of that would be likely to cause a failure like this, or is it just a random failure more or less?

  4. Without thinking about it too much I cleared the emmc and reinstalled the OS. I wasn’t really losing much in this case. However, if a similar issue appended in the future would it be possible to reburn or restore the OOWOW and retain the state of the OS?

Thank you,

Chris

1 Like

maybe yes maybe not :wink:
if you start OOWOW by pressing FUNCTION + RESET doesn’t work - in this case, it looks like spi-flash content was corrupted

Is u-boot on the SPI flash as well?

yes sure
SPI flash has uboot and oowow content

Is there anything you know of that would be likely to cause a failure like this, or is it just a random failure more or less?

maybe OOWOW update or upgrade - but in this case you will be noticed and must press agree

or some other manipulation with SPI flash content

Usually, users didn’t have access to spi flash

Without thinking about it too much I cleared the emmc and reinstalled the OS. I wasn’t really losing much in this case. However, if a similar issue appended in the future would it be possible to reburn or restore the OOWOW and retain the state of the OS?

SPI content and eMMC always separated
u can update or delete of them without losing other one