mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-06-09 23:36:03 +09:00
ARM: qemu-arm: Add support for AArch64
This adds support for '-machine virt' on AArch64. This is rather simple: we just add TARGET_QEMU_ARM_xxBIT to select a few different Kconfig symbols, provide the ARMv8 memory map from the board file and add a new defconfig based on the 32-bit defconfig. Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
6b3d4f3def
commit
ddcca73051
|
@ -675,8 +675,6 @@ config ARCH_MX5
|
||||||
|
|
||||||
config ARCH_QEMU
|
config ARCH_QEMU
|
||||||
bool "QEMU Virtual Platform"
|
bool "QEMU Virtual Platform"
|
||||||
select CPU_V7
|
|
||||||
select ARCH_SUPPORT_PSCI
|
|
||||||
select DM
|
select DM
|
||||||
select DM_SERIAL
|
select DM_SERIAL
|
||||||
select OF_CONTROL
|
select OF_CONTROL
|
||||||
|
|
|
@ -10,3 +10,14 @@ config SYS_CONFIG_NAME
|
||||||
default "qemu-arm"
|
default "qemu-arm"
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
config TARGET_QEMU_ARM_32BIT
|
||||||
|
bool "Support qemu_arm"
|
||||||
|
depends on ARCH_QEMU
|
||||||
|
select CPU_V7
|
||||||
|
select ARCH_SUPPORT_PSCI
|
||||||
|
|
||||||
|
config TARGET_QEMU_ARM_64BIT
|
||||||
|
bool "Support qemu_arm64"
|
||||||
|
depends on ARCH_QEMU
|
||||||
|
select ARM64
|
||||||
|
|
|
@ -4,3 +4,4 @@ S: Maintained
|
||||||
F: board/emulation/qemu-arm/
|
F: board/emulation/qemu-arm/
|
||||||
F: include/configs/qemu-arm.h
|
F: include/configs/qemu-arm.h
|
||||||
F: configs/qemu_arm_defconfig
|
F: configs/qemu_arm_defconfig
|
||||||
|
F: configs/qemu_arm64_defconfig
|
||||||
|
|
|
@ -6,6 +6,41 @@
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <fdtdec.h>
|
#include <fdtdec.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARM64
|
||||||
|
#include <asm/armv8/mmu.h>
|
||||||
|
|
||||||
|
static struct mm_region qemu_arm64_mem_map[] = {
|
||||||
|
{
|
||||||
|
/* Flash */
|
||||||
|
.virt = 0x00000000UL,
|
||||||
|
.phys = 0x00000000UL,
|
||||||
|
.size = 0x08000000UL,
|
||||||
|
.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
||||||
|
PTE_BLOCK_INNER_SHARE
|
||||||
|
}, {
|
||||||
|
/* Peripherals */
|
||||||
|
.virt = 0x08000000UL,
|
||||||
|
.phys = 0x08000000UL,
|
||||||
|
.size = 0x38000000,
|
||||||
|
.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
|
||||||
|
PTE_BLOCK_NON_SHARE |
|
||||||
|
PTE_BLOCK_PXN | PTE_BLOCK_UXN
|
||||||
|
}, {
|
||||||
|
/* RAM */
|
||||||
|
.virt = 0x40000000UL,
|
||||||
|
.phys = 0x40000000UL,
|
||||||
|
.size = 0xc0000000UL,
|
||||||
|
.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
||||||
|
PTE_BLOCK_INNER_SHARE
|
||||||
|
}, {
|
||||||
|
/* List terminator */
|
||||||
|
0,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mm_region *mem_map = qemu_arm64_mem_map;
|
||||||
|
#endif
|
||||||
|
|
||||||
int board_init(void)
|
int board_init(void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
|
29
configs/qemu_arm64_defconfig
Normal file
29
configs/qemu_arm64_defconfig
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
CONFIG_ARM=y
|
||||||
|
CONFIG_ARM_SMCCC=y
|
||||||
|
CONFIG_ARCH_QEMU=y
|
||||||
|
CONFIG_TARGET_QEMU_ARM_64BIT=y
|
||||||
|
CONFIG_AHCI=y
|
||||||
|
CONFIG_DISTRO_DEFAULTS=y
|
||||||
|
# CONFIG_DISPLAY_CPUINFO is not set
|
||||||
|
# CONFIG_DISPLAY_BOARDINFO is not set
|
||||||
|
CONFIG_CMD_PCI=y
|
||||||
|
CONFIG_CMD_USB=y
|
||||||
|
CONFIG_OF_BOARD=y
|
||||||
|
CONFIG_SCSI_AHCI=y
|
||||||
|
CONFIG_AHCI_PCI=y
|
||||||
|
CONFIG_BLK=y
|
||||||
|
# CONFIG_MMC is not set
|
||||||
|
CONFIG_DM_ETH=y
|
||||||
|
CONFIG_E1000=y
|
||||||
|
CONFIG_NVME=y
|
||||||
|
CONFIG_PCI=y
|
||||||
|
CONFIG_DM_PCI=y
|
||||||
|
CONFIG_PCIE_ECAM_GENERIC=y
|
||||||
|
CONFIG_SCSI=y
|
||||||
|
CONFIG_DM_SCSI=y
|
||||||
|
CONFIG_SYSRESET=y
|
||||||
|
CONFIG_SYSRESET_PSCI=y
|
||||||
|
CONFIG_USB=y
|
||||||
|
CONFIG_DM_USB=y
|
||||||
|
CONFIG_USB_EHCI_HCD=y
|
||||||
|
CONFIG_USB_EHCI_PCI=y
|
|
@ -1,6 +1,7 @@
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_ARM_SMCCC=y
|
CONFIG_ARM_SMCCC=y
|
||||||
CONFIG_ARCH_QEMU=y
|
CONFIG_ARCH_QEMU=y
|
||||||
|
CONFIG_TARGET_QEMU_ARM_32BIT=y
|
||||||
CONFIG_AHCI=y
|
CONFIG_AHCI=y
|
||||||
CONFIG_DISTRO_DEFAULTS=y
|
CONFIG_DISTRO_DEFAULTS=y
|
||||||
# CONFIG_DISPLAY_CPUINFO is not set
|
# CONFIG_DISPLAY_CPUINFO is not set
|
||||||
|
|
Loading…
Reference in New Issue
Block a user