configs/aspeed_ast2600evb: new defconfig
The kernel is from upstream and U-Boot is from the OpenBMC branch because mainline doesn't have the required support for HW, yet. The main resulting file from the build is a flash image. The partition layout matches the OpenBMC one for 64M chips. It makes it easier to update the different partitions from Linux. Intermediate files can be used to boot from U-boot over the network or to boot QEMU using -kernel/-initrd/-dtb. Signed-off-by: Cédric Le Goater <clg@kaod.org> Reviewed-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
parent
c59a9d12b7
commit
1409d4b0c4
@ -500,8 +500,10 @@ N: Cédric Chépied <cedric.chepied@gmail.com>
|
|||||||
F: package/znc/
|
F: package/znc/
|
||||||
|
|
||||||
N: Cédric Le Goater <clg@kaod.org>
|
N: Cédric Le Goater <clg@kaod.org>
|
||||||
|
F: board/aspeed/
|
||||||
F: board/qemu/ppc-bamboo/
|
F: board/qemu/ppc-bamboo/
|
||||||
F: board/qemu/ppc64le-powernv8/readme.txt
|
F: board/qemu/ppc64le-powernv8/readme.txt
|
||||||
|
F: configs/aspeed*
|
||||||
F: configs/qemu_ppc_bamboo_defconfig
|
F: configs/qemu_ppc_bamboo_defconfig
|
||||||
F: configs/qemu_ppc64le_powernv8_defconfig
|
F: configs/qemu_ppc64le_powernv8_defconfig
|
||||||
|
|
||||||
@ -1460,6 +1462,8 @@ F: board/qemu/ppc64le-pseries/
|
|||||||
F: configs/qemu_ppc64le_pseries_defconfig
|
F: configs/qemu_ppc64le_pseries_defconfig
|
||||||
F: board/qemu/ppc-mac99/
|
F: board/qemu/ppc-mac99/
|
||||||
F: configs/qemu_ppc_mac99_defconfig
|
F: configs/qemu_ppc_mac99_defconfig
|
||||||
|
F: board/aspeed/
|
||||||
|
F: configs/aspeed*
|
||||||
|
|
||||||
N: Johan Derycke <johanderycke@gmail.com>
|
N: Johan Derycke <johanderycke@gmail.com>
|
||||||
F: package/python-libconfig/
|
F: package/python-libconfig/
|
||||||
|
40
board/aspeed/ast2600-evb/genimage.cfg
Normal file
40
board/aspeed/ast2600-evb/genimage.cfg
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#
|
||||||
|
# This config reproduces the OpenBMC flash layout defined in Linux :
|
||||||
|
#
|
||||||
|
# arch/arm/boot/dts/openbmc-flash-layout-64.dtsi
|
||||||
|
#
|
||||||
|
# and included by aspeed-ast2600-evb.dts
|
||||||
|
#
|
||||||
|
flash nor-64M-256 {
|
||||||
|
pebsize = 4K
|
||||||
|
numpebs = 16K
|
||||||
|
minimum-io-unit-size = 256
|
||||||
|
}
|
||||||
|
|
||||||
|
image flash.img {
|
||||||
|
flash {
|
||||||
|
}
|
||||||
|
flashtype = "nor-64M-256"
|
||||||
|
|
||||||
|
partition uboot {
|
||||||
|
image = "u-boot.bin"
|
||||||
|
size = 896K
|
||||||
|
}
|
||||||
|
|
||||||
|
partition ubootenv {
|
||||||
|
/* TODO */
|
||||||
|
offset = 896K
|
||||||
|
size = 128K
|
||||||
|
}
|
||||||
|
|
||||||
|
partition fitimage {
|
||||||
|
image = "image.itb"
|
||||||
|
offset = 1M
|
||||||
|
size = 9M
|
||||||
|
}
|
||||||
|
|
||||||
|
partition spare {
|
||||||
|
offset = 10M
|
||||||
|
size = 54M
|
||||||
|
}
|
||||||
|
}
|
80
board/aspeed/ast2600-evb/readme.txt
Normal file
80
board/aspeed/ast2600-evb/readme.txt
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
Aspeed AST2600 EVB
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
============
|
||||||
|
|
||||||
|
The AST2600 EVB is an evaluation board for the AST2600 SoC, most
|
||||||
|
commonly used as a Server Management Processor. It includes a
|
||||||
|
Dual-core ARM Cortex A7 processor with DDR4 SDRAM (up to 2GB), SPI
|
||||||
|
flash memory devices for BMC and host firmwares and numerous
|
||||||
|
controllers to drive the server board.
|
||||||
|
|
||||||
|
https://www.aspeedtech.com/server_ast2600/
|
||||||
|
|
||||||
|
How to build it
|
||||||
|
===============
|
||||||
|
|
||||||
|
Configure buildroot:
|
||||||
|
|
||||||
|
$ make aspeed_ast2600evb_defconfig
|
||||||
|
|
||||||
|
Compile everything and build the rootfs image:
|
||||||
|
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Result of the build
|
||||||
|
===================
|
||||||
|
|
||||||
|
After building, the output/images directory contains:
|
||||||
|
|
||||||
|
output/images/
|
||||||
|
├── aspeed-ast2600-evb.dtb
|
||||||
|
├── flash.img
|
||||||
|
├── image.itb
|
||||||
|
├── rootfs.cpio
|
||||||
|
├── rootfs.cpio.xz
|
||||||
|
├── rootfs.tar
|
||||||
|
├── u-boot.bin
|
||||||
|
└── zImage
|
||||||
|
|
||||||
|
Flashing the image
|
||||||
|
==================
|
||||||
|
|
||||||
|
To update the contents of the first flash device, copy flash.img :
|
||||||
|
|
||||||
|
$ flashcp flash.img /dev/mtd0
|
||||||
|
|
||||||
|
or simply the boot loader:
|
||||||
|
|
||||||
|
$ flashcp u-boot.bin /dev/mtd1
|
||||||
|
|
||||||
|
Preparing the board
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Connect a serial line to the board
|
||||||
|
* Power-up the board
|
||||||
|
|
||||||
|
Booting the board
|
||||||
|
=================
|
||||||
|
|
||||||
|
The AST2600 EVB boots from the SPI flash device directly and loads a
|
||||||
|
first bootloader (usually U-Boot). U-Boot will attempt to load a Linux
|
||||||
|
kernel from the same flash device by default but other storage could
|
||||||
|
be used.
|
||||||
|
|
||||||
|
* from U-Boot
|
||||||
|
|
||||||
|
The FIT image image.itb can be used to boot the board from U-Boot
|
||||||
|
using tftp
|
||||||
|
|
||||||
|
* with QEMU
|
||||||
|
|
||||||
|
$ qemu-system-arm -M ast2600-evb \
|
||||||
|
-drive file=output/images/flash.img,format=raw,if=mtd \
|
||||||
|
-nographic
|
||||||
|
|
||||||
|
$ qemu-system-arm -M ast2600-evb \
|
||||||
|
-kernel output/images/zImage \
|
||||||
|
-initrd output/images/rootfs.cpio \
|
||||||
|
-dtb output/images/aspeed-ast2600-evb.dtb \
|
||||||
|
-nographic
|
56
board/aspeed/common/image.its.template
Normal file
56
board/aspeed/common/image.its.template
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
description = "Kernel and buildroot image";
|
||||||
|
#address-cells = <1>;
|
||||||
|
|
||||||
|
images {
|
||||||
|
kernel-1 {
|
||||||
|
description = "Linux kernel";
|
||||||
|
data = /incbin/("zImage");
|
||||||
|
type = "kernel";
|
||||||
|
arch = "arm";
|
||||||
|
os = "linux";
|
||||||
|
compression = "none";
|
||||||
|
load = <0x80001000>;
|
||||||
|
entry = <0x80001000>;
|
||||||
|
hash-1 {
|
||||||
|
algo = "sha256";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
fdt-1 {
|
||||||
|
description = "Flattened Device Tree blob";
|
||||||
|
data = /incbin/("%BOARD_DTB%");
|
||||||
|
type = "flat_dt";
|
||||||
|
arch = "arm";
|
||||||
|
compression = "none";
|
||||||
|
hash-1 {
|
||||||
|
algo = "sha256";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
ramdisk-1 {
|
||||||
|
description = "ramdisk";
|
||||||
|
data = /incbin/("rootfs.cpio.xz");
|
||||||
|
type = "ramdisk";
|
||||||
|
arch = "arm";
|
||||||
|
os = "linux";
|
||||||
|
compression = "none";
|
||||||
|
hash-1 {
|
||||||
|
algo = "sha256";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
configurations {
|
||||||
|
default = "conf-1";
|
||||||
|
conf-1 {
|
||||||
|
description = "Boot Linux kernel with FDT blob, ramdisk";
|
||||||
|
kernel = "kernel-1";
|
||||||
|
fdt = "fdt-1";
|
||||||
|
ramdisk = "ramdisk-1";
|
||||||
|
hash-1 {
|
||||||
|
algo = "sha256";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
27
board/aspeed/common/post-image.sh
Executable file
27
board/aspeed/common/post-image.sh
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
BOARD_DIR="$(dirname $0)"
|
||||||
|
mkimage=$HOST_DIR/bin/mkimage
|
||||||
|
|
||||||
|
BOARD_DT=$(sed -n \
|
||||||
|
's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([a-z0-9\-]*\).*"$/\1/p' \
|
||||||
|
${BR2_CONFIG})
|
||||||
|
|
||||||
|
sed -e "s/%BOARD_DTB%/${BOARD_DT}.dtb/" \
|
||||||
|
$BOARD_DIR/image.its.template > $BINARIES_DIR/image.its
|
||||||
|
|
||||||
|
(cd $BINARIES_DIR && $mkimage -f image.its image.itb)
|
||||||
|
|
||||||
|
GENIMAGE_CFG="board/aspeed/${BOARD_DT#aspeed-*}/genimage.cfg"
|
||||||
|
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
|
||||||
|
|
||||||
|
rm -rf "${GENIMAGE_TMP}"
|
||||||
|
|
||||||
|
genimage \
|
||||||
|
--rootpath "${TARGET_DIR}" \
|
||||||
|
--tmppath "${GENIMAGE_TMP}" \
|
||||||
|
--inputpath "${BINARIES_DIR}" \
|
||||||
|
--outputpath "${BINARIES_DIR}" \
|
||||||
|
--config "${GENIMAGE_CFG}"
|
||||||
|
|
||||||
|
rm -f $BINARIES_DIR/image.its
|
44
configs/aspeed_ast2600evb_defconfig
Normal file
44
configs/aspeed_ast2600evb_defconfig
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# Architecture
|
||||||
|
BR2_arm=y
|
||||||
|
BR2_cortex_a7=y
|
||||||
|
BR2_ARM_FPU_VFPV4=y
|
||||||
|
|
||||||
|
# System
|
||||||
|
BR2_TARGET_GENERIC_HOSTNAME="aspeed-evb"
|
||||||
|
BR2_TARGET_GENERIC_ISSUE="Aspeed EVB"
|
||||||
|
BR2_SYSTEM_DHCP="eth0"
|
||||||
|
|
||||||
|
# Filesystem
|
||||||
|
BR2_TARGET_ROOTFS_CPIO=y
|
||||||
|
BR2_TARGET_ROOTFS_CPIO_XZ=y
|
||||||
|
|
||||||
|
# Image
|
||||||
|
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/aspeed/common/post-image.sh"
|
||||||
|
|
||||||
|
# Linux headers same as kernel
|
||||||
|
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_17=y
|
||||||
|
|
||||||
|
# Kernel
|
||||||
|
BR2_LINUX_KERNEL=y
|
||||||
|
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||||
|
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.17.7"
|
||||||
|
BR2_LINUX_KERNEL_DEFCONFIG="aspeed_g5"
|
||||||
|
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
||||||
|
BR2_LINUX_KERNEL_INTREE_DTS_NAME="aspeed-ast2600-evb"
|
||||||
|
|
||||||
|
# Boot
|
||||||
|
BR2_TARGET_UBOOT=y
|
||||||
|
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||||
|
BR2_TARGET_UBOOT_CUSTOM_GIT=y
|
||||||
|
BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/openbmc/u-boot.git"
|
||||||
|
BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="f2b82fa4ba17ed8091fe76c284220006645a293b"
|
||||||
|
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="evb-ast2600"
|
||||||
|
BR2_TARGET_UBOOT_NEEDS_DTC=y
|
||||||
|
BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=ast2600a1-evb"
|
||||||
|
|
||||||
|
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||||
|
BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y
|
||||||
|
BR2_PACKAGE_HOST_GENIMAGE=y
|
||||||
|
|
||||||
|
# Target tools
|
||||||
|
BR2_PACKAGE_MTD=y
|
Loading…
Reference in New Issue
Block a user