[Buildroot] [PATCH v1 1/2] package/mesa3d: add v3d driver support

Peter Seiderer ps.report at gmx.net
Tue Feb 4 22:40:48 UTC 2020


Hello Yann,

On Tue, 4 Feb 2020 23:14:27 +0100, "Yann E. MORIN" <yann.morin.1998 at free.fr> wrote:

> Peter, All,
>
> On 2020-02-04 23:00 +0100, Peter Seiderer spake thusly:
> > On Tue, 4 Feb 2020 22:45:40 +0100, Peter Seiderer <ps.report at gmx.net> wrote:
> > > On Tue, 4 Feb 2020 21:55:16 +0100, "Yann E. MORIN" <yann.morin.1998 at free.fr> wrote:
> > > > On 2020-02-04 15:44 +0100, Peter Seiderer spake thusly:
> > > > > Signed-off-by: Peter Seiderer <ps.report at gmx.net>
> [--SNIP--]
> > > > > +config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D
> > > > > +	bool "Gallium v3d driver"
> > > > > +	depends on BR2_arm || BR2_aarch64
> > > > > +	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
> > > > > +	select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO
> > > > > +	select )
> > > > > +	select BR2_PACKAGE_MESA3D_OPENGL_EGL
> > > > > +	help
> > > > > +	  Driver for Broadcom VC6 (rpi4) GPUs (needs kmsro and vc4).
> > > >
> > > > I don't understand why you added that '(needs kmsro and vc4)': the
> > > > corresponding config entries are properly selected above, and thus
> > > > this part of the help text is of no use for the user, and tend to in
> > >
> > > kmsro/vc4 would mean BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_KMSRO (not mixed up
> > > with the selected BR2_PACKAGE_MESA3D_GALLIUM_KMSRO) and
> > > BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4 (not mixed up with the selected
> > > BR2_PACKAGE_LIBDRM_VC4)...and all three mesa3d options (v3d, vc4, kmsro)
> > > are needed to get a functional RPi4-64bit graphic output (see e.g. [1]:
> > > The VC4 interface is via /dev/drm/card1. The V3D interface is via /dev/drm/card0.
> > > All drawing commands go to V3D (aka card0). All screen resolution and configuration
> > > commands go to VC4 (aka card1))...
>
> Slo it means the code you provided is not complete! Why do you not
> select the requried options?
>
>     select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_KMSRO

Because none of the other drivers does so...

>     select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4

Because I do not know if all use-cases need a mesa3d-vc4 driver
(my use case definitely ;-) )...

>
> We don't want to let the user resolve the dependencies manually. This is
> what the config options are for.

All freedom for the empowered users ;-)

>
> Currently, with the code you provided, this means that the following
> defconfig would not generate a mesa3d that provperly supports the rpi4
> (if I understood things correctly):
>
>     BR2_arm=y
>     BR2_cortex_a7=y
>     BR2_TOOLCHAIN_EXTERNAL=y
>     BR2_INIT_NONE=y
>     BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
>     BR2_SYSTEM_BIN_SH_NONE=y
>     # BR2_PACKAGE_BUSYBOX is not set
>     BR2_PACKAGE_MESA3D=y
>     BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D=y
>     # BR2_PACKAGE_EUDEV_ENABLE_HWDB is not set
>     # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
>     # BR2_TARGET_ROOTFS_TAR is not set

Yes...

>
> This is definitely not nice at all... :-(

Yes, not all possible buildroot configs lead to an usable system...
My reasoning was that the help text hint should be enough...

Regards,
Peter

>
> Could you please fix that up?
>
> Regards,
> Yann E. MORIN.
>
> > > > fact be very confusing. But since this is the same mess with the other
> > > > options around, I left it. It would be nice to clean them away, though.
> > > >
> > > > > +	  It requires a recent enough mainline/raspberrypi kernel with
> > > > > +	  drm v3d (CONFIG_DRM_V3D, CONFIG_DRM_VC4) support enabled.
> > > >
> > > > "recent enough" is of no use to the user: some woudl consider 4.0 to be
> > > > recent, some would consider 5.0 to be old. Sol I replaced that with the
> > > > exact version v3d was merged in mainline linux, that is 4.18.
> > >
> > > Thanks for looking up at which kernel version CONFIG_DRM_V3D was added...,
> > > wanted to emphasize that both mainline and raspberrypi linux kernel
> > > are supported (some years ago only the mainline kernel supported DRM_VC4
> > > and/or 64-bit Rpi)...
> > >
> > > Regards,
> > > Peter
> > >
> > > [1] https://forum.qt.io/topic/107764/drm-kms-configuration-for-raspberry-pi-4
> > >
> > > >
> > > > Regards,
> > > > Yann E. MORIN.
> > > >
> > > > > +
> > > > >  config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4
> > > > >  	bool "Gallium vc4 driver"
> > > > >  	depends on BR2_arm || BR2_aarch64
> > > > > diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
> > > > > index c7e5be55a0..1a18cf3c58 100644
> > > > > --- a/package/mesa3d/mesa3d.mk
> > > > > +++ b/package/mesa3d/mesa3d.mk
> > > > > @@ -84,6 +84,7 @@ MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI) += radeonsi
> > > > >  MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA)     += svga
> > > > >  MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST)   += swrast
> > > > >  MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_TEGRA)    += tegra
> > > > > +MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D)      += v3d
> > > > >  MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4)      += vc4
> > > > >  MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL)    += virgl
> > > > >  # DRI Drivers
> > > > > @@ -162,6 +163,8 @@ endif
> > > > >  MESA3D_PLATFORMS = surfaceless
> > > > >  ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y)
> > > > >  MESA3D_PLATFORMS += drm
> > > > > +else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D),y)
> > > > > +MESA3D_PLATFORMS += drm
> > > > >  else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4),y)
> > > > >  MESA3D_PLATFORMS += drm
> > > > >  else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV),y)
> > > > > --
> > > > > 2.25.0
> > > > >
> > > > > _______________________________________________
> > > > > buildroot mailing list
> > > > > buildroot at busybox.net
> > > > > http://lists.busybox.net/mailman/listinfo/buildroot
> > > >
> > >
> >
>



More information about the buildroot mailing list