[PATCH 1/2] imx: container: Eliminate IMX_PQC_SUPPORT
Marek Vasut
marek.vasut at mailbox.org
Tue Dec 2 21:52:57 CET 2025
On 11/28/25 5:20 PM, Ye Li wrote:
>> Adding another Kconfig symbol and ifdeffery seems easy, but it also
>> had additional implications -- more code paths because of the
>> ifdeffery, more Kconfig symbols which the user has to understand, and
>> another machine config has to be built in the CI to cover this
>> configuration.
>>
>> The auto-detection avoids all these problems.
>>
> I agree to remove IMX95_A0, but I don't suggest removing
> IMX_PQC_SUPPORT. For each SOC, supporting PQC container or not is
> definite. Adding runtime detect is just for iMX95. But iMX95 A1 is EOL,
> everyone must use B0. And A1 codes should be removed.
I don't really see why the MX95 A0/A1 should be removed, it doesn't seem
to take any maintenance effort or extra overhead. Maybe lets revisit
that A0/A1 removal part at some later date.
> You said you have A1 board, could you share the board name?
The one I can share is the Toradex Verdin MX95 (the old one, I had it
for a while).
>>>>> Eliminate IMX_PQC_SUPPORT config is not a good way. When adding new
>>>>> SOC, developer has to update the container_hdr_alignment, then it
>>>>> will be a long list in this function. Actually only iMX95 is the
>>>>> exception. If you insist keeping A0, I prefer change like below and
>>>>> retain IMX_PQC_SUPPORT.
>>>>>
>>>>> #if IS_ENABLED(CONFIG_IMX95)
>>>>> static inline u32 container_hdr_alignment(void)
>>>>> {
>>>>> if (is_imx95() && (soc_rev() >= CHIP_REV_2_0))
>>>>> return 0x4000;
>>>>> else
>>>>> return 0x400;
>>>>> }
>>>>> #else
>>>>> static inline u32 container_hdr_alignment(void)
>>>>> {
>>>>> #if IS_ENABLED(CONFIG_IMX_PQC_SUPPORT)
>>>>> return 0x4000;
>>>>> #else
>>>>> return 0x400;
>>>>> #endif
>>>>> }
>>>>> #endif
>>>> This adds even more ifdeffery and makes the code even worse, so no.
>>>>
>>>> But if you are sure that every new SoC will have the PQC alignment,
>>>> then the condition in this patch can be inverted this way:
>>>>
>>>> static inline int container_hdr_alignment(void)
>>>> {
>>>> if (is_imx95() && (soc_rev() < CHIP_REV_2_0))
>>>> return 0x400; /* PQC on i.MX95 A1 and older */
>>>>
>>>> return 0x4000; /* PQC is the default */
>>>> }
>>>>
>>>> Are you sure every new SoC (at least in the foreseeable future) will
>>>> be like that ?
>>> No, it can't be guaranteed. And we have legacy SOC like
>>> 8QM/8QXP/8ULP/93/91 using this container without PQC support, above
>>> new change will break them. Please consider keeping the
>>> IMX_PQC_SUPPORT, so every soc can select it to work.
>> See above why adding more and more Kconfig options is not a good
>> solution.
>>
>> I believe the original implementation in this patch does not break the
>> legacy SoCs ?
> Your original implementation does not break legacy SoCs. I mean the new
> change break them.
OK
>> If you are concerned about growing list of SoCs in this function, then
>> this function can list the five legacy SoCs + imx95a0 SoC with non-PQC
>> alignment and by default return PQC alignment ?
>
> I can't ensure no new SoC with legacy container. From roadmap, there is
> still some iMX93 derivations planned. This way is just better than
> original implementation in this patch.
Good, let's keep the original change.
More information about the U-Boot
mailing list