mirror of https://github.com/acidanthera/audk.git
88228db38e
The AmlToHex script and Posix/WindowsLike wrappers convert an AML file to a .hex file, containing a C array storing AML bytecode. This ".hex" file can then be included in a C file, allowing to access the AML bytecode from this C file. The EDK2 build system doesn't allow to a depict dependency orders between files of different languages. For instance, in a module containing a ".c" file and a ".asl", the ".c" file may or may not be built prior to the ".asl" file. This prevents any inclusion of a generated ".hex" in a ".c" file since this later ".hex" file may or may not have been created yet. This patch renames the script as AmlToC. It is posted as a separate patch to prevent git from seeing the renaming as a deletion plus addition of a new file. The ending line of the posix-like bin-wrapper script has also been corrected. This is a first step toward generating a C file containing the AML bytecode from an ASL file. This C file will then be handled by the EDK2 build system to generate an object file. Thus, no file inclusion will be required anymore. The C file requiring the AML bytecode as a C array, and the ASL file, will be compiled independently. The C array must be defined as an external symbol. The linker is resolving the reference to the C array symbol. To summarize, the flow goes as: -1. ASL file is compiled to AML; -2. AML file is copied to a ".amli" intermediate file; -3. EDK2 build system applies the rule relevant to ".amli" files. This is, calling the "AmlToC" script, generating a C file from the ".amli" file; -4. EDK2 build system applies the rule relevant to C files. This is creating an object file. -5. EDK2 build system links the object file containing the AML bytecode with the object file requiring it. Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com> Suggested-by: Tomas Pilar <Tomas.Pilar@arm.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com> |
||
---|---|---|
.. | ||
AmlToC | ||
BPDG | ||
Brotli | ||
BrotliCompress | ||
DevicePath | ||
Ecc | ||
EfiRom | ||
GenCrc32 | ||
GenDepex | ||
GenFds | ||
GenFfs | ||
GenFv | ||
GenFw | ||
GenPatchPcdTable | ||
GenSec | ||
GenerateCapsule | ||
LzmaCompress | ||
LzmaF86Compress | ||
PatchPcdValue | ||
Pkcs7Sign | ||
Rsa2048Sha256GenerateKeys | ||
Rsa2048Sha256Sign | ||
Split | ||
TargetTool | ||
TianoCompress | ||
Trim | ||
UPT | ||
VfrCompile | ||
VolInfo | ||
build | ||
posix_path_env.yaml |