element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • 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 Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • 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
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • 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 Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
Software Application Development Xilinx Zynq Base TRD 14.3 on Zedboard
  • 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 5 replies
  • Subscribers 329 subscribers
  • Views 374 views
  • Users 0 members are here
Related

Xilinx Zynq Base TRD 14.3 on Zedboard

shakith
shakith over 12 years ago

Hi all,

I got hardware and bare metal software of Zynq Base TRD 14.3 reference design working on the zedboard.  Starting from this (http://wiki.analog.com/resources/tools-software/linux-drivers/platforms/zynq#enable_xf86-video-modesetting_xorg_driver) working design I added the VDMA_filter and sobel_filter_engine and wrote a simple test program to send the image to the filter and to get back the filtered image and display both on the hdmi output.

Next step, I want to get linux drivers working on this kernel tree that supports zedboard.(e.g. https://github.com/Digilent/linux-3.3-digilent.)

This hardware design uses a vdma for the hdmi output (this is in addition to the vdma for the filter operations). I added the patch from (http://wiki.xilinx.com/zynq-base-trd-14-3). This patch adds two drivers: xvdma (for vdma filter) and xfilter (for filter engine). Xvdma is extended driver of the xilinx_dma driver. With few minor tweaks I managed to compile the kernel. At bootup, when the device tree file doesnu2019t contain the entries for new vdma_filter and filter_engine, the kernel crashes at a line from xvdma (static bool xvdma_filter(struct dma_chan *chan, void *param). This means, vdma_hdmi is also somehow also to trying to run the xvdma driver.

I added a compatibility string to the xvdma driver (the extended driver) such that device tree entry for the vdma_hdmi only matches xilinx_dma driver and it doesnu2019t match xvdma driver. But it still crashes at the above point.

Alternatively is it possible to get user space access to the hardware to run my bare metal application earlier? I guess the memory mapped register IO access should be alright, but DMA access might be an issue?
Thanks in advance.

Cheers
Shakith

  • Sign in to reply
  • Cancel
  • shakith
    0 shakith over 12 years ago

    Next thing I tried was to see whether VDMA IP for HDMI can use the new wrapper driver. All the dts settings from VDMA_filter

    Xilinx BASE TRD (http://wiki.xilinx.com/zynq-base-trd-14-3) was added to the dts settings for the VDMA_hdmi.



    I guess this xvdma_filter function below is way of detecting the dma channels and it assume two channels (both ways) and find only one in the VDMA_hdmi.



    Also note that I am using this https://github.com/analogdevicesinc/linux/tree/xcomm_zynq. There is significant differences in the https://github.com/analogdevicesinc/linux/blob/xcomm_zynq/drivers/dma/xilinx_dma.c   and same file from this repo http://git.xilinx.com/?p=linux-xlnx.git;a=summar

    . Both gives the same bootup error though.



    The error output is this. (xvdma_filter is a function from the wrapper driver attached as xvdma.c)

    PC is at xvdma_filter+0x8/0x1c

    LR is at __dma_request_channel+0xb0/0x188

    pc : [<c01860f8>]    lr : [<c018a33c>]    psr: a0000013

    sp : dd059eb8  ip : 00400001  fp : 00000000

    r10: 00000000  r9 : dd059ee0  r8 : c04fff84

    r7 : dd00ecc0  r6 : dd1fccd8  r5 : dd059edc  r4 : c01860f0

    r3 : 00000000  r2 : dd00ecd4  r1 : 00400001  r0 : dd00ecc0

    Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel

    Control: 18c5387d  Table: 0000404a  DAC: 00000015

    Process swapper/0 (pid: 1, stack limit = 0xdd0582f0)

    Stack: (0xdd059eb8 to 0xdd05a000)

    9ea0:                                                       00000000 c04ffc20

    9ec0: 00400000 dd3e5944 c04cf5f4 00000000 00000000 c01867cc 00000000 00000400

    9ee0: 00400001 00000000 dd3e5940 c04ffc20 00000000 c033c5c8 c033c534 c04ffc20

    9f00: c0a23560 c04ffe34 c04ffe34 c01c8b7c c01c8b68 c01c7c5c 00000000 c04ffc20

    9f20: c04ffc54 c04ffe34 00000000 c01c7dfc c04ffe34 c01c7d94 00000000 c01c664c

    9f40: dd0496a8 dd3e5a90 c04ffe34 dd3e59c0 c0505710 c01c73d0 c0430846 00000001

    9f60: 00000000 c04ffe34 c04bc274 00000000 0000007f c04cf5f4 00000000 c01c8274

    9f80: dd059fa0 c04bc274 00000000 0000007f c04cf5f4 00000000 00000000 c0008544

    9fa0: 00000006 00000006 00000000 00000006 c04c8418 00000006 c04c841c c04c83fc

    9fc0: 0000007f c04cf5f4 00000000 c04ab8e0 00000006 00000006 c04ab1bc dd0571c0

    9fe0: 00000000 c04ab7e8 c000e308 00000013 00000000 c000e308 50414804 10c09306

    [<c01860f8>] (xvdma_filter+0x8/0x1c) from [<c018a33c>] (__dma_request_channel+0xb0/0x188)

    [<c018a33c>] (__dma_request_channel+0xb0/0x188) from [<c01867cc>] (xvdma_scan_channels+0x38/0x7c)

    [<c01867cc>] (xvdma_scan_channels+0x38/0x7c) from [<c033c5c8>] (xvdma_probe+0x94/0xcc)

    [<c033c5c8>] (xvdma_probe+0x94/0xcc) from [<c01c8b7c>] (platform_drv_probe+0x14/0x18)

    [<c01c8b7c>] (platform_drv_probe+0x14/0x18) from [<c01c7c5c>] (driver_probe_device+0xb4/0x1ec)

    [<c01c7c5c>] (driver_probe_device+0xb4/0x1ec) from [<c01c7dfc>] (__driver_attach+0x68/0x8c)

    [<c01c7dfc>] (__driver_attach+0x68/0x8c) from [<c01c664c>] (bus_for_each_dev+0x48/0x74)

    [<c01c664c>] (bus_for_each_dev+0x48/0x74) from [<c01c73d0>] (bus_add_driver+0x98/0x220)

    [<c01c73d0>] (bus_add_driver+0x98/0x220) from [<c01c8274>] (driver_register+0x9c/0x13c)

    [<c01c8274>] (driver_register+0x9c/0x13c) from [<c0008544>] (do_one_initcall+0x90/0x164)

    [<c0008544>] (do_one_initcall+0x90/0x164) from [<c04ab8e0>] (kernel_init+0xf8/0x1b8)

    [<c04ab8e0>] (kernel_init+0xf8/0x1b8) from [<c000e308>] (kernel_thread_exit+0x0/0x8)

    Code: e3a00000 e12fff1e e590c028 e5911000 (e59c2000)


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

    A working based trd design for the zedboard is shared here.
    http://shakithweblog.blogspot.nl/2012/12/getting-sobel-filter-application.html

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

    Hello,everyone ! i am using the ISE 14.4,and i want to write some driver for linux 3.6.0,but i don't know how to build the kernel source tree, i have downloaded the kernel file,and i want your help,please !

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

    Hi jefby,

    Your post is quite unrelated to the original so this would be better off in a separate thread.

    To build the Linux Kernel you need to clone the linux git repository into a Linux machine or VM:
    git clone https://github.com/Digilent/linux-digilent.git

    Go into the folder it creates and start a new branch:
    git checkout -b zedboard_oob v3.3.0-digilent-12.07-zed-beta

    Make sure your environment variables are set:
    export PATH=$PATH:/path/to/CodeSourcery/
    export CROSS_COMPILE=arm-xilinx-linux-gnueabi-

    Then make for the ARM architecture:
    make ARCH=arm

    If you have more questions I would advise starting a new thread.

    Matthew

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

    Thank you  very much for your reply! I have done this !

    • 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 © 2025 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