b31054b1e3
This PR adds support for PINE64 PinePhone and the Allwinner A64 SoC (based on Arm Cortex-A53). With this PR, PinePhone boots successfully to nsh (via microSD Card) and runs console apps. - `arch/arm64/Kconfig`: Added Allwinner A64 SoC - `boards/Kconfig`: Added PINE64 PinePhone - `arch/arm64/src/a64/Kconfig`: New Kconfig for Allwinner A64 SoC - `boards/arm64/a64/pinephone/Kconfig`: New Kconfig for PINE64 PinePhone - `src/a64/a64_boot.c`, `a64_boot.h`: Boot functions for Allwinner A64 - `src/a64/a64_lowputc.S`: Low-level console output - `src/a64/a64_serial.c`, `a64_serial.h`: A64 Serial Driver - `src/a64/chip.h`: A64 SoC Definitions - `include/a64/chip.h`: A64 Memory Map, Generic Interrupt Controller - `include/a64/irq.h`: A64 Interrupts - `src/a64/Make.defs`: Source files for A64 - `configs/nsh/defconfig`: Board Configuration for `pinephone:nsh` - `src/pinephone_appinit.c`: Init PinePhone - `src/pinephone_boardinit.c`: Init PinePhone - `src/pinephone_bringup.c`: Start PinePhone Drivers - `src/pinephone.h`: PinePhone Declarations - `include/board_memorymap.h`: PinePhone Memory Map - `scripts/dramboot.ld`: PinePhone Linker Script - `scripts/Make.defs`: Source files for PinePhone - `src/Makefile`: PinePhone Makefile - `platforms/arm/a64/boards/pinephone/index.rst`: Building and booting NuttX on PinePhone - `platforms/arm/a64/index.rst`: Overview of Allwinner A64 - `introduction/supported_platforms.rst`: Added Allwinner A64 - `introduction/detailed_support.rst`: Added Allwinner A64
125 lines
2.2 KiB
Plaintext
125 lines
2.2 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
if ARCH_ARM64
|
|
comment "ARM64 Options"
|
|
|
|
choice
|
|
prompt "ARM64 chip selection"
|
|
default ARCH_CHIP_QEMU
|
|
|
|
config ARCH_CHIP_A64
|
|
bool "Allwinner A64"
|
|
select ARCH_CORTEX_A53
|
|
select ARCH_HAVE_ADDRENV
|
|
select ARCH_NEED_ADDRENV_MAPPING
|
|
---help---
|
|
Allwinner A64 SoC
|
|
|
|
config ARCH_CHIP_QEMU
|
|
bool "QEMU virt platform (ARMv8a)"
|
|
select ARCH_CORTEX_A53
|
|
select ARCH_HAVE_ADDRENV
|
|
select ARCH_NEED_ADDRENV_MAPPING
|
|
---help---
|
|
QEMU virt platform (ARMv8a)
|
|
|
|
endchoice
|
|
|
|
config ARCH_ARMV8A
|
|
bool
|
|
default n
|
|
|
|
config ARCH_ARMV8R
|
|
bool
|
|
default n
|
|
|
|
config ARCH_CORTEX_A53
|
|
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_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
|
|
select ARCH_ARMV8R
|
|
select ARCH_DCACHE
|
|
select ARCH_ICACHE
|
|
select ARCH_HAVE_MPU
|
|
select ARCH_HAVE_TESTSET
|
|
|
|
config ARCH_FAMILY
|
|
string
|
|
default "armv8-a" if ARCH_ARMV8A
|
|
default "armv8-r" if ARCH_ARMV8R
|
|
|
|
config ARCH_CHIP
|
|
string
|
|
default "a64" if ARCH_CHIP_A64
|
|
default "qemu" if ARCH_CHIP_QEMU
|
|
|
|
config ARCH_HAVE_TRUSTZONE
|
|
bool
|
|
default n
|
|
---help---
|
|
Automatically selected to indicate that the ARM CPU supports
|
|
TrustZone.
|
|
|
|
config ARM_HAVE_NEON
|
|
bool
|
|
default n
|
|
---help---
|
|
Decide whether support NEON instruction
|
|
|
|
config ARM_GIC_VERSION
|
|
int "GIC version"
|
|
default 2 if ARCH_CHIP_A64
|
|
default 3
|
|
range 2 4
|
|
---help---
|
|
Version of Generic Interrupt Controller (GIC) supported by the
|
|
architecture
|
|
|
|
if ARCH_CHIP_A64
|
|
source "arch/arm64/src/a64/Kconfig"
|
|
endif
|
|
|
|
if ARCH_CHIP_QEMU
|
|
source "arch/arm64/src/qemu/Kconfig"
|
|
endif
|
|
|
|
endif # ARCH_ARM64
|