diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/boards/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/boards/qemu-virt/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/boards/qemu-virt/board.c | 36 | ||||
-rw-r--r-- | arch/arm/mach-vexpress/Kconfig | 4 |
5 files changed, 43 insertions, 1 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index a8ebfecd9b..ab0bf03013 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -216,7 +216,7 @@ config ARCH_VERSATILE select HAS_DEBUG_LL config ARCH_VEXPRESS - bool "ARM Vexpres boards" + bool "ARM Vexpress & virt boards" select HAS_DEBUG_LL select CPU_V7 select ARM_AMBA diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile index a02d80d2da..81c228efd6 100644 --- a/arch/arm/boards/Makefile +++ b/arch/arm/boards/Makefile @@ -164,6 +164,7 @@ obj-$(CONFIG_MACH_ZYLONITE) += zylonite/ obj-$(CONFIG_MACH_VARISCITE_MX6) += variscite-mx6/ obj-$(CONFIG_MACH_VSCOM_BALTOS) += vscom-baltos/ obj-$(CONFIG_MACH_QEMU_VIRT64) += qemu-virt64/ +obj-$(CONFIG_MACH_VIRT) += qemu-virt/ obj-$(CONFIG_MACH_WARP7) += element14-warp7/ obj-$(CONFIG_MACH_WEBASTO_CCBV2) += webasto-ccbv2/ obj-$(CONFIG_MACH_VF610_TWR) += freescale-vf610-twr/ diff --git a/arch/arm/boards/qemu-virt/Makefile b/arch/arm/boards/qemu-virt/Makefile new file mode 100644 index 0000000000..dcfc2937d3 --- /dev/null +++ b/arch/arm/boards/qemu-virt/Makefile @@ -0,0 +1 @@ +obj-y += board.o diff --git a/arch/arm/boards/qemu-virt/board.c b/arch/arm/boards/qemu-virt/board.c new file mode 100644 index 0000000000..3aeea1a017 --- /dev/null +++ b/arch/arm/boards/qemu-virt/board.c @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2020 Pengutronix e.K. + * + */ +#include <common.h> +#include <init.h> +#include <asm/system_info.h> + +static int virt_probe(struct device_d *dev) +{ + char *hostname = "virt"; + + if (cpu_is_cortex_a7()) + hostname = "virt-a7"; + else if (cpu_is_cortex_a15()) + hostname = "virt-a15"; + + barebox_set_model("ARM QEMU virt"); + barebox_set_hostname(hostname); + + return 0; +} + +static const struct of_device_id virt_of_match[] = { + { .compatible = "linux,dummy-virt" }, + { /* Sentinel */}, +}; + +static struct driver_d virt_board_driver = { + .name = "board-qemu-virt", + .probe = virt_probe, + .of_compatible = virt_of_match, +}; + +postcore_platform_driver(virt_board_driver); diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig index 38b9dffb17..9d301f7ae8 100644 --- a/arch/arm/mach-vexpress/Kconfig +++ b/arch/arm/mach-vexpress/Kconfig @@ -7,5 +7,9 @@ config ARCH_TEXT_BASE config MACH_VEXPRESS bool "ARM Vexpress" +config MACH_VIRT + bool "QEMU virt" + select ARM_PSCI_CLIENT + select BOARD_ARM_GENERIC_DT endif |