[PATCH v3 04/10] misc: qcom_geni: Add minicore support

Simon Glass sjg at chromium.org
Thu Apr 16 22:53:22 CEST 2026


Hi Varadarajan,

On 2026-04-16T05:39:18, Varadarajan Narayanan
<varadarajan.narayanan at oss.qualcomm.com> wrote:
> misc: qcom_geni: Add minicore support
>
> The qcom_geni driver reads an ELF from storage and configures a set of
> registers and programs the firmware to the GENI Serial Engine (GENI-SE)
> wrapper device for the expected functionality.
>
> Unlike the GENI-SE wrapper found in MSM SoCs, the IPQ5210's GENI-SE
> wrapper is pre-configured for one of the functions defined in 'enum
> geni_se_protocol_type'. Hence, the firmware download is not needed.
> Only the register configuration part is needed.
>
> Earlier, the boot stages before U-Boot would configure the GENI-SE (to
> access UART/SPI etc). Since for IPQ5210 U-Boot SPL, the previous stage
> (i.e. boot ROM) doesn't do that modify the driver to do the register
> configuration part alone without reading an ELF from the storage.
>
> Signed-off-by: Varadarajan Narayanan <varadarajan.narayanan at oss.qualcomm.com>
>
> drivers/misc/Kconfig              |   6 +++
>  drivers/misc/Makefile             |   1 +
>  drivers/misc/qcom_geni-minicore.c | 102 ++++++++++++++++++++++++++++++++++++++
>  drivers/misc/qcom_geni.c          |  94 ++++++++++++++++++++++++++++++-----
>  include/soc/qcom/geni-se.h        |   2 +
>  include/soc/qcom/qup-fw-load.h    |  15 ++++++
>  6 files changed, 208 insertions(+), 12 deletions(-)

> +config QCOM_GENI_MINICORE
> +     bool "Support minicores in Qualcomm Generic Interface (GENI) driver"
> +     depends on QCOM_GENI
> +     help
> +       Enable support for minicores in Qualcomm GENI and it's peripherals.

its

> +     } else if (IS_ENABLED(CONFIG_QCOM_GENI_MINICORE)) {
> +             struct qup_mini_core_info *qmc = info;
> +
> +             for (; qmc->serial_protocol != GENI_SE_INVALID_PROTO; qmc++)
> +                     if (qmc->serial_protocol == rsc->protocol)
> +                             break;
> +
> +             tmp_hdr.magic = MAGIC_NUM_SE;

Please add an error return when no matching protocol is found.

> +#define QUPV3_SE_HW_PARAM_2          0xe2c
> +#define GENI_USE_MINICORES           BIT(12)

SE_HW_PARAM_2 is already added in geni-se.h in this same patch - maybe
use the one in geni-se.h and move the GENI_USE_MINICORES definition
there as well?

Regards,
Simon


More information about the U-Boot mailing list