* 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)
On the Helios64 random memory errors happens when using the
U-Boot DDR intialization code for rk3399.
Switching to the rkbin rk33 933MHz v1.25 allows this testcase to
run more than once without a memory error:
for i in $(seq 1 100);do python3 -c "import pkg_resources" || break;done
Could be LPDDR4 specific.
Workaround https://github.com/armbian/build/issues/4761
"free() invalid pointer".
* Disable flash kernel and rearrage functions inorder they are executed
* Add board config for raspberry pi 5
* Change config.txt and cmdline.txt to match official rpi version
* Install Rpi related packages from Armbian repository
* Remove ddk branch aka RASPI (Ubuntu) kernel
* We still have unsupported releases, but for different reason
* Lower kernel output at booting to meet our other builds. Default is too mouch for end user
* Add more info where we import packages
* Add testing targets
---------
Co-authored-by: Igor <igor@armbian.com>
Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com>
- 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
* Remove create_desktop_package.sh for rk3318 board from
config/optional, clearing the whole directory tree
* Add an extension to implement serverflags workaround
for X.Org and Lima driver not being autodetected
* Fix rk3318-box and rk322x family to use extension in place
of 40-serverflags.conf bsp file
* Fix system doesnt come back from sleep because of xradio_wlan module
Add workaround for getting suspend resume to work properly. This works by unloading
xradio_wlan module on suspend and reloading the same on system resume. Tested by putting
system to sleep for 20 seconds and bringing it back up via rtc wakealarm using the
following command
echo +20 > /sys/class/rtc/rtc0/wakealarm && systemctl suspend
The rtcwake still causes the system to hang on resume, but atleast systemctl suspend works.
* Enable crust for Orange Pi Zero
> 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/
* fix: vim3: blacklist simpledrm kernel module, as it conflicts with panfrost
* fix: meson-g12b: blacklist simpledrm kernel module, as it conflicts with panfrost
* fix: meson-g12a/meson-sm1: blacklist simpledrm kernel module, as it conflicts with panfrost
---------
Co-authored-by: Igor <igor@armbian.com>
* Change conf to csc
* Bring back to stable
* Remove BPI Pro
* Move media kernel to csc
* Move Opi prime back as its used as a test subject
* Retire Clearfog pro
* Remove Rock64
* Retire Helios4 too
* Move nanopi r5c from csc to wip as we have a volonteer
* Promote recent Khadas boards.
* Change status of Opi one as maintainer responded
- From https://github.com/edk2-porting/edk2-rk3588/releases/tag/v0.9.1
- For example, for `rock-5b_UEFI_Release_v0.9.1.img`
- `UEFI_EDK2_BOARD_ID` is `rock-5b`
- **Important**: this has no effect unless optional extension is enabled
- to test this out:
- make sure to read carefully the instructions at https://github.com/edk2-porting/edk2-rk3588/blob/master/README.md
- suppose you previously built the regular u-boot version with:
- `./compile.sh BOARD=rock-5b BRANCH=legacy RELEASE=jammy`
- now you can build the UEFI version with:
- `./compile.sh BOARD=rock-5b BRANCH=legacy RELEASE=jammy EXT=uefi-edk2-rk3588`
- write the produced image to SD or eMMC and boot it
- use normally, or enter "UMS" mode by selecting that option in the grub menu
- You can write image to eMMC, boot it, enter UMS, write it again to NVMe, reboot, press <ESC> in UEFI and boot from NVMe
- Also works if .img is written to eg USB stick, and UEFI edk2 is separately deployed to SPI flash
- **Important**: make _absolutely_ sure you are able to force Maskrom mode (by shorting pins, pressing buttons, etc) before writing an UEFI image to eMMC; UEFI has no RockUSB ("Loader mode" support) at all. The new "initramfs-usb-gadget-ums" extension hopes to address this, but it is not guaranteed to work.
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>
HACK: BOOT ORDER: NVMe SDCARD eMMC.
NOTES:
In my testing there has been no false starts or hangs up. Meaning
the boot process has been stable.
The downside to this in my opinion is that if there is an OS on
the NVMe it will always take boot priority. The drive would need
to be pulled or DD'd in order for SD eMMC boot to kick in.
Tested-on: Waveshare CM4-IO-BASE-B
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
Co-authored-by: Patrick Yavitz <pyavitz@xxxxx.com>
Legacy kernel is not supported no more for these rockchip boards and
thus, they can be removed from their associated board configuration files.
Signed-off-by: Emmanuil Chatzipetru <echatzip.manu@gmail.com>
- This requires https://github.com/armbian/firmware/pull/65
- thinkpad-x13s: workaround ubuntu's pd-mapper only starting on "-laptop" kernels
- thinkpad-x13s: add fprintd and pam
- thinkpad-x13s: throws warnings about missing userspace if not trixie/sid/mantic
- thinkpad-x13s: split hooks into functions
- thinkpad-x13s: enable touchscreen hack via udev
- thinkpad-x13s: use override, not separate service, for systemd settage of BT public-addr
- thinkpad-x13s: "handle" alsa-ucm-conf by simply overwriting with fixed version
- thinkpad-x13s: update .config
- according to 0dbdb29bc4
- thinkpad-x13s: bump to 6.6-rc4; add more cmdline params
- add a bunch of tricks I learned from jhovold's talk
- update .config, no changes
- thinkpad-x13s: bump to steev's lenovo-x13s-v6.6.0-rc5 - update .config, no changes
- thinkpad-x13s: bump to steev's lenovo-x13s-v6.6.0-rc5
- thinkpad-x13s: trixie is missing fprintd/libpam-fprintd, skip for now if trixie
- thinkpad-x13s: set `UEFI_MOUNT_POINT_SKIP_FSTAB=yes` (otherwise hangs waiting for it, dunno why)
The service is only enabled by default on Vim4 as that board heats
a lot and a fan is absolutely necessary. Service will be available
on vim1s as well and if someone has purchased the fan for it, they
would be able to enable it themselves.
The service is only added for legacy kernel right now as I am not
sure if the upcoming 5.15 kernel will have same sysfs interface for
fan.
> Based on AmazingFate's kernel DT and Kwiboo's `rk3568-2023.10`
Tested with a OrangePi 3B 4GB v1.1:
- SD-card boot
- eMMC boot
- SPI Flash boot
- chip is XMC `XM25QU128CWIQ`, not `W25Q256JWEIQ` listed in schematics
- PCIe/NVMe
- Ethernet has stable MAC
- can boot both edge (mainline) and legacy (vendor rk 5.10) kernels
- USB in uboot is untested
- UMS untested (I lost my A-to-A otg cable)
- we should probably refactor this into a shared library's functions...
- `flashcp --partition` is much more efficient than just `dd`'ing to mtdblockX
- but only supported on bookworm+ / jammy+
- using Kwiboo's `rk3568-2023.10` branch with BINMAN-handled blobs
- patches (defconfig unless indicated):
- boot usb first (rockchip-common)
- blink leds & keep red one one on preboot; reset SPI env once after deinfesting from Petitboot
- change usb_host0_xhci to otg (u-boot dtsi)
- enable DM_GADGET, UMS 🔥 and RockUSB
- **usage instructions**:
- build & burn image to SD card
- insert SD card into board
- **hold the recovery (RCY) button** and power on the board
- watch board boot
- **de-infest Petitboot**: use `armbian-install` to install bootloader to MTD
- if you don't, you'll need to hold the recovery button every boot
- optionally: use `armbian-install` to install OS to eMMC/NVMe/USB
- power-off board
- remove SD card (new u-boot always boots SD first!)
- boot into your newly de-infested machine
- boot order: USB, SD, MMC, NVME, SCSI
- de-infested machine can now boot (directly) from USB/SATA/NVMe, possibly via EFI:
- Armbian UEFI-arm64
- Fedora 38 aarch64
- HASSOS for ODROID-M1
- Talos arm64
- others...
- extra: new u-boot by Kwiboo (with GMAC patches) gives us stable MAC address
- although it is based on cpuid#, doesn't match the HK sticker on the board
- run `fw_setenv ethaddr XX:XX:XX:XX:XX:XX` to change eth addr in SPI flash environment if needed
- `odroidm1`: update DDR/BL31 blobs (this depends on https://github.com/armbian/rkbin/pull/20)
- current (6.1) does not yet carry the DTB
- u-boot (up to at least 2023.10-rc2) does NOT have ADC detection for N2L, so force the DTB
- `meson-g12b.conf`: add a specific if for `odroidn2l` _before_ the `odroidn2*` for FIP blobs
Backport DTS/DTSI changes from linux-6.4.y to 6.1.y
Add meson64-reboot driver to all boards
Add board: ODROID N2L
Add uart_A uart_AO_B uart_B uart_C where appropriate
U-Boot v2023.07.02: ODROID N2/N2L/N2Plus/C4
Meson64-reboot driver: (source: tobetter)
While the current meson64-reboot driver is cleaner and doesn't
depend on modding other kernel sources, its functionality leaves
much to be desired. One example can be found in the ODROID C4.
Using the current driver, the board will not properly power off,
leaving the POWER LED still on. The new driver powers off the unit
completely.
Fan control: (ODROID N2L/N2PLus)
Added service and script for controlling the trip point.
fanctrl: arguments: 65 55 45 35 25 menu run
┌──┤ Fan Control ├──┐
│ │
│ 6) 65°C │
│ 5) 55°C │
│ 4) 45°C │
│ 3) 35°C │
│ 2) 25°C │
│ E) Exit .. │
│ │
│ │
│ <Ok> │
│ │
└───────────────────┘
NOTES: (N2L/HC4): I do not own the units so I can't run tests.
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
Some sd cards are unable to access in uboot when using miniloader
These cards are able to access when using spl instead
Spl is not related to DDR initialization so it is unlikely to introduce
DDR problems
- vim1s/vim4: remove uEnv.txt and default extlinux args, use simple arguments instead
- meson-s4t7.conf: hack: rereadpt (re-read partition table) in initrd local-top (for eMMC boot of oowow'ed image)
- meson-s4t7.conf: include both `u-boot.bin.sd.bin.signed` and `u-boot.bin.signed` in uboot package
- meson-s4t7: patch kernel for different dt "model" across VIM4 and "New VIM4"
- meson-s4t7.conf: set `EXTLINUX_SPECIFIC_FDT=no`, so u-boot auto-determines which DTB to use
- don't specify DTB; this way both the "original VIM4" and the "new VIM4" can boot with the same image
- only "boot from SD" supported right now
- building uboot with xPack riscv-none-embed-gcc **external** toolchain setup in hooks
- kvim4: very high kernel logging + systemd debug logging to console
- kvim4/kvim1s: add uEnv.txt and ROOT_FS_LABEL="ROOTFS" and Khadas-esque extlinux
- meson-s4t7: unify khadas-vim1s and khadas-vim4 u-boot building
- kernel .config:
- s4t7: original Khadas vendor config
- s4t7: CONFIG_BINFMT_MISC=y
- s4t7: make NFS/sunrpc stuff =y
- s4t7: enable USB wifi drivers from Armbian network_drivers
- firmware: at https://github.com/armbian/firmware/pull/56
- extlinux tricks require https://github.com/armbian/build/pull/5462
- status:
- kvim1s: boots from SD and works as server/CLI
- kvim4: kernel panic during systemd-udevd
Move the BPI-M2PRO off the BPI-M5 U-Boot.
The BananaPi M5 supports the RTL8822CS Mezzanine, so let us
provide the proper bluetooth firmware.
NOTE: Boot needs verifying.
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
- x13s: initialize bluetooth's public-addr, thus allowing BT to work
- linux-arm64-sc8280xp.config: enable per-core temperature sensors
- x13s: disable snapd.seeded service so boot won't hang if clock's < 2017
- x13s: back to steev's 6.3.y, since 6.4.y's audio drivers don't match alsa-ucm-conf
Linux 6.1 (current) / 6.4 (edge)
Add "current" to: config/boards/bananapim2pro.csc
Add uart_AO_B and uart_B to: meson-sm1-bananapi.dtsi
Add related pins to: meson-g12-common.dtsi
add wif/bt support to: meson-sm1-bananapi-m5.dts (BT = uart_A)
Add the ability to enable via overlays
NOTE: The overlay to enable the wifi on the BPI-M5 will be added
at a later date.
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
Co-authored-by: Patrick Yavitz <pyavitz@xxxxx.com>
Removed WIP status
Added CONFIG_R8169=m to defconfig(s) (eth support)
Modified and added additional patches (linux 6.1 / 6.4)
U-Boot v2023.07.2 (dropped v2022.10)
Upstream BT FW (rtl8822cs) is now shared between CM4IO and M2s
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
- `2023.04` fails during USB init, thus using 23.01 (23.07 untested)
- `blobless` with newer 2.8.5 ATF
- the previous problems with PCIe are _not_ totally solved by this
- meko: don't use Radxa's Rock-5A u-boot anymore, switch to rockchip vendor next-dev branch
- meko: my own (horrible) patches for MAC address stability / defconfig
- meko: cherry picked a few patches for getting rid of BL32/read Bl31 from env and other fixes from Radxa
- meko: add OTP node to 3588 dtsi (so we don't need kern-dtb in ITS for working OTP)
- meko: refactor common code across 3 (soon to be 4) board files into vendor conf and hooks
- meko: bump DDR/BL31 blobs for all Meko boards
- move FIP signing code from meson-sm1.conf's `uboot_custom_postprocess()` to the board's own `post_uboot_custom_postprocess` hook
- fetch a secondary FIP blob repo at a revision with working FIP blobs for SPI (see https://github.com/LibreELEC/amlogic-boot-fip/pull/10)
- implement `post_uboot_custom_postprocess__khadas_vim3l_uboot_new_and_old_blobs()` doing a dance for SD/eMMC with new blobs, and SPI with old blobs.