1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-06-06 02:40:18 +00:00

arm-bsp/fvp-base-arm32: remove support

fvp-base-arm32 isn't a real machine and supporting it has become hacky.
Drop support and remove from meta-arm-bsp

Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Jon Mason
2023-03-02 16:35:37 -05:00
parent b55cd3d627
commit e7c5876380
15 changed files with 0 additions and 472 deletions
-7
View File
@@ -104,13 +104,6 @@ fvp-base:
matrix:
- TESTING: testimage
fvp-base-arm32:
extends: .build
parallel:
matrix:
- TOOLCHAINS: [gcc, external-gccarm]
TESTING: testimage
fvp-baser-aemv8r64:
extends: .build
parallel:
-7
View File
@@ -1,7 +0,0 @@
header:
version: 11
includes:
- ci/base.yml
- ci/fvp.yml
machine: fvp-base-arm32
@@ -1,23 +0,0 @@
# Configuration for Armv7-A Base Platform FVP
#@TYPE: Machine
#@NAME: Armv7-A Base Platform FVP machine
#@DESCRIPTION: Machine configuration for Armv7-A Base Platform FVP model
require conf/machine/include/fvp-common.inc
require conf/machine/include/arm/arch-armv7a.inc
# FVP u-boot configuration
PREFERRED_VERSION_u-boot ?= "2022.04"
UBOOT_MACHINE = "vexpress_aemv8a_aarch32_defconfig"
KERNEL_IMAGETYPE = "zImage"
FVP_CONFIG[cluster0.cpu0.CONFIG64] = "0"
FVP_CONFIG[cluster0.cpu1.CONFIG64] = "0"
FVP_CONFIG[cluster0.cpu2.CONFIG64] = "0"
FVP_CONFIG[cluster0.cpu3.CONFIG64] = "0"
FVP_CONFIG[cluster1.cpu0.CONFIG64] = "0"
FVP_CONFIG[cluster1.cpu1.CONFIG64] = "0"
FVP_CONFIG[cluster1.cpu2.CONFIG64] = "0"
FVP_CONFIG[cluster1.cpu3.CONFIG64] = "0"
@@ -1,30 +0,0 @@
# Armv8-A Base Platform FVP (32-bit) Support in meta-arm-bsp
## Howto Build and Run
### Configuration:
In the local.conf file, `MACHINE` should be set:
```
MACHINE = "fvp-base-arm32"
```
### Build:
```
$ bitbake core-image-base
```
### Run:
The `fvp-base` machine has support for the `runfvp` script, so running is simple:
```
$ runfvp tmp/deploy/images/fvp-base-arm32/core-image-base-fvp-base-arm32.fvpconf
```
## Devices supported in the kernel
- serial
- virtio disk
- network
- watchdog
- rtc
## Devices not supported or not functional
None
@@ -1,12 +0,0 @@
# Armv7-A FVP specific TFA parameters
COMPATIBLE_MACHINE = "fvp-base-arm32"
TFA_PLATFORM = "fvp"
TFA_UBOOT = "1"
TFA_BUILD_TARGET = "dtbs bl1 bl32 fip"
EXTRA_OEMAKE:append = " \
ARCH=aarch32 \
AARCH32_SP=sp_min \
"
@@ -6,7 +6,6 @@ MACHINE_TFA_REQUIRE ?= ""
MACHINE_TFA_REQUIRE:corstone500 = "trusted-firmware-a-corstone500.inc"
MACHINE_TFA_REQUIRE:corstone1000 = "trusted-firmware-a-corstone1000.inc"
MACHINE_TFA_REQUIRE:fvp-base = "trusted-firmware-a-fvp.inc"
MACHINE_TFA_REQUIRE:fvp-base-arm32 = "trusted-firmware-a-fvp-arm32.inc"
MACHINE_TFA_REQUIRE:juno = "trusted-firmware-a-juno.inc"
MACHINE_TFA_REQUIRE:n1sdp = "trusted-firmware-a-n1sdp.inc"
MACHINE_TFA_REQUIRE:sgi575 = "trusted-firmware-a-sgi575.inc"
@@ -1,184 +0,0 @@
From 424d186ab0a0c4dd62dfb13ac87e8d1fd26c101e Mon Sep 17 00:00:00 2001
From: Anders Dellien <anders.dellien@arm.com>
Date: Thu, 23 Jul 2020 17:32:55 +0100
Subject: [PATCH 1/2] Add vexpress_aemv8a_aarch32 variant
The ARM AEMv8 FVP model can be run in Aarch64 or Aarch32 mode. Aarch32
support is enable per-CPU when launching the model, eg:
-C cluster0.cpu0.CONFIG64=0
This patch adds a new defconfig and some variant specific selections in
vexpress_armv8a.h.
This patch is co-authored with Soby Mathew <Soby.Mathew@arm.com>.
Upstream-Status: Denied
For upstream discussion, please visit
https://www.mail-archive.com/u-boot@lists.denx.de/msg233429.html
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Asha R <asha.r@arm.com>
Signed-off-by: Anders Dellien <anders.dellien@arm.com>
---
arch/arm/Kconfig | 5 +++
board/armltd/vexpress64/Kconfig | 2 +-
configs/vexpress_aemv8a_aarch32_defconfig | 40 ++++++++++++++++++
include/configs/vexpress_aemv8.h | 50 +++++++++++++++--------
4 files changed, 80 insertions(+), 17 deletions(-)
create mode 100644 configs/vexpress_aemv8a_aarch32_defconfig
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 4567c183fb84..99cc414d6760 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1250,6 +1250,11 @@ config TARGET_VEXPRESS64_BASE_FVP
select PL01X_SERIAL
select SEMIHOSTING
+config TARGET_VEXPRESS64_BASE_FVP_AARCH32
+ bool "Support Versatile Express ARMv8a 32-bit FVP BASE model"
+ select CPU_V7A
+ select SEMIHOSTING
+
config TARGET_VEXPRESS64_JUNO
bool "Support Versatile Express Juno Development Platform"
select ARM64
diff --git a/board/armltd/vexpress64/Kconfig b/board/armltd/vexpress64/Kconfig
index 4aab3f092ecb..0a5e3fcc004a 100644
--- a/board/armltd/vexpress64/Kconfig
+++ b/board/armltd/vexpress64/Kconfig
@@ -1,4 +1,4 @@
-if TARGET_VEXPRESS64_BASE_FVP || TARGET_VEXPRESS64_JUNO
+if TARGET_VEXPRESS64_BASE_FVP || TARGET_VEXPRESS64_JUNO || TARGET_VEXPRESS64_BASE_FVP_AARCH32
config SYS_BOARD
default "vexpress64"
diff --git a/configs/vexpress_aemv8a_aarch32_defconfig b/configs/vexpress_aemv8a_aarch32_defconfig
new file mode 100644
index 000000000000..9c5c3367ec4d
--- /dev/null
+++ b/configs/vexpress_aemv8a_aarch32_defconfig
@@ -0,0 +1,40 @@
+CONFIG_ARM=y
+CONFIG_SYS_ARCH_TIMER=y
+CONFIG_TARGET_VEXPRESS64_BASE_FVP_AARCH32=y
+CONFIG_SYS_TEXT_BASE=0x88000000
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_NR_DRAM_BANKS=2
+CONFIG_IDENT_STRING=" vexpress_aemv8a fvp aarch32"
+CONFIG_REMAKE_ELF=y
+CONFIG_SYS_LOAD_ADDR=0x90000000
+CONFIG_BOOTDELAY=1
+CONFIG_USE_BOOTARGS=y
+CONFIG_BOOTARGS="console=ttyAMA0 earlycon=pl011,0x1c090000 debug user_debug=31 systemd.log_target=null root=/dev/vda1 rw androidboot.hardware=fvpbase rootwait loglevel=9"
+# CONFIG_DISPLAY_CPUINFO is not set
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_PROMPT="fvp32# "
+# CONFIG_CMD_CONSOLE is not set
+CONFIG_CMD_BOOTZ=y
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_ENV_EXISTS is not set
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_ARMFLASH=y
+# CONFIG_CMD_LOADS is not set
+# CONFIG_CMD_ITEST is not set
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_DHCP=y
+# CONFIG_CMD_NFS is not set
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_FAT=y
+CONFIG_DM=y
+CONFIG_MTD_NOR_FLASH=y
+CONFIG_FLASH_CFI_DRIVER=y
+CONFIG_SYS_FLASH_CFI=y
+CONFIG_DM_SERIAL=y
+CONFIG_PL01X_SERIAL=y
+CONFIG_OF_LIBFDT=y
+CONFIG_REMAKE_ELF=y
diff --git a/include/configs/vexpress_aemv8.h b/include/configs/vexpress_aemv8.h
index f0c5ceb3849a..854fbb41bfc1 100644
--- a/include/configs/vexpress_aemv8.h
+++ b/include/configs/vexpress_aemv8.h
@@ -86,7 +86,7 @@
#endif
#endif /* !CONFIG_GICV3 */
-#if defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) && !defined(CONFIG_DM_ETH)
+#if (defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) || defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_AARCH32)) && !defined(CONFIG_DM_ETH)
/* The Vexpress64 BASE_FVP simulator uses SMSC91C111 */
#define CONFIG_SMC91111 1
#define CONFIG_SMC91111_BASE (V2M_PA_BASE + 0x01A000000)
@@ -114,7 +114,7 @@
#ifdef CONFIG_TARGET_VEXPRESS64_JUNO
#define PHYS_SDRAM_2 (0x880000000)
#define PHYS_SDRAM_2_SIZE 0x180000000
-#elif CONFIG_NR_DRAM_BANKS == 2
+#elif CONFIG_TARGET_VEXPRESS64_BASE_FVP && CONFIG_NR_DRAM_BANKS == 2
#define PHYS_SDRAM_2 (0x880000000)
#define PHYS_SDRAM_2_SIZE 0x80000000
#endif
@@ -171,23 +171,41 @@
"fdt_addr_r=0x80000000\0" \
BOOTENV
-#elif CONFIG_TARGET_VEXPRESS64_BASE_FVP
+#elif defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) || \
+ defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_AARCH32)
-#define VEXPRESS_KERNEL_ADDR 0x80080000
-#define VEXPRESS_FDT_ADDR 0x8fc00000
-#define VEXPRESS_BOOT_ADDR 0x8fd00000
-#define VEXPRESS_RAMDISK_ADDR 0x8fe00000
+#define VEXPRESS_KERNEL_ADDR 0x80080000
+#define VEXPRESS_FDT_ADDR 0x8fc00000
+#define VEXPRESS_BOOT_ADDR 0x8fd00000
+#define VEXPRESS_RAMDISK_ADDR 0x8fe00000
-#define CONFIG_EXTRA_ENV_SETTINGS \
+#define CONFIG_EXTRA_ENV_SETTINGS \
"kernel_name=Image\0" \
- "kernel_addr_r=" __stringify(VEXPRESS_KERNEL_ADDR) "\0" \
- "ramdisk_name=ramdisk.img\0" \
- "ramdisk_addr_r=" __stringify(VEXPRESS_RAMDISK_ADDR) "\0" \
- "fdtfile=devtree.dtb\0" \
- "fdt_addr_r=" __stringify(VEXPRESS_FDT_ADDR) "\0" \
- "boot_name=boot.img\0" \
- "boot_addr_r=" __stringify(VEXPRESS_BOOT_ADDR) "\0"
-
+ "kernel_addr_r=" __stringify(VEXPRESS_KERNEL_ADDR) "\0" \
+ "ramdisk_name=ramdisk.img\0" \
+ "ramdisk_addr_r=" __stringify(VEXPRESS_RAMDISK_ADDR) "\0" \
+ "fdtfile=devtree.dtb\0" \
+ "fdt_addr_r=" __stringify(VEXPRESS_FDT_ADDR) "\0" \
+ "boot_name=boot.img\0" \
+ "boot_addr_r=" __stringify(VEXPRESS_BOOT_ADDR) "\0"
+
+#ifndef CONFIG_BOOTCOMMAND
+#define CONFIG_BOOTCOMMAND "if smhload ${boot_name} ${boot_addr_r}; then " \
+ " set bootargs; " \
+ " abootimg addr ${boot_addr_r}; " \
+ " abootimg get dtb --index=0 fdt_addr_r; " \
+ " bootm ${boot_addr_r} ${boot_addr_r} " \
+ " ${fdt_addr_r}; " \
+ "else; " \
+ " smhload ${kernel_name} ${kernel_addr_r}; " \
+ " smhload ${fdtfile} ${fdt_addr_r}; " \
+ " smhload ${ramdisk_name} ${initrd_addr_r} "\
+ " initrd_end; " \
+ " fdt addr ${fdt_addr_r}; fdt resize; " \
+ " fdt chosen ${ramdisk_addr_r} ${initrd_end}; " \
+ " bootz $kernel_addr_r - $fdt_addr_r; " \
+ "fi"
+#endif
#endif
/* Monitor Command Prompt */
--
2.30.2
@@ -1,111 +0,0 @@
From e896d48c57d272327410416887f34ac0db550390 Mon Sep 17 00:00:00 2001
From: Jon Mason <jdmason@kudzu.us>
Date: Mon, 13 Jun 2022 10:59:53 -0400
Subject: [PATCH 2/2] Revert "vexpress64: Enable OF_CONTROL and OF_BOARD for
VExpress64"
This patch only works for aarch64 (as the 'x' registers are not
available for ARMv7). Since this platform is ARMv7 in the previous
patch, this either needs to be changed or removed. I opted to remove
it, as it doesn't seem to be necessary to boot the virtual hardware.
Given that the previous patch was rejected upstream, it is not
appropriate to fix this upstream.
Upstream-Status: Inappropriate
Signed-off-by: Jon Mason <jon.mason@arm.com>
This reverts commit 2661397464e47d45cd25bbc5e6b9de7594b3268d.
---
board/armltd/vexpress64/Makefile | 2 +-
board/armltd/vexpress64/lowlevel_init.S | 12 ------------
board/armltd/vexpress64/vexpress64.c | 26 -------------------------
3 files changed, 1 insertion(+), 39 deletions(-)
delete mode 100644 board/armltd/vexpress64/lowlevel_init.S
diff --git a/board/armltd/vexpress64/Makefile b/board/armltd/vexpress64/Makefile
index 1878fbed4ec9..868dc4f629f2 100644
--- a/board/armltd/vexpress64/Makefile
+++ b/board/armltd/vexpress64/Makefile
@@ -3,5 +3,5 @@
# (C) Copyright 2000-2004
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-obj-y := vexpress64.o lowlevel_init.o
+obj-y := vexpress64.o
obj-$(CONFIG_TARGET_VEXPRESS64_JUNO) += pcie.o
diff --git a/board/armltd/vexpress64/lowlevel_init.S b/board/armltd/vexpress64/lowlevel_init.S
deleted file mode 100644
index 3dcfb85d0e9a..000000000000
--- a/board/armltd/vexpress64/lowlevel_init.S
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * (C) Copyright 2021 Arm Limited
- */
-
-.global save_boot_params
-save_boot_params:
-
- adr x8, prior_stage_fdt_address
- str x0, [x8]
-
- b save_boot_params_ret
diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c
index 5e22e89824ee..cedab86d984b 100644
--- a/board/armltd/vexpress64/vexpress64.c
+++ b/board/armltd/vexpress64/vexpress64.c
@@ -92,15 +92,7 @@ int dram_init_banksize(void)
return 0;
}
-/* Assigned in lowlevel_init.S
- * Push the variable into the .data section so that it
- * does not get cleared later.
- */
-unsigned long __section(".data") prior_stage_fdt_address;
-
#ifdef CONFIG_OF_BOARD
-
-#ifdef CONFIG_TARGET_VEXPRESS64_JUNO
#define JUNO_FLASH_SEC_SIZE (256 * 1024)
static phys_addr_t find_dtb_in_nor_flash(const char *partname)
{
@@ -145,11 +137,9 @@ static phys_addr_t find_dtb_in_nor_flash(const char *partname)
return ~0;
}
-#endif
void *board_fdt_blob_setup(int *err)
{
-#ifdef CONFIG_TARGET_VEXPRESS64_JUNO
phys_addr_t fdt_rom_addr = find_dtb_in_nor_flash(CONFIG_JUNO_DTB_PART);
*err = 0;
@@ -159,22 +149,6 @@ void *board_fdt_blob_setup(int *err)
}
return (void *)fdt_rom_addr;
-#endif
-
-#ifdef VEXPRESS_FDT_ADDR
- if (fdt_magic(VEXPRESS_FDT_ADDR) == FDT_MAGIC) {
- *err = 0;
- return (void *)VEXPRESS_FDT_ADDR;
- }
-#endif
-
- if (fdt_magic(prior_stage_fdt_address) == FDT_MAGIC) {
- *err = 0;
- return (void *)prior_stage_fdt_address;
- }
-
- *err = -ENXIO;
- return NULL;
}
#endif
--
2.30.2
@@ -53,13 +53,6 @@ SRC_URI:append:fvp-base = " file://bootargs.cfg \
file://0001-Revert-vexpress64-pick-DRAM-size-from-DT.patch \
"
#
# FVP BASE ARM32
#
SRC_URI:append:fvp-base-arm32 = " file://0001-Add-vexpress_aemv8a_aarch32-variant.patch \
file://0002-Revert-vexpress64-Enable-OF_CONTROL-and-OF_BOARD-for.patch \
"
#
# FVP BASER
#
@@ -1,8 +0,0 @@
define KMACHINE fvp-arm32
define KTYPE standard
define KARCH arm
include ktypes/standard/standard.scc
include fvp-arm32.scc
@@ -1,14 +0,0 @@
include features/input/input.scc
include features/net/net.scc
include cfg/timer/no_hz.scc
include cfg/virtio.scc
kconf hardware fvp-arm32/fvp-board.cfg
kconf hardware fvp-arm32/fvp-features.cfg
kconf hardware fvp/fvp-net.cfg
kconf hardware fvp/fvp-rtc.cfg
kconf hardware fvp/fvp-serial.cfg
kconf hardware fvp/fvp-cfi.cfg
kconf hardware fvp/fvp-drm.cfg
kconf hardware fvp/fvp-timer.cfg
kconf hardware fvp/fvp-watchdog.cfg
@@ -1,12 +0,0 @@
CONFIG_ARM=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_SMP=y
CONFIG_NR_CPUS=8
CONFIG_HOTPLUG_CPU=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_CPU_IDLE=y
CONFIG_ARM_CPUIDLE=y
@@ -1,9 +0,0 @@
CONFIG_BINFMT_MISC=y
CONFIG_BOUNCE=y
CONFIG_HIGHMEM=y
CONFIG_HIGHPTE=y
CONFIG_KERNEL_MODE_NEON=y
CONFIG_NEON=y
CONFIG_VFP=y
CONFIG_VFPv3=y
@@ -1,31 +0,0 @@
From 9fe529a146f4528ec80a3d04588e387f3651dc22 Mon Sep 17 00:00:00 2001
From: Ryan Harkin <ryan.harkin@linaro.org>
Date: Wed, 16 Nov 2016 14:43:02 +0000
Subject: [PATCH] ARM: vexpress: enable GICv3
Upstream-Status: Pending
ARMv8 targets such as ARM's FVP Cortex-A32 model can run the 32-bit
ARMv7 kernel. And these targets often contain GICv3.
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Jon Medhurst <tixy@linaro.org>
---
arch/arm/mach-versatile/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
index 2ef226194c3a..3d54877fe339 100644
--- a/arch/arm/mach-versatile/Kconfig
+++ b/arch/arm/mach-versatile/Kconfig
@@ -251,6 +251,7 @@ menuconfig ARCH_VEXPRESS
depends on ARCH_MULTI_V7
select ARM_AMBA
select ARM_GIC
+ select ARM_GIC_V3
select ARM_GLOBAL_TIMER
select ARM_TIMER_SP804
select GPIOLIB
--
2.30.2
@@ -14,7 +14,6 @@ ARMBSPFILESPATHS := "${THISDIR}:${THISDIR}/files:"
# Arm platforms kmeta
SRC_URI_KMETA = "file://arm-platforms-kmeta;type=kmeta;name=arm-platforms-kmeta;destsuffix=arm-platforms-kmeta"
SRC_URI:append:fvp-base = " ${SRC_URI_KMETA}"
SRC_URI:append:fvp-base-arm32 = " ${SRC_URI_KMETA}"
SRC_URI:append:fvp-baser-aemv8r64 = " ${SRC_URI_KMETA}"
SRC_URI:append:juno = " ${SRC_URI_KMETA}"
SRC_URI:append:n1sdp = " ${SRC_URI_KMETA}"
@@ -67,21 +66,6 @@ KMACHINE:fvp-base = "fvp"
FILESEXTRAPATHS:prepend:fvp-base := "${ARMBSPFILESPATHS}"
SRC_URI:append:fvp-base = " file://0001-arm64-dts-fvp-Enable-virtio-rng-support.patch"
#
# FVP BASE ARM32 KMACHINE
#
COMPATIBLE_MACHINE:fvp-base-arm32 = "fvp-base-arm32"
KMACHINE:fvp-base-arm32 = "fvp-arm32"
FILESEXTRAPATHS:prepend:fvp-base-arm32 := "${ARMBSPFILESPATHS}"
SRC_URI:append:fvp-base-arm32 = " file://0001-ARM-vexpress-enable-GICv3.patch"
# We want to use the DT in the arm64 tree but the kernel build doesn't like that, so symlink it
do_compile:prepend:fvp-base-arm32() {
mkdir --parents ${S}/arch/arm/boot/dts/arm
for file in fvp-base-revc.dts rtsm_ve-motherboard.dtsi rtsm_ve-motherboard-rs2.dtsi; do
ln -fsr ${S}/arch/arm64/boot/dts/arm/$file ${S}/arch/arm/boot/dts/arm
done
}
#
# FVP BaseR AEMv8r64 Machine
#