-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update to RTEMS 6 #52
Comments
The first batch of changes is straightforward:
Chasing these changes all the way out is enough to get it to compile, but not to boot all the way to an Erlang shell prompt. |
The first hurdle is that the boot routines in It seems that SD card bring-up has drifted slightly. I'm not sure exactly what's wrong, but putting an extra |
The second hurdle is that ERTS's call to
This gets us all the way to a working Erlang shell! The author of the rtems-libbsd commit, Chris Johns, says that the change was motivated by not wanting users to get two different pipe behaviors depending on linker order, and it won't do to simply rollback this change to get GRiSP working again. That said, I don't think there is something "wrong" with the BSD definition — if the parts of it which are needed to avoid deadlock could be lifted to the IMFS definition, then they'd probably take the patch. |
Networking doesn't seem to work out of the box. The interfaces are there, link events are detected and reported, and all the configuration tools start successfully, but they don't install any settings. The timeout pattern is (again!) slightly different from RTEMS 5, staged between IPv4 and IPv6 and baked into It will be useful to have a debugger to sort out the pipe conflict, and bringing up a debugger is easiest done either by bringing up networking or getting QEMU to emulate the board (or both). |
Not much success getting QEMU to work either. It offers the machine type As part of its build process, RTEMS offers to generate a "testsuite" of smaller applications (e.g., However, these build instructions for linux-imx do yield a binary which generates console output through QEMU. Perhaps I can interpolate between the two to figure out what I'm missing. One kernel boot operation that stands out is |
Hello @ecpeterson, I tried to run the RTEMS master on GRiSP2 some-when during 2022. Back then it worked fine. I didn't try Erlang. Please note that the following patches are still necessary, because they are not in the upstream sources: rtems: For the libbsd patches, I tried to get them into RTEMS-libbsd. It was suggested to upstream them to FreeBSD instead. But FreeBSD never integrated them: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=249231 Also note that currently libbsd on the 6-freebsd-12 branch might has some problems. The NFS patch set added quite some changes. It increased the size of the binaries quite a bit. Due to some differences how to handle that, patches from Sebastian that would also fix some vfs-related problems haven't been accepted. I think for example ntpd didn't work with the 6-freebsd-12 version from 2022. The increased size on the 6-freebsd-12 is unusable for quite some of our projects so I didn't test that branch recently. I'm not sure whether all vfs-related problems are now fixed. So if something doesn't work, you might want to try libbsd master instead. The NFS related patches are not there on that branch. Best regards Christian |
@c-mauderer any updates on this? We have an additional problem now because our current GRiSP toolchain doesn't build on Apple Silicon which are getting the majority of our users system. Or is there a version combination of RSB, libbsd and RTEMS which would build fine on Apple Silicon. |
(No update from me. I started a fresh job and have stopped GRiSPing for the time being. Point taken that one need not use 6-freebsd-12; I had initially adopted that branch because I intended to build GRiSP against a ZynqMP board, which was most convenient to do on a branch with support for board devices. Perhaps that’s a separate project. Heads up, though, about the pipe issue, which will probably eventually rear its head on main.) |
Also I didn't test recently, GRiSP2 should work on an up to date libbsd if the three patches from my last post are applied. But I'm not sure whether the tools build on the Apple Silicon. I think I have seen at least one mail thread on the list that there are some problems. But that's already at least a few month back so the issue could be resolved by now. Back then it was an upstream problem in gcc or gdb. I don't have an Apple device to test anything. But I just pushed an update to our CI branch of the rtems-source-builder: https://github.com/embedded-brains/rtems-source-builder/actions/runs/7897978927 If the build of the ARM tools on MacOS works, It might could be worth to try it on an Apple Silicon too. Edit: It seems that some download currently failed. I try to add a retry for that. |
Currently, GRiSP uses RTEMS 5. I'd like to upgrade it to use RTEMS 6 or later. This was originally motivated by wanting to build GRiSP against a Xilinx target for which RTEMS only gained support on version 6. I'm not interested in that any longer, someone else may be, and I feel it's worth considering the upgrade anyway.
I'm opening this issue to track related work, rather than writing observations into a Slack workspace and losing them to its 90 day time horizon. I'm going to focus on GRiSP 2, since that's the board I have.
The text was updated successfully, but these errors were encountered: