On Tue, Sep 29, 2020 at 1:33 PM Linus Walleij linus.walleij@linaro.org wrote:
On Tue, Sep 29, 2020 at 9:53 PM Peter Collingbourne pcc@google.com wrote:
The fbdev driver is used by Android's FVP configuration. Using the DRM driver together with DRM's fbdev emulation results in a failure to boot Android. The root cause is that Android's generic fbdev userspace driver relies on the ability to set the pixel format via FBIOPUT_VSCREENINFO, which is not supported by fbdev emulation.
There have been other less critical behavioral differences identified between the fbdev driver and the DRM driver with fbdev emulation. The DRM driver exposes different values for the panel's width, height and refresh rate, and the DRM driver fails a FBIOPUT_VSCREENINFO syscall with yres_virtual greater than the maximum supported value instead of letting the syscall succeed and setting yres_virtual based on yres.
Is there a way to reproduce this? A simple binary image where we can start Android on FVP and just replace the kernel image would be great. That way we can look at the incompatibilities in the FBDEV emulation and try to fix them.
Is it working with a stock kernel or do you need any out-of-tree Android patches to run this?
Can you also share the kernel config used for this build so it is easy to rebuild a similar kernel?
There are instructions here for how to build Android targeting FVP: https://cs.android.com/android/platform/superproject/+/master:device/generic...
It also includes instructions for building the kernel (which is the Android common kernel so it does have some patches on top, but it does closely track mainline) so you should be able to make your changes on top of the common kernel, rebuild and test them that way.
Because of how Android boot images work I don't think it would be easy to provide binaries where you can replace the kernel image. Let me know if you have any trouble following the instructions.
The configuration is basically a combination of these two configs: https://android.googlesource.com/kernel/common/+/refs/heads/android-mainline... https://android-review.googlesource.com/c/kernel/common/+/1145352/11/fvp.fra...
Those configs enable the fbdev driver. You can apply the patch I posted earlier to fvp.fragment to switch to the DRM driver.
Peter