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.conno...@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
signature.asc
Description: PGP signature