[SOLVED]: Edge-V: Domain u-boot - WOL is not working

Describe the bug
A clear and concise description of what the bug is.

WakeOnLan is not working after powering off the system.

To Reproduce
Steps to reproduce the behavior:

  • Built own u-boot-spi.bin image (U-boot 2017.09)
  • Connected a FTDI-serial console to Edge-V
  • Copied the u-boot image into an USB pendrive
  • Installed into the Edge-V using your advice
  • Executed kbi trigger wol w 1
  • Checked flag with kbi trigger wol r
  • Inserted in netplan yaml file wakeonlan: true on eth0 I/F
  • Used wakeonlan and etherwake <mac-addr>

Expected behavior
A clear and concise description of what you expected to happen.

After sending on the same network a magic packet to 255.255.255.255:9 using

  • sudo etherwake <mac-addr> OR
  • sudo wakeonlan <mac-addr>

nothing happens

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.

I don’t know why flashing my u-boot-spi.bin image does not report a recent build date. Mine is

U-Boot 2017.09 (Nov 15 2018 - 09:52:31 +0800)

aarch64-linux-gnu-gcc (Linaro GCC 6.3-2017.02) 6.3.1 20170109
GNU ld (Linaro_Binutils-2017.02) 2.27.0.20161019

@giminni Hi ,
We test it just now, It’s work fine.This is my step ,can you check it .THX
In Edge(in uboot)

kedge# kbi trigger wol w 1
Setting bus to 8
set_wol: 1
kedge# kbi trigger wol r  
boot wol: enable
kedge# kbi ethmac
mac address: de:e7:c6:35:6a:e5
kedge# kbi poweroff
System poweroff
Setting bus to 8
set_wol: 1
kedge#

In PC

$ wakeonlan de:e7:c6:35:6a:e5       
Sending magic packet to 255.255.255.255:9 with de:e7:c6:35:6a:e5

Edge wake success.

@Frank,

I read somewhere that the data is stored inside the eMMC card. I cleared all the data on eMMC because I am using it as a local storage cache. Could it be I erased the data that is needed for WoL?

I suspect this because executing kbi ethmac I always get 00:00:00:00:00:00 and kbi poweroffis not powering off the system it is rebooting the system.

kedge# kbi trigger wol w 1
Setting bus to 8
kedge# kbi trigger wol r
boot wol: enable
kedge# kbi ethmac
mac address: 00:00:00:00:00:00
kedge# kbi poweroff 
resets the system

How can I restore the data into I guess mmcblk1rpmb?

@numbqq is there a way to reflash the mmcblk1rpmb?

I wiped out the first 16MiB on the eMMC storage.
I guess this is my problem because I cannot get anything out of kbi ethmac all values are always zero.

If I look above in Frank’s output kbi ethmac returns the current mac address of the board, and
if I use kbi poweroff the board reboots instead of poweroff

Hello @goenjoy , please help to resolve this issue.

At the beginning:

kedge# kbi ethmac
mac address: 00:00:00:00:00:00:

Then download and install WNpctool
The board needs to be LOADER mode






Finally restart into KBI mode

kedge# kbi ethmac
read mac from vendor successfully!
mac address: de:e7:c6:35:6a:e9
2 Likes

@goenjoy I installed a Windows10 VM image connected the serial debugger to the USB port COM3 and started PuTTY with 1500000.

Is there an equivalent linux tool?

After entering the u-boot shell with CTRL-C at boot time. I tried run update to reach the upgrade mode and nothing happens.

I got only a rotating dash character.

gpio: pin 6 (gpio 6) value is 1
RKUSB: LUN 0, dev 0, hwpart 0, sector 0x0, count 0x3a3e000
\

Then I started WNpctool and got not found rockusb

I tried also the function button three times in two seconds and the system reboots.
Again I see in the serial console the following lines…

...
Can't get mcu-pix-total
Warn: can't find phy driver
...

… and where I can get the file rk3399_loader_v1.19.119.bin ?

Do I oversee something?

Picocom, Cutecom, Minicom, etc

  1. Power on Edge.
  2. Long press the Function key without releasing it.
  3. Short press the ‘Reset’ key and release it.
  4. Count for 2 to 3 seconds, then release the ‘Function’ key to enter into Upgrade Mode. You will see the sys-led turn ON when you’ve entered Upgrade Mode (Loader Mode).

u-boot/rk3399_loader_*.bin

DriverAssitant_v4.8.zip Maybe you need to install a driver.

@goenjoy

I have no rk3399* file

Here mine from the fenix directory

./u-boot/examples/standalone/hello_world.bin
./u-boot/MiniLoaderAll.bin
./u-boot/MiniLoaderAll_spinor.bin
./u-boot/spl/u-boot-spl-nodtb.bin
./u-boot/spl/u-boot-spl-dtb.bin
./u-boot/spl/u-boot-spl.bin
./u-boot/tools/binman/test/descriptor.bin
./u-boot/tpl/u-boot-tpl-nodtb.bin
./u-boot/tpl/u-boot-tpl-dtb.bin
./u-boot/tpl/u-boot-tpl.bin
./u-boot/u-boot.bin
./u-boot/u-boot-dtb.bin
./u-boot/u-boot-nodtb.bin
./u-boot/u-boot-spi.bin

@goenjoy

I could enter the upgrade mode now, following your advice above I do not understand the tool, the doc is in chinese.

Hello, Which tool do you refer to?

One of the two

image

Thanks @goenjoy for your outstanding support!

Just to wrap things up:

  • The right tool to use is RkDevInfoWriteTool V1.0.3 NOT WNpctool V1.2.2
  • The right loader to use is MiniLoaderAll.bin NOT rk3399_loader_v1.19.118.bin
  • Take a note of your eth0 mac address inside u-boot with print ethaddr
  • Read LAN MAC key BEFORE WRITE
  • Select ONLY LAN MAC AND Input/scan

Problem solved, WoL is working!

Lesson learned:

  • Use your router like AVM Fritz!Box there is a WoL feature for testing
  • Use wakeonlan under MacOS by installing it with brew install wakeonlan
  • Use wakeonlan under Ubuntu Bionic by installing it with sudo apt install wakeonlan
  • To use WoL from the Internet or another network, configure your router to map an external port (e.g. 9999) to the internal magic packet WoL address: 255.255.255.255 and port: 9. This allows the magic paket to be broadcasted into the designated network.
4 Likes