* [Buildroot] [PATCH 1/2] toolchain: Fix the toolchain-wrapper to support more recent GCC versions
@ 2018-01-09 16:08 Johannes Schmitz
2018-01-09 16:08 ` [Buildroot] [PATCH 2/2] board/ci20: Implement creation of a basic sdcard image for ci20 Johannes Schmitz
2018-01-12 21:39 ` [Buildroot] [PATCH 1/2] toolchain: Fix the toolchain-wrapper to support more recent GCC versions Thomas Petazzoni
0 siblings, 2 replies; 4+ messages in thread
From: Johannes Schmitz @ 2018-01-09 16:08 UTC (permalink / raw)
To: buildroot
This fix is necessary for to build for MIPS, for example for the MIPS
XBurst architecture used on ci20 boards.
Signed-off-by: Johannes Schmitz <johannes.schmitz1@gmail.com>
---
toolchain/toolchain-wrapper.c | 10 ++++++++--
toolchain/toolchain-wrapper.mk | 6 +++++-
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/toolchain/toolchain-wrapper.c b/toolchain/toolchain-wrapper.c
index 2928ea4..dd3a25e 100644
--- a/toolchain/toolchain-wrapper.c
+++ b/toolchain/toolchain-wrapper.c
@@ -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",
diff --git a/toolchain/toolchain-wrapper.mk b/toolchain/toolchain-wrapper.mk
index 7f72a0c..b7a4b9b 100644
--- a/toolchain/toolchain-wrapper.mk
+++ b/toolchain/toolchain-wrapper.mk
@@ -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)
--
2.7.4
^ permalink raw reply related [flat|nested] 4+ messages in thread* [Buildroot] [PATCH 2/2] board/ci20: Implement creation of a basic sdcard image for ci20
2018-01-09 16:08 [Buildroot] [PATCH 1/2] toolchain: Fix the toolchain-wrapper to support more recent GCC versions Johannes Schmitz
@ 2018-01-09 16:08 ` Johannes Schmitz
2018-01-12 21:44 ` Thomas Petazzoni
2018-01-12 21:39 ` [Buildroot] [PATCH 1/2] toolchain: Fix the toolchain-wrapper to support more recent GCC versions Thomas Petazzoni
1 sibling, 1 reply; 4+ messages in thread
From: Johannes Schmitz @ 2018-01-09 16:08 UTC (permalink / raw)
To: buildroot
Add a genimage.cfg 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.
Signed-off-by: Johannes Schmitz <johannes.schmitz1@gmail.com>
---
board/ci20/genimage.cfg | 29 ++++++++++++++++++++++++++
board/ci20/readme.txt | 54 ++++++++++++++++++++++++++----------------------
board/ci20/uboot-env.txt | 10 +++++++++
configs/ci20_defconfig | 11 ++++++++++
4 files changed, 79 insertions(+), 25 deletions(-)
create mode 100644 board/ci20/genimage.cfg
create mode 100644 board/ci20/uboot-env.txt
diff --git a/board/ci20/genimage.cfg b/board/ci20/genimage.cfg
new file mode 100644
index 0000000..fa3e736
--- /dev/null
+++ b/board/ci20/genimage.cfg
@@ -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
+ }
+}
diff --git a/board/ci20/readme.txt b/board/ci20/readme.txt
index ca7bb52..71d5070 100644
--- a/board/ci20/readme.txt
+++ b/board/ci20/readme.txt
@@ -2,41 +2,45 @@
* MIPS Creator CI20 *
*********************
+Introduction
+============
+
The 'ci20_defconfig' will create a root filesystem and a kernel image
under the 'output/images/' directory. This document will try to explain how
to use them in order to run Buildroot in the MIPS Creator CI20 board.
-Assuming you are at the U-Boot prompt of the MIPS Creator CI20, you have to
-load the generated kernel image by using the 'tftpboot' command. In
-order to do that, you will need to get the network working. Here you
-have the instructions to set the ip address, netmask and gateway:
+How to build it
+===============
+
+Configure Buildroot
+-------------------
+
+ $ make ci20_defconfig
+
+Build the rootfs
+----------------
+
+Note: you will need to have access to the network, since Buildroot will
+download the packages' sources.
- setenv ipaddr x.x.x.x
- setenv netmask x.x.x.x
- setenv gatewayip x.x.x.x
+You may now build your rootfs with:
-Now you have to set the ip for the TFTP server you are going to load the
-kernel image from, and also the name of the kernel image file (we use
-'uImage' as a filename in this example):
+ $ make
- setenv serverip x.x.x.x
- setenv bootfile uImage
+(This may take a while, consider getting yourself a coffee ;-) )
-And finally load the kernel image:
+How to write the SD card
+========================
- tftpboot
+Once the build process is finished you will have an image called
+"sdcard.img" in the output/images/ directory.
-Now you have to extract the generated root filesystem into a USB drive
-or SD-Card. Here you have the instructions to boot from the two of them.
-You have to choose the one your prefer:
+Make sure the SD card is not mounted then copy the bootable "sdcard.img" onto
+it with "dd":
-From USB
- setenv bootargs console=ttyS4,115200 console=tty0 mem=256M at 0x0
-mem=768M at 0x30000000 root=/dev/sda1
+ $ sudo dd if=output/images/sdcard.img of=/dev/sdX
-From SD-Card
- setenv bootargs console=ttyS4,115200 console=tty0 mem=256M at 0x0
-mem=768M at 0x30000000 root=/dev/mmcblk0p1
+Insert the SDcard into your ci20, and power it up. Your new system
+should come up now and start a console on the UART HEADER.
-And finally run this command to boot the board:
- bootm
+see: https://elinux.org/CI20_Hardware#Dedicated_UART_header
diff --git a/board/ci20/uboot-env.txt b/board/ci20/uboot-env.txt
new file mode 100644
index 0000000..3093496
--- /dev/null
+++ b/board/ci20/uboot-env.txt
@@ -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
diff --git a/configs/ci20_defconfig b/configs/ci20_defconfig
index 6de6394..f28dd4d 100644
--- a/configs/ci20_defconfig
+++ b/configs/ci20_defconfig
@@ -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
--
2.7.4
^ permalink raw reply related [flat|nested] 4+ messages in thread* [Buildroot] [PATCH 2/2] board/ci20: Implement creation of a basic sdcard image for ci20
2018-01-09 16:08 ` [Buildroot] [PATCH 2/2] board/ci20: Implement creation of a basic sdcard image for ci20 Johannes Schmitz
@ 2018-01-12 21:44 ` Thomas Petazzoni
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2018-01-12 21:44 UTC (permalink / raw)
To: buildroot
Hello,
On Tue, 9 Jan 2018 17:08:28 +0100, Johannes Schmitz wrote:
> Add a genimage.cfg 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.
>
> Signed-off-by: Johannes Schmitz <johannes.schmitz1@gmail.com>
> ---
> board/ci20/genimage.cfg | 29 ++++++++++++++++++++++++++
> board/ci20/readme.txt | 54 ++++++++++++++++++++++++++----------------------
> board/ci20/uboot-env.txt | 10 +++++++++
> configs/ci20_defconfig | 11 ++++++++++
> 4 files changed, 79 insertions(+), 25 deletions(-)
> create mode 100644 board/ci20/genimage.cfg
> create mode 100644 board/ci20/uboot-env.txt
Applied to master, thanks.
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH 1/2] toolchain: Fix the toolchain-wrapper to support more recent GCC versions
2018-01-09 16:08 [Buildroot] [PATCH 1/2] toolchain: Fix the toolchain-wrapper to support more recent GCC versions Johannes Schmitz
2018-01-09 16:08 ` [Buildroot] [PATCH 2/2] board/ci20: Implement creation of a basic sdcard image for ci20 Johannes Schmitz
@ 2018-01-12 21:39 ` Thomas Petazzoni
1 sibling, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2018-01-12 21:39 UTC (permalink / raw)
To: buildroot
Hello,
On Tue, 9 Jan 2018 17:08:27 +0100, Johannes Schmitz wrote:
> This fix is necessary for to build for MIPS, for example for the MIPS
> XBurst architecture used on ci20 boards.
>
> Signed-off-by: Johannes Schmitz <johannes.schmitz1@gmail.com>
This is a bit short on explanation. Can you explain what it is fixing?
Why is -mno-fused-madd no longer sufficient in recent gcc versions?
The commit title is also not quite good, it doesn't mention that it's
MIPS-related. Perhaps:
toolchain: use -ffp-contract=off on MIPS XBust in the wrapper when needed
> diff --git a/toolchain/toolchain-wrapper.c b/toolchain/toolchain-wrapper.c
> index 2928ea4..dd3a25e 100644
> --- a/toolchain/toolchain-wrapper.c
> +++ b/toolchain/toolchain-wrapper.c
> @@ -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
This condition is not needed, because toolchain-wrapper.mk is already
taking care of passing BR_NO_FUSED_MADD or BR2_FP_CONTRACT_OFF.
> + #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",
> diff --git a/toolchain/toolchain-wrapper.mk b/toolchain/toolchain-wrapper.mk
> index 7f72a0c..b7a4b9b 100644
> --- a/toolchain/toolchain-wrapper.mk
> +++ b/toolchain/toolchain-wrapper.mk
> @@ -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
Please don't indent lines. That's the Buildroot convention.
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-01-12 21:44 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-09 16:08 [Buildroot] [PATCH 1/2] toolchain: Fix the toolchain-wrapper to support more recent GCC versions Johannes Schmitz
2018-01-09 16:08 ` [Buildroot] [PATCH 2/2] board/ci20: Implement creation of a basic sdcard image for ci20 Johannes Schmitz
2018-01-12 21:44 ` Thomas Petazzoni
2018-01-12 21:39 ` [Buildroot] [PATCH 1/2] toolchain: Fix the toolchain-wrapper to support more recent GCC versions Thomas Petazzoni
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.