1bb231de81
[ Upstream commit 37fd83916da2e4cae03d350015c82a67b1b334c4 ]
The Google Coreboot implementation requires IOMEM functions
(memmremap, memunmap, devm_memremap), but does not specify this is its
Kconfig. This results in build errors when HAS_IOMEM is not set, such as
on some UML configurations:
/usr/bin/ld: drivers/firmware/google/coreboot_table.o: in function `coreboot_table_probe':
coreboot_table.c:(.text+0x311): undefined reference to `memremap'
/usr/bin/ld: coreboot_table.c:(.text+0x34e): undefined reference to `memunmap'
/usr/bin/ld: drivers/firmware/google/memconsole-coreboot.o: in function `memconsole_probe':
memconsole-coreboot.c:(.text+0x12d): undefined reference to `memremap'
/usr/bin/ld: memconsole-coreboot.c:(.text+0x17e): undefined reference to `devm_memremap'
/usr/bin/ld: memconsole-coreboot.c:(.text+0x191): undefined reference to `memunmap'
/usr/bin/ld: drivers/firmware/google/vpd.o: in function `vpd_section_destroy.isra.0':
vpd.c:(.text+0x300): undefined reference to `memunmap'
/usr/bin/ld: drivers/firmware/google/vpd.o: in function `vpd_section_init':
vpd.c:(.text+0x382): undefined reference to `memremap'
/usr/bin/ld: vpd.c:(.text+0x459): undefined reference to `memunmap'
/usr/bin/ld: drivers/firmware/google/vpd.o: in function `vpd_probe':
vpd.c:(.text+0x59d): undefined reference to `memremap'
/usr/bin/ld: vpd.c:(.text+0x5d3): undefined reference to `memunmap'
collect2: error: ld returned 1 exit status
Fixes: a28aad66da
("firmware: coreboot: Collapse platform drivers into bus core")
Acked-By: anton ivanov <anton.ivanov@cambridgegreys.com>
Acked-By: Julius Werner <jwerner@chromium.org>
Signed-off-by: David Gow <davidgow@google.com>
Link: https://lore.kernel.org/r/20220225041502.1901806-1-davidgow@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
78 lines
2.3 KiB
Plaintext
78 lines
2.3 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
menuconfig GOOGLE_FIRMWARE
|
|
bool "Google Firmware Drivers"
|
|
default n
|
|
help
|
|
These firmware drivers are used by Google servers,
|
|
Chromebooks and other devices using coreboot firmware.
|
|
If in doubt, say "N".
|
|
|
|
if GOOGLE_FIRMWARE
|
|
|
|
config GOOGLE_SMI
|
|
tristate "SMI interface for Google platforms"
|
|
depends on X86 && ACPI && DMI
|
|
help
|
|
Say Y here if you want to enable SMI callbacks for Google
|
|
platforms. This provides an interface for writing to and
|
|
clearing the event log. If EFI_VARS is also enabled this
|
|
driver provides an interface for reading and writing NVRAM
|
|
variables.
|
|
|
|
config GOOGLE_COREBOOT_TABLE
|
|
tristate "Coreboot Table Access"
|
|
depends on HAS_IOMEM && (ACPI || OF)
|
|
help
|
|
This option enables the coreboot_table module, which provides other
|
|
firmware modules access to the coreboot table. The coreboot table
|
|
pointer is accessed through the ACPI "GOOGCB00" object or the
|
|
device tree node /firmware/coreboot.
|
|
If unsure say N.
|
|
|
|
config GOOGLE_COREBOOT_TABLE_ACPI
|
|
tristate
|
|
select GOOGLE_COREBOOT_TABLE
|
|
|
|
config GOOGLE_COREBOOT_TABLE_OF
|
|
tristate
|
|
select GOOGLE_COREBOOT_TABLE
|
|
|
|
config GOOGLE_MEMCONSOLE
|
|
tristate
|
|
depends on GOOGLE_MEMCONSOLE_X86_LEGACY || GOOGLE_MEMCONSOLE_COREBOOT
|
|
|
|
config GOOGLE_MEMCONSOLE_X86_LEGACY
|
|
tristate "Firmware Memory Console - X86 Legacy support"
|
|
depends on X86 && ACPI && DMI
|
|
select GOOGLE_MEMCONSOLE
|
|
help
|
|
This option enables the kernel to search for a firmware log in
|
|
the EBDA on Google servers. If found, this log is exported to
|
|
userland in the file /sys/firmware/log.
|
|
|
|
config GOOGLE_FRAMEBUFFER_COREBOOT
|
|
tristate "Coreboot Framebuffer"
|
|
depends on FB_SIMPLE
|
|
depends on GOOGLE_COREBOOT_TABLE
|
|
help
|
|
This option enables the kernel to search for a framebuffer in
|
|
the coreboot table. If found, it is registered with simplefb.
|
|
|
|
config GOOGLE_MEMCONSOLE_COREBOOT
|
|
tristate "Firmware Memory Console"
|
|
depends on GOOGLE_COREBOOT_TABLE
|
|
select GOOGLE_MEMCONSOLE
|
|
help
|
|
This option enables the kernel to search for a firmware log in
|
|
the coreboot table. If found, this log is exported to userland
|
|
in the file /sys/firmware/log.
|
|
|
|
config GOOGLE_VPD
|
|
tristate "Vital Product Data"
|
|
depends on GOOGLE_COREBOOT_TABLE
|
|
help
|
|
This option enables the kernel to expose the content of Google VPD
|
|
under /sys/firmware/vpd.
|
|
|
|
endif # GOOGLE_FIRMWARE
|