board/ci20: Implement creation of a basic sdcard image for ci20
PATCH 1/1 board/ci20: Implement creation of a basic sdcard image for ci20
Add a genimage.cfg and post-image.sh to create a working sdcard.img for the ci20 hardware. We also need a uboot-env.txt to create the partition for the uboot environment.
Update the board/ci20/readme.txt with the related information. Remove the tftp netboot description from the readme as it is already to complicated for a basic bootable example.
Fix the toolchain-wrapper to support more recent GCC versions concerning the MIPS XBurst architecture used by ci20.
--- board/ci20/genimage.cfg | 29 +++++++++++++++++++++++ board/ci20/post-image.sh | 16 +++++++++++++ board/ci20/readme.txt | 54 +++++++++++++++++++++++------------------- board/ci20/uboot-env.txt | 10 ++++++++ configs/ci20_defconfig | 11 +++++++++ toolchain/toolchain-wrapper.c | 10 ++++++-- toolchain/toolchain-wrapper.mk | 6 ++++- 7 files changed, 108 insertions(+), 28 deletions(-) create mode 100644 board/ci20/genimage.cfg create mode 100755 board/ci20/post-image.sh create mode 100644 board/ci20/uboot-env.txt
board/ci20/genimage.cfg new file +29 -0
@@ -0,0 +1,29 @@ +image sdcard.img { + hdimage { + } + + partition uboot-spl { + in-partition-table = "no" + image = "u-boot-spl.bin" + offset = 512 + } + + partition uboot { + in-partition-table = "no" + image = "u-boot.img" + offset = 14k + } + + partition uboot-env { + in-partition-table = "no" + image = "uboot-env.bin" + offset = 526k + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + offset = 2M + size = 60M + } +}
board/ci20/post-image.sh new file +16 -0
@@ -0,0 +1,16 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/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}" + +exit $?
board/ci20/readme.txt +29 -25
70 lines not on this page · raw message
board/ci20/uboot-env.txt new file +10 -0
@@ -0,0 +1,10 @@ +baudrate=115200 +board_mfr=NP +bootargs=console=ttyS4,115200 console=tty0 mem=256M at 0x0 mem=768M at 0x30000000 rootwait root=/dev/mmcblk0p1 devtmpfs.mount=1 ip=dhcp +bootcmd=run ethargs; ext4load mmc 0:1 0x88000000 /boot/uImage; bootm 0x88000000 +bootdelay=1 +ethargs=env set bootargs ${bootargs} +loads_echo=1 +stderr=eserial0,eserial4 +stdin=eserial0,eserial4 +stdout=eserial0,eserial4
configs/ci20_defconfig +11 -0
@@ -8,6 +8,10 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_18=y # system BR2_TARGET_GENERIC_GETTY_PORT="ttyS4" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/ci20/genimage.cfg" # kernel BR2_LINUX_KERNEL=y
@@ -15,6 +19,7 @@ BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/MIPS/CI20_linux.git" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="7dff33297116643485ca37141d804eddd793e834" BR2_LINUX_KERNEL_DEFCONFIG="ci20" +BR2_LINUX_KERNEL_INSTALL_TARGET=y # u-boot BR2_TARGET_UBOOT=y
@@ -26,3 +31,9 @@ BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="dd3c1b95dac7d10b2ca5806f65e5c1050d7dd0fa" BR2_TARGET_UBOOT_FORMAT_IMG=y BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl.bin" +BR2_TARGET_UBOOT_ENVIMAGE=y +BR2_TARGET_UBOOT_ENVIMAGE_SOURCE="board/ci20/uboot-env.txt" +BR2_TARGET_UBOOT_ENVIMAGE_SIZE="32768" + +# host +BR2_PACKAGE_HOST_GENIMAGE=y
toolchain/toolchain-wrapper.c +8 -2
@@ -79,8 +79,14 @@ static char *predef_args[] = {#ifdef BR_OMIT_LOCK_PREFIX "-Wa,-momit-lock-prefix=yes",#endif -#ifdef BR_NO_FUSED_MADD - "-mno-fused-madd", +#ifdef BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 +#ifdef BR_FP_CONTRACT_OFF + "-ffp-contract=off", +#endif +#else +#ifdef BR_NO_FUSED_MADD + "-mno-fused-madd", +#endif #endif #ifdef BR_BINFMT_FLAT "-Wl,-elf2flt",
toolchain/toolchain-wrapper.mk +5 -1
@@ -28,7 +28,11 @@ endif # Avoid FPU bug on XBurst CPUs ifeq ($(BR2_mips_xburst),y) -TOOLCHAIN_WRAPPER_ARGS += -DBR_NO_FUSED_MADD + ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_4_6),y) + TOOLCHAIN_WRAPPER_ARGS += -DBR_FP_CONTRACT_OFF + else + TOOLCHAIN_WRAPPER_ARGS += -DBR_NO_FUSED_MADD + endif endif ifeq ($(BR2_CCACHE_USE_BASEDIR),y)
Signature · 1 line
2.7.4
PATCH 1/1 board/ci20: Implement creation of a basic sdcard image for ci20
Hello,
Quoted 4 lines · Johannes Schmitz
Add a genimage.cfg and
post-image.shto create a working sdcard.img for the ci20 hardware. We also need a uboot-env.txt to create the partition for the uboot environment.
Quoted 8 lines
Update the
board/ci20/readme.txtwith the related information. Remove the tftp netboot description from the readme as it is already to complicated for a basic bootable example.Fix the toolchain-wrapper to support more recent GCC versions concerning the MIPS XBurst architecture used by ci20.
Signed-off-by Johannes Schmitz <[email protected]>
Thanks for this new iteration!
Quoted 3 lines
--- board/ci20/genimage.cfg | 29 +++++++++++++++++++++++ board/ci20/post-image.sh | 16 +++++++++++++
This script is no longer needed/used by your patch, since you use the generic genimage.sh script.
Quoted 5 lines
board/ci20/readme.txt | 54 +++++++++++++++++++++++------------------- board/ci20/uboot-env.txt | 10 ++++++++ configs/ci20_defconfig | 11 +++++++++ toolchain/toolchain-wrapper.c | 10 ++++++-- toolchain/toolchain-wrapper.mk | 6 ++++-
The toolchain changes are really unrelated, they shouldn't be part of the same patch.
Best regards,
Thomas Petazzoni
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
A message that is not in the archive (sent off-list or not yet received): CAMbDF3JqN=7DxC3N1KBAkBsrPYn6AU=+Tn0ct=AQsNMmNWw8cg@mail.gmail.com
PATCH 1/1 board/ci20: Implement creation of a basic sdcard image for ci20
Hello,
Please keep the Buildroot mailing list in Cc, thanks!
Quoted 6 lines · Johannes Schmitz
Quoted 2 lines
The toolchain changes are really unrelated, they shouldn't be part of the same patch.
The problem without the patch I can not even complete the build, I get an error, so how is it unrelated?
I can split it again but I don't think it is completely unrelated.
So today the current ci20_defconfig is broken ?
At the very least, the gcc flag patch should be separate, with a proper commit log that explains what is going on.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com