[U-Boot] [PATCH 03/19] riscv: qemu: Create a simple-bus driver for the soc node

Auer, Lukas lukas.auer at aisec.fraunhofer.de
Wed Nov 14 21:26:26 UTC 2018


Hi Bin,

On Tue, 2018-11-13 at 00:21 -0800, Bin Meng wrote:
> To enumerate devices on the /soc/ node, create a "simple-bus"
> driver to match "riscv-virtio-soc".
> 
> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
> ---
> 
>  arch/riscv/cpu/qemu/cpu.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 

Reviewed-by: Lukas Auer <lukas.auer at aisec.fraunhofer.de>

Would it makes sense to move this to cpu/ to make this driver available
to all RISC-V CPUs? I think most CPUs will need this driver to make
devices under the soc/ node available before relocation.

> diff --git a/arch/riscv/cpu/qemu/cpu.c b/arch/riscv/cpu/qemu/cpu.c
> index 6c7a327..221f3a8 100644
> --- a/arch/riscv/cpu/qemu/cpu.c
> +++ b/arch/riscv/cpu/qemu/cpu.c
> @@ -4,6 +4,7 @@
>   */
>  
>  #include <common.h>
> +#include <dm.h>
>  
>  /*
>   * cleanup_before_linux() is called just before we call linux
> @@ -19,3 +20,15 @@ int cleanup_before_linux(void)
>  
>  	return 0;
>  }
> +
> +/* To enumerate devices on the /soc/ node, create a "simple-bus"
> driver */
> +static const struct udevice_id riscv_virtio_soc_ids[] = {
> +	{ .compatible = "riscv-virtio-soc" },
> +	{ }
> +};
> +
> +U_BOOT_DRIVER(riscv_virtio_soc) = {
> +	.name = "riscv_virtio_soc",
> +	.id = UCLASS_SIMPLE_BUS,
> +	.of_match = riscv_virtio_soc_ids,
> +};

I think the DM_FLAG_PRE_RELOC flag should be set, since it is set for
the syscon driver for the clint0.

Thanks,
Lukas


More information about the U-Boot mailing list