[PATCH v2 2/3] misc: introduce Qcom GENI wrapper
Tom Rini
trini at konsulko.com
Wed Jun 11 00:59:44 CEST 2025
On Tue, Jun 10, 2025 at 06:50:51PM +0200, Casey Connolly wrote:
> Qualcomm peripherals like UART, SPI, I2C, etc are all exposed under a
> common GENI Serial Engine wrapper device. Replace the stub driver we use
> for this currently with a full-on misc device and implement support for
> loading peripheral firmware.
>
> Each of the peripherals has it's own protocol-specific firmware, this is
> stored on the internal storage of the device with a well-known partition
> type GUID.
>
> To support this, GENI will bind peripherals in two stages. First the
> ones that already have firmware loaded (such as the serial port) are
> bound in the typical way. But devices that require firmware loading are
> deferred until EVT_LAST_STAGE_INIT. At this point we can be sure that
> the storage device is available, so we load the firmware and then bind
> and probe the remaining children.
>
> Child devices are expected to determine if firmware loading is necessary
> and call qcom_geni_load_firmware().
>
> Since Linux currently doesn't support loading firmware (and firmware may
> not be available), we probe all GENI peripherals to ensure that they
> always load firmware if necessary.
>
> Signed-off-by: Casey Connolly <casey.connolly at linaro.org>
[snip]
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 579c8acfcb466122c4fe66950ec7ca24c355b43a..5b83e3386be6ab7fa8d7f5306851d90a87fb75c3 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1124,8 +1124,9 @@ config ARCH_SNAPDRAGON
> select LINUX_KERNEL_IMAGE_HEADER if !ENABLE_ARM_SOC_BOOT0_HOOK
> select SYSRESET
> select SYSRESET_PSCI
> select ANDROID_BOOT_IMAGE_IGNORE_BLOB_ADDR
> + select QCOM_GENI
> imply OF_UPSTREAM
> imply CMD_DM
> imply DM_USB_GADGET
>
> diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
> index ffc5868c0dd3e884fddb98b10f4b878d3f08b43a..78aaf003852aab96450963d93678787d30892f1b 100644
> --- a/drivers/misc/Kconfig
> +++ b/drivers/misc/Kconfig
> @@ -82,8 +82,17 @@ config GATEWORKS_SC
> Enable access for the Gateworks System Controller used on Gateworks
> boards to provide a boot watchdog, power control, temperature monitor,
> voltage ADCs, and EEPROM.
>
> +config QCOM_GENI
> + bool "Qualcomm Generic Interface (GENI) driver"
> + depends on MISC
So, this can get tricky. In ARCH_SNAPDRAGON you do not select MISC.
QCOM_GENI correctly depends on MISC. Therefore there's a possible
dependency problem that Kconfig might start complaining about. In fact,
using qconfig to poke at what has which things set:
dragonboard410c dragonboard820c hmibsc qcom_ipq9574_mmc
should all have some warning? But IIRC, annoyingly, we couldn't
figure out how to make those kind of Kconfig warnings fatal in CI.
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250610/131fc174/attachment.sig>
More information about the U-Boot
mailing list