]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
zynqmp: Switch to 3-component net-boot
authorSoren Brinkmann <soren.brinkmann@xilinx.com>
Fri, 11 Mar 2016 01:21:51 +0000 (17:21 -0800)
committerMichal Simek <michal.simek@xilinx.com>
Mon, 14 Mar 2016 20:20:46 +0000 (21:20 +0100)
For JTAG boot, load Image, DT and ramdisk through tftp and boot.
Also, adjust the image layout in memory a bit to avoid them overlapping:
The old/current layout is:
 0x80000 - Image
 0x7000000 - DT
And no space for a rootfs.

With this change the layout becomes:
 0x80000 - Image
 0x4000000 - DT
 0x6000000 - rootfs

That provides more than enough space for the kernel without changing the
kernel address everywhere.
Enough room for the DT, which is rather tiny.
And puts the rootfs at the top allowing it to grow.

This seems to be the least intrusive way as it just changes one
variable that is commonly used (fdt_addr), while the addresses
for other components are often repeated and even differ between
boot modes.

Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
include/configs/xilinx_zynqmp.h

index 4dd6827cfce5ede46a4f0af1cad505d211b150eb..7a3c12fa8e7dd6e4f482c3ea3b8cfd3d291c93f7 100644 (file)
        "kernel_addr=0x200000\0" \
        "initrd_addr=0xa00000\0" \
        "initrd_size=0x2000000\0" \
-       "fdt_addr=0x7000000\0" \
+       "fdt_addr=4000000\0" \
        "fdt_high=0x10000000\0" \
        "sdbootdev=0\0"\
        CONFIG_KERNEL_FDT_OFST_SIZE \
                "fdt set /timer clock-frequency <240000> && " \
                "fdt set /amba/i2c_clk clock-frequency <240000> && " \
                "booti 80000 - f000000\0" \
-       "netboot=tftpboot 80000 Image && tftpboot $fdt_addr system.dtb && " \
-                "booti 80000 - $fdt_addr\0" \
+       "netboot=tftpboot 80000 image.ub && bootm\0" \
        "qspiboot=sf probe 0 0 0 && sf read $fdt_addr $fdt_offset $fdt_size && " \
                  "sf read $kernel_addr $kernel_offset $kernel_size && " \
                  "booti $kernel_addr - $fdt_addr\0" \
                "tftpb 0x80000 Image && " \
                "fdt set /chosen/dom0 reg <0x80000 0x$filesize> && "\
                "tftpb 6000000 xen.ub && bootm 6000000 - $fdt_addr\0" \
-       "jtagboot=tftpboot 10000000 image.ub && bootm\0" \
+       "jtagboot=tftpboot 80000 Image && tftpboot $fdt_addr system.dtb && " \
+                "tftpboot 6000000 rootfs.cpio.ub && booti 80000 6000000 $fdt_addr\0" \
        "nosmp=setenv bootargs $bootargs maxcpus=1\0" \
        "nfsroot=setenv bootargs $bootargs root=/dev/nfs nfsroot=$serverip:/mnt/sata,tcp ip=$ipaddr:$serverip:$serverip:255.255.255.0:zynqmp:eth0:off rw\0" \
        "sdroot=setenv bootargs $bootargs root=/dev/mmcblk0p2 rw rootwait\0" \