From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf1-f68.google.com (mail-lf1-f68.google.com [209.85.167.68]) by mx.groups.io with SMTP id smtpd.web11.3137.1595900308127541447 for ; Mon, 27 Jul 2020 18:38:28 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=AKs2SXxD; spf=pass (domain: linaro.org, ip: 209.85.167.68, mailfrom: masahisa.kojima@linaro.org) Received: by mail-lf1-f68.google.com with SMTP id h8so10065350lfp.9 for ; Mon, 27 Jul 2020 18:38:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=RqyHVYU5+UdnVKge7Jbdn6SlUL+yf41mmUQc8cIgy4Y=; b=AKs2SXxD15I+f7i0BFeZ0FIpHesX26I5E/HYK2uOYcQcbHjiAubenP0MNzSag9Pt0P yRRblaMQUUHYB7ae75pIeejwRHWLxRWFvEqAsC4jSXMa7gBq1atfbbwufqgMMygHzfO+ Rd0VlhNuC29gS38VuxUtBnWMsD5Zlip/tHOLtFtPsJuVJtgSwPDWn94rAuiIz8qeCSV2 H4X4TGWPV5yaHxobaeqGAxlj3z8xRmi4RoHV/B9GmZbffbOnbidR0EGYygO6dcpKnJ6L zxtNNwS9rvxE4tiEsKlSyMCc62Nbt5mbs8WXwSUljnOxkzufud2QNydlHBOC/paLmc2i edjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=RqyHVYU5+UdnVKge7Jbdn6SlUL+yf41mmUQc8cIgy4Y=; b=ku0NvYTJ0gHHFTR7dwD0Zms3zV8WZrApTT6bwdRPHxYingSNq7DfxRPfZCNZPj7YLM /Wy3uH1cFWPMfWw/9SPWA+f1taRqK0zcUIeyk9tNi4YUgh9YWN7vHL8FPZQrpg26k8g1 Embr4RZkrL23dnbIWFxdzmlYWYzkIPogjJBy4sPowq0kTkQzZ5IoSk5kNgapnHLgup/C WaHVinFZyQFRglTNyXb9wSN8MGR0FsprFZLQCsjx6q1gBEyZS9UM9WGTjumqjYQLH3UG dxnA9VbU+mosswcXCI1Svp5QbB9lq/V13VFfdzfTEVrkc4YSRZp9IbK5pCRyJYgTB6Pc YfhA== X-Gm-Message-State: AOAM533fnHoIWnWCpT+pD+tPbEiUvFXtGYkpFPla4G/dK25uEaxKWdcJ frTCYoumtTPSpnVhgj3SQNsKkhvI+O7YsWgeIiT7iA== X-Google-Smtp-Source: ABdhPJwhJF0pLt8iRzk+dhXVppbpql+nOWlcEiPDCNvVGkqBlYp1/vaRX6lLy8XOKZ7S3VuemP4uSlsQH6BbO/oixk4= X-Received: by 2002:a19:c206:: with SMTP id l6mr13000891lfc.152.1595900306001; Mon, 27 Jul 2020 18:38:26 -0700 (PDT) MIME-Version: 1.0 References: <20200701140604.5292-1-pierre.gondois@arm.com> <20200701140604.5292-5-pierre.gondois@arm.com> <20200727135825.GZ1337@vanye> In-Reply-To: From: "Masahisa Kojima" Date: Tue, 28 Jul 2020 10:38:13 +0900 Message-ID: Subject: Re: [edk2-devel] [PATCH v5 4/5] BaseTools: Compile AML bytecode arrays into .obj file To: Leif Lindholm Cc: "devel@edk2.groups.io" , "Gao, Liming" , "pierre.gondois@arm.com" , Sami Mujawar , Tomas Pilar , "Feng, Bob C" , Ard Biesheuvel Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Leif, > > Masahisa - since Ard is still on holiday, could you create a patch and > > send out for me to review? Either one of the files needs to be > > renamed, or we need to move the .asl files (Emmc.asl and Optee.asl) > > into a subdirectory. Probably I'm missing something, but my build for Developerbox platform is successful, with the latest edk2/edk2-platforms as of today. My build option is: --- export TARGET=3DPlatform/Socionext/DeveloperBox/DeveloperBox.dsc export PROFILE=3DDEBUG export ARCH=3DAARCH64 export TOOL_CHAIN_TAG=3DGCC5 build -n $NUM_CPUS -a $ARCH -b $PROFILE -t $TOOL_CHAIN_TAG -p $TARGET -D SECURE_BOOT_ENABLE=3DTRUE -D X64EMU_ENABLE=3DTRUE -D TPM2_ENABLE=3DTRUE --- GCC version is "gcc-linaro-6.4.1-2017.11-x86_64_aarch64-linux-gnu/bin/aarc= h64-linux-gnu-". Some Output directory information: ~/src/uefi/Build/DeveloperBox$ find .|grep -i emmc ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Platf= ormDxe/OUTPUT/Emmc.iii ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Platf= ormDxe/OUTPUT/Emmc.obj.deps ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Platf= ormDxe/OUTPUT/Emmc.iiii ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Platf= ormDxe/OUTPUT/Emmc.obj ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Platf= ormDxe/OUTPUT/Emmc.aml.deps ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Platf= ormDxe/OUTPUT/Emmc.aml ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Platf= ormDxe/OUTPUT/Emmc.i Regards, Masahisa On Tue, 28 Jul 2020 at 09:40, Gao, Liming wrote: > > Pierre: > Thanks for your investigation. For now, the module will rename source = file to avoid the file conflict. Can you submit one BZ for BaseTools to enh= ance the logic for the autogen source file? This needs more discussion. > > Yes. I agree to place the generated source file into $(DEBUG_DIR). You= can make another patch for this change. > > Thanks > Liming > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of PierreGon= dois > Sent: 2020=E5=B9=B47=E6=9C=8828=E6=97=A5 1:10 > To: devel@edk2.groups.io; Gao, Liming ; Leif Lindh= olm ; Masahisa Kojima > Cc: Sami Mujawar ; Tomas Pilar ; Feng, Bob C ; Ard Biesheuvel > Subject: Re: [edk2-devel] [PATCH v5 4/5] BaseTools: Compile AML bytecode= arrays into .obj file > > Hello, > > Liming: > I didn't find anything preventing from having a .vfr and .c file with th= e same name in the same scope. > > Everybody: > The .c files generated (from either .vfr or .asl) are generated in the B= uild/..../OUTPUT/ directory, with their original subdirectory stripped. In = the example below, the .c, .vfr and .asl files have been placed in subdirec= tories in edk2/edk2-platforms. The recipes that have been generated are: > $(OUTPUT_DIR)/Emmc.obj : $(OUTPUT_DIR)/AslDir/Emmc.c (from Emmc.asl) $(O= UTPUT_DIR)/Ip4Config2.obj : $(DEBUG_DIR)/VfrDir/Ip4Config2.c (from Ip4Confi= g2.vfr) $(OUTPUT_DIR)/CDir/Emmc.obj : $(WORKSPACE)/edk2-platforms/Silicon/S= ocionext/SynQuacer/Drivers/PlatformDxe/CDir/Emmc.c (from Emmc.c) > > The only subdirectory that remains is the one from the .c files. Indeed,= the build system might detects subdirectories from the .inf file location.= As the .c file is generated in the OUTPUT directory where there is no .inf= file, it gets stripped. > This means that if a subdirectory is created, it is for the .c file, but= I don't think we should modify this. > > Adding a pre/postfix to the generated .c filename seems a better approac= h to me. It would require modifying build_rule.template, and choose which p= re/postfix to add. > > Another point is that the .c file generated from the .c file is placed i= n the $(DEBUG_DIR), when the one coming from the .asl file is placed in $(O= UTPUT_DIR). Maybe it should be modified to $(DEBUG_DIR) aswell. > > Regards, > Pierre > > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Liming Ga= o via groups.io > Sent: Monday, July 27, 2020 3:21 PM > To: Leif Lindholm ; devel@edk2.groups.io; Pierre Gond= ois ; Masahisa Kojima > Cc: Sami Mujawar ; Tomas Pilar ; Feng, Bob C ; Ard Biesheuvel > Subject: Re: [edk2-devel] [PATCH v5 4/5] BaseTools: Compile AML bytecode= arrays into .obj file > > Leif: > VFR file has the similar case. VFR is converted to xxx.c, then compile= it to obj file. > > Bob: > Has BaseTools such detection if VFR and C source file have the same fi= le name? > > Thanks > Liming > > -----Original Message----- > > From: Leif Lindholm > > Sent: Monday, July 27, 2020 9:58 PM > > To: devel@edk2.groups.io; pierre.gondois@arm.com; Masahisa Kojima > > > > Cc: sami.mujawar@arm.com; tomas.pilar@arm.com; Feng, Bob C > > ; Gao, Liming ; Ard > > Biesheuvel > > Subject: Re: [edk2-devel] [PATCH v5 4/5] BaseTools: Compile AML > > bytecode arrays into .obj file > > > > Hi Pierre, (+Masahisa) > > > > This commit (0a4aa20e8d44) made for an exciting start to my week. > > > > Socionext's Developerbox failed to build for me, with the spectacular > > error message: > > > > /usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/b= in/ld: > > DWARF error: could not find abbrev number 5912 > > /tmp/ccKt4gaM.ltrans0.ltrans.o: in function `RegisterDevices': > > :(.text.RegisterDevices+0xb0): undefined reference to > > `RegisterEmmc' > > > > GCC49 (without lto) and CLANG38 profiles give much the same result, > > with slightly less esoteric messages. > > > > The reason for this turned out to be that edk2-platforms > > Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/ has both an Emmc.asl > > and an Emmc.c file, which after this patch both generate an Emmc.obj > > in the same output directory. > > > > I think the correct course of action is to fix this in the SynQuacer > > driver, but I am reporting it here so we get it logged in the list > > archives. > > > > It would of course be good if the build system could detect and warn > > over cases like this, rather than silently overwriting existing object > > files. > > > > Masahisa - since Ard is still on holiday, could you create a patch and > > send out for me to review? Either one of the files needs to be > > renamed, or we need to move the .asl files (Emmc.asl and Optee.asl) > > into a subdirectory. > > > > Best Regards, > > > > Leif > > > > On Wed, Jul 01, 2020 at 15:06:03 +0100, PierreGondois wrote: > > > From: Pierre Gondois > > > > > > 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 modifies the AmlToC script to generate a C file instead > > > of a ".hex" file. > > > It also adds the generation of an intermediate ".amli" file when > > > compiling an ASL file, and adds a rule to convert this ".amli" to a > > > C file. > > > > > > This allows to generate 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 > > > Suggested-by: Tomas Pilar > > > --- > > > > > > The changes can be seen at: > > > https://github.com/PierreARM/edk2/commits/803_Compile_AML_bytecode_a > > > rray_into_OBJ_file_v5 > > > > > > Notes: > > > v1: > > > - Add a new rule to the build_rule.template file to > > > generate ".obj" files from .asl files, and modify > > > the AmlToC script accordingly. [Pierre] > > > v2: > > > - Restrict the rule to DXE_DRIVER. This allows to build > > > the OvmfPkg, which was not the case in v1. [Pierre] > > > v3: > > > - Changed "Signed-off-by" to "Suggested-by". [Bob] > > > v4: > > > - No modification. Re-sending the patch with base64 > > > encoding to conserve the right line endings. [Bob] > > > v5: > > > - No modification. [Pierre] > > > > > > BaseTools/Conf/build_rule.template | 15 +++- > > > BaseTools/Source/Python/AmlToC/AmlToC.py | 82 ++++++++------------ > > > 2 files changed, 47 insertions(+), 50 deletions(-) > > > > > > diff --git a/BaseTools/Conf/build_rule.template > > > b/BaseTools/Conf/build_rule.template > > > index > > > 0822b681fcd9f61c6508e6f93ffc31fa70fd7059..c034869915914936e28f64a6aa > > > dba08e0169da44 100755 > > > --- a/BaseTools/Conf/build_rule.template > > > +++ b/BaseTools/Conf/build_rule.template > > > @@ -419,6 +419,7 @@ > > > > > > > > > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.aml > > > + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.amli > > > > > > > > > $(MAKE_FILE) > > > @@ -428,14 +429,24 @@ > > > "$(ASLPP)" $(DEPS_FLAGS) $(ASLPP_FLAGS) $(INC) /I${s_path} > > > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i > > > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii > > > Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_bas= e}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii > > > "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+= )${s_dir}(+)${s_base}.iiii > > > - -AmlToHex $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.aml > > > + $(CP) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.aml > > > + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.amli > > > > > > > > > Trim --asl-file --asl-deps -o $(OUTPUT_DIR)(+)${s_dir}(+)${= s_base}.i -i $(INC_LIST) ${src} > > > "$(ASLPP)" $(DEPS_FLAGS) $(ASLPP_FLAGS) $(INC) -I${s_path} > > > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i > > > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii > > > Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_bas= e}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii > > > "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+= )${s_dir}(+)${s_base}.iiii > > > - -AmlToHex $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.aml > > > + $(CP) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.aml > > > + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.amli > > > + > > > +[Acpi-Machine-Language-File-to-C.DXE_DRIVER] > > > + > > > + ?.amli > > > + > > > + > > > + ${s_path}(+)${s_base}.c > > > + > > > + > > > + -AmlToC ${src} > > > > > > [C-Code-File.AcpiTable] > > > > > > diff --git a/BaseTools/Source/Python/AmlToC/AmlToC.py > > > b/BaseTools/Source/Python/AmlToC/AmlToC.py > > > index > > > 643db2910e37acfdd80ac18d288c921320a79ce1..346de7159de702d860bbd809dd > > > be8175f1493cfb 100644 > > > --- a/BaseTools/Source/Python/AmlToC/AmlToC.py > > > +++ b/BaseTools/Source/Python/AmlToC/AmlToC.py > > > @@ -1,9 +1,9 @@ > > > ## @file > > > # > > > -# Convert an AML file to a .hex file containing the AML bytecode > > > stored in a > > > +# Convert an AML file to a .c file containing the AML bytecode > > > +stored in a > > > # C array. > > > -# By default, "Tables\Dsdt.aml" will generate "Tables\Dsdt.hex". > > > -# "Tables\Dsdt.hex" will contain a C array named "dsdt_aml_code" > > > that contains > > > +# By default, "Tables\Dsdt.aml" will generate "Tables\Dsdt.c". > > > +# "Tables\Dsdt.c" will contain a C array named "dsdt_aml_code" that > > > +contains > > > # the AML bytecode. > > > # > > > # Copyright (c) 2020, ARM Limited. All rights reserved.
@@ > > > -17,31 +17,26 @@ from Common.BuildToolError import * import sys > > > import os > > > > > > +__description__ =3D """ > > > +Convert an AML file to a .c file containing the AML bytecode stored > > > +in a C array. By default, Tables\Dsdt.aml will generate Tables\Dsdt= .c. > > > +Tables\Dsdt.c will contain a C array named "dsdt_aml_code" that > > > +contains the AML bytecode. > > > +""" > > > + > > > ## Parse the command line arguments. > > > # > > > # @retval A argparse.NameSpace instance, containing parsed values. > > > # > > > def ParseArgs(): > > > # Initialize the parser. > > > - Parser =3D argparse.ArgumentParser( > > > - description=3D"Convert an AML file to a .hex file containing = the AML " + \ > > > - "bytecode stored in a C array. By default, " + \ > > > - "\"Tables\\Dsdt.aml\" will generate" + \ > > > - "\"Tables\\Dsdt.hex\". \"Tables\\Dsdt.hex\" will = " + \ > > > - "contain a C array named \"dsdt_aml_code\" that "= + \ > > > - "contains the AML bytecode." > > > - ) > > > + Parser =3D argparse.ArgumentParser(description=3D__description_= _) > > > > > > # Define the possible arguments. > > > - Parser.add_argument( > > > - dest=3D"InputFile", > > > - help=3D"Path to an input AML file to generate a .hex file fro= m." > > > - ) > > > - Parser.add_argument( > > > - "-o", "--out-dir", dest=3D"OutDir", > > > - help=3D"Output directory where the .hex file will be generate= d. " + \ > > > - "Default is the input file's directory." > > > - ) > > > + Parser.add_argument(dest=3D"InputFile", > > > + help=3D"Path to an input AML file to genera= te a .c file from.") > > > + Parser.add_argument("-o", "--out-dir", dest=3D"OutDir", > > > + help=3D"Output directory where the .c file > > > + will be generated. Default is the input file's directory.") > > > > > > # Parse the input arguments. > > > Args =3D Parser.parse_args() > > > @@ -55,9 +50,7 @@ def ParseArgs(): > > > with open(Args.InputFile, "rb") as fIn: > > > Signature =3D str(fIn.read(4)) > > > if ("DSDT" not in Signature) and ("SSDT" not in Signatu= re): > > > - EdkLogger.info("Invalid file type. " + \ > > > - "File does not have a valid " + \ > > > - "DSDT or SSDT signature: %s" % Args= .InputFile) > > > + EdkLogger.info("Invalid file type. File does not > > > + have a valid DSDT or SSDT signature: {}".format(Args.InputFile)) > > > return None > > > > > > # Get the basename of the input file. > > > @@ -66,42 +59,39 @@ def ParseArgs(): > > > > > > # If no output directory is specified, output to the input dire= ctory. > > > if not Args.OutDir: > > > - Args.OutputFile =3D os.path.join( > > > - os.path.dirname(Args.InputFile), > > > - BaseName + ".hex" > > > - ) > > > + Args.OutputFile =3D os.path.join(os.path.dirname(Args.Input= File), > > > + BaseName + ".c") > > > else: > > > if not os.path.exists(Args.OutDir): > > > os.mkdir(Args.OutDir) > > > - Args.OutputFile =3D os.path.join(Args.OutDir, BaseName + ".= hex") > > > + Args.OutputFile =3D os.path.join(Args.OutDir, BaseName + > > > + ".c") > > > > > > Args.BaseName =3D BaseName > > > > > > return Args > > > > > > -## Convert an AML file to a .hex file containing the AML bytecode > > > stored > > > +## Convert an AML file to a .c file containing the AML bytecode > > > +stored > > > # in a C array. > > > # > > > # @param InputFile Path to the input AML file. > > > -# @param OutputFile Path to the output .hex file to generate. > > > +# @param OutputFile Path to the output .c file to generate. > > > # @param BaseName Base name of the input file. > > > -# This is also the name of the generated .hex= file. > > > +# This is also the name of the generated .c f= ile. > > > # > > > -def AmlToHex(InputFile, OutputFile, BaseName): > > > +def AmlToC(InputFile, OutputFile, BaseName): > > > > > > - MacroName =3D "__{}_HEX__".format(BaseName.upper()) > > > ArrayName =3D BaseName.lower() + "_aml_code" > > > + FileHeader =3D\ > > > +""" > > > +// This file has been generated from: > > > +// -Python script: {} > > > +// -Input AML file: {} > > > + > > > +""" > > > > > > with open(InputFile, "rb") as fIn, open(OutputFile, "w") as fOu= t: > > > # Write header. > > > - fOut.write("// This file has been generated from:\n" + \ > > > - "// \tPython script: " + \ > > > - os.path.abspath(__file__) + "\n" + \ > > > - "// \tInput AML file: " + \ > > > - os.path.abspath(InputFile) + "\n\n" + \ > > > - "#ifndef {}\n".format(MacroName) + \ > > > - "#define {}\n\n".format(MacroName) > > > - ) > > > + fOut.write(FileHeader.format(os.path.abspath(InputFile), > > > + os.path.abspath(__file__))) > > > > > > # Write the array and its content. > > > fOut.write("unsigned char {}[] =3D {{\n ".format(ArrayName= )) > > > @@ -115,15 +105,12 @@ def AmlToHex(InputFile, OutputFile, BaseName): > > > byte =3D fIn.read(1) > > > fOut.write("\n};\n") > > > > > > - # Write footer. > > > - fOut.write("#endif // {}\n".format(MacroName)) > > > - > > > ## Main method > > > # > > > # This method: > > > # 1- Initialize an EdkLogger instance. > > > # 2- Parses the input arguments. > > > -# 3- Converts an AML file to a .hex file containing the AML byte= code stored > > > +# 3- Converts an AML file to a .c file containing the AML byteco= de stored > > > # in a C array. > > > # > > > # @retval 0 Success. > > > @@ -139,10 +126,9 @@ def Main(): > > > if not CommandArguments: > > > return 1 > > > > > > - # Convert an AML file to a .hex file containing the AML byt= ecode stored > > > + # Convert an AML file to a .c file containing the AML > > > + bytecode stored > > > # in a C array. > > > - AmlToHex(CommandArguments.InputFile, CommandArguments.Outpu= tFile, > > > - CommandArguments.BaseName) > > > + AmlToC(CommandArguments.InputFile, > > > + CommandArguments.OutputFile, CommandArguments.BaseName) > > > except Exception as e: > > > print(e) > > > return 1 > > > -- > > > 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)' > > > > > > > > > > IMPORTANT NOTICE: The contents of this email and any attachments are con= fidential and may also be privileged. If you are not the intended recipient= , please notify the sender immediately and do not disclose the contents to = any other person, use it for any purpose, or store or copy the information = in any medium. Thank you. > >=20 >