diff mbox

[v2] configs: add defconfig for Digilent Zybo

Message ID ecf2d7c6-c68e-1571-86f5-06cf7ba91118@gmail.com
State Accepted
Commit 0f8433ab04a13a052b4431f54cef98326d23bf71
Headers show

Commit Message

Sebastien Van Cauwenberghe July 24, 2016, 3:36 p.m. UTC
This configuration allows out-of-the box Digilent Zybo
support. It uses mainline U-boot and Linux kernel. 
This configuration generates a SD card image named sdcard.img.

Signed-off-by: Sebastien Van Cauwenberghe <svancau@gmail.com>
---
 board/digilent/zybo/genimage-zybo.cfg | 29 +++++++++++++
 board/digilent/zybo/post-image.sh     | 21 ++++++++++
 board/digilent/zybo/readme.txt        | 76 +++++++++++++++++++++++++++++++++++
 board/digilent/zybo/system.bit        |  0
 board/digilent/zybo/uEnv.txt          |  5 +++
 configs/zynq_zybo_defconfig           | 26 ++++++++++++
 6 files changed, 157 insertions(+)
 create mode 100644 board/digilent/zybo/genimage-zybo.cfg
 create mode 100755 board/digilent/zybo/post-image.sh
 create mode 100644 board/digilent/zybo/readme.txt
 create mode 100644 board/digilent/zybo/system.bit
 create mode 100644 board/digilent/zybo/uEnv.txt
 create mode 100644 configs/zynq_zybo_defconfig

Comments

Peter Korsgaard Oct. 15, 2016, 4:35 p.m. UTC | #1
>>>>> "Sebastien" == Sebastien Van Cauwenberghe <svancau@gmail.com> writes:

 > This configuration allows out-of-the box Digilent Zybo
 > support. It uses mainline U-boot and Linux kernel. 
 > This configuration generates a SD card image named sdcard.img.

 > Signed-off-by: Sebastien Van Cauwenberghe <svancau@gmail.com>
 > ---
 >  board/digilent/zybo/genimage-zybo.cfg | 29 +++++++++++++
 >  board/digilent/zybo/post-image.sh     | 21 ++++++++++
 >  board/digilent/zybo/readme.txt        | 76 +++++++++++++++++++++++++++++++++++
 >  board/digilent/zybo/system.bit        |  0
 >  board/digilent/zybo/uEnv.txt          |  5 +++
 >  configs/zynq_zybo_defconfig           | 26 ++++++++++++
 >  6 files changed, 157 insertions(+)
 >  create mode 100644 board/digilent/zybo/genimage-zybo.cfg
 >  create mode 100755 board/digilent/zybo/post-image.sh
 >  create mode 100644 board/digilent/zybo/readme.txt
 >  create mode 100644 board/digilent/zybo/system.bit
 >  create mode 100644 board/digilent/zybo/uEnv.txt
 >  create mode 100644 configs/zynq_zybo_defconfig

 > diff --git a/board/digilent/zybo/genimage-zybo.cfg b/board/digilent/zybo/genimage-zybo.cfg
 > new file mode 100644
 > index 0000000..f39186d
 > --- /dev/null
 > +++ b/board/digilent/zybo/genimage-zybo.cfg

We normally just call this genimage.cfg, so I've renamed this.

 > +++ b/board/digilent/zybo/post-image.sh
 > @@ -0,0 +1,21 @@
 > +#!/bin/sh
 > +
 > +BOARD_DIR="$(dirname $0)"
 > +BOARD_NAME="$(basename ${BOARD_DIR})"
 > +GENIMAGE_CFG="${BOARD_DIR}/genimage-${BOARD_NAME}.cfg"
 > +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
 > +OUTPUT_DIR="${O}/images"

And dropped BOARD_NAME / OUTPUT_DIR.

> +
 > +rm -rf "${GENIMAGE_TMP}"
 > +
 > +cp board/digilent/zybo/uEnv.txt ${BINARIES_DIR}
 > +cp board/digilent/zybo/system.bit ${BINARIES_DIR}
 > +
 > +genimage                           \
 > +	--rootpath "${TARGET_DIR}"     \
 > +	--tmppath "${GENIMAGE_TMP}"    \
 > +	--inputpath "${BINARIES_DIR}"  \
 > +	--outputpath "${BINARIES_DIR}" \
 > +	--config "${GENIMAGE_CFG}"
 > +
 > +exit $?

exit $? isn't needed, so I've dropped that.

> +++ b/configs/zynq_zybo_defconfig
 > @@ -0,0 +1,26 @@
 > +BR2_arm=y
 > +BR2_cortex_a9=y
 > +BR2_ARM_ENABLE_NEON=y

Zynq 7000 also has a FPU, so I've enabled BR2_ARM_ENABLE_VFP=y to use
it.

> +BR2_TARGET_GENERIC_GETTY_PORT="ttyPS0"
 > +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/digilent/zybo/post-image.sh"
 > +BR2_LINUX_KERNEL=y
 > +BR2_LINUX_KERNEL_CUSTOM_VERSION=y
 > +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6.4"

You didn't select 4.6.x kernel headers, so I've added that.

> +BR2_LINUX_KERNEL_DEFCONFIG="multi_v7"
 > +BR2_LINUX_KERNEL_UIMAGE=y
 > +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000"
 > +BR2_LINUX_KERNEL_DTS_SUPPORT=y
 > +BR2_LINUX_KERNEL_INTREE_DTS_NAME="zynq-zybo"
 > +BR2_TARGET_ROOTFS_EXT2=y
 > +BR2_TARGET_ROOTFS_EXT2_4=y
 > +BR2_TARGET_UBOOT=y
 > +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
 > +BR2_TARGET_UBOOT_CUSTOM_VERSION=y
 > +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.05"
 > +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="zynq_zybo"
 > +BR2_TARGET_UBOOT_NEEDS_DTC=y
 > +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y
 > +BR2_TARGET_UBOOT_SPL=y
 > +BR2_TARGET_UBOOT_ZYNQ_IMAGE=y
 > +BR2_PACKAGE_HOST_GENIMAGE=y

The genimage configuration uses dosfstools and mtools, so I've added
those host packages.

> +BR2_PACKAGE_HOST_UBOOT_TOOLS=y

u-boot tools isn't needed by the post-image script, so I've removed
that.

Committed with these fixes, thanks.
diff mbox

Patch

diff --git a/board/digilent/zybo/genimage-zybo.cfg b/board/digilent/zybo/genimage-zybo.cfg
new file mode 100644
index 0000000..f39186d
--- /dev/null
+++ b/board/digilent/zybo/genimage-zybo.cfg
@@ -0,0 +1,29 @@ 
+image boot.vfat {
+  vfat {
+    files = {
+      "BOOT.BIN",
+      "uEnv.txt",
+      "system.bit",
+      "zynq-zybo.dtb",
+      "u-boot-dtb.img",
+      "uImage"
+    }
+  }
+  size = 32M
+}
+
+image sdcard.img {
+  hdimage {
+  }
+
+  partition boot {
+    partition-type = 0xC
+    bootable = "true"
+    image = "boot.vfat"
+  }
+
+  partition rootfs {
+    partition-type = 0x83
+    image = "rootfs.ext4"
+  }
+}
diff --git a/board/digilent/zybo/post-image.sh b/board/digilent/zybo/post-image.sh
new file mode 100755
index 0000000..782ca2a
--- /dev/null
+++ b/board/digilent/zybo/post-image.sh
@@ -0,0 +1,21 @@ 
+#!/bin/sh
+
+BOARD_DIR="$(dirname $0)"
+BOARD_NAME="$(basename ${BOARD_DIR})"
+GENIMAGE_CFG="${BOARD_DIR}/genimage-${BOARD_NAME}.cfg"
+GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+OUTPUT_DIR="${O}/images"
+
+rm -rf "${GENIMAGE_TMP}"
+
+cp board/digilent/zybo/uEnv.txt ${BINARIES_DIR}
+cp board/digilent/zybo/system.bit ${BINARIES_DIR}
+
+genimage                           \
+	--rootpath "${TARGET_DIR}"     \
+	--tmppath "${GENIMAGE_TMP}"    \
+	--inputpath "${BINARIES_DIR}"  \
+	--outputpath "${BINARIES_DIR}" \
+	--config "${GENIMAGE_CFG}"
+
+exit $?
diff --git a/board/digilent/zybo/readme.txt b/board/digilent/zybo/readme.txt
new file mode 100644
index 0000000..2a60a7cc
--- /dev/null
+++ b/board/digilent/zybo/readme.txt
@@ -0,0 +1,76 @@ 
+Digilent Zybo
+=============
+
+This is the Buildroot board support for the Digilent Zybo. The Zybo is
+a development board based on the Xilinx Zynq-7000 based All-Programmable
+System-On-Chip.
+
+Zybo information including schematics, reference designs, and manuals are
+available from http://store.digilentinc.com/zybo-zynq-7000-arm-fpga-soc-trainer-board/ .
+
+If you want a custom FPGA bitstream to be loaded by U-Boot, copy it as
+system.bit in board/digilent/zybo/.
+
+Steps to create a working system for Zybo:
+
+1) make zynq_zybo_defconfig
+2) make
+3) write your SD Card with the sdcard.img file using dd by doing
+  $ sudo dd if=output/images/sdcard.img of=/dev/sdX
+4) insert the SD Card and power up your Zybo
+5) Expect serial console on the second USB serial port exposed by the board
+
+The expected output:
+
+ U-Boot SPL 2016.05 (May 20 2016 - 16:16:24)
+ mmc boot
+ Trying to boot from MMC1
+ reading system.dtb
+ spl_load_image_fat_os: error reading image system.dtb, err - -1
+ reading u-boot-dtb.img
+ reading u-boot-dtb.img
+
+
+ U-Boot 2016.05 (May 20 2016 - 16:16:24 +0200)
+
+ Model: Zynq ZYBO Development Board
+ Board: Xilinx Zynq
+ I2C:   ready
+ DRAM:  ECC disabled 512 MiB
+ MMC:   sdhci@e0100000: 0
+ SF: Detected S25FL128S_64K with page size 256 Bytes, erase size 64 KiB, total 16 MiB
+ In:    serial@e0001000
+ Out:   serial@e0001000
+ Err:   serial@e0001000
+ Model: Zynq ZYBO Development Board
+ Board: Xilinx Zynq
+ Net:   ZYNQ GEM: e000b000, phyaddr 0, interface rgmii-id
+ I2C EEPROM MAC address read failed
+
+ Warning: ethernet@e000b000 (eth0) using random MAC address - 56:64:dd:a7:6d:94
+ eth0: ethernet@e000b000
+ ...
+
+Resulting system
+----------------
+Once the build process is finished you will have an image called "sdcard.img"
+in the output/images/ directory.
+
+The first partition is a FAT32 partition created at the beginning of the SD Card
+that contains the following files :
+	/BOOT.BIN
+	/zynq-zybo.dtb
+    /uEnv.txt
+    /system.bit
+	/uImage
+	/u-boot-dtb.img
+
+The second partition is an ext4 partition that contains the root filesystem.
+
+You can alter the booting procedure by modifying the uEnv.txt file
+in first partition of the SD card. It is a plain text file in format
+<key>=<value> one per line:
+
+kernel_image=myimage
+modeboot=myboot
+myboot=...
diff --git a/board/digilent/zybo/system.bit b/board/digilent/zybo/system.bit
new file mode 100644
index 0000000..e69de29
diff --git a/board/digilent/zybo/uEnv.txt b/board/digilent/zybo/uEnv.txt
new file mode 100644
index 0000000..1042538
--- /dev/null
+++ b/board/digilent/zybo/uEnv.txt
@@ -0,0 +1,5 @@ 
+bootargs=root=/dev/mmcblk0p2 rootwait rw rootfstype=ext4
+fpga_image=system.bit
+fpgaboot=if fatload mmc 0 0x1000000 ${fpga_image}; then echo Booting FPGA from ${fpga_image}; fpga info 0 && fpga loadb 0 0x1000000 $filesize; else echo FPGA image ${fpga_image} was not found, skipping...; fi;
+kernel_image=uImage
+sdboot=echo Booting from SD...; run fpgaboot; fatload mmc 0 0x1000000 ${kernel_image} && fatload mmc 0 0x2000000 zynq-zybo.dtb && bootm 0x1000000 - 0x2000000
diff --git a/configs/zynq_zybo_defconfig b/configs/zynq_zybo_defconfig
new file mode 100644
index 0000000..8ab152f
--- /dev/null
+++ b/configs/zynq_zybo_defconfig
@@ -0,0 +1,26 @@ 
+BR2_arm=y
+BR2_cortex_a9=y
+BR2_ARM_ENABLE_NEON=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttyPS0"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/digilent/zybo/post-image.sh"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6.4"
+BR2_LINUX_KERNEL_DEFCONFIG="multi_v7"
+BR2_LINUX_KERNEL_UIMAGE=y
+BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="zynq-zybo"
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.05"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="zynq_zybo"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_ZYNQ_IMAGE=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y