Add a patch series to support VEPU121/VPU121, which mainly enables hardware decoding for H.264.
It can also decode MPEG2 and VP8 as well as do JPEG encoding.
Move kernel patch folder to archive/rockchip-rk3588-${KERNEL_MAJOR_MINOR} which is the default.
Also rename kernel config to linux-rockchip-rk3588-${KERNEL_MAJOR_MINOR}
Since the `edge` kernel branch often uses RC kernels, introduce a more stable `current` branch.
This branch should not be RC kernels and it also should move to an LTS kernel once released.
Patches are from the Linux Rockchip Mailing List, submitted by Alexey
Charkov. [1]
Notable improvements from changelog:
- Moved the TSADC enablement to per-board .dts/.dtsi files
- Dropped extra "inefficient" OPPs (same voltage - lower frequencies)
- Dropped second passive cooling trips altogether to keep things simple
- Added a cooling map for passive GPU cooling (in a separate patch)
- Added regulator coupling for EVB1 and QuartzPro64
Also enable automatic fan control on Rock 5B.
[1] https://lore.kernel.org/linux-rockchip/20240506-rk-dts-additions-v4-0-271023ddfd40@gmail.com/
"general-add-overlay-compilation-support.patch" became obsolete in
Linux 6.9 (see AR-2352 [1]). Fix this problem:
- Rename *.dts sources in overlay directory to *.dtso
- Change "target +=" line to "dts-y +=" in overlay Makefile
- Remove "always +=" line in overlay Makefile
- Add .scr compilation support in kernel scripts/Makefile.lib
- Patch kernel scripts/Makefile.dtbinst to avoid flattening overlay
directory
For the last two points, see
general-add-overlay-compilation-support.patch
Credits for this fix go to @paolosabatino
[1] https://armbian.atlassian.net/browse/AR-2352
- Bump mainline kernel from 6.10-rc1 to 6.10-rc2
- Remove patches which are now mainlined
- Re-number "fix-initial-PERST-GPIO-value" patch as per number
ordering seen in 0000.patching_config.yaml
- Rewrite kernel config
- `common_defaults_for_mainline` already sets KERNELPATCHDIR='archive/s5p6818-4.14' thus this symlink is not necessary
- 1 step closer to a clean `patch/kernel` dir, when we could finally get rid of `archive/`
- add `pre_config_uboot_target` hook for switching BOOTCONFIG across the two targets
- adapt `UBOOT_TARGET_MAP` to not call the defconfig Makefile targets directly, instead, just do a variable assignment (ignored by Make)
- otherwise, when using the defconfig directly in the `UBOOT_TARGET_MAP`, the `post_config_uboot_target` .config changes are overwritten when Make is called
- only patch left is boot usb-nvme-scsi/sata first (still done in meson64.h)
- remove FIP handling from family file `meson-sm1.conf` into board file hook where it belongs
- u-boot: enable more compression methods, EFI debugging, i2c, leds, tcp networking
- use flashcp for mtd writing
- Unchanged:
- confirmed as of v2024.04: using the C4 (not HC4) defconfig is still needed to be able to write to mtd when booted from SD
- also confirmed: one still needs to erase Petitboot using Petitboot, then boot from SD, to be able to flash mainline u-boot to mtd
* rename .dts sources in overlay directory as *.dtso
* change "target +=" line in "dts-y +=" in overlay Makefile
* remove "always +=" line in overlay Makefile
* add .scr compilation support in kernel scripts/Makefile.lib
* patch kernel scripts/Makefile.dtbinst to avoid flattening overlay
directory
for the last two points, see
general-add-overlay-compilation-support.patch
- makes it compatible with vendor out-of-box blobs (which include TEE) in the from-factory eMMC
- Armbian itself doesn't ship TEE blobs
- when combining from-factory eMMC blobs with an Armbian SD card, TEE blobs are in practice found by u-boot
- but then proceeds to fail with `optee api revision is too low`
- disable OPTEE in defconfig fixes it, TEE isn't used in any way by Armbian
- makes it compatible with vendor out-of-box blobs (which include TEE) in the from-factory eMMC
- Armbian itself doesn't ship TEE blobs
- when combining from-factory eMMC blobs with an Armbian SD card, TEE blobs are in practice found by u-boot
- but then proceeds to fail with `optee api revision is too low`
- disable OPTEE in defconfig fixes it, TEE isn't used in any way by Armbian
uboot default behaviour is the assert resets when
it has to pass control to the kernel.
This may cause compatibility issues if the kernel
driver is not instructed to properly deassert the resets,
so we change the uboot behaviour for dwc and ehci usb
drivers to deassert reset on exit.
multitool utility uses the legacy/vendor 4.4 kernel
and it was failing to turn on HDMI properly.
Assert and deassert all vop and hmdi resets to clean
up the state on uboot exit seems to solve the issue
- we've had kernel patches/DT (from chewitt) for this in meson64 for a long time, but I never sent the board
- uses blobs for the `tartiflette-s912` which is also an DDR3 S912 (VIM2's blobs are DDR4 and won't boot)
- this adds `u-boot 2024.04` support, using chewitt's DT & `000.patching_config.yaml` & a specific BOOTPATCHDIR
- this is a full board as-if it was an SBC, and expects to boot from mainline u-boot;
- for that to work you've to wipe the eMMC and get rid of the vendor-supplied u-boot
- if this is not what you want/need, you can use the aml tvbox "board" instead, together with Android u-boot
- remove deprecated patches
It affects all boards that uses Radxa u-boot branch
@amazingfate
Perhaps also adjust armsom7 to this change to have less code maint?
This includes a patch that sets the maximum frequency to 24 MHz in U-Boot
which improves reliability as previously U-Boot would randomly fail
reading from the eMMC.
Signed-off-by: Martin Pietryka <martin@pietryka.at>
With CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC enabled, the arm64 kernel still
allocates the default SWIOTLB buffer (64MB) even if ZONE_DMA is disabled
or all the RAM fits into this zone. However, this potentially wastes a
non-negligible amount of memory on platforms with little RAM.
Reduce the SWIOTLB size to 1MB per 1GB of RAM if only needed for
kmalloc() buffer bouncing.
With CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC enabled, the arm64 kernel still
allocates the default SWIOTLB buffer (64MB) even if ZONE_DMA is disabled
or all the RAM fits into this zone. However, this potentially wastes a
non-negligible amount of memory on platforms with little RAM.
Reduce the SWIOTLB size to 1MB per 1GB of RAM if only needed for
kmalloc() buffer bouncing.
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
- Add &spi0, &i2c4, &i2c5 for the pin-conections (all disabled)
- Remove &spi1 since it's not available on the board
- vcc_3v3_sd_s0: remove unevaluated property flasgs"enable-active-low", it's unneeded since the default assumed is Active low (linux/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml)
- analog-sound: remove unevaluated property "simple-audio-card,hp-pin-name"
- &sdhci: remove "max-frequency = <200000000>;" since this value already defined as default in rk3588s.dtsi
- Rename node "button@1" to "button-user"
- Move "status" property to bottom, even if disabled
- Improve comments
One patch also fixes Combo PHY.
Many thanks goes to the geniuses Sebastian Reichel and Michal Tomek. Without their brainpower, PCIe bifurification on the RK3588, like the mode used by the CM3588, would still be broken.
Sorting the patches to group them by category:
000* for general patches
00** for SoC related patches
01** for GPU/HDMI related patches
08** for wireless patches
1*** for board patches
101* for Rock-5B, 1012* for Rock-5A and so on
BPI-CM4
No change in functionality. Fixup adjustments.
BPI-M2S
The fan on the unit is constantly running. So lets set thermal
trip points and add the ability to control when we want it to
kick on. By default it is set to power on at 60*C.
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
* Bump meson64 edge from 6.7 to 6.8
Changes to be committed:
modified: config/sources/families/include/meson64_common.inc
renamed: patch/kernel/archive/meson64-6.7 -> patch/kernel/archive/meson64-6.8
modified: patch/kernel/archive/meson64-6.8/board-bananapi-cm4-cm4io-fixes.patch
modified: patch/kernel/archive/meson64-6.8/general-input-touchscreen-Add-D-WAV-Multitouch.patch
new file: patch/kernel/archive/meson64-6.8/kernel-6.8-tools-cgroup-makefile.patch
* updates from rewrite-kernel-patches
* updates from rewrite-kernel-config
- `mmc-sdhci-allow-disabling-sdma-in-spl.patch` has landed in 3cd664dc92
- remove `CONFIG_SPL_MMC_SDHCI_SDMA=n`, as fix has landed in 3b804b370d (thanks Kwiboo for the pointer)
- use binman-produced binaries
- use `flashcp -p` to write fast to spi
- bump ATF (TF-A) to lts-v2.8.16
- configure /etc/fw_env.config userspace to SPI env coordinates
- configure /etc/fw_env.config userspace to SPI env coordinates
- include libubootenv-tool userspace for fw_printenv and fw_setenv
- use `bs=32k seek=1` instead of `seek=64` suggested by Kwiboo (thanks!) for speedy writing
- add a check for the u-boot.bin size (992KiB) suggested by Kwiboo (thanks!)
- really a close call: we're at 994.920 bytes right now
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Co-authored-by: Jonas Karlman <jonas@kwiboo.se>
Also add commit dates to make life prettier and easier
The following drivers have been updated with fixes for 6.8
- driver_rtl8811CU_rtl8821C
- driver_rtl88x2bu
- driver_rtl8811_rtl8812_rtl8814_rtl8821
The following drivers have been updated without specific 6.8 patches:
- driver_rtl8189ES (patches for 6.7, deleted two upstreamed patches)
- driver_rtl8189FS (patches for 6.7, deleted four upstreamed patches)
- I guess this is most of the u-boot's I've touched over the years; notable exception is the orangepi3b (patches live in Kwiboo's tree)
- this is in preparation for bumping versions, hopefully soon
- radxa-zero, radxa-zero2, khadas-vim3, khadas-vim3l: drop patches for old u-boot versions no longer used
rk322x has peripheral mode that is not working
really well, add various non-upstream patches
and timing adjustments that makes things a bit
more usable (mass storage and ethernet works,
uac isn't)
* meson-6.7: Copy patches from 6.6
Commit f852beca0a ("Switch meson64, bcm2711, sunxi, imx6, mvebu current to 6.6, edge to 6.7 and leave 6.1 for legecy") bump to linux 6.7 but forget to copy patches.
* meson-6.7: Refresh patches
* Add board BananaPi M4 Zero
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
* HACK: wrong DRAM size: add extra barrier in mctl_mem_matches
People report that this is fixed by adding another "dsb();" at
the beginning of the mctl_mem_matches() function.
https://lore.kernel.org/all/ZWMv816r8YxPwsJO@BOB1/T/#mec26415158efa10e6f78c5c1a651bb834f8599c4
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
* v2 add barrier and udelay to mctl_mem_matches function
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
---------
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
Co-authored-by: Patrick Yavitz <pyavitz@xxxxx.com>
- allows users to put .dts files bare in `userpatches/kernel/rk35xx-legacy/dt`
- important: everyone is still invited to send the DTs to https://github.com/armbian/linux-rockchip directly
- where yes, they'll have to patch the Makefile there as normal
* meson-s4t7: bump u-boot to khadas-vims-u-boot-2019.01-v1.6-release
* Use khadas default bootargs as much as possible
* Add new hook to allow copying code into kernel
* meson-s4t7: legacy: Switch to 5.15 kernel
* meson-s4t7: add kernel-config for 5.15 kernel
* device tree overlays for 5.15 kernel for vim1s and vim4
* restructure packaging of bsp files for vim1s/vim4
* silence vblank warning on boot
* Remove display workaround as it doesn't work with 5.15 kernel
* Remove 5.4 kernel patches
* add salvas UHS overlay and enable on 2 known devices known to have voltage regulator needed to leverage UHS
* remove increased UHS from pinebook-pro default due to justification in kernel commit history
* remove enabling YOLO UHS overlay from default board config
In my initial commit I assumed CONFIG_USE_PREBOOT=y was enabled
by default. I was wrong.
As reported by MicroLinux (Salva) on DISCORD the unit was still
having issues booting. I sent him a patch I use which enables
preboot and he reported back that "It boots fine now".
NOTES: The patch he tested also had boot logo support enabled. In
my testing boot logo support is not required. If for some reason
in the future there are still eMMC boot issues, than maybe adding
a slight delay "sleep 2" to preboot would suffice.
https://github.com/armbian/build/pull/5858
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
* rockchip64: Add board "ASUS Tinker-Edge-R"
* rockchip64: Add board "ASUS Tinker-Edge-R": hammer for 6.6 current & 6.7 edge
- cleanup
- squash dtsi and dt into a single thing, rename to dashes
- change dtb reference in board file
- drop the 6.1 patch that has junk in it
---------
Co-authored-by: Ricardo Pardini <ricardo@pardini.net>
PWM controllable fan (G12A/B/SM1)
Commit provides two new overlays. One for the BananaPi CM4IO
Baseboard "GPIOH_5" and another for general use "GPIOX_5".
CM4IO HEADER PINS: 5V "4"; GND "6"; PWM "7"
On other units the location of the PWM HEADER PIN may vary,
so users will need to either review the wiki or schematic
of said unit.
Fan used in testing:
https://a.co/d/hasnLtj
Modifications: M2S/M5 RTL8822CS
Modded the overlays to be specific to the unit they were made
to be used on.
Tested-on: BananaPi BPI-CM4IO Baseboard with BPI-CM4 Module
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
Co-authored-by: Patrick Yavitz <pyavitz@xxxxx.com>
- general-rc-drivers-should-produce-alternate-pulse-and-space-timing-events.patch: dropped
- added `-spidev` DT's for a few boards (gives access to SPI Flash in exchange for slower eMMC)
- cleanup 0000.patching_config.yaml for meson64-6.7
This does not change the current boot order and requires specific
hardware.
Test-on: BananaPi BPI-CM4IO Baseboard with BPI-CM4 Module
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
Co-authored-by: Patrick Yavitz <pyavitz@xxxxx.com>
- arm64: dts: rockchip: pci3x4 for Mixtile Blade3
- pinctrl for `1 RK_PB2` pull_up
- regulator `vcc3v3_pcie30` always-on and boot-on
- there is probably a much better fix than this, but I couldn't find it
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- arm64: dts: rockchip: cleanups for Mixtile Blade3
- drop `hym8563` pinctrl (don't think the blade3 has an RTC)
- `i2c5` is exposed on the 30-pin, add comment
- fix tab in `pcie30phy`
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
* Enable CPU frequency configuration for Orange Pi Zero 3
* Revert "Enable CPU frequency configuration for Orange Pi Zero 3"
This reverts commit 7af1ee1116.
* Enable CPU frequency configuration for Orange Pi Zero 3
---------
Co-authored-by: Gunjan Gupta <viraniac@gmail.com>
* merge patches from rockchip and rk322x families for current and edge
kernels
* adjust patches for tinkerboard to remove some cruft and overclocking
* rework kernel configs
* fix rk322x dmc to avoid lockup on rk3288
* migrate rockchip-6.6 into patch series, rename all patches with
more understandable names
* add gen-series.sh script in tools directory (it is a naive tool to
create patch series when you don't want to rebase everything)
* CONFIG_SYS_SCSI_MAX_DEVICE was replaced by a macro in U-Boot v2022.04
* Fixes u-boot for rockchip64 derivatives
* Fix missing include for cli_simple_run_command
* Do not return value in a void function
While at it, also fixed the following warning
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi:189.40-191.6: Warning (unit_address_format): /soc/efuse@3006000/cpu-speed-grade@00: unit name should not have leading 0s
- add Device Odroid M1 device tree to dt subfolder
- fix permission for panther x2
- move and rename overlays
- integrate hardkernel fixup to rockchip fixup script
- detach nanopi r5 from nonexisting odroid kernel family to rockchip64
- Remove patches for 6.5
- Use correct overlay namings
- Align Board name with others from the vendor
> tl,dr: add 4 small-ish UEFI-like kernels, with Microsoft patches & fixes, for use with Microsoft WSL2 on x86/arm64 and 6.1.y/6.6.y
- the boards are UEFI derivatives, using a common `microsoft` vendor include to modify
- `KERNELPATCHDIR`/`LINUXFAMILY` (for now, we don't want those patches in regular UEFI builds / .debs)
- disable `EXTRAWIFI` (kernel is for a VM, will never have wifi so doesn't need any drivers)
- `LINUXCONFIG`, so we can use Microsoft's own monolithic kernel, required for WSL2 (their initrd is a mistery)
- really, what we're mostly interested right now are the kernels (in the future we might have an "Armbian" WSL2 app in the Microsoft Store)
- `current` `6.1.y`:
- rebased from https://github.com/microsoft/WSL2-Linux-Kernel/tree/linux-msft-wsl-6.1.y onto real 6.1.y
- using Microsoft's `.config` exactly (monolithic, there are no `=m`'s)
- `edge` `6.6.y`:
- also from https://github.com/microsoft/WSL2-Linux-Kernel/tree/linux-msft-wsl-6.1.y but rebased onto 6.6.y
- using updated Microsoft's `.config` (monolithic, there are no `=m`'s)
- dropped 2 of 6.1.y's patches that were actually upstreamed in the meantime:
- `mm-page_reporting-Add-checks-for-page_reporting_order-param` - mainlined in https://lore.kernel.org/all/1664517699-1085-2-git-send-email-shradhagupta@linux.microsoft.com/
- `hv_balloon-Add-support-for-configurable-order-free-page-reporting` - mainlined in https://lore.kernel.org/all/1664517699-1085-3-git-send-email-shradhagupta@linux.microsoft.com/
- drop the `arm64: hyperv: Enable Hyper-V synthetic clocks/timers` patch, since it causes asm breakage on 6.6.y
- a shame, but I tried and can't fix it myself - @kelleymh ?
- add my own patch to fix:
- `1709-drivers-hv-dxgkrnl-restore-uuid_le_cmp-removed-from-upstream-in-f5b3c341a.patch` due to https://lore.kernel.org/all/20230202145412.87569-1-andriy.shevchenko@linux.intel.com/ landing in 6.6
- `1710-drivers-hv-dxgkrnl-adapt-dxg_remove_vmbus-to-96ec29396-s-reality-void-return.patch` to adapt to
https://lore.kernel.org/all/TYCP286MB2323A93C55526E4DF239D3ACCAFA9@TYCP286MB2323.JPNP286.PROD.OUTLOOK.COM/
There are many changes in this file and its impossible to cover this with a patch for now current and all kernels back
We are using same hack in UWE drivers.
I have changed the way the patches are generated a bit. Instead of using orange-pi branch from megous tree for 6.6 kernel, I have used the following kernel branches
a83t-suspend, af8133j, anx, audio,
axp, cam, drm, err, fixes, mbus,
modem, opi3, pb, pinetab, pp, ppkb,
samuel, speed, tbs-a711, ths
These branches were carefully chosen to include only allwinner related patches and remove importing of the rockchip related patches into the allwinner kernel.
Following patches are modified to fix patch application failure
- patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch
- patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch
- patches.armbian/arm64-dts-allwinner-h616-Add-efuse_xlate-cpu-frequency-scaling-v1_6_2.patch
- patches.armbian/arm64-dts-allwinner-h616-LED-green_power_on-red_status_heartbeat.patch
- patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch
- patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1.patch
Following patches are modified because of kernel api change to fix compilation failure
- patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch
- patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch
Update Das U-Boot to v2023.07.02
Patch: HACK: mmc: meson-gx: limit to 24MHz
db6738fed9
In my testing the patch is required for stable boot on REV 1.51.
It is not required on REV 1.4, but has no ill effects on boot.
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
Co-authored-by: Patrick Yavitz <pyavitz@xxxxx.com>
Set fan max speed to kick in at 65*C. This keeps the unit roughly
at 70*C or lower, when pusing all cores for an extended period of
time.
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
Co-authored-by: Patrick Yavitz <pyavitz@xxxxx.com>