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
  • 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
Mini-ITX Hardware Design NVIDIA GPU on axi-pcie bus
  • 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 335 subscribers
  • Views 1070 views
  • Users 0 members are here
Related

NVIDIA GPU on axi-pcie bus

Former Member
Former Member over 10 years ago

Hello again!

I'm hoping to get help getting NVIDIA's nvidia-340 module to insert on Ubuntu 14.04 running on the ZYNQ-7000.

On the last post I created, I was trying to get the PCIe bus recognized in Ubuntu 14.04, and I was successful with this forum's help.

I've now got the mini-ITX board running headless with Ubuntu (Linaro) 14.04, running Xilinx's 3.13 kernel. I can see my card, an NVIDIA GTX 660 Ti, on the PCIe bus, I can see that it initializes on the bus properly, and lspci shows that the card looks healthy.

root@linaro-developer:~/samples# lspci
00:00.0 PCI bridge: Xilinx Corporation Device 0706
01:00.0 VGA compatible controller: NVIDIA Corporation GK104 [GeForce GTX 660 Ti] (rev a1)

lshw shows the PCIe bus, and the card shows up and looks healthy, and more importantly hasn't been claimed by any other modules:
     *-pci
          description: PCI bridge
          product: Xilinx Corporation
          vendor: Xilinx Corporation
          physical id: 0
          bus info: pci@0000:00:00.0
          version: 00
          width: 32 bits
          clock: 33MHz
          capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
          resources: ioport:1000(size=4096) memory:60000000-6bffffff
        *-display UNCLAIMED
             description: VGA compatible controller
             product: GK104 [GeForce GTX 660 Ti]
             vendor: NVIDIA Corporation
             physical id: 0
             bus info: pci@0000:01:00.0
             version: a1
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi pciexpress vga_controller cap_list
             configuration: latency=0
             resources: memory:6a000000-6affffff memory:60000000-67ffffff memory:68000000-69ffffff ioport:1000(size=128) memory:6b000000-6b07ffff

I built the nvidia-340 module against my kernel's natively-compiled (I compiled the kernel on the mini-ITX itself to make the correct source available) code and headers, and it built successfully. When I attempt to modprobe the driver, it fails:

root@linaro-developer:~/samples# modprobe nvidia
modprobe: ERROR: could not insert 'nvidia_340': No such device

Looking at dmesg, it complains that it cannot find an IRQ for the NVIDIA card:

root@linaro-developer:~/samples# dmesg | tail
[<c0082f20>] (SyS_finit_module+0x88/0xa0) from [<c000e5a0>] (ret_fast_syscall+0x0/0x48)
---[ end trace 9c2b35f227d16bf6 ]---
NVRM: Can't find an IRQ for your NVIDIA card!
NVRM: Please check your BIOS settings.
NVRM: [Plug & Play OS] should be set to NO
NVRM: [Assign IRQ to VGA] should be set to YES
nvidia: probe of 0000:01:00.0 failed with error -1
NVRM: The NVIDIA probe routine failed for 1 device(s).
NVRM: None of the NVIDIA graphics adapters were initialized!
NVRM: NVIDIA init module failed!

I've tried everything I can think of, and posts on NVIDIA forums haven't turned up anything useful. For reference, here's my current entry in my device tree, where I've tried to use "advanced interrupt mapping" to clarify IRQ mapping:

axi_pcie_0: axi-pcie@50000000 {
t#address-cells = <3>;
t#size-cells = <2>;
t#interrupt-cells = <1>;
tcompatible = "xlnx,axi-pcie-2.3", "xlnx,axi-pcie-1.05.a";
tinterrupt-parent = <&ps7_scugic_0>;
tinterrupts = <0 29 4>;
tinterrupt-map-mask = <0 0 0 7>;
tinterrupt-map = <0 0 0 1 &ps7_scugic_0 1>,
ttt<0 0 0 2 &ps7_scugic_0 2>,
ttt<0 0 0 3 &ps7_scugic_0 3>,
ttt<0 0 0 4 &ps7_scugic_0 4>;
tranges = <0x2000000 0x0 0x60000000 0x60000000 0x0 0xc000000>;
treg = <0x50000000 0xc000000>;
tdevice_type = "pci";
txlnx,axi-aclk-freq-hz = <0x7735940>;
txlnx,axibar-0 = <0x60000000>;
txlnx,axibar-1 = <0xffffffff>;
txlnx,axibar-2 = <0xffffffff>;
txlnx,axibar-3 = <0xffffffff>;
txlnx,axibar-4 = <0xffffffff>;
txlnx,axibar-5 = <0xffffffff>;
txlnx,axibar-as-0 = <0x0>;
txlnx,axibar-as-1 = <0x0>;
txlnx,axibar-as-2 = <0x0>;
txlnx,axibar-as-3 = <0x0>;
txlnx,axibar-as-4 = <0x0>;
txlnx,axibar-as-5 = <0x0>;
txlnx,axibar-highaddr-0 = <0x6fffffff>;
txlnx,axibar-highaddr-1 = <0x0>;
txlnx,axibar-highaddr-2 = <0x0>;
txlnx,axibar-highaddr-3 = <0x0>;
txlnx,axibar-highaddr-4 = <0x0>;
txlnx,axibar-highaddr-5 = <0x0>;
txlnx,axibar-num = <0x1>;
txlnx,axibar2pciebar-0 = <0x60000000>;
txlnx,axibar2pciebar-1 = <0x0>;
txlnx,axibar2pciebar-2 = <0x0>;
txlnx,axibar2pciebar-3 = <0x0>;
txlnx,axibar2pciebar-4 = <0x0>;
txlnx,axibar2pciebar-5 = <0x0>;
txlnx,class-code = <0x60400>;
txlnx,comp-timeout = <0x1>;
txlnx,device-id = <0x706>;
txlnx,ep-link-partner-rcb = <0x0>;
txlnx,family = "zynq";
txlnx,include-baroffset-reg = <0x1>;
txlnx,include-rc = <0x1>;
txlnx,instance = "axi_pcie_0";
txlnx,interrupt-pin = <0x0>;
txlnx,max-link-speed = <0x0>;
txlnx,no-of-lanes = <0x4>;
txlnx,num-msi-req = <0x0>;
txlnx,pcie-blk-locn = <0x0>;
txlnx,pcie-cap-slot-implemented = <0x1>;
txlnx,pcie-use-mode = "3.0";
txlnx,pciebar-as = <0x0>;
txlnx,pciebar-len-0 = <0x1e>;
txlnx,pciebar-len-1 = <0xd>;
txlnx,pciebar-len-2 = <0xd>;
txlnx,pciebar-num = <0x1>;
txlnx,pciebar2axibar-0 = <0x0>;
txlnx,pciebar2axibar-0-sec = <0x1>;
txlnx,pciebar2axibar-1 = <0xffffffff>;
txlnx,pciebar2axibar-1-sec = <0x1>;
txlnx,pciebar2axibar-2 = <0xffffffff>;
txlnx,pciebar2axibar-2-sec = <0x1>;
txlnx,ref-clk-freq = <0x0>;
txlnx,ref-clk-freq-hz = <0x5f5e100>;
txlnx,rev-id = <0x0>;
txlnx,s-axi-ctl-aclk-freq-hz = <0x7735940>;
txlnx,s-axi-ctl-protocol = "AXI4LITE";
txlnx,s-axi-id-width = <0x1>;
txlnx,s-axi-support-threads = <0x1>;
txlnx,s-axi-supports-narrow-burst = <0x1>;
txlnx,s-axi-supports-read = <0x1>;
txlnx,s-axi-supports-write = <0x1>;
txlnx,subsystem-id = <0x6100>;
txlnx,subsystem-vendor-id = <0x0>;
txlnx,vendor-id = <0x10ee>;
} ;

Is there any help anyone can give? I'm especially interested in any insight into more advanced device tree configuration for the axi-pcie, or a way to get more debugging information out of modprobe, but any information is much appreciated.

At this point, I'm at a loss, and I'm quickly coming to the conclusion that the miniITX isn't going to work for my application.

Thanks!

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

    Hi,

     It seems like you are running into too many roadblocks with the infrastructure, and I would like to recommend a different approach for this particular development.  It's our goal to get you (and all our customers!) past all of the problems wrestling with infrastructure, and onto a platform for software development that allows you to focus on your product instead.  

    So to that end I have escalated this to our expert Linux partner team at Wind River.  We believe that using the open source Wind River Linux 7 platform we will be able to quickly get over the issues you are currently seeing, and still allow you to continue unimpeded with your existing development environment.  

    I will contact you outside this forum to discuss how this can work and see if you would like to try this alternative approach.

    Ron

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • henry10210
    0 henry10210 over 10 years ago

    Hi, I am VERY interested in this topic, because I plan to migrate to ITX once the Zedbiard prototype works.  There is a ITX PCIe root complex reference design, but is there any example of a working nVidia GPU intergration with ITX somewhere?

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

    Hello

    Is there any progress on this? I, too, am trying to get an NVIDIA GPU working with this board. According to NVIDIA, the only tested kernel version and dist is 3.13 and Ubuntu 14.04. See: docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux

    Due to the above, I have had to checkout u-boot from the 2014.1 tag and use the Xilinx kernel from the 2014.1 tag as well.

    This is probably long before any of the Mini-ITX DTS or specific defconfig files for u-boot were made available (if they are now).

    I'm looking for some guidance here. There is a video on Xilinx's youtube channel that shows how the PCIe root complex design needs to be done. I have followed this to the letter. I also requested our Xilinx FAE to help in getting the source files so users can just use them instead of following the video.

    Anyway, thereafter, I generated the bitstream and the FSBL (default). I have also generated u-boot (off of 2014.1 tag) but probably using the wrong config file (none is available). And the kernel too, using 2014.1 (for 3.13). But again, am probably using the wrong DTS.

    Eventually, I would like to run Ubuntu 14.04 (with kernel 3.13) on this board. Hence, looking for some guidance. Please share thoughts if any.

    Thanks!

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

    Hello

    Is there any progress on this? I, too, am trying to get an NVIDIA GPU working with this board. According to NVIDIA, the only tested kernel version and dist is 3.13 and Ubuntu 14.04. See: docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux

    Due to the above, I have had to checkout u-boot from the 2014.1 tag and use the Xilinx kernel from the 2014.1 tag as well.

    This is probably long before any of the Mini-ITX DTS or specific defconfig files for u-boot were made available (if they are now).

    I'm looking for some guidance here. There is a video on Xilinx's youtube channel that shows how the PCIe root complex design needs to be done. I have followed this to the letter. I also requested our Xilinx FAE to help in getting the source files so users can just use them instead of following the video.

    Anyway, thereafter, I generated the bitstream and the FSBL (default). I have also generated u-boot (off of 2014.1 tag) but probably using the wrong config file (none is available). And the kernel too, using 2014.1 (for 3.13). But again, am probably using the wrong DTS.

    Eventually, I would like to run Ubuntu 14.04 (with kernel 3.13) on this board. Hence, looking for some guidance. Please share thoughts if any.

    Thanks!

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

    Hello

    Is there any progress on this? I, too, am trying to get an NVIDIA GPU working with this board. According to NVIDIA, the only tested kernel version and dist is 3.13 and Ubuntu 14.04. See: docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux

    Due to the above, I have had to checkout u-boot from the 2014.1 tag and use the Xilinx kernel from the 2014.1 tag as well.

    This is probably long before any of the Mini-ITX DTS or specific defconfig files for u-boot were made available (if they are now).

    I'm looking for some guidance here. There is a video on Xilinx's youtube channel that shows how the PCIe root complex design needs to be done. I have followed this to the letter. I also requested our Xilinx FAE to help in getting the source files so users can just use them instead of following the video.

    Anyway, thereafter, I generated the bitstream and the FSBL (default). I have also generated u-boot (off of 2014.1 tag) but probably using the wrong config file (none is available). And the kernel too, using 2014.1 (for 3.13). But again, am probably using the wrong DTS.

    Eventually, I would like to run Ubuntu 14.04 (with kernel 3.13) on this board. Hence, looking for some guidance. Please share thoughts if any.

    Thanks!

    • 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