Hi Pierre, Leif,

Thank you for your comment, I could replicate the issue.
I will submit the patch to rename the Emmc.c.

Regards,
Masahisa

On Tue, 28 Jul 2020 at 20:19, Leif Lindholm <l...@nuviainc.com> wrote:
>
> Yes,
>
> Do a git clean -fx in your edk2 directory, and delete your Build
> directory completely.
>
> Regards,
>
> Leif
>
> On Tue, Jul 28, 2020 at 09:04:44 +0000, Pierre Gondois wrote:
> > Hello Masahisa,
> >
> > Maybe you will have to delete/re-generate the build_rule.txt and
> > tools_def.txt files that you have. This patch makes the build system
> > generate a .amli file for each .asl file. If there is no Emmc.amli
> > in your Build directory, this might be the reason.
> >
> > Regards,
> > Pierre
> >
> > -----Original Message-----
> > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Masahisa 
> > Kojima via groups.io
> > Sent: Tuesday, July 28, 2020 2:38 AM
> > To: Leif Lindholm <l...@nuviainc.com>
> > Cc: devel@edk2.groups.io; Gao, Liming <liming....@intel.com>; Pierre 
> > Gondois <pierre.gond...@arm.com>; Sami Mujawar <sami.muja...@arm.com>; 
> > Tomas Pilar <tomas.pi...@arm.com>; Feng, Bob C <bob.c.f...@intel.com>; Ard 
> > Biesheuvel <ard.biesheu...@arm.com>
> > Subject: Re: [edk2-devel] [PATCH v5 4/5] BaseTools: Compile AML bytecode 
> > arrays into .obj file
> >
> > 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=Platform/Socionext/DeveloperBox/DeveloperBox.dsc
> > export PROFILE=DEBUG
> > export ARCH=AARCH64
> > export TOOL_CHAIN_TAG=GCC5
> >
> > build -n $NUM_CPUS -a $ARCH -b $PROFILE -t $TOOL_CHAIN_TAG -p $TARGET -D 
> > SECURE_BOOT_ENABLE=TRUE -D X64EMU_ENABLE=TRUE -D TPM2_ENABLE=TRUE
> > ---
> >
> > GCC version is 
> > "gcc-linaro-6.4.1-2017.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-".
> >
> > Some Output directory information:
> > ~/src/uefi/Build/DeveloperBox$ find .|grep -i emmc 
> > ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe/OUTPUT/Emmc.iii
> > ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe/OUTPUT/Emmc.obj.deps
> > ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe/OUTPUT/Emmc.iiii
> > ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe/OUTPUT/Emmc.obj
> > ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe/OUTPUT/Emmc.aml.deps
> > ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe/OUTPUT/Emmc.aml
> > ./DEBUG_GCC5/AARCH64/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe/OUTPUT/Emmc.i
> >
> > Regards,
> > Masahisa
> >
> > On Tue, 28 Jul 2020 at 09:40, Gao, Liming <liming....@intel.com> 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 
> > > enhance 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 <devel@edk2.groups.io> On Behalf Of
> > > PierreGondois
> > > Sent: 2020年7月28日 1:10
> > > To: devel@edk2.groups.io; Gao, Liming <liming....@intel.com>; Leif
> > > Lindholm <l...@nuviainc.com>; Masahisa Kojima
> > > <masahisa.koj...@linaro.org>
> > > Cc: Sami Mujawar <sami.muja...@arm.com>; Tomas Pilar
> > > <tomas.pi...@arm.com>; Feng, Bob C <bob.c.f...@intel.com>; Ard
> > > Biesheuvel <ard.biesheu...@arm.com>
> > > 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 the 
> > > same name in the same scope.
> > >
> > > Everybody:
> > > The .c files generated (from either .vfr or .asl) are generated in the 
> > > Build/..../OUTPUT/ directory, with their original subdirectory stripped. 
> > > In the example below, the .c, .vfr and .asl files have been placed in 
> > > subdirectories in edk2/edk2-platforms. The recipes that have been 
> > > generated are:
> > > $(OUTPUT_DIR)/Emmc.obj : $(OUTPUT_DIR)/AslDir/Emmc.c (from Emmc.asl)
> > > $(OUTPUT_DIR)/Ip4Config2.obj : $(DEBUG_DIR)/VfrDir/Ip4Config2.c (from
> > > Ip4Config2.vfr) $(OUTPUT_DIR)/CDir/Emmc.obj :
> > > $(WORKSPACE)/edk2-platforms/Silicon/Socionext/SynQuacer/Drivers/Platfo
> > > rmDxe/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 approach 
> > > to me. It would require modifying build_rule.template, and choose which 
> > > pre/postfix to add.
> > >
> > > Another point is that the .c file generated from the .c file is placed in 
> > > the $(DEBUG_DIR), when the one coming from the .asl file is placed in 
> > > $(OUTPUT_DIR). Maybe it should be modified to $(DEBUG_DIR) aswell.
> > >
> > > Regards,
> > > Pierre
> > >
> > > -----Original Message-----
> > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Liming
> > > Gao via groups.io
> > > Sent: Monday, July 27, 2020 3:21 PM
> > > To: Leif Lindholm <l...@nuviainc.com>; devel@edk2.groups.io; Pierre
> > > Gondois <pierre.gond...@arm.com>; Masahisa Kojima
> > > <masahisa.koj...@linaro.org>
> > > Cc: Sami Mujawar <sami.muja...@arm.com>; Tomas Pilar
> > > <tomas.pi...@arm.com>; Feng, Bob C <bob.c.f...@intel.com>; Ard
> > > Biesheuvel <ard.biesheu...@arm.com>
> > > 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 
> > > file name?
> > >
> > > Thanks
> > > Liming
> > > > -----Original Message-----
> > > > From: Leif Lindholm <l...@nuviainc.com>
> > > > Sent: Monday, July 27, 2020 9:58 PM
> > > > To: devel@edk2.groups.io; pierre.gond...@arm.com; Masahisa Kojima
> > > > <masahisa.koj...@linaro.org>
> > > > Cc: sami.muja...@arm.com; tomas.pi...@arm.com; Feng, Bob C
> > > > <bob.c.f...@intel.com>; Gao, Liming <liming....@intel.com>; Ard
> > > > Biesheuvel <ard.biesheu...@arm.com>
> > > > 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/bin/ld:
> > > > DWARF error: could not find abbrev number 5912
> > > > /tmp/ccKt4gaM.ltrans0.ltrans.o: in function `RegisterDevices':
> > > > <artificial>:(.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 <pierre.gond...@arm.com>
> > > > >
> > > > > 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 <pierre.gond...@arm.com>
> > > > > Suggested-by: Tomas Pilar <tomas.pi...@arm.com>
> > > > > ---
> > > > >
> > > > > 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..c034869915914936e28f64a6
> > > > > aa
> > > > > dba08e0169da44 100755
> > > > > --- a/BaseTools/Conf/build_rule.template
> > > > > +++ b/BaseTools/Conf/build_rule.template
> > > > > @@ -419,6 +419,7 @@
> > > > >
> > > > >      <OutputFile>
> > > > >          $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.aml
> > > > > +        $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.amli
> > > > >
> > > > >      <ExtraDependency>
> > > > >          $(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_base}.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
> > > > >
> > > > >      <Command.GCC>
> > > > >          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_base}.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]
> > > > > +    <InputFile>
> > > > > +        ?.amli
> > > > > +
> > > > > +    <OutputFile>
> > > > > +        ${s_path}(+)${s_base}.c
> > > > > +
> > > > > +    <Command>
> > > > > +        -AmlToC ${src}
> > > > >
> > > > >  [C-Code-File.AcpiTable]
> > > > >      <InputFile>
> > > > > diff --git a/BaseTools/Source/Python/AmlToC/AmlToC.py
> > > > > b/BaseTools/Source/Python/AmlToC/AmlToC.py
> > > > > index
> > > > > 643db2910e37acfdd80ac18d288c921320a79ce1..346de7159de702d860bbd809
> > > > > dd
> > > > > 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.<BR> @@
> > > > > -17,31 +17,26 @@ from Common.BuildToolError import *  import sys
> > > > > import os
> > > > >
> > > > > +__description__ = """
> > > > > +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 = argparse.ArgumentParser(
> > > > > -      description="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 = argparse.ArgumentParser(description=__description__)
> > > > >
> > > > >      # Define the possible arguments.
> > > > > -    Parser.add_argument(
> > > > > -      dest="InputFile",
> > > > > -      help="Path to an input AML file to generate a .hex file from."
> > > > > -      )
> > > > > -    Parser.add_argument(
> > > > > -      "-o", "--out-dir", dest="OutDir",
> > > > > -      help="Output directory where the .hex file will be generated. 
> > > > > " + \
> > > > > -           "Default is the input file's directory."
> > > > > -      )
> > > > > +    Parser.add_argument(dest="InputFile",
> > > > > +                        help="Path to an input AML file to generate 
> > > > > a .c file from.")
> > > > > +    Parser.add_argument("-o", "--out-dir", dest="OutDir",
> > > > > +                        help="Output directory where the .c file
> > > > > + will be generated. Default is the input file's directory.")
> > > > >
> > > > >      # Parse the input arguments.
> > > > >      Args = Parser.parse_args()
> > > > > @@ -55,9 +50,7 @@ def ParseArgs():
> > > > >          with open(Args.InputFile, "rb") as fIn:
> > > > >              Signature = str(fIn.read(4))
> > > > >              if ("DSDT" not in Signature) and ("SSDT" not in 
> > > > > Signature):
> > > > > -                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 
> > > > > directory.
> > > > >      if not Args.OutDir:
> > > > > -        Args.OutputFile = os.path.join(
> > > > > -          os.path.dirname(Args.InputFile),
> > > > > -          BaseName + ".hex"
> > > > > -          )
> > > > > +        Args.OutputFile = 
> > > > > os.path.join(os.path.dirname(Args.InputFile),
> > > > > +                                       BaseName + ".c")
> > > > >      else:
> > > > >          if not os.path.exists(Args.OutDir):
> > > > >              os.mkdir(Args.OutDir)
> > > > > -        Args.OutputFile = os.path.join(Args.OutDir, BaseName + 
> > > > > ".hex")
> > > > > +        Args.OutputFile = os.path.join(Args.OutDir, BaseName +
> > > > > + ".c")
> > > > >
> > > > >      Args.BaseName = 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 
> > > > > file.
> > > > >  #
> > > > > -def AmlToHex(InputFile, OutputFile, BaseName):
> > > > > +def AmlToC(InputFile, OutputFile, BaseName):
> > > > >
> > > > > -    MacroName = "__{}_HEX__".format(BaseName.upper())
> > > > >      ArrayName = BaseName.lower() + "_aml_code"
> > > > > +    FileHeader =\
> > > > > +"""
> > > > > +// This file has been generated from:
> > > > > +//   -Python script: {}
> > > > > +//   -Input AML file: {}
> > > > > +
> > > > > +"""
> > > > >
> > > > >      with open(InputFile, "rb") as fIn, open(OutputFile, "w") as fOut:
> > > > >          # 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 {}[] = {{\n
> > > > > ".format(ArrayName)) @@ -115,15 +105,12 @@ def AmlToHex(InputFile, 
> > > > > OutputFile, BaseName):
> > > > >              byte = 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 
> > > > > bytecode stored
> > > > > +#   3-  Converts an AML file to a .c file containing the AML 
> > > > > bytecode 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 
> > > > > bytecode stored
> > > > > +        # Convert an AML file to a .c file containing the AML
> > > > > + bytecode stored
> > > > >          # in a C array.
> > > > > -        AmlToHex(CommandArguments.InputFile, 
> > > > > CommandArguments.OutputFile,
> > > > > -                          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 
> > > confidential 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.
> > >
> > >
> > >
> >
> > 
> >
> > IMPORTANT NOTICE: The contents of this email and any attachments are 
> > confidential 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.

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#63421): https://edk2.groups.io/g/devel/message/63421
Mute This Topic: https://groups.io/mt/75236043/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to