On 24/02/2020 23:26, Chris Johns wrote: >> On 24 Feb 2020, at 7:39 pm, Christian Mauderer >> <christian.maude...@embedded-brains.de> wrote: >> >> On 24/02/2020 07:01, Chris Johns wrote: >>> >>> >>>>> On 24 Feb 2020, at 5:32 am, Christian Mauderer <l...@c-mauderer.de> wrote: >>>> >>>> On 23/02/2020 17:07, Alan Cudmore wrote: >>>>> I have been trying to bring up RTEMS with rtems-libbsd on the >>>>> beaglebone black (latest master). >>>>> >>>>> I can run the regular RTEMS samples on the board, and a couple of the >>>>> rtems-libbsd testsuite examples run as well. >>>>> >>>>> The samples such as ping01 and usb01 get a fatal exception in the >>>>> function fdt_ro_probe_ , leading me to believe that maybe I am not >>>>> using the correct device tree blob. >>>>> >>>>> I'm using the instructions here: >>>>> https://git.rtems.org/rtems-docs/tree/user/bsps/arm/beagle.rst >>>>> >>>>> And I have am loading am335x-boneblack.dtb that I copied from a linux >>>>> u-boot build. The instructions talk about getting the one from the >>>>> FreeBSD repository, but there are many other files included in that >>>>> dts source. >>>>> >>>>> What dtb is normally used for the Beaglebone black RTEMS libbsd testing? >>>>> >>>>> Is the dtb needed for the non-libbsd BSP? >>>>> >>>>> Also, is the ethernet supported on the RTEMS beagle BSP, or do I need >>>>> libbsd to get ethernet? >>>>> >>>>> Thanks, >>>>> Alan >>>> >>>> Hello Alan, >>>> >>>> I recommend to use the FreeBSD device trees. libbsd is FreeBSD based and >>>> therefore works best with them. Normally I would suggest to use the >>>> version matching the FreeBSD commit used in libbsd. But unfortunately in >>>> the last commit that doesn't seem to work. Vijay had some problems with >>>> it and noted that the version from FreeBSD commit >>>> 19a6ceb89dbacf74697d493e48c388767126d418 works fine. >>> >>> Is this with 5 branch in Libbsd? >>> >>> I am a little confused about the branch to package in a release and also >>> which FDT files we need for which branch. If different I feel a release >>> will makes things more complicated. This flies into the BSP vertical stack >>> building in the RSB. >>> >>> I am working on releasing and I hope this does not block things. >>> >>> Chris >> >> Hello Chris, >> >> the non-working device tree is for the master branch from a few weeks >> back. I didn't tested it with the 5-freebsd-12 branch. > > Which FDT files are needed for the 5-freebsd-12 branch? I could assume the > 12-release branch in the FreeBSD repo however this is a guess, unfriendly on > our > part and time consuming to sort out. I am not sure how we improve this and how > we should manage FDT source but we need to address the issue.
Same problem here. The topic already popped up multiple times and I can't really answer it. Like I said multiple time: My approach is to use the fdt that matches the FreeBSD commit used in libbsd. So for the 5-freebsd-12 branch that is the one from FreeBSD commit 0d1c391321b34b3025cf0e72f2231d836ff76da8. But it's not a rule that works for all BSPs. Some BSPs are adapted to use a board manufacturers DTB or some random Linux one. > > There are long time RTEMS users including myself struggling with this so it > is a > clear indication in my mind we have an issue we need to improve. > >>> Again: In the normal case I would just suggest to use the FDT sources >> that match the FreeBSD commit we use for libbsd. That worked best for me >> in the past. But in the current referenced commit FreeBSD has updated >> the device tree sources to the ones from a recent Linux version and the >> drivers haven't been adapted yet (on master - I expect that it works >> better on 5-freebsd-12). >> >> Regarding the release: I don't think you pack the FDT files (yet), do >> you? > > No I do not but then should I be the one doing this in a release. I would have > thought this is a core issue for the BSPs that depend on FDT blobs at runtime. > > I am up to libbsd with the release packaging. I can build a beagleboneblack > as a > vertical stack up to libbsd and then I hit the issue of using master and not > the > 5-freebsd-12 branch and after that is the rtems_waf submodule naming. I would > like to resolve this in the RSB however before I do this I would like to > resolve > the FDT files so I make a single pass over this. > >> So I don't see why there should be a reason for this topic to block >> the release. > > I do. To not handle this is to create a release where the files in the release > package crash a beagleboneblack with libbsd unless you manually get the > correct > set of FDT files. This is unhelpful for users in a release context. > > Consider a release called rtems-libbsd-5.0.5.tar.xz that you build. Some of > the > libbsd tests work and some do not. Is the RTEMS release broken? You have never > used RTEMS and you have never used libbsd. It is all new, untested and > unfamiliar and when you follow a simple example to start networking it > crashes. > After a bit of digging or a post to the user list and you find out you are > suppose to find FDT files to match from deep in the FreeBSD source. This is > not > user friendly and we have not packaged what is needed to run a board. FDT is > important to RTEMS so it is important we manage it. > > I would like this resolved this and for the RTEMS 5 release. The more that > help > and contribute the quicker it is done and sooner I can release RTEMS 5. Although I agree that it would be great to have that issue resolved, I'm not sure whether it is doable in the time frame. I think we should consider whether we really want to block a release for it. Depending on the used approach it could mean moving the release for weeks or years. In the later case it might be better to add it as a target for the next release. > >> Note that the exact FDT version used for different BSPs is still a >> bigger problem. > > I see it as the same problem, it is just bigger in size than a BBB. > >> Some BSPs expect a version provided by a board >> manufacturer. Some use a random Linux DTB. And some work well with the >> ones from FreeBSD (which is just a snapshot of the Linux ones) - that's >> the method I prefer because it works well with libbsd most of the time. > > This is a developer's point of view. We need to move beyond this and manage it > for our users. The user manual for imx and qoriq state FDT blobs are needed > with > the statement ... > > "A boot loader with device tree support must be used to start the > BSP, e.g. U-Boot." > > And the only other reference is "loadfdt". As far as I know the hand over ABI > between u-boot and RTEMS is not some accepted standard so you need to use > u-boot > and you need u-boot to load the FDT blobs. However there is nothing to say > what > FDT blobs to use? The standard is to use the Linux API. That's why some of the BSPs moved to a use mkimage with OS type Linux. I think RTEMS as OS type should be discouraged by now. > >> I think currently the right device tree for the board is only documented >> in the User Manual (if it is documented). > > It is good to document the FDT for a board but I think links such as the one > in > the BBB section are fragile at best and dangerous at worst. Links like this > break down with branches. A user for RTEMS 5 would need to remember to > reference > the branch's documentation and not master. This is simple to miss and an > incorrect FDT file is difficult to debug. I have to disagree here: For a release the only valid documentation is the release version. We can't possibly keep the documentation in a state that documents all past versions of RTEMS. That's why there are versions of the documentation. Otherwise you wouldn't even have to pack the documentation into a release. > > Chris > Back to the FDT problem: I think there are multiple approaches. All of them need work and I'm not yet sure who could do it and in what time frame. Some ideas that I think could be possible: 1. Add a dts import and the build infrastructure to create dtb files to libbsd. This would allow to update and manage the device trees together with FreeBSD (which are in my view the best ones for libbsd). We could add custom dts files to rtemsbsd or some other directory. Pro: Up to date FDTs that match libbsd and work well with it. Con: Not all BSPs have to use libbsd in every case. Of course the build system can be used anyway but it maybe is a bit unexpected for users if the dtb has to be build using libbsd even if libbsd isn't used. 2. Create a own dts repository together with a build system. Pro: Very well control over the FDTs. Very few problems adding foreign files. The files with different licenses (dts is often GPL because it is extracted from the Linux tree) is well isolated. Con: Most likely it's a bit harder to keep it up to date. It adds another version dependency between different repos (you have to use the right RTEMS commit, the right libbsd commit, the right documentation commit and the right device tree commit). 3. Add dts to RTEMS core. Pro: Same as 2 without the license isolation. Con: Same as 2 without the repo dependency. 4. Add binaries to some repo. Con: Binaries (Although "Binary" is a bit of a difficult term here. You can quite easily decompile them. But you loose names.) 5. Some better approach? Problem for 1. to 3.: What to do if there is no dts for some board because the manufacturer didn't deliver one? Note: I have a slight preference for approach 1. But I'm not strongly convinced of it. So I'm open for discussions. Note2: If we don't force it for the release maybe it could be a GSoC topic? At least 1 is quite a bit of work: Get familiar with libbsd build system. Add an importer. Add dtc to rtems source builder if it isn't already there. Import the scripts from FreeBSD to build dtb files. Find an approach to connect dts with BSPs or alternatively build all dtb at once. Test dtb with at least one BSP. Best regards Christian -- -------------------------------------------- embedded brains GmbH Herr Christian Mauderer Dornierstr. 4 D-82178 Puchheim Germany email: christian.maude...@embedded-brains.de Phone: +49-89-18 94 741 - 18 Fax: +49-89-18 94 741 - 08 PGP: Public key available on request. Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG. _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel