arm64: add Cortex-A57 and Cortex-A72 configurations

This change adds the following:
- Rename the board configuration name from qemu-a53 to qemu-v8a.
- Add the configurations for Cortex-A57 and Cortex-A72.

Signed-off-by: Hidenori Matsubayashi <hidenori.matsubayashi@gmail.com>
This commit is contained in:
Hidenori Matsubayashi
2022-10-13 22:32:59 +09:00
committed by Xiang Xiao
parent e9db7bbb8c
commit 28180b49d1
17 changed files with 78 additions and 35 deletions
+26 -2
View File
@@ -11,12 +11,12 @@ choice
default ARCH_CHIP_QEMU default ARCH_CHIP_QEMU
config ARCH_CHIP_QEMU config ARCH_CHIP_QEMU
bool "QEMU virt platform (cortex-a53)" bool "QEMU virt platform (ARMv8a)"
select ARCH_CORTEX_A53 select ARCH_CORTEX_A53
select ARCH_HAVE_ADDRENV select ARCH_HAVE_ADDRENV
select ARCH_NEED_ADDRENV_MAPPING select ARCH_NEED_ADDRENV_MAPPING
---help--- ---help---
QEMU virt platform (cortex-a53) QEMU virt platform (ARMv8a)
endchoice endchoice
@@ -40,6 +40,30 @@ config ARCH_CORTEX_A53
select ARCH_HAVE_FPU select ARCH_HAVE_FPU
select ARCH_HAVE_TESTSET select ARCH_HAVE_TESTSET
config ARCH_CORTEX_A57
bool
default n
select ARCH_ARMV8A
select ARM_HAVE_NEON
select ARCH_HAVE_TRUSTZONE
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MMU
select ARCH_HAVE_FPU
select ARCH_HAVE_TESTSET
config ARCH_CORTEX_A72
bool
default n
select ARCH_ARMV8A
select ARM_HAVE_NEON
select ARCH_HAVE_TRUSTZONE
select ARCH_DCACHE
select ARCH_ICACHE
select ARCH_HAVE_MMU
select ARCH_HAVE_FPU
select ARCH_HAVE_TESTSET
config ARCH_CORTEX_R82 config ARCH_CORTEX_R82
bool bool
default n default n
+4
View File
@@ -36,6 +36,10 @@ endif
ifeq ($(CONFIG_ARCH_CORTEX_A53),y) ifeq ($(CONFIG_ARCH_CORTEX_A53),y)
ARCHCPUFLAGS += -mtune=cortex-a53 ARCHCPUFLAGS += -mtune=cortex-a53
else ifeq ($(CONFIG_ARCH_CORTEX_A57),y)
ARCHCPUFLAGS += -mtune=cortex-a57
else ifeq ($(CONFIG_ARCH_CORTEX_A72),y)
ARCHCPUFLAGS += -mtune=cortex-a72
endif endif
ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y) ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)
+10
View File
@@ -16,6 +16,16 @@ config ARCH_CHIP_QEMU_A53
select ARCH_HAVE_MULTICPU select ARCH_HAVE_MULTICPU
select ARMV8A_HAVE_GICv3 select ARMV8A_HAVE_GICv3
config ARCH_CHIP_QEMU_A57
bool "Qemu virtual Processor (cortex-a57)"
select ARCH_HAVE_MULTICPU
select ARMV8A_HAVE_GICv3
config ARCH_CHIP_QEMU_A72
bool "Qemu virtual Processor (cortex-a72)"
select ARCH_HAVE_MULTICPU
select ARMV8A_HAVE_GICv3
endchoice # Qemu Chip Selection endchoice # Qemu Chip Selection
endmenu # "Qemu Chip Selection" endmenu # "Qemu Chip Selection"
+7 -7
View File
@@ -1707,13 +1707,13 @@ config ARCH_BOARD_SABRE_6QUAD
This options selects support for NuttX on the NXP/Freescale Sabre This options selects support for NuttX on the NXP/Freescale Sabre
board featuring the iMX 6Quad CPU. board featuring the iMX 6Quad CPU.
config ARCH_BOARD_QEMU_A53 config ARCH_BOARD_QEMU_ARMV8A
bool "Qemu A53 board" bool "Qemu ARMv8a CPUs board"
depends on ARCH_CHIP_QEMU depends on ARCH_CHIP_QEMU
select ARCH_HAVE_IRQBUTTONS select ARCH_HAVE_IRQBUTTONS
---help--- ---help---
This options selects support for NuttX on the QEMU A53 This options selects support for NuttX on the QEMU ARMv8a + virt
board featuring the qemu a53 CPU. board featuring the qemu ARMv8a CPUs.
config ARCH_BOARD_SAMA5D2_XULT config ARCH_BOARD_SAMA5D2_XULT
bool "Atmel SAMA5D2 Xplained Ultra development board" bool "Atmel SAMA5D2 Xplained Ultra development board"
@@ -2784,7 +2784,7 @@ config ARCH_BOARD
default "rv32m1-vega" if ARCH_BOARD_RV32M1_VEGA default "rv32m1-vega" if ARCH_BOARD_RV32M1_VEGA
default "rv-virt" if ARCH_BOARD_QEMU_RV_VIRT default "rv-virt" if ARCH_BOARD_QEMU_RV_VIRT
default "sabre-6quad" if ARCH_BOARD_SABRE_6QUAD default "sabre-6quad" if ARCH_BOARD_SABRE_6QUAD
default "qemu-a53" if ARCH_BOARD_QEMU_A53 default "qemu-armv8a" if ARCH_BOARD_QEMU_ARMV8A
default "sama5d2-xult" if ARCH_BOARD_SAMA5D2_XULT default "sama5d2-xult" if ARCH_BOARD_SAMA5D2_XULT
default "giant-board" if ARCH_BOARD_GIANT_BOARD default "giant-board" if ARCH_BOARD_GIANT_BOARD
default "sama5d3x-ek" if ARCH_BOARD_SAMA5D3X_EK default "sama5d3x-ek" if ARCH_BOARD_SAMA5D3X_EK
@@ -2969,8 +2969,8 @@ endif
if ARCH_BOARD_SABRE_6QUAD if ARCH_BOARD_SABRE_6QUAD
source "boards/arm/imx6/sabre-6quad/Kconfig" source "boards/arm/imx6/sabre-6quad/Kconfig"
endif endif
if ARCH_BOARD_QEMU_A53 if ARCH_BOARD_QEMU_ARMV8A
source "boards/arm64/qemu/qemu-a53/Kconfig" source "boards/arm64/qemu/qemu-armv8a/Kconfig"
endif endif
if ARCH_BOARD_IMXRT1020_EVK if ARCH_BOARD_IMXRT1020_EVK
source "boards/arm/imxrt/imxrt1020-evk/Kconfig" source "boards/arm/imxrt/imxrt1020-evk/Kconfig"
@@ -3,5 +3,5 @@
# see the file kconfig-language.txt in the NuttX tools repository. # see the file kconfig-language.txt in the NuttX tools repository.
# #
if ARCH_BOARD_QEMU_A53 if ARCH_BOARD_QEMU_ARMV8A
endif endif
@@ -1,7 +1,7 @@
README.txt README.txt
========== ==========
This board configuration will use QEMU to emulate a generic Cortex-A53 This board configuration will use QEMU to emulate generic ARM64 v8-A series
hardware platform and provides support for these devices: hardware platform and provides support for these devices:
- GICv3 interrupt controller - GICv3 interrupt controller
@@ -43,7 +43,7 @@ Getting Started
3. Configuring and running 3. Configuring and running
3.1 Single Core 3.1 Single Core
Configuring NuttX and compile: Configuring NuttX and compile:
$ ./tools/configure.sh -l qemu-a53:nsh $ ./tools/configure.sh -l qemu-armv8a:nsh
$ make $ make
Running with qemu Running with qemu
$ qemu-system-aarch64 -cpu cortex-a53 -nographic \ $ qemu-system-aarch64 -cpu cortex-a53 -nographic \
@@ -53,7 +53,7 @@ Getting Started
3.2 SMP 3.2 SMP
Configuring NuttX and compile: Configuring NuttX and compile:
$ ./tools/configure.sh -l qemu-a53:nsh_smp $ ./tools/configure.sh -l qemu-armv8a:nsh_smp
$ make $ make
Running with qemu Running with qemu
$ qemu-system-aarch64 -cpu cortex-a53 -smp 4 -nographic \ $ qemu-system-aarch64 -cpu cortex-a53 -smp 4 -nographic \
@@ -70,6 +70,11 @@ Getting Started
Status Status
====== ======
2022-10-13:
1. Renamed the board configuration name from qemu-a53 to qemu-v8a.
2. Added the configurations for Cortex-A57 and Cortex-A72.
2022-07-01: 2022-07-01:
1. It's very stranger to see that signal testing of ostest is PASSED at Physical Ubuntu PC 1. It's very stranger to see that signal testing of ostest is PASSED at Physical Ubuntu PC
@@ -7,8 +7,8 @@
# #
CONFIG_ARCH="arm64" CONFIG_ARCH="arm64"
CONFIG_ARCH_ARM64=y CONFIG_ARCH_ARM64=y
CONFIG_ARCH_BOARD="qemu-a53" CONFIG_ARCH_BOARD="qemu-armv8a"
CONFIG_ARCH_BOARD_QEMU_A53=y CONFIG_ARCH_BOARD_QEMU_ARMV8A=y
CONFIG_ARCH_CHIP="qemu" CONFIG_ARCH_CHIP="qemu"
CONFIG_ARCH_CHIP_QEMU=y CONFIG_ARCH_CHIP_QEMU=y
CONFIG_ARCH_CHIP_QEMU_A53=y CONFIG_ARCH_CHIP_QEMU_A53=y
@@ -8,8 +8,8 @@
# CONFIG_ARCH_FPU is not set # CONFIG_ARCH_FPU is not set
CONFIG_ARCH="arm64" CONFIG_ARCH="arm64"
CONFIG_ARCH_ARM64=y CONFIG_ARCH_ARM64=y
CONFIG_ARCH_BOARD="qemu-a53" CONFIG_ARCH_BOARD="qemu-armv8a"
CONFIG_ARCH_BOARD_QEMU_A53=y CONFIG_ARCH_BOARD_QEMU_ARMV8A=y
CONFIG_ARCH_CHIP="qemu" CONFIG_ARCH_CHIP="qemu"
CONFIG_ARCH_CHIP_QEMU=y CONFIG_ARCH_CHIP_QEMU=y
CONFIG_ARCH_CHIP_QEMU_A53=y CONFIG_ARCH_CHIP_QEMU_A53=y
@@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
* boards/arm64/qemu/qemu-a53/include/board_memorymap.h * boards/arm64/qemu/qemu-armv8a/include/board_memorymap.h
* *
* Licensed to the Apache Software Foundation (ASF) under one or more * Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with * contributor license agreements. See the NOTICE file distributed with
@@ -18,8 +18,8 @@
* *
****************************************************************************/ ****************************************************************************/
#ifndef __BOARDS_ARM64_QEMU_QEMU_A53_INCLUDE_BOARD_MEMORYMAP_H #ifndef __BOARDS_ARM64_QEMU_QEMU_ARMV8A_INCLUDE_BOARD_MEMORYMAP_H
#define __BOARDS_ARM64_QEMU_QEMU_A53_INCLUDE_BOARD_MEMORYMAP_H #define __BOARDS_ARM64_QEMU_QEMU_ARMV8A_INCLUDE_BOARD_MEMORYMAP_H
/**************************************************************************** /****************************************************************************
* Included Files * Included Files
@@ -56,4 +56,4 @@ extern "C"
#endif #endif
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
#endif /* __BOARDS_ARM64_QEMU_QEMU_A53_INCLUDE_BOARD_MEMORYMAP_H */ #endif /* __BOARDS_ARM64_QEMU_QEMU_ARMV8A_INCLUDE_BOARD_MEMORYMAP_H */
@@ -1,5 +1,5 @@
############################################################################ ############################################################################
# boards/arm64/qemu/qemu-a53/scripts/Make.defs # boards/arm64/qemu/qemu-armv8a/scripts/Make.defs
# #
# Licensed to the Apache Software Foundation (ASF) under one or more # Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with # contributor license agreements. See the NOTICE file distributed with
@@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
* boards/arm64/qemu/qemu-a53/scripts/dramboot.ld * boards/arm64/qemu/qemu-armv8a/scripts/dramboot.ld
* *
* Licensed to the Apache Software Foundation (ASF) under one or more * Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with * contributor license agreements. See the NOTICE file distributed with
@@ -1,5 +1,5 @@
############################################################################ ############################################################################
# boards/arm64/qemu/qemu-a53/src/Makefile # boards/arm64/qemu/qemu-armv8a/src/Makefile
# #
# Licensed to the Apache Software Foundation (ASF) under one or more # Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with # contributor license agreements. See the NOTICE file distributed with
@@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
* boards/arm64/qemu/qemu-a53/src/qemu-a53.h * boards/arm64/qemu/qemu-armv8a/src/qemu-armv8a.h
* *
* Licensed to the Apache Software Foundation (ASF) under one or more * Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with * contributor license agreements. See the NOTICE file distributed with
@@ -18,8 +18,8 @@
* *
****************************************************************************/ ****************************************************************************/
#ifndef __BOARDS_ARM64_QEMU_QEMU_A53_SRC_QEMU_A53_H #ifndef __BOARDS_ARM64_QEMU_QEMU_ARMV8A_SRC_QEMU_ARMV8A_H
#define __BOARDS_ARM64_QEMU_QEMU_A53_SRC_QEMU_A53_H #define __BOARDS_ARM64_QEMU_QEMU_ARMV8A_SRC_QEMU_ARMV8A_H
/**************************************************************************** /****************************************************************************
* Included Files * Included Files
@@ -56,4 +56,4 @@ int qemu_bringup(void);
#endif #endif
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
#endif /* __BOARDS_ARM64_QEMU_QEMU_A53_SRC_QEMU_A53_H */ #endif /* __BOARDS_ARM64_QEMU_QEMU_ARMV8A_SRC_QEMU_ARMV8A_H */
@@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
* boards/arm64/qemu/qemu-a53/src/qemu_appinit.c * boards/arm64/qemu/qemu-armv8a/src/qemu_appinit.c
* *
* Licensed to the Apache Software Foundation (ASF) under one or more * Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with * contributor license agreements. See the NOTICE file distributed with
@@ -28,7 +28,7 @@
#include <nuttx/board.h> #include <nuttx/board.h>
#include "qemu-a53.h" #include "qemu-armv8a.h"
#ifdef CONFIG_BOARDCTL #ifdef CONFIG_BOARDCTL
@@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
* boards/arm64/qemu/qemu-a53/src/qemu_boardinit.c * boards/arm64/qemu/qemu-armv8a/src/qemu_boardinit.c
* *
* Licensed to the Apache Software Foundation (ASF) under one or more * Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with * contributor license agreements. See the NOTICE file distributed with
@@ -25,7 +25,7 @@
#include <nuttx/config.h> #include <nuttx/config.h>
#include <stdint.h> #include <stdint.h>
#include <nuttx/board.h> #include <nuttx/board.h>
#include "qemu-a53.h" #include "qemu-armv8a.h"
/**************************************************************************** /****************************************************************************
* Pre-processor Definitions * Pre-processor Definitions
@@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
* boards/arm64/qemu/qemu-a53/src/qemu_bringup.c * boards/arm64/qemu/qemu-armv8a/src/qemu_bringup.c
* *
* Licensed to the Apache Software Foundation (ASF) under one or more * Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with * contributor license agreements. See the NOTICE file distributed with
@@ -29,7 +29,7 @@
#include <nuttx/fs/fs.h> #include <nuttx/fs/fs.h>
#include "qemu-a53.h" #include "qemu-armv8a.h"
/**************************************************************************** /****************************************************************************
* Public Functions * Public Functions
+1 -1
View File
@@ -41,4 +41,4 @@
# with float, disable the cibuild check for MACOS # with float, disable the cibuild check for MACOS
# it will be enbaled while new toolchain release # it will be enbaled while new toolchain release
# /arm64/qemu/qemu-a53/configs/nsh_smp # /arm64/qemu/qemu-armv8a/configs/nsh_smp