diff --git a/board/ci20/genimage.cfg b/board/ci20/genimage.cfg new file mode 100644 index 0000000000..fa3e7368d3 --- /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 ca7bb52917..71d5070694 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 +=============== - setenv ipaddr x.x.x.x - setenv netmask x.x.x.x - setenv gatewayip x.x.x.x +Configure Buildroot +------------------- -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 ci20_defconfig - setenv serverip x.x.x.x - setenv bootfile uImage +Build the rootfs +---------------- -And finally load the kernel image: +Note: you will need to have access to the network, since Buildroot will +download the packages' sources. - tftpboot +You may now build your rootfs with: -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 -From USB - setenv bootargs console=ttyS4,115200 console=tty0 mem=256M@0x0 -mem=768M@0x30000000 root=/dev/sda1 +(This may take a while, consider getting yourself a coffee ;-) ) -From SD-Card - setenv bootargs console=ttyS4,115200 console=tty0 mem=256M@0x0 -mem=768M@0x30000000 root=/dev/mmcblk0p1 +How to write the SD card +======================== -And finally run this command to boot the board: - bootm +Once the build process is finished you will have an image called +"sdcard.img" in the output/images/ directory. + +Make sure the SD card is not mounted then copy the bootable "sdcard.img" onto +it with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +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. + +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 0000000000..3093496cc9 --- /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@0x0 mem=768M@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 6de6394f8c..f28dd4da10 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