[PATCH 3/6] risc-v: add support for QEMU provided ACPI tables

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Thu Nov 16 20:54:44 CET 2023


On 11/16/23 19:35, Tom Rini wrote:
> On Wed, Nov 15, 2023 at 03:23:52PM +0100, Heinrich Schuchardt wrote:
>> If U-Boot provides ACPI tables on RISC-V QEMU, we need to copy what QEMU
>> provides.
>>
>> Provide the qfw command to retrieve information from the QEMU firmware.
>>
>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
>> ---
>>   board/emulation/qemu-riscv/Kconfig | 2 ++
>>   lib/Kconfig                        | 2 +-
>>   2 files changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/board/emulation/qemu-riscv/Kconfig b/board/emulation/qemu-riscv/Kconfig
>> index d56b4b5bc1..933b035991 100644
>> --- a/board/emulation/qemu-riscv/Kconfig
>> +++ b/board/emulation/qemu-riscv/Kconfig
>> @@ -33,6 +33,8 @@ config BOARD_SPECIFIC_OPTIONS # dummy
>>   	def_bool y
>>   	select GENERIC_RISCV
>>   	select SUPPORT_SPL
>> +	select CMD_QFW if GENERATE_ACPI_TABLE
>> +	select QFW_MMIO if GENERATE_ACPI_TABLE
>>   	imply AHCI
>>   	imply SMP
>>   	imply BOARD_LATE_INIT
>> diff --git a/lib/Kconfig b/lib/Kconfig
>> index 19649517a3..a94adc388f 100644
>> --- a/lib/Kconfig
>> +++ b/lib/Kconfig
>> @@ -300,7 +300,7 @@ config SPL_ACPI
>>   config GENERATE_ACPI_TABLE
>>   	bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
>>   	depends on ACPI
>> -	select QFW if QEMU
>> +	select QFW if QEMU || TARGET_QEMU_VIRT
>>   	help
>>   	  The Advanced Configuration and Power Interface (ACPI) specification
>>   	  provides an open standard for device configuration and management
> 
> In this case we aren't "generating" the table, we're using the table
> we've been passed, yes? I think that further shows the need to add a
> symbol which means that, and use it where appropriate. Or am I
> misunderstanding the GENERATE_ACPI_TABLE symbol?
> 

If you look at drivers/misc/qfw.c you will find, that we only read ACPI 
tables created in QEMU if CONFIG_GNERATE_ACPI_TABLE=y. This contradicts 
the long text of the configuration symbol.

CONFIG_GNERATE_ACPI_TABLE is used to decide if we publish a device-tree 
in the EFI sub-system.

Simon tried to clean up EFI a bit in 53e8e6f98679 ("efi: x86: Correct 
the condition for installing ACPI tables") but did not change cmd/bootefi.c.

I would agree to calling the current usage of the symbol incoherent.

Best regards

Heinrich


More information about the U-Boot mailing list