All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] zedboard: Upgrade to Linux xilinx-v2015.1 (3.18)
@ 2015-06-18 16:27 Jan Viktorin
  2015-06-18 16:27 ` [Buildroot] [PATCH 2/2] zedboard: Upgrade to U-Boot 2015.07 Jan Viktorin
  2015-06-18 21:15 ` [Buildroot] [PATCH 1/2] zedboard: Upgrade to Linux xilinx-v2015.1 (3.18) Thomas Petazzoni
  0 siblings, 2 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-06-18 16:27 UTC (permalink / raw)
  To: buildroot

From: Jan Viktorin <viktorin@rehivetech.com>

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 configs/zedboard_defconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/zedboard_defconfig b/configs/zedboard_defconfig
index e0e7760..76688e9 100644
--- a/configs/zedboard_defconfig
+++ b/configs/zedboard_defconfig
@@ -8,7 +8,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyPS0"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_GIT=y
 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/Xilinx/linux-xlnx.git"
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="xilinx-v2014.1"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="xilinx-v2015.1"
 BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynq"
 BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
-- 
2.4.3

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

* [Buildroot] [PATCH 2/2] zedboard: Upgrade to U-Boot 2015.07
  2015-06-18 16:27 [Buildroot] [PATCH 1/2] zedboard: Upgrade to Linux xilinx-v2015.1 (3.18) Jan Viktorin
@ 2015-06-18 16:27 ` Jan Viktorin
  2015-06-18 21:18   ` Thomas Petazzoni
  2015-06-18 21:15 ` [Buildroot] [PATCH 1/2] zedboard: Upgrade to Linux xilinx-v2015.1 (3.18) Thomas Petazzoni
  1 sibling, 1 reply; 42+ messages in thread
From: Jan Viktorin @ 2015-06-18 16:27 UTC (permalink / raw)
  To: buildroot

From: Jan Viktorin <viktorin@rehivetech.com>

Until recently, generation of a bootloader for the Avnet
Zedboard (and in general all Xilinx Zynq based boards)
has required to use the development tools by Xilinx
(Vivado, XSDK) and to walk through a quite painful
procedure to generate the First Stage Boot Loader
(FSBL) and the bootable BOOT.BIN image.

This commit makes Buildroot independent on the Xilinx
flow by utilizing U-Boot SPL and booting the Zynq's
PL by U-Boot.

The FSBL generation is not a problem anymore with U-Boot
2015.07 where a generic ps7_init.c file is included and
used to build the U-Boot SPL for various boards including
Zedboard. The ps7_init.c file has been released under
GNU/GPL license for this purpose. For details, see

 http://lists.denx.de/pipermail/u-boot/2015-April/210664.html

To create the BOOT.BIN automatically, there is a script
zynq-boot-bin.py in the Xilinx github repository. This
script is not included in the upstream of U-Boot so
I attach it as a series of patchs (0001-0003) generated
against U-Boot 2015.07.

There is a little catch, the U-Boot 2015.07 is not released
yet, so this commit is based on 2015.07-rc2. However, as
soon as it is out, the download site of U-Boot can be
redirected to the release archive instead of fetching it
by git.

The last patch (0004) creates a Zedboard+Buildroot specific
U-Boot environment to boot smoothly from SD card. It tries
to load a file system.bit into the Zynq's PL (only if it
exists). It is also possible to alter the booting by an
uEnv.txt file located on your SD card. The uEnv.txt is
a plain text file with <key>=<value> pairs one per line.

Steps to create a working Buildroot for Zedboard:

a) use U-Boot 2015.07 (done by this commit)
b) patch it to use zynq-boot-bin.py (done by this commit)
--------------------------
1) make zedboard_defconfig
2) make UBOOT_BIN=u-boot-dtb.img
3) copy files boot.bin, u-boot-dtb.img, rootfs.cpio.uboot,
	uImage, zynq-zed.dtb into your SD card
4) boot your Zedboard

Note that I redefine variable UBOOT_BIN to u-boot-dtb.img
(instead of u-boot.img) to be installed in to the images/
directory. This binary works for the generated SPL:

 U-Boot SPL 2015.07-rc2 (Jun 18 2015 - 16:42:58)
 mmc boot
 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 2015.07-rc2 (Jun 18 2015 - 16:42:58 +0200)

 Model: Zynq ZED Board
 I2C:   ready
 DRAM:  ECC disabled 512 MiB
 MMC:   zynq_sdhci: 0
 Using default environment
 ...

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 board/avnet/zedboard/readme.txt                    |  62 ++---
 ...0001-zynq-Generate-boot.bin-automatically.patch | 258 +++++++++++++++++++++
 ...-use-argparse-module-in-boot.bin-generati.patch |  98 ++++++++
 ...q-Fix-python-version-for-zynq-boot-bin.py.patch |  27 +++
 ...eate-zedboard-specific-U-Boot-environment.patch |  46 ++++
 configs/zedboard_defconfig                         |   5 +-
 6 files changed, 450 insertions(+), 46 deletions(-)
 create mode 100644 board/avnet/zedboard/uboot-2015.07/uboot-0001-zynq-Generate-boot.bin-automatically.patch
 create mode 100644 board/avnet/zedboard/uboot-2015.07/uboot-0002-zynq-Do-not-use-argparse-module-in-boot.bin-generati.patch
 create mode 100644 board/avnet/zedboard/uboot-2015.07/uboot-0003-zynq-Fix-python-version-for-zynq-boot-bin.py.patch
 create mode 100644 board/avnet/zedboard/uboot-2015.07/uboot-0004-zynq-Create-zedboard-specific-U-Boot-environment.patch

diff --git a/board/avnet/zedboard/readme.txt b/board/avnet/zedboard/readme.txt
index a3f1f3e..0a2883a 100644
--- a/board/avnet/zedboard/readme.txt
+++ b/board/avnet/zedboard/readme.txt
@@ -5,68 +5,42 @@ System-On-Chip.
 Zedboard information including schematics, reference designs, and manuals are
 available from http://www.zedboard.org .
 
-The U-Boot firmware for the Xilinx Zynq All Programmable SoC depends
-on some proprietary code. This dependency consists of a pair of
-files are available from the Xilinx SDK installation.
-
-You will need these files from Xilinx SDK installation to generate
-the U-Boot firmware:
-	ps7_init.c
-	ps7_init.h
-
 Buildroot will create the following files and place them in the
+$ make UBOOT_BIN=u-boot-dtb.img
 <output>/images directory.
 	zynq-zed.dtb
 	rootfs.cpio.uboot
 	uImage
-	u-boot.img
+	u-boot-dtb.img
 	boot.bin
 
-
-uboot.bin  -- U-Boot SPL w/ Xilinx boot.bin wrapper
----------------------------------------------------
-
-Due to licensing issues, the files ps7_init.c/h are not able to be
-distributed with the U-Boot source code.  These files are required to make a
-boot.bin file.
-
-If you already have the Xilinx tools installed, the following sequence will
-unpack, patch and build the rfs, kernel, uboot, and uboot-spl.
-
-make zedboard_defconfig
-make uboot-patch
-cp ${XILINX}/ISE_DS/EDK/sw/lib/hwplatform_templates/zed_hw_platform/ps7_init.{c,h} \
-output/build/uboot-xilinx-v2014.1/board/xilinx/zynq/
-
-After copying these files into the U-Boot source tree, you can
-continue the build with:
-
-make
-
-*Notice*
-While the build will successfully complete without the ps7_init.*
-files,  the uboot.bin file generated by this configuration will not
-function properly on the Zedboard.  Therefore, it is imperative that
-the ps7_init.* files be copied into the U-Boot source tree any time
-the clean, or uboot-dirclean targets are made.
-
+The SPL searchs for u-boot-dtb.img so it is desirable to redefine
+the UBOOT_BIN variable as it was done in the example above.
 
 Resulting system
 ----------------
 A FAT32 partition should be created at the beginning of the SD Card
 and the following files should be installed:
 	/boot.bin
-	/devicetree.dtb
+	/zynq-zed.dtb
 	/uImage
-	/uramdisk.image.gz
-	/u-boot.img
+	/rootfs-cpio.uboot
+	/u-boot-dtb.img
 
 
 All needed files can be taken from output/images/
 
-boot.bin, uImage and u-boot.img are direct copies of the same files
+boot.bin, uImage and u-boot-dtb.img are direct copies of the same files
 available on output/images/
 
-devicetree.dtb is just zynq-zed.dtb renamed.
+The attachedpatchs of U-Boot enables to create boot.bin file
+automatically without the need of Xilinx tools. The U-Boot's
+environment is redefined there to work with Buildroot out-of-the-box.
+
+You can alter the booting procedure by creating a file uEnv.txt
+in the root of the SD card. It is a plain text file in format
+<key>=<value> one per line:
 
-uramdisk.image.gz is rootfs.cpio.uboot renamed
+kernel_image=myimage
+modeboot=myboot
+myboot=...
diff --git a/board/avnet/zedboard/uboot-2015.07/uboot-0001-zynq-Generate-boot.bin-automatically.patch b/board/avnet/zedboard/uboot-2015.07/uboot-0001-zynq-Generate-boot.bin-automatically.patch
new file mode 100644
index 0000000..1a030af
--- /dev/null
+++ b/board/avnet/zedboard/uboot-2015.07/uboot-0001-zynq-Generate-boot.bin-automatically.patch
@@ -0,0 +1,258 @@
+From c6683e9e1dce2da8f6cee62bd5b904b103d032c6 Mon Sep 17 00:00:00 2001
+From: Michal Simek <michal.simek@xilinx.com>
+Date: Mon, 20 Jan 2014 16:06:35 +0100
+Subject: [PATCH 1/4] zynq: Generate boot.bin automatically
+
+Do not spend any time on boot.bin generation.
+
+Signed-off-by: Michal Simek <michal.simek@xilinx.com>
+---
+ Makefile               |   7 ++
+ tools/zynq-boot-bin.py | 210 +++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 217 insertions(+)
+ create mode 100755 tools/zynq-boot-bin.py
+
+diff --git a/Makefile b/Makefile
+index 0a674bf..ae730b9 100644
+--- a/Makefile
++++ b/Makefile
+@@ -772,6 +772,10 @@ ifneq ($(CONFIG_BUILD_TARGET),)
+ ALL-y += $(CONFIG_BUILD_TARGET:"%"=%)
+ endif
+ 
++ifneq ($(CONFIG_ARCH_ZYNQ),)
++ALL-y += boot.bin
++endif
++
+ LDFLAGS_u-boot += $(LDFLAGS_FINAL)
+ ifneq ($(CONFIG_SYS_TEXT_BASE),)
+ LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE)
+@@ -1098,6 +1102,9 @@ OBJCOPYFLAGS_u-boot-with-spl-pbl.bin = -I binary -O binary --pad-to=$(CONFIG_SPL
+ u-boot-with-spl-pbl.bin: spl/u-boot-spl.pbl $(UBOOT_BINLOAD) FORCE
+ 	$(call if_changed,pad_cat)
+ 
++boot.bin: spl/u-boot-spl.bin
++	env python2 tools/zynq-boot-bin.py -o boot.bin -u spl/u-boot-spl.bin
++
+ # PPC4xx needs the SPL at the end of the image, since the reset vector
+ # is located at 0xfffffffc. So we can't use the "u-boot-img.bin" target
+ # and need to introduce a new build target with the full blown U-Boot
+diff --git a/tools/zynq-boot-bin.py b/tools/zynq-boot-bin.py
+new file mode 100755
+index 0000000..a5c11ca
+--- /dev/null
++++ b/tools/zynq-boot-bin.py
+@@ -0,0 +1,210 @@
++#!/usr/bin/env python
++# -*- coding: utf-8 -*-
++# Copyright (C) 2014, Xilinx.inc.
++#
++# Hack origin version and just take the part which generate boot.bin
++# for U-BOOT SPL.
++#
++# Copyright (C) 2013, Elphel.inc.
++# pre-u-boot configuration of the Xilinx Zynq(R) SoC
++# This program is free software: you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation, either version 3 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program.  If not, see <http://www.gnu.org/licenses/>.
++
++__author__ = "Andrey Filippov"
++__copyright__ = "Copyright 2013, Elphel, Inc."
++__license__ = "GPL"
++__version__ = "3.0+"
++__maintainer__ = "Andrey Filippov"
++__email__ = "andrey at elphel.com"
++__status__ = "Development"
++import os
++import struct
++import argparse # http://docs.python.org/2/howto/argparse.html
++
++
++parser = argparse.ArgumentParser()
++parser.add_argument('-o', '--outfile',   help='Path to save the generated boot file')
++parser.add_argument('-u', '--uboot',      help='path to the u-boot.bin to get it\'s length (second pass, when u-boot.bin is already generated)')
++
++args = parser.parse_args()
++#print args
++
++ACCESSIBLE_REGISTERS=((0xe0001000,0xe0001fff), # UART1 controller registers
++                      (0xe000d000,0xe000efff), # QUAD SPI controller registers
++                      (0xe0100004,0xe0100057), # SDIO 0 controller registers
++                      (0xe0100059,0xe0100fff), # SDIO 0 controller registers
++                      (0xe000e000,0xe000efff), # SMC controller
++                      (0xf8006000,0xf8006fff), # DDR controller
++                      # SLCR_LOCK disables all (0xf8000000,0xf8000b74), but it is locked at reset seems to be unlocked, http://www.xilinx.com/support/answers/47570.html
++                      #prohibited: SLCR_SCL, SLCR_LOCK, SLCR_UNLOCK, SLCR_STA
++                      (0xf8000100,0xf80001b0), # SLCR registers
++                      #DOes not seem to be any gap between 0xf80001b0 and 0xf80001b4
++                      (0xf80001b4,0xf80001ff), # SLCR registers
++                      #prohibited SLCR_PSS_RST_CTRL 0xf8000200
++                      (0xf8000204,0xf8000234), # SLCR registers - is  SLCR_SMC_RST_CTRL 0xf8000234 also prohibited?
++                      #prohibited? SLCR_OCM_RST_CTRL 0xf8000238 SLCR_FPGA_RST_CTRL 0xf8000240
++                      (0xf800024c,0xf800024c), # SLCR registers SLCR_AWDT_CTRL - watchdog timer reset control
++                      #prohibited SLSR_REBOOT_STATUS 0xf8000258, SLCR_BOOT_MODE 0xf800025c, SLCR_APU_CTRL 0xf8000300,
++                      (0xf8000304,0xf8000834), # SLCR registers SLCR_AWDT_CLK_SEL,  DDR, MIO
++                      #prohibited SLCR_LVL_SHFTR_ON 0xf8000900, SLCR_OCM_CFG 0xf8000910,
++                      (0xf8000a00,0xf8000a8c), # SLCR registers All shown "reserved" ???
++                      (0xf8000ab0,0xf8000b74)) # SLCR registers iostd, voltages,  - more DDR stuff
++
++def verify_register_accessible(address):
++    for interval in ACCESSIBLE_REGISTERS:
++        if (address >= interval[0]) and (address <= interval[1]):
++            print 'Register accessible:' , hex(interval[0]),'<=', hex(address), '<=', hex(interval[1])
++            return True
++    else:
++        return False
++
++def image_generator (image,
++                       reg_sets, # registers,
++                       options,
++                       user_def,
++                       ocm_offset,
++                       ocm_len,
++                       start_exec):
++    reserved0044=0;
++
++    rfi_word=0xeafffffe #from actual image
++    waddr=0
++    for _ in range (0x20/4):
++        image[waddr]=rfi_word # fill reserved for interrupts fields
++        waddr+=1
++    #width detection
++    image[waddr]=0xaa995566 # offset 0x20
++    waddr+=1
++
++    #image identification
++    image[waddr]=0x584c4e58 # offset 0x24, XLNX
++    waddr+=1
++
++    #encryption status
++    image[waddr]=0x0 # offset 0x28, no encryption
++    waddr+=1
++
++    #User defined word
++    image[waddr]=user_def # offset 0x2c
++    waddr+=1
++
++    #ocm_offset
++    if ocm_offset<0x8c0:
++        print 'Start offset should be >= 0x8c0, specified', hex(ocm_offset)
++        exit (ERROR_DEFS['HEAD'])
++    elif (ocm_offset & 0x3f) != 0:
++        print 'Start offset should be 64-bytes aligned, specified', hex(ocm_offset)
++        exit (ERROR_DEFS['HEAD'])
++    image[waddr]=ocm_offset # offset 0x30
++    waddr+=1
++
++    #ocm_len
++    if ocm_len>0x30000:
++        print 'Loaded to the OCM image should fit into 3 mapped pages of OCM - 192K (0x30000), specified ',hex(ocm_len)
++        exit (ERROR_DEFS['HEAD'])
++    image[waddr]=ocm_len # offset 0x34
++    waddr+=1
++
++    #reserved 0
++    image[waddr]=0 # offset 0x38
++    waddr+=1
++
++    #start_exec
++    if (start_exec>0x30000) or (start_exec<0):
++        print 'Start address is relative to  OCM and should fit there - in 192K (0x30000), specified ',hex(start_exec)
++        exit (ERROR_DEFS['HEAD'])
++    image[waddr]=start_exec # offset 0x3c
++    waddr+=1
++
++    #img_len == ocm_len for unsecure images
++    img_len = ocm_len
++    image[waddr]=img_len # offset 0x40
++    waddr+=1
++
++    #reserved 0
++    image[waddr]=reserved0044 #0  # offset 0x44
++    waddr+=1
++
++    #calculate image checksum
++    def add (x,y): return x+y
++    checksum=(reduce(add,image[0x20/4:0x48/4]) ^ 0xffffffff) & 0xffffffff
++    image[waddr]=checksum # offset 0x48
++    waddr+=1
++    print 'After checksum waddr=',hex(waddr),' byte addr=',hex(4*waddr)
++
++
++    #initialize registers
++    print 'Number of registers to initialize',len(reg_sets)
++    if len (reg_sets)>256:
++        print 'Too many registers to initialize, only 256 allowed,',len(reg_sets),'> 256'
++    waddr=0xa0/4
++    # new_sets.append((addr,data,mask,self.module_name,register_name,self.defs[register_name]))
++
++    for register in reg_sets:
++        op=register[0]
++        addr=register[1]
++        data=register[2]
++        if (op != 's'):
++            raise Exception ('Can not test registers (0x%08x) in RBL, it should be done in user code'%addr)
++        if not verify_register_accessible (addr):
++            print 'Tried to set non-accessible register', hex(addr),' with data ', hex(data)
++            exit (ERROR_DEFS['NONACCESSIBLE_REGISTER'])
++        image[waddr]=addr
++        waddr+=1
++        image[waddr]=data
++        waddr+=1
++    #Fill in FFs for unused registers
++    while waddr < (0x8c0/4):
++        image[waddr]=0xffffffff
++        waddr+=1
++        image[waddr]=0
++        waddr+=1
++
++if (args.uboot):
++    try:
++        uboot_image_len=os.path.getsize(args.uboot)
++        print 'Using %s to get image length - it is %i (0x%x) bytes'%(os.path.abspath(args.uboot),uboot_image_len,uboot_image_len)
++    except:
++        print 'Specified u-boot.bin file: %s (%s) not found'%(args.uboot,os.path.abspath(args.uboot))
++else:
++    uboot_image_len=int(raw_options['CONFIG_EZYNQ_BOOT_OCM_IMAGE_LENGTH'],0)
++    print 'No u-boot.bin path specified, using provided CONFIG_EZYNQ_BOOT_OCM_IMAGE_LENGTH as image size of %i (0x%x) bytes for the RBL header'%(uboot_image_len,uboot_image_len)
++
++image =[ 0 for k in range (0x8c0/4)]
++reg_sets=[]
++num_rbl_regs=0
++
++raw_configs=""
++raw_options={}
++
++
++image_generator (image,
++                 reg_sets[:num_rbl_regs], #
++                 #registers,
++                 raw_options,
++                 0x1010000, # user_def
++                 0x8c0, # ocm_offset,
++                 uboot_image_len, #ocm_len,
++                 0) #start_exec)
++
++if args.outfile:
++    print 'Generating binary output ',os.path.abspath(args.outfile)
++    bf=open(args.outfile,'wb')
++    data=struct.pack('I' * len(image), *image)
++    bf.write(data)
++
++    spl=open(args.uboot,'rb')
++    bf.write(spl.read())
++
++    bf.close()
++    spl.close()
+-- 
+2.4.3
+
diff --git a/board/avnet/zedboard/uboot-2015.07/uboot-0002-zynq-Do-not-use-argparse-module-in-boot.bin-generati.patch b/board/avnet/zedboard/uboot-2015.07/uboot-0002-zynq-Do-not-use-argparse-module-in-boot.bin-generati.patch
new file mode 100644
index 0000000..28dfdca
--- /dev/null
+++ b/board/avnet/zedboard/uboot-2015.07/uboot-0002-zynq-Do-not-use-argparse-module-in-boot.bin-generati.patch
@@ -0,0 +1,98 @@
+From 2ab3f580721e158d04c06e02632f89e4464e6066 Mon Sep 17 00:00:00 2001
+From: Michal Simek <michal.simek@xilinx.com>
+Date: Thu, 30 Jan 2014 11:06:37 +0100
+Subject: [PATCH 2/3] zynq: Do not use argparse module in boot.bin generation
+
+Not all PCs have argparse installed. Use getopt way.
+
+Signed-off-by: Michal Simek <michal.simek@xilinx.com>
+---
+ tools/zynq-boot-bin.py | 53 ++++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 36 insertions(+), 17 deletions(-)
+
+diff --git a/tools/zynq-boot-bin.py b/tools/zynq-boot-bin.py
+index a5c11ca..e35379b 100755
+--- a/tools/zynq-boot-bin.py
++++ b/tools/zynq-boot-bin.py
+@@ -29,15 +29,33 @@ __email__ = "andrey at elphel.com"
+ __status__ = "Development"
+ import os
+ import struct
+-import argparse # http://docs.python.org/2/howto/argparse.html
+-
+-
+-parser = argparse.ArgumentParser()
+-parser.add_argument('-o', '--outfile',   help='Path to save the generated boot file')
+-parser.add_argument('-u', '--uboot',      help='path to the u-boot.bin to get it\'s length (second pass, when u-boot.bin is already generated)')
+-
+-args = parser.parse_args()
+-#print args
++import sys, getopt
++
++inputfile = ''
++outputfile = ''
++argv = sys.argv[1:]
++try:
++  opts, args = getopt.getopt(argv,"hu:o:",["uboot=","outfile="])
++except getopt.GetoptError:
++  print 'test.py -u <inputfile> -o <outputfile>'
++  sys.exit(2)
++
++if len(argv) == 0:
++  print 'test.py -u <inputfile> -o <outputfile>'
++  sys.exit()
++
++for opt, arg in opts:
++  if opt == '-h':
++      print 'test.py -u <inputfile> -o <outputfile>'
++      sys.exit()
++  elif opt in ("-u", "--uboot"):
++      inputfile = arg
++  elif opt in ("-o", "--outfile"):
++      outputfile = arg
++print 'Input file is:', inputfile
++print 'Output file is:', outputfile
++
++exit
+ 
+ ACCESSIBLE_REGISTERS=((0xe0001000,0xe0001fff), # UART1 controller registers
+                       (0xe000d000,0xe000efff), # QUAD SPI controller registers
+@@ -170,12 +188,13 @@ def image_generator (image,
+         image[waddr]=0
+         waddr+=1
+ 
+-if (args.uboot):
++if (inputfile):
+     try:
+-        uboot_image_len=os.path.getsize(args.uboot)
+-        print 'Using %s to get image length - it is %i (0x%x) bytes'%(os.path.abspath(args.uboot),uboot_image_len,uboot_image_len)
++        uboot_image_len=os.path.getsize(inputfile)
++        print 'Using %s to get image length - it is %i (0x%x) bytes'%(os.path.abspath(inputfile),uboot_image_len,uboot_image_len)
+     except:
+-        print 'Specified u-boot.bin file: %s (%s) not found'%(args.uboot,os.path.abspath(args.uboot))
++        print 'Specified u-boot.bin file: %s (%s) not found'%(inputfile,os.path.abspath(inputfile))
++        sys.exit()
+ else:
+     uboot_image_len=int(raw_options['CONFIG_EZYNQ_BOOT_OCM_IMAGE_LENGTH'],0)
+     print 'No u-boot.bin path specified, using provided CONFIG_EZYNQ_BOOT_OCM_IMAGE_LENGTH as image size of %i (0x%x) bytes for the RBL header'%(uboot_image_len,uboot_image_len)
+@@ -197,13 +216,13 @@ image_generator (image,
+                  uboot_image_len, #ocm_len,
+                  0) #start_exec)
+ 
+-if args.outfile:
+-    print 'Generating binary output ',os.path.abspath(args.outfile)
+-    bf=open(args.outfile,'wb')
++if outputfile:
++    print 'Generating binary output ',os.path.abspath(outputfile)
++    bf=open(outputfile,'wb')
+     data=struct.pack('I' * len(image), *image)
+     bf.write(data)
+ 
+-    spl=open(args.uboot,'rb')
++    spl=open(inputfile,'rb')
+     bf.write(spl.read())
+ 
+     bf.close()
+-- 
+2.4.3
+
diff --git a/board/avnet/zedboard/uboot-2015.07/uboot-0003-zynq-Fix-python-version-for-zynq-boot-bin.py.patch b/board/avnet/zedboard/uboot-2015.07/uboot-0003-zynq-Fix-python-version-for-zynq-boot-bin.py.patch
new file mode 100644
index 0000000..f814e87
--- /dev/null
+++ b/board/avnet/zedboard/uboot-2015.07/uboot-0003-zynq-Fix-python-version-for-zynq-boot-bin.py.patch
@@ -0,0 +1,27 @@
+From 4e7271a622e8b202e7d67d1cfd9edf673a8ed676 Mon Sep 17 00:00:00 2001
+From: Jan Viktorin <jan.viktorin@gmail.com>
+Date: Thu, 10 Jul 2014 14:19:43 +0200
+Subject: [PATCH 3/3] zynq: Fix python version for zynq-boot-bin.py
+
+The code does not work when Python 3 is default.
+Enforce using Python 2.
+
+Signed-off-by: Jan Viktorin <jan.viktorin@gmail.com>
+Signed-off-by: Michal Simek <michal.simek@xilinx.com>
+---
+ tools/zynq-boot-bin.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/zynq-boot-bin.py b/tools/zynq-boot-bin.py
+index e35379b..54a0fca 100755
+--- a/tools/zynq-boot-bin.py
++++ b/tools/zynq-boot-bin.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ # -*- coding: utf-8 -*-
+ # Copyright (C) 2014, Xilinx.inc.
+ #
+-- 
+2.4.3
+
diff --git a/board/avnet/zedboard/uboot-2015.07/uboot-0004-zynq-Create-zedboard-specific-U-Boot-environment.patch b/board/avnet/zedboard/uboot-2015.07/uboot-0004-zynq-Create-zedboard-specific-U-Boot-environment.patch
new file mode 100644
index 0000000..48feeda
--- /dev/null
+++ b/board/avnet/zedboard/uboot-2015.07/uboot-0004-zynq-Create-zedboard-specific-U-Boot-environment.patch
@@ -0,0 +1,46 @@
+From 2c8c419a6e43b31ad596b52eb7dc1a200c51a6df Mon Sep 17 00:00:00 2001
+From: Jan Viktorin <viktorin@rehivetech.com>
+Date: Thu, 18 Jun 2015 16:26:02 +0200
+Subject: [PATCH 4/4] zynq: Create zedboard-specific U-Boot environment
+
+---
+ include/configs/zynq_zed.h | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+
+diff --git a/include/configs/zynq_zed.h b/include/configs/zynq_zed.h
+index 946de95..2400a88 100644
+--- a/include/configs/zynq_zed.h
++++ b/include/configs/zynq_zed.h
+@@ -24,4 +24,29 @@
+ 
+ #include <configs/zynq-common.h>
+ 
++#undef CONFIG_EXTRA_ENV_SETTINGS
++#define CONFIG_EXTRA_ENV_SETTINGS \
++	"envload=mmc info && if fatload mmc 0 0x1000 uEnv.txt;"\
++	" then echo Importing uEnv.txt; env import -t 0x1000"  \
++	" $filesize; fi;\0"                                    \
++	"bootcmd=run $modeboot\0"                              \
++	"modeboot=sdboot\0"                                    \
++	"baudrate=115200\0"                                    \
++	"bootenv=uEnv.txt\0"                                   \
++	"devicetree_image=zynq-zed.dtb\0"                      \
++	"kernel_image=uImage\0"                                \
++	"ramdisk_image=rootfs.cpio.uboot\0"                    \
++	"fpga_image=system.bit\0"                              \
++	"sdboot=echo Booting from SD...;"                      \
++	" run envload; run fpgaboot;"                          \
++	" fatload mmc 0 0x1000000 ${kernel_image}"             \
++	" && fatload mmc 0 0x2000000 ${ramdisk_image}"         \
++        " && fatload mmc 0 0x3000000 ${devicetree_image}"      \
++	" && bootm 0x1000000 0x2000000 0x3000000\0"            \
++	"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;\0"
++
+ #endif /* __CONFIG_ZYNQ_ZED_H */
+-- 
+2.4.3
+
diff --git a/configs/zedboard_defconfig b/configs/zedboard_defconfig
index 76688e9..59aae16 100644
--- a/configs/zedboard_defconfig
+++ b/configs/zedboard_defconfig
@@ -19,8 +19,9 @@ BR2_TARGET_ROOTFS_CPIO_UIMAGE=y
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BOARDNAME="zynq_zed"
 BR2_TARGET_UBOOT_CUSTOM_GIT=y
-BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/Xilinx/u-boot-xlnx.git"
-BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="xilinx-v2014.1"
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.denx.de/u-boot.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="v2015.07-rc2"
+BR2_TARGET_UBOOT_PATCH="$(TOPDIR)/boards/avnet/zedboard/uboot-2015.07"
 BR2_TARGET_UBOOT_FORMAT_IMG=y
 BR2_TARGET_UBOOT_SPL=y
 BR2_TARGET_UBOOT_SPL_NAME="boot.bin"
-- 
2.4.3

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

* [Buildroot] [PATCH 1/2] zedboard: Upgrade to Linux xilinx-v2015.1 (3.18)
  2015-06-18 16:27 [Buildroot] [PATCH 1/2] zedboard: Upgrade to Linux xilinx-v2015.1 (3.18) Jan Viktorin
  2015-06-18 16:27 ` [Buildroot] [PATCH 2/2] zedboard: Upgrade to U-Boot 2015.07 Jan Viktorin
@ 2015-06-18 21:15 ` Thomas Petazzoni
  1 sibling, 0 replies; 42+ messages in thread
From: Thomas Petazzoni @ 2015-06-18 21:15 UTC (permalink / raw)
  To: buildroot

Dear Jan Viktorin,

On Thu, 18 Jun 2015 18:27:57 +0200, Jan Viktorin wrote:
> From: Jan Viktorin <viktorin@rehivetech.com>
> 
> Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
> ---
>  configs/zedboard_defconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Applied, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 2/2] zedboard: Upgrade to U-Boot 2015.07
  2015-06-18 16:27 ` [Buildroot] [PATCH 2/2] zedboard: Upgrade to U-Boot 2015.07 Jan Viktorin
@ 2015-06-18 21:18   ` Thomas Petazzoni
  2015-06-19 13:38     ` [Buildroot] [PATCH v1 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
                       ` (2 more replies)
  0 siblings, 3 replies; 42+ messages in thread
From: Thomas Petazzoni @ 2015-06-18 21:18 UTC (permalink / raw)
  To: buildroot

Dear Jan Viktorin,

On Thu, 18 Jun 2015 18:27:58 +0200, Jan Viktorin wrote:
> From: Jan Viktorin <viktorin@rehivetech.com>
> 
> Until recently, generation of a bootloader for the Avnet
> Zedboard (and in general all Xilinx Zynq based boards)
> has required to use the development tools by Xilinx
> (Vivado, XSDK) and to walk through a quite painful
> procedure to generate the First Stage Boot Loader
> (FSBL) and the bootable BOOT.BIN image.
> 
> This commit makes Buildroot independent on the Xilinx
> flow by utilizing U-Boot SPL and booting the Zynq's
> PL by U-Boot.
> 
> The FSBL generation is not a problem anymore with U-Boot
> 2015.07 where a generic ps7_init.c file is included and
> used to build the U-Boot SPL for various boards including
> Zedboard. The ps7_init.c file has been released under
> GNU/GPL license for this purpose. For details, see
> 
>  http://lists.denx.de/pipermail/u-boot/2015-April/210664.html
> 
> To create the BOOT.BIN automatically, there is a script
> zynq-boot-bin.py in the Xilinx github repository. This
> script is not included in the upstream of U-Boot so
> I attach it as a series of patchs (0001-0003) generated
> against U-Boot 2015.07.

It is a bit annoying to have this script as patches. Will it be merged
in the upstream U-Boot at some point? If yes, then having it as patches
is OK. Otherwise, I'd prefer to have a separate host-zync-boot-script
package, which simply downloads and installs this script in
$(HOST_DIR), and then only the patch changing the U-Boot Makefile to
call this script.

> There is a little catch, the U-Boot 2015.07 is not released
> yet, so this commit is based on 2015.07-rc2. However, as
> soon as it is out, the download site of U-Boot can be
> redirected to the release archive instead of fetching it
> by git.

Yes, this is OK.

> Steps to create a working Buildroot for Zedboard:
> 
> a) use U-Boot 2015.07 (done by this commit)
> b) patch it to use zynq-boot-bin.py (done by this commit)
> --------------------------
> 1) make zedboard_defconfig
> 2) make UBOOT_BIN=u-boot-dtb.img
> 3) copy files boot.bin, u-boot-dtb.img, rootfs.cpio.uboot,
> 	uImage, zynq-zed.dtb into your SD card
> 4) boot your Zedboard

This should just go to board/avnet/zedboard/readme.txt, no need to have
it in the commit log if you're updating that readme file.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH v1 0/2] Make Buildroot for Zedboard independent on Xilinx tools
  2015-06-18 21:18   ` Thomas Petazzoni
@ 2015-06-19 13:38     ` Jan Viktorin
  2015-06-19 19:59       ` Arnout Vandecappelle
  2015-06-19 13:40     ` [Buildroot] [PATCH v1 1/2] host-zynq-boot-bin: new package Jan Viktorin
  2015-06-22 11:15     ` [Buildroot] [PATCH v2 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  2 siblings, 1 reply; 42+ messages in thread
From: Jan Viktorin @ 2015-06-19 13:38 UTC (permalink / raw)
  To: buildroot

From: Jan Viktorin <viktorin@rehivetech.com>

Dear Thomas,

thank you for the review. I've made the changes accordingly.

I've created host-zynq-boot-bin package to cover the small
python script. It downloads U-Boot xilinx-v2015.1 from Xilinx
github for this purpose (quite an overkill, isn't it...).

There are now just 2 patches of U-Boot 2015.07. 0001 adds
calling of the zynq-boot-bin.py and 0002 fixes the default
U-Boot environment to boot out-of-the-box from SD card.

There is still one thing to solve (I wasn't sure how).
There is no dependency specified between U-Boot and the
host-zynq-boot-bin package. It should be probably conditional
but what kind of condition to write there? Should we use
it for every Zynq architecture? (Is it possible to detect
it by Buildroot?)

Regards
Jan Viktorin


Jan Viktorin (2):
  host-zynq-boot-bin: new package
  zedboard: Upgrade to U-Boot 2015.07

 board/avnet/zedboard/readme.txt                    | 95 ++++++++++------------
 ...oot.bin-automatically-by-zynq-boot-bin.py.patch | 38 +++++++++
 ...eate-zedboard-specific-U-Boot-environment.patch | 46 +++++++++++
 configs/zedboard_defconfig                         |  6 +-
 package/Config.in.host                             |  1 +
 package/zynq-boot-bin/Config.in.host               |  7 ++
 package/zynq-boot-bin/zynq-boot-bin.mk             | 16 ++++
 7 files changed, 156 insertions(+), 53 deletions(-)
 create mode 100644 board/avnet/zedboard/uboot-2015.07/0001-Generate-boot.bin-automatically-by-zynq-boot-bin.py.patch
 create mode 100644 board/avnet/zedboard/uboot-2015.07/0002-zynq-Create-zedboard-specific-U-Boot-environment.patch
 create mode 100644 package/zynq-boot-bin/Config.in.host
 create mode 100644 package/zynq-boot-bin/zynq-boot-bin.mk

-- 
2.4.3

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

* [Buildroot] [PATCH v1 1/2] host-zynq-boot-bin: new package
  2015-06-18 21:18   ` Thomas Petazzoni
  2015-06-19 13:38     ` [Buildroot] [PATCH v1 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
@ 2015-06-19 13:40     ` Jan Viktorin
  2015-06-19 13:40       ` [Buildroot] [PATCH v1 2/2] zedboard: Upgrade to U-Boot 2015.07 Jan Viktorin
  2015-06-22 11:15     ` [Buildroot] [PATCH v2 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  2 siblings, 1 reply; 42+ messages in thread
From: Jan Viktorin @ 2015-06-19 13:40 UTC (permalink / raw)
  To: buildroot

From: Jan Viktorin <viktorin@rehivetech.com>

The purpose of this package is to provide a small
Python script zynq-boot-bin.py to Buildroot. The
script creates a BOOT.BIN file from U-Boot's SPL
to boot Xilinx Zynq without needing the Xilinx FSBL.

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 package/Config.in.host                 |  1 +
 package/zynq-boot-bin/Config.in.host   |  7 +++++++
 package/zynq-boot-bin/zynq-boot-bin.mk | 16 ++++++++++++++++
 3 files changed, 24 insertions(+)
 create mode 100644 package/zynq-boot-bin/Config.in.host
 create mode 100644 package/zynq-boot-bin/zynq-boot-bin.mk

diff --git a/package/Config.in.host b/package/Config.in.host
index 1e047aa..030c91f 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -27,5 +27,6 @@ menu "Host utilities"
 	source "package/sunxi-tools/Config.in.host"
 	source "package/uboot-tools/Config.in.host"
 	source "package/util-linux/Config.in.host"
+	source "package/zynq-boot-bin/Config.in.host"
 
 endmenu
diff --git a/package/zynq-boot-bin/Config.in.host b/package/zynq-boot-bin/Config.in.host
new file mode 100644
index 0000000..7342981
--- /dev/null
+++ b/package/zynq-boot-bin/Config.in.host
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_HOST_ZYNQ_BOOT_BIN
+	bool "host zynq-boot-bin"
+	help
+	  This is a simple Python script that creates BOOT.BIN file
+	  to boot Xilinx Zynq based from U-Boot's SPL.
+
+	  https://github.com/Xilinx/u-boot-xlnx
diff --git a/package/zynq-boot-bin/zynq-boot-bin.mk b/package/zynq-boot-bin/zynq-boot-bin.mk
new file mode 100644
index 0000000..8123f01
--- /dev/null
+++ b/package/zynq-boot-bin/zynq-boot-bin.mk
@@ -0,0 +1,16 @@
+################################################################################
+#
+# zynq-boot-bin
+#
+################################################################################
+
+ZYNQ_BOOT_BIN_VERSION = xilinx-v2015.1
+ZYNQ_BOOT_BIN_SOURCE = $(ZYNQ_BOOT_BIN_VERSION).tar.gz
+ZYNQ_BOOT_BIN_SITE = https://github.com/Xilinx/u-boot-xlnx/archive
+
+define HOST_ZYNQ_BOOT_BIN_INSTALL_CMDS
+	cp $(@D)/tools/zynq-boot-bin.py $(HOST_DIR)/usr/bin/zynq-boot-bin.py
+	chmod u+x $(HOST_DIR)/usr/bin/zynq-boot-bin.py
+endef
+
+$(eval $(host-generic-package))
-- 
2.4.3

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

* [Buildroot] [PATCH v1 2/2] zedboard: Upgrade to U-Boot 2015.07
  2015-06-19 13:40     ` [Buildroot] [PATCH v1 1/2] host-zynq-boot-bin: new package Jan Viktorin
@ 2015-06-19 13:40       ` Jan Viktorin
  0 siblings, 0 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-06-19 13:40 UTC (permalink / raw)
  To: buildroot

From: Jan Viktorin <viktorin@rehivetech.com>

Until recently, generation of a bootloader for the Avnet
Zedboard (and in general all Xilinx Zynq based boards)
has required to use the development tools by Xilinx
(Vivado, XSDK) and to walk through a quite painful
procedure to generate the First Stage Boot Loader
(FSBL) and the bootable BOOT.BIN image.

This commit makes Buildroot independent on the Xilinx
flow by utilizing U-Boot SPL and booting the Zynq's
PL by U-Boot.

The FSBL generation is not a problem anymore with U-Boot
2015.07 where a generic ps7_init.c file is included and
used to build the U-Boot SPL for various boards including
Zedboard. The ps7_init.c file has been released under
GNU/GPL license for this purpose. For details, see

 http://lists.denx.de/pipermail/u-boot/2015-April/210664.html

To create the BOOT.BIN automatically, there is a script
zynq-boot-bin.py in the Xilinx github repository. This
script is installed by host-zynq-boot-bin package.
The attached patch (0001) fixes U-Boot environment to use it.

There is a little catch, the U-Boot 2015.07 is not released
yet, so this commit is based on 2015.07-rc2. However, as
soon as it is out, the download site of U-Boot can be
redirected to the release archive instead of fetching it
by git.

The last patch (0002) creates a Zedboard+Buildroot specific
U-Boot environment to boot smoothly from SD card. It tries
to load a file system.bit into the Zynq's PL (only if it
exists). It is also possible to alter the booting by an
uEnv.txt file located on your SD card. The uEnv.txt is
a plain text file with <key>=<value> pairs one per line.

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 board/avnet/zedboard/readme.txt                    | 95 ++++++++++------------
 ...oot.bin-automatically-by-zynq-boot-bin.py.patch | 38 +++++++++
 ...eate-zedboard-specific-U-Boot-environment.patch | 46 +++++++++++
 configs/zedboard_defconfig                         |  6 +-
 4 files changed, 132 insertions(+), 53 deletions(-)
 create mode 100644 board/avnet/zedboard/uboot-2015.07/0001-Generate-boot.bin-automatically-by-zynq-boot-bin.py.patch
 create mode 100644 board/avnet/zedboard/uboot-2015.07/0002-zynq-Create-zedboard-specific-U-Boot-environment.patch

diff --git a/board/avnet/zedboard/readme.txt b/board/avnet/zedboard/readme.txt
index a3f1f3e..b2dfe4b 100644
--- a/board/avnet/zedboard/readme.txt
+++ b/board/avnet/zedboard/readme.txt
@@ -5,68 +5,61 @@ System-On-Chip.
 Zedboard information including schematics, reference designs, and manuals are
 available from http://www.zedboard.org .
 
-The U-Boot firmware for the Xilinx Zynq All Programmable SoC depends
-on some proprietary code. This dependency consists of a pair of
-files are available from the Xilinx SDK installation.
-
-You will need these files from Xilinx SDK installation to generate
-the U-Boot firmware:
-	ps7_init.c
-	ps7_init.h
-
-Buildroot will create the following files and place them in the
-<output>/images directory.
-	zynq-zed.dtb
-	rootfs.cpio.uboot
-	uImage
-	u-boot.img
-	boot.bin
-
-
-uboot.bin  -- U-Boot SPL w/ Xilinx boot.bin wrapper
----------------------------------------------------
-
-Due to licensing issues, the files ps7_init.c/h are not able to be
-distributed with the U-Boot source code.  These files are required to make a
-boot.bin file.
-
-If you already have the Xilinx tools installed, the following sequence will
-unpack, patch and build the rfs, kernel, uboot, and uboot-spl.
-
-make zedboard_defconfig
-make uboot-patch
-cp ${XILINX}/ISE_DS/EDK/sw/lib/hwplatform_templates/zed_hw_platform/ps7_init.{c,h} \
-output/build/uboot-xilinx-v2014.1/board/xilinx/zynq/
-
-After copying these files into the U-Boot source tree, you can
-continue the build with:
-
-make
-
-*Notice*
-While the build will successfully complete without the ps7_init.*
-files,  the uboot.bin file generated by this configuration will not
-function properly on the Zedboard.  Therefore, it is imperative that
-the ps7_init.* files be copied into the U-Boot source tree any time
-the clean, or uboot-dirclean targets are made.
-
+Steps to create a working Buildroot for Zedboard:
+
+a) use U-Boot 2015.07 (is set by zedboard_defconfig)
+b) install host-zynq-boot-bin (done automatically by dependency system)
+--------------------------
+1) make zedboard_defconfig
+2) make UBOOT_BIN=u-boot-dtb.img
+3) copy files boot.bin, u-boot-dtb.img, rootfs.cpio.uboot,
+	uImage, zynq-zed.dtb into your SD card
+4) boot your Zedboard
+
+Note that I redefine variable UBOOT_BIN to u-boot-dtb.img
+(instead of u-boot.img) to be installed in to the images/
+directory. This binary works for the generated SPL:
+
+ U-Boot SPL 2015.07-rc2 (Jun 18 2015 - 16:42:58)
+ mmc boot
+ 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 2015.07-rc2 (Jun 18 2015 - 16:42:58 +0200)
+
+ Model: Zynq ZED Board
+ I2C:   ready
+ DRAM:  ECC disabled 512 MiB
+ MMC:   zynq_sdhci: 0
+ Using default environment
+ ...
 
 Resulting system
 ----------------
 A FAT32 partition should be created at the beginning of the SD Card
 and the following files should be installed:
 	/boot.bin
-	/devicetree.dtb
+	/zynq-zed.dtb
 	/uImage
-	/uramdisk.image.gz
-	/u-boot.img
+	/rootfs-cpio.uboot
+	/u-boot-dtb.img
 
 
 All needed files can be taken from output/images/
 
-boot.bin, uImage and u-boot.img are direct copies of the same files
+boot.bin, uImage and u-boot-dtb.img are direct copies of the same files
 available on output/images/
 
-devicetree.dtb is just zynq-zed.dtb renamed.
+The attachedpatchs of U-Boot enables to create boot.bin file
+automatically without the need of Xilinx tools. The U-Boot's
+environment is redefined there to work with Buildroot out-of-the-box.
+
+You can alter the booting procedure by creating a file uEnv.txt
+in the root of the SD card. It is a plain text file in format
+<key>=<value> one per line:
 
-uramdisk.image.gz is rootfs.cpio.uboot renamed
+kernel_image=myimage
+modeboot=myboot
+myboot=...
diff --git a/board/avnet/zedboard/uboot-2015.07/0001-Generate-boot.bin-automatically-by-zynq-boot-bin.py.patch b/board/avnet/zedboard/uboot-2015.07/0001-Generate-boot.bin-automatically-by-zynq-boot-bin.py.patch
new file mode 100644
index 0000000..9a62d1e
--- /dev/null
+++ b/board/avnet/zedboard/uboot-2015.07/0001-Generate-boot.bin-automatically-by-zynq-boot-bin.py.patch
@@ -0,0 +1,38 @@
+From b983c0c89267913dfae30eb80ce3a1ef375d7c60 Mon Sep 17 00:00:00 2001
+From: Jan Viktorin <viktorin@rehivetech.com>
+Date: Fri, 19 Jun 2015 14:54:48 +0200
+Subject: [PATCH 1/2] Generate boot.bin automatically by zynq-boot-bin.py
+
+The script is expected to be present in PATH.
+---
+ Makefile | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/Makefile b/Makefile
+index 0a674bf..aca286e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -772,6 +772,10 @@ ifneq ($(CONFIG_BUILD_TARGET),)
+ ALL-y += $(CONFIG_BUILD_TARGET:"%"=%)
+ endif
+ 
++ifneq ($(CONFIG_ARCH_ZYNQ),)
++ALL-y += boot.bin
++endif
++
+ LDFLAGS_u-boot += $(LDFLAGS_FINAL)
+ ifneq ($(CONFIG_SYS_TEXT_BASE),)
+ LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE)
+@@ -1098,6 +1102,9 @@ OBJCOPYFLAGS_u-boot-with-spl-pbl.bin = -I binary -O binary --pad-to=$(CONFIG_SPL
+ u-boot-with-spl-pbl.bin: spl/u-boot-spl.pbl $(UBOOT_BINLOAD) FORCE
+ 	$(call if_changed,pad_cat)
+ 
++boot.bin: spl/u-boot-spl.bin
++	zynq-boot-bin.py -o boot.bin -u spl/u-boot-spl.bin
++
+ # PPC4xx needs the SPL at the end of the image, since the reset vector
+ # is located at 0xfffffffc. So we can't use the "u-boot-img.bin" target
+ # and need to introduce a new build target with the full blown U-Boot
+-- 
+2.4.3
+
diff --git a/board/avnet/zedboard/uboot-2015.07/0002-zynq-Create-zedboard-specific-U-Boot-environment.patch b/board/avnet/zedboard/uboot-2015.07/0002-zynq-Create-zedboard-specific-U-Boot-environment.patch
new file mode 100644
index 0000000..9e21aa1
--- /dev/null
+++ b/board/avnet/zedboard/uboot-2015.07/0002-zynq-Create-zedboard-specific-U-Boot-environment.patch
@@ -0,0 +1,46 @@
+From a4c0058967a551385da5e16d2787d9f704cab225 Mon Sep 17 00:00:00 2001
+From: Jan Viktorin <viktorin@rehivetech.com>
+Date: Thu, 18 Jun 2015 16:26:02 +0200
+Subject: [PATCH 2/2] zynq: Create zedboard-specific U-Boot environment
+
+---
+ include/configs/zynq_zed.h | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+
+diff --git a/include/configs/zynq_zed.h b/include/configs/zynq_zed.h
+index 946de95..2400a88 100644
+--- a/include/configs/zynq_zed.h
++++ b/include/configs/zynq_zed.h
+@@ -24,4 +24,29 @@
+ 
+ #include <configs/zynq-common.h>
+ 
++#undef CONFIG_EXTRA_ENV_SETTINGS
++#define CONFIG_EXTRA_ENV_SETTINGS \
++	"envload=mmc info && if fatload mmc 0 0x1000 uEnv.txt;"\
++	" then echo Importing uEnv.txt; env import -t 0x1000"  \
++	" $filesize; fi;\0"                                    \
++	"bootcmd=run $modeboot\0"                              \
++	"modeboot=sdboot\0"                                    \
++	"baudrate=115200\0"                                    \
++	"bootenv=uEnv.txt\0"                                   \
++	"devicetree_image=zynq-zed.dtb\0"                      \
++	"kernel_image=uImage\0"                                \
++	"ramdisk_image=rootfs.cpio.uboot\0"                    \
++	"fpga_image=system.bit\0"                              \
++	"sdboot=echo Booting from SD...;"                      \
++	" run envload; run fpgaboot;"                          \
++	" fatload mmc 0 0x1000000 ${kernel_image}"             \
++	" && fatload mmc 0 0x2000000 ${ramdisk_image}"         \
++        " && fatload mmc 0 0x3000000 ${devicetree_image}"      \
++	" && bootm 0x1000000 0x2000000 0x3000000\0"            \
++	"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;\0"
++
+ #endif /* __CONFIG_ZYNQ_ZED_H */
+-- 
+2.4.3
+
diff --git a/configs/zedboard_defconfig b/configs/zedboard_defconfig
index 76688e9..deafb3f 100644
--- a/configs/zedboard_defconfig
+++ b/configs/zedboard_defconfig
@@ -19,8 +19,10 @@ BR2_TARGET_ROOTFS_CPIO_UIMAGE=y
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BOARDNAME="zynq_zed"
 BR2_TARGET_UBOOT_CUSTOM_GIT=y
-BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/Xilinx/u-boot-xlnx.git"
-BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="xilinx-v2014.1"
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.denx.de/u-boot.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="v2015.07-rc2"
+BR2_TARGET_UBOOT_PATCH="$(TOPDIR)/boards/avnet/zedboard/uboot-2015.07"
 BR2_TARGET_UBOOT_FORMAT_IMG=y
 BR2_TARGET_UBOOT_SPL=y
 BR2_TARGET_UBOOT_SPL_NAME="boot.bin"
+BR2_PACKAGE_HOST_ZYNQ_BOOT_BIN=y
-- 
2.4.3

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

* [Buildroot] [PATCH v1 0/2] Make Buildroot for Zedboard independent on Xilinx tools
  2015-06-19 13:38     ` [Buildroot] [PATCH v1 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
@ 2015-06-19 19:59       ` Arnout Vandecappelle
  2015-06-20  8:26         ` Jan Viktorin
  0 siblings, 1 reply; 42+ messages in thread
From: Arnout Vandecappelle @ 2015-06-19 19:59 UTC (permalink / raw)
  To: buildroot

On 06/19/15 15:38, Jan Viktorin wrote:
> From: Jan Viktorin <viktorin@rehivetech.com>
> 
> Dear Thomas,
> 
> thank you for the review. I've made the changes accordingly.
> 
> I've created host-zynq-boot-bin package to cover the small
> python script. It downloads U-Boot xilinx-v2015.1 from Xilinx
> github for this purpose (quite an overkill, isn't it...).
> 
> There are now just 2 patches of U-Boot 2015.07. 0001 adds
> calling of the zynq-boot-bin.py and 0002 fixes the default
> U-Boot environment to boot out-of-the-box from SD card.
> 
> There is still one thing to solve (I wasn't sure how).
> There is no dependency specified between U-Boot and the
> host-zynq-boot-bin package. It should be probably conditional
> but what kind of condition to write there? Should we use
> it for every Zynq architecture? (Is it possible to detect
> it by Buildroot?)

 You can revert the two packages: make host-zynq-boot-bin depend on uboot, and
move the call to the python script to the host-zynq-boot-bin package. One less
patch for uboot :-)

 Regards,
 Arnout


> 
> Regards
> Jan Viktorin
> 
> 
> Jan Viktorin (2):
>   host-zynq-boot-bin: new package
>   zedboard: Upgrade to U-Boot 2015.07
> 
>  board/avnet/zedboard/readme.txt                    | 95 ++++++++++------------
>  ...oot.bin-automatically-by-zynq-boot-bin.py.patch | 38 +++++++++
>  ...eate-zedboard-specific-U-Boot-environment.patch | 46 +++++++++++
>  configs/zedboard_defconfig                         |  6 +-
>  package/Config.in.host                             |  1 +
>  package/zynq-boot-bin/Config.in.host               |  7 ++
>  package/zynq-boot-bin/zynq-boot-bin.mk             | 16 ++++
>  7 files changed, 156 insertions(+), 53 deletions(-)
>  create mode 100644 board/avnet/zedboard/uboot-2015.07/0001-Generate-boot.bin-automatically-by-zynq-boot-bin.py.patch
>  create mode 100644 board/avnet/zedboard/uboot-2015.07/0002-zynq-Create-zedboard-specific-U-Boot-environment.patch
>  create mode 100644 package/zynq-boot-bin/Config.in.host
>  create mode 100644 package/zynq-boot-bin/zynq-boot-bin.mk
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

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

* [Buildroot] [PATCH v1 0/2] Make Buildroot for Zedboard independent on Xilinx tools
  2015-06-19 19:59       ` Arnout Vandecappelle
@ 2015-06-20  8:26         ` Jan Viktorin
  2015-06-20  9:30           ` Arnout Vandecappelle
  0 siblings, 1 reply; 42+ messages in thread
From: Jan Viktorin @ 2015-06-20  8:26 UTC (permalink / raw)
  To: buildroot

On Fri, 19 Jun 2015 21:59:26 +0200
Arnout Vandecappelle <arnout@mind.be> wrote:

> On 06/19/15 15:38, Jan Viktorin wrote:
> > From: Jan Viktorin <viktorin@rehivetech.com>
> > 
> > Dear Thomas,
> > 
> > thank you for the review. I've made the changes accordingly.
> > 
> > I've created host-zynq-boot-bin package to cover the small
> > python script. It downloads U-Boot xilinx-v2015.1 from Xilinx
> > github for this purpose (quite an overkill, isn't it...).
> > 
> > There are now just 2 patches of U-Boot 2015.07. 0001 adds
> > calling of the zynq-boot-bin.py and 0002 fixes the default
> > U-Boot environment to boot out-of-the-box from SD card.
> > 
> > There is still one thing to solve (I wasn't sure how).
> > There is no dependency specified between U-Boot and the
> > host-zynq-boot-bin package. It should be probably conditional
> > but what kind of condition to write there? Should we use
> > it for every Zynq architecture? (Is it possible to detect
> > it by Buildroot?)
> 
>  You can revert the two packages: make host-zynq-boot-bin depend on
> uboot, and move the call to the python script to the
> host-zynq-boot-bin package. One less patch for uboot :-)

So, you mean to drop the patch 0001 and call the zynq-boot-bin.py from
BUILD/INSTALL (?) stage of this package? (I expect the dependency on
uboot will guarantee, it is called after uboot.) The package will get
the path to the uboot's build dir as UBOOT_DIR, is it right?

So host-zynq-boot-bin should depend on uboot and it is up to the user
to select this package to create the boot.bin file automatically
or not. Is that OK?

Regards
Jan Viktorin

> 
>  Regards,
>  Arnout
> 
> 
> > 
> > Regards
> > Jan Viktorin
> > 
> > 
> > Jan Viktorin (2):
> >   host-zynq-boot-bin: new package
> >   zedboard: Upgrade to U-Boot 2015.07
> > 
> >  board/avnet/zedboard/readme.txt                    | 95
> > ++++++++++------------ ...oot.bin-automatically-by-zynq-boot-bin.py.patch
> > | 38 +++++++++ ...eate-zedboard-specific-U-Boot-environment.patch |
> > 46 +++++++++++ configs/zedboard_defconfig
> > |  6 +- package/Config.in.host                             |  1 +
> >  package/zynq-boot-bin/Config.in.host               |  7 ++
> >  package/zynq-boot-bin/zynq-boot-bin.mk             | 16 ++++
> >  7 files changed, 156 insertions(+), 53 deletions(-)
> >  create mode 100644
> > board/avnet/zedboard/uboot-2015.07/0001-Generate-boot.bin-automatically-by-zynq-boot-bin.py.patch
> > create mode 100644
> > board/avnet/zedboard/uboot-2015.07/0002-zynq-Create-zedboard-specific-U-Boot-environment.patch
> > create mode 100644 package/zynq-boot-bin/Config.in.host create mode
> > 100644 package/zynq-boot-bin/zynq-boot-bin.mk
> > 
> 
> 



-- 
  Jan Viktorin, PhD student   E-mail: iviktorin at fit.vutbr.cz
  DCS FIT VUT Brno, L310      Web: http://www.fit.vutbr.cz/~iviktorin
  Bozetechova 1, 612 66       Phone: +420 54114-1357
  Brno, Czech Republic

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

* [Buildroot] [PATCH v1 0/2] Make Buildroot for Zedboard independent on Xilinx tools
  2015-06-20  8:26         ` Jan Viktorin
@ 2015-06-20  9:30           ` Arnout Vandecappelle
  0 siblings, 0 replies; 42+ messages in thread
From: Arnout Vandecappelle @ 2015-06-20  9:30 UTC (permalink / raw)
  To: buildroot

On 06/20/15 10:26, Jan Viktorin wrote:
> On Fri, 19 Jun 2015 21:59:26 +0200
> Arnout Vandecappelle <arnout@mind.be> wrote:
> 
>> On 06/19/15 15:38, Jan Viktorin wrote:
>>> From: Jan Viktorin <viktorin@rehivetech.com>
>>>
>>> Dear Thomas,
>>>
>>> thank you for the review. I've made the changes accordingly.
>>>
>>> I've created host-zynq-boot-bin package to cover the small
>>> python script. It downloads U-Boot xilinx-v2015.1 from Xilinx
>>> github for this purpose (quite an overkill, isn't it...).
>>>
>>> There are now just 2 patches of U-Boot 2015.07. 0001 adds
>>> calling of the zynq-boot-bin.py and 0002 fixes the default
>>> U-Boot environment to boot out-of-the-box from SD card.
>>>
>>> There is still one thing to solve (I wasn't sure how).
>>> There is no dependency specified between U-Boot and the
>>> host-zynq-boot-bin package. It should be probably conditional
>>> but what kind of condition to write there? Should we use
>>> it for every Zynq architecture? (Is it possible to detect
>>> it by Buildroot?)
>>
>>  You can revert the two packages: make host-zynq-boot-bin depend on
>> uboot, and move the call to the python script to the
>> host-zynq-boot-bin package. One less patch for uboot :-)
> 
> So, you mean to drop the patch 0001 and call the zynq-boot-bin.py from
> BUILD/INSTALL (?) stage of this package?

 Yes, from the BUILD stage.

 You'll want to set _INSTALL_STAGING = NO and _INSTALL_IMAGES = YES.


> (I expect the dependency on
> uboot will guarantee, it is called after uboot.) 

 Yep.


> The package will get
> the path to the uboot's build dir as UBOOT_DIR, is it right?

 It will, but we prefer not to rely on that. Since uboot.mk will anyway install
the spl.bin file to $(IMAGES_DIR), you can take it from there.

> 
> So host-zynq-boot-bin should depend on uboot and it is up to the user
> to select this package to create the boot.bin file automatically
> or not. Is that OK?

 Exactly!


 Regards,
 Arnout

[snip]


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

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

* [Buildroot] [PATCH v2 0/2] Make Buildroot for Zedboard independent on Xilinx tools
  2015-06-18 21:18   ` Thomas Petazzoni
  2015-06-19 13:38     ` [Buildroot] [PATCH v1 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  2015-06-19 13:40     ` [Buildroot] [PATCH v1 1/2] host-zynq-boot-bin: new package Jan Viktorin
@ 2015-06-22 11:15     ` Jan Viktorin
  2015-06-22 11:15       ` [Buildroot] [PATCH v2 1/2] host-zynq-boot-bin: new package Jan Viktorin
                         ` (2 more replies)
  2 siblings, 3 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-06-22 11:15 UTC (permalink / raw)
  To: buildroot

From: Jan Viktorin <viktorin@rehivetech.com>

Hello,

based on the previous discussions, here are the changes
of the host-zynq-boot-bin which is now calling the zynq-boot-bin.py
script during its HOST_BUILD stage to create a boot.bin image
from the U-Boot's SPL. The host-zynq-boot-bin uses the variable
BR2_TARGET_UBOOT_SPL_NAME to determine the name of the installed
SPL binary.

I've added dependency on host-python, however, I am not sure
whether it is correct this way. It works for me.

There is only one patch for U-Boot attached that creates
an environment that boots out-of-the-box on Zedboard.

Regards
Jan Viktorin


Jan Viktorin (2):
  host-zynq-boot-bin: new package
  zedboard: Upgrade to U-Boot 2015.07

 board/avnet/zedboard/readme.txt        | 95 ++++++++++++++++------------------
 configs/zedboard_defconfig             |  7 +--
 package/Config.in.host                 |  1 +
 package/zynq-boot-bin/Config.in.host   |  8 +++
 package/zynq-boot-bin/zynq-boot-bin.mk | 22 ++++++++
 5 files changed, 79 insertions(+), 54 deletions(-)
 create mode 100644 package/zynq-boot-bin/Config.in.host
 create mode 100644 package/zynq-boot-bin/zynq-boot-bin.mk

-- 
2.4.4

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

* [Buildroot] [PATCH v2 1/2] host-zynq-boot-bin: new package
  2015-06-22 11:15     ` [Buildroot] [PATCH v2 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
@ 2015-06-22 11:15       ` Jan Viktorin
  2015-06-22 17:32         ` Baruch Siach
  2015-06-22 21:58         ` Arnout Vandecappelle
  2015-06-22 11:15       ` [Buildroot] [PATCH v2 2/2] zedboard: Upgrade to U-Boot 2015.07 Jan Viktorin
  2015-06-23 12:49       ` [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  2 siblings, 2 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-06-22 11:15 UTC (permalink / raw)
  To: buildroot

From: Jan Viktorin <viktorin@rehivetech.com>

The package creates file images/boot.bin to boot
Xilinx Zynq based boards. It might not work with
U-Boot older then 2015.07.

The script zynq-boot-bin.py is contained in the
Xilinx repository of U-Boot (it is not in upstream).

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 package/Config.in.host                 |  1 +
 package/zynq-boot-bin/Config.in.host   |  8 ++++++++
 package/zynq-boot-bin/zynq-boot-bin.mk | 22 ++++++++++++++++++++++
 3 files changed, 31 insertions(+)
 create mode 100644 package/zynq-boot-bin/Config.in.host
 create mode 100644 package/zynq-boot-bin/zynq-boot-bin.mk

diff --git a/package/Config.in.host b/package/Config.in.host
index 1e047aa..030c91f 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -27,5 +27,6 @@ menu "Host utilities"
 	source "package/sunxi-tools/Config.in.host"
 	source "package/uboot-tools/Config.in.host"
 	source "package/util-linux/Config.in.host"
+	source "package/zynq-boot-bin/Config.in.host"
 
 endmenu
diff --git a/package/zynq-boot-bin/Config.in.host b/package/zynq-boot-bin/Config.in.host
new file mode 100644
index 0000000..bc151a7
--- /dev/null
+++ b/package/zynq-boot-bin/Config.in.host
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_HOST_ZYNQ_BOOT_BIN
+	bool "host zynq-boot-bin"
+	depends on BR2_TARGET_UBOOT_SPL
+	help
+	  This is a simple Python script that creates BOOT.BIN file
+	  to boot Xilinx Zynq based on U-Boot's SPL.
+
+	  https://github.com/Xilinx/u-boot-xlnx
diff --git a/package/zynq-boot-bin/zynq-boot-bin.mk b/package/zynq-boot-bin/zynq-boot-bin.mk
new file mode 100644
index 0000000..cb1b4b5
--- /dev/null
+++ b/package/zynq-boot-bin/zynq-boot-bin.mk
@@ -0,0 +1,22 @@
+################################################################################
+#
+# zynq-boot-bin
+#
+################################################################################
+
+ZYNQ_BOOT_BIN_VERSION = xilinx-v2015.1
+ZYNQ_BOOT_BIN_SOURCE = $(ZYNQ_BOOT_BIN_VERSION).tar.gz
+ZYNQ_BOOT_BIN_SITE = https://github.com/Xilinx/u-boot-xlnx/archive
+
+ZYNQ_BOOT_BIN_INSTALL_STAGING = NO
+ZYNQ_BOOT_BIN_INSTALL_IMAGES = YES
+
+HOST_ZYNQ_BOOT_BIN_DEPENDENCIES = uboot host-python
+HOST_ZYNQ_BOOT_BIN_NEEDS_PYTHON = python2
+
+define HOST_ZYNQ_BOOT_BIN_BUILD_CMDS
+	$(HOST_DIR)/usr/bin/python2 $(@D)/tools/zynq-boot-bin.py -o $(BINARIES_DIR)/boot.bin \
+		-u $(BINARIES_DIR)/$(notdir $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)))
+endef
+
+$(eval $(host-generic-package))
-- 
2.4.4

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

* [Buildroot] [PATCH v2 2/2] zedboard: Upgrade to U-Boot 2015.07
  2015-06-22 11:15     ` [Buildroot] [PATCH v2 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  2015-06-22 11:15       ` [Buildroot] [PATCH v2 1/2] host-zynq-boot-bin: new package Jan Viktorin
@ 2015-06-22 11:15       ` Jan Viktorin
  2015-06-23 12:49       ` [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  2 siblings, 0 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-06-22 11:15 UTC (permalink / raw)
  To: buildroot

From: Jan Viktorin <viktorin@rehivetech.com>

Until recently, generation of a bootloader for the Avnet
Zedboard (and in general all Xilinx Zynq based boards)
has required to use the development tools by Xilinx
(Vivado, XSDK) and to walk through a quite painful
procedure to generate the First Stage Boot Loader
(FSBL) and the bootable BOOT.BIN image.

This commit makes Buildroot independent on the Xilinx
flow by utilizing U-Boot SPL and booting the Zynq's
PL by U-Boot.

The FSBL generation is not a problem anymore with U-Boot
2015.07 where a generic ps7_init.c file is included and
used to build the U-Boot SPL for various boards including
Zedboard. The ps7_init.c file has been released under
GNU/GPL license for this purpose. For details, see

 http://lists.denx.de/pipermail/u-boot/2015-April/210664.html

To create the boot.bin automatically, the host-zynq-boot-bin
package is required to be set (done in zedboard_defconfig).

The U-Boot 2015.07 is not released at the moment, so this
commit is based on 2015.07-rc2. However, as soon as it is
out, the download site of U-Boot can be redirected to the
release archive instead of fetching it by git.

The attached patch (0001) creates a Zedboard+Buildroot specific
U-Boot environment to boot smoothly from SD card. It tries
to load a file system.bit into the Zynq's PL (only if it
exists). It is also possible to alter the booting by an
uEnv.txt file located on your SD card. The uEnv.txt is
a plain text file with <key>=<value> pairs one per line.

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 board/avnet/zedboard/readme.txt | 95 +++++++++++++++++++----------------------
 configs/zedboard_defconfig      |  7 +--
 2 files changed, 48 insertions(+), 54 deletions(-)

diff --git a/board/avnet/zedboard/readme.txt b/board/avnet/zedboard/readme.txt
index a3f1f3e..b2dfe4b 100644
--- a/board/avnet/zedboard/readme.txt
+++ b/board/avnet/zedboard/readme.txt
@@ -5,68 +5,61 @@ System-On-Chip.
 Zedboard information including schematics, reference designs, and manuals are
 available from http://www.zedboard.org .
 
-The U-Boot firmware for the Xilinx Zynq All Programmable SoC depends
-on some proprietary code. This dependency consists of a pair of
-files are available from the Xilinx SDK installation.
-
-You will need these files from Xilinx SDK installation to generate
-the U-Boot firmware:
-	ps7_init.c
-	ps7_init.h
-
-Buildroot will create the following files and place them in the
-<output>/images directory.
-	zynq-zed.dtb
-	rootfs.cpio.uboot
-	uImage
-	u-boot.img
-	boot.bin
-
-
-uboot.bin  -- U-Boot SPL w/ Xilinx boot.bin wrapper
----------------------------------------------------
-
-Due to licensing issues, the files ps7_init.c/h are not able to be
-distributed with the U-Boot source code.  These files are required to make a
-boot.bin file.
-
-If you already have the Xilinx tools installed, the following sequence will
-unpack, patch and build the rfs, kernel, uboot, and uboot-spl.
-
-make zedboard_defconfig
-make uboot-patch
-cp ${XILINX}/ISE_DS/EDK/sw/lib/hwplatform_templates/zed_hw_platform/ps7_init.{c,h} \
-output/build/uboot-xilinx-v2014.1/board/xilinx/zynq/
-
-After copying these files into the U-Boot source tree, you can
-continue the build with:
-
-make
-
-*Notice*
-While the build will successfully complete without the ps7_init.*
-files,  the uboot.bin file generated by this configuration will not
-function properly on the Zedboard.  Therefore, it is imperative that
-the ps7_init.* files be copied into the U-Boot source tree any time
-the clean, or uboot-dirclean targets are made.
-
+Steps to create a working Buildroot for Zedboard:
+
+a) use U-Boot 2015.07 (is set by zedboard_defconfig)
+b) install host-zynq-boot-bin (done automatically by dependency system)
+--------------------------
+1) make zedboard_defconfig
+2) make UBOOT_BIN=u-boot-dtb.img
+3) copy files boot.bin, u-boot-dtb.img, rootfs.cpio.uboot,
+	uImage, zynq-zed.dtb into your SD card
+4) boot your Zedboard
+
+Note that I redefine variable UBOOT_BIN to u-boot-dtb.img
+(instead of u-boot.img) to be installed in to the images/
+directory. This binary works for the generated SPL:
+
+ U-Boot SPL 2015.07-rc2 (Jun 18 2015 - 16:42:58)
+ mmc boot
+ 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 2015.07-rc2 (Jun 18 2015 - 16:42:58 +0200)
+
+ Model: Zynq ZED Board
+ I2C:   ready
+ DRAM:  ECC disabled 512 MiB
+ MMC:   zynq_sdhci: 0
+ Using default environment
+ ...
 
 Resulting system
 ----------------
 A FAT32 partition should be created at the beginning of the SD Card
 and the following files should be installed:
 	/boot.bin
-	/devicetree.dtb
+	/zynq-zed.dtb
 	/uImage
-	/uramdisk.image.gz
-	/u-boot.img
+	/rootfs-cpio.uboot
+	/u-boot-dtb.img
 
 
 All needed files can be taken from output/images/
 
-boot.bin, uImage and u-boot.img are direct copies of the same files
+boot.bin, uImage and u-boot-dtb.img are direct copies of the same files
 available on output/images/
 
-devicetree.dtb is just zynq-zed.dtb renamed.
+The attachedpatchs of U-Boot enables to create boot.bin file
+automatically without the need of Xilinx tools. The U-Boot's
+environment is redefined there to work with Buildroot out-of-the-box.
+
+You can alter the booting procedure by creating a file uEnv.txt
+in the root of the SD card. It is a plain text file in format
+<key>=<value> one per line:
 
-uramdisk.image.gz is rootfs.cpio.uboot renamed
+kernel_image=myimage
+modeboot=myboot
+myboot=...
diff --git a/configs/zedboard_defconfig b/configs/zedboard_defconfig
index 76688e9..7c76793 100644
--- a/configs/zedboard_defconfig
+++ b/configs/zedboard_defconfig
@@ -19,8 +19,9 @@ BR2_TARGET_ROOTFS_CPIO_UIMAGE=y
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BOARDNAME="zynq_zed"
 BR2_TARGET_UBOOT_CUSTOM_GIT=y
-BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/Xilinx/u-boot-xlnx.git"
-BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="xilinx-v2014.1"
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.denx.de/u-boot.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="v2015.07-rc2"
+BR2_TARGET_UBOOT_PATCH="$(TOPDIR)/board/avnet/zedboard/uboot-2015.07"
 BR2_TARGET_UBOOT_FORMAT_IMG=y
 BR2_TARGET_UBOOT_SPL=y
-BR2_TARGET_UBOOT_SPL_NAME="boot.bin"
+BR2_PACKAGE_HOST_ZYNQ_BOOT_BIN=y
-- 
2.4.4

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

* [Buildroot] [PATCH v2 1/2] host-zynq-boot-bin: new package
  2015-06-22 11:15       ` [Buildroot] [PATCH v2 1/2] host-zynq-boot-bin: new package Jan Viktorin
@ 2015-06-22 17:32         ` Baruch Siach
  2015-06-22 21:58         ` Arnout Vandecappelle
  1 sibling, 0 replies; 42+ messages in thread
From: Baruch Siach @ 2015-06-22 17:32 UTC (permalink / raw)
  To: buildroot

Hi Jan,

On Mon, Jun 22, 2015 at 01:15:27PM +0200, Jan Viktorin wrote:
> +HOST_ZYNQ_BOOT_BIN_DEPENDENCIES = uboot host-python
> +HOST_ZYNQ_BOOT_BIN_NEEDS_PYTHON = python2

Python (2.6 or 2.7) is already a required package for Buildroot 
(http://nightly.buildroot.org/manual.html#requirement-mandatory).

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

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

* [Buildroot] [PATCH v2 1/2] host-zynq-boot-bin: new package
  2015-06-22 11:15       ` [Buildroot] [PATCH v2 1/2] host-zynq-boot-bin: new package Jan Viktorin
  2015-06-22 17:32         ` Baruch Siach
@ 2015-06-22 21:58         ` Arnout Vandecappelle
  1 sibling, 0 replies; 42+ messages in thread
From: Arnout Vandecappelle @ 2015-06-22 21:58 UTC (permalink / raw)
  To: buildroot

On 06/22/15 13:15, Jan Viktorin wrote:
> From: Jan Viktorin <viktorin@rehivetech.com>
> 
> The package creates file images/boot.bin to boot
> Xilinx Zynq based boards. It might not work with
> U-Boot older then 2015.07.
> 
> The script zynq-boot-bin.py is contained in the
> Xilinx repository of U-Boot (it is not in upstream).
> 
> Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
> ---
>  package/Config.in.host                 |  1 +
>  package/zynq-boot-bin/Config.in.host   |  8 ++++++++
>  package/zynq-boot-bin/zynq-boot-bin.mk | 22 ++++++++++++++++++++++
>  3 files changed, 31 insertions(+)
>  create mode 100644 package/zynq-boot-bin/Config.in.host
>  create mode 100644 package/zynq-boot-bin/zynq-boot-bin.mk
> 
> diff --git a/package/Config.in.host b/package/Config.in.host
> index 1e047aa..030c91f 100644
> --- a/package/Config.in.host
> +++ b/package/Config.in.host
> @@ -27,5 +27,6 @@ menu "Host utilities"
>  	source "package/sunxi-tools/Config.in.host"
>  	source "package/uboot-tools/Config.in.host"
>  	source "package/util-linux/Config.in.host"
> +	source "package/zynq-boot-bin/Config.in.host"
>  
>  endmenu
> diff --git a/package/zynq-boot-bin/Config.in.host b/package/zynq-boot-bin/Config.in.host
> new file mode 100644
> index 0000000..bc151a7
> --- /dev/null
> +++ b/package/zynq-boot-bin/Config.in.host
> @@ -0,0 +1,8 @@
> +config BR2_PACKAGE_HOST_ZYNQ_BOOT_BIN
> +	bool "host zynq-boot-bin"
> +	depends on BR2_TARGET_UBOOT_SPL
> +	help
> +	  This is a simple Python script that creates BOOT.BIN file
> +	  to boot Xilinx Zynq based on U-Boot's SPL.
> +
> +	  https://github.com/Xilinx/u-boot-xlnx
> diff --git a/package/zynq-boot-bin/zynq-boot-bin.mk b/package/zynq-boot-bin/zynq-boot-bin.mk
> new file mode 100644
> index 0000000..cb1b4b5
> --- /dev/null
> +++ b/package/zynq-boot-bin/zynq-boot-bin.mk
> @@ -0,0 +1,22 @@
> +################################################################################
> +#
> +# zynq-boot-bin
> +#
> +################################################################################
> +
> +ZYNQ_BOOT_BIN_VERSION = xilinx-v2015.1
> +ZYNQ_BOOT_BIN_SOURCE = $(ZYNQ_BOOT_BIN_VERSION).tar.gz
> +ZYNQ_BOOT_BIN_SITE = https://github.com/Xilinx/u-boot-xlnx/archive

 Since we only need a single file from this archive, perhaps it is better to
set (untested):

ZYNQ_BOOT_BIN_SOURCE = zynq-boot-bin.py
ZYNQ_BOOT_BIN_SITE = https://raw.githubusercontent.com/Xilinx/u-boot-xlnx/$(ZYNQ_BOOT_BIN_VERSION)/tools

define ZYNQ_BOOT_BIN_EXTRACT_CMDS
	@cp $(DL_DIR)/$(ZYNQ_BOOT_BIN_SOURCE) $(@D)
endef

> +
> +ZYNQ_BOOT_BIN_INSTALL_STAGING = NO
> +ZYNQ_BOOT_BIN_INSTALL_IMAGES = YES
> +
> +HOST_ZYNQ_BOOT_BIN_DEPENDENCIES = uboot host-python

 As mentioned by Baruch, host-python dependency shouldn't be needed.

> +HOST_ZYNQ_BOOT_BIN_NEEDS_PYTHON = python2

 It's actually _NEEDS_HOST_PYTHON, so this is clearly not needed.


 Regards,
 Arnout

> +
> +define HOST_ZYNQ_BOOT_BIN_BUILD_CMDS
> +	$(HOST_DIR)/usr/bin/python2 $(@D)/tools/zynq-boot-bin.py -o $(BINARIES_DIR)/boot.bin \
> +		-u $(BINARIES_DIR)/$(notdir $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)))
> +endef
> +
> +$(eval $(host-generic-package))
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

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

* [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools
  2015-06-22 11:15     ` [Buildroot] [PATCH v2 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  2015-06-22 11:15       ` [Buildroot] [PATCH v2 1/2] host-zynq-boot-bin: new package Jan Viktorin
  2015-06-22 11:15       ` [Buildroot] [PATCH v2 2/2] zedboard: Upgrade to U-Boot 2015.07 Jan Viktorin
@ 2015-06-23 12:49       ` Jan Viktorin
  2015-06-23 12:49         ` [Buildroot] [PATCH v3 1/2] host-zynq-boot-bin: new package Jan Viktorin
                           ` (2 more replies)
  2 siblings, 3 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-06-23 12:49 UTC (permalink / raw)
  To: buildroot

From: Jan Viktorin <viktorin@rehivetech.com>

Hello,

thanks to Baruch and Arnout for comments. I think this the final
version. The host-zynq-boot-bin now downloads just the python script
(thank you for this tip, I was looking for such solution).

The second commit is unchanged.

Regards
Jan Viktorin


Jan Viktorin (2):
  host-zynq-boot-bin: new package
  zedboard: Upgrade to U-Boot 2015.07

 board/avnet/zedboard/readme.txt        | 95 ++++++++++++++++------------------
 configs/zedboard_defconfig             |  7 +--
 package/Config.in.host                 |  1 +
 package/zynq-boot-bin/Config.in.host   |  8 +++
 package/zynq-boot-bin/zynq-boot-bin.mk | 24 +++++++++
 5 files changed, 81 insertions(+), 54 deletions(-)
 create mode 100644 package/zynq-boot-bin/Config.in.host
 create mode 100644 package/zynq-boot-bin/zynq-boot-bin.mk

-- 
2.4.4

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

* [Buildroot] [PATCH v3 1/2] host-zynq-boot-bin: new package
  2015-06-23 12:49       ` [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
@ 2015-06-23 12:49         ` Jan Viktorin
  2015-07-03 17:33           ` Yann E. MORIN
  2015-07-04 14:07           ` Thomas Petazzoni
  2015-06-23 12:49         ` [Buildroot] [PATCH v3 2/2] zedboard: Upgrade to U-Boot 2015.07 Jan Viktorin
  2015-07-02 12:40         ` [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  2 siblings, 2 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-06-23 12:49 UTC (permalink / raw)
  To: buildroot

From: Jan Viktorin <viktorin@rehivetech.com>

The package creates file images/boot.bin to boot
Xilinx Zynq based boards. It might not work with
U-Boot older then 2015.07.

The script zynq-boot-bin.py is contained in the
Xilinx repository of U-Boot (it is not in upstream).

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
Changes:
 * v0->v1: create this package instead of patching U-Boot by zynq-boot-bin.py
 * v1->v2: call zynq-boot-bin.py from the package
 * v2->v3: remove python deps, do not download U-Boot, just the script

 package/Config.in.host                 |  1 +
 package/zynq-boot-bin/Config.in.host   |  8 ++++++++
 package/zynq-boot-bin/zynq-boot-bin.mk | 24 ++++++++++++++++++++++++
 3 files changed, 33 insertions(+)
 create mode 100644 package/zynq-boot-bin/Config.in.host
 create mode 100644 package/zynq-boot-bin/zynq-boot-bin.mk

diff --git a/package/Config.in.host b/package/Config.in.host
index 1e047aa..030c91f 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -27,5 +27,6 @@ menu "Host utilities"
 	source "package/sunxi-tools/Config.in.host"
 	source "package/uboot-tools/Config.in.host"
 	source "package/util-linux/Config.in.host"
+	source "package/zynq-boot-bin/Config.in.host"
 
 endmenu
diff --git a/package/zynq-boot-bin/Config.in.host b/package/zynq-boot-bin/Config.in.host
new file mode 100644
index 0000000..bc151a7
--- /dev/null
+++ b/package/zynq-boot-bin/Config.in.host
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_HOST_ZYNQ_BOOT_BIN
+	bool "host zynq-boot-bin"
+	depends on BR2_TARGET_UBOOT_SPL
+	help
+	  This is a simple Python script that creates BOOT.BIN file
+	  to boot Xilinx Zynq based on U-Boot's SPL.
+
+	  https://github.com/Xilinx/u-boot-xlnx
diff --git a/package/zynq-boot-bin/zynq-boot-bin.mk b/package/zynq-boot-bin/zynq-boot-bin.mk
new file mode 100644
index 0000000..aff4593
--- /dev/null
+++ b/package/zynq-boot-bin/zynq-boot-bin.mk
@@ -0,0 +1,24 @@
+################################################################################
+#
+# zynq-boot-bin
+#
+################################################################################
+
+ZYNQ_BOOT_BIN_VERSION = xilinx-v2015.1
+ZYNQ_BOOT_BIN_SOURCE = zynq-boot-bin.py
+ZYNQ_BOOT_BIN_SITE = https://raw.githubusercontent.com/Xilinx/u-boot-xlnx/$(ZYNQ_BOOT_BIN_VERSION)/tools
+
+HOST_ZYNQ_BOOT_BIN_INSTALL_STAGING = NO
+HOST_ZYNQ_BOOT_BIN_INSTALL_IMAGES = YES
+HOST_ZYNQ_BOOT_BIN_DEPENDENCIES = uboot
+
+define HOST_ZYNQ_BOOT_BIN_EXTRACT_CMDS
+	@cp $(DL_DIR)/$(ZYNQ_BOOT_BIN_SOURCE) $(@D)
+endef
+
+define HOST_ZYNQ_BOOT_BIN_BUILD_CMDS
+	@env python2 $(@D)/zynq-boot-bin.py -o $(BINARIES_DIR)/boot.bin \
+		-u $(BINARIES_DIR)/$(notdir $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)))
+endef
+
+$(eval $(host-generic-package))
-- 
2.4.4

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

* [Buildroot] [PATCH v3 2/2] zedboard: Upgrade to U-Boot 2015.07
  2015-06-23 12:49       ` [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  2015-06-23 12:49         ` [Buildroot] [PATCH v3 1/2] host-zynq-boot-bin: new package Jan Viktorin
@ 2015-06-23 12:49         ` Jan Viktorin
  2015-07-02 12:40         ` [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  2 siblings, 0 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-06-23 12:49 UTC (permalink / raw)
  To: buildroot

From: Jan Viktorin <viktorin@rehivetech.com>

Until recently, generation of a bootloader for the Avnet
Zedboard (and in general all Xilinx Zynq based boards)
has required to use the development tools by Xilinx
(Vivado, XSDK) and to walk through a quite painful
procedure to generate the First Stage Boot Loader
(FSBL) and the bootable BOOT.BIN image.

This commit makes Buildroot independent on the Xilinx
flow by utilizing U-Boot SPL and booting the Zynq's
PL by U-Boot.

The FSBL generation is not a problem anymore with U-Boot
2015.07 where a generic ps7_init.c file is included and
used to build the U-Boot SPL for various boards including
Zedboard. The ps7_init.c file has been released under
GNU/GPL license for this purpose. For details, see

 http://lists.denx.de/pipermail/u-boot/2015-April/210664.html

To create the BOOT.BIN automatically, the host-zynq-boot-bin
package is required. It automatically creates the boot.bin.

The U-Boot 2015.07 is not released at the moment, so this
commit is based on 2015.07-rc2. However, as soon as it is
out, the download site of U-Boot can be redirected to the
release archive instead of fetching it by git.

The attached patch (0001) creates a Zedboard+Buildroot specific
U-Boot environment to boot smoothly from SD card. It tries
to load a file system.bit into the Zynq's PL (only if it
exists). It is also possible to alter the booting by an
uEnv.txt file located on your SD card. The uEnv.txt is
a plain text file with <key>=<value> pairs one per line.

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
Changes:
 * v0->v1: patch transformed to host-zynq-boot-bin (new pkg)
 * v1->v2: move all boot.bin related functions to host-zynq-boot-bin
 * v3: unchanged (posted together with host-zynq-boot-bin)

 board/avnet/zedboard/readme.txt | 95 +++++++++++++++++++----------------------
 configs/zedboard_defconfig      |  7 +--
 2 files changed, 48 insertions(+), 54 deletions(-)

diff --git a/board/avnet/zedboard/readme.txt b/board/avnet/zedboard/readme.txt
index a3f1f3e..b2dfe4b 100644
--- a/board/avnet/zedboard/readme.txt
+++ b/board/avnet/zedboard/readme.txt
@@ -5,68 +5,61 @@ System-On-Chip.
 Zedboard information including schematics, reference designs, and manuals are
 available from http://www.zedboard.org .
 
-The U-Boot firmware for the Xilinx Zynq All Programmable SoC depends
-on some proprietary code. This dependency consists of a pair of
-files are available from the Xilinx SDK installation.
-
-You will need these files from Xilinx SDK installation to generate
-the U-Boot firmware:
-	ps7_init.c
-	ps7_init.h
-
-Buildroot will create the following files and place them in the
-<output>/images directory.
-	zynq-zed.dtb
-	rootfs.cpio.uboot
-	uImage
-	u-boot.img
-	boot.bin
-
-
-uboot.bin  -- U-Boot SPL w/ Xilinx boot.bin wrapper
----------------------------------------------------
-
-Due to licensing issues, the files ps7_init.c/h are not able to be
-distributed with the U-Boot source code.  These files are required to make a
-boot.bin file.
-
-If you already have the Xilinx tools installed, the following sequence will
-unpack, patch and build the rfs, kernel, uboot, and uboot-spl.
-
-make zedboard_defconfig
-make uboot-patch
-cp ${XILINX}/ISE_DS/EDK/sw/lib/hwplatform_templates/zed_hw_platform/ps7_init.{c,h} \
-output/build/uboot-xilinx-v2014.1/board/xilinx/zynq/
-
-After copying these files into the U-Boot source tree, you can
-continue the build with:
-
-make
-
-*Notice*
-While the build will successfully complete without the ps7_init.*
-files,  the uboot.bin file generated by this configuration will not
-function properly on the Zedboard.  Therefore, it is imperative that
-the ps7_init.* files be copied into the U-Boot source tree any time
-the clean, or uboot-dirclean targets are made.
-
+Steps to create a working Buildroot for Zedboard:
+
+a) use U-Boot 2015.07 (is set by zedboard_defconfig)
+b) install host-zynq-boot-bin (done automatically by dependency system)
+--------------------------
+1) make zedboard_defconfig
+2) make UBOOT_BIN=u-boot-dtb.img
+3) copy files boot.bin, u-boot-dtb.img, rootfs.cpio.uboot,
+	uImage, zynq-zed.dtb into your SD card
+4) boot your Zedboard
+
+Note that I redefine variable UBOOT_BIN to u-boot-dtb.img
+(instead of u-boot.img) to be installed in to the images/
+directory. This binary works for the generated SPL:
+
+ U-Boot SPL 2015.07-rc2 (Jun 18 2015 - 16:42:58)
+ mmc boot
+ 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 2015.07-rc2 (Jun 18 2015 - 16:42:58 +0200)
+
+ Model: Zynq ZED Board
+ I2C:   ready
+ DRAM:  ECC disabled 512 MiB
+ MMC:   zynq_sdhci: 0
+ Using default environment
+ ...
 
 Resulting system
 ----------------
 A FAT32 partition should be created at the beginning of the SD Card
 and the following files should be installed:
 	/boot.bin
-	/devicetree.dtb
+	/zynq-zed.dtb
 	/uImage
-	/uramdisk.image.gz
-	/u-boot.img
+	/rootfs-cpio.uboot
+	/u-boot-dtb.img
 
 
 All needed files can be taken from output/images/
 
-boot.bin, uImage and u-boot.img are direct copies of the same files
+boot.bin, uImage and u-boot-dtb.img are direct copies of the same files
 available on output/images/
 
-devicetree.dtb is just zynq-zed.dtb renamed.
+The attachedpatchs of U-Boot enables to create boot.bin file
+automatically without the need of Xilinx tools. The U-Boot's
+environment is redefined there to work with Buildroot out-of-the-box.
+
+You can alter the booting procedure by creating a file uEnv.txt
+in the root of the SD card. It is a plain text file in format
+<key>=<value> one per line:
 
-uramdisk.image.gz is rootfs.cpio.uboot renamed
+kernel_image=myimage
+modeboot=myboot
+myboot=...
diff --git a/configs/zedboard_defconfig b/configs/zedboard_defconfig
index 76688e9..7c76793 100644
--- a/configs/zedboard_defconfig
+++ b/configs/zedboard_defconfig
@@ -19,8 +19,9 @@ BR2_TARGET_ROOTFS_CPIO_UIMAGE=y
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BOARDNAME="zynq_zed"
 BR2_TARGET_UBOOT_CUSTOM_GIT=y
-BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/Xilinx/u-boot-xlnx.git"
-BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="xilinx-v2014.1"
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.denx.de/u-boot.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="v2015.07-rc2"
+BR2_TARGET_UBOOT_PATCH="$(TOPDIR)/board/avnet/zedboard/uboot-2015.07"
 BR2_TARGET_UBOOT_FORMAT_IMG=y
 BR2_TARGET_UBOOT_SPL=y
-BR2_TARGET_UBOOT_SPL_NAME="boot.bin"
+BR2_PACKAGE_HOST_ZYNQ_BOOT_BIN=y
-- 
2.4.4

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

* [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools
  2015-06-23 12:49       ` [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  2015-06-23 12:49         ` [Buildroot] [PATCH v3 1/2] host-zynq-boot-bin: new package Jan Viktorin
  2015-06-23 12:49         ` [Buildroot] [PATCH v3 2/2] zedboard: Upgrade to U-Boot 2015.07 Jan Viktorin
@ 2015-07-02 12:40         ` Jan Viktorin
  2015-07-03 17:40           ` Yann E. MORIN
  2 siblings, 1 reply; 42+ messages in thread
From: Jan Viktorin @ 2015-07-02 12:40 UTC (permalink / raw)
  To: buildroot

Hello,

will be the proposed patchs applied in the near future?

Regards
Jan

On Tue, 23 Jun 2015 14:49:09 +0200
Jan Viktorin <xvikto03@stud.fit.vutbr.cz> wrote:

> From: Jan Viktorin <viktorin@rehivetech.com>
> 
> Hello,
> 
> thanks to Baruch and Arnout for comments. I think this the final
> version. The host-zynq-boot-bin now downloads just the python script
> (thank you for this tip, I was looking for such solution).
> 
> The second commit is unchanged.
> 
> Regards
> Jan Viktorin
> 
> 
> Jan Viktorin (2):
>   host-zynq-boot-bin: new package
>   zedboard: Upgrade to U-Boot 2015.07
> 
>  board/avnet/zedboard/readme.txt        | 95 ++++++++++++++++------------------
>  configs/zedboard_defconfig             |  7 +--
>  package/Config.in.host                 |  1 +
>  package/zynq-boot-bin/Config.in.host   |  8 +++
>  package/zynq-boot-bin/zynq-boot-bin.mk | 24 +++++++++
>  5 files changed, 81 insertions(+), 54 deletions(-)
>  create mode 100644 package/zynq-boot-bin/Config.in.host
>  create mode 100644 package/zynq-boot-bin/zynq-boot-bin.mk
> 



-- 
  Jan Viktorin, PhD student   E-mail: iviktorin at fit.vutbr.cz
  DCS FIT VUT Brno, L310      Web: http://www.fit.vutbr.cz/~iviktorin
  Bozetechova 1, 612 66       Phone: +420 54114-1357
  Brno, Czech Republic

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

* [Buildroot] [PATCH v3 1/2] host-zynq-boot-bin: new package
  2015-06-23 12:49         ` [Buildroot] [PATCH v3 1/2] host-zynq-boot-bin: new package Jan Viktorin
@ 2015-07-03 17:33           ` Yann E. MORIN
  2015-07-03 20:00             ` Arnout Vandecappelle
  2015-07-04 14:07           ` Thomas Petazzoni
  1 sibling, 1 reply; 42+ messages in thread
From: Yann E. MORIN @ 2015-07-03 17:33 UTC (permalink / raw)
  To: buildroot

Jan, All,

On 2015-06-23 14:49 +0200, Jan Viktorin spake thusly:
> From: Jan Viktorin <viktorin@rehivetech.com>
> 
> The package creates file images/boot.bin to boot
> Xilinx Zynq based boards. It might not work with
> U-Boot older then 2015.07.
> 
> The script zynq-boot-bin.py is contained in the
> Xilinx repository of U-Boot (it is not in upstream).
> 
> Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
[--SNIP--]
> diff --git a/package/zynq-boot-bin/zynq-boot-bin.mk b/package/zynq-boot-bin/zynq-boot-bin.mk
> new file mode 100644
> index 0000000..aff4593
> --- /dev/null
> +++ b/package/zynq-boot-bin/zynq-boot-bin.mk
> @@ -0,0 +1,24 @@
> +################################################################################
> +#
> +# zynq-boot-bin
> +#
> +################################################################################
> +
> +ZYNQ_BOOT_BIN_VERSION = xilinx-v2015.1
> +ZYNQ_BOOT_BIN_SOURCE = zynq-boot-bin.py
> +ZYNQ_BOOT_BIN_SITE = https://raw.githubusercontent.com/Xilinx/u-boot-xlnx/$(ZYNQ_BOOT_BIN_VERSION)/tools

Missing licensing information:
    ZYNQ_BOOT_BIN_LICENSE = foo license...
    ZYNQ_BOOT_BIN_LICENSE_FILES = License-file

> +HOST_ZYNQ_BOOT_BIN_INSTALL_STAGING = NO
> +HOST_ZYNQ_BOOT_BIN_INSTALL_IMAGES = YES

Since this is a host-only package, you need not specify either;
  - install_staging already defaults to no,
  - both are anyway only valid for target packages.

> +HOST_ZYNQ_BOOT_BIN_DEPENDENCIES = uboot
> +
> +define HOST_ZYNQ_BOOT_BIN_EXTRACT_CMDS
> +	@cp $(DL_DIR)/$(ZYNQ_BOOT_BIN_SOURCE) $(@D)
> +endef
> +
> +define HOST_ZYNQ_BOOT_BIN_BUILD_CMDS
> +	@env python2 $(@D)/zynq-boot-bin.py -o $(BINARIES_DIR)/boot.bin \

That mught be an indication that it should depend on host-python, no?

> +		-u $(BINARIES_DIR)/$(notdir $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)))
> +endef

Although what you wrote does work, it is not absolutely correct: the
build commands should just really build, not install anything in the
output directories.

You should generate the files in the package build directory, and
provide a command that does the install (even if it is just copying the
generated files).

> +$(eval $(host-generic-package))

But, then since you install in $(BINARIES_DIR), which is definitely not
what we usually do for host  packages. The expected output of a host
package is to install something in $(HOST_DIR), so that it can later be
used (e.g. by another package, or by a post-build/post-image script)

Here's what I think should be done:

    ZYNQ_BOOT_BIN_VERSION = xilinx-v2015.1
    ZYNQ_BOOT_BIN_SOURCE = zynq-boot-bin.py
    ZYNQ_BOOT_BIN_SITE = https://raw.githubusercontent.com/Xilinx/u-boot-xlnx/$(ZYNQ_BOOT_BIN_VERSION)/tools
    ZYNQ_BOOT_BIN_LICENSE = GPLv3+
    # No license file, license in file itself

    HOST_ZYNQ_BOOT_BIN_DEPENDENCIES = host-python

    define HOST_ZYNQ_BOOT_BIN_INSTALL_CMDS
        @cp $(DL_DIR)/$(ZYNQ_BOOT_BIN_SOURCE) \
        $(HOST_DIR)/usr/bin/$(ZYNQ_BOOT_BIN_SOURCE)
    endef

    $(eval $(hhost-generic-package))

And then in the board README file, state something along the lines:

    ---8<---
    To finalise the boot device, run the following command:

      $ ./output/host/usr/bin/zynq-boot-bin.py \
            -u output/images/boot.bin \
            -o /path/to/the/boot-stuff
    ---8<---

(you get the idea)

Note: that's what we do for the Raspberry Pi, for example, where we
install the 'mkknlimg' utility in $(HOST_DIR) and tell the user how to
use it in the board readme file:

    ---8<---
    The kernel image must be marked with a special header so that the
    bootloader of the RaspberryPi knows it supports Device Tree:

      $ ./output/host/usr/bin/mkknlimg output/images/zImage \
                                       /mnt/mountpointboot/zImage
    ---8<---

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools
  2015-07-02 12:40         ` [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
@ 2015-07-03 17:40           ` Yann E. MORIN
  2015-07-03 23:52             ` Jan Viktorin
  0 siblings, 1 reply; 42+ messages in thread
From: Yann E. MORIN @ 2015-07-03 17:40 UTC (permalink / raw)
  To: buildroot

Jan, All,

On 2015-07-02 14:40 +0200, Jan Viktorin spake thusly:
> will be the proposed patchs applied in the near future?

Well, we need to review and test them...

We currently have 401 patches pending in our patch queue:
    https://patchwork.ozlabs.org/project/buildroot/list/

Since there's not many of us doing reviews/tests, it takes time.

If you want to increase the likelyhood your patches are reviewed soon
(and I've already started), you can help reduce the patch queue:

  - get a patch (not yours), apply it to your Buildroot tree, build a
    configuration with that patch and test it (as much as you can, at
    least build-test in various target configurations: arm, mips...
    LE/BE, glibc/uClibc/musl, internal/external toolchain...) and report
    your findings to the list

  - get a patch (not yours), look at it, and see if it fits in the
    Buildroot 'spirit' (code style, mandatory information, licensing...)
    and report to hte list.

See:
    http://buildroot.net/downloads/manual/manual.html#_contributing_to_buildroot
    http://buildroot.net/downloads/manual/manual.html#_reviewing_and_testing_patches

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH v3 1/2] host-zynq-boot-bin: new package
  2015-07-03 17:33           ` Yann E. MORIN
@ 2015-07-03 20:00             ` Arnout Vandecappelle
  2015-07-03 21:51               ` Yann E. MORIN
  0 siblings, 1 reply; 42+ messages in thread
From: Arnout Vandecappelle @ 2015-07-03 20:00 UTC (permalink / raw)
  To: buildroot

On 07/03/15 19:33, Yann E. MORIN wrote:
> Jan, All,
> 
> On 2015-06-23 14:49 +0200, Jan Viktorin spake thusly:
>> From: Jan Viktorin <viktorin@rehivetech.com>
>>
>> The package creates file images/boot.bin to boot
>> Xilinx Zynq based boards. It might not work with
>> U-Boot older then 2015.07.
>>
>> The script zynq-boot-bin.py is contained in the
>> Xilinx repository of U-Boot (it is not in upstream).
>>
>> Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
> [--SNIP--]
>> diff --git a/package/zynq-boot-bin/zynq-boot-bin.mk b/package/zynq-boot-bin/zynq-boot-bin.mk
>> new file mode 100644
>> index 0000000..aff4593
>> --- /dev/null
>> +++ b/package/zynq-boot-bin/zynq-boot-bin.mk
>> @@ -0,0 +1,24 @@
>> +################################################################################
>> +#
>> +# zynq-boot-bin
>> +#
>> +################################################################################
>> +
>> +ZYNQ_BOOT_BIN_VERSION = xilinx-v2015.1
>> +ZYNQ_BOOT_BIN_SOURCE = zynq-boot-bin.py
>> +ZYNQ_BOOT_BIN_SITE = https://raw.githubusercontent.com/Xilinx/u-boot-xlnx/$(ZYNQ_BOOT_BIN_VERSION)/tools
> 
> Missing licensing information:
>     ZYNQ_BOOT_BIN_LICENSE = foo license...
>     ZYNQ_BOOT_BIN_LICENSE_FILES = License-file
> 
>> +HOST_ZYNQ_BOOT_BIN_INSTALL_STAGING = NO
>> +HOST_ZYNQ_BOOT_BIN_INSTALL_IMAGES = YES
> 
> Since this is a host-only package, you need not specify either;
>   - install_staging already defaults to no,
>   - both are anyway only valid for target packages.

 But actually, it's not a host package, it's a target package. Took me some time
to realize that however :-) See below.

> 
>> +HOST_ZYNQ_BOOT_BIN_DEPENDENCIES = uboot
>> +
>> +define HOST_ZYNQ_BOOT_BIN_EXTRACT_CMDS
>> +	@cp $(DL_DIR)/$(ZYNQ_BOOT_BIN_SOURCE) $(@D)
>> +endef
>> +
>> +define HOST_ZYNQ_BOOT_BIN_BUILD_CMDS
>> +	@env python2 $(@D)/zynq-boot-bin.py -o $(BINARIES_DIR)/boot.bin \
> 
> That mught be an indication that it should depend on host-python, no?

 Actually, no, we actually require a system-python to exist. I think it also
needs to be python2 though we don't check for that. And to be honest, I have no
idea why we require it...

 But I certainly wouldn't like to have to build a host-python just to be able to
build the boot loader... So I'm glad there's no dependency on host-python.

> 
>> +		-u $(BINARIES_DIR)/$(notdir $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)))
>> +endef
> 
> Although what you wrote does work, it is not absolutely correct: the
> build commands should just really build, not install anything in the
> output directories.

 +1.

> 
> You should generate the files in the package build directory, and
> provide a command that does the install (even if it is just copying the
> generated files).
> 
>> +$(eval $(host-generic-package))
> 
> But, then since you install in $(BINARIES_DIR), which is definitely not
> what we usually do for host  packages. The expected output of a host
> package is to install something in $(HOST_DIR), so that it can later be
> used (e.g. by another package, or by a post-build/post-image script)
> 
> Here's what I think should be done:
> 
>     ZYNQ_BOOT_BIN_VERSION = xilinx-v2015.1
>     ZYNQ_BOOT_BIN_SOURCE = zynq-boot-bin.py
>     ZYNQ_BOOT_BIN_SITE = https://raw.githubusercontent.com/Xilinx/u-boot-xlnx/$(ZYNQ_BOOT_BIN_VERSION)/tools
>     ZYNQ_BOOT_BIN_LICENSE = GPLv3+
>     # No license file, license in file itself
> 
>     HOST_ZYNQ_BOOT_BIN_DEPENDENCIES = host-python
> 
>     define HOST_ZYNQ_BOOT_BIN_INSTALL_CMDS
>         @cp $(DL_DIR)/$(ZYNQ_BOOT_BIN_SOURCE) \
>         $(HOST_DIR)/usr/bin/$(ZYNQ_BOOT_BIN_SOURCE)
>     endef
> 
>     $(eval $(hhost-generic-package))
> 
> And then in the board README file, state something along the lines:
> 
>     ---8<---
>     To finalise the boot device, run the following command:
> 
>       $ ./output/host/usr/bin/zynq-boot-bin.py \
>             -u output/images/boot.bin \
>             -o /path/to/the/boot-stuff
>     ---8<---
> 
> (you get the idea)

 That's what Jan originally had, but I told him to do it this way :-)

 You can view zynq-boot-bin as something which really should be part of uboot.
The only point of this "program" is to create the bootloader. It will never be
applied on anything except the bootloader. It doesn't need any additional
configuration or command line arguments. So it would be quite pointless to burde
the user with writing that stuff in a post-build script.

 Perhaps, however, it should go into the boot/ directory instead of packages. It
is, after all, a pre-bootloader, like at91bootstrap.

> 
> Note: that's what we do for the Raspberry Pi, for example, where we
> install the 'mkknlimg' utility in $(HOST_DIR) and tell the user how to
> use it in the board readme file:

 I think the same approach could be taken there. Though I can't say I understand
much of all the hoops you have to jump through to boot an RPi.

 Regards,
 Arnout

> 
>     ---8<---
>     The kernel image must be marked with a special header so that the
>     bootloader of the RaspberryPi knows it supports Device Tree:
> 
>       $ ./output/host/usr/bin/mkknlimg output/images/zImage \
>                                        /mnt/mountpointboot/zImage
>     ---8<---
> 
> Regards,
> Yann E. MORIN.
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

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

* [Buildroot] [PATCH v3 1/2] host-zynq-boot-bin: new package
  2015-07-03 20:00             ` Arnout Vandecappelle
@ 2015-07-03 21:51               ` Yann E. MORIN
  2015-07-03 23:44                 ` Jan Viktorin
  0 siblings, 1 reply; 42+ messages in thread
From: Yann E. MORIN @ 2015-07-03 21:51 UTC (permalink / raw)
  To: buildroot

Arnout, Jan, All,

On 2015-07-03 22:00 +0200, Arnout Vandecappelle spake thusly:
> On 07/03/15 19:33, Yann E. MORIN wrote:
> > On 2015-06-23 14:49 +0200, Jan Viktorin spake thusly:
[--SNIP--]
> > Since this is a host-only package, you need not specify either;
> >   - install_staging already defaults to no,
> >   - both are anyway only valid for target packages.
> 
>  But actually, it's not a host package, it's a target package. Took me some time
> to realize that however :-) See below.

Still, I am not sure, see below. ;-)

[--SNIP--]
> > That mught be an indication that it should depend on host-python, no?
> 
>  Actually, no, we actually require a system-python to exist. I think it also
> needs to be python2 though we don't check for that. And to be honest, I have no
> idea why we require it...

I don't know why we require it for packages, but we at least need it for
the manual.

I was added way back in 2010 byy Thomas P. to fix #1531.

>  But I certainly wouldn't like to have to build a host-python just to be able to
> build the boot loader... So I'm glad there's no dependency on host-python.

Agreed.

> > Here's what I think should be done:
[--SNIP--]

>  That's what Jan originally had, but I told him to do it this way :-)
> 
>  You can view zynq-boot-bin as something which really should be part of uboot.
> The only point of this "program" is to create the bootloader. It will never be
> applied on anything except the bootloader. It doesn't need any additional
> configuration or command line arguments. So it would be quite pointless to burde
> the user with writing that stuff in a post-build script.
> 
>  Perhaps, however, it should go into the boot/ directory instead of packages. It
> is, after all, a pre-bootloader, like at91bootstrap.

Right, that would be a better location.

Still, I believe we should handle this tool as a host tool, to support
users that build their bootloader outside of Buildroot (we already
install similar tools for this reason).

> > Note: that's what we do for the Raspberry Pi, for example, where we
> > install the 'mkknlimg' utility in $(HOST_DIR) and tell the user how to
> > use it in the board readme file:
> 
>  I think the same approach could be taken there.

I respectfully disagree. ;-)

rpi-firmware installs a utility to add a header (really, a trailler) to
the kernel image. Since the user can build his kernel outside Buildroot,
we still want to leave him/her the possibility to tag the kernel
properly; hence we install this utility in $(HOST_DIR), either when
doing the SDcard manually, or from a post-image script.

I believe we are here in a similar situation with host-zynq-boot-bin.

However, we might be a bit more helpful here, so we have a way to
automatically run those commands in a sane, generic way, like we have
with TARGET_FINALIZE_HOOKS for target-finalize, but this time for
images.

Note: we might _technically_ be able tore-use TARGET_FINALIZE_HOOKS,
but I'm a bit uneasy to hijack it to deal with images, when it was meant
to deal with the content of $(TARGET_DIR).

> Though I can't say I understand
> much of all the hoops you have to jump through to boot an RPi.

Well, it's pretty similar to the zedboard case (from what I see in the
zedboard readme):
  - a first partition, FAT16 or FAT32, with a bunch of files in there:
    - the GPU blob, its config file, the CPU init blob
    - the kernel, its command line (in a text file)
  - a second partition with the rootfs

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH v3 1/2] host-zynq-boot-bin: new package
  2015-07-03 21:51               ` Yann E. MORIN
@ 2015-07-03 23:44                 ` Jan Viktorin
  0 siblings, 0 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-07-03 23:44 UTC (permalink / raw)
  To: buildroot

Hello Arnout, Yann,

I am glad you are interested in this little feature. My original
goal was to deliver a simple out-of-the-box mechanism to easily
create a bootable system for Zedboard without any additional
steps and with the ability to turn it off easily if necessary.

I do not understand, how should this script be treated as
a bootloader stuff. I see it just as a helper host tool like the
uboot-tools are (a common host package). However, uboot-tools
is integrated quite deeply, it creates uImage (done by Kernel
build-system) and especially root file-system (done by Buildroot).
I would expect that zynq-boot-bin.py works in a similar way.

I have no clue about the TARGET_FINALIZE_HOOKS but it sounds
promising.

What I find quite a good idea is to use a post-<something>
script. But for that purpose, I thinks a working script in
the boards/avnet/zedboard exactly for this purpose should be
provided together with a preset inside the zedboard_defconfig
to use it as default. This creates an out-of-the-box working
configuration that is easily customizable. But what about other
Zynq-based boards (well, there is no one there at the moment,
but...)? Could they share the same script?

Another point that was omitted here (but it is described in the
readme.txt) is that the SPL searchs for uboot-dtb.img while booting.
This file is however not installed in the images directory. Instead,
user gets the u-boot.img that does not work together with the SPL
(at least for me). This is confusing... First, I do not get the working
SPL automatically, second, I do not get the right U-Boot image. From
this point of view, I'd like the original patch-based implementation :).
Is this also an issue for other boards?

I am about to:

* remove the _INSTALL_STAGING, _INSTALL_IMAGES settings,
* specify the license,
* put there the EXTRACT_CMDS to avoid failure when trying to extract
  the zynq-boot-bin.py as an tar archive (is this correct assumption?)
* put there the INSTALL_CMDS to install the zynq-boot-bin.py into
  HOST_DIR

The last step is not clear to me. I also found a kind of inspiration in
fs/cpio:

 34 $(BINARIES_DIR)/rootfs.cpio.uboot: $(BINARIES_DIR)/rootfs.cpio host-uboot-tools
 35         $(MKIMAGE) -A $(MKIMAGE_ARCH) -T ramdisk \
 36                 -C none -d $<$(ROOTFS_CPIO_COMPRESS_EXT) $@

Would it be possible to define similar rules in uboot.mk?

 $(BINARIES_DIR)/boot.bin: host-zynq-boot-bin
     python2 $(HOST_DIR)/usr/bin/zynq-boot-bin.py \
         -u $(@D)/spl/u-boot-spl.bin -o $@

Regards,
Jan

On Fri, 3 Jul 2015 23:51:04 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> Arnout, Jan, All,
> 
> On 2015-07-03 22:00 +0200, Arnout Vandecappelle spake thusly:
> > On 07/03/15 19:33, Yann E. MORIN wrote:
> > > On 2015-06-23 14:49 +0200, Jan Viktorin spake thusly:
> [--SNIP--]
> > > Since this is a host-only package, you need not specify either;
> > >   - install_staging already defaults to no,
> > >   - both are anyway only valid for target packages.
> > 
> >  But actually, it's not a host package, it's a target package. Took
> > me some time to realize that however :-) See below.
> 
> Still, I am not sure, see below. ;-)
> 
> [--SNIP--]
> > > That mught be an indication that it should depend on host-python,
> > > no?
> > 
> >  Actually, no, we actually require a system-python to exist. I
> > think it also needs to be python2 though we don't check for that.
> > And to be honest, I have no idea why we require it...
> 
> I don't know why we require it for packages, but we at least need it
> for the manual.
> 
> I was added way back in 2010 byy Thomas P. to fix #1531.
> 
> >  But I certainly wouldn't like to have to build a host-python just
> > to be able to build the boot loader... So I'm glad there's no
> > dependency on host-python.
> 
> Agreed.
> 
> > > Here's what I think should be done:
> [--SNIP--]
> 
> >  That's what Jan originally had, but I told him to do it this
> > way :-)
> > 
> >  You can view zynq-boot-bin as something which really should be
> > part of uboot. The only point of this "program" is to create the
> > bootloader. It will never be applied on anything except the
> > bootloader. It doesn't need any additional configuration or command
> > line arguments. So it would be quite pointless to burde the user
> > with writing that stuff in a post-build script.
> > 
> >  Perhaps, however, it should go into the boot/ directory instead of
> > packages. It is, after all, a pre-bootloader, like at91bootstrap.
> 
> Right, that would be a better location.
> 
> Still, I believe we should handle this tool as a host tool, to support
> users that build their bootloader outside of Buildroot (we already
> install similar tools for this reason).
> 
> > > Note: that's what we do for the Raspberry Pi, for example, where
> > > we install the 'mkknlimg' utility in $(HOST_DIR) and tell the
> > > user how to use it in the board readme file:
> > 
> >  I think the same approach could be taken there.
> 
> I respectfully disagree. ;-)
> 
> rpi-firmware installs a utility to add a header (really, a trailler)
> to the kernel image. Since the user can build his kernel outside
> Buildroot, we still want to leave him/her the possibility to tag the
> kernel properly; hence we install this utility in $(HOST_DIR), either
> when doing the SDcard manually, or from a post-image script.
> 
> I believe we are here in a similar situation with host-zynq-boot-bin.
> 
> However, we might be a bit more helpful here, so we have a way to
> automatically run those commands in a sane, generic way, like we have
> with TARGET_FINALIZE_HOOKS for target-finalize, but this time for
> images.
> 
> Note: we might _technically_ be able tore-use TARGET_FINALIZE_HOOKS,
> but I'm a bit uneasy to hijack it to deal with images, when it was
> meant to deal with the content of $(TARGET_DIR).
> 
> > Though I can't say I understand
> > much of all the hoops you have to jump through to boot an RPi.
> 
> Well, it's pretty similar to the zedboard case (from what I see in the
> zedboard readme):
>   - a first partition, FAT16 or FAT32, with a bunch of files in there:
>     - the GPU blob, its config file, the CPU init blob
>     - the kernel, its command line (in a text file)
>   - a second partition with the rootfs
> 
> Regards,
> Yann E. MORIN.
> 



-- 
  Jan Viktorin, PhD student   E-mail: iviktorin at fit.vutbr.cz
  DCS FIT VUT Brno, L310      Web: http://www.fit.vutbr.cz/~iviktorin
  Bozetechova 1, 612 66       Phone: +420 54114-1357
  Brno, Czech Republic

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

* [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools
  2015-07-03 17:40           ` Yann E. MORIN
@ 2015-07-03 23:52             ` Jan Viktorin
  0 siblings, 0 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-07-03 23:52 UTC (permalink / raw)
  To: buildroot

Hello Yann,

I see your point. I was just uncertain whether it was forgotten
or if there is some issue I did not see. Now, I see you are doing very
well, apologize. Recently, I've beated the contribution process (not
as easy as it looks like when just passively watching the mailing list),
probably I will beat also the review process after some time.

Regards
Jan

On Fri, 3 Jul 2015 19:40:05 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> Jan, All,
> 
> On 2015-07-02 14:40 +0200, Jan Viktorin spake thusly:
> > will be the proposed patchs applied in the near future?
> 
> Well, we need to review and test them...
> 
> We currently have 401 patches pending in our patch queue:
>     https://patchwork.ozlabs.org/project/buildroot/list/
> 
> Since there's not many of us doing reviews/tests, it takes time.
> 
> If you want to increase the likelyhood your patches are reviewed soon
> (and I've already started), you can help reduce the patch queue:
> 
>   - get a patch (not yours), apply it to your Buildroot tree, build a
>     configuration with that patch and test it (as much as you can, at
>     least build-test in various target configurations: arm, mips...
>     LE/BE, glibc/uClibc/musl, internal/external toolchain...) and
> report your findings to the list
> 
>   - get a patch (not yours), look at it, and see if it fits in the
>     Buildroot 'spirit' (code style, mandatory information,
> licensing...) and report to hte list.
> 
> See:
>     http://buildroot.net/downloads/manual/manual.html#_contributing_to_buildroot
>     http://buildroot.net/downloads/manual/manual.html#_reviewing_and_testing_patches
> 
> Regards,
> Yann E. MORIN.
> 

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

* [Buildroot] [PATCH v3 1/2] host-zynq-boot-bin: new package
  2015-06-23 12:49         ` [Buildroot] [PATCH v3 1/2] host-zynq-boot-bin: new package Jan Viktorin
  2015-07-03 17:33           ` Yann E. MORIN
@ 2015-07-04 14:07           ` Thomas Petazzoni
  2015-07-14 15:12             ` [Buildroot] [PATCH v4 0/7 Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  1 sibling, 1 reply; 42+ messages in thread
From: Thomas Petazzoni @ 2015-07-04 14:07 UTC (permalink / raw)
  To: buildroot

Dear Jan Viktorin,

On Tue, 23 Jun 2015 14:49:10 +0200, Jan Viktorin wrote:
> From: Jan Viktorin <viktorin@rehivetech.com>
> 
> The package creates file images/boot.bin to boot
> Xilinx Zynq based boards. It might not work with
> U-Boot older then 2015.07.
> 
> The script zynq-boot-bin.py is contained in the
> Xilinx repository of U-Boot (it is not in upstream).
> 
> Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>

After reading the discussion with Arnout and Yann, here is what I'd
personally prefer to see for this:

 * A host-zynq-boot-bin package, which only downloads and installs the
   Python script to $(HOST_DIR)/usr/bin. If the script is Python 2 only
   then you must make it depend on host-python, because the system
   Python can be either Python 2 or 3. If however, the script is Python
   2 and Python 3 compatible, there is no need to add a host-python
   dependency, because we can use the system provided Python
   interpreter.

 * One of the two following solutions:

   - An extension of the U-Boot Config.in + uboot.mk to optionally
     generated a Zynq image. It would add host-zynq-boot-bin in the
     dependencies of U-Boot, and call the Python script at the right
     time. Something along the lines of:

ifeq ($(BR2_TARGET_UBOOT_ZYNQ_IMAGE),y)
define UBOOT_GENERATE_ZYNQ_IMAGE
	$(HOST_DIR)/usr/bin/python2 $(HOST_DIR)/usr/bin/zynq-..py -o $(BINARIES_DIR)/...
endef
UBOOT_DEPENDENCIES += host-zynq-boot-bin
UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_GENERATE_ZYNQ_IMAGE
endif

   - Just not do anything special in U-Boot, and add an entry in
     menuconfig to enable the host-zynq-boot-bin package, and in your
     board configuration, write a post-build script that generates the
     final image.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH v4 0/7 Make Buildroot for Zedboard independent on Xilinx tools
  2015-07-04 14:07           ` Thomas Petazzoni
@ 2015-07-14 15:12             ` Jan Viktorin
  2015-07-14 15:14               ` [Buildroot] [PATCH v4 3/7] boot/uboot: Add support for dtb.img format Jan Viktorin
                                 ` (6 more replies)
  0 siblings, 7 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-07-14 15:12 UTC (permalink / raw)
  To: buildroot

Hello all,

here follows another version of the patch series. I have rewritten it
based on the previous discussion with Yann, Arnout and Thomas.

The patch 1 is unrelated, I did not know whether to post it alone
or if it is OK to put it here...

The host-zynq-boot-bin is just "download & install" now.

I've added a new output format of U-Boot to generate u-boot-dtb.img which
is booted by the SPL. The generation of the BOOT.BIN file is moved into
uboot.mk as suggested by Thomas. I am little bit unsure about the config
BR2_TARGET_UBOOT_ZYNQ_IMAGE (the depends on/select). To enable the BOOT.BIN
generation, the user must set the dtb.img format and enable SPL. However,
the zedboard_defconfig does it so it might be OK.

The zedboard related changes are slightly modified but almost the same.

Regards
Jan Viktorin


Jan Viktorin (7):
  docs/manual: Fix trivial typo
  host-zynq-boot-bin: new package
  boot/uboot: Add support for dtb.img format
  boot/uboot: Generate BOOT.BIN file when building for Xilinx Zynq
  zedboard: Generate BOOT.BIN automatically
  zedboard: Patch default U-Boot environment for zedboard
  zedboard: Update readme.txt to reflect BOOT.BIN generation

 board/avnet/zedboard/readme.txt                    | 84 ++++++++++------------
 ...eate-zedboard-specific-U-Boot-environment.patch | 46 ++++++++++++
 boot/uboot/Config.in                               | 16 +++++
 boot/uboot/uboot.mk                                | 12 ++++
 configs/zedboard_defconfig                         |  9 +--
 docs/manual/adding-packages-python.txt             |  2 +-
 package/Config.in.host                             |  1 +
 package/zynq-boot-bin/Config.in.host               |  8 +++
 package/zynq-boot-bin/zynq-boot-bin.hash           |  2 +
 package/zynq-boot-bin/zynq-boot-bin.mk             | 22 ++++++
 10 files changed, 151 insertions(+), 51 deletions(-)
 create mode 100644 board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch
 create mode 100644 package/zynq-boot-bin/Config.in.host
 create mode 100644 package/zynq-boot-bin/zynq-boot-bin.hash
 create mode 100644 package/zynq-boot-bin/zynq-boot-bin.mk

-- 
2.4.5




-- 
   Jan Viktorin                  E-mail: Viktorin at RehiveTech.com
   System Architect              Web:    www.RehiveTech.com
   RehiveTech                    Phone:  +420 606 201 868
   Brno, Czech Republic

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

* [Buildroot] [PATCH v4 3/7] boot/uboot: Add support for dtb.img format
  2015-07-14 15:12             ` [Buildroot] [PATCH v4 0/7 Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
@ 2015-07-14 15:14               ` Jan Viktorin
  2015-07-14 18:51                 ` Maxime Hadjinlian
  2015-07-14 22:09                 ` Thomas Petazzoni
  2015-07-14 15:14               ` [Buildroot] [PATCH v4 2/7] host-zynq-boot-bin: new package Jan Viktorin
                                 ` (5 subsequent siblings)
  6 siblings, 2 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-07-14 15:14 UTC (permalink / raw)
  To: buildroot

Allow to generate u-boot-dtb.img. This is the same format
as u-boot.img, however, it contains a built-in device-tree.
This file is being loaded by the U-Boot SPL.

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 boot/uboot/Config.in | 3 +++
 boot/uboot/uboot.mk  | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
index fa1741c..0554544 100644
--- a/boot/uboot/Config.in
+++ b/boot/uboot/Config.in
@@ -109,6 +109,9 @@ config BR2_TARGET_UBOOT_FORMAT_BIN
 config BR2_TARGET_UBOOT_FORMAT_IMG
 	bool "u-boot.img"
 
+config BR2_TARGET_UBOOT_FORMAT_DTB_IMG
+	bool "u-boot-dtb.img"
+
 config BR2_TARGET_UBOOT_FORMAT_IMX
 	bool "u-boot.imx"
 
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index 2cfff28..e064a8e 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -47,6 +47,8 @@ else ifeq ($(BR2_TARGET_UBOOT_FORMAT_NAND_BIN),y)
 UBOOT_BIN = u-boot-nand.bin
 else ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMG),y)
 UBOOT_BIN = u-boot.img
+else ifeq ($(BR2_TARGET_UBOOT_FORMAT_DTB_IMG),y)
+UBOOT_BIN = u-boot-dtb.img
 else ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMX),y)
 UBOOT_BIN = u-boot.imx
 else ifeq ($(BR2_TARGET_UBOOT_FORMAT_SB),y)
-- 
2.4.5




-- 
   Jan Viktorin                  E-mail: Viktorin at RehiveTech.com
   System Architect              Web:    www.RehiveTech.com
   RehiveTech                    Phone:  +420 606 201 868
   Brno, Czech Republic

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

* [Buildroot] [PATCH v4 2/7] host-zynq-boot-bin: new package
  2015-07-14 15:12             ` [Buildroot] [PATCH v4 0/7 Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  2015-07-14 15:14               ` [Buildroot] [PATCH v4 3/7] boot/uboot: Add support for dtb.img format Jan Viktorin
@ 2015-07-14 15:14               ` Jan Viktorin
  2015-07-18 21:18                 ` Thomas Petazzoni
  2015-07-14 15:14               ` [Buildroot] [PATCH v4 5/7] zedboard: Generate BOOT.BIN automatically Jan Viktorin
                                 ` (4 subsequent siblings)
  6 siblings, 1 reply; 42+ messages in thread
From: Jan Viktorin @ 2015-07-14 15:14 UTC (permalink / raw)
  To: buildroot

The package provides a Python script that can create
the file BOOT.BIN to boot Xilinx Zynq based boards.

The script zynq-boot-bin.py is contained in the
Xilinx repository of U-Boot (it is not in upstream).

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 package/Config.in.host                   |  1 +
 package/zynq-boot-bin/Config.in.host     |  8 ++++++++
 package/zynq-boot-bin/zynq-boot-bin.hash |  2 ++
 package/zynq-boot-bin/zynq-boot-bin.mk   | 22 ++++++++++++++++++++++
 4 files changed, 33 insertions(+)
 create mode 100644 package/zynq-boot-bin/Config.in.host
 create mode 100644 package/zynq-boot-bin/zynq-boot-bin.hash
 create mode 100644 package/zynq-boot-bin/zynq-boot-bin.mk

diff --git a/package/Config.in.host b/package/Config.in.host
index 1e047aa..030c91f 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -27,5 +27,6 @@ menu "Host utilities"
 	source "package/sunxi-tools/Config.in.host"
 	source "package/uboot-tools/Config.in.host"
 	source "package/util-linux/Config.in.host"
+	source "package/zynq-boot-bin/Config.in.host"
 
 endmenu
diff --git a/package/zynq-boot-bin/Config.in.host b/package/zynq-boot-bin/Config.in.host
new file mode 100644
index 0000000..bc151a7
--- /dev/null
+++ b/package/zynq-boot-bin/Config.in.host
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_HOST_ZYNQ_BOOT_BIN
+	bool "host zynq-boot-bin"
+	depends on BR2_TARGET_UBOOT_SPL
+	help
+	  This is a simple Python script that creates BOOT.BIN file
+	  to boot Xilinx Zynq based on U-Boot's SPL.
+
+	  https://github.com/Xilinx/u-boot-xlnx
diff --git a/package/zynq-boot-bin/zynq-boot-bin.hash b/package/zynq-boot-bin/zynq-boot-bin.hash
new file mode 100644
index 0000000..0bc23de
--- /dev/null
+++ b/package/zynq-boot-bin/zynq-boot-bin.hash
@@ -0,0 +1,2 @@
+# From https://raw.githubusercontent.com/Xilinx/u-boot-xlnx
+sha1	940331ee02b0007099effa61e382fe7ea4174054	zynq-boot-bin.py
diff --git a/package/zynq-boot-bin/zynq-boot-bin.mk b/package/zynq-boot-bin/zynq-boot-bin.mk
new file mode 100644
index 0000000..3e9d63e
--- /dev/null
+++ b/package/zynq-boot-bin/zynq-boot-bin.mk
@@ -0,0 +1,22 @@
+################################################################################
+#
+# zynq-boot-bin
+#
+################################################################################
+
+ZYNQ_BOOT_BIN_VERSION = xilinx-v2015.1
+ZYNQ_BOOT_BIN_SOURCE = zynq-boot-bin.py
+ZYNQ_BOOT_BIN_SITE = https://raw.githubusercontent.com/Xilinx/u-boot-xlnx/$(ZYNQ_BOOT_BIN_VERSION)/tools
+ZYNQ_BOOT_BIN_LICENSE = GPLv3+
+
+HOST_ZYNQ_BOOT_BIN_DEPENDENCIES = host-python
+
+define HOST_ZYNQ_BOOT_BIN_EXTRACT_CMDS
+	@cp $(DL_DIR)/$(ZYNQ_BOOT_BIN_SOURCE) $(@D)
+endef
+
+define HOST_ZYNQ_BOOT_BIN_INSTALL_CMDS
+	@cp $(@D)/$(ZYNQ_BOOT_BIN_SOURCE) $(HOST_DIR)/usr/bin/$(ZYNQ_BOOT_BIN_SOURCE)
+endef
+
+$(eval $(host-generic-package))
-- 
2.4.5




-- 
   Jan Viktorin                  E-mail: Viktorin at RehiveTech.com
   System Architect              Web:    www.RehiveTech.com
   RehiveTech                    Phone:  +420 606 201 868
   Brno, Czech Republic

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

* [Buildroot] [PATCH v4 5/7] zedboard: Generate BOOT.BIN automatically
  2015-07-14 15:12             ` [Buildroot] [PATCH v4 0/7 Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
  2015-07-14 15:14               ` [Buildroot] [PATCH v4 3/7] boot/uboot: Add support for dtb.img format Jan Viktorin
  2015-07-14 15:14               ` [Buildroot] [PATCH v4 2/7] host-zynq-boot-bin: new package Jan Viktorin
@ 2015-07-14 15:14               ` Jan Viktorin
  2015-07-14 15:16               ` [Buildroot] [PATCH v4 4/7] boot/uboot: Generate BOOT.BIN file when building for Xilinx Zynq Jan Viktorin
                                 ` (3 subsequent siblings)
  6 siblings, 0 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-07-14 15:14 UTC (permalink / raw)
  To: buildroot

The U-Boot v2015.07 builds working SPL without a manual
intervention. The BOOT.BIN is generated from the standard
SPL so no BR2_TARGET_UBOOT_SPL_NAME redefinition is needed.
The SPL requires the u-boot-dtb.img file to boot properly.

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 configs/zedboard_defconfig | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/configs/zedboard_defconfig b/configs/zedboard_defconfig
index 76688e9..cd6436c 100644
--- a/configs/zedboard_defconfig
+++ b/configs/zedboard_defconfig
@@ -19,8 +19,8 @@ BR2_TARGET_ROOTFS_CPIO_UIMAGE=y
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BOARDNAME="zynq_zed"
 BR2_TARGET_UBOOT_CUSTOM_GIT=y
-BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/Xilinx/u-boot-xlnx.git"
-BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="xilinx-v2014.1"
-BR2_TARGET_UBOOT_FORMAT_IMG=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.denx.de/u-boot.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="v2015.07-rc2"
+BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y
 BR2_TARGET_UBOOT_SPL=y
-BR2_TARGET_UBOOT_SPL_NAME="boot.bin"
+BR2_TARGET_UBOOT_ZYNQ_IMAGE=y
-- 
2.4.5




-- 
   Jan Viktorin                  E-mail: Viktorin at RehiveTech.com
   System Architect              Web:    www.RehiveTech.com
   RehiveTech                    Phone:  +420 606 201 868
   Brno, Czech Republic

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

* [Buildroot] [PATCH v4 4/7] boot/uboot: Generate BOOT.BIN file when building for Xilinx Zynq
  2015-07-14 15:12             ` [Buildroot] [PATCH v4 0/7 Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
                                 ` (2 preceding siblings ...)
  2015-07-14 15:14               ` [Buildroot] [PATCH v4 5/7] zedboard: Generate BOOT.BIN automatically Jan Viktorin
@ 2015-07-14 15:16               ` Jan Viktorin
  2015-07-18 21:19                 ` Thomas Petazzoni
  2015-07-14 15:16               ` [Buildroot] [PATCH v4 6/7] zedboard: Patch default U-Boot environment for zedboard Jan Viktorin
                                 ` (2 subsequent siblings)
  6 siblings, 1 reply; 42+ messages in thread
From: Jan Viktorin @ 2015-07-14 15:16 UTC (permalink / raw)
  To: buildroot

This commit integrates generation of a bootable image
for Xilinx Zynq. The generation is independent on Xilinx
flow and utilizes the host-zynq-boot-bin package. The only
required step is to generate a proper U-Boot SPL (instead
of the FSBL).

The SPL generation might work when providing the working
ps7_init.c file to U-Boot. However, from U-Boot 2015.07
a set of generic ps7_init.c files is included and used to
build the U-Boot SPL for various boards. The ps7_init.c file
has been released under GNU/GPL license for this purpose.
For details, see

http://lists.denx.de/pipermail/u-boot/2015-April/210664.html

The SPL searchs for u-boot-dtb.img when booting so we
enforce using of the BR2_TARGET_UBOOT_FORMAT_DTB_IMG format.

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 boot/uboot/Config.in | 13 +++++++++++++
 boot/uboot/uboot.mk  | 10 ++++++++++
 2 files changed, 23 insertions(+)

diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
index 0554544..420573e 100644
--- a/boot/uboot/Config.in
+++ b/boot/uboot/Config.in
@@ -272,6 +272,19 @@ config BR2_TARGET_UBOOT_SPL_NAME
 	  u-boot build. For most platform it is spl/u-boot-spl.bin
 	  but not always. It is MLO on OMAP for example.
 
+config BR2_TARGET_UBOOT_ZYNQ_IMAGE
+	bool "Generate image for Xilinx Zynq"
+	depends on BR2_arm
+	depends on BR2_TARGET_UBOOT_SPL
+	depends on BR2_TARGET_UBOOT_FORMAT_DTB_IMG
+	select BR2_PACKAGE_HOST_ZYNQ_BOOT_BIN
+	help
+	 Generate the BOOT.BIN file from U-Boot's SPL. The image
+	 boots the Xilinx Zynq chip without any FPGA bitstream.
+	 A bitstream can be loaded by the U-Boot. The SPL searchs
+	 for u-boot-dtb.img file so this U-Boot format is required
+	 to be set.
+
 menuconfig BR2_TARGET_UBOOT_ENVIMAGE
 	bool "Environment image"
 	help
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index e064a8e..b51bf56 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -182,6 +182,16 @@ UBOOT_POST_BUILD_HOOKS += UBOOT_BUILD_OMAP_IFT
 UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_INSTALL_OMAP_IFT_IMAGE
 endif
 
+ifeq ($(BR2_TARGET_UBOOT_ZYNQ_IMAGE),y)
+define UBOOT_GENERATE_ZYNQ_IMAGE
+	$(HOST_DIR)/usr/bin/python2 $(HOST_DIR)/usr/bin/zynq-boot-bin.py \
+		-u $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME))     \
+		-o $(BINARIES_DIR)/BOOT.BIN
+endef
+UBOOT_DEPENDENCIES += host-zynq-boot-bin
+UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_GENERATE_ZYNQ_IMAGE
+endif
+
 ifeq ($(BR2_TARGET_UBOOT_ENVIMAGE),y)
 ifeq ($(BR_BUILDING),y)
 ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)),)
-- 
2.4.5




-- 
   Jan Viktorin                  E-mail: Viktorin at RehiveTech.com
   System Architect              Web:    www.RehiveTech.com
   RehiveTech                    Phone:  +420 606 201 868
   Brno, Czech Republic

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

* [Buildroot] [PATCH v4 6/7] zedboard: Patch default U-Boot environment for zedboard
  2015-07-14 15:12             ` [Buildroot] [PATCH v4 0/7 Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
                                 ` (3 preceding siblings ...)
  2015-07-14 15:16               ` [Buildroot] [PATCH v4 4/7] boot/uboot: Generate BOOT.BIN file when building for Xilinx Zynq Jan Viktorin
@ 2015-07-14 15:16               ` Jan Viktorin
  2015-07-18 21:19                 ` Thomas Petazzoni
  2015-07-14 15:16               ` [Buildroot] [PATCH v4 7/7] zedboard: Update readme.txt to reflect BOOT.BIN generation Jan Viktorin
  2015-07-14 15:17               ` [Buildroot] [PATCH v4 1/7] docs/manual: Fix trivial typo Jan Viktorin
  6 siblings, 1 reply; 42+ messages in thread
From: Jan Viktorin @ 2015-07-14 15:16 UTC (permalink / raw)
  To: buildroot

This patch changes the U-Boot's default environment to
boot Zedboard out-of-the-box from SD card.

The sdboot procedure tries to load a file system.bit into
the Zynq's PL (only if it exists). It is also possible to
alter the booting by an uEnv.txt file located on your SD card.
The uEnv.txt is a plain text file with <key>=<value> pairs
one per line.

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 ...eate-zedboard-specific-U-Boot-environment.patch | 46 ++++++++++++++++++++++
 configs/zedboard_defconfig                         |  1 +
 2 files changed, 47 insertions(+)
 create mode 100644 board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch

diff --git a/board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch b/board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch
new file mode 100644
index 0000000..1971503
--- /dev/null
+++ b/board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch
@@ -0,0 +1,46 @@
+From a4c0058967a551385da5e16d2787d9f704cab225 Mon Sep 17 00:00:00 2001
+From: Jan Viktorin <viktorin@rehivetech.com>
+Date: Thu, 18 Jun 2015 16:26:02 +0200
+Subject: [PATCH 2/2] zynq: Create zedboard-specific U-Boot environment
+
+---
+ include/configs/zynq_zed.h | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+
+diff --git a/include/configs/zynq_zed.h b/include/configs/zynq_zed.h
+index 946de95..2400a88 100644
+--- a/include/configs/zynq_zed.h
++++ b/include/configs/zynq_zed.h
+@@ -24,4 +24,29 @@
+
+ #include <configs/zynq-common.h>
+
++#undef CONFIG_EXTRA_ENV_SETTINGS
++#define CONFIG_EXTRA_ENV_SETTINGS \
++	"envload=mmc info && if fatload mmc 0 0x1000 uEnv.txt;"\
++	" then echo Importing uEnv.txt; env import -t 0x1000"  \
++	" $filesize; fi;\0"                                    \
++	"bootcmd=run $modeboot\0"                              \
++	"modeboot=sdboot\0"                                    \
++	"baudrate=115200\0"                                    \
++	"bootenv=uEnv.txt\0"                                   \
++	"devicetree_image=zynq-zed.dtb\0"                      \
++	"kernel_image=uImage\0"                                \
++	"ramdisk_image=rootfs.cpio.uboot\0"                    \
++	"fpga_image=system.bit\0"                              \
++	"sdboot=echo Booting from SD...;"                      \
++	" run envload; run fpgaboot;"                          \
++	" fatload mmc 0 0x1000000 ${kernel_image}"             \
++	" && fatload mmc 0 0x2000000 ${ramdisk_image}"         \
++	" && fatload mmc 0 0x3000000 ${devicetree_image}"      \
++	" && bootm 0x1000000 0x2000000 0x3000000\0"            \
++	"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;\0"
++
+ #endif /* __CONFIG_ZYNQ_ZED_H */
+--
+2.4.3
+
diff --git a/configs/zedboard_defconfig b/configs/zedboard_defconfig
index cd6436c..99720db 100644
--- a/configs/zedboard_defconfig
+++ b/configs/zedboard_defconfig
@@ -21,6 +21,7 @@ BR2_TARGET_UBOOT_BOARDNAME="zynq_zed"
 BR2_TARGET_UBOOT_CUSTOM_GIT=y
 BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.denx.de/u-boot.git"
 BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="v2015.07-rc2"
+BR2_TARGET_UBOOT_PATCH="$(TOPDIR)/board/avnet/zedboard/uboot"
 BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y
 BR2_TARGET_UBOOT_SPL=y
 BR2_TARGET_UBOOT_ZYNQ_IMAGE=y
-- 
2.4.5




-- 
   Jan Viktorin                  E-mail: Viktorin at RehiveTech.com
   System Architect              Web:    www.RehiveTech.com
   RehiveTech                    Phone:  +420 606 201 868
   Brno, Czech Republic

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

* [Buildroot] [PATCH v4 7/7] zedboard: Update readme.txt to reflect BOOT.BIN generation
  2015-07-14 15:12             ` [Buildroot] [PATCH v4 0/7 Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
                                 ` (4 preceding siblings ...)
  2015-07-14 15:16               ` [Buildroot] [PATCH v4 6/7] zedboard: Patch default U-Boot environment for zedboard Jan Viktorin
@ 2015-07-14 15:16               ` Jan Viktorin
  2015-07-18 21:19                 ` Thomas Petazzoni
  2015-07-14 15:17               ` [Buildroot] [PATCH v4 1/7] docs/manual: Fix trivial typo Jan Viktorin
  6 siblings, 1 reply; 42+ messages in thread
From: Jan Viktorin @ 2015-07-14 15:16 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 board/avnet/zedboard/readme.txt | 84 +++++++++++++++++++----------------------
 1 file changed, 38 insertions(+), 46 deletions(-)

diff --git a/board/avnet/zedboard/readme.txt b/board/avnet/zedboard/readme.txt
index a3f1f3e..e0ce024 100644
--- a/board/avnet/zedboard/readme.txt
+++ b/board/avnet/zedboard/readme.txt
@@ -5,68 +5,60 @@ System-On-Chip.
 Zedboard information including schematics, reference designs, and manuals are
 available from http://www.zedboard.org .
 
-The U-Boot firmware for the Xilinx Zynq All Programmable SoC depends
-on some proprietary code. This dependency consists of a pair of
-files are available from the Xilinx SDK installation.
+Steps to create a working system for Zedboard:
 
-You will need these files from Xilinx SDK installation to generate
-the U-Boot firmware:
-	ps7_init.c
-	ps7_init.h
+1) make zedboard_defconfig
+2) make
+3) copy files BOOT.BIN, u-boot-dtb.img, rootfs.cpio.uboot,
+	uImage, zynq-zed.dtb into your SD card
+4) boot your Zedboard
 
-Buildroot will create the following files and place them in the
-<output>/images directory.
-	zynq-zed.dtb
-	rootfs.cpio.uboot
-	uImage
-	u-boot.img
-	boot.bin
+The expected output:
 
+ U-Boot SPL 2015.07-rc2 (Jun 18 2015 - 16:42:58)
+ mmc boot
+ 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
 
-uboot.bin  -- U-Boot SPL w/ Xilinx boot.bin wrapper
----------------------------------------------------
+ U-Boot 2015.07-rc2 (Jun 18 2015 - 16:42:58 +0200)
 
-Due to licensing issues, the files ps7_init.c/h are not able to be
-distributed with the U-Boot source code.  These files are required to make a
-boot.bin file.
-
-If you already have the Xilinx tools installed, the following sequence will
-unpack, patch and build the rfs, kernel, uboot, and uboot-spl.
-
-make zedboard_defconfig
-make uboot-patch
-cp ${XILINX}/ISE_DS/EDK/sw/lib/hwplatform_templates/zed_hw_platform/ps7_init.{c,h} \
-output/build/uboot-xilinx-v2014.1/board/xilinx/zynq/
-
-After copying these files into the U-Boot source tree, you can
-continue the build with:
-
-make
-
-*Notice*
-While the build will successfully complete without the ps7_init.*
-files,  the uboot.bin file generated by this configuration will not
-function properly on the Zedboard.  Therefore, it is imperative that
-the ps7_init.* files be copied into the U-Boot source tree any time
-the clean, or uboot-dirclean targets are made.
+ Model: Zynq ZED Board
+ I2C:   ready
+ DRAM:  ECC disabled 512 MiB
+ MMC:   zynq_sdhci: 0
+ Using default environment
+ ...
 
+When using an older U-Boot then 2015.07, a working ps7_init.c
+file is required to be installed into the U-Boot directory
+structure. From 2015.07, the major Zynq-based boards are
+supported without any manual intervention.
 
 Resulting system
 ----------------
 A FAT32 partition should be created at the beginning of the SD Card
 and the following files should be installed:
-	/boot.bin
-	/devicetree.dtb
+	/BOOT.BIN
+	/zynq-zed.dtb
 	/uImage
-	/uramdisk.image.gz
-	/u-boot.img
+	/rootfs-cpio.uboot
+	/u-boot-dtb.img
 
 
 All needed files can be taken from output/images/
 
-boot.bin, uImage and u-boot.img are direct copies of the same files
+BOOT.BIN, uImage and u-boot-dtb.img are direct copies of the same files
 available on output/images/
 
-devicetree.dtb is just zynq-zed.dtb renamed.
+There is a patch attached that redefines the U-Boot's environment
+to work with Buildroot out-of-the-box.
+
+You can alter the booting procedure by creating a file uEnv.txt
+in the root of the SD card. It is a plain text file in format
+<key>=<value> one per line:
 
-uramdisk.image.gz is rootfs.cpio.uboot renamed
+kernel_image=myimage
+modeboot=myboot
+myboot=...
-- 
2.4.5




-- 
   Jan Viktorin                  E-mail: Viktorin at RehiveTech.com
   System Architect              Web:    www.RehiveTech.com
   RehiveTech                    Phone:  +420 606 201 868
   Brno, Czech Republic

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

* [Buildroot] [PATCH v4 1/7] docs/manual: Fix trivial typo
  2015-07-14 15:12             ` [Buildroot] [PATCH v4 0/7 Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
                                 ` (5 preceding siblings ...)
  2015-07-14 15:16               ` [Buildroot] [PATCH v4 7/7] zedboard: Update readme.txt to reflect BOOT.BIN generation Jan Viktorin
@ 2015-07-14 15:17               ` Jan Viktorin
  2015-07-14 18:13                 ` Maxime Hadjinlian
  2015-07-14 21:57                 ` Thomas Petazzoni
  6 siblings, 2 replies; 42+ messages in thread
From: Jan Viktorin @ 2015-07-14 15:17 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 docs/manual/adding-packages-python.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/manual/adding-packages-python.txt b/docs/manual/adding-packages-python.txt
index f81d625..588dbf8 100644
--- a/docs/manual/adding-packages-python.txt
+++ b/docs/manual/adding-packages-python.txt
@@ -143,7 +143,7 @@ therefore only use a few of them, or none.
 * +HOST_PYTHON_FOO_NEEDS_HOST_PYTHON+, to define the host python
   interpreter. The usage of this variable is limited to host
   packages. The two supported value are +python2+ and +python3+. It
-  will ensures the right host python package is available and will
+  will ensure the right host python package is available and will
   invoke it for the build. If some build steps are overloaded, the
   right python interpreter must be explicitly called in the commands.
 
-- 
2.4.5




-- 
   Jan Viktorin                  E-mail: Viktorin at RehiveTech.com
   System Architect              Web:    www.RehiveTech.com
   RehiveTech                    Phone:  +420 606 201 868
   Brno, Czech Republic

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

* [Buildroot] [PATCH v4 1/7] docs/manual: Fix trivial typo
  2015-07-14 15:17               ` [Buildroot] [PATCH v4 1/7] docs/manual: Fix trivial typo Jan Viktorin
@ 2015-07-14 18:13                 ` Maxime Hadjinlian
  2015-07-14 21:57                 ` Thomas Petazzoni
  1 sibling, 0 replies; 42+ messages in thread
From: Maxime Hadjinlian @ 2015-07-14 18:13 UTC (permalink / raw)
  To: buildroot

Acked-by "Maxime Hadjinlian" <maxime.hadjinlian@gmail.com>

On Tue, Jul 14, 2015 at 5:17 PM, Jan Viktorin <viktorin@rehivetech.com> wrote:
> Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
> ---
>  docs/manual/adding-packages-python.txt | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/docs/manual/adding-packages-python.txt b/docs/manual/adding-packages-python.txt
> index f81d625..588dbf8 100644
> --- a/docs/manual/adding-packages-python.txt
> +++ b/docs/manual/adding-packages-python.txt
> @@ -143,7 +143,7 @@ therefore only use a few of them, or none.
>  * +HOST_PYTHON_FOO_NEEDS_HOST_PYTHON+, to define the host python
>    interpreter. The usage of this variable is limited to host
>    packages. The two supported value are +python2+ and +python3+. It
> -  will ensures the right host python package is available and will
> +  will ensure the right host python package is available and will
>    invoke it for the build. If some build steps are overloaded, the
>    right python interpreter must be explicitly called in the commands.
>
> --
> 2.4.5
>
>
>
>
> --
>    Jan Viktorin                  E-mail: Viktorin at RehiveTech.com
>    System Architect              Web:    www.RehiveTech.com
>    RehiveTech                    Phone:  +420 606 201 868
>    Brno, Czech Republic
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH v4 3/7] boot/uboot: Add support for dtb.img format
  2015-07-14 15:14               ` [Buildroot] [PATCH v4 3/7] boot/uboot: Add support for dtb.img format Jan Viktorin
@ 2015-07-14 18:51                 ` Maxime Hadjinlian
  2015-07-14 22:09                 ` Thomas Petazzoni
  1 sibling, 0 replies; 42+ messages in thread
From: Maxime Hadjinlian @ 2015-07-14 18:51 UTC (permalink / raw)
  To: buildroot

Hi Jan, all

On Tue, Jul 14, 2015 at 5:14 PM, Jan Viktorin <viktorin@rehivetech.com> wrote:
> Allow to generate u-boot-dtb.img. This is the same format
> as u-boot.img, however, it contains a built-in device-tree.
> This file is being loaded by the U-Boot SPL.
>
> Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
> ---
>  boot/uboot/Config.in | 3 +++
>  boot/uboot/uboot.mk  | 2 ++
>  2 files changed, 5 insertions(+)
>
> diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
> index fa1741c..0554544 100644
> --- a/boot/uboot/Config.in
> +++ b/boot/uboot/Config.in
> @@ -109,6 +109,9 @@ config BR2_TARGET_UBOOT_FORMAT_BIN
>  config BR2_TARGET_UBOOT_FORMAT_IMG
>         bool "u-boot.img"
>
> +config BR2_TARGET_UBOOT_FORMAT_DTB_IMG
> +       bool "u-boot-dtb.img"
> +
>  config BR2_TARGET_UBOOT_FORMAT_IMX
>         bool "u-boot.imx"
>
> diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
> index 2cfff28..e064a8e 100644
> --- a/boot/uboot/uboot.mk
> +++ b/boot/uboot/uboot.mk
> @@ -47,6 +47,8 @@ else ifeq ($(BR2_TARGET_UBOOT_FORMAT_NAND_BIN),y)
>  UBOOT_BIN = u-boot-nand.bin
>  else ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMG),y)
>  UBOOT_BIN = u-boot.img
> +else ifeq ($(BR2_TARGET_UBOOT_FORMAT_DTB_IMG),y)
> +UBOOT_BIN = u-boot-dtb.img
>  else ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMX),y)
>  UBOOT_BIN = u-boot.imx
>  else ifeq ($(BR2_TARGET_UBOOT_FORMAT_SB),y)
> --
> 2.4.5
>
I agree with your patch, but I would prefer dtb_img entry to be before IMG.
I know that the file is not properly organized but that's not a reason
to worsen it.
Other than that (which could be fixed when merged) it's fine by me.

Reviewed-by "Maxime Hadjinlian" <maxime.hadjinlian@gmail.com>
>
>
>
> --
>    Jan Viktorin                  E-mail: Viktorin at RehiveTech.com
>    System Architect              Web:    www.RehiveTech.com
>    RehiveTech                    Phone:  +420 606 201 868
>    Brno, Czech Republic
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH v4 1/7] docs/manual: Fix trivial typo
  2015-07-14 15:17               ` [Buildroot] [PATCH v4 1/7] docs/manual: Fix trivial typo Jan Viktorin
  2015-07-14 18:13                 ` Maxime Hadjinlian
@ 2015-07-14 21:57                 ` Thomas Petazzoni
  1 sibling, 0 replies; 42+ messages in thread
From: Thomas Petazzoni @ 2015-07-14 21:57 UTC (permalink / raw)
  To: buildroot

Dear Jan Viktorin,

On Tue, 14 Jul 2015 17:17:20 +0200, Jan Viktorin wrote:
> Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
> ---
>  docs/manual/adding-packages-python.txt | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Applied, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH v4 3/7] boot/uboot: Add support for dtb.img format
  2015-07-14 15:14               ` [Buildroot] [PATCH v4 3/7] boot/uboot: Add support for dtb.img format Jan Viktorin
  2015-07-14 18:51                 ` Maxime Hadjinlian
@ 2015-07-14 22:09                 ` Thomas Petazzoni
  1 sibling, 0 replies; 42+ messages in thread
From: Thomas Petazzoni @ 2015-07-14 22:09 UTC (permalink / raw)
  To: buildroot

Dear Jan Viktorin,

On Tue, 14 Jul 2015 17:14:01 +0200, Jan Viktorin wrote:
> Allow to generate u-boot-dtb.img. This is the same format
> as u-boot.img, however, it contains a built-in device-tree.
> This file is being loaded by the U-Boot SPL.
> 
> Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
> ---
>  boot/uboot/Config.in | 3 +++
>  boot/uboot/uboot.mk  | 2 ++
>  2 files changed, 5 insertions(+)

Applied, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH v4 2/7] host-zynq-boot-bin: new package
  2015-07-14 15:14               ` [Buildroot] [PATCH v4 2/7] host-zynq-boot-bin: new package Jan Viktorin
@ 2015-07-18 21:18                 ` Thomas Petazzoni
  0 siblings, 0 replies; 42+ messages in thread
From: Thomas Petazzoni @ 2015-07-18 21:18 UTC (permalink / raw)
  To: buildroot

Dear Jan Viktorin,

On Tue, 14 Jul 2015 17:14:13 +0200, Jan Viktorin wrote:
> The package provides a Python script that can create
> the file BOOT.BIN to boot Xilinx Zynq based boards.
> 
> The script zynq-boot-bin.py is contained in the
> Xilinx repository of U-Boot (it is not in upstream).
> 
> Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
> ---
>  package/Config.in.host                   |  1 +
>  package/zynq-boot-bin/Config.in.host     |  8 ++++++++
>  package/zynq-boot-bin/zynq-boot-bin.hash |  2 ++
>  package/zynq-boot-bin/zynq-boot-bin.mk   | 22 ++++++++++++++++++++++
>  4 files changed, 33 insertions(+)
>  create mode 100644 package/zynq-boot-bin/Config.in.host
>  create mode 100644 package/zynq-boot-bin/zynq-boot-bin.hash
>  create mode 100644 package/zynq-boot-bin/zynq-boot-bin.mk

I've done quite a few changes:

    [Thomas:
     - remove appearance of the package in menuconfig, U-Boot will depend
       on it directly, so there's no need for it to appear in menuconfig
     - use $(INSTALL) instead of cp for the installation
     - remove @ before the extract and install commands.]

and applied the patch. Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH v4 4/7] boot/uboot: Generate BOOT.BIN file when building for Xilinx Zynq
  2015-07-14 15:16               ` [Buildroot] [PATCH v4 4/7] boot/uboot: Generate BOOT.BIN file when building for Xilinx Zynq Jan Viktorin
@ 2015-07-18 21:19                 ` Thomas Petazzoni
  0 siblings, 0 replies; 42+ messages in thread
From: Thomas Petazzoni @ 2015-07-18 21:19 UTC (permalink / raw)
  To: buildroot

Dear Jan Viktorin,

On Tue, 14 Jul 2015 17:16:02 +0200, Jan Viktorin wrote:
> This commit integrates generation of a bootable image
> for Xilinx Zynq. The generation is independent on Xilinx
> flow and utilizes the host-zynq-boot-bin package. The only
> required step is to generate a proper U-Boot SPL (instead
> of the FSBL).
> 
> The SPL generation might work when providing the working
> ps7_init.c file to U-Boot. However, from U-Boot 2015.07
> a set of generic ps7_init.c files is included and used to
> build the U-Boot SPL for various boards. The ps7_init.c file
> has been released under GNU/GPL license for this purpose.
> For details, see
> 
> http://lists.denx.de/pipermail/u-boot/2015-April/210664.html
> 
> The SPL searchs for u-boot-dtb.img when booting so we
> enforce using of the BR2_TARGET_UBOOT_FORMAT_DTB_IMG format.
> 
> Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
> ---
>  boot/uboot/Config.in | 13 +++++++++++++
>  boot/uboot/uboot.mk  | 10 ++++++++++
>  2 files changed, 23 insertions(+)

I've made one change:

    [Thomas: remove select of BR2_PACKAGE_HOST_ZYNQ_BOOT_BIN, since this
    option no longer exists.]
    
and applied the patch. Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH v4 6/7] zedboard: Patch default U-Boot environment for zedboard
  2015-07-14 15:16               ` [Buildroot] [PATCH v4 6/7] zedboard: Patch default U-Boot environment for zedboard Jan Viktorin
@ 2015-07-18 21:19                 ` Thomas Petazzoni
  0 siblings, 0 replies; 42+ messages in thread
From: Thomas Petazzoni @ 2015-07-18 21:19 UTC (permalink / raw)
  To: buildroot

Dear Jan Viktorin,

On Tue, 14 Jul 2015 17:16:08 +0200, Jan Viktorin wrote:
> This patch changes the U-Boot's default environment to
> boot Zedboard out-of-the-box from SD card.
> 
> The sdboot procedure tries to load a file system.bit into
> the Zynq's PL (only if it exists). It is also possible to
> alter the booting by an uEnv.txt file located on your SD card.
> The uEnv.txt is a plain text file with <key>=<value> pairs
> one per line.
> 
> Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
> ---
>  ...eate-zedboard-specific-U-Boot-environment.patch | 46 ++++++++++++++++++++++
>  configs/zedboard_defconfig                         |  1 +
>  2 files changed, 47 insertions(+)
>  create mode 100644 board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch

Applied, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH v4 7/7] zedboard: Update readme.txt to reflect BOOT.BIN generation
  2015-07-14 15:16               ` [Buildroot] [PATCH v4 7/7] zedboard: Update readme.txt to reflect BOOT.BIN generation Jan Viktorin
@ 2015-07-18 21:19                 ` Thomas Petazzoni
  0 siblings, 0 replies; 42+ messages in thread
From: Thomas Petazzoni @ 2015-07-18 21:19 UTC (permalink / raw)
  To: buildroot

Dear Jan Viktorin,

On Tue, 14 Jul 2015 17:16:14 +0200, Jan Viktorin wrote:
> Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
> ---
>  board/avnet/zedboard/readme.txt | 84 +++++++++++++++++++----------------------
>  1 file changed, 38 insertions(+), 46 deletions(-)

Applied, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

end of thread, other threads:[~2015-07-18 21:19 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-18 16:27 [Buildroot] [PATCH 1/2] zedboard: Upgrade to Linux xilinx-v2015.1 (3.18) Jan Viktorin
2015-06-18 16:27 ` [Buildroot] [PATCH 2/2] zedboard: Upgrade to U-Boot 2015.07 Jan Viktorin
2015-06-18 21:18   ` Thomas Petazzoni
2015-06-19 13:38     ` [Buildroot] [PATCH v1 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
2015-06-19 19:59       ` Arnout Vandecappelle
2015-06-20  8:26         ` Jan Viktorin
2015-06-20  9:30           ` Arnout Vandecappelle
2015-06-19 13:40     ` [Buildroot] [PATCH v1 1/2] host-zynq-boot-bin: new package Jan Viktorin
2015-06-19 13:40       ` [Buildroot] [PATCH v1 2/2] zedboard: Upgrade to U-Boot 2015.07 Jan Viktorin
2015-06-22 11:15     ` [Buildroot] [PATCH v2 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
2015-06-22 11:15       ` [Buildroot] [PATCH v2 1/2] host-zynq-boot-bin: new package Jan Viktorin
2015-06-22 17:32         ` Baruch Siach
2015-06-22 21:58         ` Arnout Vandecappelle
2015-06-22 11:15       ` [Buildroot] [PATCH v2 2/2] zedboard: Upgrade to U-Boot 2015.07 Jan Viktorin
2015-06-23 12:49       ` [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
2015-06-23 12:49         ` [Buildroot] [PATCH v3 1/2] host-zynq-boot-bin: new package Jan Viktorin
2015-07-03 17:33           ` Yann E. MORIN
2015-07-03 20:00             ` Arnout Vandecappelle
2015-07-03 21:51               ` Yann E. MORIN
2015-07-03 23:44                 ` Jan Viktorin
2015-07-04 14:07           ` Thomas Petazzoni
2015-07-14 15:12             ` [Buildroot] [PATCH v4 0/7 Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
2015-07-14 15:14               ` [Buildroot] [PATCH v4 3/7] boot/uboot: Add support for dtb.img format Jan Viktorin
2015-07-14 18:51                 ` Maxime Hadjinlian
2015-07-14 22:09                 ` Thomas Petazzoni
2015-07-14 15:14               ` [Buildroot] [PATCH v4 2/7] host-zynq-boot-bin: new package Jan Viktorin
2015-07-18 21:18                 ` Thomas Petazzoni
2015-07-14 15:14               ` [Buildroot] [PATCH v4 5/7] zedboard: Generate BOOT.BIN automatically Jan Viktorin
2015-07-14 15:16               ` [Buildroot] [PATCH v4 4/7] boot/uboot: Generate BOOT.BIN file when building for Xilinx Zynq Jan Viktorin
2015-07-18 21:19                 ` Thomas Petazzoni
2015-07-14 15:16               ` [Buildroot] [PATCH v4 6/7] zedboard: Patch default U-Boot environment for zedboard Jan Viktorin
2015-07-18 21:19                 ` Thomas Petazzoni
2015-07-14 15:16               ` [Buildroot] [PATCH v4 7/7] zedboard: Update readme.txt to reflect BOOT.BIN generation Jan Viktorin
2015-07-18 21:19                 ` Thomas Petazzoni
2015-07-14 15:17               ` [Buildroot] [PATCH v4 1/7] docs/manual: Fix trivial typo Jan Viktorin
2015-07-14 18:13                 ` Maxime Hadjinlian
2015-07-14 21:57                 ` Thomas Petazzoni
2015-06-23 12:49         ` [Buildroot] [PATCH v3 2/2] zedboard: Upgrade to U-Boot 2015.07 Jan Viktorin
2015-07-02 12:40         ` [Buildroot] [PATCH v3 0/2] Make Buildroot for Zedboard independent on Xilinx tools Jan Viktorin
2015-07-03 17:40           ` Yann E. MORIN
2015-07-03 23:52             ` Jan Viktorin
2015-06-18 21:15 ` [Buildroot] [PATCH 1/2] zedboard: Upgrade to Linux xilinx-v2015.1 (3.18) 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.