Hi,
where is possible to find the uboot and linux kernel source code for your device? I can refer me to the xilinx git repos? In case yes do I need any additional patch for zedboard? Where I can find the right defconfigs?
Thanks in advance!
Hi,
where is possible to find the uboot and linux kernel source code for your device? I can refer me to the xilinx git repos? In case yes do I need any additional patch for zedboard? Where I can find the right defconfigs?
Thanks in advance!
Hi manuele,
You can get to the Xilinx git repo here: http://git.xilinx.com/
Additional information on compiling the kernel can be found here: http://wiki.xilinx.com/
I will look into getting the link to the defconfig for the board, as the wiki page only has the defconfig for the ZC702 board.
You're welcome! looks like the defconfig for the zedboard will be posted any day now.
I have recompiled linux using Xilinx source code. To successfully boot into the compiled kernel, FSBL must be recompiled with ZedBoard settings. DeviceTree is also changed: remove the i2c node and ethernet phy must be modified. Memory size should be set to 512MB.
How to modify the deconfig for ZED? some details?
I used the same kernel configuration file for ZC702 board which can be found in Xilinx kernel source. Most PS devices are functioning properly.
Hi, could you share the modifications for the zedboard define as a patch?
Hi,
I've fonally received the board. I've succesfully recompiled the kernel a puttend in place a device tree file. Almost all the divices works fine. Now I'd like to enable at least the hdmi. Do I need any specific driver or the one I need is already in the xilinx kernel? Which is the configuration for the device tree file? If not, could you please, provide to me more information on how to get it working?
Thanks,
Manuele
Hi,
can the xilinx_zynq_defconfig kernel and the zynq-zc702.dts device tree configuration from the linux-xlnx.git repository be used for the Zedboard as-is, or are any modifications required? If so, precisely what modifications are required? Can they be made available in a git repository by any chance?
I.e.:
git clone git://git.xilinx.com/linux-xlnx.git
cd linux-xlnx
make ARCH=arm xilinx_zynq_defconfig
make ARCH=arm
scripts/dtc/dtc -I dts -O dtb -o arch/arm/boot/devicetree_ramdisk.dtb arch/arm/boot/dts/zynq-zc702.dts
cd arch/arm/boot
<copy zImage and devicetree_ramdisk.dtb to zedboard>
<reboot & profit>
I'm asking because I followed these steps, but the kernel won't boot - It hangs during the boot process (log below). When I remove the i2c device from the device tree, it goes a bit further but still does not work (i.e. the userland segfaults).
It would be very helpful if there was a description (and configuration file) that makes it possible to rebuild the kernel as distributed, as starting point. Also, it would be very nice if there was a description how to rebuild u-boot with the factory default bitstream. And a description how to rebuild the factory default bitstream with, erm, ISE? EDK? I know I'm asking for a lot :)
Any help would be appreciated.
-Hans
U-Boot 2011.03-dirty (Jul 11 2012 - 16:07:00)
DRAM: 512 MiB
MMC: SDHCI: 0
Using default environment
In: serial
Out: serial
Err: serial
Net: zynq_gem
Hit any key to stop autoboot: 0
Copying Linux from SD to RAM...
Device: SDHCI
Manufacturer ID: 12
OEM: 3456
Name: SMI
Tran Speed: 25000000
Rd Block Len: 512
SD version 1.10
High Capacity: Yes
Capacity: 3967811584
Bus Width: 1-bit
reading zImage
2303280 bytes read
reading devicetree_ramdisk.dtb
3972 bytes read
reading ramdisk8M.image.gz
3699979 bytes read
## Starting application at 0x00008000 ...
Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0
Linux version 3.3.0-14.2-build1-01491-g42fac65 (hans@aspirin) (gcc version 4.5.1 (Sourcery G++ Lite 2010.09-62) ) #1 SMP PREEMPT Thu Sep 6 07:02:02 EDT 2012
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: Xilinx Zynq Platform, model: Xilinx Zynq ZC702
bootconsole [earlycon0] enabled
Memory policy: ECC disabled, Data cache writealloc
PERCPU: Embedded 7 pages/cpu @c190b000 s5696 r8192 d14784 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 259840
Kernel command line: console=ttyPS0,115200 root=/dev/ram rw initrd=0x800000,8M ip=:::::eth0:dhcp earlyprintk
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 1024MB = 1024MB total
Memory: 1025632k/1025632k available, 22944k reserved, 270336K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xf0000000 - 0xff000000 ( 240 MB)
lowmem : 0xc0000000 - 0xef800000 ( 760 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
.text : 0xc0008000 - 0xc0412250 (4137 kB)
.init : 0xc0413000 - 0xc0438640 ( 150 kB)
.data : 0xc043a000 - 0xc0467ca0 ( 184 kB)
.bss : 0xc0467cc4 - 0xc0481edc ( 105 kB)
Preemptible hierarchical RCU implementation.
tVerbose stalled-CPUs detection is disabled.
NR_IRQS:128
xlnx,ps7-ttc-1.00.a #0 at 0xf0000000, irq=43
Console: colour dummy device 80x30
Calibrating delay loop... 1332.01 BogoMIPS (lpj=6660096)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
smp_twd: clock not found: -2
Calibrating local timer... 333.55MHz.
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
Setting up static identity map for 0x2f9e50 - 0x2f9e84
CPU1: Booted secondary processor
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
Brought up 2 CPUs
SMP: Total of 2 processors activated (2664.03 BogoMIPS).
devtmpfs: initialized
NET: Registered protocol family 16
L310 cache controller enabled
l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x72060000, Cache size: 524288 B
registering platform device 'pl330' id 0
registering platform device 'arm-pmu' id 0
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
xslcr xslcr.0: at 0xF8000000 mapped to 0xF0008000
bio: create slab <bio-0> at 0
gpiochip_add: registered GPIOs 0 to 245 on device: xgpiops
xgpiops e000a000.gpio: gpio at 0xe000a000 mapped to 0xf000a000
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Switching to clocksource xttcpss_timer1
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
TCP bind hash table entries: 65536 (order: 7, 786432 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
UDP hash table entries: 512 (order: 2, 16384 bytes)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (no cpio magic); looks like an initrd
Freeing initrd memory: 8192K
xscugtimer xscugtimer.0: ioremap fe00c200 to f000c200 with size 400
pl330 dev 0 probe success
highmem bounce pool size: 64 pages
JFFS2 version 2.2. (NAND) (SUMMARY) u00A9 2001-2006 Red Hat, Inc.
msgmni has been set to 1491
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
e00??u037D??[ttyPS0] enabled, bootconsole disabled
console [ttyPS0] enabled, bootconsole disabled
xdevcfg f8007000.devcfg: ioremap f8007000 to f0060000 with size 100
brd: module loaded
loop: module loaded
m25p80 spi1.0: found s25fl256s1, expected n25q128
m25p80 spi1.0: s25fl256s1 (32768 Kbytes)
7 ofpart partitions found on MTD device spi1.0
Creating 7 MTD partitions on "spi1.0":
0x000000000000-0x000000080000 : "qspi-fsbl"
0x000000080000-0x000000100000 : "qspi-u-boot"
0x000000100000-0x000000600000 : "qspi-linux"
0x000000600000-0x000000620000 : "qspi-device-tree"
0x000000620000-0x000000700000 : "qspi-user"
0x000000700000-0x000000800000 : "qspi-scratch"
0x000000800000-0x000001000000 : "qspi-rootfs"
xqspips e000d000.spi: at 0xE000D000 mapped to 0xF0062000, irq=51
GEM: BASEADDRESS hw: e000b000 virt: f0064000
XEMACPS mii bus: probed
mdio_bus e000b000: error probing PHY at address 7
eth0, pdev->id -1, baseaddr 0xe000b000, irq 54
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
xusbps-ehci xusbps-ehci.0: Xilinx PS USB EHCI Host Controller
xusbps-ehci xusbps-ehci.0: new USB bus registered, assigned bus number 1
xusbps-ehci xusbps-ehci.0: irq 53, io mem 0x00000000
xusbps-ehci xusbps-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
Xilinx PS USB Device Controller driver (Apr 01, 2011)
mousedev: PS/2 mouse device common for all mice
i2c /dev entries driver
xi2cps e0004000.i2c: 100 kHz mmio e0004000 irq 57
(hangs here)
To answer my own question: I picked the required pieces and information from various Web pages and with that, I was able to configure and build a kernel and a device tree. I added a new device tree generation file for the zedboard (arch/arm/boot/dts/zynq-zedboard.dts) to my kernel repository (https://github.com/hanshuebner/linux-xlnx). Now in theory, this should work:
git clone https://github.com/hanshuebner/linux-xlnx.git
cd linux-xlnx
make ARCH=arm xilinx_zynq_defconfig
make ARCH=arm
scripts/dtc/dtc -I dts -O dtb -o arch/arm/boot/devicetree_ramdisk.dtb arch/arm/boot/dts/zynq-zedboard.dts
cd arch/arm/boot
<copy zImage and devicetree_ramdisk.dtb to zedboard>
<reboot & profit>