[U-Boot] [PATCH 11/15] efi_loader: capitalization table

Alexander Graf agraf at suse.de
Thu Aug 30 06:41:38 UTC 2018



On 30.08.18 04:51, Simon Glass wrote:
> Hi,
> 
> On 27 August 2018 at 02:37, Alexander Graf <agraf at suse.de> wrote:
>>
>>
>>> Am 27.08.2018 um 10:30 schrieb Mike FABIAN <maiku.fabian at gmail.com>:
>>>
>>> Alexander Graf <agraf at suse.de> さんは書きました:
>>>
>>>>> On 26.08.18 21:00, Heinrich Schuchardt wrote:
>>>>>> On 08/26/2018 08:22 PM, Alexander Graf wrote:
>>>>>>
>>>>>>
>>>>>>> On 11.08.18 17:28, Heinrich Schuchardt wrote:
>>>>>>> This patch provides a define to initialize a table that maps lower to
>>>>>>> capital letters for Unicode code point 0x0000 - 0xffff.
>>>>>>>
>>>>>>> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>>>>>>> ---
>>>>>>> MAINTAINERS              |    1 +
>>>>>>> include/capitalization.h | 1909 ++++++++++++++++++++++++++++++++++++++
>>>>>>> 2 files changed, 1910 insertions(+)
>>>>>>> create mode 100644 include/capitalization.h
>>>>>>>
>>>>>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>>>>>> index a324139471..0a543309f2 100644
>>>>>>> --- a/MAINTAINERS
>>>>>>> +++ b/MAINTAINERS
>>>>>>> @@ -368,6 +368,7 @@ F:    doc/DocBook/efi.tmpl
>>>>>>> F:    doc/README.uefi
>>>>>>> F:    doc/README.iscsi
>>>>>>> F:    Documentation/efi.rst
>>>>>>> +F:    include/capitalization.h
>>>>>>> F:    include/efi*
>>>>>>> F:    include/pe.h
>>>>>>> F:    include/asm-generic/pe.h
>>>>>>> diff --git a/include/capitalization.h b/include/capitalization.h
>>>>>>> new file mode 100644
>>>>>>> index 0000000000..50d5108f98
>>>>>>> --- /dev/null
>>>>>>> +++ b/include/capitalization.h
>>>>>>> @@ -0,0 +1,1909 @@
>>>>>>> +/* SPDX-License-Identifier: Unicode-DFS-2016 */
>>>>>>> +/*
>>>>>>> + * Correspondence table for small and capital Unicode letters in the range of
>>>>>>> + * 0x0000 - 0xffff based on http://www.unicode.org/Public/UCA/11.0.0/allkeys.txt
>>>>>>> + */
>>>>>>> +
>>>>>>> +struct capitalization_table {
>>>>>>> +    u16 upper;
>>>>>>> +    u16 lower;
>>>>>>> +};
>>>>>>> +
>>>>>>> +#define UNICODE_CAPITALIZATION_TABLE { \
>>>>>>
>>>>>> Ugh, that is a *lot* of data. How much does the binary size grow with
>>>>>> the table compiled in?
>>>
>>> That data is also in glibc. I don’t know whether you use glibc though
>>> ...
>>
>> U-Boot is a standalone OS so to say, we do not use glibc (except for sandbox, but that's a special target).
>>
>> The main problem is that some times people cram U-Boot into very tight spaces, like small flash chips or even on-chip RAM. So we have to be very cautious on space requirements.
> 
> Indeed.
> 
> Most archs use a private glib so do not build with one that supports this table.
> 
> Wouldn't it be better to put this in a C file as a const struct?
> 
> If it is big that's OK, we just need to add a CONFIG option for it. If
> we already have EFI enabled, perhaps it doesn't matter, since it is
> pretty big.


EFI support when it started was about 10kb. I assume it grew by now, so
maybe we're at 15kb by now. Adding another 4kb for the upper/lower
translation is *massive* by comparison.

Edk2 only supports upper/lower conversion for English anyway, so we're
not worse off if we don't support all the fancy unicode conversions.


Alex


More information about the U-Boot mailing list