All remaining `media` boards have been integrated into the `rockchip64` family.
- Remove the family config
- Remove all kernel patch folders
- Remove all U-Boot patch folders
- Remove all kernel configs
- 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
- 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>
- `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>
- 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
* 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>
* 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
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>
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>
* 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
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>
In sunxi-6.1 and sunxi-6.5 kernel we have a patch that changes r_rsb to r_i2c. But same
change is not done for u-boot. Mixing use of r_rsb and r_i2c seems to cause issues if
its also something handled in crust. Hence making it consistent across u-boot and kernel
dts files
> 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)
After we bumped u-boot to version v2022.10, a couple of boards
stopped booting because the CONFIG_SPL_STACK value used in our
u-boot config was too low for that SOC. This change drops explicit
CONFIG_SPL_STACK defination from the affected boards.
The boards confirmed to have the issues were Orange Pi 3 LTS and
NanoPi Neo Black2 but I suspect that NanoPi K1 plus is also affected
hence similar change is done for that as well
- 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)
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>
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
* Add support for Recore
Signed-off-by: Elias Bakken <elias@iagent.no>
* Add board maintainter to boad config
Signed-off-by: Elias Bakken <elias@iagent.no>
---------
Signed-off-by: Elias Bakken <elias@iagent.no>
- those were clearly/unfortunately meant to be applied "after" the common patches, so add a `zzz-` prefix
- how did this _ever_ work before? unclear...
- `sunxi_common`: don't overwrite `BOOTPATCHDIR` if it is set by the board (default, but do not overwrite)
- hammer `allwinner-h616-GPU-enable-hack.patch`
- symptoms:
- no video display in u-boot
- can't boot from SD (but does from eMMC)
- this has proven to solve nothing, but is still neat
- real problem is probably the FIP?
- have absolutely no idea if this works. there's also some other `armv5` variants to try if this does not.
- XU4's CPU is Exynos5422 ARM Cortex-A15 which should be armv7-a indeed, so why not?
- i.MX 6 series is ARM Cortex-A9 or Cortex-A7, which should be armv7-a indeed, so why not?
- ARMADA A388 is 32-bit Cortex A9, which should be armv7-a indeed, so why not?
- sharing most UEFI code, will replace the `virtual` one soon
- x86: patch uboot defconfig to use the `q35` machine type, not `i440fx`
- separate x86 bootscript, due to non-uInitrd-ness of it
- hack ramdisk load address both in u-boot source and bootscript
- use 32-bit u-boot, not 64-bit
- grub: introduce `UEFI_GRUB=skip`, does not deploy GRUB (but does the kernel packages, etc)
- auto-enable qcow2 output for these
- works with both distro's and Armbian's kernels
U-boot-rockchip64. No code changes. Original patch applied and new patch generated then mbox tweaked to retain relevant details. Prevents patching errors in armbian-next.
* Fixed u-boot v2022.07 compilation for Helios64
* Move Helios64 back from EOS to community supported as images can be assembled
Co-authored-by: Igor <igor@armbian.com>
- notes in the board file about the RAM issues (tested, confirmed working blob change of #4383 by @pinhaozhang working with u-boot 21.07; `blobless` also works with ATF v2.7 on my known-good-RAM boards)
- tinkerboard-2: add full firmware, for the rtl8822ce PCIe Wifi default card in the tb2 as shipped by ASUS
- tinkerboard-2: uboot: rename `TARGET_TINKER-2_RK3399` to `TARGET_TINKER2_RK3399` to avoid warnings all over
- tinkerboard-2: slower but working Tinkerboard 2S eMMC (HS400+ES to HS200)
- both for u-boot and kernel.
- should not affect 2, only 2S
* `meson64`: `6.0`: g12a and g12b pinmux patches from Radxa
* u-boot: `radxa-zero2`: Radxa's patches for the Zero2 on `v2022.10`
* u-boot: `radxa-zero2`: use `v2022.10` plus Radxa's patches
* `meson64` u-boot v2022.10: change `BOOT_TARGET_DEVICES` to try to boot USB, NVME and SCSI before SD, MMC, PXE, DHCP
* `radxa-zero`: include v2022.10 standard patches (eg: boot from USB first)
* Move all legacy u-boot patches under one general legacy folder
* Move 32b Rockchip under 2022.04 and legacy for Miqi
Tested
* Move Rock 3A patch dir under legacy
* Move / merge meson64 patch folder into v2022.07
Merge 2022.04 (mainly Rockchip 32) into 2022.07, tested
* Remove not needed patch
* Add last kernel version to config
* `odroidm1`.wip: hk's `legacy`= 4.19 and `edge`= mainline+tobetter's 5.19 rebased; *requires* `skip_spiboot=true`
- @TODO: family/etc naming is terrible with vendor kernels. Sorry. Fight over it and let me know?
- @TODO: config is very probably incomplete.
- new `boot-rockchip64-vendor.cmd`:
- does not use fixed load_addr, instead use ramdisk_addr_r for everything
- load kernel and initrd as late as possible
- look for overlays twice:
- once: with prefix and folder
- twice: without prefix, nor folder; helps with vendor provided overlays like hk's and tobetter's
- wip: edge: tobetter's patchset rebased against 5.19.3
- wip: edge: bump to tobetter's 5.19
- legacy: .config `CONFIG_ARM64_VA_BITS_48=y`
- wip m1: update legacy config from odroid
- odroidm1: container/bpf stuff in legacy config
* Update configs and enable beta build target
* Adjust current kernel
* Update targets
* Remove everything but EDGE kernel
* Cleanup
* Fix
Co-authored-by: Ricardo Pardini <ricardo@pardini.net>
* rock-5b: add initial raxda rock-5b .wip (by @amazingfate); vendor u-boot & kernel
- .wip board
- using BOARDFAMILY `rk35xx`, which was for rock-3a
- patch by @piter75 uboot for working 'source' command so boot.scr can be used, and not extlinux
- .config: hammer CONFIG_JOYSTICK_XPAD & CONFIG_JOYSTICK_PSXPAD_SPI
- rock5 add kernel optiions by @lanefu
- disable CONFIG_LOCALVERSION_AUTO otherwise packaging goes insane
- make its kernel is own LINUXFAMILY to as to not mess up rock-3a
- CONFIG_VT=y & SKIP_BOOTSPLASH="yes"
* Add separate family for rock 5b - rockchip-rk3588
Co-authored-by: amazingfate <liujianfeng1994@gmail.com>
Co-authored-by: root <catalinii@yahoo.com>
* tf-a sources use mrvl_flash rather than 'all' target
* add armada 8k ethernet and SFP cages for macchiatobin use
* u-boot configuration for mcbin
* fix bootscript for u-boot variables
* separate ebin and mcbin with if statements
* add a8k PCIe and CPUFreq drivers for macchiatobin
* alias defined in patch 0007 is part of armada-372x.dtsi, so unnecessary in 37xx
* u-boot patch to dts shouldn't disable emmc or overwrite sdhci1
* update u-boot
* Rockchip64 Linux-5.10y - drivers for Motorcomm YT8531
renamed the previous "net-phy-Add-driver-for-Motorcomm-YT85xx-PHYs.patch" to "net-phy-Add-driver-for-Motorcomm-1-YT85xx-PHYs.patch" to fix patch order and added a new patch "net-phy-Add-driver-for-Motorcomm-2-YT8531-PHYs.patch"
The new YT8531 patch is sourced from from Lean's OpenWrt source rockchip/patches-5.10/601-net-phy-Add-driver-for-Motorcomm-YT8531-PHYs.patch.
It is intended to extend a patch identical to Armbian's "net-phy-Add-driver-for-Motorcomm-YT85xx-PHYs.patch" and is used without alteration.
* Add new board OrangePi R1 LTS (rk3328)
Includes uBoot and support for Linux-5.10y
* Rockchip64 Linux-5.15y drivers for YT8531 and other Motorcomm chips
YT8010, YT8510, YT8511, YT8512, YT8521. The driver patch set is sourced from Xunlong-OrangePi OpenWRT and is used as is, with only a name and makefile change.
A single patch set uses the same underlying source code as the Armbian Linux-5.10y set, but uses inbuilt logic to apply tweaks that depend on the Linux kernel version.
The patch is renamed similarly to the 5.10 patch set, net-phy-Add-driver-for-Motorcomm-T85xx+PHYs.patch to imply code base continuity with the previous similar Armbian patch sets.
* Rockchip64 Linux-5.15y support for Orange Pi R1 Plus LTS
Includes DTS and makefile changes. A driver for net phy YT8531C is in a separate commit
* change orangepi-r1plus-lts.csc to orangepi-r1plus-lts.conf
board is now supported
* - add patch also to 5.16.y
- fix wrong patch permission
* Fix Makefile patch
Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com>
Radxa Zero 2 is a small form factor SBC based on the Amlogic A311D
chipset that ships in a number of eMMC configurations:
- Amlogic A311D (Quad A73 + Dual A53) CPU
- 4GB LPDDR4 RAM
- 32/64/128GB eMMC
- Mali G52-MP4 GPU
- HDMI 2.1 output (micro)
- BCM4345 WiFi (2.4/5GHz a/b/g/n/ac) and BT 5.0
- 1x USB 2.0 port - Type C (OTG)
- 1x USB 3.0 port - Type C (Host)
- 1x micro SD Card slot
- 40 Pin GPIO header
Signed-off-by: Yuntian Zhang <yt@radxa.com>
* Bump Meson64 u-boot to 2022.01
Tested VIM boards
* Move Jethub related patches under common meson64 patch collection
* Move jethub patch to per board and remove unneded settings
* Sync kernel config with radxa and remove packaging patch
* Merge the rockchip64 legacy config as well
* Lower priority of EFI partitioning against DOS partitioning which is used by Armbian
Co-authored-by: Catalin Toda <catalinii@yahoo.com>
* JetHome: Update u-boot patches: fix emmc work on JetHub D1
* JetHome: update kernel patches with last updates for JetHub devices.
* JetHome: Update Bluetooth init script to more stable start.
* Switched rockchip64 u-boot to v2021.07
* Switched OrangePi R1 Plus to include mainline's R2S device tree
* Added unsingned signed comparison patch from Paolo to fix rk3328 reboots