Skip to content
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

Open
lategoodbye opened this issue Jul 2, 2019 · 99 comments
Open

Upstream Raspberry Pi 4 B support #43

lategoodbye opened this issue Jul 2, 2019 · 99 comments

Comments

@lategoodbye
Copy link
Owner

lategoodbye commented Jul 2, 2019

The Raspberry Pi 4 B has a new brand SoC BCM2711 (1.5GHz Quad A72, VideoCore 6)

  • LPDDR4 (1-8 GB)
  • VIA Labs VL805 USB 3.0 Host controller (XHCI)
  • USB bridge with 2x USB 3.0 and 2x USB 2.0 ports
  • DWC2 controller with 1 USB C USB Host / Peripheral port
  • Gigabit Ethernet with BCM54213PE PHY
  • 2x Micro HDMI 2.0 slots
  • PCIe 2.0 bus with 1 lane (USB hub)
  • 40 bit DMA controller
  • GICv2 interrupt controller
  • new eMMC controller (support for DDR50)
  • 58 GPIOs
  • 6 UART
  • 5 SPI
  • 6 I2C (without clock stretch bug)
  • 2 DSI
  • 2 CSI
  • 2 PWM units with 2 channels
  • Cypress CYW43455 (802.11 b/g/n/ac Wifi chip via SDIO, Bluetooth 5.0 via UART)

Upstream status:

Component Status Assigned
pinctrl Applied for 5.4 -
sdhci Applied for 5.4 -
sdhci SD power support Applied for 5.x Nicolas Saenz Julienne
i2c Applied for 5.4 -
initial clock support Applied for 5.4 Stefan Wahren
initial devicetree Applied for 5.5 Stefan Wahren
bluetooth Applied for 5.5 Stefan Wahren
thermal Applied for 5.6 Stefan Wahren
hwrng Applied for 5.6 Stephen Brennan
spi Applied for 6.0 Martin Sperl
bcm2835-power Applied for 6.0 Stefan Wahren
GENET Applied for 5.5 Matthias Brugger, Stefan Wahren
GENET clocks tbd Unknown
GENET auto power down Applied for 5.16 Florian Fainelli
DMA arm32 WIP Nicolas Saenz Julienne
DMA arm64 Applied for 5.5 Nicolas Saenz Julienne
PCIe Applied for 5.6 James Quinlan, Nicolas Saenz Julienne
PCIe CLKREQ# mode Applied for 6.8 James Quinlan
NVRAM Wifi configuration Applied Matthias Brugger
Wifi firmware with Kr00k fixes Applied
DMA engine 40 bit support RFC Cleanup Dave Stevenson
VCHIQ camera updates Unknown
VCHIQ audio updates Unknown
VCHIQ VPU/CPU shmem (vcsm-cma) WIP Umang Jain, Laurent Pinchart
VCHIQ ISP WIP Umang Jain, Laurent Pinchart
VCHIQ codecs Unknown
clk-bcm2835 improvements Unknown
VL805 LPM support Applied for 5.7 Nicolas Saenz Julienne
built-in xHCI Applied for 6.8 Stefan Wahren
xHCI quirks Unknown
GPIO labels Applied for 5.7 Stefan Wahren
58 GPIO support Applied for 5.7 Stefan Wahren
BCM2711 get pinconf Applied for 6.10 Stefan Wahren
DVFS cpufreq support Unknown
VC4 HDMI (Display/Audio) Applied for 5.10 Maxime Ripard
V3D GPU Applied for 6.0 Nicolas Saenz Julienne, Peter Robinson
PoE Fan hat Applied for 5.13 Nicolas Saenz Julienne

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.

@lategoodbye
Copy link
Owner Author

lategoodbye commented Jul 2, 2019

High prio TODOs:

  • clk changes
  • spi controller changes
  • DMA controller changes

Low prio TODOs:

  • interrupt controller changes
  • power changes (new driver?)
  • V3D changes
  • USB changes
  • vchiq changes

@lategoodbye
Copy link
Owner Author

lategoodbye commented Jul 4, 2019

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).

@lategoodbye
Copy link
Owner Author

lategoodbye commented Jul 6, 2019

So finally here is the first draft for minimal RPi 4 support:
https://github.com/lategoodbye/rpi-zero/tree/bcm2838-initial

Beware: this is only compile tested!

Note: currently this doesn't seem to boot

Edit: multi_v7_defconfig seems to be broken

@vianpl
Copy link
Collaborator

vianpl commented Jul 8, 2019

Note: currently this doesn't seem to boot

Hi @lategoodbye, where you aware of this: raspberrypi/linux#3032 (comment). It could be one of the reasons.

@lategoodbye
Copy link
Owner Author

This should be only relevant for aarch64. But thanks for the note.
I tried to build the downstream kernel tree with multi_v7_defconfig and this fails to boot differently. So i think this should be fixed first: raspberrypi/linux#3057

@lategoodbye
Copy link
Owner Author

The changes should boot now.

@lategoodbye
Copy link
Owner Author

Here is a more cleaner version, which is ready for RFC:
https://github.com/lategoodbye/rpi-zero/tree/bcm2838-initial-rfc

@lategoodbye
Copy link
Owner Author

The RFC series is out now:
https://marc.info/?l=linux-arm-kernel&m=156339329211593&w=2

@lategoodbye
Copy link
Owner Author

The version 1 is ready for rebase on top of 5.3-rc1:
https://github.com/lategoodbye/rpi-zero/tree/bcm2711-initial

Changes:

  • change BCM2838 -> BCM2711 as discussed in RFC
  • update MAINTAINERS accordingly
  • drop "spi: bcm2835: enable shared interrupt support" from series
  • squash all pinctrl-bcm2835 changes into one patch
  • introduce SoC specific clock registration as suggested by Florian
  • fix watchdog probing for Raspberry Pi 4
  • convert brcm,bcm2835.txt to json-schema
  • move VC4 node to bcm2835-common.dtsi
  • fallback to legacy pull config for Raspberry Pi 4
  • revert unintended change of mailbox in bcm283x.dtsi
  • add reference for arm64

@lategoodbye
Copy link
Owner Author

lategoodbye commented Jul 25, 2019

The version 2 is ready:
https://github.com/lategoodbye/rpi-zero/tree/bcm2711-initial-v2

Changes:

  • rebased on top of Linux 5.3-rc2
  • use separate board file for BCM2711
  • enable ARM_GIC for ARCH_BCM2835
  • move already applied patches at the beginning
  • add Acked-by and Reviewed-by
  • fix arm-pmu and timer nodes for BCM2711 noticed by Marc
  • enable HDMI at board level
  • move HDMI and pixelvalve into bcm2835-common.dtsi as suggested by Eric
  • fix DWC2 probing warning
  • disable clock stretching quirk for BCM2711
  • fix order of node references in bcm2711.dtsi
  • mark PLLD_PER as critical clock
  • make PLLH clock unavailable on BCM2711
  • fix compile warning in clk-bcm2835 for arm64

@lategoodbye lategoodbye changed the title Upstream Raspberry Pi 4 B support Upstream initial Raspberry Pi 4 B support Aug 14, 2019
@lategoodbye
Copy link
Owner Author

lategoodbye commented Aug 17, 2019

The version 3:
https://github.com/lategoodbye/rpi-zero/tree/bcm2711-initial-v3

Changes:

  • rebased on top of Linux 5.4-pre-rc1
  • add Reviewed-by
  • configure i2c pull-up in dts
  • move i2c2 to bcm2835-common.dtsi
  • add missing compatibles to DT schema
  • fix DT schema warnings in dtsi files
  • replace brcm pintrl with generic pinctrl binding
  • make dma_zone_size depend on CONFIG_ZONE_DMA

@lategoodbye
Copy link
Owner Author

lategoodbye commented Aug 29, 2019

I split out the clk and the i2c changes from the original series to increase chance for Linux 5.4 merge.

Edit: i2c changes has been applied

@lategoodbye
Copy link
Owner Author

I prepared an initial series for the BCM2711 thermal driver (currently untested)

https://github.com/lategoodbye/rpi-zero/tree/bcm2711-thermal

@lategoodbye
Copy link
Owner Author

@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?

@lategoodbye
Copy link
Owner Author

The V3 series is out now:
https://marc.info/?l=linux-arm-kernel&m=156967248011963&w=2

@lategoodbye
Copy link
Owner Author

lategoodbye commented Sep 30, 2019

The version 4:
https://github.com/lategoodbye/rpi-zero/tree/bcm2711-initial-v4

Changes:

  • rebased on top of Linux 5.4-rc1
  • make select CONFIG_ZONE_DMA for arm
  • fix up spi reference
  • drop "always-on" for armv8-timer
  • add and fix comments
  • fix Bluetooth
  • add arm64 devicetree link

TODO:

  • mention possible conflict with recent pm revert

@mbgg
Copy link

mbgg commented Oct 2, 2019

@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?

Yes I can take care of this.

@lategoodbye
Copy link
Owner Author

The V4 series is out:
https://marc.info/?l=linux-arm-kernel&m=157037581825574&w=2

@lategoodbye
Copy link
Owner Author

Based on the recent input from Florian i pushed a tested version of the thermal driver:
https://github.com/lategoodbye/rpi-zero/tree/bcm2711-thermal

@lategoodbye
Copy link
Owner Author

New version for GENET support:
https://marc.info/?l=linux-arm-kernel&m=157270222523348&w=2

and thermal support are out:
https://marc.info/?l=linux-arm-kernel&m=157261586102794&w=2

@lategoodbye
Copy link
Owner Author

First version of PCIe support:
https://marc.info/?l=linux-arm-kernel&m=157307676011376&w=2

@lategoodbye
Copy link
Owner Author

lategoodbye commented Nov 25, 2019

Currently booting a RPi 4 (linux-next, multi_v7_defconfig) on ARM32 with more RAM than 1 GB will result in a kernel crash:

[    2.994985] Unable to handle kernel paging request at virtual address bb000000
[    3.002349] pgd = (ptrval)
[    3.005101] [bb000000] *pgd=00000000
[    3.008744] Internal error: Oops: 2805 [#1] SMP ARM
[    3.013705] Modules linked in:
[    3.016816] CPU: 0 PID: 89 Comm: kworker/0:1H Not tainted 5.4.0-rc8-next-20191122-g122fbdf48 #2
[    3.025666] Hardware name: BCM2711
[    3.029139] Workqueue: mmc_complete mmc_blk_mq_complete_work
[    3.034897] PC is at v7_dma_inv_range+0x3c/0x54
[    3.039499] LR is at dma_cache_maint_page+0x108/0x11c
[    3.044628] pc : [<c032038c>]    lr : [<c0319d1c>]    psr: 80000013
[    3.050994] sp : ebaa1da8  ip : ebaa1da8  fp : ebaa1ddc
[    3.056299] r10: 00000002  r9 : c1808fc4  r8 : c19e99c0
[    3.061605] r7 : c1804e58  r6 : 00000000  r5 : ffffb000  r4 : 00010000
[    3.068236] r3 : 0000003f  r2 : 00000040  r1 : bb010000  r0 : bb000000
[    3.074868] Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[    3.082117] Control: 10c5383d  Table: 0020406a  DAC: 00000051
[    3.087953] Process kworker/0:1H (pid: 89, stack limit = 0x(ptrval))
[    3.094408] Stack: (0xebaa1da8 to 0xebaa2000)
[    3.098833] 1da0:                   00000001 0000000d 60000013 00000000 c19e99c0 c1808fc4
[    3.107146] 1dc0: 00010000 ecfdaa00 00000002 00000002 ebaa1e0c ebaa1de0 c0319f2c c0319c20
[    3.115457] 1de0: c0320424 c0387dfc ed07aa00 00000001 00000000 c100153c ef3aa810 00000002
[    3.123769] 1e00: ebaa1e24 ebaa1e10 c031aa00 c0319ea4 eba49000 00000001 ebaa1e5c ebaa1e28
[    3.132081] 1e20: c031a4c4 c031a9b4 00000000 c0388088 ebaa1e9c eba15990 c031a45c c1804e48
[    3.140393] 1e40: eb99c8c4 00000000 eba158b0 eb8c2000 ebaa1e7c ebaa1e60 c0d753f4 c031a468
[    3.148705] 1e60: 00000000 c037580c eb99c808 eba15800 ebaa1e9c ebaa1e80 c0d6cbd0 c0d75394
[    3.157016] 1e80: eb99c808 eba15800 c1804e48 eb99c8c4 ebaa1ee4 ebaa1ea0 c0d6e660 c0d6cb9c
[    3.165328] 1ea0: 00000000 e4380000 eb9a0f70 00000000 00000000 1d4372e7 c0fc707c eb99c8d8
[    3.173641] 1ec0: eb962600 effa0340 effa8400 00000000 c19acb10 00000000 ebaa1ef4 ebaa1ee8
[    3.181953] 1ee0: c0d6efbc c0d6e484 ebaa1f34 ebaa1ef8 c036cf40 c0d6ef98 eb9a0c00 ffffe000
[    3.190265] 1f00: ebaa1f1c ebaa1f10 c036ed84 eb962600 effa0340 eb962614 effa0358 ffffe000
[    3.198577] 1f20: 00000008 c1803d00 ebaa1f74 ebaa1f38 c036d2dc c036cd14 00000051 c13572e0
[    3.206889] 1f40: c19ac386 effa0340 c0373970 ef52c540 eb95ff80 00000000 ebaa0000 eb962600
[    3.215201] 1f60: c036d280 ef177e74 ebaa1fac ebaa1f78 c0374b0c c036d28c ef52c55c ef52c55c
[    3.223513] 1f80: ebaa1fac eb95ff80 c037499c 00000000 00000000 00000000 00000000 00000000
[    3.231825] 1fa0: 00000000 ebaa1fb0 c03010e8 c03749a8 00000000 00000000 00000000 00000000
[    3.240137] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    3.248448] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[    3.256758] Backtrace:
[    3.259242] [<c0319c14>] (dma_cache_maint_page) from [<c0319f2c>] (__dma_page_dev_to_cpu+0x94/0x114)
[    3.268526]  r10:00000002 r9:00000002 r8:ecfdaa00 r7:00010000 r6:c1808fc4 r5:c19e99c0
[    3.276483]  r4:00000000
[    3.279054] [<c0319e98>] (__dma_page_dev_to_cpu) from [<c031aa00>] (arm_dma_unmap_page+0x58/0x5c)
[    3.288072]  r9:00000002 r8:ef3aa810 r7:c100153c r6:00000000 r5:00000001 r4:ed07aa00
[    3.295943] [<c031a9a8>] (arm_dma_unmap_page) from [<c031a4c4>] (arm_dma_unmap_sg+0x68/0x84)
[    3.304518]  r5:00000001 r4:eba49000
[    3.308150] [<c031a45c>] (arm_dma_unmap_sg) from [<c0d753f4>] (sdhci_post_req+0x6c/0x9c)
[    3.316374]  r10:eb8c2000 r9:eba158b0 r8:00000000 r7:eb99c8c4 r6:c1804e48 r5:c031a45c
[    3.324331]  r4:eba15990
[    3.326902] [<c0d75388>] (sdhci_post_req) from [<c0d6cbd0>] (mmc_blk_mq_post_req+0x40/0xc4)
[    3.335389]  r5:eba15800 r4:eb99c808
[    3.339019] [<c0d6cb90>] (mmc_blk_mq_post_req) from [<c0d6e660>] (mmc_blk_mq_complete_prev_req.part.4+0x1e8/0x244)
[    3.349537]  r7:eb99c8c4 r6:c1804e48 r5:eba15800 r4:eb99c808
[    3.355288] [<c0d6e478>] (mmc_blk_mq_complete_prev_req.part.4) from [<c0d6efbc>] (mmc_blk_mq_complete_work+0x30/0x34)
[    3.366073]  r10:00000000 r9:c19acb10 r8:00000000 r7:effa8400 r6:effa0340 r5:eb962600
[    3.374030]  r4:eb99c8d8
[    3.376602] [<c0d6ef8c>] (mmc_blk_mq_complete_work) from [<c036cf40>] (process_one_work+0x238/0x578)
[    3.385887] [<c036cd08>] (process_one_work) from [<c036d2dc>] (worker_thread+0x5c/0x5fc)
[    3.394110]  r10:c1803d00 r9:00000008 r8:ffffe000 r7:effa0358 r6:eb962614 r5:effa0340
[    3.402066]  r4:eb962600
[    3.404637] [<c036d280>] (worker_thread) from [<c0374b0c>] (kthread+0x170/0x174)
[    3.412153]  r10:ef177e74 r9:c036d280 r8:eb962600 r7:ebaa0000 r6:00000000 r5:eb95ff80
[    3.420110]  r4:ef52c540
[    3.422682] [<c037499c>] (kthread) from [<c03010e8>] (ret_from_fork+0x14/0x2c)
[    3.430021] Exception stack(0xebaa1fb0 to 0xebaa1ff8)
[    3.435151] 1fa0:                                     00000000 00000000 00000000 00000000
[    3.443463] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    3.451774] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    3.458496]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c037499c
[    3.466451]  r4:eb95ff80
[    3.469021] Code: e1110003 e1c11003 1e071f3e e1500001 (3e070f36)
[    3.475236] ---[ end trace c825dfbe2d2071d8 ]---

As a temporary workaround, place the following entry to config.txt

total_mem=1024

@lategoodbye
Copy link
Owner Author

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?

@C-Erastus
Copy link

@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).

@lategoodbye
Copy link
Owner Author

Okay, so you work on this regression? Please ask if you have any questions.

@C-Erastus
Copy link

C-Erastus commented Jul 27, 2021

@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

@lategoodbye
Copy link
Owner Author

lategoodbye commented Jul 28, 2021

@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

@C-Erastus
Copy link

@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.

@lategoodbye
Copy link
Owner Author

@chukpozohnToe I'm sorry i missed another step. Please see above.

@C-Erastus
Copy link

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.

https://gist.github.com/lategoodbye/c7317a42bf7f9c07f5a91baed8c68f75#raspberry-pi-how-to-cross-compile-and-use-mainline-kernel

@lategoodbye
Copy link
Owner Author

40 bit support for BCM2711 DMA controller has been send out as RFC (not functional):
https://lore.kernel.org/linux-arm-kernel/[email protected]/T/#t

@hamishmb
Copy link

What's the current status of this, out of interest?

@lategoodbye
Copy link
Owner Author

@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.

@hamishmb
Copy link

Oh well, it's just been a while, so I was wondering whether this was complete - I just happened across the thread.

@lategoodbye
Copy link
Owner Author

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.

@hamishmb
Copy link

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.

@lategoodbye
Copy link
Owner Author

lategoodbye commented Sep 16, 2022

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.

@stapelberg
Copy link

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 :)

@nullr0ute
Copy link

Fedora uses a purely upstream kernel.

@diederikdehaas
Copy link

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)?

@lategoodbye
Copy link
Owner Author

@diederikdehaas Thanks for pointing out, i updated the table.

@alien999999999
Copy link

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...

@lategoodbye
Copy link
Owner Author

lategoodbye commented Mar 10, 2023

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.

@alien999999999
Copy link

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....

@6by9
Copy link

6by9 commented Mar 10, 2023

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.

@alien999999999
Copy link

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...

@Headcrabed
Copy link

This quirk is already upstreamed, but it is still in this table.

@Headcrabed
Copy link

Headcrabed commented Jun 18, 2023

Also, "GENET auto power down" is implemented in a different way than the downstream driver.

@6by9
Copy link

6by9 commented Dec 7, 2023

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.

@lategoodbye
Copy link
Owner Author

@6by9 Thank you very much. This is great ❤️

@lategoodbye
Copy link
Owner Author

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:
torvalds/linux@8ff0598

@lategoodbye lategoodbye removed their assignment Jun 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests