Posts by jernej

    When you get frame processing timed out!, system shouldn't freeze/crash. That's why there is iommu, to prevent accessing non-allocated memory and thus corrupting memory. But then again, Cedrus might block one or more memory buses, which freezes the system regardless.

    Disabling CEC doesn't solve issue #3 for you?

    Is there a playback freeze or system crash? In any case, MPEG2 is easy to decode, so you can disable MPEG2 HW decoding. If you have a sample, I can take a look, but no promises. I found some workarounds for corrupted H264 streams, but not yet for MPEG2.

    just to clarify though, does changing that timing register with devmem take effect immediately? Or do i need to disable/re-enable the CEC option or something?

    Yes, it directly writes to HW clock register. It switches CEC clock source from periph0(2x) clock to external 32.768 kHz crystal, but sadly not all boards have it. Still, there is no logic why it would help. In any case, I have also other ideas, for which I will make test images.

    But does CEC work? Please test that. There is a reason why that register is set differently. In any case, devmem command could only be workaround, but not a solution. It needs to be solved on kernel level. However, I always had troubles even with original OrangePi 3, so there might be connection, HW wise. It's interesting that I never had any troubles with Tanix TX6. Unfortunately there is no schematic nor kernel source to compare what they done differently.

    Well, documentation is scattered around. You need board schematic, which can be found on orangepi.org. Then you will probably want to see Allwinner H6 user manual, which can be found on linux-sunxi.org. Last but not least, you'll want to see CEC registers description. Unfortunately, you have to get creative here and find leaked DW HDMI documentation.

    In any case, none of that will tell you anything about Pulse Eight adapter. You have to approach that one from Kodi perspective. Pulse Eight libcec library was first attempt at trying to make standard CEC library which can be used by applications. At that time, there were absolutely no standard kernel interface for CEC, so every device and SoC manufacturer did something hackish and incompatible with other solutions, even if same underlying HW was used. As you can imagine, Kodi used that to have any hope of supporting CEC on multiple devices. Later on, when Linux kernel finally got common CEC interface, Pulse Eight libcec library was extended to support this interface. Since Allwinner SoCs expose CEC functionality over this common kernel CEC interface, Pulse Eight library naturally also supports Allwinner SoCs (when using mainline kernel).

    There is idea to get rid of Pulse Eight libcec dependency and use Linux CEC interface directly, but it's a lot of work that currently nobody wants to do.

    Can any of you with CEC issues try if devmem 0x3001b10 32 0x80000000 helps? There is basically no HW connection between CEC and video decoding except one clock, but that shouldn't matter since clock rate isn't changed by CEC driver.

    It's possible, but there is a lot of work. First, that box is not officially supported either by U-Boot or Linux. You can hope that Tanix TX6 is compatible enough for it to work, otherwise you need to debug and fix any discrepancies. Then, you need to FEL boot U-Boot and somehow transfer LE image and write it to eMMC. I can think of two ways, maybe there is more:

    1. setup network and transfer image into memory and then write it to eMMC

    2. setup USB mass storage mode in U-Boot and write image directly to eMMC.

    Both methods need special crafted U-Boot binary. LE U-Boot is stripped to the minimum to speed up boot process. It can be booted via FEL, but you won't get much useful features.

    In any case, since it's unsupported TV box, you're on your own.

    I deliberately omitted talk about FEL boot, because it's not USB boot in usual sense - using USB stick. You certainly can boot LibreELEC over FEL, as long as you know what your doing. It's not plug and play solution, on every board little different, so we don't advertise it.