-
Notifications
You must be signed in to change notification settings - Fork 3
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
Upstream Raspberry Pi 4 B support #43
Comments
High prio TODOs:
Low prio TODOs:
|
For pinctrl i prefer to use this patch. Since the pinctrl-bcm2835 is generic now, we should use the generic bias properties (bias-disable, bias-pull-up). |
So finally here is the first draft for minimal RPi 4 support: Beware: this is only compile tested! Note: currently this doesn't seem to boot Edit: multi_v7_defconfig seems to be broken |
Hi @lategoodbye, where you aware of this: raspberrypi/linux#3032 (comment). It could be one of the reasons. |
This should be only relevant for aarch64. But thanks for the note. |
The changes should boot now. |
Here is a more cleaner version, which is ready for RFC: |
The RFC series is out now: |
The version 1 is ready for rebase on top of 5.3-rc1: Changes:
|
The version 2 is ready: Changes:
|
The version 3: Changes:
|
I prepared an initial series for the BCM2711 thermal driver (currently untested) https://github.com/lategoodbye/rpi-zero/tree/bcm2711-thermal |
@mbgg I saw that you upstreamed the NVRAM wifi configuration for the RPi 3B+ . Do you plan to do the same for the RPi 4B, because its different configuration? |
The V3 series is out now: |
The version 4: Changes:
TODO:
|
Yes I can take care of this. |
The V4 series is out: |
Based on the recent input from Florian i pushed a tested version of the thermal driver: |
New version for GENET support: and thermal support are out: |
First version of PCIe support: |
Currently booting a RPi 4 (linux-next, multi_v7_defconfig) on ARM32 with more RAM than 1 GB will result in a kernel crash:
As a temporary workaround, place the following entry to config.txt
|
Good choice (see my update above) ;-) In my opinion the dependencies of VC4 are not correct, but i'm not sure other drm drivers are also affected. Everything else is written on the mailing list. You said that you are in the kernel team. Did you ever submitted a kernel patch? |
@lategoodbye I've not submitted a kernel patch yet but I know the process. I'm new to the team, two weeks in. (New college grad). |
Okay, so you work on this regression? Please ask if you have any questions. |
@lategoodbye sorry for the late reply but yes I've been working on the regression. I tried recreating the problem by compiling the new kernel. I had some problems compiling the kernel but I eventually got it to work. The regression doesn't seem to be an issue because my pi boot up just fine. I compiled the kernel version 5.14.0-rc3 and when I did a 'uname -r' after the process, the compiled kernel version was listed....I'm not sure if it was something I did or something someone else did in the -rc3 pi version = RPi4 B |
@chukpozohnToe Just to make it clear, you did the following steps: EDIT: missing step added |
@lategoodbye I didn't do the "make multi_v7_deconfig" part. I compiled the kernel as I usually do. Currently doing another run with the steps you described. |
@chukpozohnToe I'm sorry i missed another step. Please see above. |
According to you notes (I came across it while doing some research) I don't need to do "make menuconfig and enable CONFIG_ARM_LPAE", my Pi is 64bit. Btw how compiled the mainline kernel's very different from how I did it. It did it on Ubuntu 20.04 focal. |
40 bit support for BCM2711 DMA controller has been send out as RFC (not functional): |
What's the current status of this, out of interest? |
@hamishmb What do you mean with this? The whole status of the work or the DMA controller? I spent a lot of spare time to fix regressions for this platform. So there is not much left for "new" topics like upstreaming. |
Oh well, it's just been a while, so I was wondering whether this was complete - I just happened across the thread. |
The table on top is almost up to date. Recent i found a good article which also applies here |
Yeah, it is annoying that eg Raspberry Pi OS isn't using upstream Linux. That's why I didn't ask for an ETA, but sorry if it still came across as pestering - I know it's not an easy job. |
I didn't expect that the Raspberry Pi trading would use the mainline kernel, because they need to integrate new hardware fast. But Arch Linux ARM discourage users from using the mainline kernel, this makes me sad. No, you didn't pester me. Glad to see there is still interest in this topic. |
There definitely is interest! https://gokrazy.org/ uses the latest version of the upstream linux kernel and hence much of your work! So thank you for all that you have made possible :) |
Fedora uses a purely upstream kernel. |
FWIW: Debian uses the upstream kernel as well. I wonder what the current upstream status is wrt SPI. In the table above it is listed as Rework needed and I wonder whether that has been done since (https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=89fcdd53c2528b8f0ed34553aaf9826fe63848b5 seems related)? |
@diederikdehaas Thanks for pointing out, i updated the table. |
So, I have an RPI 4B with 8GB ram? maybe this could be updated? Also, from dri-devel mailinglist, someone pointed out to me that any video decoding is in SW because VCHIQ_codec seems to be the one that does this. IIRC there was a link i found sometime ago that had the sources to build these vchiq things? but i cannot find it anymore... |
Done. Thanks
The video codecs based on VCHIQ aren't mainlined yet, because the VCHIQ driver itself is still in staging. Also there is no official BCM2711 support for VCHIQ in mainline yet. |
i seem to remember a link to a git with some patches that converted armv7 to aarch64 stuff where it had vchiq_arm and such for cec-client to work, but now that i'm looking for this, i can't find it anymore.... |
CEC is handled through the vc4 driver in mainline - no need for VCHIQ. cec-client doesn't handle multiple Linux kernel CEC API interfaces - it has hard defines like that at https://github.com/Pulse-Eight/libcec/blob/master/include/cectypes.h#L287 Use cec-ctl (part of v4l-utils) instead of libcec - libcec is largely abandonware. |
ic, it's just, in the past, i wasn't able to use cec-ctl but cec-client worked, i'll have to spend some time with cec-ctl to understand it more and see if i can get things working like that... |
This quirk is already upstreamed, but it is still in this table. |
Also, "GENET auto power down" is implemented in a different way than the downstream driver. |
Just FYI, I'm picking up your 40bit DMA patchset to get it working, and update for 2712 as well. I'd hope to be looking at early in the new year for a patch set, but it's a slightly moving target. |
@6by9 Thank you very much. This is great ❤️ |
This is not specific to the Raspberry Pi 4, but i assume this is a long expected Mainline feature: GPIO output persistence It will be rolled out with the upcoming Linux 6.10: |
The Raspberry Pi 4 B has a new brand SoC BCM2711 (1.5GHz Quad A72, VideoCore 6)
Upstream status:
Important note: This issue consolidates all the information about the upstreaming of the BCM2711 / Raspberry Pi 4. Please do not report any new issues here because it makes it very hard to track.
The text was updated successfully, but these errors were encountered: