[PATCH] drm/imagination: Kconfig: add 'PAGE_SIZE=4K' dependency
yaolu
yaolu at kylinos.cn
Thu Feb 29 02:12:00 UTC 2024
在 2024/2/28 18:47, Matt Coster 写道:
> Hi, thanks for the patch!
>
> On 28/02/2024 01:23, Lu Yao wrote:
>> When 'PAGE_SIZE=64K',the following compilation error occurs:
>> "
>> ../drivers/gpu/drm/imagination/pvr_fw_mips.c: In function
>> ‘pvr_mips_fw_process’:
>> ../drivers/gpu/drm/imagination/pvr_fw_mips.c:140:60: error: array
>> subscript 0 is outside the bounds of an interior zero-length array
>> ‘dma_addr_t[0]’ {aka ‘long long unsigned int[]’}
>> [-Werror=zero-length-bounds]
>> 140 | boot_data->pt_phys_addr[page_nr] =
>> mips_data->pt_dma_addr[src_page_nr] +
>> ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
>> In file included from ../drivers/gpu/drm/imagination/pvr_fw_mips.c:6:
>> ../drivers/gpu/drm/imagination/pvr_fw_mips.h:30:13: note: while
>> referencing ‘pt_dma_addr’
>> 30 | dma_addr_t pt_dma_addr[PVR_MIPS_PT_PAGE_COUNT];
>> "
>>
>> This is because 'PVR_MIPS_PT_PAGE_COUNT' is defined as
>> '(ROGUE_MIPSFW_MAX_NUM_PAGETABLE_PAGES * ROGUE_MIPSFW_PAGE_SIZE_4K) \
>>>> PAGE_SHIFT', and under the above conditions, 'PAGE_SHIFT' is '16',
>> 'ROGUE_MIPSFW_MAX_NUM_PAGETABLE_PAGES' is '4','ROGUE_MIPSFW_PAGE_SIZE_4K'
>> is '4096',so 'PVR_MIPS_PT_PAGE_COUNT' is '0' causing the member
>> 'pt_dma_addr' to be incorrectly defined.
> The whole MIPS page table system is supposed to be host page-size
> agnostic. In practice, we don’t regularly test on non-4K platforms so
> this may well be broken in subtle or not-so-subtle (as in this instance)
> ways. There has been at least some testing with 64K host pages – the
> configs from TI for the AM62-SK dev boards have that as the default (or
> at least they did when we started working with them).
>
> I’m loathed to accept this patch without at least investigating how deep
> the problems go; the true fix here should be to fix the problems causing
> this build error rather than just gating off non-4K hosts.
>
> I’ll have a dig this afternoon to see what I can find. Did you try
> anything to fix this yourself? It would be nice to not duplicate effort
> on this if you have.
No, I haven't tried, and I'm currently disabling the DRM_POWERVR driver. Actually,
I don't have any IMG graphics cards. This error was found when compiling the kernel
randomly.Looks like it's up to you to sort this out reasonably.;)
Regards,
Lu
> Cheers,
> Matt
>
>> Signed-off-by: Lu Yao<yaolu at kylinos.cn>
>> ---
>> drivers/gpu/drm/imagination/Kconfig | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/imagination/Kconfig b/drivers/gpu/drm/imagination/Kconfig
>> index 3bfa2ac212dc..e585922f634d 100644
>> --- a/drivers/gpu/drm/imagination/Kconfig
>> +++ b/drivers/gpu/drm/imagination/Kconfig
>> @@ -3,7 +3,7 @@
>>
>> config DRM_POWERVR
>> tristate "Imagination Technologies PowerVR (Series 6 and later) & IMG Graphics"
>> - depends on ARM64
>> + depends on (ARM64 && ARM64_PAGE_SHIFT=12)
>> depends on DRM
>> depends on PM
>> select DRM_EXEC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20240229/48ff757a/attachment.htm>
More information about the dri-devel
mailing list