H96 Pro+ S912 Standby mode

Try fdtget if wol = 0 or 1: fdtget /flash/dtb.img /ethernet@0xc9410000 wol
Does fw_printenv mac show your mac address?
What does dmesg | grep wol show?
Every command is working only for CoreELEC on SD card!

Thanks a lot for your support, now it is working.

I am not sure what was the problem, but if I created a completely new SD card with release version, update to your image and u-boot and follow your WOL guide. I got this message at suspend:
set mac for wol = 78:c2:c0:...
The ETH link keeps active in “standby” and “power down” mode and
sudo wakeonlan 78:C2:C0:....
starts the device.

I will now update step by step my eMMC installation.

Very good work, thanks again.

P.S.: How I can create just a kernel with my changes, e.g. add printk for debugging? I tried
PROJECT=Amlogic DEVICE=S912 ARCH=arm ./scripts/build linux
but the changed kernel is not recompiled. The “clean” script deletes the complete kernel source including my changes. I am also confused about “ARCH=arm” for a “aarch64” target.

Drop a xxx.patch file in /CoreELEC/packages/linux/patchs and recompile as normal. Then the linux-amlogic is getting purged and recompiled.

Sorry for bother you again, but I have still difficulties to bring up WOL with eMMC boot. Using the same Kernel/U-Boot and DTB I cannot see “set wol” at dmesg. Is eMMC boot using a different DTB?
Thanks a lot for any hint

@Portisch I just installed the working SD card to eMMC and WOL is working. Thanks a lot for your support

I’ve been using the new uboot for a while now. Sometimes while playing videos the box crashed. The screen just gets completely one random color. I thought that it might be due to the power supply again (because I use an external 2.5" HDD with USB on the box). It couldn’t play 4k content anymore because the box crashed after a few seconds.
Now I have flashed the original uboot and have to realize that there are no crash problems anymore.
That’s why I created a log via UART:


TE: 110268

BL2 Built : 13:38:48, Mar 8 2017.
gxl g8e12692 - xiaobo.gu@droid05

set vdd cpu_a to 1120 mv
set vdd cpu_b to 1050 mv
set vddee to 1000 mv
Board ID = 3
CPU clk: 1200MHz
DQS-corr enabled
DDR scramble enabled
DDR3 chl: Rank0+1 @ 816MHz - PASS
Rank0: 2048MB(auto)-2T-13
Rank1: 1024MB(auto)-2T-13
DataBus test pass!
AddrBus test pass!
Load fip header from eMMC, src: 0x0000c200, des: 0x01400000, size: 0x00004000
New fip structure!
Load bl30 from eMMC, src: 0x00010200, des: 0x01100000, size: 0x0000d600
Load bl31 from eMMC, src: 0x00020200, des: 0x10100000, size: 0x0001b400
Load bl33 from eMMC, src: 0x0003c200, des: 0x01000000, size: 0x000b5e00
NOTICE: BL3-1: v1.0(debug):866a5ea
NOTICE: BL3-1: Built : 15:50:05, Feb 28 2017
aml log : bl31 normal boot !

[Image: gxl_v1.1.3194-db501b7 2017-03-28 15:06:09 yun.cai@droid06]


wdt: reset registers!

8d a f2 47 2b 70 cf ee 81 56 16 5b [0.380194 Inits done]

secure task start!
high task start!
low task start!
INFO: BL3-1: Initializing runtime services
WARNING: No OPTEE provided by BL2 boot loader
ERROR: Error initializing runtime service opteed_fast
INFO: BL3-1: Preparing for EL3 exit to normal world
INFO: BL3-1: Next image address = 0x1000000
INFO: BL3-1: Next image spsr = 0x3c9

U-Boot 2015.01-gf55a714-dirty (Apr 13 2017 - 11:52:00)

Relocation Offset is: b6ebb000
register usb cfg[0][1] = 00000000b7f5c6e8
[CANVAS]canvas init
vpu: error: vpu: check dts: FDT_ERR_BADMAGIC, load default parameters
vpu: clk_level = 7
vpu: set clk: 666667000Hz, readback: 666660000Hz(0x300)
vpp: vpp_init
boot_device_flag : 1
Nand PHY Ver: © 2013 Amlogic Inc.
init bus_cycle=6, bus_timing=7, system=5.0ns
reset failed
get_chip_type and ret:fffffffe
get_chip_type and ret:fffffffe
chip detect failed and ret:fffffffe
nandphy_init failed and ret=0xfffffff1
MMC: aml_priv->desc_buf = 0x00000000b3ebb6b0
aml_priv->desc_buf = 0x00000000b3ebd9d0
SDIO Port B: 0, SDIO Port C: 1
emmc/sd response timeout, cmd8, status=0x1ff2800
emmc/sd response timeout, cmd55, status=0x1ff2800
init_part() 278: PART_TYPE_DOS
[mmc_init] mmc init success
dtb magic 5f4c4d41
Amlogic multi-dtb tool
Multi dtb detected
edwin—>DDR size: 0xb8000000
Multi dtb tool version: v2 .
Support 3 dtbs.
aml_dt soc: gxm platform: q201 variant: 3g
dtb 0 soc: gxm plat: q201 vari: 1g
dtb 1 soc: gxm plat: q201 vari: 2g
dtb 2 soc: gxm plat: q201 vari: 3g
Find match dtb: 2
start dts,buffer=00000000b3ec0200,dt_addr=00000000b3ed7a00
Amlogic multi-dtb tool
Multi dtb detected
edwin—>DDR size: 0xb8000000
Multi dtb tool version: v2 .
Support 3 dtbs.
aml_dt soc: gxm platform: q201 variant: 3g
dtb 0 soc: gxm plat: q201 vari: 1g
dtb 1 soc: gxm plat: q201 vari: 2g
dtb 2 soc: gxm plat: q201 vari: 3g
Find match dtb: 2
parts: 10
00: logo 0000000002000000 1
01: recovery 0000000002000000 1
02: rsv 0000000000800000 1
03: tee 0000000000800000 1
04: crypt 0000000002000000 1
05: misc 0000000002000000 1
06: boot 0000000002000000 1
07: system 0000000080000000 1
08: cache 0000000020000000 2
09: data ffffffffffffffff 4
_check_ptbl_mbr()-815: MBR is OK!
init_part() 278: PART_TYPE_DOS
eMMC/TSD partition table have been checked OK!
check pattern success
mmc env offset: 0x27400000
In: serial
Out: serial
Err: serial
cvbs performance type = 6, table = 0
[store]To run cmd[emmc dtb_read 0x1000000 0x40000]
_verify_dtb_checksum()-918: calc dde2bfb2, store dde2bfb2
_verify_dtb_checksum()-918: calc dde2bfb2, store dde2bfb2
dtb_read()-1040: total valid 2
dtb_read()-1107: do nothing
Amlogic multi-dtb tool
Multi dtb detected
edwin—>DDR size: 0xb8000000
Multi dtb tool version: v2 .
Support 3 dtbs.
aml_dt soc: gxm platform: q201 variant: 3g
dtb 0 soc: gxm plat: q201 vari: 1g
dtb 1 soc: gxm plat: q201 vari: 2g
dtb 2 soc: gxm plat: q201 vari: 3g
Find match dtb: 2
vpp: vpp_pq_load pq val error !!!
Net: dwmac.c9410000amlkey_init() enter!
[EFUSE_MSG]keynum is 4
[BL31]: tee size: 0

[OSD]load fb addr from dts
[OSD]fb_addr for logo: 0x7f851000
[OSD]load fb addr from dts
[OSD]fb_addr for logo: 0x7f851000
[CANVAS]addr=0x7f851000 width=3840, height=2160
amlkey_init() enter!
amlkey_init() 71: already init!
[EFUSE_MSG]keynum is 4
[BL31]: tee size: 0
[KM]Error:f[key_manage_query_size]L507:key[usid] not programed yet
[KM]Error:f[key_manage_query_size]L507:key[deviceid] not programed yet
gpio: pin GPIOAO_2 (gpio 102) value is 1
Hit Enter or space or Ctrl+C key to stop autoboot – : 1 0
card in
init_part() 278: PART_TYPE_DOS
[mmc_init] mmc init success
Device: SDIO Port B
Manufacturer ID: 2
OEM: 544d
Name: SD04G
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 3.7 GiB
mmc clock: 40000000
Bus Width: 4-bit
reading kernel.img
10045440 bytes read in 577 ms (16.6 MiB/s)
reading dtb.img
44306 bytes read in 7 ms (6 MiB/s)
ee_gate_off …
Booting Android Image at 0x01080000 …
reloc_addr =b3f40450
copy done
load dtb from 0x1000000 …
Amlogic multi-dtb tool
Single dtb detected
Uncompressing Kernel Image … OK
kernel loaded at 0x01080000, end = 0x01bb2218
Loading Ramdisk to b3a88000, end b3ea9400 … OK
Loading Device Tree to 000000001fff2000, end 000000001ffffd11 … OK
fdt_instaboot: no instaboot image

Starting kernel …

The Ram runs here with 816MHz (not 792MHz) and CL13 (not CL11). Does anyone have an idea what causes the crashes? If certain logs are needed, I can add them.

Do you have a “noname” H96Pro+? If yes I am thinking even 792MHz is too high. I am still getting problems while watching 1080i live TV.
So maybe try to reduce the RAM speed.


My system also freezes with that alternative u-boots. Tried them over months, but no success. Have an Alfawise H96 Pro+ 3G/32G.

At the moment i directly connected the box to my TVs USB port to power on, when TV is switched on

That might be your issue. The current provided by most TVs USB ports can be well below the stable 1A (or even 2A) that a lot of these boxes require to avoid issues, like you describe :thinking:

No, because with the original power supply it also freezes. I just use the TV USB now, to power on my device when TV is switched on. I also tried different power sources.
And with original u-boot no freezes with TV USB.

@TheChief79 My box never crashes. So maybe you want bring some log from the crash? But this will be a Kernel crash log and not a u-boot. So we can only searching by testing to find the reason. I guess you just should try the u-boot with a lower RAM speed.


I know, maybe there is something special with my box. I tried many versions with different speeds, no success. The normal uboot runs with 792Mhz and it also never crashes.

When S912 support will be dropped in the future, i will get another device with S905 chipset.

I compiled a new uboot yesterday. I tried 600Mhz to test it. And as it looks, everything seems to work without any problems! I will try higher speeds soon.
Now that Coreelec has fixed WOL, I’ve also tried this and it works!
However, I have the problem that I have a long time ago (H96 Pro+ S912 Standby mode):

  1. shut down the box via Coreelec
  2. press power button (or use WOL!)
  3. lights blue for a short time and then nothing happens
  4. only after pressing the power button again it starts (now WOL no longer works)

It stops exactly when it wants to register usb cfg. I do use a hdd from time to time (without additional power) and when I connect the hard disk, the power supply (2A) does not turn on the hdd(Box goes off when on). When the hard disk is running, everything works normally. But no matter if the hard disk is connected or not, the problem occurs.

I had the problem with the first functioning uboot. Then it disappeared after another flash from uboot. Now the problem exists again.

I also found out that starting with the remote control works with the original uboot! In the beginning I had a custom rom on it, but it didn’t work. (Now stock rom)

chips used for model ZH01-S912-TVBOX-V3.0:
On one side: 4x PE037-125 DG (Samtec or Spektec?)
other side: 4x Hynix H5TQ2G83CFR

I also just compiled for me test versions with 432, 504, 576, 648 and 720MHz :wink:
I get still “stucking” picture “sometimes” with 792MHz. I will report which one will work without any picture problems.

@worldtest for your hdd/blue led problem: you have to make a uart uboot log. Only this will show the first steps of the resume. It should not matter if wakeup by IR remote, button, CEC or WOL.
It should show something like this on resume:

set vddee to 0x03e8mv
set vdd_cpu a to 0x0460mv
set vdd_cpu a to 0x041amv
store restore gp0 pll
gp0 pll can’t lock
read gp0_ctrl 40000000
read gp0_ctrl2 0
read gp0_ctrl3 0
read gp0_ctrl4 0
Enter ddr resume
ddr resume time: 363us
cfg15 3b00000
cfg15 b3b00000
cpu clk resume rate 1000000000

I fear this is one issue you won’t be able to solve as we have seen with other devices any memory labelled with S is generally Spectek which is a subsidiary of Micron and is everything they don’t want their name associated with. This memory is for price sensitive markets and generally has a 30% failure rate.

Dropping the DDR3 speeds provide a 10-15% downtick in performance. 32-bit wide memory channel is already starved for things like 4K and the reduction of memory bandwidth makes everything slower.

I reduced already the speed from 912 to 792MHz and it go much more stable. I did’t see any performance issue yet. I didn’t checked 4k media only 1080p/i and lower resolutions. So I will reduce the speed again by small steps to find a speed for the “noname” H96Pro+. As I heard the Alfawise H96Pro+ runs fine with 912MHz.

For sure - a price difference of ~€40 between “brand” and “noname” is showing some different parameters… :wink:

Here is the log: screenlog.0 (134.7 KB)

  1. Starts Coreelec with freshly plugged in power supply. (Blue light turns on)
  2. Coreelec shuts down
  3. Press the power button once: short blue light
  4. Press the power button a second time (Blue light turns on): Android starts (Log ends at half of the boot process)

Nothing is connected via USB.
Strangely the box starts when UART adapter is reading, Android and not Coreelec?! I mean, I hadn’t had that before.

** Bad device mmc 0 **
(Re)start USB…
USB0: USB3.0 XHCI init start
Register 3000140 NbrPorts 3
Starting the controller
scanning bus 0 for devices… 1 USB Device(s) found
scanning usb for storage devices… 0 Storage Device(s) found
** Bad device usb 0 **

Does that mean something?

With 600Mhz it takes quite a long time to change paths (external hard disk) in the file manager. In other words it always hangs up for a few seconds (annoys quite a bit). I can’t say to 100% whether it’s because of it. I haven’t noticed any other artefacts yet.
I have completely rebuilt Coreelec to avoid any related problems.

Edit: Strangely enough, the problem just disappeared?!


I have seen this stucking of the system also with a class 4 SD card. With a class 10 SD card the problem was gone.

I didn’t notice it was a slow class 4. I have now replaced it with a class 10 and everything runs smoothly, thanks!