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

View File

@ -11,12 +11,12 @@ choice
default ARCH_CHIP_QEMU
config ARCH_CHIP_QEMU
bool "QEMU virt platform (cortex-a53)"
bool "QEMU virt platform (ARMv8a)"
select ARCH_CORTEX_A53
select ARCH_HAVE_ADDRENV
select ARCH_NEED_ADDRENV_MAPPING
---help---
QEMU virt platform (cortex-a53)
QEMU virt platform (ARMv8a)
endchoice
@ -40,6 +40,30 @@ config ARCH_CORTEX_A53
select ARCH_HAVE_FPU
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
bool
default n

View File

@ -36,6 +36,10 @@ endif
ifeq ($(CONFIG_ARCH_CORTEX_A53),y)
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
ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)

View File

@ -16,6 +16,16 @@ config ARCH_CHIP_QEMU_A53
select ARCH_HAVE_MULTICPU
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
endmenu # "Qemu Chip Selection"

View File

@ -1707,13 +1707,13 @@ config ARCH_BOARD_SABRE_6QUAD
This options selects support for NuttX on the NXP/Freescale Sabre
board featuring the iMX 6Quad CPU.
config ARCH_BOARD_QEMU_A53
bool "Qemu A53 board"
config ARCH_BOARD_QEMU_ARMV8A
bool "Qemu ARMv8a CPUs board"
depends on ARCH_CHIP_QEMU
select ARCH_HAVE_IRQBUTTONS
---help---
This options selects support for NuttX on the QEMU A53
board featuring the qemu a53 CPU.
This options selects support for NuttX on the QEMU ARMv8a + virt
board featuring the qemu ARMv8a CPUs.
config ARCH_BOARD_SAMA5D2_XULT
bool "Atmel SAMA5D2 Xplained Ultra development board"
@ -2784,7 +2784,7 @@ config ARCH_BOARD
default "rv32m1-vega" if ARCH_BOARD_RV32M1_VEGA
default "rv-virt" if ARCH_BOARD_QEMU_RV_VIRT
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 "giant-board" if ARCH_BOARD_GIANT_BOARD
default "sama5d3x-ek" if ARCH_BOARD_SAMA5D3X_EK
@ -2969,8 +2969,8 @@ endif
if ARCH_BOARD_SABRE_6QUAD
source "boards/arm/imx6/sabre-6quad/Kconfig"
endif
if ARCH_BOARD_QEMU_A53
source "boards/arm64/qemu/qemu-a53/Kconfig"
if ARCH_BOARD_QEMU_ARMV8A
source "boards/arm64/qemu/qemu-armv8a/Kconfig"
endif
if ARCH_BOARD_IMXRT1020_EVK
source "boards/arm/imxrt/imxrt1020-evk/Kconfig"

View File

@ -3,5 +3,5 @@
# see the file kconfig-language.txt in the NuttX tools repository.
#
if ARCH_BOARD_QEMU_A53
if ARCH_BOARD_QEMU_ARMV8A
endif

View File

@ -1,7 +1,7 @@
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:
- GICv3 interrupt controller
@ -43,7 +43,7 @@ Getting Started
3. Configuring and running
3.1 Single Core
Configuring NuttX and compile:
$ ./tools/configure.sh -l qemu-a53:nsh
$ ./tools/configure.sh -l qemu-armv8a:nsh
$ make
Running with qemu
$ qemu-system-aarch64 -cpu cortex-a53 -nographic \
@ -53,7 +53,7 @@ Getting Started
3.2 SMP
Configuring NuttX and compile:
$ ./tools/configure.sh -l qemu-a53:nsh_smp
$ ./tools/configure.sh -l qemu-armv8a:nsh_smp
$ make
Running with qemu
$ qemu-system-aarch64 -cpu cortex-a53 -smp 4 -nographic \
@ -70,6 +70,11 @@ Getting Started
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:
1. It's very stranger to see that signal testing of ostest is PASSED at Physical Ubuntu PC

View File

@ -7,8 +7,8 @@
#
CONFIG_ARCH="arm64"
CONFIG_ARCH_ARM64=y
CONFIG_ARCH_BOARD="qemu-a53"
CONFIG_ARCH_BOARD_QEMU_A53=y
CONFIG_ARCH_BOARD="qemu-armv8a"
CONFIG_ARCH_BOARD_QEMU_ARMV8A=y
CONFIG_ARCH_CHIP="qemu"
CONFIG_ARCH_CHIP_QEMU=y
CONFIG_ARCH_CHIP_QEMU_A53=y

View File

@ -8,8 +8,8 @@
# CONFIG_ARCH_FPU is not set
CONFIG_ARCH="arm64"
CONFIG_ARCH_ARM64=y
CONFIG_ARCH_BOARD="qemu-a53"
CONFIG_ARCH_BOARD_QEMU_A53=y
CONFIG_ARCH_BOARD="qemu-armv8a"
CONFIG_ARCH_BOARD_QEMU_ARMV8A=y
CONFIG_ARCH_CHIP="qemu"
CONFIG_ARCH_CHIP_QEMU=y
CONFIG_ARCH_CHIP_QEMU_A53=y

View File

@ -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
* contributor license agreements. See the NOTICE file distributed with
@ -18,8 +18,8 @@
*
****************************************************************************/
#ifndef __BOARDS_ARM64_QEMU_QEMU_A53_INCLUDE_BOARD_MEMORYMAP_H
#define __BOARDS_ARM64_QEMU_QEMU_A53_INCLUDE_BOARD_MEMORYMAP_H
#ifndef __BOARDS_ARM64_QEMU_QEMU_ARMV8A_INCLUDE_BOARD_MEMORYMAP_H
#define __BOARDS_ARM64_QEMU_QEMU_ARMV8A_INCLUDE_BOARD_MEMORYMAP_H
/****************************************************************************
* Included Files
@ -56,4 +56,4 @@ extern "C"
#endif
#endif /* __ASSEMBLY__ */
#endif /* __BOARDS_ARM64_QEMU_QEMU_A53_INCLUDE_BOARD_MEMORYMAP_H */
#endif /* __BOARDS_ARM64_QEMU_QEMU_ARMV8A_INCLUDE_BOARD_MEMORYMAP_H */

View File

@ -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
# contributor license agreements. See the NOTICE file distributed with

View File

@ -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
* contributor license agreements. See the NOTICE file distributed with

View File

@ -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
# contributor license agreements. See the NOTICE file distributed with

View File

@ -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
* contributor license agreements. See the NOTICE file distributed with
@ -18,8 +18,8 @@
*
****************************************************************************/
#ifndef __BOARDS_ARM64_QEMU_QEMU_A53_SRC_QEMU_A53_H
#define __BOARDS_ARM64_QEMU_QEMU_A53_SRC_QEMU_A53_H
#ifndef __BOARDS_ARM64_QEMU_QEMU_ARMV8A_SRC_QEMU_ARMV8A_H
#define __BOARDS_ARM64_QEMU_QEMU_ARMV8A_SRC_QEMU_ARMV8A_H
/****************************************************************************
* Included Files
@ -56,4 +56,4 @@ int qemu_bringup(void);
#endif
#endif /* __ASSEMBLY__ */
#endif /* __BOARDS_ARM64_QEMU_QEMU_A53_SRC_QEMU_A53_H */
#endif /* __BOARDS_ARM64_QEMU_QEMU_ARMV8A_SRC_QEMU_ARMV8A_H */

View File

@ -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
* contributor license agreements. See the NOTICE file distributed with
@ -28,7 +28,7 @@
#include <nuttx/board.h>
#include "qemu-a53.h"
#include "qemu-armv8a.h"
#ifdef CONFIG_BOARDCTL

View File

@ -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
* contributor license agreements. See the NOTICE file distributed with
@ -25,7 +25,7 @@
#include <nuttx/config.h>
#include <stdint.h>
#include <nuttx/board.h>
#include "qemu-a53.h"
#include "qemu-armv8a.h"
/****************************************************************************
* Pre-processor Definitions

View File

@ -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
* contributor license agreements. See the NOTICE file distributed with
@ -29,7 +29,7 @@
#include <nuttx/fs/fs.h>
#include "qemu-a53.h"
#include "qemu-armv8a.h"
/****************************************************************************
* Public Functions

View File

@ -41,4 +41,4 @@
# with float, disable the cibuild check for MACOS
# it will be enbaled while new toolchain release
# /arm64/qemu/qemu-a53/configs/nsh_smp
# /arm64/qemu/qemu-armv8a/configs/nsh_smp