This is very interesting. If I understand correctly, you are using a utility plus various directives to generate tables of AML offsets -- presumably in order to dynamically change AML values, correct?
I have to say that I have not seen anything like this, from any BIOS vendor. > By the way, is there interest in adding some of the functionality that > we get by parsing the listing to iasl directly? We are always interested in adding features to make the compiler more useful. What would you suggest? Bob > -----Original Message----- > From: Michael S. Tsirkin [mailto:[email protected]] > Sent: Sunday, August 05, 2012 1:45 PM > To: Moore, Robert > Cc: Idwer Vollering; Kevin O'Connor; [email protected]; Tang, Feng > Subject: Re: [SeaBIOS] Compiling SeaBIOS for coreboot has problems with > its ACPI code > > On Sun, Aug 05, 2012 at 11:36:15PM +0300, Michael S. Tsirkin wrote: > > On Mon, Jul 30, 2012 at 07:42:48PM +0000, Moore, Robert wrote: > > > Yes, you are correct, the listing no longer includes the comments. > > > > > > Sorry for causing you a problem. > > > > > > What is happening is that the preprocessor parser is stripping the > comments during the creation of the .i file. Then, the compiler is > invoked on the .i file -- thus, the comments are gone. > > > > > > This is going to take a bit of work to correct, but we will do it. > > > > > > In the meantime, try using the -Pn flag to disable the > preprocessor. When this flag is set, the preprocessor is completely > bypassed and the compiler should function as it did previously. > > > > > > So we are doing it this way meanwhile. If you change this > > preprocessor behaviour like you indicated you would, please let us > > know so e can test. > > > > Thanks! > > By the way, is there interest in adding some of the functionality that > we get by parsing the listing to iasl directly? > Here's what our tool currently supports: > > # Process mixed ASL/AML listing (.lst file) produced by iasl -l # > Locate and execute ACPI_EXTRACT directives, output offset info # # > Documentation of ACPI_EXTRACT_* directive tags: > # > # These directive tags output offset information from AML for BIOS > runtime # table generation. > # Each directive is of the form: > # ACPI_EXTRACT_<TYPE> <array_name> <Operator> (...) # and causes the > extractor to create an array # named <array_name> with offset, in the > generated AML, # of an object of a given type in the following > <Operator>. > # > # A directive must fit on a single code line. > # > # Object type in AML is verified, a mismatch causes a build failure. > # > # Directives and operators currently supported are: > # ACPI_EXTRACT_NAME_DWORD_CONST - extract a Dword Const object from > Name() # ACPI_EXTRACT_NAME_WORD_CONST - extract a Word Const object > from Name() # ACPI_EXTRACT_NAME_BYTE_CONST - extract a Byte Const > object from Name() # ACPI_EXTRACT_METHOD_STRING - extract a NameString > from Method() # ACPI_EXTRACT_NAME_STRING - extract a NameString from > Name() # ACPI_EXTRACT_PROCESSOR_START - start of Processor() block # > ACPI_EXTRACT_PROCESSOR_STRING - extract a NameString from Processor() # > ACPI_EXTRACT_PROCESSOR_END - offset at last byte of Processor() + 1 # > ACPI_EXTRACT_PKG_START - start of Package block # # > ACPI_EXTRACT_ALL_CODE - create an array storing the generated AML > bytecode # # ACPI_EXTRACT is not allowed anywhere else in code, except > in comments. > > > Example: > > ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword > Name (_ADR, 0x00010000) > > adds the offset of 0x00010000 constant to array aml_adr_dword > > Example: > > ACPI_EXTRACT_METHOD_STRING aml_ej0_name > Method (_EJ0, 1) { Return(PCEJ(0x0001)) } > > adds the offset of _EJ0 string to array aml_ej0_name > > ACPI_EXTRACT_ALL_CODE ssdp_pcihp_aml > > names the array to include the generated AML code > > -- > MST _______________________________________________ SeaBIOS mailing list [email protected] http://www.seabios.org/mailman/listinfo/seabios
