[PATCH v4 0/6] rpi5: initial support

Ivan T. Ivanov
2024-01-10T12:29:29Z

Hi,

These patches are slight update for patches posted earlier here[1].
They are adding basic support for RPi5 and are based on v2 series
from Dmitry Malkin[2].

What changed:

* Initial memory map now includes whole first 1GB of DRAM. At runtime,
the firmware will adjust this size depending on whether an HDMI cable
is plugged in or not. If there is HDMI monitor connected it will reserve
framebufer memory region and will add simple-framebuffer device into
devicetree.

* Dynamically calculate bits per pixel in video driver. This works
on all prevous RPi's models that I have.

* I am dropping PCIe patch for now. I made some progress on porting changes
from vendor Linux tree to U-Boot. Unfortunatly testing it is little bit
tricky. They are many devices behind PCIe, but more or less all of them
requires missing either "reset-controller" or "clock-controller" or
"pin-controller" drivers. I was able to probe "cdns,macb" device, but
access to ethernet PHY over MDIO bus is stucking. Then I ported
"raspberrypi,rp1-adc" driver from vendor Linux tree, but it requires
missing clock. And on top of that machine that I used for developing this
crashed and I lost my PCIe changes :-|. Anyway.

These patches allows me to boot current openSUSE Tumbleweed without
modification. I can see serial console log and boot process on HDMI
connected monitor.

I think these patches should be enough for start. Please consider for
inclusion.

Thanks,
Ivan

[1] https://lore.kernel.org/all/20231218210341.30073-1-iivanov@suse.de/
[2] https://lore.kernel.org/all/CAKRNjQ0dsWozGo4n8g58m4cCEk3n=qx1R+L24WBgpo-iP1yo7A@mail.gmail.com/

Dmitry Malkin (2):
rpi5: add initial memory map for bcm2712
rpi5: Use devicetree as alternative way to read IO base addresses

Ivan T. Ivanov (4):
rpi5: Use devicetree to retrieve board revision
bcm2835: Dynamically calculate bytes per pixel parameter
mmc: bcmstb: Add support for bcm2712 SD controller
configs: rpi_arm64: enable SDHCI BCMSTB driver

arch/arm/mach-bcm283x/include/mach/base.h | 5 +-
arch/arm/mach-bcm283x/include/mach/mbox.h | 3 +-
arch/arm/mach-bcm283x/include/mach/sdhci.h | 3 +-
arch/arm/mach-bcm283x/include/mach/timer.h | 3 +-
arch/arm/mach-bcm283x/include/mach/wdog.h | 3 +-
arch/arm/mach-bcm283x/init.c | 74 ++++++++-
board/raspberrypi/rpi/rpi.c | 22 ++-
configs/rpi_arm64_defconfig | 1 +
drivers/mmc/bcmstb_sdhci.c | 173 ++++++++++++++++++++-
drivers/video/bcm2835.c | 18 ++-
10 files changed, 282 insertions(+), 23 deletions(-)

--
2.35.3