[OpenWrt-Devel] Xilinx Zynq zedboard integration
Javier Domingo Cansino
javierdo1 at gmail.com
Wed Jan 21 19:55:25 EST 2015
Ok, I have narrowed the problem to something with the compilation of the
kernel. I think it's more an incompatibility between xilinx and linux
patches, because the kernel fails to boot even if build by hand from the
build_dir.
I will try to split the patch in more digestible parts, and see if I catch
the error... Or maybe disable the openwrt patches and see where they can be
colliding.
On Wed, Jan 21, 2015 at 1:24 AM, Javier Domingo Cansino <javierdo1 at gmail.com
> wrote:
> After hitting against this wall for a lot, I found a bug in my few lines
> of code, I was creating the uImage file from vmlinux instead of from
> zImage[1].
>
> I am still doing something wrong, because substituting the uImage
> generated from buildroot in the SD card (and leaving the rest of the
> files), makes at least the kernel boot, although crashes in sec 0.000000,
> at least prints booting.
>
> I have discovered that after "Starting kernel ..." there should be a
> "Uncompressing Linux... done, booting the kernel." line. So I am still
> doing something wrong on the uImage generation, and I don't know what.
>
> Moreover, I have compiled the uImage like the following, and it get's to
> the kernel panic at least:
> make -j9 HOSTCC="/usr/bin/gcc" HOSTCFLAGS="" ARCH=arm CROSS_COMPILE="
> /home/javier/proyectos/master/master-sce/buildroot/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-"
> LOADADDR="0x8000" uImage
>
> If you could tell me which should be the Image/BuildKernel part, I would
> be really appreciate it.
>
> target/linux/zynq/image/Makefile
> ===
>
> include $(TOPDIR)/rules.mk
> include $(INCLUDE_DIR)/image.mk
>
> define Build/Compile
> $(call Build/Compile/Default, zynq_zed.dtb)
> endef
>
> define Image/BuildKernel/Initramfs
> (cd $(TARGET_DIR); \
> find . | cpio -o -H newc | gzip -9 >$(KDIR)/zedboard-rootfs.cpio.gz )
> mkimage -A arm -T ramdisk -C none -d $(KDIR)/zedboard-rootfs.cpio.gz \
> $(BIN_DIR)/zedboard-uramdisk.image.gz
> endef
>
> define Image/BuildKernel
> mkimage -A arm -O linux -T kernel -C none -a 0x8000 -e 0x8000 \
> -n 'ARM OpenWrt Linux-$(LINUX_VERSION)' \
> -d $(LINUX_DIR)/arch/arm/boot/zImage $(BIN_DIR)/zedboard-uImage
> endef
>
> define Image/Prepare
> $(LINUX_DIR)/scripts/dtc/dtc -O dtb \
> $(LINUX_DIR)/arch/arm/boot/dts/zynq-zed.dts > $(BIN_DIR)/zedboard.dtb
> endef
>
> $(eval $(call BuildImage))
>
> ===
>
> [1] Bug I should have found a lot of time ago:
> https://github.com/txomon/openwrt/commit/5e882bc2f14580f62a6ad78ddc57033d207261f9
>
>
> Cheers
>
> On Sun, Jun 29, 2014 at 1:35 PM, Javier Domingo Cansino <
> javierdo1 at gmail.com> wrote:
>
>> I have manually executed the boot sequence in the uboot, and the result
>> is that it fails on the command bootm loados. Any idea on how to debug what
>> can be wrong?
>>
>> Cheers and I will keep searching,
>>
>> Javier Domingo Cansino
>>
>> zynq-uboot> fatload mmc 0 0x3000000 uImage
>> reading uImage
>> 4582152 bytes read in 405 ms (10.8 MiB/s)
>> zynq-uboot> fatload mmc 0 0x2A00000 devicetree.dtb
>> reading devicetree.dtb
>> 2739 bytes read in 15 ms (177.7 KiB/s)
>> zynq-uboot> fatload mmc 0 0x2000000 uramdisk.image.gz
>> reading uramdisk.image.gz
>> 796339 bytes read in 87 ms (8.7 MiB/s)
>> zynq-uboot> help bootm
>> bootm - boot application image from memory
>>
>> Usage:
>> bootm [addr [arg ...]]
>> - boot application image stored in memory
>> passing arguments 'arg ...'; when booting a Linux kernel,
>> 'arg' can be the address of an initrd image
>> When booting a Linux kernel which requires a flat device-tree
>> a third argument is required which is the address of the
>> device-tree blob. To boot that kernel without an initrd image,
>> use a '-' for the second argument. If you do not pass a third
>> a bd_info struct will be passed instead
>>
>> For the new multi component uImage format (FIT) addresses
>> must be extened to include component or configuration unit name:
>> addr:<subimg_uname> - direct component image specification
>> addr#<conf_uname> - configuration specification
>> Use iminfo command to get the list of existing component
>> images and configurations.
>>
>> Sub-commands to do part of the bootm sequence. The sub-commands must be
>> issued in the order below (it's ok to not issue all sub-commands):
>> start [addr [arg ...]]
>> loados - load OS image
>> ramdisk - relocate initrd, set env initrd_start/initrd_end
>> fdt - relocate flat device tree
>> cmdline - OS specific command line processing/setup
>> bdt - OS specific bd_t processing
>> prep - OS specific prep before relocation or go
>> go - start OS
>> zynq-uboot> bootm start 0x3000000 0x2000000 0x2A00000
>> ## Booting kernel from Legacy Image at 03000000 ...
>> Image Name: ARM OpenWrt Linux-3.13.7
>> Image Type: ARM Linux Kernel Image (uncompressed)
>> Data Size: 4582088 Bytes = 4.4 MiB
>> Load Address: 80000000
>> Entry Point: 80000000
>> Verifying Checksum ... OK
>> ## Loading init Ramdisk from Legacy Image at 02000000 ...
>> Image Name:
>> Image Type: ARM Linux RAMDisk Image (uncompressed)
>> Data Size: 796275 Bytes = 777.6 KiB
>> Load Address: 00000000
>> Entry Point: 00000000
>> Verifying Checksum ... OK
>> ## Flattened Device Tree blob at 02a00000
>> Booting using the fdt blob at 0x2a00000
>> zynq-uboot> bootm loados
>> Loading Kernel Image ...
>>
>
>
>
> --
> Javier Domingo Cansino
>
--
Javier Domingo Cansino
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20150122/11d094fb/attachment.htm>
-------------- next part --------------
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list