1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-07-22 17:57:05 +00:00

Compare commits

..

5 Commits

Author SHA1 Message Date
Tushar Khandelwal 43b6449601 add test app support recipe
Change-Id: I7536c80ba6c5c0ad5827a187dd5b5db51d24bc6e
Signed-off-by: Tushar Khandelwal <tushar.khandelwal@arm.com>
2019-05-28 23:25:40 +01:00
Tushar Khandelwal 95cfe5ad83 add flash wic image for corstone700
Change-Id: Ieff6811292cdbcb61178fa933ab3d0a41bb200b6
Signed-off-by: Tushar Khandelwal <tushar.khandelwal@arm.com>
2019-05-28 23:25:34 +01:00
Tushar Khandelwal c1a92ede20 add corstone 700 bsp support
Change-Id: Ib5568e274f14efdaad18d9fb4add461578f51270
Signed-off-by: Tushar Khandelwal <tushar.khandelwal@arm.com>
2019-05-28 23:25:29 +01:00
Rui Silva c4057679c8 add base recipes for tiny distro
Change-Id: Ibcab926c91ab472e05a9a9077ad06ea8372117b7
Signed-off-by: Rui Silva <rui.silva@arm.com>
2019-05-28 23:25:20 +01:00
Tushar Khandelwal 3d59929e06 Initial Commit 2019-05-28 22:27:15 +01:00
46 changed files with 447 additions and 945 deletions
View File
-15
View File
@@ -1,15 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
SUMMARY = "Cramfs XIP image type"
DESCRIPTION = "Cramfs XIP type image to add to IMAGE_TYPES"
LICENSE = "MIT"
inherit image_types
do_image_cramfs_xip[depends] += "cramfs-tools-native:do_populate_sysroot"
IMAGE_TYPES += " cramfs-xip"
IMAGE_CMD_cramfs-xip = "mkcramfs -n ${IMAGE_NAME} -X ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cramfs-xip ${EXTRA_IMAGECMD}"
-21
View File
@@ -1,21 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
# arm has a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
BBFILES += " \
${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILES += "${@' '.join('${LAYERDIR}/%s/recipes*/*/*.bbappend' % layer \
for layer in BBFILE_COLLECTIONS.split())}"
BBFILE_COLLECTIONS += "arm"
BBFILE_PATTERN_arm := "^${LAYERDIR}/"
BBFILE_PRIORITY_arm = "10"
LAYERSERIES_COMPAT_arm = "warrior"
LAYERDEPENDS_arm = "core"
@@ -1,18 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
IMAGE_FSTYPES += "tar.bz2 wic cpio.gz"
EXTRA_IMAGEDEPENDS_append = " trusted-firmware-a"
PREFERRED_PROVIDER_u-boot ?= "u-boot"
PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot"
UBOOT_SUFFIX ?= "bin"
UBOOT_MACHINE ?= "vexpress_aemv8a_aarch32_defconfig"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-arm"
SERIAL_CONSOLES = "115200;ttyAMA0"
-8
View File
@@ -1,8 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
TUNE_FEATURES = "aarch32"
require conf/machine/include/arm/arch-armv8a.inc
-11
View File
@@ -1,11 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
DEFAULTTUNE="cortexa5"
require conf/machine/include/tune-cortexa5.inc
TF-A_EXTRA_OPTIONS = "ARM_ARCH_MAJOR=7 ARM_CORTEX_A5=yes \
ARM_XLAT_TABLES_LIB_V1=1"
@@ -1,61 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
SUMMARY = "Trusted Firmware for Cortex-A"
DESCRIPTION = "Trusted Firmware-A"
HOMEPAGE = "https://github.com/ARM-software/arm-trusted-firmware"
LICENSE = "BSD-3-Clause"
TF-A_DEPENDS ?= ""
DEPENDS += " dtc-native coreutils-native"
DEPENDS += " ${TF-A_DEPENDS} "
LIC_FILES_CHKSUM = "file://license.rst;md5=1dd070c98a281d18d9eefd938729b031"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRCREV = "${AUTOREV}"
SRC_URI = "\
git://github.com/ARM-software/arm-trusted-firmware;protocol=https;nobranch=1 \
"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
COMPATIBLE_MACHINE = "(vexpress-a5|vexpress-a32|corstone700|a5ds)"
LDFLAGS[unexport] = "1"
TF-A_PLATFORM ?= "fvp"
TF-A_ARCH ?= "aarch32"
TF-A_DEBUG ?= "1"
TF-A_AARCH32_SP ?= "sp_min"
TF-A_BL33 ?= ""
TF-A_TARGET_IMAGES ?= "all fip"
TF-A_EXTRA_OPTIONS ?= ""
do_compile() {
mkdir -p ${B}
oe_runmake -C ${S} BUILD_BASE=${B} \
BUILD_PLAT=${B}/${TF-A_PLATFORM}/ \
PLAT=${TF-A_PLATFORM} \
DEBUG=${TF-A_DEBUG} \
ARCH=${TF-A_ARCH} \
CROSS_COMPILE=${TARGET_PREFIX} \
AARCH32_SP=${TF-A_AARCH32_SP} \
BL33=${TF-A_BL33} \
${TF-A_EXTRA_OPTIONS} \
${TF-A_TARGET_IMAGES}
}
do_install() {
[ -f ${B}/${TF-A_PLATFORM}/bl1.bin ] && install -D -p -m 0644 ${B}/${TF-A_PLATFORM}/bl1.bin ${DEPLOY_DIR_IMAGE}/bl1.bin
[ -f ${B}/${TF-A_PLATFORM}/bl1/bl1.elf ] && install -D -p -m 0644 ${B}/${TF-A_PLATFORM}/bl1/bl1.elf ${DEPLOY_DIR_IMAGE}/bl1.elf
install -D -p -m 0644 ${B}/${TF-A_PLATFORM}/fip.bin ${DEPLOY_DIR_IMAGE}/${TF-A_PLATFORM}.fip
}
@@ -1,23 +0,0 @@
SUMMARY = "Cramfs tools"
DESCRIPTION = "Cramfs tools to create cramfs images with support to XIP"
HOMEPAGE = "https://github.com/npitre/cramfs-tools"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
SRC_URI = "git://github.com/npitre/cramfs-tools;protocol=https;nobranch=1"
SRCREV = "23d032e6e0a973810c6aedf165441592641b60f4"
BBCLASSEXTEND = "native"
S = "${WORKDIR}/git"
do_compile () {
oe_runmake
}
do_install() {
install -d ${D}${bindir}
install ${S}/mkcramfs ${D}${bindir}
install ${S}/cramfsck ${D}${bindir}
}
@@ -1,35 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
DESCRIPTION = "Linux Kernel provided and supported by Arm and Linaro with \
focus on vexpress and other Arm models and hardware. Trying to be as much \
as possible close to upstream tree."
SECTION = "kernel"
LICENSE = "GPLv2"
SRCREV_FORMAT = "kernel"
require recipes-kernel/linux/linux-yocto.inc
KERNEL_VERSION_SANITY_SKIP = "1"
S = "${WORKDIR}/git"
COMPATIBLE_MACHINE = "(vexpress-a5|vexpress-a32|corstone700|a5ds)"
# Override do_kernel_configme to avoid kernel being assembled into a linux-yocto style kernel
# https://www.yoctoproject.org/docs/1.8/ref-manual/ref-manual.html#ref-tasks-kernel_configme
do_kernel_configme() {
}
KBRANCH = ""
LINUX_VERSION ?= "5.2"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
SRC_URI = "\
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux;protocol=https;nobranch=1 \
"
SRCREV = "v5.2"
-8
View File
@@ -1,8 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
SUMMARY = "Linux Kernel provided and supported by Arm/Linaro"
require recipes-kernel/linux/linux-arm-common.inc
@@ -1,6 +1,8 @@
# SPDX-License-Identifier: MIT
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2019 Arm Limited
# Copyright (c) 2018 ARM Limited
#
# Iota OpenEmbedded distribution configuration file
#
require conf/distro/poky-tiny.conf
@@ -9,8 +11,6 @@ DISTRO_NAME = "Iota - Tiny Linux Distribution"
DISTRO = "iota-tiny"
DISTRO_VERSION = "0.1"
PREFERRED_PROVIDER_virtual/kernel = "linux-arm"
INHERIT += "image-buildinfo"
TCLIBC = "musl"
+5 -11
View File
@@ -1,7 +1,3 @@
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2019 Arm Limited
#
# corstone700 has a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
@@ -10,14 +6,12 @@ BBFILES += " \
${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "corstone700"
BBFILE_PATTERN_corstone700 := "^${LAYERDIR}/"
BBFILE_PRIORITY_corstone700 = "12"
LAYERSERIES_COMPAT_corstone700 = "warrior"
BBFILE_COLLECTIONS += "meta-corstone700"
BBFILE_PATTERN_meta-corstone700 := "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-corstone700 = "10"
LAYERSERIES_COMPAT_meta-corstone700 = "thud"
NAME_GCC_ARM_NONE_EABI = "gcc-arm-none-eabi"
INSTALL_GCC_ARM_NONE_EABI = "${bindir}/${NAME_GCC_ARM_NONE_EABI}"
TC_GCC_ARM_NONE_EABI = "${STAGING_BINDIR_NATIVE}/${NAME_GCC_ARM_NONE_EABI}"
TC_GCC_ARM_NONE_EABI_BIN = "${TC_GCC_ARM_NONE_EABI}/bin"
LAYERDEPENDS_corstone700 = "arm"
TC_GCC_ARM_NONE_EABI_BIN = "${TC_GCC_ARM_NONE_EABI}/bin"
+15 -19
View File
@@ -1,23 +1,19 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
#@TYPE: Machine
#@NAME: corstone700 machine
#@DESCRIPTION: Machine configuration for the corstone700 board
require conf/machine/include/arm-common-configuration.inc
require conf/machine/include/cortex-a32.inc
TUNE_FEATURES = "aarch32"
EXTRA_IMAGEDEPENDS_append = " test-app"
require conf/machine/include/arm/arch-armv8.inc
PREFERRED_PROVIDER_virtual/kernel = "linux-iota-corstone700"
IMAGE_FSTYPES += "tar.bz2 wic cpio.gz"
WKS_FILE = "iota-corstone700.wks"
EXTRA_IMAGEDEPENDS_append = " trusted-firmware-a boot-firmware test-app"
SERIAL_CONSOLES = "115200;ttyAMA0"
CORE_IMAGE_EXTRA_INSTALL += "test-app"
EXTRA_IMAGEDEPENDS_append = " boot-firmware external-system test-app"
TF-A_PLATFORM = "corstone700"
TF-A_EXTRA_OPTIONS += " \
RESET_TO_SP_MIN=1 \
ARM_LINUX_KERNEL_AS_BL33=1 \
PRELOADED_BL33_BASE=0x08300000 \
ARM_PRELOADED_DTB_BASE=0x80400000 \
ENABLE_STACK_PROTECTOR=strong \
ENABLE_PIE=1 \
"
@@ -1,8 +1,3 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019-2020 Arm Limited
#
SUMMARY = "Boot Processor firmware"
DESCRIPTION = "Boot Processor firmware"
DEPENDS += " coreutils-native gcc-arm-none-eabi-native trusted-firmware-a "
@@ -14,8 +9,9 @@ inherit python3native
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI = "gitsm://${USER}@git.linaro.org/landing-teams/working/arm/boot-firmware.git;protocol=https;branch=master"
SRCREV = "CORSTONE-700-2020.02.10"
SRC_URI = "gitsm://${USER}@git.linaro.org/landing-teams/working/arm/boot-firmware.git;protocol=https;branch=corstone700-19.02"
SRCREV = "${AUTOREV}"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
@@ -25,34 +21,26 @@ PLATFORM = "corstone-700"
LDFLAGS[unexport] = "1"
# the gcc-arm-none-eabi version does not support -fmacro-perfix-max, so make sure to setup
DEBUG_PREFIX_MAP_pn-boot-firmware = "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
-fdebug-prefix-map=${STAGING_DIR_HOST}= \
-fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
"
do_compile() {
export PATH=${TC_GCC_ARM_NONE_EABI_BIN}:$PATH
mkdir -p ${B}
oe_runmake -C ${S} BUILD_BASE=${B} \
BUILD_PLAT=${B}/${PLATFORM}/ \
PRODUCT=${PLATFORM} \
CROSS_COMPILE=arm-none-eabi- \
clean \
all
cp ${S}/build/product/${PLATFORM}/se_ramfw/release/bin/firmware.bin ${B}/se_ramfw.bin
cp ${S}/build/product/${PLATFORM}/se_romfw/release/bin/firmware.bin ${B}/se_romfw.bin
oe_runmake -C ${S}/tools/spitoc BUILD_BASE=${B} \
BUILD_PLAT=${B}/${PLATFORM}/ \
all
cp ${S}/tools/spitoc/spitoc ${B}/spitoc
}
do_install() {
install -D -p -m 0644 ${B}/se_ramfw.bin ${DEPLOY_DIR_IMAGE}/se_ramfw.bin
install -D -p -m 0644 ${B}/se_romfw.bin ${DEPLOY_DIR_IMAGE}/se_romfw.bin
${B}/spitoc --seram ${DEPLOY_DIR_IMAGE}/se_ramfw.bin --offset 1 --fip ${DEPLOY_DIR_IMAGE}/${TF-A_PLATFORM}.fip --offset 33 --out ${DEPLOY_DIR_IMAGE}/spitoc.bin
${B}/spitoc --seram ${DEPLOY_DIR_IMAGE}/se_ramfw.bin --offset 1 --fip ${DEPLOY_DIR_IMAGE}/corstone700.fip --offset 33 --out ${DEPLOY_DIR_IMAGE}/spitoc.bin
}
@@ -1,7 +1,7 @@
License
=======
Copyright (c) 2019, Arm Limited and Contributors. All rights reserved.
Copyright (c) 2011-2017, Arm Limited. All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
@@ -1,49 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019-2020 Arm Limited
#
SUMMARY = "External system Cortex-M3 Firmware"
DESCRIPTION = "External system Firmware"
HOMEPAGE = "https://gerrit.oss.arm.com/#/admin/projects/EP/src/ExternalSystem"
DEPENDS += " coreutils-native gcc-arm-none-eabi-native"
LICENSE="BSD"
LIC_FILES_CHKSUM = "file://license.md;md5=e44b2531cd6ffe9dece394dbe988d9a0"
# Use Yocto-built python3 executable
inherit python3native
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI = "gitsm://${USER}@git.linaro.org/landing-teams/working/arm/external-system.git;protocol=https;branch=master"
SRCREV = "CORSTONE-700-2020.02.10"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
COMPATIBLE_MACHINE = "(corstone700)"
PLATFORM = "corstone-700"
LDFLAGS[unexport] = "1"
DEBUG_PREFIX_MAP_pn-external-system = "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
-fdebug-prefix-map=${STAGING_DIR_HOST}= \
-fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
"
do_compile() {
export PATH=${TC_GCC_ARM_NONE_EABI_BIN}:$PATH
mkdir -p ${B}
oe_runmake -C ${S} BUILD_BASE=${B} \
BUILD_PLAT=${B}/${PLATFORM}/ \
PRODUCT=${PLATFORM} \
CROSS_COMPILE=arm-none-eabi- \
clean \
all
cp ${S}/build/product/${PLATFORM}/firmware/release/bin/firmware.bin ${B}/es_flashfw.bin
}
do_install() {
install -D -p -m 0644 ${B}/es_flashfw.bin ${DEPLOY_DIR_IMAGE}/es_flashfw.bin
}
@@ -1,11 +1,43 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019-2020 Arm Limited
#
DEPENDS_corstone700 += " dtc-native coreutils-native "
LIC_FILES_CHKSUM_corstone700 = "file://license.rst;md5=c709b197e22b81ede21109dbffd5f363"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI_corstone700 = "git://${USER}@git.linaro.org/landing-teams/working/arm/arm-tf.git;protocol=https;branch=iota"
SRCREV = "CORSTONE-700-2020.02.10"
SRC_URI_corstone700 = "\
git://${USER}@git.linaro.org/landing-teams/working/arm/arm-tf.git;protocol=https;branch=corstone700-19.02 \
"
SRCREV_corstone700 = "${AUTOREV}"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
COMPATIBLE_MACHINE = "(corstone700)"
PLATFORM_corstone700 = "corstone700"
LDFLAGS[unexport] = "1"
do_compile_corstone700() {
mkdir -p ${B}
oe_runmake -C ${S} BUILD_BASE=${B} \
BUILD_PLAT=${B}/${PLATFORM}/ \
PLAT=${PLATFORM} \
DEBUG=1 \
ARCH=aarch32 \
CROSS_COMPILE=${TARGET_PREFIX} \
AARCH32_SP=sp_min \
RESET_TO_SP_MIN=1 \
ARM_LINUX_KERNEL_AS_BL33=1 \
PRELOADED_BL33_BASE=0x08500000 \
ARM_PRELOADED_DTB_BASE=0x02800000 \
ENABLE_STACK_PROTECTOR=strong \
ENABLE_PIE=1 \
all \
fip
}
do_install_corstone700() {
install -D -p -m 0644 ${B}/${PLATFORM}/fip.bin ${DEPLOY_DIR_IMAGE}/${PLATFORM}.fip
}
@@ -1,16 +1,11 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
# Recipe for fetching and installing the prebuilt gcc-arm toolchain for
# bare-metal targets.
# Recipe based on the meta-ti layer:
# http://git.yoctoproject.org/cgit/cgit.cgi/meta-ti/tree/recipes-ti/devtools/gcc-arm-none-eabi-native_4.9.2015q3.bb?h=master
#
# Whilst most of the tools built in relies on the linaro-provided
# toolchain, some recipes require the baremetal Arm GCC toolchain. The baremetal
# Arm GCC toolchain is distributed as precompiled binaries. This recipe fetches
# Whilst most of the tools built in sdk-700 relies on the linaro-provided
# toolchain, some recipes require the baremetal ARM GCC toolchain. The baremetal
# ARM GCC toolchain is distributed as precompiled binaries. This recipe fetches
# the toolchain and installs it in sysroot.
# Recipes may then 'DEPENDS' on this recipe to fetch the toolchain, making the
# toolchain available in the staging directory of the depending recipe.
@@ -1,13 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019-2020 Arm Limited
#
SUMMARY = "Linux Kernel provided and supported by Arm/Linaro for Cortex-A32"
KERNEL_IMAGETYPE = "xipImage"
KBUILD_DEFCONFIG = "corstone700_defconfig"
SRC_URI = "git://${USER}@git.linaro.org/landing-teams/working/arm/kernel-release.git;protocol=https;branch=iota"
SRCREV = "CORSTONE-700-2020.02.10"
@@ -0,0 +1,18 @@
SUMMARY = "Linux Kernel provided and supported by ARM/Linaro for Cortex-A32"
require recipes-kernel/linux/linux-iota.inc
# Override do_kernel_configme to avoid kernel being assembled into a linux-yocto style kernel
# https://www.yoctoproject.org/docs/1.8/ref-manual/ref-manual.html#ref-tasks-kernel_configme
do_kernel_configme() {
}
KERNEL_IMAGETYPE = "xipImage"
KBUILD_DEFCONFIG = "corstone700_defconfig"
KBRANCH = ""
SRC_URI = "\
git://${USER}@git.linaro.org/landing-teams/working/arm/kernel-release.git;protocol=https;branch=corstone700-19.02 \
"
SRCREV = "${AUTOREV}"
@@ -0,0 +1,16 @@
DESCRIPTION = "Linux Kernel provided and supported by ARM and Linaro with \
focus on vexpress and other ARM models and hardware. Trying to be as much \
as possible close to upstream tree."
SECTION = "kernel"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
SRCREV = "${AUTOREV}"
SRCREV_FORMAT = "kernel"
require recipes-kernel/linux/linux-yocto.inc
KERNEL_VERSION_SANITY_SKIP = "1"
S = "${WORKDIR}/git"
COMPATIBLE_MACHINE = "(corstone700)"
@@ -1,8 +1,3 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019-2020 Arm Limited
#
SUMMARY = "CORSTONE700 Host Test App"
DESCRIPTION = "CORSTONE700 Host Test App"
DEPENDS += " coreutils-native "
@@ -11,8 +6,8 @@ LIC_FILES_CHKSUM = "file://license.md;md5=e44b2531cd6ffe9dece394dbe988d9a0"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI = "git://${USER}@git.linaro.org/landing-teams/working/arm/test-apps.git;protocol=https;branch=master"
SRCREV = "CORSTONE-700-2020.02.10"
SRC_URI = "git://${USER}@git.linaro.org/landing-teams/working/arm/test-apps.git;protocol=https;branch=corstone700-19.02"
SRCREV = "${AUTOREV}"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
@@ -7,7 +7,7 @@ part --source rawcopy --sourceparams="file=se_ramfw.bin" --no-table --align 1 --
part --source rawcopy --sourceparams="file=corstone700.fip" --no-table --align 1 --fixed-size 991k
# Rawcopy of the rootfs
part --source rawcopy --sourceparams="file=${IMGDEPLOYDIR}/iota-tiny-image-corstone700.cramfs-xip" --no-table --fixed-size 2
part --source rawcopy --sourceparams="file=iota-tiny-image-corstone700.cpio.gz" --no-table --fixed-size 4
# Rawcopy of the kernel binary
part --source rawcopy --sourceparams="file=xipImage" --no-table --fixed-size 3
-19
View File
@@ -1,19 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
# designstart has a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# designstart has a packages directory, add to BBFILES
BBFILES += " \
${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "designstart"
BBFILE_PATTERN_designstart := "^${LAYERDIR}/"
BBFILE_PRIORITY_designstart = "12"
LAYERSERIES_COMPAT_designstart = "warrior"
LAYERDEPENDS_vexpress = "arm"
-18
View File
@@ -1,18 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
require conf/machine/include/arm-common-configuration.inc
require conf/machine/include/cortex-a5.inc
TF-A_PLATFORM = "a5ds"
TF-A_EXTRA_OPTIONS += " FVP_HW_CONFIG_DTS=fdts/a5ds.dts"
TF-A_DEPENDS += "u-boot u-boot-mkimage-native"
TF-A_BL33 = "${DEPLOY_DIR_IMAGE}/u-boot.${UBOOT_SUFFIX}"
SERIAL_CONSOLES ?= "115200;ttyAMA0"
KBUILD_DEFCONFIG = "multi_v7_defconfig"
EXTRA_IMAGEDEPENDS_append = " u-boot"
@@ -1,8 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRCREV = "5d3ee0764b03567bf3501edf47d67d72daff0cb3"
@@ -1,231 +0,0 @@
From 92f65bc0131b54b579252f262e4bfc4c8f1d64c2 Mon Sep 17 00:00:00 2001
From: Rui Miguel Silva <rui.silva@linaro.org>
Date: Wed, 14 Aug 2019 09:49:08 +0100
Subject: a5ds: add support for target designstart A5
Give support, based on vexpress for now, to designstart platform with
Cortex-A5 chip. Create config and setup boot commands and tweak memory
map related with this platform.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
%% original patch: 0001-a5ds-add-support-for-target-designstart-A5.patch
%% original patch: 0001-a5ds-add-support-for-target-designstart-A5.patch
---
arch/arm/Kconfig | 5 +++
board/armltd/vexpress64/Kconfig | 2 +-
configs/vexpress_aemv8a_a5ds_defconfig | 37 ++++++++++++++++++
include/configs/vexpress_aemv8a.h | 53 ++++++++++++++++++++++----
4 files changed, 89 insertions(+), 8 deletions(-)
create mode 100755 configs/vexpress_aemv8a_a5ds_defconfig
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 0a6ee962d5..e26b3fc37d 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -738,6 +738,11 @@ config TEGRA
bool "NVIDIA Tegra"
imply FAT_WRITE
+config TARGET_DESIGNSTART_A5
+ bool "Support designstart A5"
+ select CPU_V7
+ select SEMIHOSTING
+
config TARGET_VEXPRESS64_AEMV8A
bool "Support vexpress_aemv8a"
select ARM64
diff --git a/board/armltd/vexpress64/Kconfig b/board/armltd/vexpress64/Kconfig
index f6930aee47..3a6c972d0a 100644
--- a/board/armltd/vexpress64/Kconfig
+++ b/board/armltd/vexpress64/Kconfig
@@ -1,4 +1,4 @@
-if TARGET_VEXPRESS64_BASE_FVP || TARGET_VEXPRESS64_BASE_FVP_AARCH32 || TARGET_VEXPRESS64_JUNO || TARGET_VEXPRESS64_JUNO_AARCH32
+if TARGET_VEXPRESS64_BASE_FVP || TARGET_VEXPRESS64_BASE_FVP_AARCH32 || TARGET_VEXPRESS64_JUNO || TARGET_VEXPRESS64_JUNO_AARCH32 || TARGET_DESIGNSTART_A5
config SYS_BOARD
default "vexpress64"
diff --git a/configs/vexpress_aemv8a_a5ds_defconfig b/configs/vexpress_aemv8a_a5ds_defconfig
new file mode 100755
index 0000000000..59c9868318
--- /dev/null
+++ b/configs/vexpress_aemv8a_a5ds_defconfig
@@ -0,0 +1,37 @@
+CONFIG_ARM=y
+CONFIG_TARGET_DESIGNSTART_A5=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_IDENT_STRING=" designstart a5ds aarch32"
+CONFIG_BOOTDELAY=1
+# CONFIG_DISPLAY_CPUINFO is not set
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_PROMPT="a5ds32# "
+CONFIG_CMD_BOOTZ=y
+# CONFIG_CMD_CONSOLE is not set
+# CONFIG_CMD_IMLS is not set
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_ENV_EXISTS is not set
+CONFIG_CMD_MEMTEST=y
+CONFIG_MTD_NOR_FLASH=y
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_ARMFLASH=y
+# CONFIG_CMD_FPGA 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_MISC is not set
+CONFIG_SYS_MMIO_TIMER=y
+CONFIG_CMD_FAT=y
+CONFIG_DM=y
+CONFIG_DM_SERIAL=y
+CONFIG_OF_LIBFDT=y
+CONFIG_DEBUG_UART=y
+CONFIG_DEBUG_UART_PL011=y
+CONFIG_DEBUG_UART_BASE=0x1A200000
+CONFIG_DEBUG_UART_CLOCK=7500000
diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
index 4de9914128..e7b2e0f2fa 100644
--- a/include/configs/vexpress_aemv8a.h
+++ b/include/configs/vexpress_aemv8a.h
@@ -22,14 +22,22 @@
#else
#define HIGH_ADDR "0xffffffff"
#define BOOT_TYPE "bootz"
+#ifdef CONFIG_TARGET_DESIGNSTART_A5
+#define CONFIG_SYS_HZ_CLOCK 7500000
+#define CONFIG_SYS_HZ 1000
+#define CONFIG_SYS_MMIO_TIMER
+#else
#define CONFIG_SYS_HZ_CLOCK 24000000
#define CONFIG_SYS_ARCH_TIMER
+#endif
#define CONFIG_SKIP_LOWLEVEL_INIT
#endif
+
/* Link Definitions */
#if defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) || \
- defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_AARCH32)
+ defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_AARCH32) || \
+ defined(CONFIG_TARGET_DESIGNSTART_A5)
/* ATF loads u-boot here for BASE_FVP model */
#define CONFIG_SYS_TEXT_BASE 0x88000000
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + 0x03f00000)
@@ -66,6 +74,9 @@
defined(CONFIG_TARGET_VEXPRESS64_JUNO_AARCH32)
#define V2M_UART0 0x7ff80000
#define V2M_UART1 0x7ff70000
+#elif defined(CONFIG_TARGET_DESIGNSTART_A5)
+#define V2M_UART0 0x001a200000
+#define V2M_UART1 0x001a210000
#else /* Not Juno */
#define V2M_UART0 (V2M_PA_CS3 + V2M_PERIPH_OFFSET(9))
#define V2M_UART1 (V2M_PA_CS3 + V2M_PERIPH_OFFSET(10))
@@ -93,7 +104,11 @@
#define V2M_SYS_CFGSTAT (V2M_SYSREGS + 0x0a8)
/* Generic Timer Definitions */
+#ifdef CONFIG_TARGET_DESIGNSTART_A5
+#define COUNTER_FREQUENCY CONFIG_SYS_HZ_CLOCK
+#else
#define COUNTER_FREQUENCY (0x1800000) /* 24MHz */
+#endif
/* Generic Interrupt Controller Definitions */
#ifdef CONFIG_GICV3
@@ -121,7 +136,7 @@
#define CONFIG_SMC911X 1
#define CONFIG_SMC911X_32_BIT 1
#define CONFIG_SMC911X_BASE (0x018000000)
-#else
+#elif !defined(CONFIG_TARGET_DESIGNSTART_A5)
/* The Vexpress64 simulators use SMSC91C111 */
#define CONFIG_SMC91111 1
#define CONFIG_SMC91111_BASE (0x01A000000)
@@ -134,6 +149,8 @@
#if defined(CONFIG_TARGET_VEXPRESS64_JUNO) || \
defined(CONFIG_TARGET_VEXPRESS64_JUNO_AARCH32)
#define CONFIG_PL011_CLOCK 7273800
+#elif defined(CONFIG_TARGET_DESIGNSTART_A5)
+#define CONFIG_PL011_CLOCK 7500000
#else
#define CONFIG_PL011_CLOCK 24000000
#endif
@@ -222,19 +239,26 @@
"setenv bootargs ${bootargs} ${bootargs_sky2}; "\
BOOT_TYPE " ${kernel_addr} ${initrd_param} ${fdt_addr}"
-
-#elif defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) || \
- defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_AARCH32)
+#elif defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) || \
+ defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_AARCH32) || \
+ defined(CONFIG_TARGET_DESIGNSTART_A5)
#define CONFIG_EXTRA_ENV_SETTINGS \
"kernel_name=Image\0" \
- "kernel_addr=0x80080000\0" \
+ "kernel_addr=0x80F00000\0" \
"initrd_name=ramdisk.img\0" \
"initrd_addr=0x84000000\0" \
"fdt_name=devtree.dtb\0" \
- "fdt_addr=0x82000000\0" \
+ "fdt_addr=0x83000000\0" \
"fdt_high=" HIGH_ADDR "\0" \
"initrd_high=" HIGH_ADDR "\0"
+#if defined(CONFIG_TARGET_DESIGNSTART_A5)
+#define CONFIG_BOOTARGS "console=ttyAMA0 earlycon=pl011,"\
+ "0x1a200000 "\
+ "systemd.log_target=null "\
+ "root=/dev/ram0 rw rootwait"\
+ "loglevel=9"
+#else
#define CONFIG_BOOTARGS "console=ttyAMA0 earlycon=pl011,"\
"0x1c090000 debug user_debug=31 "\
"systemd.log_target=null "\
@@ -242,7 +266,14 @@
"root=/dev/vda2 rw "\
"rootwait "\
"loglevel=9"
+#endif
+#if defined(CONFIG_TARGET_DESIGNSTART_A5)
+#define CONFIG_BOOTCOMMAND "echo copy to RAM...; " \
+ "cp.b 0x80100000 $kernel_addr 0xB00000; " \
+ "cp.b 0x80D00000 $initrd_addr 0x500000; " \
+ BOOT_TYPE " $kernel_addr $initrd_addr $fdt_addr"
+#else
#define CONFIG_BOOTCOMMAND "if smhload ${fdt_name} ${fdt_addr}; then "\
" if smhload ${initrd_name} ${initrd_addr} "\
" initrd_end; then " \
@@ -263,6 +294,7 @@
"with contents of DRAM; " \
BOOT_TYPE " $kernel_addr $initrd_addr $fdt_addr"
#endif
+#endif
/* Monitor Command Prompt */
#define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */
@@ -282,6 +314,13 @@
/* in the Juno firmware. */
#define CONFIG_ENV_ADDR 0x0BFC0000
#define CONFIG_ENV_SECT_SIZE 0x00010000
+#elif defined(CONFIG_TARGET_DESIGNSTART_A5)
+#define CONFIG_SYS_FLASH_BASE 0x80000000
+/* 256 x 256KiB sectors */
+#define CONFIG_SYS_MAX_FLASH_SECT 256
+/* Store environment at top of flash */
+#define CONFIG_ENV_ADDR 0x0A7C0000
+#define CONFIG_ENV_SECT_SIZE 0x00040000
#else
#define CONFIG_SYS_FLASH_BASE 0x0C000000
/* 256 x 256KiB sectors */
--
2.17.1
@@ -1,187 +0,0 @@
From 9705e83c7eb77aa8d257546f3cebcf3ca924d001 Mon Sep 17 00:00:00 2001
From: Rui Miguel Silva <rui.silva@linaro.org>
Date: Wed, 14 Aug 2019 09:20:42 +0100
Subject: armv7: rename sp804 timer to mmio timer
Rename the wrongly init named mmio timer and fix the use of it on a
Cortex-A5 system that does not have arch_timer.
Signed-off-by: Usama Arif <usama.arif@arm.com>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
%% original patch: 0001-armv7-rename-sp804-timer-to-mmio-timer.patch
%% original patch: 0001-armv7-rename-sp804-timer-to-mmio-timer.patch
---
arch/arm/cpu/armv7/Makefile | 6 +--
arch/arm/cpu/armv7/mmio_timer.c | 65 ++++++++++++++++++++++++++++++++
arch/arm/cpu/armv7/sp804_timer.c | 54 --------------------------
scripts/config_whitelist.txt | 1 +
4 files changed, 67 insertions(+), 59 deletions(-)
create mode 100755 arch/arm/cpu/armv7/mmio_timer.c
delete mode 100644 arch/arm/cpu/armv7/sp804_timer.c
diff --git a/arch/arm/cpu/armv7/Makefile b/arch/arm/cpu/armv7/Makefile
index 288d14732e..97727a0dbb 100644
--- a/arch/arm/cpu/armv7/Makefile
+++ b/arch/arm/cpu/armv7/Makefile
@@ -23,12 +23,8 @@ obj-$(CONFIG_ARMV7_PSCI) += psci.o psci-common.o
obj-$(CONFIG_IPROC) += iproc-common/
obj-$(CONFIG_KONA) += kona-common/
-SUPPORT_ARCH_TIMER ?= yes
-ifeq ($(SUPPORT_ARCH_TIMER),no)
-obj-y += sp804_timer.o
-else
obj-$(CONFIG_SYS_ARCH_TIMER) += arch_timer.o
-endif
+obj-$(CONFIG_SYS_MMIO_TIMER) += mmio_timer.o
ifneq (,$(filter s5pc1xx exynos,$(SOC)))
obj-y += s5p-common/
diff --git a/arch/arm/cpu/armv7/mmio_timer.c b/arch/arm/cpu/armv7/mmio_timer.c
new file mode 100755
index 0000000000..e38dc660c5
--- /dev/null
+++ b/arch/arm/cpu/armv7/mmio_timer.c
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2019, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <asm/io.h>
+#include <div64.h>
+#include <bootstage.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define CNTCTLBASE UL(0x1a020000)
+#define CNTREADBASE UL(0x1a030000)
+#define CNTEN UL(0x1)
+#define CNTFCREQ UL(0x100)
+
+static inline uint32_t mmio_read32(uintptr_t addr)
+{
+ return *(volatile uint32_t*)addr;
+}
+
+static inline void mmio_write32(uintptr_t addr, uint32_t data)
+{
+ *(volatile uint32_t*)addr = data;
+}
+
+int timer_init(void)
+{
+ gd->arch.timer_rate_hz = COUNTER_FREQUENCY/CONFIG_SYS_HZ;
+ mmio_write32(CNTCTLBASE + 0x20, COUNTER_FREQUENCY);
+ // Enable counter and enter the number of entries in freq mode table
+ mmio_write32(CNTCTLBASE, CNTFCREQ|CNTEN);
+ return 0;
+}
+
+unsigned long long get_ticks(void)
+{
+ return ((mmio_read32(CNTREADBASE + 0x4) << 32) |
+ mmio_read32(CNTREADBASE));
+}
+
+ulong get_timer(ulong base)
+{
+ return lldiv(get_ticks(), gd->arch.timer_rate_hz) - base;
+}
+
+void __udelay(unsigned long usec)
+{
+ unsigned long endtick;
+
+ endtick = lldiv((unsigned long long)usec * gd->arch.timer_rate_hz,
+ 1000UL);
+
+ endtick += get_ticks();
+
+ while (get_ticks() < endtick)
+ ;
+}
+
+ulong get_tbclk(void)
+{
+ return gd->arch.timer_rate_hz;
+}
diff --git a/arch/arm/cpu/armv7/sp804_timer.c b/arch/arm/cpu/armv7/sp804_timer.c
deleted file mode 100644
index 9c1ecf3fa0..0000000000
--- a/arch/arm/cpu/armv7/sp804_timer.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2019, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-#include <common.h>
-#include <asm/io.h>
-#include <div64.h>
-#include <bootstage.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-#define SP804_TIMER0_BASE UL(0x1C110000)
-#define SP804_TIMER1_VALUE_OFFSET UL(0x004)
-
-int timer_init(void)
-{
- gd->arch.timer_rate_hz = CONFIG_SYS_HZ_CLOCK / CONFIG_SYS_HZ;
- return 0;
-}
-
-static inline uint32_t mmio_read_32(uintptr_t addr)
-{
- return *(volatile uint32_t*)addr;
-}
-
-unsigned long long get_ticks(void)
-{
- return UINT_MAX - mmio_read_32(SP804_TIMER0_BASE + SP804_TIMER1_VALUE_OFFSET);
-}
-
-ulong get_timer(ulong base)
-{
- return lldiv(get_ticks(), gd->arch.timer_rate_hz) - base;
-}
-
-void __udelay(unsigned long usec)
-{
- unsigned long endtime;
-
- endtime = lldiv((unsigned long long)usec * gd->arch.timer_rate_hz,
- 1000UL);
-
- endtime += get_ticks();
-
- while (get_ticks() < endtime)
- ;
-}
-
-ulong get_tbclk(void)
-{
- return gd->arch.timer_rate_hz;
-}
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 95f27b6ead..e82e53cea3 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -3923,6 +3923,7 @@ CONFIG_SYS_MMC_U_BOOT_DST
CONFIG_SYS_MMC_U_BOOT_OFFS
CONFIG_SYS_MMC_U_BOOT_SIZE
CONFIG_SYS_MMC_U_BOOT_START
+CONFIG_SYS_MMIO_TIMER
CONFIG_SYS_MONITOR_
CONFIG_SYS_MONITOR_BASE
CONFIG_SYS_MONITOR_BASE_EARLY
--
2.17.1
@@ -1,28 +0,0 @@
From 667cb143d9d948744e14a046d5599ec85f0b45db Mon Sep 17 00:00:00 2001
From: Tushar Khandelwal <tushar.khandelwal@arm.com>
Date: Mon, 22 Jul 2019 21:19:10 +0100
Subject: [PATCH 1/3] skip creating libfdt for python for yocto build
Signed-off-by: Tushar Khandelwal <tushar.khandelwal@arm.com>
%% original patch: 0001-skip-creating-libfdt-for-python-for-yocto-build.patch
---
tools/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/Makefile b/tools/Makefile
index cb1683e153..872a65f74a 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -230,7 +230,7 @@ always := $(hostprogs-y)
# Build a libfdt Python module if swig is available
# Use 'sudo apt-get install swig libpython-dev' to enable this
-always += $(if $(shell which swig 2> /dev/null),_libfdt.so)
+#always += $(if $(shell which swig 2> /dev/null),_libfdt.so)
# Generated LCD/video logo
LOGO_H = $(objtree)/include/bmp_logo.h
--
2.17.1
@@ -1,14 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 ARM Limited
#
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
UBOOT_MACHINE = "vexpress_aemv8a_a5ds_defconfig"
SRC_URI += "\
file://0001-skip-creating-libfdt-for-python-for-yocto-build.patch \
file://0001-rename_sp804_timer_to_mmio_timer.patch \
file://0001-a5ds_target_support.patch \
"
@@ -1,10 +0,0 @@
# Partition for a5ds
# Rawcopy of the FIP binary
part --source rawcopy --sourceparams="file=a5ds.fip" --no-table --align 1 --fixed-size 1
# Rawcopy of the kernel binary
part --source rawcopy --sourceparams="file=zImage" --no-table --fixed-size 12
# Rawcopy of the rootfs
part --source rawcopy --sourceparams="file=${IMGDEPLOYDIR}/iota-tiny-image-a5ds.initramfs.cpio.gz" --no-table
+17
View File
@@ -0,0 +1,17 @@
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-60
View File
@@ -1,60 +0,0 @@
# Iota OS
This is meta layer dedicated to support Arm fast models.
# Iota setup
The way to start the setup to build the distribution is to fetch the
iota-manifest. For that, first install repo tool from google:
```
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > /tmp/repo
sudo install -m 0755 /tmp/repo /usr/local/bin/repo;
```
and then fetch the manifest:
```
mkdir ~/iota; cd ~/iota
repo init -u oteutoehuote -b master -m default.xml
repo sync
```
after setup the following environment variables to set the distribution and the
machine type of the build, for now only vexpress-a32 is totally tested, but
others will follow:
```
export DISTRO="iota"
export MACHINE="vexpress-a32"
```
Then prepare the environment to run the build, in the top directory
```
source setup-environment
```
This will create and put you ready to start the build in a topdir/build-iota
directory, to start the build just type:
```
bitbake iota-tiny-image
```
The first build is long and can take several minutes to conclude, when finished
check the resulted binaries in the deploy directory
```
~/iota/build-iota/tmp-iota/deploy/images/vexpress-a32/
```
To load the resulted flash img in the FVP model
```
YOCTO_OUTDIR=~/iota/build-iota/tmp-iota/deploy/images/vexpress-a32
./host/FVP_Base_Cortex-A32x1 \
-C bp.secureflashloader.fname=${YOCTO_OUTDIR}/bl1.bin \
-C bp.flashloader0.fname=${YOCTO_OUTDIR}/iota-tiny-image-vexpress-a32.wic
```
+8 -11
View File
@@ -1,18 +1,15 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
# iota has a conf and classes directory, add to BBPATH
# Iota has a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# iota has a packages directory, add to BBFILES
# Iota has a packages directory, add to BBFILES
BBFILES += " \
${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "iota"
BBFILE_PATTERN_iota := "^${LAYERDIR}/"
BBFILE_PRIORITY_iota = "14"
LAYERSERIES_COMPAT_iota = "warrior"
BBFILE_COLLECTIONS += "meta-iota"
BBFILE_PATTERN_meta-iota := "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-iota = "10"
LAYERSERIES_COMPAT_meta-iota = "thud"
INSTALL_GCC_ARM_LINUX_GNUEABIHF = "${bindir}/gcc-arm-linux-gnueabihf"
TC_ARM_LINUX_GNUEABIHF = "${STAGING_BINDIR_NATIVE}/gcc-arm-linux-gnueabihf"
@@ -0,0 +1,50 @@
SUMMARY = "Trusted Firmware for Cortex-A"
DESCRIPTION = "Trusted Firmware-A"
HOMEPAGE = "https://github.com/ARM-software/arm-trusted-firmware"
LICENSE = "BSD-3-Clause"
DEPENDS += " dtc-native u-boot gcc-arm-linux-eabi-native"
LIC_FILES_CHKSUM = "file://license.rst;md5=c709b197e22b81ede21109dbffd5f363"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRCREV = "5ba32a7660051464ed1d56129adf2606db54b5e3"
SRC_URI = "git://github.com/ARM-software/arm-trusted-firmware;protocol=https;nobranch=1"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
COMPATIBLE_MACHINE = "(vexpress-a5)"
PLATFORM_vexpress-a5 = "fvp_ve"
LDFLAGS[unexport] = "1"
do_compile_vexpress-a5() {
export PATH=${STAGING_BINDIR_NATIVE}/gcc-arm-linux-gnueabihf/bin:$PATH
mkdir -p ${B}
cp ${DEPLOY_DIR_IMAGE}/u-boot.bin \
${B}/
oe_runmake -C ${S} BUILD_BASE=${B} \
BUILD_PLAT=${B}/${PLATFORM}/ \
PLAT=${PLATFORM} \
ARM_ARCH_MAJOR=7 \
ARM_CORTEX_A5=yes \
FVP_HW_CONFIG_DTS=fdts/fvp-ve-Cortex-A5x1.dts \
ARM_XLAT_TABLES_LIB_V1=1 \
DEBUG=1 \
ARCH=aarch32 \
CROSS_COMPILE=arm-linux-gnueabihf- \
AARCH32_SP=sp_min \
BL33=${B}/u-boot.bin \
fip \
all
}
do_install() {
install -D -p -m 0644 ${B}/${PLATFORM}/bl1.bin ${DEPLOY_DIR_IMAGE}/bl1.bin
install -D -p -m 0644 ${B}/${PLATFORM}/fip.bin ${DEPLOY_DIR_IMAGE}/${PLATFORM}.fip
}
@@ -0,0 +1,35 @@
From 47aef59becef4abc86323ec0877104c9ffa331b8 Mon Sep 17 00:00:00 2001
From: Rui Miguel Silva <rui.silva@linaro.org>
Date: Fri, 3 Aug 2018 15:48:13 +0100
Subject: [PATCH] AArch32: initialise FPEXC only with support enable
Try to initialise FPEXC only when support with VFP is enable
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
---
include/common/aarch32/el3_common_macros.S | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/common/aarch32/el3_common_macros.S b/include/common/aarch32/el3_common_macros.S
index 5db88544..5b4c669b 100644
--- a/include/common/aarch32/el3_common_macros.S
+++ b/include/common/aarch32/el3_common_macros.S
@@ -85,6 +85,7 @@
stcopr r0, CPACR
isb
+#if SUPPORT_VFP
/* ---------------------------------------------------------------------
* Initialise FPEXC, setting all fields rather than relying on hw. Some
* fields are architecturally UNKNOWN on reset and are set to zero
@@ -97,6 +98,7 @@
ldr r0, =(FPEXC_RESET_VAL | FPEXC_EN_BIT)
vmsr FPEXC, r0
isb
+#endif
#if (ARM_ARCH_MAJOR > 7)
/* ---------------------------------------------------------------------
--
2.19.1
@@ -0,0 +1,28 @@
From a33f1a9eba489a67d69cc09dddb794aa8b9d1d35 Mon Sep 17 00:00:00 2001
From: Rui Silva <ruisil01@e121032-lin.cambridge.arm.com>
Date: Mon, 17 Dec 2018 22:47:41 +0000
Subject: [PATCH] tools: allow to override python
fix build of tools and use python given by env variable.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
---
tools/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/Makefile b/tools/Makefile
index cb1683e..9bf9ceb 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -138,7 +138,7 @@ tools/_libfdt.so: $(LIBFDT_SRCS) $(LIBFDT_SWIG)
CPPFLAGS="$(_hostc_flags)" OBJDIR=tools \
SOURCES="$(LIBFDT_SRCS) tools/libfdt.i" \
SWIG_OPTS="-I$(srctree)/lib/libfdt -I$(srctree)/lib" \
- $(libfdt_tree)/pylibfdt/setup.py --quiet build_ext \
+ ${PYTHON} $(libfdt_tree)/pylibfdt/setup.py --quiet build_ext \
--build-lib tools
ifneq ($(CONFIG_MX23)$(CONFIG_MX28),)
--
2.7.4
@@ -0,0 +1,50 @@
From 4f25bd32ee6307e2e3ac828426c1ef3adbc44292 Mon Sep 17 00:00:00 2001
From: Usama Arif <usama.arif@arm.com>
Date: Thu, 10 Jan 2019 10:27:04 +0000
Subject: [PATCH] vexpress64: setup kernel and rootfs from flash for
fvp versatile express model
Set and copy the kernel and rootfs from flash to memory before running the bootm
command.
Signed-off-by: Usama Arif <usama.arif@arm.com>
---
include/configs/vexpress_aemv8a.h | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
index 4de9914..805f8c0 100644
--- a/include/configs/vexpress_aemv8a.h
+++ b/include/configs/vexpress_aemv8a.h
@@ -225,6 +225,7 @@
#elif defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) || \
defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_AARCH32)
+
#define CONFIG_EXTRA_ENV_SETTINGS \
"kernel_name=Image\0" \
"kernel_addr=0x80080000\0" \
@@ -239,9 +240,9 @@
"0x1c090000 debug user_debug=31 "\
"systemd.log_target=null "\
"androidboot.hardware=fvpbase "\
- "root=/dev/vda2 rw "\
- "rootwait "\
- "loglevel=9"
+ "loglevel=9 " \
+ "root=/dev/ram0 rw rootwait"
+
#define CONFIG_BOOTCOMMAND "if smhload ${fdt_name} ${fdt_addr}; then "\
" if smhload ${initrd_name} ${initrd_addr} "\
@@ -261,6 +262,8 @@
"fi; " \
"echo semihosting load failed, try booting "\
"with contents of DRAM; " \
+ "cp.b 0x0C100000 $kernel_addr 0x900000; " \
+ "cp.b 0x0CD00000 $initrd_addr 0x500000; " \
BOOT_TYPE " $kernel_addr $initrd_addr $fdt_addr"
#endif
--
2.7.4
@@ -0,0 +1,50 @@
From f09688c345597b7b6cb231bab5362d060632ba3b Mon Sep 17 00:00:00 2001
From: Rui Miguel Silva <rui.silva@linaro.org>
Date: Mon, 17 Dec 2018 14:36:46 +0000
Subject: [PATCH] vexpress64: setup kernel and rootfs from flash
Set and copy the kernel and rootfs from flash to memory before running the bootm
command.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
---
include/configs/vexpress_aemv8a.h | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
index 4de9914128..9cb778ba91 100644
--- a/include/configs/vexpress_aemv8a.h
+++ b/include/configs/vexpress_aemv8a.h
@@ -225,6 +225,7 @@
#elif defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) || \
defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_AARCH32)
+
#define CONFIG_EXTRA_ENV_SETTINGS \
"kernel_name=Image\0" \
"kernel_addr=0x80080000\0" \
@@ -239,9 +240,9 @@
"0x1c090000 debug user_debug=31 "\
"systemd.log_target=null "\
"androidboot.hardware=fvpbase "\
- "root=/dev/vda2 rw "\
- "rootwait "\
- "loglevel=9"
+ "loglevel=9 " \
+ "root=/dev/ram0 rw rootwait"
+
#define CONFIG_BOOTCOMMAND "if smhload ${fdt_name} ${fdt_addr}; then "\
" if smhload ${initrd_name} ${initrd_addr} "\
@@ -261,6 +262,8 @@
"fi; " \
"echo semihosting load failed, try booting "\
"with contents of DRAM; " \
+ "cp.b 0x08100000 $kernel_addr 0x900000; " \
+ "cp.b 0x08D00000 $initrd_addr 0x500000; " \
BOOT_TYPE " $kernel_addr $initrd_addr $fdt_addr"
#endif
--
2.19.2
@@ -1,28 +1,30 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
SRCREV = "9bed08a2ed8d4915e694e5b4a030bd361b829a52"
LIC_FILES_CHKSUM = "file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6"
SRC_URI = "\
SRC_URI_vexpress-a5 += "\
git://git.linaro.org/landing-teams/working/arm/u-boot;protocol=https;nobranch=1 \
file://0001-vexpress64-setup-kernel-and-rootfs-from-flash-for-fvpve.patch \
file://0001-tools-allow-to-override-python.patch \
"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
U-BOOT_PLATFORM = "fvp_ve"
PLATFORM_vexpress-a5 = "fvp_ve"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
COMPATIBLE_MACHINE = "(vexpress-a5|vexpress-a32|a5ds)"
COMPATIBLE_MACHINE = "(vexpress-a5)"
do_compile() {
do_compile_vexpress-a5() {
mkdir -p ${B}
oe_runmake -C ${S} BUILD_BASE=${B} \
BUILD_PLAT=${B}/${PLATFORM}/ \
vexpress_aemv8a_aarch32_defconfig \
O=${B}
oe_runmake -C ${S} BUILD_BASE=${B} \
BUILD_PLAT=${B}/${PLATFORM}/ \
SUPPORT_ARCH_TIMER=no \
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2019 Linaro, LLC
# Copyright (c) 2019 Arm Limited
# Copyright (c) 2018 Linaro, LLC
# Copyright (c) 2018 ARM Limited
#
# Iota Recipe to build tiny minimal image
#
@@ -9,38 +9,42 @@
SUMARY = "Iota Tiny Minimal Image"
DESCRIPTION = "Tiny Linux image for Iota Distribution"
LICENSE = "MIT"
DEPENDS += "u-boot-mkimage-native"
IMAGE_LINGUAS = " "
IMAGE_FEATURES += "debug-tweaks"
IMAGE_CLASSES += "cramfs-xip"
IMAGE_FSTYPES += " cramfs-xip wic"
DEPENDS += "u-boot-mkimage-native"
inherit core-image
KERNEL_IMAGETYPE = "zImage"
# Remove Partition table if wic image is generated
do_cleanup_partition_table() {
echo "check if partition table exits in wic image"
header=$(head -c 4 ${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.wic | md5sum -b | cut -d ' ' -f1)
if [ ${header}=="d9a7c187f1dc40d183b645f61daa500f" ]; then
echo "remove partition table from wic image"
echo "remove partition table from wic image"
tail -c +1025 ${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.wic > ${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.img
mv ${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.img ${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.wic
fi
#remove ramfs from previoes stage
rm -rf ${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.cpio.gz
}
addtask do_cleanup_partition_table after do_image_wic before do_image_complete
do_image_make_ramfs() {
echo "adding uboot header to cpio.gz"
mkimage -A arm -O linux -C none -T ramdisk -n ramdisk -a 0x84000000 -e 0x84000000 -n "Iota Ramdisk" -d ${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.cpio.gz ${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.initramfs.cpio.gz
cd ${IMGDEPLOYDIR}; ln -s ${IMAGE_NAME}.rootfs.initramfs.cpio.gz ${IMAGE_LINK_NAME}.initramfs.cpio.gz
cp -rf ${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.initramfs.cpio.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.cpio.gz
mv ${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.initramfs.cpio.gz ${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.cpio.gz
}
do_image_make_ramfs_corstone700() {
echo "u-boot not present in corstone700"
echo "uboot header not required for corstone700"
cp -f ${IMGDEPLOYDIR}/${IMAGE_BASENAME}-${MACHINE}.cpio.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.cpio.gz
}
addtask do_image_make_ramfs after do_image_cpio before do_image_wic
@@ -0,0 +1,29 @@
# Recipe for fetching and installing the prebuilt gcc-arm
# linaro 6.2.1 toolchain.
# Recipe based on the meta-ti layer:
# http://git.yoctoproject.org/cgit/cgit.cgi/meta-ti/tree/recipes-ti/devtools/gcc-arm-none-eabi-native_4.9.2015q3.bb?h=master
#
# Linaro 6.2.1 is the recommended toolchain for arm-trusted-firmware
GCC_ARM_VERSION = "gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf"
LICENSE="GPLv3"
LIC_FILES_CHKSUM = "file://share/doc/gdb/gdb/Free-Software.html;md5=96c83aa6efb937afca4e4b5810f2b975"
inherit native
SRC_URI = "https://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/arm-linux-gnueabihf/${GCC_ARM_VERSION}.tar.xz"
SRC_URI[md5sum] = "8f5c112ab5fa26248eb5d9110a09e030"
S = "${WORKDIR}/${GCC_ARM_VERSION}"
do_install() {
install -d ${D}${INSTALL_GCC_ARM_LINUX_GNUEABIHF}
cp -r ${S}/. ${D}${INSTALL_GCC_ARM_LINUX_GNUEABIHF}
}
FILES_${PN} = "${INSTALL_GCC_ARM_LINUX_GNUEABIHF}/"
INHIBIT_SYSROOT_STRIP = "1"
INSANE_SKIP_${PN} = "already-stripped"
@@ -1,8 +1,3 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2019 Arm Limited
#
SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git"
SRCREV = "65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf"
@@ -0,0 +1,37 @@
S = "${WORKDIR}/linux-${PV}"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI = " \
git://git.linaro.org/landing-teams/working/arm/kernel-testing.git;protocol=https;branch=tinylinux_giot_demo \
"
SRCREV = "135e79d294c9ec552687cccd3a28147d2df69d29"
SRCREV_machine = "135e79d294c9ec552687cccd3a28147d2df69d29"
KBUILD_DEFCONFIG_vexpress-a5 ?= "tiny_vexpress_defconfig"
COMPATIBLE_MACHINE += "|vexpress-a5"
do_preconfigure() {
mkdir -p ${B}
echo "" > ${B}/.config
CONF_SED_SCRIPT=""
kernel_conf_variable LOCALVERSION "\"${LOCALVERSION}\""
kernel_conf_variable LOCALVERSION_AUTO y
sed -e "${CONF_SED_SCRIPT}" < '${S}/arch/arm/configs/${KBUILD_DEFCONFIG_vexpress}' >> '${B}/.config'
if [ "${SCMVERSION}" = "y" ]; then
# Add GIT revision to the local version
head=`git --git-dir=${S}/.git rev-parse --verify --short HEAD 2> /dev/null`
printf "%s%s" +g $head > ${S}/.scmversion
fi
}
do_install_append() {
install -d ${D}/boot
}
ALLOW_EMPTY_kernel-devicetree = "1"
+11
View File
@@ -0,0 +1,11 @@
# Partition for vexpress-a5
# Rawcopy of the FIP binary
part --source rawcopy --sourceparams="file=fvp_ve.fip" --no-table --align 1 --fixed-size 1
# Rawcopy of the kernel binary
part --source rawcopy --sourceparams="file=zImage" --no-table --fixed-size 12
# Rawcopy of the rootfs
part --source rawcopy --sourceparams="file=iota-tiny-image-vexpress-a5.cpio.gz" --no-table