Re: [PATCH v2] powerpc: Use shared font data

From: Randy Dunlap
Date: Tue Aug 08 2023 - 16:44:48 EST




On 8/8/23 10:28, Dr. David Alan Gilbert wrote:
> * Randy Dunlap (rdunlap@xxxxxxxxxxxxx) wrote:
>> Hi--
>>
>> On 8/6/23 18:07, linux@xxxxxxxxxxx wrote:
>>> From: "Dr. David Alan Gilbert" <linux@xxxxxxxxxxx>
>>>
>>> PowerPC has a 'btext' font used for the console which is almost identical
>>> to the shared font_sun8x16, so use it rather than duplicating the data.
>>>
>>> They were actually identical until about a decade ago when
>>> commit bcfbeecea11c ("drivers: console: font_: Change a glyph from
>>> "broken bar" to "vertical line"")
>>>
>>> which changed the | in the shared font to be a solid
>>> bar rather than a broken bar. That's the only difference.
>>>
>>> This was originally spotted by PMD which noticed that sparc does
>>> the same thing with the same data, and they also share a bunch
>>> of functions to manipulate the data. I've previously posted a near
>>> identical patch for sparc.
>>>
>>> One difference I notice in PowerPC is that there are a bunch of compile
>>> options for the .c files for the early code to avoid a bunch of security
>>> compilation features; it's not clear to me if this is a problem for
>>> this font data.
>>>
>>> Tested very lightly with a boot without FS in qemu.
>>>
>>> v2
>>> Added 'select FONT_SUPPORT' (to stop modconfig causing the font to be
>>> linked into a module rather than the main kernel)
>>> Added 'select FONTS' to satisfy requirements in lib/fonts
>>>
>>> Signed-off-by: Dr. David Alan Gilbert <linux@xxxxxxxxxxx>
>>> ---
>>> arch/powerpc/Kconfig.debug | 3 +
>>> arch/powerpc/kernel/btext.c | 360 +-----------------------------------
>>> 2 files changed, 9 insertions(+), 354 deletions(-)
>>>
>>> diff --git a/arch/powerpc/Kconfig.debug b/arch/powerpc/Kconfig.debug
>>> index 2a54fadbeaf51..521c4baf30e88 100644
>>> --- a/arch/powerpc/Kconfig.debug
>>> +++ b/arch/powerpc/Kconfig.debug
>>> @@ -147,6 +147,9 @@ config BDI_SWITCH
>>> config BOOTX_TEXT
>>> bool "Support for early boot text console (BootX or OpenFirmware only)"
>>> depends on PPC_BOOK3S
>>> + select FONT_SUN8x16
>>> + select FONT_SUPPORT
>>> + select FONTS
>>> help
>>> Say Y here to see progress messages from the boot firmware in text
>>> mode. Requires either BootX or Open Firmware.
>>
>> kconfig tells me:
>>
>> WARNING: unmet direct dependencies detected for FONTS
>> Depends on [n]: FONT_SUPPORT [=y] && (FRAMEBUFFER_CONSOLE [=n] || STI_CONSOLE [=n])
>> Selected by [y]:
>> - BOOTX_TEXT [=y] && PPC_BOOK3S [=y]
>>
>> WARNING: unmet direct dependencies detected for FONT_SUN8x16
>> Depends on [n]: FONT_SUPPORT [=y] && FRAMEBUFFER_CONSOLE [=n] && (!SPARC && FONTS [=y] || SPARC)
>> Selected by [y]:
>> - BOOTX_TEXT [=y] && PPC_BOOK3S [=y]
>>
>> because FONTS depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE and neither of those is set.
>
> I'm not getting the warnings in the v2, with a few configs; what command
> are using?
>

My 'make' build target is either pp32_randconfig or ppc64_randconfig.
I see kconfig warnings in > 50% of the randconfigs. (small sample size,
around 20)


> I'm tempted to change the FONT_SUN8x16 dependency line to have
> SPARC||BOOTX_TEXT or SPARC||POWERPC and drop the 'select FONTS' I
> added.
>
> Dave
>
>>
>> --
>> ~Randy

--
~Randy