Re: TianoCore Community Design Meeting Minutes
1. LLVM/CLANG tool chain image size collected on OvmfIa32X64. The code is from https://github.com/lgao4/edk2/tree/Clang. The image is built on Windows OS. LLVM/CLANG is from LLVM8.0 release. CLANG8PE tool chain must enable 4K alignment as PE section alignment. So, its image size is bigger than others. But, the compressed size is smaller. The image size shows new CLANG8ELF tool chain to get the smaller image size than GCC5 and VS2015x86 tool chain. So, I prefer to add CLANG8ELF tool chain first. Then, I will continue to investigate CLANG8PE tool chain and how to generate the different format debug symbol.toggle quoted messageShow quoted text
From: email@example.com [mailto:firstname.lastname@example.org] On Behalf Of Ni, Ray
Sent: Friday, May 10, 2019 5:57 PM
To: 'email@example.com' <firstname.lastname@example.org>
Subject: [edk2-announce] TianoCore Community Design Meeting Minutes
In this meeting, Liming Gao showed the progress of new CLANG tool chain, Hao Wu raised a SDMMC host controller customization
requirement and potential solutions.
Details below. Please reply to this mail for any questions or comments.
1. LLVM/CLANG tool chain (BZ1603) - Liming Gao
- Existing tool chain: VS2015/2017 - Win, GCC5 - Linux, XCODE - Mac, CLANG38 - Linux
- New tool chain: CLANG(8) - Win/Linux/Mac
* LLD supports generating ELF/PE in all OSes.
* Status: met some troubles when directly generating PE.
- Tool chain name: CLANG8LLDELF or CLANG8ELF? -> CLANG8ELF.
The linker information can be documented in docs.
- Maybe a 3rd toolchain CLANG8 which generates default executable image format depending on OS?
- Always use ELF or PE as output instead of having two options otherwise may lose the benefit of using CLANG tool chain.
* Developers can choose which output to generate. they can always choose ELF or PE.
- Size impact?
* PE requires 4K section alignment, ELF requires 32-byte section alignment.
So PE when uncompressed needs more size.
* LTO (link optimization) is enabled.
* Will provide OVMF size data after the meeting.
- Status: CLANG8ELF builds of OVMF32/OVMF64/OVMF32PEI-64DXE can boot.
CLANG8PE builds of on OVMF32/32PEI-64DXE can boot, but that of OMVF64 cannot.
CLANG8PE fails to build NetworkPkg due to big local variable in CryptoPkg.
CLANGELF cannot generate HII resource section, similar issue exists in XCODE5. Felix can provide help on that.
- Hope CLANG static analyzer can be enabled in future.
* Some POC was done.
- If CLANG8 can generate DWARF/PDB debug symbols no matter the output executable format (ELF/PE) is, maybe it's worth
to investigate further in single output executable format direction.
2. Customization during SDMMD HC
- Parameters that need customization:
a. bus width
b. bus speed mode
d. clock freq
- SdMMcPciHc consumes SdMmcOverride(optional). Its interfaces Capability(), NotifyPhase() are not enough for the customizations.
* bus speed mode -> Capability() helps
* bus width -> Capability() doesn't help with 1 bit which cannot choose from 3 options.
* strength -> NoitfyPhase() doesn't help with absense of passthru.
* clock freq -> NO
- P1. NotifyPhase (GetOperatingParam) - preferred
- P2. New interface OperatingParameter()
- P3. New protocol SD_MMC_OPERATING_PARAMETER