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
RIoTboard
  • Products
  • Dev Tools
  • Single-Board Computers
  • RIoTboard
  • More
  • Cancel
RIoTboard
Forum Board device tree.
  • Blog
  • Forum
  • Documents
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join RIoTboard to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 42 replies
  • Subscribers 23 subscribers
  • Views 4070 views
  • Users 0 members are here
  • device
  • tree
Related

Board device tree.

Former Member
Former Member over 11 years ago

It would be nice if someone can post or point for riotboard device tree file.

 

Just the .dts file that supersedes/overloads the existing arch/arm/boot/dts/imx6qdl.dtsi in linux kernel.

... a kernel defconfig file would be also appreciated.

 

Pablo.

---

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

    It's my understanding that the supported linux kernel is the 3.0.35 version, this is before devicetree came to the arm architecture.

     

    I've not been able to find anything beyond the kernels at https://github.com/embest-tech/linux-imx as mentioned in the users manual.  So it's likely there simply isn't a dts for this board.

     

    Depends on how they've configured the default kernel, but you may be able to get the config used by looking at the contents of /proc/config.gz

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

    Well this helps a little bit but it is not really the way it should be done.

    iMX6 has multifunctional IOs and each board use them in different ways. At

    the given pointer it is rather difficult to know how io muxing has been

    done.

    If you have a look at similar boards like "wandboard" you will see that

    same IOs are not used for the same functions.

    Official linux kernel release provides already support for Wandboard,

    Olinuxino, Zedboard and other equivalent boards based on A10, A13, A20.

    I do not like the idea of having a cooked kernel for this one, I prefer to

    have the freedom of doing all from scratch.

     

    I asked the question just not to do the work twice. Apparently nobody has

    done the dts file for this board yet. I'll try to get it done based on

    latest kernel release. The compiled kernel should be the same for all iMX6

    platforms, the only thing that should change is the device tree for each

    specific board this is the trend to follow on ARM Linux kernels now and

    forget on specific mach-xxxx directories.

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

    Howdy,

    Im going to take a step back from trying to get a later version of linux running on the Riot and revert it back to android. My original aim was to build a set of reusable libraries for linux on SBCs (BBB, RPi, Odroid, etc). So if Element14 are not going to properly support Linux then who am I to waste my time building this for them and adding support for a platform that will not be utilized. Thanks for the help Pablo, hopefully Element14 will get around to releasing a fully supported hard float linux, and hopefully even provide kitkat support for Android.

    Personally I find it disappointing that a board released in 2014 has not come standard with strong support for one of the most widely used OS.

    Marius

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

    Pablo Madewish wrote:

     

    Attached dts and linux config files that you can use to build the kernel. I made a quick test with kernel 3.13.5 (latest stable) taken directly from kernel.org.

     

    It seemed to work well, "selsinork" should not be worried : there was no smoke coming out from the board ;-p !

    Pablo,

    Did you test USB hotplug with this kernel and config ?

     

    USB devices work OK as long as they're plugged in at boot, but hotplugging a device leads to

    [   85.347056] usb 2-1: USB disconnect, device number 2
    [   85.347742] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.347780] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.347811] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.347841] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.347870] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.347882] hub 2-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
    [   85.347947] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.347988] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348025] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348055] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348084] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348096] hub 2-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
    [   85.348160] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348190] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348218] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348247] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348277] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348288] hub 2-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
    [   85.348345] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348371] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348397] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348421] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348444] hub 2-0:1.0: cannot reset port 1 (err = -32)
    [   85.348455] hub 2-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
    [   85.348485] hub 2-0:1.0: unable to enumerate USB device on port 1

    I see other reports of USB hotplug problems on SabreLite and Wandboard, so I suspect this is related, but was wondering if you had any success.

     

    Additionally, wired ethernet seems not to work on 3.13.5 with your config.  Although it's functional with 3.14 as long as you add enable_wait_mode=off to the kernel command line (~25% packet loss otherwise due to known chip errata). Wait mode fixes for ethernet only appear to apply to TO1.2+, the RIot appears to use TO1.1, and the cpuidle driver for the i.MX6solo isn't available in mainline at this point.

     

    I notice there's a driver available for the PFUZE100 PMIC as well now, so I'm going to have a go at getting that working too.

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

    Never mind, got usb working with 3.15-rc and an updated devicetree. PMIC driver seems to work as well.

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

    Hi selsinork. Can you share the updated dts, or where you got it from?

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

    Hi Ian,

     

    Basically I put it together myself, partly based on looking at what Pablo did, and partly by comparing what various other i.MX6 boards were doing.

     

    However there's a wrinkle.. quite a big one actually.  The various devicetree files for i.MX6 underwent a large-ish reorganisation in the 3.15 merge window,  this changes a list of aliases that Pablos dts references meaning that his dts won't compile after the change. My version is based on having these changes in place.

    It seems likely that a compiled dtb from either will work across the boundary. My dts might work prior to the change, but I've not tested it that way.

     

    The change in question is "ARM: dts: imx6qdl: make pinctrl nodes board specific" 817c27a128e18aed840adc295f988e1656fed7d1 and rather than trying to pick a commit ID thats far enough past it I've simply been waiting for 3.15-rc1 to be released as an easy to find point where we know the changes are in place.

     

    FWIW, Eric Bénard said he might submit a dts for RIoT to mainline last weekend here http://article.gmane.org/gmane.comp.boot-loaders.u-boot/183812 but so far I've not seen them posted. We're essentially in the same position with Erics u-Boot patches, they've been accepted but won't get merged until sometime after the release of v2014.04 which may happen tomorrow.

     

    For now, you can find my dts at https://github.com/selsinork/linux/commit/bd96f28b53a34f4aabfe34e22ceccf60e33f8ae8 in the riotboard-dts branch

     

    There are still some things to resolve:

    • i2c4 is missing a clock and I've not had time to figure out how to solve that
    • I've not tested usb-otg
    • haven't added led class support for the two user leds yet
    • camera interfaces are missing
    • hdmi/lvds missing

    the last two are not so much of a problem right now as there are no drivers in mainline for them at this point.

     

    I've tested audio out, usb hotplug, eMMC/SD/uSD cards all of which work. UART and PWM drivers load although I've only physically confirmed the debug uart works so far.

    Any gpio pins on the expansion header that are not claimed by another driver will probably work ok, I've only confirmed a couple so far.

     

    Hope you find it useful, please let me know if you find any problems as if Eric doesn't post his dts then I'll probably submit this to mainline once I'm happy with it.

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

    So, having had a look, i2c4 needs something more invasive than a change to the devicetree.

    It appears that the imx6quad & dual have ecspi5 where the duallite/solo have i2c4 instead, this causes some changes to the clock infrastructure that appear to have been overlooked up to now - nothing else is currently using i2c4.

    So for now since i2c4 is only used for the camera interfaces, I think we'll leave it non-functional while I go and find the right people to propose a fix to.  It's likely any fix will miss the 3.15 merge window anyway, so no big loss for now, we have some time to get the fix ready for 3.16.

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

    Thanks for the info selsinork. I'd like to help out with testing etc., but I'm busy climbing the yocto learning curve, having used ltib & ptxdist before (and pre-devtree kernels). I'll get there, eventually. The camera interface is of interest to me, since that's partly why I got the board.

     

    I'd seen Eric's u-boot patch, but missed his comment about his dts. Thanks for that pointer too.

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

    good luck with yocto, I gave up and used linuxfromscratch.org to build myself out of all of the distro nightmares.

     

    Cameras are something I'm interested in as well, any sort of sensible support in upstream anything seems to be quite rare currently. I've seen a couple of cameras for Sabre-Lite and wandboard which in theory should be useable. Only problem is that they're either insanely expensive, or shipping charges to the UK are.

     

    Anyway, I hopefully have a patch for i2c4, just need to test it.  devicetree setup for the physical camera interface is probably simple enough too.

     

    Getting a test setup running is probably fairly easy outside yocto, all you really need is patched u-boot, patched kernel, and it's likley easy enough to adapt one of Robert Nelsons minimal Debian filesystems - use the wandboard or sabre-lite ones and there may be no changes needed at all.

    If you're willing to tackle yocto, you'll probably find that easy image

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

    Probable i2c4 fix here https://github.com/selsinork/linux/commit/307b206ca99e74c9555555de6849ce22518c9185

    It appears to work for me, but waiting for some confirmation from upstream that nothing else is required.

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

    Looks good. Is there a handy way to correlate <&clks 116> to clk[ecspi5], other than counting the enum (which is a bit tedious)? If not, then some comments in the enum wouldn't go amiss.

     

    Also, I hadn't realised that i.MX6S and i.MX6DL are the same silicon. Bond option to disable the other A9 core I guess (and the unbonded DDR channel).

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

    Looks good. Is there a handy way to correlate <&clks 116> to clk[ecspi5], other than counting the enum (which is a bit tedious)? If not, then some comments in the enum wouldn't go amiss.

     

    Also, I hadn't realised that i.MX6S and i.MX6DL are the same silicon. Bond option to disable the other A9 core I guess (and the unbonded DDR channel).

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

    I don't know enough about the clock framework to be sure, but I think that enum is totally arbitrary.  I found the one to change by using the register offset for i2c4, identified what that was in the quad then looked for the clock it was using in the matching dtsi.  Slightly less tedious than counting the enum image

    Only later did I find Documentation/devicetree/bindings/clock/imx6q-clock.txt which has a list.

    I've posted to the appropriate ML asking if it's acceptable to do it this way, I'm slightly worried they'll ask to split it to clk-imx6dl.c since the name is different, but we'll see.

     

    Going by the datasheets, essentially the Quad/Dual are the same, the DualLite/Solo are the same, and then the SoloLite is the third variant.  There also seems to be variants within these groups depending on whether it's an automotive/consumer/whatever but I assume, perhaps wrongly, that's mostly bonding options as the code doesn't seem to differentiate.

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

    Updated devicetree files can be found in my github repo here https://github.com/selsinork/linux/commits/riotboard-dts2

     

    It includes support for everything there's a driver available for in 3.15-rc*. There seems to be some problems with the imx-drm driver picking invalid modes/clocks at the moment, so to get output on hdmi I need to add video=HDMI-A-1:800x600@60 to the kernel command line.

    LVDS output to the LCD8000-97C works fine, however there's no driver for the touchscreen controller it uses in mainline at the moment.

    For useable ethernet you probably also want to add enable_wait_mode=off

    • 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