
On Wed, Jun 16, 2021 at 2:20 PM Icenowy Zheng icenowy@aosc.io wrote:
I'm trying RK3399 with Linux. EFIFB never works as intended (maybe it's because IOMMU is reconfigured), and rockchipdrmfb will be fb1 (leave non-working EFIFB as fb0), makes fbcon unusable.
The second problem has a proposed fix, but the first problem is mystery.
I think that figured out the mystery for your second problem too (if I understood what you meant correctly).
The problem is that u-boot initializes the display controller and provides the setup framebuffer memory to the kernel as a GOP. But then the kernel re-initializes the HW again and mess with the resources needed by the display controller that were correctly setup by u-boot. Part of that is the IOMMU as you said, but also the clocks and power domains that Linux will disable because are "unused".
So to have a GOP framebuffer that will be available until the rockchip DRM fb emulation takes over (with the patch mentioned by Peter), you will need the following kernel command line options:
initcall_blacklist=rk_iommu_init clk_ignore_unused pd_ignore_unused
Best regards, Javier