Open lategoodbye opened 5 years ago
@charlesfendt Yes, CM4 uses the same SoC BCM2711, and at first sight, there aren't many HW changes. That said, as @lategoodbye says, the devil is in the details. The boards aren't available yet. It's just a pre-order. Once I get my hands into one of them, I'll update this issue with more information on the actual challenges.
@vianpl I'll ping Gordon to see if we can arrange for a CM4 (or some flavour) and CMIO4 to be sent out to you. I assume your suse.de address is the best one to contact you? We'll need a shipping address and contact phone number.
Please post everything CM4 related stuff in #48 Thanks
May I ask - spi is mentioned as being Under review, but I can't seem to find where the review is being done? I have checked the linux-kernel-rpi mailing list and not finding it there?
Sorry, i need to say: it's complicated.
The relevant patch spi: bcm2835: Enable shared interrupt support has been applied and reverted at the same day since it caused a regression.
But i lost track of the last discussion. I assume this is the last patch version: https://patchwork.kernel.org/project/spi-devel-general/patch/20200604212819.715-1-f.fainelli@gmail.com/
Regarding to your last question. Driver patches doesn't need to be send to linux-kernel-rpi in order to get applied. The subsystem mailing list is more relevant.
I will update the status.
Ah, fair enough, thanks for the pointer. I'm used to the msm mailing list where it goes to msm as well as the subsystems. Thanks for the heads up. I guess I'll look into it a bit myself since it seems to be untouched since 2020 06.
More information about DMA: https://github.com/raspberrypi/documentation/issues/1903
Hi @lategoodbye . I would like to contribute; I see that the above list hasn't been updated in a while. Could you please reply with a list of things that needs to be worked on so I can pick one?
A little about myself, I'm Erastus, a software engineer at Red Hat. I work on the kernel team.
Hi @chukpozohnToe, thanks for your interest. The list above represent my understanding and is up to date.
Are your contributions limited to the Raspberry Pi 4 or do they cover general Raspberry Pi topics?
What do you want to do:
The latest v3d RFC patchset is here https://lists.freedesktop.org/archives/dri-devel/2021-February/297035.html but it's currently blocked due to lack of information/feedback on the power domain pieces from RPi/Broadcom.
The POE HAT pwm pieces landed upstream in 5.13.
There's new cyprus firmwares for the kr00k fixes in upstream linux-firmware that work with RPi series. Although there's no firmware for the RPi-400 in linux-firmware because it's a synaptics part.
@nullr0ute Thanks for the update. Nicolas has added some points that i wasn't totally aware of.
Regarding the kr00k fixes firmware, i'm not sure that the stability issues has been fixed.
Regarding the kr00k fixes firmware, i'm not sure that the stability issues has been fixed.
I'm basing it purely on Fedora uses, and we have the same brcmfmac devices across a number of devices, and we've had no complaints (and people complain quickly and often). Also note that upstream there's a newer cypress firmware (will be in the next tagged release in the next day or so) that also fixes the more recent "12 frag attacks" vulnerabilities too.
@nullr0ute Thanks for the update. Nicolas has added some points that i wasn't totally aware of.
It would be really awesome if we could get some assistance to sort out the power domain v3d issues. It's probably the highest request I get.
I'm sorry, i cannot help with this point.
Hi @chukpozohnToe, thanks for your interest. The list above represent my understanding and is up to date.
Are your contributions limited to the Raspberry Pi 4 or do they cover general Raspberry Pi topics?
What do you want to do:
- fixing recent regressions
- upstream vendor patches
- help to move drivers out of staging
- implement new feature
My contributions cover general Raspberry pi topics. I would like to "implementing new feature" and also "fixing recent regressions". But over time, it'll be fun to venture in the others.
@chukpozohnToe Regarding new features, you are little bit on your on. You can pick one topic from the list above, but it's much easier to upstream existing vendor patches. But i'm always available as reviewer.
Here are the recent critical regressions i'm aware of (5.13 & 5.14):
There might be more ;-)
Update: The workaround for 1. has been applied and Maxime Ripard is working on 2.
@lategoodbye I will take your word for it and upstream existing vendor patches. But it's definitely a goal of mine to implement a new feature some day. Do you have a list of vendor patches that needs to be upstreamed?
Here is a list: https://github.com/lategoodbye/rpi-zero/issues/21
But it's not complete. I can add more.
Relevant candidates have status: not send yet
Be aware: some patches need commit log rewording or other improvements
@lategoodbye I'm going to take a crack at "[Regression] No framebuffer console on Rpi since 5.14-rc1" https://lists.freedesktop.org/archives/dri-devel/2021-July/315306.html
If you any information on it, I'll appreciate it.
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 OS = ubuntu
@chukpozohnToe Just to make it clear, you did the following steps: setup compiler checkout v5.14-rc3 make multi_v7_defconfig make menuconfig and enable CONFIG_ARM_LPAE make
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): https://lore.kernel.org/linux-arm-kernel/1640606743-10993-1-git-send-email-stefan.wahren@i2se.com/T/#t
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 When will mainlining be done? But as long as most of the Linux distributions use the downstream kernel this job will never be finished.
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.
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.
The Raspberry Pi 4 B has a new brand SoC BCM2711 (1.5GHz Quad A72, VideoCore 6)
* LPDDR4 (1-4 GB)
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...
So, I have an RPI 4B with 8GB ram? maybe this could be updated?
Done. Thanks
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...
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 :heart:
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: https://github.com/torvalds/linux/commit/8ff05989b44e1a8f7d2bbe67320990ebc2fbb5e5
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.