Continuing the discussion from Step by step, how to compile DTS with include files:
I had time to get back to this a few months ago, and was able to manage to build a DTB for the 2nd gen Cube that partially boots CoreElec. From the dmesg, the OS appears to be loading fairly far in, and may even be semi-functional. But I’m not able to get any video output, other that an active black screen.
I’ve been bouncing back and forth between CE v19.5 and EE v4.6, and I’m encountering the same problem with video output in both ROMs. I got a s905x4 to use as a reference unit, to get a rough idea about how the system should be loading.
I have a couple general questions. Does the device bootloader matter at all if I’m able to get the CE kernel loaded into memory and started? I have seen some comments saying that devices that use older Android firmware may not have bootloaders that work with CE/EE? But I don’t understand why the bootloader version would matter once the kernel has taken over? For reference the Cube uses FireOS7 (Android Pie).
The Cube doesn’t have an ENV partition (#define env nowhere), again I don’t think this should matter as long as I can get the kernel loaded? Are there any env variables from uboot that are vital to the kernel boot process?
I’ve been trying to trouble shoot the broken video output for sometime now, and I have a question about the amhdmitx node in the DTB. The supported s922x devices node looks like the following:
amhdmitx {
compatible = "amlogic, amhdmitx";
dev_name = "amhdmitx";
status = "okay";
vend-data = <0x2f>;
pinctrl-names = "default\0hdmitx_i2c";
pinctrl-0 = <0x30 0x31>;
pinctrl-1 = <0x32 0x33>;
clocks = <0x02 0x56 0x02 0x4f 0x02 0x50 0x02 0x96 0x02 0x8d>;
clock-names = "venci_top_gate\0venci_0_gate\0venci_1_gate\0hdmi_vapb_clk\0hdmi_vpu_clk";
interrupts = <0x00 0x39 0x04 0x00 0x03 0x01>;
interrupt-names = "hdmitx_hpd\0viu1_vsync";
ic_type = <0x0b>;
phandle = <0xd7>;
vend_data {
vendor_name = "Amlogic";
product_desc = "MBox Meson Ref";
vendor_id = <0x00>;
phandle = <0x2f>;
};
};
and the native Cube version is:
amhdmitx {
compatible = "amlogic, amhdmitx";
dev_name = "amhdmitx";
status = "okay";
vend-data = <0x3b>;
pinctrl-names = "default\0hdmitx_i2c";
pinctrl-0 = <0x3c 0x3d>;
pinctrl-1 = <0x3e 0x3f>;
clocks = <0x0d 0x55 0x0d 0x4e 0x0d 0x4f 0x0d 0x95 0x0d 0x8c>;
clock-names = "venci_top_gate\0venci_0_gate\0venci_1_gate\0hdmi_vapb_clk\0hdmi_vpu_clk";
interrupts = <0x00 0x39 0x01>;
interrupt-names = "hdmitx_hpd";
ic_type = <0x0b>;
hdmiocp-gpio = <0x26 0x3d 0x00>;
phandle = <0xf7>;
vend_data {
vendor_name = "Amlogic";
vendor_id = <0x00>;
phandle = <0x3b>;
};
};
Initially I had tried sticking with the default node from Amazon that doesn’t include 0viu1_vsync interrupt. Then I tried going with the version used by the supported device DTBs, but neither produced any video output other than a black screen. I’m not sure if this different configuration is related to a possible video out configuration incompatibility?
Unplugging/plugging the HDMI connector triggers the hdp, and I can see the display information in the uart output.
Do you have any suggestions on what nodes I should be paying attention? Or maybe my problem isn’t the DTB?
I’m attaching my dmseg, and current dts. I do still have a couple audio hardware issues i need to fix including an issue with the snd-usb-audio driver that’s causing a 40sec SCPI timeout. I am working on fixing these too, but I want to make sure that it’s possible to get video output from this device.
dmseg-dts.zip (42.2 KB)