element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet & Tria Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
ZedBoard Hardware Design JTAG linux boot with FPGA design
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 12 replies
  • Subscribers 360 subscribers
  • Views 2747 views
  • Users 0 members are here
Related

JTAG linux boot with FPGA design

shakith
shakith over 13 years ago

Hi all,

The following steps work with booting the design without programming the FPGA section (without line fpga -f ...).

If the fpga part is included, the OS bootup breaks at "xgpiops e000a000.gpio: gpio at 0xe000a000 mapped to 0xe080a000."

Sequence of operations:
1. xmd
2. connect arm hw
3. fpga -f system.bit
4. source ps7_init.tcl
5. ps7_init
6. source stub.tcl
7. dow u-boot.elf
8. con
9. pause uboot in terminal
10. stop in xmd
11. dow -data zImage 0x8000
12. dow -data devicetree 0x1000000

Is it possible to boot the linux through jtag with fpga designs with static device drives? If yes, what is the order of commands like above?

Note that the all the above files works with SD card boot correctly.

The xgpiops error comes in SD boot if PS-RST is pressed rather than power cycling the board. I guess ps7_init might clearing hardware design in the PL. Extrapolated from this (http://www.zedboard.org/content/linux-kernel-does-not-boot-successfully-when-reset-only-board-power-cycle (Here is the official Digilent) )

Is there a way to load custom IP and drivers without going for dynamic drivers option?

Thanks in Advance.!

Cheers
Shakith

  • Sign in to reply
  • Cancel
  • Former Member
    0 Former Member over 13 years ago

    Hi

    The ps7_init.tcl definitely does not clear the hardware in the PL.  You seem to be missing a few commands (which you may have left out):

    "init_user" between step 5 and 6
    "target 64" between steps 6 and 7
    "dow -data ramdisk8M.image.gz 0x800000" between steps 11 and 12

    Matthew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • shakith
    0 shakith over 13 years ago in reply to Former Member

    Hi Matthew,

    Yes. "target 64" should be there between steps 6 and 7.
    Sorry..Missed it on the forum post.

    For the ramdisk8M.image.gz, I have separate file system partition on my SD Card which is pointed to by zImage and the device tree file, therefore I think it's not required.

    Is the init_user same ps7_init?  I followed the ZedBoard_CTT pdf guide on the following zip file http://www.zedboard.org/sites/default/files/design/ZedBoard_CTT_v14.3_121017.zip. Section 5.2.3..

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 13 years ago

    Hi again

    No init_user is not the same, ps7_init initialises the processing system whereas init_user "enables level shifters between PS and PL and clears fabric port resets" (see UG873 section 5.2.2).  If Linux still isn't booting could you post the UART output.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • shakith
    0 shakith over 13 years ago

    Thanks.
    Yes. That was the missing part to fix GPIO issue.

    Now but at some point the OS bootup still crashes using this Jtag boot. It seems to be not loading the device tree. Though the CONFIG_XILINX_FIXED_DEVTREE_ADDR=y is set in kernel defconfig.

    The UART output with errors for Jtag boot is as follows.

    ## Starting application at 0x00008000 ...
    Uncompressing Linux... done, booting the kernel.
    Booting Linux on physical CPU 0
    Linux version 3.6.0-02191-gf4fb5ff (sfernando@cuda-gts250) (gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-50) ) #1 SMP PREEMPT Fri Dec 7 11:24:52 CET 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 ZED
    bootconsole [earlycon0] enabled
    cma: CMA: reserved 40 MiB at 1d800000
    Memory policy: ECC disabled, Data cache writealloc
    PERCPU: Embedded 7 pages/cpu @c0e2f000 s7872 r8192 d12608 u32768
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
    Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootdelay=1 init=/sbin/init devtmpfs.mount=0
    PID hash table entries: 2048 (order: 1, 8192 bytes)
    Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    Memory: 512MB = 512MB total
    Memory: 468228k/468228k available, 56060k reserved, 0K highmem
    Virtual kernel memory layout:
        vector  : 0xffff0000 - 0xffff1000   (   4 kB)
        fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
        vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)
        lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
        pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
        modules : 0xbf000000 - 0xbfe00000   (  14 MB)
          .text : 0xc0008000 - 0xc04a8214   (4737 kB)
          .init : 0xc04a9000 - 0xc04cfec0   ( 156 kB)
          .data : 0xc04d0000 - 0xc051e780   ( 314 kB)
           .bss : 0xc051e7a4 - 0xc0a25b50   (5149 kB)
    Preemptible hierarchical RCU implementation.
            RCU lockdep checking is enabled.
            Dump stacks of tasks blocking RCU-preempt GP.
            RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
    NR_IRQS:512
    Zynq clock init
    hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
    Setting up static identity map for 0x34ccf8 - 0x34cd2c
    Map SLCR registers
    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
    DMA: preallocated 256 KiB pool for atomic coherent allocations
    xgpiops e000a000.gpio: gpio at 0xe000a000 mapped to 0xe0806000
    registering platform device 'pl330' id 0
    registering platform device 'arm-pmu' id 0
    registering platform device 'zynq-dvfs' id 0
    hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    hw-breakpoint: halting debug mode enabled. Assuming maximum watchpoint size of 4 bytes.
    MIO pin 11 not assigned(00001760)
    xslcr xslcr.0: at 0xF8000000 mapped to 0xF8000000
    bio: create slab <bio-0> at 0
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    Advanced Linux Sound Architecture Driver Version 1.0.25.
    Switching to clocksource xttcpss_timer1
    Clockevents: could not switch to one-shot mode:Clockevents: could not switch to one-shot mode: dummy_timer is not functional.
    Could not switch to high resolution mode on CPU 1

    dummy_timer is not functional.
    Could not switch to high resolution mode on CPU 0
    NET: Registered protocol family 2
    TCP established hash table entries: 16384 (order: 5, 131072 bytes)
    TCP bind hash table entries: 16384 (order: 7, 589824 bytes)
    TCP: Hash tables configured (established 16384 bind 16384)
    TCP: reno registered
    UDP hash table entries: 256 (order: 2, 20480 bytes)
    UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
    NET: Registered protocol family 1
    pl330 dev 0 probe success
    msgmni has been set to 994
    io scheduler noop registered
    io scheduler deadline registered
    io scheduler cfq registered (default)
    xuartps e0001000.uart: failed to get alias id, errno -19
    e00010console [ttyPS0] enabled, bootconsole disabled
    console [ttyPS0] enabled, bootconsole disabled
    xdevcfg f8007000.devcfg: ioremap f8007000 to e080c000 with size 1000
    [drm] Initialized drm 1.1.0 20060810
    brd: module loaded
    loop: module loaded
    xqspips e000d000.spi: master is unqueued, this is deprecated
    xqspips e000d000.spi: at 0xE000D000 mapped to 0xE080E000, irq=51
    libphy: XEMACPS mii bus: probed
    xemacps e000b000.eth: pdev->id -1, baseaddr 0xe000b000, irq 54
    ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    usb_hcd_xusbps_probe: No OTG assigned!
    usb_hcd_xusbps_probe: OTG now assigned!
    xusbps-ehci xusbps-ehci.0: Xilinx PS USB EHCI init: Failed to create pty - disabling logging for job
    init: Temporary process spawn error: No space left on device
    modprobe: FATAL: Could not load /lib/modules/3.6.0-02191-gf4fb5ff/modules.dep: No such file or directory

    * Starting mDNS/DNS-SD daemon                                           [ OK ]
    ^A * Stopping cold plug devices                                          [ OK ]
    * Starting configure network device security                            [ OK ]
    * Stopping log initial device creation                                  [ OK ]
    * Starting load fallback graphics devices                               [ OK ]
    * Starting configure network device security                            [ OK ]
    * Starting bluetooth daemon                                             [ OK ]
    * Starting load fallback graphics devices                               [fail]
    * Starting configure virtual network devices                            [ OK ]
    speech-dispatcher disabled; edit /etc/default/speech-dispatcher
    saned disabled; edit /etc/default/saned



    The correct output from SD card boot:
    ## Starting application at 0x00008000 ...
    Uncompressing Linux... done, booting the kernel.
    Booting Linux on physical CPU 0
    Linux version 3.6.0-02191-gf4fb5ff (sfernando@cuda-gts250) (gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-50) ) #1 SMP PREEMPT Fri Dec 7 11:24:52 CET 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 ZED
    bootconsole [earlycon0] enabled
    cma: CMA: reserved 40 MiB at 1d800000
    Memory policy: ECC disabled, Data cache writealloc
    PERCPU: Embedded 7 pages/cpu @c0e2f000 s7872 r8192 d12608 u32768
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
    Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootdelay=1 init=/sbin/init devtmpfs.mount=0
    PID hash table entries: 2048 (order: 1, 8192 bytes)
    Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    Memory: 512MB = 512MB total
    Memory: 468228k/468228k available, 56060k reserved, 0K highmem
    Virtual kernel memory layout:
        vector  : 0xffff0000 - 0xffff1000   (   4 kB)
        fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
        vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)
        lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
        pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
        modules : 0xbf000000 - 0xbfe00000   (  14 MB)
          .text : 0xc0008000 - 0xc04a8214   (4737 kB)
          .init : 0xc04a9000 - 0xc04cfec0   ( 156 kB)
          .data : 0xc04d0000 - 0xc051e780   ( 314 kB)
           .bss : 0xc051e7a4 - 0xc0a25b50   (5149 kB)
    Preemptible hierarchical RCU implementation.
            RCU lockdep checking is enabled.
            Dump stacks of tasks blocking RCU-preempt GP.
            RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
    NR_IRQS:512
    Zynq clock init
    hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
    Setting up static identity map for 0x34ccf8 - 0x34cd2c
    Map SLCR registers
    CPU1: Booted secondary processor
    CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
    Brought up 2 CPUs
    SMP: Total of 2 processors activated (2657.48 BogoMIPS).
    devtmpfs: initialized
    NET: Registered protocol family 16
    DMA: preallocated 256 KiB pool for atomic coherent allocations
    xgpiops e000a000.gpio: gpio at 0xe000a000 mapped to 0xe0806000
    registering platform device 'pl330' id 0
    registering platform device 'arm-pmu' id 0
    registering platform device 'zynq-dvfs' id 0
    hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    hw-breakpoint: maximum watchpoint size is 4 bytes.
    MIO pin 11 not assigned(00001760)
    xslcr xslcr.0: at 0xF8000000 mapped to 0xF8000000
    bio: create slab <bio-0> at 0
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    Advanced Linux Sound Architecture Driver Version 1.0.25.
    Switching to clocksource xttcpss_timer1
    Clockevents: could not switch to one-shot mode:Clockevents: could not switch to one-shot mode: dummy_timer is not functional.
    Could not switch to high resolution mode on CPU 1

    dummy_timer is not functional.
    Could not switch to high resolution mode on CPU 0
    NET: Registered protocol family 2
    TCP established hash table entries: 16384 (order: 5, 131072 bytes)
    TCP bind hash table entries: 16384 (order: 7, 589824 bytes)
    TCP: Hash tables configured (established 16384 bind 16384)
    TCP: reno registered
    UDP hash table entries: 256 (order: 2, 20480 bytes)
    UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
    NET: Registered protocol family 1
    pl330 dev 0 probe success
    msgmni has been set to 994
    io scheduler noop registered
    io scheduler deadline registered
    io scheduler cfq registered (default)
    xuartps e0001000.uart: failed to get alias id, errno -19
    e000u00FFconsole [ttyPS0] enabled, bootconsole disabled
    console [ttyPS0] enabled, bootconsole disabled
    xdevcfg f8007000.devcfg: ioremap f8007000 to e080c000 with size 1000
    [drm] Initialized drm 1.1.0 20060810
    brd: module loaded
    loop: module loaded
    xqspips e000d000.spi: master is unqueued, this is deprecated
    xqspips e000d000.spi: at 0xE000D000 mapped to 0xE080E000, irq=51
    libphy: XEMACPS mii bus: probed
    xemacps e000b000.eth: pdev->id -1, baseaddr 0xe000b000, irq 54
    ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    usb_hcd_xusbps_probe: No OTG assigned!
    usb_hcd_xusbps_probe: OTG now assigned!
    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.
    mousedev: PS/2 mouse device common for all mice
    i2c /dev entries driver
    sdhci: Secure Digital Host Controller Interface driver
    sdhci: Copyright(c) Pierre Ossman
    sdhci-pltfm: SDHCI platform and OF driver helper
    mmc0: Invalid maximum block size, assuming 512 bytes
    mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA
    usbcore: registered new interface driver usbhid
    mmc0: new high speed SDHC card at address 1234
    usbhid: USB HID core driver
    mmcblk0: mmc0:1234 SA04G 3.63 GiB
    TCP: cubic registered
    mmcblk0: p1 p2
    NET: Registered protocol family 17
    VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    Registering SWP/SWPB emulation handler
    drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
    ALSA device list:
      No soundcards found.
    Waiting 1sec before mounting root device...
    setting clock to: 148500
    raw_edid: dd2941c0 0
    Using RGB output
    Console: switching to colour frame buffer device 240x67
    usb 1-1: new high-speed USB device number 2 using xusbps-ehci
    fb0:  frame buffer device
    drm: registered panic notifier
    [drm] Initialized analog_drm 1.0.0 20110530 on minor 0
    hub 1-1:1.0: USB hub found
    hub 1-1:1.0: 4 ports detected
    usb 1-1.1: new high-speed USB device number 3 using xusbps-ehci
    scsi0 : usb-storage 1-1.1:1.0
    usb 1-1.3: new low-speed USB device number 4 using xusbps-ehci
    input: Logitech USB Optical Mouse as /devices/amba.0/e0002000.usb/xusbps-ehci.0/usb1/1-1/1-1.3/1-1.3:1.0/input/input0
    hid-generic 0003:046D:C05A.0001: input,hidraw0: USB HID v1.11 Mouse [Logitech USB Optical Mouse] on usb-xusbps-ehci.0-1.3/input0
    usb 1-1.4: new low-speed USB device number 5 using xusbps-ehci
    input: LITEON Technology USB Multimedia Keyboard as /devices/amba.0/e0002000.usb/xusbps-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/input/input1
    hid-generic 0003:046D:C312.0002: input,hidraw1: USB HID v1.10 Keyboard [LITEON Technology USB Multimedia Keyboard] on usb-xusbps-ehci.0-1.4/input0
    scsi 0:0:0:0: Direct-Access     Generic- Compact Flash    1.00 PQ: 0 ANSI: 0 CCS
    sd 0:0:0:0: [sda] Attached SCSI removable disk
    sd 0:0:0:0: Attached scsi generic sg0 type 0
    scsi 0:0:0:1: Direct-Access     Generic- SM/xD-Picture    1.00 PQ: 0 ANSI: 0 CCS
    sd 0:0:0:1: Attached scsi generic sg1 type 0
    sd 0:0:0:1: [sdb] Attached SCSI removable disk
    scsi 0:0:0:2: Direct-Access     Generic- SD/MMC           1.00 PQ: 0 ANSI: 0 CCS
    sd 0:0:0:2: Attached scsi generic sg2 type 0
    scsi 0:0:0:3: Direct-Access     Generic- MS/MS-Pro        1.00 PQ: 0 ANSI: 0 CCS
    sd 0:0:0:2: [sdc] Attached SCSI removable disk
    sd 0:0:0:3: Attached scsi generic sg3 type 0
    sd 0:0:0:3: [sdd] Attached SCSI removable disk
    EXT4-fs (mmcblk0p2): warning: maximal mount count reached, running e2fsck is recommended
    EXT4-fs (mmcblk0p2): 4 orphan inodes deleted
    EXT4-fs (mmcblk0p2): recovery complete
    EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    VFS: Mounted root (ext4 filesystem) on device 179:2.
    Freeing init memory: 152K
    init: Failed to create pty - disabling logging for job
    init: Temporary process spawn error: No space left on device
    modprobe: FATAL: Could not load /lib/modules/3.6.0-02191-gf4fb5ff/modules.dep: No such file or directory


    speech-dispatcher disabled; edit /etc/default/speech-dispatcher
    saned disabled; edit /etc/default/saned
    Last login: Thu Jan  1 00:00:52 UTC 1970 on tty1

    Login timed out after 60 seconds.

    Last login: Thu Jan  1 00:00:45 UTC 1970 on tty1
    speech-dispatcher disabled; edit /etc/default/speech-dispatcher
    saned disabled; edit /etc/default/saned

    Login timed out after 60 seconds.

    Last login: Thu Jan  1 00:01:47 UTC 1970 on tty


    All the devices from this line "xusbps-ehci xusbps-ehci.0: Xilinx PS USB EHCI Host Controller" are not found in the Jtag boot output. Any ideas?

    BTW: Here are steps I followed to fix above first issue.
    connect arm hw
    source ps7_init.tcl
    ps7_init
    init_user
    source stub.tcl
    target 64
    fpga -f system.bit
    dow u-boot.elf
    con
    pause uboot in terminal
    stop in xmd
    dow -data zImage 0x8000
    dow -data devicetree.dtb 0x1000000

    Attn admin: There is missing step in the Zed CTT guide. "init_user step when programming FPGA part to the PL"

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 13 years ago

    Have you tried the same process with the pre-built Digilent Linux kernel?  There may be a problem with your zImage.

    Matthew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • shakith
    0 shakith over 13 years ago

    Thanks.. I managed to Jtag boot with FPGA loading and linux.. it could be something with boot_args..Anyway thanks. I have jtag boot option now :)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 13 years ago

    Hi Matthew,

    I get the following error when I am trying to download the u-boot image to the PL. I use the ps7_init.tcl from helloWorld example to init the first processor:
    Download Progress.ERROR: Failed to download ELF file
    tCannot access DDR: the controller is held in reset

    Any clue?

    Thanks


    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 13 years ago

    Hi

    Could you list the commands you are currently using?  If the DDR is held in reset it is likely that you have missed a step.  Considering that the "init_user" command is supposed to clear fabric resets it could be that.

    Matthew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 13 years ago in reply to Former Member

    Thanks, Matthew.

    I followed the instruction in the documentation ZedBoard_VTT_v14.3_121017.pdf:
    1. connect arm hw
    2. source ps7_init.tcl (I used the file generated from HelloWorld example).
    3. source stub.tcl (download from ZedBoard.org)
    4. target 64
    5. dow u-boot.elf. (it is this stage that gives me the error).

    I do not see the init_user command in the documentation.

    xiao

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 13 years ago

    For some reason it isn't in the Zedboard CTT, but it is included in Xilinx's document (UG873).  The full set of commands are as follows:

    xmd
    connect arm hw
    fpga -f system.bit
    source ps7_init.tcl
    ps7_init
    init_user
    source stub.tcl
    target 64
    dow u-boot.elf
    con
    < pause uboot in terminal >
    stop
    dow -data zImage 0x8000
    dow -data ramdisk8M.image.gz 0x800000
    dow -data devicetree 0x1000000

    That should solve your problems
    Matthew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube