qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] tests: disassemble-asm.sh: generate AML in readable format


From: Igor Mammedov
Subject: Re: [PATCH] tests: disassemble-asm.sh: generate AML in readable format
Date: Tue, 16 Jun 2020 15:29:26 +0200

On Thu, 11 Jun 2020 12:51:16 -0400
"Michael S. Tsirkin" <mst@redhat.com> wrote:

subj: s/asm/asl/

> On systems where the IASL tool exists, we can convert
> extected ACPI tables to ASL format, which is useful
> for debugging and documentation purposes.
> This script does this for all ACPI tables under tests/data/acpi/. 

for debugging I usually use V=1 env var with test/make check,
as it gives me all diffs vs current blobs.
And it's on rare occasion that I go and decompile ASL file myself,
since test already did that for tables that didn't match. 

> 
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
>  tests/data/acpi/disassemle-aml.sh | 52 +++++++++++++++++++++++++++++++
>  1 file changed, 52 insertions(+)
>  create mode 100755 tests/data/acpi/disassemle-aml.sh
> 
> diff --git a/tests/data/acpi/disassemle-aml.sh 
> b/tests/data/acpi/disassemle-aml.sh
> new file mode 100755
> index 0000000000..42a1b51df0
> --- /dev/null
> +++ b/tests/data/acpi/disassemle-aml.sh
> @@ -0,0 +1,52 @@
> +#!/usr/bin/bash
> +
> +outdir=
> +while getopts "o:" arg; do
> +  case ${arg} in
> +    o )
> +        outdir=$OPTARG
> +        ;;
> +    \? )
> +        echo "Usage: ./tests/data/acpi/disassemle-aml.sh [-o 
> <output-directory>]"
> +        exit 1
> +        ;;
> +    
> +  esac
> +done
> +
> +for machine in tests/data/acpi/*
> +do
> +    if [[ ! -d "$machine" ]];
> +    then
> +        continue
> +    fi
> +
> +    if [[ "${outdir}" ]];
> +    then
> +        mkdir -p "${outdir}"/${machine} || exit $?
> +    fi
> +    for aml in $machine/*
> +    do
> +        if [[ "$aml" == $machine/*.dsl ]];
> +        then
> +            continue
> +        fi
> +        if [[ "$aml" == $machine/SSDT*.* ]];
> +        then
> +            dsdt=${aml/SSDT*./DSDT.}
> +            extra="-e ${dsdt}"
> +        elif [[ "$aml" == $machine/SSDT* ]];
> +        then
> +            dsdt=${aml/SSDT*/DSDT};
> +            extra="-e ${dsdt}"
> +        else
> +            extra=""
> +        fi
> +        asl=${aml}.dsl
> +        if [[ "${outdir}" ]];
> +        then
> +            asl="${outdir}"/${machine}/${asl}
> +        fi
> +        iasl -d -p ${asl} ${extra} ${aml} 
> +    done
> +done




reply via email to

[Prev in Thread] Current Thread [Next in Thread]