Pierre: Can you give the whole solution for this usage model? Does it mean C source file depends on ASL file? This is related to the priority of source file type. Now, there is no method to let user configure them. I suggest to introduce the generic way instead of the specific handle.
Thanks Liming >-----Original Message----- >From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of >PierreGondois >Sent: Wednesday, October 30, 2019 9:51 PM >To: devel@edk2.groups.io >Cc: Pierre Gondois <pierre.gond...@arm.com>; Feng, Bob C ><bob.c.f...@intel.com>; Gao, Liming <liming....@intel.com>; >sami.muja...@arm.com; n...@arm.com >Subject: [edk2-devel] [PATCH v1 1/1] BaseTools: Build ASL files before C files > >From: Pierre Gondois <pierre.gond...@arm.com> > >The '-tc' option of the Intel iASL compiler facilitates >generation of AML code in a C array. This AML code is >output to a .hex file. The .hex file can be included >from a C source file, thereby allowing one to run a >fix-up code in C. > >For example, this technique can be used to patch the >resource data elements that describe the base address >or interrupt number for a device, before installing >the ACPI table. > >To implement this feature two conditions need to be >satisfied: > - The ASL and C files must be included in the sources > section of the same .inf file for the module. > - The ASL files are pre-processed and compiled before > the C files (so that the .hex file include dependency > is satisfied). > >This patch resolves the dependency by sorting the >CODA_TARGET list for the module being built and >placing the .aml files at the very beginning of >the list. > >Signed-off-by: Pierre Gondois <pierre.gond...@arm.com> >--- > >The changes can be seen at >https://github.com/PierreARM/edk2/commits/676_build_asl_first_v1 > >Notes: > v1: > - Sort .aml files first in the CODA_TARGET to build [Pierre] > them before other files. > > BaseTools/Source/Python/AutoGen/ModuleAutoGen.py | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > >diff --git a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py >b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py >index >f0812b6887be6f9fbdb14003f2efff229633fb34..a59ed1d1952c23d0d3de83353a0 >566fb8a7dab77 100755 >--- a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py >+++ b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py >@@ -2,6 +2,7 @@ > # Create makefile for MS nmake and GNU make > # > # Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> >+# Copyright (c) 2019, ARM Limited. All rights reserved.<BR> > # SPDX-License-Identifier: BSD-2-Clause-Patent > # > from __future__ import absolute_import >@@ -931,7 +932,14 @@ class ModuleAutoGen(AutoGen): > @cached_property > def CodaTargetList(self): > self.Targets >- return self._FinalBuildTargetList >+ >+ # To resolve dependencies on compiled ASL files (.aml files) in >modules, >+ # build them first by putting them as the first targets in the >+ # CodaTargetList. >+ OrderedList = list(self._FinalBuildTargetList) >+ OrderedList.sort(key=lambda T: (T.Target.Ext.lower() != '.aml')) >+ >+ return OrderedList > > @cached_property > def FileTypes(self): >-- >'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)' > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#49691): https://edk2.groups.io/g/devel/message/49691 Mute This Topic: https://groups.io/mt/39786201/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-