Re: [PATCH v2 3/3] drm/panfrost: Add initial panfrost driver

From: Robin Murphy
Date: Tue Apr 02 2019 - 07:23:33 EST


On 02/04/2019 01:33, Alyssa Rosenzweig wrote:
the userspace definitely doesn't support T624

This is true, yes. Shouldn't be too hard to backport; if there's still
interest in Midgard 1st/2nd gen, I suppose I can grab hardware and sort
it out...

I'm quite likely the only person trying this on an Arm Juno board, and even then it's really only for giggles because I can :) I guess there might be a fair few Odroid-XU3/XU4 (T628) users interested, though.

You probably want a dma_set_mask_and_coherent() call for your 'real' output
address size somewhere - the default 32-bit mask works out OK for RK3399,
but on systems with RAM above 4GB io-pgtable will get very unhappy about DMA
bounce-buffering.

Out of curiosity, are there Mali systems with >4GB RAM? That sounds
awesome :)

Now that the "early-access Armv8 silicon" angle has well and truly expired, Juno is essentially a prototyping platform where the SoC just serves to (slowly) drive interesting things in FPGA cards, so although it may have 8GB of RAM, it's not all that exciting. There is one somewhat more realistic board I'm aware of, namely HiKey 970 with a G72 and 6GB.

Any chance of resurrecting the generic "arm,mali-midgard" compatible? :P

...Would that require editing everybody's DT file?

If they already have one of the strings from the current upstream binding, no - I only mean to suggest adding it as an additional last-level fallback. That would aid compatibility with downstream DTs, for example RK3288 which currently has zero overlap:

upstream: "rockchip,rk3288-mali", "arm,mali-t760";

downstream: "arm,malit764", "arm,malit76x", "arm,malit7xx", "arm,mali-midgard";

Similarly, it might be reasonable for panfrost_{gpu,mmu,job}_init() to retry platform_get_irq_byname() with uppercase interrupt names if the expected ones aren't found - obviously the upstream binding comes first and foremost, but I don't see any harm in quietly supporting bits of the downstream binding if it makes users' lives easier when switching between mainline and vendor kernels.

Cheers,
Robin.