[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