All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] configs/aspeed_ast2600evb: new defconfig
@ 2022-06-03  6:27 Cédric Le Goater
  2022-06-03  6:27 ` [Buildroot] [PATCH 2/2] configs/aspeed_ast2500evb: " Cédric Le Goater
  2022-06-06  6:14 ` [Buildroot] [PATCH 1/2] configs/aspeed_ast2600evb: " Joel Stanley
  0 siblings, 2 replies; 5+ messages in thread
From: Cédric Le Goater @ 2022-06-03  6:27 UTC (permalink / raw)
  To: buildroot; +Cc: chin-ting_kuo, troy_lee, Joel Stanley, Cédric Le Goater

The kernel is from upstream and U-Boot is from the OpenBMC branch
where most of development is done. Mainline doesn't have the required
support for HW.

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>
---
 DEVELOPERS                              |  2 +
 board/aspeed/ast2600-evb/genimage.cfg   | 40 ++++++++++++
 board/aspeed/ast2600-evb/linux.fragment |  3 +
 board/aspeed/ast2600-evb/readme.txt     | 81 +++++++++++++++++++++++++
 board/aspeed/common/image.its.template  | 56 +++++++++++++++++
 board/aspeed/common/post-image.sh       | 27 +++++++++
 configs/aspeed_ast2600evb_defconfig     | 56 +++++++++++++++++
 7 files changed, 265 insertions(+)
 create mode 100644 board/aspeed/ast2600-evb/genimage.cfg
 create mode 100644 board/aspeed/ast2600-evb/linux.fragment
 create mode 100644 board/aspeed/ast2600-evb/readme.txt
 create mode 100644 board/aspeed/common/image.its.template
 create mode 100755 board/aspeed/common/post-image.sh
 create mode 100644 configs/aspeed_ast2600evb_defconfig

diff --git a/DEVELOPERS b/DEVELOPERS
index 71cc3da6d70b..d0018eae13a0 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -501,8 +501,10 @@ F:	package/znc/
 N:	Cédric Le Goater <clg@kaod.org>
 F:	board/qemu/ppc-bamboo/
 F:	board/qemu/ppc64le-powernv8/readme.txt
+F:	board/aspeed/
 F:	configs/qemu_ppc_bamboo_defconfig
 F:	configs/qemu_ppc64le_powernv8_defconfig
+F:	configs/aspeed*
 
 N:	Charles Hardin <ckhardin@gmail.com>
 F:	package/alsa-plugins/
diff --git a/board/aspeed/ast2600-evb/genimage.cfg b/board/aspeed/ast2600-evb/genimage.cfg
new file mode 100644
index 000000000000..56932d478756
--- /dev/null
+++ b/board/aspeed/ast2600-evb/genimage.cfg
@@ -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
+	}
+}
diff --git a/board/aspeed/ast2600-evb/linux.fragment b/board/aspeed/ast2600-evb/linux.fragment
new file mode 100644
index 000000000000..61bb934dddf3
--- /dev/null
+++ b/board/aspeed/ast2600-evb/linux.fragment
@@ -0,0 +1,3 @@
+CONFIG_I3C=y
+CONFIG_ASPEED_I3C_MASTER=y
+CONFIG_DW_I3C_MASTER=y
diff --git a/board/aspeed/ast2600-evb/readme.txt b/board/aspeed/ast2600-evb/readme.txt
new file mode 100644
index 000000000000..9f3ec6053b67
--- /dev/null
+++ b/board/aspeed/ast2600-evb/readme.txt
@@ -0,0 +1,81 @@
+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 \
+	-net nic -net user -nographic -serial mon:stdio
+
+   $ qemu-system-arm -M ast2600-evb \
+	-kernel output/images/zImage \
+	-append "console=ttyS4,115200n8 root=/dev/ram rw" \
+	-initrd output/images/rootfs.cpio \
+	-dtb output/images/aspeed-ast2600-evb.dtb \
+	-net nic -net user -nographic -serial mon:stdio
diff --git a/board/aspeed/common/image.its.template b/board/aspeed/common/image.its.template
new file mode 100644
index 000000000000..e3200e240709
--- /dev/null
+++ b/board/aspeed/common/image.its.template
@@ -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";
+			};
+		};
+	};
+};
diff --git a/board/aspeed/common/post-image.sh b/board/aspeed/common/post-image.sh
new file mode 100755
index 000000000000..ea65a49afff0
--- /dev/null
+++ b/board/aspeed/common/post-image.sh
@@ -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
diff --git a/configs/aspeed_ast2600evb_defconfig b/configs/aspeed_ast2600evb_defconfig
new file mode 100644
index 000000000000..19e46a752f3c
--- /dev/null
+++ b/configs/aspeed_ast2600evb_defconfig
@@ -0,0 +1,56 @@
+# Architecture
+BR2_arm=y
+
+# System
+BR2_TARGET_GENERIC_HOSTNAME="aspeed-evb"
+BR2_TARGET_GENERIC_ISSUE="Aspeed EVB"
+BR2_TARGET_GENERIC_GETTY_PORT="ttyS4"
+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"
+BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
+
+# 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_CONFIG_FRAGMENT_FILES="board/aspeed/ast2600-evb/linux.fragment"
+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
+BR2_PACKAGE_UBOOT_TOOLS=y
+BR2_PACKAGE_LIBGPIOD=y
+BR2_PACKAGE_LIBGPIOD_TOOLS=y
+BR2_PACKAGE_LIBCURL=y
+BR2_PACKAGE_LIBCURL_CURL=y
+BR2_PACKAGE_LIBCURL_VERBOSE=y
+BR2_PACKAGE_LIBFFI=y
+BR2_PACKAGE_DROPBEAR=y
+BR2_PACKAGE_DROPBEAR_DISABLE_REVERSEDNS=y
+BR2_PACKAGE_LRZSZ=y
+BR2_PACKAGE_HOST_MKPASSWD=y
-- 
2.35.3

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 2/2] configs/aspeed_ast2500evb: new defconfig
  2022-06-03  6:27 [Buildroot] [PATCH 1/2] configs/aspeed_ast2600evb: new defconfig Cédric Le Goater
@ 2022-06-03  6:27 ` Cédric Le Goater
  2022-06-06  6:17   ` Joel Stanley
  2022-06-06  6:14 ` [Buildroot] [PATCH 1/2] configs/aspeed_ast2600evb: " Joel Stanley
  1 sibling, 1 reply; 5+ messages in thread
From: Cédric Le Goater @ 2022-06-03  6:27 UTC (permalink / raw)
  To: buildroot; +Cc: chin-ting_kuo, troy_lee, Joel Stanley, Cédric Le Goater

The kernel is from upstream with a custom config because the default
'aspeed_g5' defconfig builds a zImage file image too big for the flash
layout. U-Boot is from the OpenBMC branch where most of development is
done. Latest mainline should work.

The main resulting file from the build is a flash image. The partition
layout matches the OpenBMC one for 32M 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>
---
 board/aspeed/ast2500-evb/genimage.cfg   |  40 ++++
 board/aspeed/ast2500-evb/linux.config   | 262 ++++++++++++++++++++++++
 board/aspeed/ast2500-evb/readme.txt     |  81 ++++++++
 board/aspeed/ast2500-evb/uboot.fragment |   1 +
 configs/aspeed_ast2500evb_defconfig     |  58 ++++++
 5 files changed, 442 insertions(+)
 create mode 100644 board/aspeed/ast2500-evb/genimage.cfg
 create mode 100644 board/aspeed/ast2500-evb/linux.config
 create mode 100644 board/aspeed/ast2500-evb/readme.txt
 create mode 100644 board/aspeed/ast2500-evb/uboot.fragment
 create mode 100644 configs/aspeed_ast2500evb_defconfig

diff --git a/board/aspeed/ast2500-evb/genimage.cfg b/board/aspeed/ast2500-evb/genimage.cfg
new file mode 100644
index 000000000000..498a71e4d75d
--- /dev/null
+++ b/board/aspeed/ast2500-evb/genimage.cfg
@@ -0,0 +1,40 @@
+#
+# This config reproduces the OpenBMC flash layout defined in Linux :
+#
+#    arch/arm/boot/dts/openbmc-flash-layout.dtsi
+#
+# and included by aspeed-ast2500-evb.dts
+#
+flash nor-32M-256 {
+	pebsize = 4K
+	numpebs = 8K
+	minimum-io-unit-size = 256
+}
+
+image flash.img {
+	flash {
+	}
+	flashtype = "nor-32M-256"
+
+	partition uboot {
+		image = "u-boot.bin"
+		size = 384K
+	}
+
+	partition ubootenv {
+		/* TODO */
+		offset = 384K
+		size = 128K
+	}
+
+	partition fitimage {
+		image = "image.itb"
+		offset = 512K
+		size = 4352K
+	}
+
+	partition spare {
+		offset = 4864K
+		size = 27904K
+	}
+}
diff --git a/board/aspeed/ast2500-evb/linux.config b/board/aspeed/ast2500-evb/linux.config
new file mode 100644
index 000000000000..35eabcfe2bca
--- /dev/null
+++ b/board/aspeed/ast2500-evb/linux.config
@@ -0,0 +1,262 @@
+CONFIG_KERNEL_XZ=y
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_PSI=y
+CONFIG_PSI_DEFAULT_DISABLED=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=16
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_BPF=y
+CONFIG_NAMESPACES=y
+CONFIG_USER_NS=y
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZO is not set
+# CONFIG_RD_LZ4 is not set
+# CONFIG_UID16 is not set
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_AIO is not set
+CONFIG_EMBEDDED=y
+CONFIG_PERF_EVENTS=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SLAB_FREELIST_RANDOM=y
+CONFIG_SLAB_FREELIST_HARDENED=y
+CONFIG_ARCH_MULTI_V6=y
+# CONFIG_ARCH_MULTI_V7 is not set
+CONFIG_ARCH_ASPEED=y
+CONFIG_MACH_ASPEED_G5=y
+# CONFIG_CACHE_L2X0 is not set
+CONFIG_VMSPLIT_2G=y
+CONFIG_UACCESS_WITH_MEMCPY=y
+# CONFIG_ATAGS is not set
+CONFIG_KEXEC=y
+# CONFIG_SUSPEND is not set
+CONFIG_JUMP_LABEL=y
+CONFIG_STRICT_KERNEL_RWX=y
+# CONFIG_BLK_DEBUG_FS is not set
+# CONFIG_MQ_IOSCHED_DEADLINE is not set
+# CONFIG_MQ_IOSCHED_KYBER is not set
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+# CONFIG_COMPACTION is not set
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=y
+CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_SYN_COOKIES=y
+# CONFIG_INET_DIAG is not set
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+# CONFIG_IPV6_SIT is not set
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_ADVANCED is not set
+CONFIG_VLAN_8021Q=y
+CONFIG_NET_NCSI=y
+# CONFIG_WIRELESS is not set
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_MTD=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_PARTITIONED_MASTER=y
+CONFIG_MTD_SPI_NOR=y
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+CONFIG_SPI_ASPEED_SMC=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_FASTMAP=y
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_NBD=y
+CONFIG_EEPROM_AT24=y
+CONFIG_NETDEVICES=y
+CONFIG_NETCONSOLE=y
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+CONFIG_FTGMAC100=y
+# CONFIG_NET_VENDOR_HISILICON is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MELLANOX is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_BROADCOM_PHY=y
+CONFIG_REALTEK_PHY=y
+# CONFIG_WLAN is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_KEYBOARD_ATKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_GPIO_POLLED=y
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_IBM_PANEL=y
+# CONFIG_SERIO is not set
+# CONFIG_VT is not set
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=6
+CONFIG_SERIAL_8250_RUNTIME_UARTS=6
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_ASPEED_VUART=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_ASPEED_KCS_IPMI_BMC=y
+CONFIG_IPMI_KCS_BMC_CDEV_IPMI=y
+CONFIG_IPMI_KCS_BMC_CDEV_RAW=y
+CONFIG_ASPEED_BT_IPMI_BMC=y
+CONFIG_HW_RANDOM_TIMERIOMEM=y
+CONFIG_DEVMEM_BOOTPARAM=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX_PCA9541=y
+CONFIG_I2C_MUX_PCA954x=y
+CONFIG_I2C_ASPEED=y
+CONFIG_I2C_FSI=y
+CONFIG_I2C_SLAVE=y
+CONFIG_SPI=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_ASPEED=y
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_W1=y
+CONFIG_W1_MASTER_GPIO=y
+CONFIG_W1_SLAVE_THERM=y
+CONFIG_SENSORS_ASPEED=y
+CONFIG_SENSORS_IIO_HWMON=y
+CONFIG_SENSORS_LM75=y
+CONFIG_SENSORS_NCT7904=y
+CONFIG_SENSORS_OCC_P8_I2C=y
+CONFIG_SENSORS_OCC_P9_SBE=y
+CONFIG_PMBUS=y
+CONFIG_SENSORS_ADM1275=y
+CONFIG_SENSORS_IBM_CFFPS=y
+CONFIG_SENSORS_IR35221=y
+CONFIG_SENSORS_LM25066=y
+CONFIG_SENSORS_MAX31785=y
+CONFIG_SENSORS_UCD9000=y
+CONFIG_SENSORS_UCD9200=y
+CONFIG_SENSORS_TMP421=y
+CONFIG_SENSORS_W83773G=y
+CONFIG_WATCHDOG_SYSFS=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_SUPPORT_FILTER=y
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_ASPEED=y
+CONFIG_DRM=y
+CONFIG_DRM_ASPEED_GFX=y
+CONFIG_FB=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_ASPEED_VHUB=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_MASS_STORAGE=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLASS_FLASH=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PCA955X=y
+CONFIG_LEDS_PCA955X_GPIO=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_DS1307=y
+CONFIG_RTC_DRV_PCF8523=y
+CONFIG_RTC_DRV_RV8803=y
+# CONFIG_VIRTIO_MENU is not set
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_ASPEED_XDMA=y
+CONFIG_IIO=y
+CONFIG_ASPEED_ADC=y
+CONFIG_MAX1363=y
+CONFIG_BMP280=y
+CONFIG_DPS310=y
+CONFIG_FSI=y
+CONFIG_FSI_MASTER_GPIO=y
+CONFIG_FSI_MASTER_HUB=y
+CONFIG_FSI_MASTER_AST_CF=y
+CONFIG_FSI_SCOM=y
+CONFIG_FSI_SBEFIFO=y
+CONFIG_FSI_OCC=y
+CONFIG_FANOTIFY=y
+CONFIG_OVERLAY_FS=y
+CONFIG_TMPFS=y
+CONFIG_JFFS2_FS=y
+# CONFIG_JFFS2_FS_WRITEBUFFER is not set
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZSTD=y
+# CONFIG_NETWORK_FILESYSTEMS is not set
+CONFIG_HARDENED_USERCOPY=y
+CONFIG_FORTIFY_SOURCE=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_SPARC is not set
+CONFIG_PRINTK_TIME=y
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DEBUG_INFO=y
+CONFIG_DEBUG_INFO_REDUCED=y
+CONFIG_DEBUG_INFO_DWARF4=y
+CONFIG_GDB_SCRIPTS=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_DEBUG_FS=y
+CONFIG_DEBUG_WX=y
+CONFIG_SCHED_STACK_END_CHECK=y
+CONFIG_PANIC_ON_OOPS=y
+CONFIG_PANIC_TIMEOUT=-1
+CONFIG_SOFTLOCKUP_DETECTOR=y
+# CONFIG_DETECT_HUNG_TASK is not set
+CONFIG_WQ_WATCHDOG=y
+# CONFIG_SCHED_DEBUG is not set
+CONFIG_DEBUG_LIST=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_DEBUG_USER=y
+# CONFIG_RUNTIME_TESTING_MENU is not set
diff --git a/board/aspeed/ast2500-evb/readme.txt b/board/aspeed/ast2500-evb/readme.txt
new file mode 100644
index 000000000000..417b14e408ce
--- /dev/null
+++ b/board/aspeed/ast2500-evb/readme.txt
@@ -0,0 +1,81 @@
+Aspeed AST2500 EVB
+
+Introduction
+============
+
+The AST2500 EVB is an evaluation board for the AST2500 SoC, most
+commonly used as a Server Management Processor. It includes an 800MHz
+ARM11 processor with DDR3 or DDR4 SDRAM (up to 1GB), SPI flash memory
+devices for BMC and host firmwares and numerous controllers to drive
+the server board.
+
+  https://www.aspeedtech.com/server_ast2500/
+
+How to build it
+===============
+
+Configure buildroot:
+
+  $ make aspeed_ast2500evb_defconfig
+
+Compile everything and build the rootfs image:
+
+  $ make
+
+Result of the build
+===================
+
+After building, the output/images directory contains:
+
+  output/images/
+    ├── aspeed-ast2500-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 AST2500 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 ast2500-evb \
+	-drive file=output/images/flash.img,format=raw,if=mtd \
+	-net nic -net user -nographic -serial mon:stdio
+
+   $ qemu-system-arm -M ast2500-evb \
+	-kernel output/images/zImage \
+	-append "console=ttyS4,115200n8 root=/dev/ram rw" \
+	-initrd output/images/rootfs.cpio \
+	-dtb output/images/aspeed-ast2500-evb.dtb \
+	-net nic -net user -nographic -serial mon:stdio
diff --git a/board/aspeed/ast2500-evb/uboot.fragment b/board/aspeed/ast2500-evb/uboot.fragment
new file mode 100644
index 000000000000..5a8961538f4a
--- /dev/null
+++ b/board/aspeed/ast2500-evb/uboot.fragment
@@ -0,0 +1 @@
+CONFIG_BOOTCOMMAND="bootm 20080000"
diff --git a/configs/aspeed_ast2500evb_defconfig b/configs/aspeed_ast2500evb_defconfig
new file mode 100644
index 000000000000..2ec2df4f5f1c
--- /dev/null
+++ b/configs/aspeed_ast2500evb_defconfig
@@ -0,0 +1,58 @@
+# Architecture
+BR2_arm=y
+
+# System
+BR2_TARGET_GENERIC_HOSTNAME="aspeed-evb"
+BR2_TARGET_GENERIC_ISSUE="Aspeed EVB"
+BR2_TARGET_GENERIC_GETTY_PORT="ttyS4"
+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"
+BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
+
+# 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_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/aspeed/ast2500-evb/linux.config"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="aspeed-ast2500-evb"
+BR2_LINUX_KERNEL_XZ=y
+
+# 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-ast2500"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=ast2500-evb"
+BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/aspeed/ast2500-evb/uboot.fragment"
+
+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
+BR2_PACKAGE_UBOOT_TOOLS=y
+BR2_PACKAGE_LIBGPIOD=y
+BR2_PACKAGE_LIBGPIOD_TOOLS=y
+BR2_PACKAGE_LIBCURL=y
+BR2_PACKAGE_LIBCURL_CURL=y
+BR2_PACKAGE_LIBCURL_VERBOSE=y
+BR2_PACKAGE_LIBFFI=y
+BR2_PACKAGE_DROPBEAR=y
+BR2_PACKAGE_DROPBEAR_DISABLE_REVERSEDNS=y
+BR2_PACKAGE_LRZSZ=y
+BR2_PACKAGE_HOST_MKPASSWD=y
-- 
2.35.3

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Buildroot] [PATCH 1/2] configs/aspeed_ast2600evb: new defconfig
  2022-06-03  6:27 [Buildroot] [PATCH 1/2] configs/aspeed_ast2600evb: new defconfig Cédric Le Goater
  2022-06-03  6:27 ` [Buildroot] [PATCH 2/2] configs/aspeed_ast2500evb: " Cédric Le Goater
@ 2022-06-06  6:14 ` Joel Stanley
  2022-06-06 12:57   ` Cédric Le Goater
  1 sibling, 1 reply; 5+ messages in thread
From: Joel Stanley @ 2022-06-06  6:14 UTC (permalink / raw)
  To: Cédric Le Goater; +Cc: Chin-Ting Kuo, Troy Lee, Buildroot Mailing List

On Fri, 3 Jun 2022 at 06:27, Cédric Le Goater <clg@kaod.org> wrote:
>
> The kernel is from upstream and U-Boot is from the OpenBMC branch
> where most of development is done. Mainline doesn't have the required
> support for HW.
>
> 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>

Looks good. Some comments for potential improvements below.

> ---
>  DEVELOPERS                              |  2 +
>  board/aspeed/ast2600-evb/genimage.cfg   | 40 ++++++++++++
>  board/aspeed/ast2600-evb/linux.fragment |  3 +
>  board/aspeed/ast2600-evb/readme.txt     | 81 +++++++++++++++++++++++++
>  board/aspeed/common/image.its.template  | 56 +++++++++++++++++
>  board/aspeed/common/post-image.sh       | 27 +++++++++
>  configs/aspeed_ast2600evb_defconfig     | 56 +++++++++++++++++
>  7 files changed, 265 insertions(+)
>  create mode 100644 board/aspeed/ast2600-evb/genimage.cfg
>  create mode 100644 board/aspeed/ast2600-evb/linux.fragment
>  create mode 100644 board/aspeed/ast2600-evb/readme.txt
>  create mode 100644 board/aspeed/common/image.its.template
>  create mode 100755 board/aspeed/common/post-image.sh
>  create mode 100644 configs/aspeed_ast2600evb_defconfig
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 71cc3da6d70b..d0018eae13a0 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -501,8 +501,10 @@ F: package/znc/
>  N:     Cédric Le Goater <clg@kaod.org>
>  F:     board/qemu/ppc-bamboo/
>  F:     board/qemu/ppc64le-powernv8/readme.txt
> +F:     board/aspeed/
>  F:     configs/qemu_ppc_bamboo_defconfig
>  F:     configs/qemu_ppc64le_powernv8_defconfig
> +F:     configs/aspeed*

Add me too please :)

>
>  N:     Charles Hardin <ckhardin@gmail.com>
>  F:     package/alsa-plugins/
> diff --git a/board/aspeed/ast2600-evb/genimage.cfg b/board/aspeed/ast2600-evb/genimage.cfg
> new file mode 100644
> index 000000000000..56932d478756
> --- /dev/null
> +++ b/board/aspeed/ast2600-evb/genimage.cfg
> @@ -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

Nice, I like it.

> +#
> +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
> +       }
> +}
> diff --git a/board/aspeed/ast2600-evb/linux.fragment b/board/aspeed/ast2600-evb/linux.fragment
> new file mode 100644
> index 000000000000..61bb934dddf3
> --- /dev/null
> +++ b/board/aspeed/ast2600-evb/linux.fragment
> @@ -0,0 +1,3 @@
> +CONFIG_I3C=y
> +CONFIG_ASPEED_I3C_MASTER=y
> +CONFIG_DW_I3C_MASTER=y

Is this something you're working on? Those drivers don't exist in
mainline or in the openbmc tree.

> diff --git a/board/aspeed/ast2600-evb/readme.txt b/board/aspeed/ast2600-evb/readme.txt
> new file mode 100644
> index 000000000000..9f3ec6053b67
> --- /dev/null
> +++ b/board/aspeed/ast2600-evb/readme.txt
> @@ -0,0 +1,81 @@
> +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 \
> +       -net nic -net user -nographic -serial mon:stdio

-net nic -net user -serial mon:stdio is the default, yeah?

> +
> +   $ qemu-system-arm -M ast2600-evb \
> +       -kernel output/images/zImage \
> +       -append "console=ttyS4,115200n8 root=/dev/ram rw" \

This shouldn't be required either.

> +       -initrd output/images/rootfs.cpio \
> +       -dtb output/images/aspeed-ast2600-evb.dtb \
> +       -net nic -net user -nographic -serial mon:stdio

As above.

> diff --git a/board/aspeed/common/image.its.template b/board/aspeed/common/image.its.template
> new file mode 100644
> index 000000000000..e3200e240709
> --- /dev/null
> +++ b/board/aspeed/common/image.its.template
> @@ -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";
> +                       };
> +               };
> +       };
> +};
> diff --git a/board/aspeed/common/post-image.sh b/board/aspeed/common/post-image.sh
> new file mode 100755
> index 000000000000..ea65a49afff0
> --- /dev/null
> +++ b/board/aspeed/common/post-image.sh
> @@ -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
> diff --git a/configs/aspeed_ast2600evb_defconfig b/configs/aspeed_ast2600evb_defconfig
> new file mode 100644
> index 000000000000..19e46a752f3c
> --- /dev/null
> +++ b/configs/aspeed_ast2600evb_defconfig
> @@ -0,0 +1,56 @@
> +# Architecture
> +BR2_arm=y
> +
> +# System
> +BR2_TARGET_GENERIC_HOSTNAME="aspeed-evb"
> +BR2_TARGET_GENERIC_ISSUE="Aspeed EVB"
> +BR2_TARGET_GENERIC_GETTY_PORT="ttyS4"
> +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"
> +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
> +
> +# 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_CONFIG_FRAGMENT_FILES="board/aspeed/ast2600-evb/linux.fragment"
> +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
> +BR2_PACKAGE_UBOOT_TOOLS=y
> +BR2_PACKAGE_LIBGPIOD=y
> +BR2_PACKAGE_LIBGPIOD_TOOLS=y
> +BR2_PACKAGE_LIBCURL=y
> +BR2_PACKAGE_LIBCURL_CURL=y
> +BR2_PACKAGE_LIBCURL_VERBOSE=y
> +BR2_PACKAGE_LIBFFI=y
> +BR2_PACKAGE_DROPBEAR=y
> +BR2_PACKAGE_DROPBEAR_DISABLE_REVERSEDNS=y
> +BR2_PACKAGE_LRZSZ=y
> +BR2_PACKAGE_HOST_MKPASSWD=y
> --
> 2.35.3
>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Buildroot] [PATCH 2/2] configs/aspeed_ast2500evb: new defconfig
  2022-06-03  6:27 ` [Buildroot] [PATCH 2/2] configs/aspeed_ast2500evb: " Cédric Le Goater
@ 2022-06-06  6:17   ` Joel Stanley
  0 siblings, 0 replies; 5+ messages in thread
From: Joel Stanley @ 2022-06-06  6:17 UTC (permalink / raw)
  To: Cédric Le Goater; +Cc: Chin-Ting Kuo, Troy Lee, Buildroot Mailing List

On Fri, 3 Jun 2022 at 06:27, Cédric Le Goater <clg@kaod.org> wrote:
>
> The kernel is from upstream with a custom config because the default
> 'aspeed_g5' defconfig builds a zImage file image too big for the flash
> layout. U-Boot is from the OpenBMC branch where most of development is
> done. Latest mainline should work.
>
> The main resulting file from the build is a flash image. The partition
> layout matches the OpenBMC one for 32M 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>

> ---
>  board/aspeed/ast2500-evb/genimage.cfg   |  40 ++++
>  board/aspeed/ast2500-evb/linux.config   | 262 ++++++++++++++++++++++++
>  board/aspeed/ast2500-evb/readme.txt     |  81 ++++++++
>  board/aspeed/ast2500-evb/uboot.fragment |   1 +
>  configs/aspeed_ast2500evb_defconfig     |  58 ++++++
>  5 files changed, 442 insertions(+)
>  create mode 100644 board/aspeed/ast2500-evb/genimage.cfg
>  create mode 100644 board/aspeed/ast2500-evb/linux.config
>  create mode 100644 board/aspeed/ast2500-evb/readme.txt
>  create mode 100644 board/aspeed/ast2500-evb/uboot.fragment
>  create mode 100644 configs/aspeed_ast2500evb_defconfig
>
> diff --git a/board/aspeed/ast2500-evb/genimage.cfg b/board/aspeed/ast2500-evb/genimage.cfg
> new file mode 100644
> index 000000000000..498a71e4d75d
> --- /dev/null
> +++ b/board/aspeed/ast2500-evb/genimage.cfg
> @@ -0,0 +1,40 @@
> +#
> +# This config reproduces the OpenBMC flash layout defined in Linux :
> +#
> +#    arch/arm/boot/dts/openbmc-flash-layout.dtsi
> +#
> +# and included by aspeed-ast2500-evb.dts
> +#
> +flash nor-32M-256 {
> +       pebsize = 4K
> +       numpebs = 8K
> +       minimum-io-unit-size = 256
> +}
> +
> +image flash.img {
> +       flash {
> +       }
> +       flashtype = "nor-32M-256"
> +
> +       partition uboot {
> +               image = "u-boot.bin"
> +               size = 384K
> +       }
> +
> +       partition ubootenv {
> +               /* TODO */
> +               offset = 384K
> +               size = 128K
> +       }
> +
> +       partition fitimage {
> +               image = "image.itb"
> +               offset = 512K
> +               size = 4352K
> +       }
> +
> +       partition spare {
> +               offset = 4864K
> +               size = 27904K
> +       }
> +}
> diff --git a/board/aspeed/ast2500-evb/linux.config b/board/aspeed/ast2500-evb/linux.config
> new file mode 100644
> index 000000000000..35eabcfe2bca
> --- /dev/null
> +++ b/board/aspeed/ast2500-evb/linux.config
> @@ -0,0 +1,262 @@
> +CONFIG_KERNEL_XZ=y
> +# CONFIG_SWAP is not set
> +CONFIG_SYSVIPC=y
> +CONFIG_NO_HZ_IDLE=y
> +CONFIG_HIGH_RES_TIMERS=y
> +CONFIG_BPF_SYSCALL=y
> +CONFIG_PSI=y
> +CONFIG_PSI_DEFAULT_DISABLED=y
> +CONFIG_IKCONFIG=y
> +CONFIG_IKCONFIG_PROC=y
> +CONFIG_LOG_BUF_SHIFT=16
> +CONFIG_CGROUPS=y
> +CONFIG_CGROUP_BPF=y
> +CONFIG_NAMESPACES=y
> +CONFIG_USER_NS=y
> +CONFIG_BLK_DEV_INITRD=y
> +# CONFIG_RD_BZIP2 is not set
> +# CONFIG_RD_LZO is not set
> +# CONFIG_RD_LZ4 is not set
> +# CONFIG_UID16 is not set
> +# CONFIG_SYSFS_SYSCALL is not set
> +# CONFIG_AIO is not set
> +CONFIG_EMBEDDED=y
> +CONFIG_PERF_EVENTS=y
> +# CONFIG_COMPAT_BRK is not set
> +CONFIG_SLAB_FREELIST_RANDOM=y
> +CONFIG_SLAB_FREELIST_HARDENED=y
> +CONFIG_ARCH_MULTI_V6=y
> +# CONFIG_ARCH_MULTI_V7 is not set
> +CONFIG_ARCH_ASPEED=y
> +CONFIG_MACH_ASPEED_G5=y
> +# CONFIG_CACHE_L2X0 is not set
> +CONFIG_VMSPLIT_2G=y
> +CONFIG_UACCESS_WITH_MEMCPY=y
> +# CONFIG_ATAGS is not set
> +CONFIG_KEXEC=y
> +# CONFIG_SUSPEND is not set
> +CONFIG_JUMP_LABEL=y
> +CONFIG_STRICT_KERNEL_RWX=y
> +# CONFIG_BLK_DEBUG_FS is not set
> +# CONFIG_MQ_IOSCHED_DEADLINE is not set
> +# CONFIG_MQ_IOSCHED_KYBER is not set
> +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
> +# CONFIG_COMPACTION is not set
> +CONFIG_NET=y
> +CONFIG_PACKET=y
> +CONFIG_PACKET_DIAG=y
> +CONFIG_UNIX=y
> +CONFIG_UNIX_DIAG=y
> +CONFIG_INET=y
> +CONFIG_IP_MULTICAST=y
> +CONFIG_IP_ADVANCED_ROUTER=y
> +CONFIG_IP_MULTIPLE_TABLES=y
> +CONFIG_IP_ROUTE_MULTIPATH=y
> +CONFIG_IP_ROUTE_VERBOSE=y
> +CONFIG_SYN_COOKIES=y
> +# CONFIG_INET_DIAG is not set
> +CONFIG_IPV6_ROUTER_PREF=y
> +CONFIG_IPV6_ROUTE_INFO=y
> +CONFIG_IPV6_OPTIMISTIC_DAD=y
> +# CONFIG_IPV6_SIT is not set
> +CONFIG_IPV6_MULTIPLE_TABLES=y
> +CONFIG_NETFILTER=y
> +# CONFIG_NETFILTER_ADVANCED is not set
> +CONFIG_VLAN_8021Q=y
> +CONFIG_NET_NCSI=y
> +# CONFIG_WIRELESS is not set
> +CONFIG_DEVTMPFS=y
> +CONFIG_DEVTMPFS_MOUNT=y
> +# CONFIG_PREVENT_FIRMWARE_BUILD is not set
> +CONFIG_FIRMWARE_MEMMAP=y
> +CONFIG_MTD=y
> +CONFIG_MTD_BLOCK=y
> +CONFIG_MTD_PARTITIONED_MASTER=y
> +CONFIG_MTD_SPI_NOR=y
> +# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
> +CONFIG_SPI_ASPEED_SMC=y
> +CONFIG_MTD_UBI=y
> +CONFIG_MTD_UBI_FASTMAP=y
> +CONFIG_MTD_UBI_BLOCK=y
> +CONFIG_BLK_DEV_LOOP=y
> +CONFIG_BLK_DEV_NBD=y
> +CONFIG_EEPROM_AT24=y
> +CONFIG_NETDEVICES=y
> +CONFIG_NETCONSOLE=y
> +# CONFIG_NET_VENDOR_ALACRITECH is not set
> +# CONFIG_NET_VENDOR_AMAZON is not set
> +# CONFIG_NET_VENDOR_AQUANTIA is not set
> +# CONFIG_NET_VENDOR_ARC is not set
> +# CONFIG_NET_VENDOR_BROADCOM is not set
> +# CONFIG_NET_VENDOR_CIRRUS is not set
> +# CONFIG_NET_VENDOR_CORTINA is not set
> +# CONFIG_NET_VENDOR_EZCHIP is not set
> +CONFIG_FTGMAC100=y
> +# CONFIG_NET_VENDOR_HISILICON is not set
> +# CONFIG_NET_VENDOR_HUAWEI is not set
> +# CONFIG_NET_VENDOR_INTEL is not set
> +# CONFIG_NET_VENDOR_MARVELL is not set
> +# CONFIG_NET_VENDOR_MELLANOX is not set
> +# CONFIG_NET_VENDOR_MICREL is not set
> +# CONFIG_NET_VENDOR_MICROSEMI is not set
> +# CONFIG_NET_VENDOR_NATSEMI is not set
> +# CONFIG_NET_VENDOR_NETRONOME is not set
> +# CONFIG_NET_VENDOR_NI is not set
> +# CONFIG_NET_VENDOR_QUALCOMM is not set
> +# CONFIG_NET_VENDOR_RENESAS is not set
> +# CONFIG_NET_VENDOR_ROCKER is not set
> +# CONFIG_NET_VENDOR_SAMSUNG is not set
> +# CONFIG_NET_VENDOR_SEEQ is not set
> +# CONFIG_NET_VENDOR_SOLARFLARE is not set
> +# CONFIG_NET_VENDOR_SMSC is not set
> +# CONFIG_NET_VENDOR_SOCIONEXT is not set
> +# CONFIG_NET_VENDOR_STMICRO is not set
> +# CONFIG_NET_VENDOR_SYNOPSYS is not set
> +# CONFIG_NET_VENDOR_VIA is not set
> +# CONFIG_NET_VENDOR_WIZNET is not set
> +CONFIG_BROADCOM_PHY=y
> +CONFIG_REALTEK_PHY=y
> +# CONFIG_WLAN is not set
> +CONFIG_INPUT_EVDEV=y
> +# CONFIG_KEYBOARD_ATKBD is not set
> +CONFIG_KEYBOARD_GPIO=y
> +CONFIG_KEYBOARD_GPIO_POLLED=y
> +# CONFIG_INPUT_MOUSE is not set
> +CONFIG_INPUT_MISC=y
> +CONFIG_INPUT_IBM_PANEL=y
> +# CONFIG_SERIO is not set
> +# CONFIG_VT is not set
> +# CONFIG_LEGACY_PTYS is not set
> +CONFIG_SERIAL_8250=y
> +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
> +CONFIG_SERIAL_8250_CONSOLE=y
> +CONFIG_SERIAL_8250_NR_UARTS=6
> +CONFIG_SERIAL_8250_RUNTIME_UARTS=6
> +CONFIG_SERIAL_8250_EXTENDED=y
> +CONFIG_SERIAL_8250_ASPEED_VUART=y
> +CONFIG_SERIAL_8250_SHARE_IRQ=y
> +CONFIG_SERIAL_OF_PLATFORM=y
> +CONFIG_ASPEED_KCS_IPMI_BMC=y
> +CONFIG_IPMI_KCS_BMC_CDEV_IPMI=y
> +CONFIG_IPMI_KCS_BMC_CDEV_RAW=y
> +CONFIG_ASPEED_BT_IPMI_BMC=y
> +CONFIG_HW_RANDOM_TIMERIOMEM=y
> +CONFIG_DEVMEM_BOOTPARAM=y
> +# CONFIG_I2C_COMPAT is not set
> +CONFIG_I2C_CHARDEV=y
> +CONFIG_I2C_MUX_PCA9541=y
> +CONFIG_I2C_MUX_PCA954x=y
> +CONFIG_I2C_ASPEED=y
> +CONFIG_I2C_FSI=y
> +CONFIG_I2C_SLAVE=y
> +CONFIG_SPI=y
> +CONFIG_GPIOLIB=y
> +CONFIG_GPIO_SYSFS=y
> +CONFIG_GPIO_ASPEED=y
> +CONFIG_GPIO_PCA953X=y
> +CONFIG_GPIO_PCA953X_IRQ=y
> +CONFIG_W1=y
> +CONFIG_W1_MASTER_GPIO=y
> +CONFIG_W1_SLAVE_THERM=y
> +CONFIG_SENSORS_ASPEED=y
> +CONFIG_SENSORS_IIO_HWMON=y
> +CONFIG_SENSORS_LM75=y
> +CONFIG_SENSORS_NCT7904=y
> +CONFIG_SENSORS_OCC_P8_I2C=y
> +CONFIG_SENSORS_OCC_P9_SBE=y
> +CONFIG_PMBUS=y
> +CONFIG_SENSORS_ADM1275=y
> +CONFIG_SENSORS_IBM_CFFPS=y
> +CONFIG_SENSORS_IR35221=y
> +CONFIG_SENSORS_LM25066=y
> +CONFIG_SENSORS_MAX31785=y
> +CONFIG_SENSORS_UCD9000=y
> +CONFIG_SENSORS_UCD9200=y
> +CONFIG_SENSORS_TMP421=y
> +CONFIG_SENSORS_W83773G=y
> +CONFIG_WATCHDOG_SYSFS=y
> +CONFIG_MEDIA_SUPPORT=y
> +CONFIG_MEDIA_SUPPORT_FILTER=y
> +CONFIG_MEDIA_PLATFORM_SUPPORT=y
> +CONFIG_V4L_PLATFORM_DRIVERS=y
> +CONFIG_VIDEO_ASPEED=y
> +CONFIG_DRM=y
> +CONFIG_DRM_ASPEED_GFX=y
> +CONFIG_FB=y
> +CONFIG_USB_GADGET=y
> +CONFIG_USB_ASPEED_VHUB=y
> +CONFIG_USB_CONFIGFS=y
> +CONFIG_USB_CONFIGFS_MASS_STORAGE=y
> +CONFIG_USB_CONFIGFS_F_HID=y
> +CONFIG_USB_MASS_STORAGE=y
> +CONFIG_NEW_LEDS=y
> +CONFIG_LEDS_CLASS=y
> +CONFIG_LEDS_CLASS_FLASH=y
> +CONFIG_LEDS_GPIO=y
> +CONFIG_LEDS_PCA955X=y
> +CONFIG_LEDS_PCA955X_GPIO=y
> +CONFIG_LEDS_TRIGGERS=y
> +CONFIG_LEDS_TRIGGER_TIMER=y
> +CONFIG_LEDS_TRIGGER_HEARTBEAT=y
> +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
> +CONFIG_RTC_CLASS=y
> +CONFIG_RTC_DRV_DS1307=y
> +CONFIG_RTC_DRV_PCF8523=y
> +CONFIG_RTC_DRV_RV8803=y
> +# CONFIG_VIRTIO_MENU is not set
> +# CONFIG_IOMMU_SUPPORT is not set
> +CONFIG_ASPEED_XDMA=y
> +CONFIG_IIO=y
> +CONFIG_ASPEED_ADC=y
> +CONFIG_MAX1363=y
> +CONFIG_BMP280=y
> +CONFIG_DPS310=y
> +CONFIG_FSI=y
> +CONFIG_FSI_MASTER_GPIO=y
> +CONFIG_FSI_MASTER_HUB=y
> +CONFIG_FSI_MASTER_AST_CF=y
> +CONFIG_FSI_SCOM=y
> +CONFIG_FSI_SBEFIFO=y
> +CONFIG_FSI_OCC=y
> +CONFIG_FANOTIFY=y
> +CONFIG_OVERLAY_FS=y
> +CONFIG_TMPFS=y
> +CONFIG_JFFS2_FS=y
> +# CONFIG_JFFS2_FS_WRITEBUFFER is not set
> +CONFIG_JFFS2_SUMMARY=y
> +CONFIG_JFFS2_FS_XATTR=y
> +CONFIG_UBIFS_FS=y
> +CONFIG_SQUASHFS=y
> +CONFIG_SQUASHFS_XZ=y
> +CONFIG_SQUASHFS_ZSTD=y
> +# CONFIG_NETWORK_FILESYSTEMS is not set
> +CONFIG_HARDENED_USERCOPY=y
> +CONFIG_FORTIFY_SOURCE=y
> +CONFIG_CRYPTO_HMAC=y
> +CONFIG_CRYPTO_SHA256=y
> +CONFIG_CRYPTO_USER_API_HASH=y
> +# CONFIG_CRYPTO_HW is not set
> +# CONFIG_XZ_DEC_X86 is not set
> +# CONFIG_XZ_DEC_POWERPC is not set
> +# CONFIG_XZ_DEC_IA64 is not set
> +# CONFIG_XZ_DEC_SPARC is not set
> +CONFIG_PRINTK_TIME=y
> +CONFIG_DYNAMIC_DEBUG=y
> +CONFIG_DEBUG_INFO=y
> +CONFIG_DEBUG_INFO_REDUCED=y
> +CONFIG_DEBUG_INFO_DWARF4=y
> +CONFIG_GDB_SCRIPTS=y
> +CONFIG_STRIP_ASM_SYMS=y
> +CONFIG_DEBUG_FS=y
> +CONFIG_DEBUG_WX=y
> +CONFIG_SCHED_STACK_END_CHECK=y
> +CONFIG_PANIC_ON_OOPS=y
> +CONFIG_PANIC_TIMEOUT=-1
> +CONFIG_SOFTLOCKUP_DETECTOR=y
> +# CONFIG_DETECT_HUNG_TASK is not set
> +CONFIG_WQ_WATCHDOG=y
> +# CONFIG_SCHED_DEBUG is not set
> +CONFIG_DEBUG_LIST=y
> +CONFIG_FUNCTION_TRACER=y
> +CONFIG_DEBUG_USER=y
> +# CONFIG_RUNTIME_TESTING_MENU is not set
> diff --git a/board/aspeed/ast2500-evb/readme.txt b/board/aspeed/ast2500-evb/readme.txt
> new file mode 100644
> index 000000000000..417b14e408ce
> --- /dev/null
> +++ b/board/aspeed/ast2500-evb/readme.txt
> @@ -0,0 +1,81 @@
> +Aspeed AST2500 EVB
> +
> +Introduction
> +============
> +
> +The AST2500 EVB is an evaluation board for the AST2500 SoC, most
> +commonly used as a Server Management Processor. It includes an 800MHz
> +ARM11 processor with DDR3 or DDR4 SDRAM (up to 1GB), SPI flash memory
> +devices for BMC and host firmwares and numerous controllers to drive
> +the server board.
> +
> +  https://www.aspeedtech.com/server_ast2500/
> +
> +How to build it
> +===============
> +
> +Configure buildroot:
> +
> +  $ make aspeed_ast2500evb_defconfig
> +
> +Compile everything and build the rootfs image:
> +
> +  $ make
> +
> +Result of the build
> +===================
> +
> +After building, the output/images directory contains:
> +
> +  output/images/
> +    ├── aspeed-ast2500-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 AST2500 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 ast2500-evb \
> +       -drive file=output/images/flash.img,format=raw,if=mtd \
> +       -net nic -net user -nographic -serial mon:stdio

Whatever we decide in the 2600 we should apply that here too.

> +
> +   $ qemu-system-arm -M ast2500-evb \
> +       -kernel output/images/zImage \
> +       -append "console=ttyS4,115200n8 root=/dev/ram rw" \
> +       -initrd output/images/rootfs.cpio \
> +       -dtb output/images/aspeed-ast2500-evb.dtb \
> +       -net nic -net user -nographic -serial mon:stdio
> diff --git a/board/aspeed/ast2500-evb/uboot.fragment b/board/aspeed/ast2500-evb/uboot.fragment
> new file mode 100644
> index 000000000000..5a8961538f4a
> --- /dev/null
> +++ b/board/aspeed/ast2500-evb/uboot.fragment
> @@ -0,0 +1 @@
> +CONFIG_BOOTCOMMAND="bootm 20080000"
> diff --git a/configs/aspeed_ast2500evb_defconfig b/configs/aspeed_ast2500evb_defconfig
> new file mode 100644
> index 000000000000..2ec2df4f5f1c
> --- /dev/null
> +++ b/configs/aspeed_ast2500evb_defconfig
> @@ -0,0 +1,58 @@
> +# Architecture
> +BR2_arm=y
> +
> +# System
> +BR2_TARGET_GENERIC_HOSTNAME="aspeed-evb"
> +BR2_TARGET_GENERIC_ISSUE="Aspeed EVB"
> +BR2_TARGET_GENERIC_GETTY_PORT="ttyS4"
> +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"
> +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
> +
> +# 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_USE_CUSTOM_CONFIG=y
> +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/aspeed/ast2500-evb/linux.config"
> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="aspeed-ast2500-evb"
> +BR2_LINUX_KERNEL_XZ=y
> +
> +# 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-ast2500"
> +BR2_TARGET_UBOOT_NEEDS_DTC=y
> +BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=ast2500-evb"
> +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/aspeed/ast2500-evb/uboot.fragment"
> +
> +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
> +BR2_PACKAGE_UBOOT_TOOLS=y
> +BR2_PACKAGE_LIBGPIOD=y
> +BR2_PACKAGE_LIBGPIOD_TOOLS=y
> +BR2_PACKAGE_LIBCURL=y
> +BR2_PACKAGE_LIBCURL_CURL=y
> +BR2_PACKAGE_LIBCURL_VERBOSE=y
> +BR2_PACKAGE_LIBFFI=y
> +BR2_PACKAGE_DROPBEAR=y
> +BR2_PACKAGE_DROPBEAR_DISABLE_REVERSEDNS=y
> +BR2_PACKAGE_LRZSZ=y
> +BR2_PACKAGE_HOST_MKPASSWD=y
> --
> 2.35.3
>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Buildroot] [PATCH 1/2] configs/aspeed_ast2600evb: new defconfig
  2022-06-06  6:14 ` [Buildroot] [PATCH 1/2] configs/aspeed_ast2600evb: " Joel Stanley
@ 2022-06-06 12:57   ` Cédric Le Goater
  0 siblings, 0 replies; 5+ messages in thread
From: Cédric Le Goater @ 2022-06-06 12:57 UTC (permalink / raw)
  To: Joel Stanley; +Cc: Chin-Ting Kuo, Troy Lee, Buildroot Mailing List

On 6/6/22 08:14, Joel Stanley wrote:
> On Fri, 3 Jun 2022 at 06:27, Cédric Le Goater <clg@kaod.org> wrote:
>>
>> The kernel is from upstream and U-Boot is from the OpenBMC branch
>> where most of development is done. Mainline doesn't have the required
>> support for HW.
>>
>> 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>
> 
> Looks good. Some comments for potential improvements below.
> 
>> ---
>>   DEVELOPERS                              |  2 +
>>   board/aspeed/ast2600-evb/genimage.cfg   | 40 ++++++++++++
>>   board/aspeed/ast2600-evb/linux.fragment |  3 +
>>   board/aspeed/ast2600-evb/readme.txt     | 81 +++++++++++++++++++++++++
>>   board/aspeed/common/image.its.template  | 56 +++++++++++++++++
>>   board/aspeed/common/post-image.sh       | 27 +++++++++
>>   configs/aspeed_ast2600evb_defconfig     | 56 +++++++++++++++++
>>   7 files changed, 265 insertions(+)
>>   create mode 100644 board/aspeed/ast2600-evb/genimage.cfg
>>   create mode 100644 board/aspeed/ast2600-evb/linux.fragment
>>   create mode 100644 board/aspeed/ast2600-evb/readme.txt
>>   create mode 100644 board/aspeed/common/image.its.template
>>   create mode 100755 board/aspeed/common/post-image.sh
>>   create mode 100644 configs/aspeed_ast2600evb_defconfig
>>
>> diff --git a/DEVELOPERS b/DEVELOPERS
>> index 71cc3da6d70b..d0018eae13a0 100644
>> --- a/DEVELOPERS
>> +++ b/DEVELOPERS
>> @@ -501,8 +501,10 @@ F: package/znc/
>>   N:     Cédric Le Goater <clg@kaod.org>
>>   F:     board/qemu/ppc-bamboo/
>>   F:     board/qemu/ppc64le-powernv8/readme.txt
>> +F:     board/aspeed/
>>   F:     configs/qemu_ppc_bamboo_defconfig
>>   F:     configs/qemu_ppc64le_powernv8_defconfig
>> +F:     configs/aspeed*
> 
> Add me too please :)

sure. done.


> 
>>
>>   N:     Charles Hardin <ckhardin@gmail.com>
>>   F:     package/alsa-plugins/
>> diff --git a/board/aspeed/ast2600-evb/genimage.cfg b/board/aspeed/ast2600-evb/genimage.cfg
>> new file mode 100644
>> index 000000000000..56932d478756
>> --- /dev/null
>> +++ b/board/aspeed/ast2600-evb/genimage.cfg
>> @@ -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
> 
> Nice, I like it.
> 
>> +#
>> +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
>> +       }
>> +}
>> diff --git a/board/aspeed/ast2600-evb/linux.fragment b/board/aspeed/ast2600-evb/linux.fragment
>> new file mode 100644
>> index 000000000000..61bb934dddf3
>> --- /dev/null
>> +++ b/board/aspeed/ast2600-evb/linux.fragment
>> @@ -0,0 +1,3 @@
>> +CONFIG_I3C=y
>> +CONFIG_ASPEED_I3C_MASTER=y
>> +CONFIG_DW_I3C_MASTER=y
> 
> Is this something you're working on? Those drivers don't exist in
> mainline or in the openbmc tree.

ah yes. This is not upstream yet. I will remove.

> 
>> diff --git a/board/aspeed/ast2600-evb/readme.txt b/board/aspeed/ast2600-evb/readme.txt
>> new file mode 100644
>> index 000000000000..9f3ec6053b67
>> --- /dev/null
>> +++ b/board/aspeed/ast2600-evb/readme.txt
>> @@ -0,0 +1,81 @@
>> +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 \
>> +       -net nic -net user -nographic -serial mon:stdio
> 
> -net nic -net user -serial mon:stdio is the default, yeah?

yes.

> 
>> +
>> +   $ qemu-system-arm -M ast2600-evb \
>> +       -kernel output/images/zImage \
>> +       -append "console=ttyS4,115200n8 root=/dev/ram rw" \
> 
> This shouldn't be required either.

indeed.
  
>> +       -initrd output/images/rootfs.cpio \
>> +       -dtb output/images/aspeed-ast2600-evb.dtb \
>> +       -net nic -net user -nographic -serial mon:stdio
> 
> As above.

Thanks,

C.


> 
>> diff --git a/board/aspeed/common/image.its.template b/board/aspeed/common/image.its.template
>> new file mode 100644
>> index 000000000000..e3200e240709
>> --- /dev/null
>> +++ b/board/aspeed/common/image.its.template
>> @@ -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";
>> +                       };
>> +               };
>> +       };
>> +};
>> diff --git a/board/aspeed/common/post-image.sh b/board/aspeed/common/post-image.sh
>> new file mode 100755
>> index 000000000000..ea65a49afff0
>> --- /dev/null
>> +++ b/board/aspeed/common/post-image.sh
>> @@ -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
>> diff --git a/configs/aspeed_ast2600evb_defconfig b/configs/aspeed_ast2600evb_defconfig
>> new file mode 100644
>> index 000000000000..19e46a752f3c
>> --- /dev/null
>> +++ b/configs/aspeed_ast2600evb_defconfig
>> @@ -0,0 +1,56 @@
>> +# Architecture
>> +BR2_arm=y
>> +
>> +# System
>> +BR2_TARGET_GENERIC_HOSTNAME="aspeed-evb"
>> +BR2_TARGET_GENERIC_ISSUE="Aspeed EVB"
>> +BR2_TARGET_GENERIC_GETTY_PORT="ttyS4"
>> +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"
>> +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
>> +
>> +# 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_CONFIG_FRAGMENT_FILES="board/aspeed/ast2600-evb/linux.fragment"
>> +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
>> +BR2_PACKAGE_UBOOT_TOOLS=y
>> +BR2_PACKAGE_LIBGPIOD=y
>> +BR2_PACKAGE_LIBGPIOD_TOOLS=y
>> +BR2_PACKAGE_LIBCURL=y
>> +BR2_PACKAGE_LIBCURL_CURL=y
>> +BR2_PACKAGE_LIBCURL_VERBOSE=y
>> +BR2_PACKAGE_LIBFFI=y
>> +BR2_PACKAGE_DROPBEAR=y
>> +BR2_PACKAGE_DROPBEAR_DISABLE_REVERSEDNS=y
>> +BR2_PACKAGE_LRZSZ=y
>> +BR2_PACKAGE_HOST_MKPASSWD=y
>> --
>> 2.35.3
>>

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-06-06 13:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-03  6:27 [Buildroot] [PATCH 1/2] configs/aspeed_ast2600evb: new defconfig Cédric Le Goater
2022-06-03  6:27 ` [Buildroot] [PATCH 2/2] configs/aspeed_ast2500evb: " Cédric Le Goater
2022-06-06  6:17   ` Joel Stanley
2022-06-06  6:14 ` [Buildroot] [PATCH 1/2] configs/aspeed_ast2600evb: " Joel Stanley
2022-06-06 12:57   ` Cédric Le Goater

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.