[Buildroot] [PATCH 4/7] package/mali-bifrost-driver: new package

Giulio Benetti giulio.benetti at benettiengineering.com
Thu Dec 30 16:45:50 UTC 2021


On 30/12/21 17:08, Thomas Petazzoni wrote:
> Hello,
> 
> On Thu, 30 Dec 2021 16:28:57 +0100
> Giulio Benetti <giulio.benetti at benettiengineering.com> wrote:
> 
>> I had no chance to test it on real hardware for lack of time :-/ so I
>> don't know if it works, and it should not be expected to work. I've
>> compared r8 version of midgard against bifrost and they are pretty
>> different.
> 
> I'm pretty sure it works, since I've seen myself the patches from
> Miquèl allowing to run Qt5/OpenGL on a Rockchip PX30 platform. I'm
> questioning the terminology/choice of naming.

Ok. Probably Midgard and Bifrost have lot in common on driver side and 
that's why it works. PX30 has a G31-2EE which is a Bifrost:
https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g31-gpu

So ok, it works but it should be changed. What I can do is providing the 
bifrost driver with the patches for Midgard ported against Bifrost and 
ask the PR. But I don't have time to test and I don't have a working 
PX30 BR defconfig for PX30-Mini-Evb or Engicam PX30 board that I wanted 
to provide.

>> I'm working on this patchset in spare time[1] with the goal to create a
>> single mali-driver package to deal with Utgard, Midgard and Bifrost.
>> I've already requested to change repository name from
>> mali-bifrost-driver to mali-driver and it's been done plus merging
>> patches to allow building with up to Linux 5.15[2].
> 
> Ah, we did this rename?

Yes:
https://github.com/bootlin/mali-driver

> 
>> Thomas, do you want me to send the v2 patchset in[1] to Buildroot
>> mailing list? It's not complete at all, but it's some step forward.
> 
> I'm a bit lost with all these renames. We already have
> sunxi-mali-mainline-driver in the tree, which points to
> https://github.com/mripard/sunxi-mali. I'm not sure which kernel driver
> handles which GPU variant.

mripard/sunxi-mali[1] only deals with Mali Utgard for Sunxi.
The problem is that the mripard/sunxi-mali has a specific platform 
implementation for sunxi:
https://github.com/mripard/sunxi-mali/blob/master/patches/0005-mali-Add-sunxi-platform.patch

While bootlin/mali-driver[2] doesn't have any platform-specific 
implementation. As you've pointed you've tested PX30(Bifrost G31) and it 
works, so that means that G31 doesn't need any specific 
platform-specific implementations. BUT there is 
CONFIG_MALI_PLATFORM_NAME that can be used to point to platform-specific 
implementation(i.e. sunxi):
https://github.com/bootlin/mali-driver/blob/master/r8p0/drivers/gpu/arm/midgard/Kconfig#L72-L79

So what we can do is to add that Sunxi implementation to r6p2 and r8p1 
while adding them to bootlin/mali-driver[2] and remove the actual 
sunxi-mali-mainline-driver BR package.

That way we will end up(for the moment) with these packages:
A1) mali-driver => with all Utgard(Sunxi platform included), Midgard, 
Bifrost versions.
A2) sunxi-mali-mainline => that should change into sunxi-mali-utgard, 
check pending patches[3] for this. And as a second step I would call it 
mali-blobs-sunxi and try to have access from Allwinner to other Blobs 
with license(because I have access to G31 Sunxi blobs but I can't 
publish them) collecting there all Sunxi mali blobs(Utgard, Midgard, 
Bifrost)
A3) mali-blobs-rockchip => with all Rockchip blobs(Utgard, Midgard, 
Bifrost) that we can easily take from rockchip-linux/libmali

This way it becomes easy to add other SoCs drivers and blobs. Steps 
would be:
B1) add platform specific implementation to bootlin/mali-driver(if any)
B2) waiting for PR to be merged
B3) add Buildroot package for the blobs with dependencies on mali-driver 
like mali-blobs-newSoc

Said this, the problem is time for me.

Hope everything is clear.

[1]: https://github.com/mripard/sunxi-mali
[2]: https://github.com/bootlin/mali-driver
[3]: https://patchwork.ozlabs.org/project/buildroot/list/?series=270656

Best regards
-- 
Giulio Benetti
Benetti Engineering sas



More information about the buildroot mailing list