UiApp
Fabrice DECROP LONGET
Hi,
This is my very first message on edk2, regarding UEFI software developpement. Please, feel free to transfer my message to any other location if needed 😊 I’m currently working on a BIOS setup menu to integrate in the boot flow of my HW platform. I’m working on a reference design of ARM, was able to compile and execute edk2 UEFI boot. Could someone answer to the following questions : 1/UiApp is started during the BDS phase. Because it has been configured so in the EFI variable EfiGlobalVariable:Boot0000 Am I correct ? 2/Let us assume that there are Boot0000 to Boot0006 options on my platform. How EDK2 fill the Boot#### options ? Is it pre-written in NVRAM, or is filled by EDK2 ? If filled vy EDK2, could you please point me where it is done in source code 3/Is there a way to change this value parameter outside EDK2 and outside OS ? 4/Is there a way to add a boot option (BootNext) outside EDK2 (saying outise Bott Manager Menu), outside UEFI shell, and outside OS ? Thanks in advance for your help, Regards Fabrice DECROP LONGET SiPearl - Ingénieur BIOS/UEFI Mobile: +33 6 44 12 09 85 https://www.sipearl.com
|
|
[Bug] While BootMenuApp build in UEFI payload, pcd in BootMenuApp will not be override.
Ning Feng
While BootMenuApp build in UEFI payload, PcdBootManagerMenuFile used to get Uiapp file guid used in BootMenuApp will same with Universal payload pkg, platform can not override it.
we should add PlatformBootManagerLib for BootManagerMenuApp.inf in Edk2\UefiPayloadPkg\UefiPayloadPkg.dsc,after that we can override UiappGuid by platform side.
|
|
Inclusive Language Update RFC
Teng, Lynn L
Hello all,
We have updated the Overview section of the Inclusive Language Guidelines to clarify two things. 1. Which version (via date) of the [[UEFI Inclusive Language Implementation Guidelines|https://uefi.org/sites/default/files/resources/UEFI_Inclusive%20Language.pdf]] we will be following so we do not have a moving target. 2. Defining "_non-legacy_" and "_legacy_". *** ## Overview To promote a more inclusive and open ecosystem, TianoCore is dedicated to removing archaic terminology that holds negative connotation. In collaboration with UEFI, we will be following the same [[Inclusive Language Implementation Guidelines|https://uefi.org/sites/default/files/resources/UEFI_Inclusive%20Language.pdf]] (as of Nov 1, 2021) as stated on [[UEFI.org|https://uefi.org/]]. In our plan below, we have steps for dealing with both "_non-legacy_" and "_legacy_". For these terms we define "_non-legacy_" as UEFI BIOS/specifications and beyond, where as "_legacy_" is BIOS/specifications that predates UEFI. There are references to legacy specifications not controlled by the TianoCore Community, and they may not follow these guidelines. In order to preserve compatibility for code that reads on legacy specifications, particularly where that specification is no longer under maintenance or development, language in this specification may appear out of sync with the guidelines. In these cases, the Community will work with other standards development bodies to eliminate such examples over time. In the meanwhile, by acknowledging and calling attention to this issue the hope is to promote discussion and action towards more complete use of Inclusive Language reflective of the diverse and innovative population of the technical community that works on standards. ## Plan 1. Announcement of intent, and all check-ins from here onwards will need to abide by Inclusive Language Implementation Guidelines 2. Scrubbing of all comments, documentation, and Wiki pages 3. Scrubbing of all non-legacy code 4. Working with UEFI to scrub legacy code ## Implementation Guidelines ### Master/Slave to not be used together nor alone. Alternatives: Master | Slave -------|------- Main | Secondary, Subordinate Primary | Secondary, Replica Host | Target Leader | Follower Orchestrator | Worker Initiator | Responder Or similar descriptive terminology ### Blacklist/Whitelist to not be used together nor alone. Alternatives: Blacklist | Whitelist ----------|---------- Blocklist | Passlist Denylist | Allowlist Refused, Denied | Permitted Or similar descriptive terminology *** Please provide any input you may have with regards to these changes by Nov 26th. Thank you, Lynn Teng
|
|
Can EDK2 be compiled on Apple M1?
hnyrarara@...
Hi,
I have a Mac using M1 chip, and try to use it build Edk2 project. I followed by this tutorial: https://github.com/tianocore/tianocore.github.io/wiki/xcode But the compilation encountered some unrecognized assembly statements(Please see in the attached file ) Could the project be compiled under M1?
|
|
Re: [edk2-devel] EDK2 doxygen documentation - adding docs for stable tags?
Rebecca Cran
How easy it is to push changes to https://www.tianocore.org/ ? I had thought that given how infrequently it's updated it's rather difficult, but I agree that's the ideal location for the Doxygen pages. If it's easier than I think, I have other changes I'd like to make such as updating https://www.tianocore.org/news/ which hasn't been changed since 2018.
toggle quoted messageShow quoted text
I agree it would be great if it could be a CI job somewhere: do we have any existing scheduled jobs in EDK2 already, or is it something that would need to be added? Given that it was Stephano who originally said years ago that Doxygen generation should be in the cloud, and how nothing has changed since I'm skeptical about it, so for now I'll plan on setting up a scheduled job on my Gitlab instance (https://gitlab.bsdio.com) instead and continue publishing the pages on my site. But I'd be happy to help work towards putting it on tianocore.org as long as we don't lose any functionality in the process. -- Rebecca Cran
On 11/9/21 7:27 PM, Michael D Kinney wrote:
Hi Rebecca,
|
|
EFI_IFR_DEFAULTSTORE
Konstantin Aladyshev
Hello!
I was investigating output from the simplest VFR file: ``` #define HIISIMPLEFORM_FORMSET_GUID {0xef2acc91, 0x7b50, 0x4ab9, {0xab, 0x67, 0x2b, 0x4, 0xf8, 0xbc, 0x13, 0x5e}} formset guid = HIISIMPLEFORM_FORMSET_GUID, title = STRING_TOKEN(HIISIMPLEFORM_FORMSET_TITLE), help = STRING_TOKEN(HIISIMPLEFORM_FORMSET_HELP), endformset; ``` This produces the following opcodes: ``` // // All Opcode Record List // 00000000: 0E A7 91 CC 2A EF 50 7B B9 4A AB 67 2B 04 F8 BC 13 5E 02 00 03 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E``` Basically it is 4 IFR elements (one data string per element): - EFI_IFR_FORM_SET - EFI_IFR_DEFAULTSTORE - EFI_IFR_DEFAULTSTORE - EFI_IFR_END My question is what is the purpose of the `EFI_IFR_DEFAULTSTORE`, and why are there two such elements in the output? Best regards, Konstantin Aladyshev
|
|
Re: [edk2-devel] EDK2 doxygen documentation - adding docs for stable tags?
Michael D Kinney
Hi Rebecca,
toggle quoted messageShow quoted text
Yes. They are useful. I would be better if it could be a CI job on either Azure pipelines or GitHub Actions could run the tool and publish the documents in TianoCore. Perhaps an on demand job against a specific tag. Mike
-----Original Message-----
|
|
EDK2 doxygen documentation - adding docs for stable tags?
Rebecca Cran
I've been hosting the Doxygen documentation for EDK2 at https://bsdio.com/edk2/docs for a few years now. I previously had versions for master, UDK2015, UDK2017, UDK2018 etc. but since migrating my web server dropped everything except master.
I was wondering if people are finding it useful, and if so whether they'd like me to generate documentation for each stable tag too? Personally, _I_ find the web-based version (as opposed to a locally-generated version) useful for the search feature -- being able to quickly find the documentation for a certain function. -- Rebecca Cran
|
|
Re: Adding another platform language
Konstantin Aladyshev
It looks like L"PlatformLangCodes" is blocked by a variable policy
enforced to this variable in the BdsDxe: https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Universal/BdsDxe/BdsEntry.c ``` /// /// The read-only variables defined in UEFI Spec. /// CHAR16 *mReadOnlyVariables[] = { EFI_PLATFORM_LANG_CODES_VARIABLE_NAME, // L"PlatformLangCodes" The language codes that the firmware supports EFI_LANG_CODES_VARIABLE_NAME, EFI_BOOT_OPTION_SUPPORT_VARIABLE_NAME, EFI_HW_ERR_REC_SUPPORT_VARIABLE_NAME, EFI_OS_INDICATIONS_SUPPORT_VARIABLE_NAME }; ... // Mark the read-only variables if the Variable Lock protocol exists // Status = gBS->LocateProtocol(&gEdkiiVariablePolicyProtocolGuid, NULL, (VOID**)&VariablePolicy); DEBUG((DEBUG_INFO, "[BdsDxe] Locate Variable Policy protocol - %r\n", Status)); if (!EFI_ERROR (Status)) { for (Index = 0; Index < ARRAY_SIZE (mReadOnlyVariables); Index++) { Status = RegisterBasicVariablePolicy( VariablePolicy, &gEfiGlobalVariableGuid, mReadOnlyVariables[Index], VARIABLE_POLICY_NO_MIN_SIZE, VARIABLE_POLICY_NO_MAX_SIZE, VARIABLE_POLICY_NO_MUST_ATTR, VARIABLE_POLICY_NO_CANT_ATTR, VARIABLE_POLICY_TYPE_LOCK_NOW ); ASSERT_EFI_ERROR(Status); } } ``` In the end of DXE variable policy is locked in the MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c : ``` VOID EFIAPI OnEndOfDxe ( EFI_EVENT Event, VOID *Context ) { EFI_STATUS Status; DEBUG ((EFI_D_INFO, "[Variable]END_OF_DXE is signaled\n")); ... Status = LockVariablePolicy (); ... } ``` So it looks like it is not possible to disable this policy at runtime and modify L"PlatformLangCodes". Therefore it is not possible to add another localization language at runtime. I think this limitation comes from the fact that UEFI specification marks this variable as read-only: ``` The PlatformLangCodes variable contains a null- terminated ASCII string representing the language codes that the firmware can support. At initialization time the firmware computes the supported languages and creates this data variable. Since the firmware creates this value on each initialization, its contents are not stored in nonvolatile memory. This value is considered read-only ``` But what is the reason for such a limitation? Wouldn't it be good if there would be a possibility to add new localization languages at runtime? Best regards, Konstantin Aladyshev On Sat, Oct 30, 2021 at 2:14 PM Konstantin Aladyshev <aladyshev22@...> wrote:
|
|
ISSUE ON LAPTOP SCREEN STUCK ON TIANOCORE LOGO
Wawa Roz <wafa.rozman98@...>
Greetings,
As stated in the subject above, I have encountered an issue with my laptop, which the screen stucks on Tianocore logo and I couldn’t log in the Windows. The Tianocore logo kept on popping out on the screen and looping even I have plugged in the charger. I have tried many solutions as shown in Youtube and Google, unluckily there’s no improvement until now. I have attached an image of the problem below. I have sent my laptop for repair but they are still trying to figure out the solution. I would like to ask for guidance/solution to remove the looping Tianocore logo since you are the owner of Tianocore. I would really appreciate your respond because I really need my laptop for assignment purposes as I am a college student. I’m looking forward to receiving feedback from you soon. Thank you. Regards, Wafa Rozman. (Attachment of image of the problem)
|
|
Re: [edk2-announce] Inclusive Language RFC
Teng, Lynn L
Hello Sean,
toggle quoted messageShow quoted text
You make a good point. I will remove both steps 3.1 and 4.1 from the plan for now so we can focus on the main proposal. We can open a discussion later on to determine how best to maintain inclusive language once the codebase has been updated. Here is the updated proposal: *** ## Overview To promote a more inclusive and open ecosystem, TianoCore is dedicated to removing archaic terminology that holds negative connotation. In collaboration with UEFI, we will be following the same [Inclusive Language Implementation Guidelines](https://uefi.org/sites/default/files/resources/UEFI_Inclusive%20Language.pdf) as stated on UEFI.org](https://uefi.org/). ## Plan 1. Announcement of intent, and all check-ins from here onwards will need to abide by Inclusive Language Implementation Guidelines 2. Scrubbing of all comments, documentation, and Wiki pages 3. Scrubbing of all non-legacy code 4. Working with UEFI to scrub legacy code ## Implementation Guidelines ### Master/Slave to not be used together nor alone. Alternatives: Master | Slave -------|------- Main | Secondary, Subordinate Primary | Secondary, Replica Host | Target Leader | Follower Orchestrator | Worker Initiator | Responder Or similar descriptive terminology ### Blacklist/Whitelist to not be used together nor alone. Alternatives: Blacklist | Whitelist ----------|---------- Blocklist | Passlist Denylist | Allowlist Refused, Denied | Permitted Or similar descriptive terminology
-----Original Message-----
From: announce@edk2.groups.io <announce@edk2.groups.io> On Behalf Of Sean Sent: Monday, November 1, 2021 1:16 PM To: Teng, Lynn L <lynn.l.teng@...>; announce@edk2.groups.io Subject: Re: [edk2-announce] Inclusive Language RFC Content looks great except "Plan 4.1." I don't see a commit hook as a solution that works for this community. I would think the plan would leverage pr-gate/ci to enforce this? Otherwise, it is yet another rule and place to cause code-review and contribution friction. Thanks Sean On 10/25/2021 11:57 AM, Teng, Lynn L wrote: Hello all,
|
|
Re: .Vfr and .vfr
Konstantin Aladyshev
Thanks for the answer.
toggle quoted messageShow quoted text
I understand that it is possible, but is it good style? I don't suggest dropping ".VFR" and ".Vfr" files parsing, but maybe all the EDKII form files should be renamed to one style ''.vfr" for consistency? Honestly I've always used 'find ./ -name "*.vfr" ' to grep for form files with no idea that they can be named differently. I wasn't even thinking about the fact that they can be named ".Vfr" or ".VFR". Of course I'm not a EDKII pro and I am investigating EDKII by myself, but it is just a thing to think about. Also for example it is also possible for the string files to have different extensions: "UNI", "Uni" and "uni". But the EDKII codebase has only "uni" files in itself. Which I think is a good consistency. And I simply suggest doing the same with form files. Best regards, Konstantin Aladyshev
On Mon, Nov 1, 2021 at 4:10 AM Feng, Bob C <bob.c.feng@...> wrote:
|
|
Re: .Vfr and .vfr
Bob Feng
Both .vfr and .Vfr are supported by edk2 build tool. You can find the build rule in the edk2\BaseTools\Conf\build_rule.template.
toggle quoted messageShow quoted text
Vfr, vfr, and VFR are all valid file ext and they apply the same build rule. [Visual-Form-Representation-File] <InputFile> ?.vfr ?.Vfr ?.VFR <ExtraDependency> $(MAKE_FILE) <OutputFile> $(DEBUG_DIR)(+)${s_dir}(+)${s_base}.c <Command> "$(VFRPP)" $(DEPS_FLAGS) $(VFRPP_FLAGS) $(INC) ${src} > $(OUTPUT_DIR)(+)${s_base}.i "$(VFR)" $(VFR_FLAGS) --string-db $(OUTPUT_DIR)(+)$(MODULE_NAME)StrDefs.hpk --output-directory ${d_path} $(OUTPUT_DIR)(+)${s_base}.i Thanks, Bob
-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of Konstantin Aladyshev Sent: Monday, November 1, 2021 2:28 AM To: discuss <discuss@edk2.groups.io> Subject: [edk2-discuss] .Vfr and .vfr Hello! I've noticed that edk2 uses two different styles for naming Visual Forms Representation files: "*.vfr" and "*.Vfr". Is there any logic why some files have "*.Vfr" and some have "*.vfr" extension? If there is no distinction, maybe it is better to use one style? $ find ./ -name "*.vfr" ./EmbeddedPkg/Drivers/ConsolePrefDxe/ConsolePrefHii.vfr ./EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformHii.vfr ./MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManager.vfr ./MdeModulePkg/Library/FileExplorerLib/FileExplorerVfr.vfr ./MdeModulePkg/Library/PlatformVarCleanupLib/PlatVarCleanup.vfr ./MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskHii.vfr ./MdeModulePkg/Universal/DriverSampleDxe/Inventory.vfr ./MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr ./MdeModulePkg/Universal/HiiResourcesSampleDxe/Sample.vfr ./MdeModulePkg/Universal/PlatformDriOverrideDxe/Vfr.vfr ./NetworkPkg/HttpBootDxe/HttpBootConfigVfr.vfr ./NetworkPkg/Ip4Dxe/Ip4Config2.vfr ./NetworkPkg/Ip6Dxe/Ip6Config.vfr ./NetworkPkg/IScsiDxe/IScsiConfigVfr.vfr ./NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigVfr.vfr ./NetworkPkg/VlanConfigDxe/VlanConfig.vfr ./NetworkPkg/WifiConnectionManagerDxe/WifiConnectionManagerDxe.vfr ./OvmfPkg/PlatformDxe/PlatformForms.vfr ./SecurityPkg/HddPassword/HddPassword.vfr ./SecurityPkg/Tcg/Opal/OpalPassword/OpalPasswordForm.vfr ./SecurityPkg/Tcg/Tcg2Config/Tcg2Config.vfr ./SecurityPkg/Tcg/TcgConfigDxe/TcgConfig.vfr ./SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfig.vfr ./UefiLessonsPkg/HIIForm/Form.vfr ./UefiLessonsPkg/HiiMenu/bak.vfr ./UefiLessonsPkg/HiiMenu/HiiForm1Vfr.vfr $ find ./ -name "*.Vfr" ./MdeModulePkg/Application/UiApp/FrontPageVfr.Vfr ./MdeModulePkg/Library/BootManagerUiLib/BootManagerVfr.Vfr ./MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerVfr.Vfr ./MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthConfigureVfr.Vfr ./MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerVfr.Vfr ./OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUiVfr.Vfr Best regards, Konstantin Aladyshev
|
|
.Vfr and .vfr
Konstantin Aladyshev
Hello!
I've noticed that edk2 uses two different styles for naming Visual Forms Representation files: "*.vfr" and "*.Vfr". Is there any logic why some files have "*.Vfr" and some have "*.vfr" extension? If there is no distinction, maybe it is better to use one style? $ find ./ -name "*.vfr" ./EmbeddedPkg/Drivers/ConsolePrefDxe/ConsolePrefHii.vfr ./EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformHii.vfr ./MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManager.vfr ./MdeModulePkg/Library/FileExplorerLib/FileExplorerVfr.vfr ./MdeModulePkg/Library/PlatformVarCleanupLib/PlatVarCleanup.vfr ./MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskHii.vfr ./MdeModulePkg/Universal/DriverSampleDxe/Inventory.vfr ./MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr ./MdeModulePkg/Universal/HiiResourcesSampleDxe/Sample.vfr ./MdeModulePkg/Universal/PlatformDriOverrideDxe/Vfr.vfr ./NetworkPkg/HttpBootDxe/HttpBootConfigVfr.vfr ./NetworkPkg/Ip4Dxe/Ip4Config2.vfr ./NetworkPkg/Ip6Dxe/Ip6Config.vfr ./NetworkPkg/IScsiDxe/IScsiConfigVfr.vfr ./NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigVfr.vfr ./NetworkPkg/VlanConfigDxe/VlanConfig.vfr ./NetworkPkg/WifiConnectionManagerDxe/WifiConnectionManagerDxe.vfr ./OvmfPkg/PlatformDxe/PlatformForms.vfr ./SecurityPkg/HddPassword/HddPassword.vfr ./SecurityPkg/Tcg/Opal/OpalPassword/OpalPasswordForm.vfr ./SecurityPkg/Tcg/Tcg2Config/Tcg2Config.vfr ./SecurityPkg/Tcg/TcgConfigDxe/TcgConfig.vfr ./SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfig.vfr ./UefiLessonsPkg/HIIForm/Form.vfr ./UefiLessonsPkg/HiiMenu/bak.vfr ./UefiLessonsPkg/HiiMenu/HiiForm1Vfr.vfr $ find ./ -name "*.Vfr" ./MdeModulePkg/Application/UiApp/FrontPageVfr.Vfr ./MdeModulePkg/Library/BootManagerUiLib/BootManagerVfr.Vfr ./MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerVfr.Vfr ./MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthConfigureVfr.Vfr ./MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerVfr.Vfr ./OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUiVfr.Vfr Best regards, Konstantin Aladyshev
|
|
Adding another platform language
Konstantin Aladyshev
Hello!
I was investigating the possibility of adding localization strings at runtime. Is it possible to create another translation language at runtime (UEFI Shell)? From my understanding OVMF gets the list of supported languages from the `PlatformLangCodes` variable. So I've decided to create an UEFI shell application that would add another language to this variable. But it looks like it is not possible to modify this variable. I'm getting `Write Protected` error. Here is my code: ``` EFI_STATUS EFIAPI UefiMain ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) { EFI_STATUS Status; CHAR8* LanguageString; Status = GetEfiGlobalVariable2(L"PlatformLangCodes", (VOID**)&LanguageString, NULL); if (EFI_ERROR(Status)) { Print(L"Error! Can't perform GetEfiGlobalVariable2, status=%r\n", Status); return Status; } Print(L"Before: %a\n", LanguageString); CHAR8* NewLanguageString = AllocatePool(AsciiStrLen(LanguageString) + AsciiStrSize(";ru-RU")); if (NewLanguageString == NULL) { Print(L"Error! Can't allocate size for new PlatformLangCodes variable\n"); FreePool(LanguageString); return EFI_OUT_OF_RESOURCES; } CopyMem(NewLanguageString, LanguageString, AsciiStrLen(LanguageString)); CopyMem(&NewLanguageString[AsciiStrLen(LanguageString)], ";ru-RU", AsciiStrSize(";ru-RU")); Print(L"After: %a\n", NewLanguageString); Status = gRT->SetVariable ( L"PlatformLangCodes", &gEfiGlobalVariableGuid, EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS, AsciiStrSize(NewLanguageString), NewLanguageString ); if (EFI_ERROR(Status)) { Print(L"Error! Can't set PlatformLangCodes variable, status=%r\n", Status); } FreePool(NewLanguageString); FreePool(LanguageString); return EFI_SUCCESS; } ``` And here is the output: ``` FS0:\> HIIAddLocalization.efi Before: en;fr;en-US;fr-FR After: en;fr;en-US;fr-FR;ru-RU Error! Can't set PlatformLangCodes variable, status=Write Protected ``` I'm not sure, but I guess the limitation comes from the `AutoUpdateLangVariable` function from the https://github.com/tianocore/edk2/blob/1bc232aae32e812341f10c9b938350cd93308eee/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c#L1375 Am I correct? Is it really impossible to add a new translation language at runtime? What is the reason for blocking `PlatformLangCodes` variable from modifying? Best regards, Konstantin Aladyshev
|
|
Ways to add a string package of different language at runtime
Konstantin Aladyshev
Hello!
I was investigating the possibility of adding localization strings at runtime. I've noticed that https://github.com/tianocore/edk2/blob/master/OvmfPkg/PlatformDxe/Platform.uni has strings only for the `en-US` language. So I've decided to use it as an example, and create an application that would add translations for some other supported system language (in this case `fr-FR`): ``` EFI_STATUS EFIAPI UefiMain ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) { EFI_STATUS Status; EFI_GUID PackageGuid = {0xD9DCC5DF, 0x4007, 0x435E, {0x90, 0x98, 0x89, 0x70, 0x93, 0x55, 0x04, 0xb2 }}; EFI_HII_HANDLE* Handle = HiiGetHiiHandles(&PackageGuid); CHAR16* FrenchStrings[] = { L"Configuration de la OVMF plateforme", L"Modifier divers paramètres de la plateforme OVMF", L"Paramètres OVMF", L"Résolution préférée au prochain démarrage", ... L"2560x1600", }; for (UINTN i=0; i<(sizeof(FrenchStrings)/sizeof(FrenchStrings[0])); i++) { EFI_STRING_ID StringId; if (i==0) { Status = gHiiString->NewString(gHiiString, *Handle, &StringId, "fr-FR", L"French", L"", NULL); Print(L"Added ID=%d, Status = %r\n", StringId, Status); } StringId = i+2; Status = gHiiString->SetString(gHiiString, *Handle, StringId, "fr-FR", FrenchStrings[i], NULL); Print(L"Added ID=%d, Status = %r\n", StringId, Status); } return EFI_SUCCESS; } ``` This works well, but I'm a little concerned about the approach that I've used to initially create the 'fr-FR' string package. Here I've used: ``` gHiiString->NewString(gHiiString, *Handle, &StringId, "fr-FR", L"French", L"", NULL); ``` Initially the `en-US` string package has 40 strings, so this code would create a 'fr-FR' string package with one string of ID=41, which has a "" value. Because of this hack in the end the 'en-US' package would have 40 strings and the 'fr-FR' package would have 41 strings. This is really not a problem of any kind, but maybe there is a library function to create a string package of a different language? Best regards, Konstantin Aladyshev
|
|
Re: [edk2-rfc] Inclusive Language RFC
Teng, Lynn L
Hello Marvin,
toggle quoted messageShow quoted text
Your concerns have been heard, but providing a list of every alternative for every scenario and how/when to use them would be unreasonable. We would expect developers to use their understanding of each term and the context of how it is being used, and to find an appropriate alternative. The lists provided are by no means exhaustive, and are not definitive in how they are combined. Similar to [the UEFI guidelines](https://uefi.org/sites/default/files/resources/UEFI_Inclusive%20Language.pdf), [the Linux community](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/coding-style.rst), and [IEEE](https://mentor.ieee.org/myproject/Public/mytools/draft/styleman.pdf), our intent is simply to inform the community that we are going to be moving towards using Inclusive Language and are providing the list of words that are no longer permitted and possible alternatives for those words. Best regards, Lynn Teng
-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of Marvin Häuser Sent: Wednesday, October 27, 2021 12:42 AM To: rfc@edk2.groups.io; Teng, Lynn L <lynn.l.teng@...>; devel@edk2.groups.io; discuss@edk2.groups.io Subject: Re: [edk2-discuss] [edk2-rfc] Inclusive Language RFC Hey, On 25.10.21 20:47, Teng, Lynn L wrote: Hello all,Some of these combinations sound very awkward because they are not strictly or strongly related language-wise. Examples: - In my opinion, a replica can very well be a main, it just cannot be an original. - "Responder" is very generic - "slave" conveys work, not just any sort of reaction - "Primary" and "secondary" are clearly related, "main" and "secondary" are not. ... The combination "leader"/"follower" could be interpreted politically if you just try hard enough, who knows what language revision proposals may look like in 10 years from now. Maybe drop it entirely. :) Or similar descriptive terminologyI think this should be made stricter to "refused"/"permitted" and "granted"/"denied" to stay consistent with common usage. My biggest issues with such proposals is they tell me which words to not use, but not which to use instead. Yes, there are plenty of alternatives given, but when do I use which? E.g. "host" / "target" already is a very common combination for debugging, but nobody would think of naming their main git branch "host". If you deprecate widely conventional terminology, in my opinion you should also provide clear and detailed guidelines for which sub-areas they are deprecated by which exact alternatives (e.g. "version control - main; debugging - host"). I don't think a terminology zoo where everybody picks their preference by gut feeling is in anyone's best interest. Thanks! Best regards, Marvin
|
|
回复: [edk2-discuss] About how to submit a new architecture called LoongArch
gaoliming
Chao:
Here is wiki https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Code-First-Process. Thanks Liming 发件人: discuss@edk2.groups.io <discuss@edk2.groups.io> 代表 kilaterlee@... 发送时间: 2021年10月26日 15:40 收件人: discuss@edk2.groups.io 主题: [edk2-discuss] About how to submit a new architecture called LoongArch Dear All: I want to submit a new architecture called LoongArch on EDK2 and the USWG recommands us do "code first" because the UEFI specifitcation will easily accpet our arch. What can we do? Do I submit the part 1 code for new architecture on the "staging" branch? Hop you reply. :) _____ Thanks, LI Chao
|
|
About how to submit a new architecture called LoongArch
kilaterlee@...
Dear All: I want to submit a new architecture called LoongArch on EDK2 and the USWG recommands us do "code first" because the UEFI specifitcation will easily accpet our arch. What can we do? Do I submit the part 1 code for new architecture on the "staging" branch? Hop you reply. :)
Thanks, LI Chao
|
|
Inclusive Language RFC
Teng, Lynn L
Hello all,
Please provide your feedback and comments to the Inclusive Language Plan below over the next two weeks (10/25-11/05). Thank you in advance for your contributions. *** ## Overview To promote a more inclusive and open ecosystem, TianoCore is dedicated to removing archaic terminology that holds negative connotation. In collaboration with UEFI, we will be following the same [Inclusive Language Implementation Guidelines](https://uefi.org/sites/default/files/resources/UEFI_Inclusive%20Language.pdf) as stated on [UEFI.org](https://uefi.org/). ## Plan 1. Announcement of intent, and all check-ins from here onwards will need to abide by Inclusive Language Implementation Guidelines 2. Scrubbing of all comments, documentation, and Wiki pages 3. Scrubbing all non-legacy code 3.1. Integrate open-source commit hook that will warn submitter of violations 4. Working with UEFI to scrub legacy code 4.1. Update commit hook to block submissions with violations ## Implementation Guidelines ### Master/Slave to not be used together nor alone. Alternatives: Master | Slave -------|------- Main | Secondary, Subordinate Primary | Secondary, Replica Host | Target Leader | Follower Orchestrator | Worker Initiator | Responder Or similar descriptive terminology ### Blacklist/Whitelist to not be used together nor alone. Alternatives: Blacklist | Whitelist ----------|---------- Blocklist | Passlist Denylist | Allowlist Refused, Denied | Permitted Or similar descriptive terminology
|
|