[SeaBIOS] [PATCHv4] acpi: make default DSDT optional

Laszlo Ersek lersek at redhat.com
Tue Mar 19 13:24:49 CET 2013


On 03/18/13 14:18, Michael S. Tsirkin wrote:
> Since commit f7e4dd6c18ccfbaf6cd2f5eaaed2b77cabc8a406 QEMU loads its
> own copy of DSDT, so let's not build in PIIX.  This makes building in
> the DSDT an option, default to on (built-in).  If no one complains for a
> while, we'll be able to switch it off and then maybe remove altogether.
> 
> With CONFIG_ACPI_DSDT = y
> Total size: 127348  Fixed: 58892  Free: 3724 (used 97.2% of 128KiB rom)
> With CONFIG_ACPI_DSDT = n
> Total size: 122844  Fixed: 58884  Free: 8228 (used 93.7% of 128KiB rom)
> 
> Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
> ---
> 
> Changes from v3:
> 	- More changes suggested by Laszlo and Kevin, missed in v2.
> 	  Better document the new option as suggested by Paul and Kevin.
> 
> Changes from v2:
>        - fixed and extended the commit log addressing comments by Gerd,
>          Laszlo, Paul. No functional changes.
> 
> Changes from v1:
>        - default the new option to y to reduce
>          disruption to existing users
> 
>  src/Kconfig | 10 ++++++++++
>  src/acpi.c  |  3 ++-
>  2 files changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/src/Kconfig b/src/Kconfig
> index 3141069..5796173 100644
> --- a/src/Kconfig
> +++ b/src/Kconfig
> @@ -387,6 +387,16 @@ menu "BIOS Tables"
>          default y
>          help
>              Support generation of ACPI tables.
> +    config ACPI_DSDT
> +        bool "Include default ACPI DSDT"
> +        default y
> +        depends on ACPI
> +        help
> +            Include default DSDT ACPI table in BIOS.
> +            Required for QEMU 1.3 and older.
> +            This option can be disabled for QEMU 1.4 and newer
> +            to save some space in the ROM file.
> +            If unsure, say Y.
>  endmenu
>  
>  source vgasrc/Kconfig
> diff --git a/src/acpi.c b/src/acpi.c
> index 119d1c1..88abc09 100644
> --- a/src/acpi.c
> +++ b/src/acpi.c
> @@ -826,7 +826,8 @@ acpi_setup(void)
>              break;
>          }
>      }
> -    if (fadt && !fadt->dsdt) {
> +
> +    if (CONFIG_ACPI_DSDT && fadt && !fadt->dsdt) {
>          /* default DSDT */
>          void *dsdt = malloc_high(sizeof(AmlCode));
>          if (!dsdt) {
> 

Ah I see. We build the hex file & include it too, but gcc will optimize
it out.

Reviewed-by: Laszlo Ersek <lersek at redhat.com>



More information about the SeaBIOS mailing list