CEC Wakeup Problem

Ok, guess I will have to try it out and take it from there. Bit of a wait for the adapter from AliExpress though (2-3 weeks).

Did a quick google - Putty has a log to file option etc. I get it now - Putty will display the incoming serial data etc which is what i need to capture.

https://www.eye4software.com/hydromagic/documentation/articles-and-howtos/serial-port-logging/

i also just ordered the usb uart kit. i can pick it up in 10 days. i will try to provide those logs too.

1 Like

got my uart controller, laptop is just updating to fedora 30. will provide the first logs tomorrow. time depends how long the party goes tonight :slight_smile:

i connected now with the UART cable/adapter on /dev/ttyUSB0 to the odroid n2, but i just get a regular shell. Can you tell me how i can now get those logs which are required?

You connect the USB side to your computer, and the “pins” side to the UART pins on the N2.

thats already done. i connected with the screen command on /dev/ttyUSB0 (that has been created by the kernel after connecting the usb cable/adapter from the laptop to the odroid uart port/pins).

i need the command now which i have to enter on the laptop to get those logs

Reboot the Odroid, and you’ll see the logs.
Then you can right click in PuTTy on the title and copy history to export it all.

thanks, i thought i have to enter some special command.
i tried now some time to get a good output, but seems like thats an impossible task.
with putty, i can not copy/paste. also, putty pretty hard destroys the output, parts are missing, stops somewhere in the middle of the output, etc.
with the screen command, i get the output but i dont know how to increase the buffer size, so i can only copy the last screen which i can see. here it is:

hw id: 0x0000 - pwm id 0x01
bl2_stage_init 0xc1
bl2_stage_init 0x02

L0dwmac.ff3f0000
Hit Enter or space or Ctrl+C key to stop autoboot -- :  0
card out
reading boot.ini
2303 bytes read in 2 ms (1.1 MiB/s)
cfgload: applying boot.ini...
cfgload: setenv bootlabel "CoreELEC"
cfgload: setenv max_freq_a73 "1800"
cfgload: setenv max_freq_a53 "1896"
cfgload: setenv hdmi_cec "1"
cfgload: setenv remotewakeup "0x23dc4db2"
cfgload: setenv decode_type "0"
cfgload: setenv remotewakeupmask "0xffffffff"
cfgload: setenv wol "1"
cfgload: setenv heartbeat "1"
cfgload: setenv emmc_timeout "0"
cfgload: setenv coreelec "quiet"
cfgload: setenv rootopt "BOOT_IMAGE=kernel.img boot=UUID=1407-2414 disk=UUID=15e065ec-c355-4c2f-a523-78e27026bb0c"
cfgload: setenv consoleopt "console=ttyS0,115200 console=tty0 no_console_suspend"
cfgload: setenv displayopt "hdmimode=1080p60hz logo=osd0,loaded,0x3d800000"
cfgload: setenv loadaddr 0x11000000
cfgload: setenv dtb_mem_adn setenv cec "hdmitx=cec3f"; fi
cfgload: if test "${emmc_timeoucfgload: if test "${usbpower}" != ""; then setenv usbpower "enable_system_power=${usbpower}"; fi
cfgload: if test "${modeline}" != ""; then setenv cmode "modeline=${modeline}"; fi
cfgload: setenv initargs "${rootopt} ${consoleopt} max_freq_a53=${max_freq_a53} max_freq_a73=${max_freq_a73} enable_wol=${wol} ${cec} ${irOK
dt memory region: addr=1000000 size=12000
   Loading Ramdisk to 3d36e000, end 3d7ff600 ... OK
   Loading Device Tree to 00000000d3ed2000, end 00000000d3ee622f ... OK
fdt_fixup_memory_banks, reg:0000000000000000

Starting kernel ...

uboot time: 6775743 us
[    0.000000@0] OF: reserved mem: invalid size property in 'linux,galcore' node.
[    0.331232@1] codec_mm_module_init
[    0.338642@0] clkmsr ffd18004.meson_clk_msr: failed to get msr ring reg0
[    0.354721@0] cvbs_out: chrdev devno 264241152 for disp
[    0.494357@2] dmi: Firmware registration failed.
[    0.565988@2] meson-pwm ff802000.pwm: pwm pinmux : can't get pinctrl
[    0.566230@2] meson-pwm ffd1b000.pwm: pwm pinmux : can't get[    0.805025@0] cectx ff80023c.aocec: cec driver date:Ver 2019/

Pinging @Portisch

U booting normal to CE and do whatever you do. Be sure CEC remote is working in Kodi.
Open the UART terminal and hit enter. It should show the CoreELEC UART promt.
Enter journalctl -f. This should show live all dmesg messages on UART.

Then power off your system the way you do it every time.

Then the UART will show some output without a “time” in front. This is the bl301 stuff. And the N2 should now waiting for wake up.

Try to wake up by CEC like you do every time.
This log would be needed, starting at power off till the N2 woke up again.

yep, that worked.

I put the N2 to sleep mode (power off the tv), then i powered on the tv and recieved this:

cec R: 01
RX_OK
cec R: 5f 87 00 06 78
RX_OK
cec R: 5f 87 00 06 78
RX_OK
cec R: 5f a7 00 00
RX_OK
cec R: 5f 85
RX_OK
cec R: 0f 82 00 00
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 01
RX OK 

I would have expected, this powers up the n2, but it did not.

I switched then the input from the AVR to another port and back to “game” (where the n2 is connected to) and got this:

cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 01
RX_OK
exit_reason:0x08
Enter ddr resume

ddr resume time: 121us

store restore gp0 pll

cfg15 83b01000 

cfg15 83b01000 

Little core clk resume rate 1896000000

Big core clk resume rate 24000000

j\j/















:13 CoreELEC kernel: early_suspend: usb_early_suspend
Oct 21 18 early suspend! is_mount=0
Oct 21 18:00:13 CoreELEC kernel: early_suspend: done
Oct 21 18:00:13 CoreELEC kernel: Freezing usernd of devices complete after 0.431 msecs
Oct 21 18:00:13 CoreELEC kernel: PM: noirq suspend of devices complete after 0.743 msecs
Oct 21 18:00:13 CoreELEC kernel: Disabling non-boot CPUs ...
Oct 21 18:00:13 CoreELEC kernel: CPU1: shutdown
Oct 21 18:00:/storage/.config/scripts/load_epgguide
Oct 21 18:00:55 CoreELECond[3659]: saving to '/storage/.config/scripts/guide.gz'
Oct 21 CoreELEC crond[3659]: '/storage/.config/scripts/guide.gz' saved

that woke up the n2. at the moment, that is my workaround to get the n2 up and running - switching the inputs from the AVR.

i am still unable to copy/paste from those wierd screens with the usb/serial connection, but with puttys logging feature i can provide now all logs you need :slight_smile:

Thx for the log, I will have a look as soon as possible.

1 Like

I just took a look to the source and 0f 82 00 00 should wake up the N2.
It looks like a libCEC and/or kernel issue. When I have more time I will upload a test version.

Here I have a test version!
It’s based on last nightly + a CEC wake up fix for CEC_OC_ACTIVE_SOURCE

Maybe the wake-up is now working…
CoreELEC-Amlogic-ng.arm-9.2-devel-1571809638.tar

If it works please try also if the N2 does not wake up when it should not!

Unfortunately, the same behaviour as before.

Then please make again a log.
Suspend/power off the N2 and TV like usual and wait 1-2 min. Save the log.

Then switch on the TV and select the HDMI port. Don’t switch to a different port. Wait again 1min.
Save the log again.
Then change the port and wake up the N2 and save the log again.

So there should be 3 log files then. The problem for me is there is no timestamp on the log so I can not see what happened when.

thats the first log, just turning on the tv, which turns on the AVR, but the n2 does nothing.

=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2019.10.23 21:14:30 =~=~=~=~=~=~=~=~=~=~=~=
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
customer pwrkeys for IR is 0xf708fb04
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 01 8c
RX_OK
cec T: 1f 87 00 00 00
cec_triggle_tx:TX_DONE
cec R: 01 8c
RX_OK
cec T: 1f 87 00 00 00
cec_triggle_tx:TX_DONE
cec R: 01 8c
RX_OK
cec T: 1f 87 00 00 00
cec_triggle_tx:TX_DONE
cec R: 01 8c
RX_OK
cec T: 1f 87 00 00 00
cec_triggle_tx:TX_DONE
cec R: 01 8c
RX_OK
cec T: 1f 87 00 00 00
err: tx not finish flag
cec reset
Set cec pinmux:0x11
cec R: 5f 84 20 00 05
RX_OK
cec R: 01 8f
RX_OK
cec T: 10 90 01
cec_triggle_tx:TX_DONE
cec R: 01 8f
RX_OK
cec T: 10 90 01
cec_triggle_tx:TX_DONE
cec R: 01 8f
RX_OK
cec T: 10 90 01
cec_triggle_tx:TX_ERROR
cec R: 0f 87 00 e0 91
RX_OK
cec R: 5f 87 00 06 78
RX_OK
cec R: 5f 84 20 00 05
RX_OK
cec R: 5f 87 00 06 78
RX_OK
cec R: 5f a7 00 00
RX_OK
cec R: 5f 85
RX_OK
cec R: 0f 82 00 00
RX_OK
addr fail 1
cec R: 5f 72 01
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 01
RX_OK
cec R: 01
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 01
RX_OK
cec R: 01
RX_OK

and the second log, powering on the n2 with switching to another channel

=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2019.10.23 21:18:42 =~=~=~=~=~=~=~=~=~=~=~=
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 01
RX_OK
cec R: 01
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 01
RX_OK
cec R: 01
RX_OK
cec R: 5f 80 24 00 26 00
RX_OK
, phy_addr_ab:0x24, phy_addr_cd:0x00, msg[4]:0x26, msg[5]:0x00
cec R: 5f 80 26 00 24 00
RX_OK
, phy_addr_ab:0x24, phy_addr_cd:0x00, msg[4]:0x24, msg[5]:0x00
use vddee new table!
exit_reason:0x08
Enter ddr resume

ddr resume time: 121us

store restore gp0 pll

cfg15 83b01000 

cfg15 83b01000 

Little core clk resume rate 1896000000

Big core clk resume rate 24000000

and the last one, pressing the power off button on the remote for the TV, turns off the avr and the n2

=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2019.10.23 21:23:00 =~=~=~=~=~=~=~=~=~=~=~=
wake-on-lan = 00000001
bl30 get wakeup sources!

process command 00000006
bl30 enter suspend!

Little core clk suspend rate 1896000000

Big core clk suspend rate 24000000

store restore gp0 pll

suspend_counter: 3

Enter ddr suspend

ddr suspend time: 15us

alarm=0S

process command 00000001
cec ver:2018/04/19
CEC cfg:0x003f
WAKEUP GPIO cfg: 0x0000, bank: 0x00
use vddee new table!
08915d0000000000set_remote_mode 0x00000000cec reset
Set cec pinmux:0x11
kern log_addr:0x01
Set cec log_addr:0x01,ADDR0:11
cec R: 0f 87 00 e0 91
RX_OK

the commands appeared pretty quick.
the first log was about 10-15 seconds, the second maybe 10 second and the last only 2-3 seconds.
the first i waited a bit, some messages appeared (the first four cec R: 0f 87 00 e0 91
RX_OK), then i pressed the power on button.
the second i was waiting again maybe 5 seconds until the first 3 cec R: came and then switched the channel.
i was waiting for output on the third, but nothing appeared until i pressed the power off button.

Thx for the log, I will check it as soon as possible.

Here a new test version. I only added some debug prints - so it will not work.
Please do again the log like before.
Also post your dmesg debug link after resume by: dmesg | paste
CoreELEC-Amlogic-ng.arm-9.2-devel-1571900008.tar

here the power on button on the remote for the tv, which turns on the avr but not the n2:

=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2019.10.24 20:42:13 =~=~=~=~=~=~=~=~=~=~=~=
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
customer pwrkeys for IR is 0xf708fb04
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 01 8c
RX_OK
cec T: 1f 87 00 00 00
cec_triggle_tx:TX_DONE
cec R: 01 8c
RX_OK
cec T: 1f 87 00 00 00
cec_triggle_tx:TX_DONE
cec R: 01 8c
RX_OK
cec T: 1f 87 00 00 00
cec_triggle_tx:TX_ABT_LOST
cec R: 01 8f
RX_OK
cec T: 10 90 01
cec_triggle_tx:TX_DONE
cec R: 01 8f
RX_OK
cec T: 10 90 01
cec_triggle_tx:TX_DONE
cec R: 01 8f
RX_OK
cec T: 10 90 01
cec_triggle_tx:TX_DONE
cec R: 01 8f
RX_OK
cec T: 10 90 01
err: tx not finish flag
cec reset
Set cec pinmux:0x11
cec R: 5f 84 20 00 05
RX_OK
cec R: 01 8f
RX_OK
cec T: 10 90 01
cec_triggle_tx:TX_DONE
cec R: 01 8f
RX_OK
cec T: 10 90 01
cec_triggle_tx:TX_DONE
cec R: 01 8f
RX_OK
cec T: 10 90 01
cec_triggle_tx:TX_DONE
cec R: 0f 87 00 e0 91
RX_OK
cec R: 5f 87 00 06 78
RX_OK
cec R: 5f 84 20 00 05
RX_OK
cec R: 5f 87 00 06 78
RX_OK
cec R: 5f a7 00 00
RX_OK
cec R: 5f 85
RX_OK
cec R: 0f 82 00 00
RX_OK
CEC_OC_ACTIVE_SOURCE: hdmi_cec_func_config: 0x0000003f
CEC_OC_ACTIVE_SOURCE: source: 0x00000000, phy_addr: 0x00000000
check_addr: local_addr: 0x00002400, phy_addr: 0x00000000
addr fail 1
cec R: 5f 72 01
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 01
RX_OK
cec R: 01
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 01
RX_OK
cec R: 01
RX_OK

second part, the powering on (switching from game channel to another one, then back)

=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2019.10.24 20:44:30 =~=~=~=~=~=~=~=~=~=~=~=
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 0f 87 00 e0 91
RX_OK
cec R: 01
RX_OK
cec R: 01
RX_OK
cec R: 5f 80 24 00 26 00
RX_OK
, phy_addr_ab:0x24, phy_addr_cd:0x00, msg[4]:0x26, msg[5]:0x00
cec R: 5f 80 26 00 24 00
RX_OK
, phy_addr_ab:0x24, phy_addr_cd:0x00, msg[4]:0x24, msg[5]:0x00
use vddee new table!
exit_reason:0x08
Enter ddr resume

ddr resume time: 122us

store restore gp0 pll

cfg15 3b01000 

cfg15 83b01000 

Little core clk resume rate 1896000000

Big core clk resume rate 24000000

the dmesg after powering up
http://ix.io/1ZJW

and powering off

=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2019.10.24 20:46:59 =~=~=~=~=~=~=~=~=~=~=~=
wake-on-lan = 00000001
bl30 get wakeup sources!

process command 00000006
bl30 enter suspend!

Little core clk suspend rate 1896000000

Big core clk suspend rate 24000000

store restore gp0 pll

suspend_counter: 2

Enter ddr suspend

DMC_DRAM_STAT11: 0x544

ddr suspend time: 2178us

alarm=0S

process command 00000001
cec ver:2018/04/19
CEC cfg:0x003f
WAKEUP GPIO cfg: 0x0000, bank: 0x00
use vddee new table!
08915d0000000000set_remote_mode 0x00000000cec reset
Set cec pinmux:0x11
kern log_addr:0x01
Set cec log_addr:0x01,ADDR0:11
cec R: 0f 87 00 e0 91
RX_OK