Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Jun 2019 09:34:39 +0200
From:      Milan Obuch <freebsd-arm@dino.sk>
To:        freebsd-arm@freebsd.org
Subject:   Pine64+ HDMI output note
Message-ID:  <20190616093439.5bcbe869@zeta.dino.sk>

next in thread | raw e-mail | index | archive | help
Hi,

as I am trying to use my Pine64+ for something usefull, I decided to
look on video output. As I built new system natively on Pine, using
what was available there in original image, I mean u-boot and related
things, video output does not work. In original image, I believe it was
built from r345863 sources at April 4th, there were even no /dev/ttyvN
entries. In my new r348999 based system, they were present, but HDMI
output was not active.

Observing boot process for some time I noticed HDMI output is working
up to some time in the middle of kernel device probing sequence. I
examined a bit dtb blob used, dmesg messages, some source file etc. in
order to understand what's going on, and tried following

# dmesg | grep hdmi
Clock: hdmi, parent: pll_video0(0), freq: 297000000
Clock: bus-hdmi, parent: ahb1(0), freq: 300000000
Clock: hdmi-ddc, parent: osc24M(0), freq: 24000000
simplebus0: <hdmi@1ee0000> mem 0x1ee0000-0x1eeffff irq 51 compat allwinner,sun50i-a64-dw-hdmi (no driver attached)
simplebus0: <hdmi-phy@1ef0000> mem 0x1ef0000-0x1efffff compat allwinner,sun50i-a64-hdmi-phy (no driver attached)
ofwbus0: <hdmi-connector> compat hdmi-connector (no driver attached)
regulator: shutting down vcc-hdmi
axp8xx_pmu0: Disable vcc-hdmi (dldo1)

which makes me think, together with presence of getty processes
attached to /dev/ttyvN devices, that all what's missing is just
physical video output signal, and this is most probably caused by
output buffer being shut down. So I googled a bit and found a hint,
tried it - I put line

hw.regulator.disable_unused=0

into /boot/loader.conf file and it works. I think it just uses HDMI
output engine configured by u-boot instead of configuring it itself, as
we have no driver for hdmi and hdmi-phy devices on A64 SoCs.

Maybe this is just as simple as adding appropriate compatible string
into arm/allwinner/a10_hdmi.c file, but I do not know if A20 and A64
cores are compatible in this area... and workaround found is just OK
for me.

Next step would be to try X on Pine64+... Any hint on this? I am going
to try scfb video driver for this, as noted on FreeBSD/arm/Allwinner
wiki page. As for this wiki page - maybe it could be updated in
'supported devices' table, in column A64 - I think framebuffer works
and HDMI video too, kind of, leaving it in pre-initialised state with
above mentioned workaround.

Regards,
Milan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20190616093439.5bcbe869>