Lang Daniel faf2b8a627 package/freescale-imx/imx-gpu-viv: enable aarch64 framebuffer support
Back when the imx-gpu-viv package was enabled on AArch64 in commit
84afda9ca6, the fb output option was not
enabled.

However, according to meta-freescale [0] the framebuffer output can be
enabled on IMX8 by using the wayland libraries together with egl.pc.

[0] https://git.yoctoproject.org/meta-freescale/tree/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc

This commit does enable fb output on AArch64, which requires a few
precautions as the imx-gpu-viv logic is a bit convoluted:

- FB on ARM is supported using "pure" framebuffer libraries. However,
  a specific egl.pc is needed: egl_linuxfb.pc. The supporting
  libraries are found in the fb/ subdirectory in imx-gpu-viv "code".

- FB on AArch64 is supported using libraries that are linked with
  wayland and libdrm, even though wayland/libdrm is obviously not used
  for framebuffer output. pkg-config wise, this configuration can use
  the default egl.pc. The supporting libraries are found in the
  wayland/ subdirectory in imx-gpu-viv "code", as oddly as it seems.

- Wayland on ARM on AArch64 is supported using libraries that are
  obviously linked against wayland and libdrm. pkg-config wise, egl.pc
  needs to be symlinked to egl_wayland.pc.

This patch solves this situation by introducing a hidden boolean
option BR2_PACKAGE_IMX_GPU_VIV_USES_WAYLAND that indicates whether
wayland/libdrm is used by the currently selected output. This is of
course true when BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL, but also when
BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB on AArch64.

Signed-off-by: Daniel Lang <d.lang@abatec.at>
[Thomas: quite significant rework compared to the submission from
Daniel Lang, so we didn't keep the Reviewed-by from Gary Bisson]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2025-05-18 22:41:43 +02:00
2025-02-05 11:43:43 +01:00
2025-01-15 21:30:31 +01:00
2025-05-18 17:29:04 +02:00
2025-05-18 17:07:04 +02:00

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on OFTC IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches
Description
No description provided
Readme 206 MiB
Languages
Makefile 62.5%
Python 19%
C 8.5%
Shell 6.1%
PHP 1.4%
Other 2.1%