A13 Q8 tablet & mainline kernel problems

89 views
Skip to first unread message

Oranż Metylowy

unread,
Mar 27, 2022, 10:16:10 PM3/27/22
to linux-sunxi
Hello,
I'm trying to run mainline Linux kernel on a Q8-format A13 tablet. In particular, along with Alpine Linux initramfs and packages.
I have three of them, one is a Q8_V07 and two are identical Q8A_V1.2.
I'm compiling v5.15 mainline on sunxi_defconfig and U-Boot v2021.10 on q8_a13_tablet_defconfig. (Newer U-Boot crashes with "initcall sequence failed", but that's already a different topic). Device trees for both images are sun5i_a13_q8_tablet. I did change some config options, but the problems described below aren't affected by my changes.

There are numerous problems regarding the LCD and USB. I thought I could ask here for help, because I'm running out of options.

[Q8, Q8A problem]
The LCD works perfectly fine in U-Boot. Booting the kernel corrupts the image (white flashes, colorful stripes, etc), unless I use the DTB straight from U-Boot, which makes it work.

[Q8A problem]
A much bigger issue is the USB. On the Q8A tablet, for some reason, the device just turns off when booting the kernel. I found that it happens whenever LDO3 is being turned on (USB1 VCC). The display goes black, the CPU stops responding, just like the power was cut. I can confirm it on both Q8A tablets (so it's not a hardware-faulty device), *however* this doesn't occur on the Q8. The Q8A power cut happens during hardware init, about 1.5sec after the kernel starts (also happens with Alpine generic-arm7l kernel, though in phase of loading kernel modules, 30sec later). LDO3 is responsible for WiFi USB card, so I just disabled it in DTB for now.

[Q8, Q8A problem]
With LDO3 disabled, the kernel boots fine on all three devices. And on all three of them, USB just doesn't work. It finds the two "Linux foundation" root HUBs, and nothing else. OTG power isn't applied (dmesg even states clearly "vcc-vusb0: disabling"). Devices aren't recognized with a powered USB hub. Plugging the USB at any time does not log anything in dmesg, even after enabling verbose identification. Forcing the power on ("regulator-always-on" for PG12 in DTB) makes no difference, except the power is actually ON. Disabling ID and power detect pins in DTB doesn't change anything.

On alpine generic-arm7l the same happens, with a slight difference of just one root HUB present.
USB OTG works perfectly fine in U-Boot. Also with keyboard input, I can type in the console on the LCD.

About the USB1 power:
In all DTBs I could find, USB1 is powered by AXP209's LDO3. Although, from script.bin files pulled from Q8A and Q8 firmwares, I still see different values. Q8 has it on PG11 in the FEX file, and strangely, Q8A has it on "port:power203" (which probably also translates to PG11). Does PG11 has something to do with AXP?

Now, here's the question. Where should I look in order to resolve these issues? Are there any more debugging options to enable in the kernel? Or maybe should I look for clues in the vendor kernels? Possibly on running Android instances? Or maybe does anyone know why do these issues occur?

I can post more information if you need any. I guess I'm doing something wrong, something probably very little and stupid.. but I can't figure it out by myself.

Thanks in advance
Kuba

Horváth Csaba

unread,
Sep 12, 2025, 5:50:28 PMSep 12
to linux-sunxi
I have similas issues with a Colorfly e708q1 tablet, with Arch and kernel 5.x . I have completely no AXP20x support, although it's in the kernel, but the device is fully missing from the /dev /sys and so on. So i have no power management.
Does anyone know how to get the AXP work...?
Thanks in advance :)

Franco Palombo

unread,
Sep 14, 2025, 5:40:00 PMSep 14
to linux-sunxi
Hi, I'm also working an A13 tablet. I've not experienced all the issues you're telling, but I think some of what I've learnt could be useful.

I don't know how experienced you are on this topic, but I'm going to tell you what was usefull to me as a newbie (that I'm still are).

About the LCD stuff:
The image corruption could be due to the device not receiving power from the AXP209. You have to enable pinctrl support for the AXP20X chip. CONFIG_PINCTRL_AXP209=y
After you enable pinctrl support, a lot of things are going to change. The first thing you'll notice (if backlight is configured correctlly) is that the screen will go dark. Part of your LDO3 issues might be solved after enabling that, so double check. To turn on the backlight, under /sys/class/backlight/*/, run echo 0 > bl_power as root (not with sudo, use su). You'll probably see a white screen now. To get the terminal and/or kernel boot logs, you have to enable a few things on the kernel and uboot for it to set up the display as a framebuffer device.
on u-boot:
CONFIG_VIDEO_DT_SIMPLEFB=y
on kernel:
CONFIG_DRM_SIMPLEDRM=y
CONFIG_LOGO=y         #for a pretty penguin at boot
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_DRM_FBDEV_EMULATION=y

recompile, and add console=tty0 to your cmdline if you want to see kernel logs on the screen while booting. that was what worked for me (i had pretty much the same issue as you have). I don't know if those options could cause issues when trying to use the lcd for stuff like x11 or wayland, I haven't got that far yet, so keep that in mind if you're messing with them in the future.

About the USB stuff:
First, be sure to have CONFIG_PINCTRL_AXP209=y enabled on your kernel. All the important information is on the script.fex. Using that, and this handy wiki page, you'll probably be able to solve most of the things out. You'll find relevant information about the AXP2xx pinout on section "2 Port definitions". There is no info on what more than one number means when the pin specification is like port:powerX, but I've looked at the FEX file of my A13 tablet, and it also says port:power203 under [usbc1], as usb_drv_vbus_gpio. I also don't have USB OTG power when connecting a device, but if I supply external power, the kernel reports it succesfully. The internal usb wifi dongle works with no issue at all. I achieved that including "sun5i-reference-design-tablet.dtsi" (which is already included on sun5i-a13-q8-tablet.dts) on my dts. It has common definitions for tablet style A13 boards. The only thing I had to redefine, was the lcd stuff.

About the Where to look stuff:
I was able to find a lot of info from the wiki (lcd timings, gpio, fex guide, boot, etc), but chatgpt (yeah) has been really useful. There was no thing that chatgpt did that worked first try, but it was really useful to gather info and give you a starting point to where to start looking from... until it doesn't. There are some issues with USB OTG that you might stumble upon (hopefully not). You can read more about it in the post I did a few weeks ago.

Hopefully this solved some of your problems.

Regards,
Franco.

Horváth Csaba

unread,
Sep 15, 2025, 8:20:25 AMSep 15
to linux-sunxi
Hi,

Thanks for clarification, even if it was not completely to me :)
At my stuff, turned out that AXP20x chip is configured in the dts, but i'm pretty lost with this.
So i need to lower the clock of the CPU as it runs on 1GHz and is very hot (50-60°C). For this, i modified the operating points (deleted higher frequencies), recompiled the DTS, but has no effect.
As i learnt, for the A31s there is a cpufreq-dt implemented, but don't know how it can be set to lower clocks, if not via the dts. Is there any guide about how to set the frequency for Allwinner...?

Thanks in advance :)
Reply all
Reply to author
Forward
0 new messages