Reviving an old i.MX6 based tablet with Etnaviv

Martin Fuzzey martin.fuzzey at flowbird.group
Mon Oct 15 08:59:15 UTC 2018


Hi bero,
> Hi,
> I just got hold of an old i.MX6 based Fastwel ONYX-08 tablet (seems to be fairly close to an imx6q-sabresd) with a prehistoric SW stack (based on kernel 3.14.52) that has apparently never seen a source release.
>
> I think getting that up and running on a current stack with Etnaviv would be fun (even though a bit of a challenge primarily because boot messages aren't visible -- if there's any way to attach a serial port to this device, I haven't found it yet), but so far my attempts to get the display up haven't worked. I'm assuming Etnaviv doesn't see the GPU because the devicetree file is configured for the binary driver, but I'm not an expert on devicetree.
>
> I've uploaded the tablet's devicetree file (unfortunately, a decompiled one -- looks like the source was never released, but I could locate the dtb in the boot partition) to http://lindev.ch/onyx08.dts
>
> Does anyone have any pointers to help get me started on this?
>
> Thanks!
> bero
>
> I've uploaded the tablet's devicetree file (unfortunately, a decompiled one -- looks like the source was never released, but I could locate the dtb in the boot partition) to http://lindev.ch/onyx08.dts
>
> Does anyone have any pointers to help get me started on this?


etnaviv is only involved with 3D acceleration, not the actual display.
It's the i.MX IPU driver that handles display.

You should get basic display working before worrying about the GPU.

Indeed the DT you posted doesn't have the right nodes for etnaviv but 
you'll also need a modern kernel.

I think your priority for the moment should be getting read / write root 
console access and a way of loading an arbitary kernel.

What boot device is the board using? Do you know what bootloader it is 
using?

The i.MX6 can boot from multiple sources, I guess it's probably booting 
from eMMC in your case.

I would try to hook up a serial port and force it to boot from SD.
If you can boot u-boot from SD you can then netboot the kernel and 
userspace over ethernet which gives you a nice environment to work in 
without actually modifying any of the current software on the device.

The i.MX6 has GPIO pins that can be used to select boot load, if you're 
lucky there may be jumpers or pads for them.
If you're unlucky fuses may have been blown locking the boot mode.
If you're really unlucky the device is using secure boot and you're 
pretty much stuck without being able to replace the bootloader or the 
kernel.

A hack that may be useful if you can't replace the current kernel and/or 
bootloader, and if the current kernel supports it, is "kexec", basically 
you boot the existing kernel and use it as a bootloader asking it to 
replace itself with another kernel.

The good news is that modern upstream kernel and userspace should 
basically just work today on i.MX6.
The tricky part is getting them on it.

Good luck!

Martin




More information about the etnaviv mailing list