* feat(board/orangepi5pro): Update U-Boot to v2025.07 for eMMC support
Updated the U-Boot patch from v2024.04 to v2025.07, this change
finally enables booting from eMMC on the Orange Pi 5 Pro.
The device tree source for the board has also been refactored to
support the new U-Boot version and clean up peripheral definitions.
* orangepi5pro: dts: Fix incorrect GRF node name
The GRF node was misspelled as 'sysgrf' instead
of the correct 'sys_grf'.
This commit corrects the phandle to the proper value.
Updated the U-Boot patch from v2024.04 to v2025.07, this change
finally enables booting from eMMC on the Orange Pi 5 Pro.
The device tree source for the board has also been refactored to
support the new U-Boot version and clean up peripheral definitions.
Also tick on:
CONFIG_SPI_LOOPBACK_TEST=m
CONFIG_SPI_SLAVE=y
CONFIG_SPI_SLAVE_TIME=m
CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m
CONFIG_SPMI=y
CONFIG_SPMI_HISI3670=m
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
Setting MODULES="" overrides any module list inherited from the family
configuration; this may unintentionally lose essential vendor-kernel modules
(e.g. rockchip-rga, fusb302, etc.).
- PocketBeagle 2 and BeaglePlay requires this driver.
- The M4 core supports ZephyrRTOS and FreeRTOS along with bare-metal.
- Is already enabled in current and edge branch
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
- Using RT kernel is a common thing on pocketbeagle 2. So add current-rt
branch similar to what is being done for the base k3 family.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
- PocketBeagle 2 and BeaglePlay requires this driver.
- The M4 core supports ZephyrRTOS and FreeRTOS along with bare-metal.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
This was required in order to get the wif-pwrseq and bluetooth
functioning correctly on the BPI-M4-Zero. I suspect it will
have no negative results on other units. But of course this
needs to be tested.
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
* Add initial support for Orangepi 5 Pro
Tested and Working:
Wireless & Bluetooth
USB 2.0 + USB 3.1
HDMI 2.1
Gigabit Ethernet (PCIe to RJ45 - Need drivers YT6801)
NVMe PCIe 2.0
MicroSD
Audio Controller es8388 - Audio Out
FAN PWM
LEDs PWM
Not Working:
Onboard Microphone
HDMI 2.0 (DP-HDMI - rockchip,rk3588-dp No Driver)
Not Tested:
Camera 1,2
eMMC
* OPi 5 Pro: Ethernet Driver Installation on First Boot
Implemented a simple script to install the driver
during first boot using the installation headers
included in the image. Takes just a few seconds
on first boot.
Disclaimer: Attempted installation in a chroot env but failed.
* fix: Make first-boot Ethernet driver install more robust
The `eth-driver-firstboot.service` would sometimes fail on first boot with a "Resource temporarily unavailable" error. This happened when another process had a lock on `dpkg`.
To fix this, the installation script now waits for any `dpkg` locks to be released before attempting to install the driver package. It also includes a retry mechanism (3 attempts) in case of a transient failure.
This ensures the network driver is successfully installed, providing a better out-of-box experience.
- The edge branch will soon move to 6.16, so adding the current branch
now.
- The kernel config is just a copy of edge config since both kernels are
the same right now.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
KASLR, or Kernel Address Space Layout Randomization, is a
security mechanism used in operating system kernels to randomize
the memory locations of kernel code and data. This makes it
significantly harder for attackers to exploit memory corruption
vulnerabilities by preventing them from knowing the exact
addresses of kernel components.
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
- Enable USB serial by default.
- Allows serial access without needing extra UART cable.
- Also USB serial is much faster than using the UART debug port.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
The old method carried along with board-pbp-add-dp-alt-mode.patch only
makes typec work in one(normal) orientation. This patch introduces a
proper extcon driver and makes the workaround cleaner, so orientation
switch is working.
Improvements:
- type-c DP on rk3399 works with both orientations
- type-c USB 3.0 on rk3399 works with both orientations, with minor
issues, see below
Caveats:
- Powered USB-C hubs may be not recognized, and can be worked around by
loading a gadget driver, or manually toggling the mode once for each
connection.
- Some dual-role devices(phone, tablet) may be not recognized.
Affected boards:
- TinkerBoard 2/2S
- Pinebook Pro
- NanoPC T4
- Orange Pi 4
- Orange Pi 4 LTS
Tested on tinkerboard 2s. This patch contains other minor fixes for
tinker2's device tree, including adding a missing fan node, adding color
labels to leds.
The 2 patches adding dp support for nanopc t4 and pinebook pro are also
updated accordingly.
The device trees of Orange Pi 4 / 4 LTS are also updated to match the
new implementation.
Change U-Boot repository link from git.ti.com to Github. In the past,
there have been CI issues caused due to git.ti.com failing.
Signed-off-by: Suhaas Joshi <s-joshi@ti.com>
Texas Instruments maintains a custom apt repository [0] that contains:
* tools like k3conf, which run on K3 devices
* TI's versions of upstream packages (such as mesa)
* out-of-tree drivers and firmware for graphics, wifi etc
Therefore, add TI's custom repository as the highest priority repository
in the filesystem. Doing this ensures that if apt finds a version of a
package that exists in both upstream Debian and the TI repository, it
picks the latter.
Additionally, introduce K3_PACKAGES variable to store a list of packages
that should be installed by-default in a K3 image. Initialize it to hold
TI's CC33xx packages.
Also set EXTRAWIFI to "no" in `current` image.
[0] https://github.com/TexasInstruments/ti-debpkgs
Co-authored-by: Suhaas Joshi <s-joshi@ti.com>
Signed-off-by: Suhaas Joshi <s-joshi@ti.com>
TI SDK supports images with real-time kernel. Add support for building
such images for the `current` release by adding a config file for it.
The RT image is built with the `current-rt` branch.
Signed-off-by: Suhaas Joshi <s-joshi@ti.com>
- BeagleBoard.org boards normally ship with USB cdc enabled to allow
network sharing and ssh support over usb.
- This is specially important for boards like pocketbeagle2 since it
does not have built-in wifi.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
Change from "y" to "m"
Before
[ 2.423992] rtc-hym8563 1-0051: no valid clock/calendar values available
[ 2.424718] rtc-hym8563 1-0051: registered as rtc0
[ 2.425770] rtc-hym8563 1-0051: no valid clock/calendar values available
[ 2.425789] rtc-hym8563 1-0051: hctosys: unable to read the hardware clock
[ 3.817166] rk808-rtc rk808-rtc.5.auto: registered as rtc1
After
[ 3.790107] rk808-rtc rk808-rtc.5.auto: registered as rtc0
[ 3.801742] rk808-rtc rk808-rtc.5.auto: setting system clock to 2017-08-05T09:48:13 UTC (1501926493)
[ 3.919628] rtc-hym8563 1-0051: registered as rtc1
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
Enables kernel options that are important for making armbian viable for use on PocketBeagle 2.
Can now run all examples present in the beagle examples repo: https://github.com/beagleboard/vsx-examples
Signed-off-by: Ayush Singh <ayush@beagleboard.org> Andrei Aldea <andrei@beagleboard.org>
- fixes: unrecognized option '-Wl,--no-warn-rwx-segment'
- add a patch to atf that removes the unrecognized linker options
Signed-off-by: Martin Schmiedel <Martin.Schmiedel@tq-group.com>
Follow conventional `if-then-else-fi` constructions by not having `else` followed by semicolon. Hush is accepting, but other commonly used shells do not accept this.
- UUID boot does not seem to work on PocketBeagle 2.
- So specify the block device path instead.
- Also without rootwait, the boot will fail.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
This is tested on a tinkerboard 2s.
The u-boot dts for tb2 contains other fixes, and the major ones are:
- add missing basic gpio-fan node
- usb-c altmode fix, dts part
- similar to e9708b8c33, but for the Blade3
- this reverts d048673c00 just for the Blade3
- there is little to be gained from .10 anyway on those machines (IMHO)
- it is still vendor 2017.09 after all, dunno why Radxa calls them "2024.x"
- UMS mode (use the black USB port)
- Boot order: SD -> NVMe -> SATA -> USB -> eMMC
- Flash LEDs in preboot
- Networking stuff
- Lots of FS's and compression methods
* helios4: fix wake-on-lan (wol)
- added ethtool package
- enable wol on all ethernet interfaces
- support common systemd.net-naming-schemes (ethX/endX/enoX)
* Update helios4-wol.service
Removed test code.
* Update helios4-wol.service
Fix bug after retesting.
From the Kconfig:
```
Preload default EDID (Extended Display Identification Data)
branded by Linux Foundation that exposes display modes up
to 4k@30Hz, which have best compatibility with HDMI transmitters.
Enabling this option is recommended for a non-production use-cases.
It will make driver usable out-of-the-box.
For a higher display modes you will need to load customized EDID
from userspace using v4l2-ctl tool or by other means.
Without enabling this option driver will be practically
non-functional until EDID will be loaded from userspace.
Which is a wanted behavior when using this driver in a
commercial product that should utilize own branded EDID.
```
On v2025.01 and v2025.04 I get the following error
starting USB...
Bus usb@ff500000: dwc3_meson_gxl_get_phys: usb2 ports: 1
probe failed, error -114
No USB controllers found
So revert back to v2024.10 until sorted.
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
ATF is currently built in Debug mode for K3 family of devices. This is
due to the fact that K3 Armbian images have been experimental so far.
However, there is work underway to make Armbian a production-capable
environment. Therefore, drop the DEBUG=1 flag from the ATF build
command.
Signed-off-by: Suhaas Joshi <s-joshi@ti.com>
Presently, in k3 devices, we are setting TEE=bl31.bin. However TEE
should be set to OPTEE, not ATF.
Therefore, do the following:
* clone and compile OPTEE
* add variables for OPTEE platform and `make` arguments in all k3
board configs
* use the compiled binary as TEE to compile U-Boot
Signed-off-by: Suhaas Joshi <s-joshi@ti.com>
Currently `current` picks 6.6.y kernel baseline, and `edge` picks
upstream's 6.12.y tree.
Make `current` pick the current SDK release (which, at the moment, is at
11.00.09 baseline), and make `edge` pick the latest un-released RC's
from TI's tree.
`current` is what most people will use, therefore it should be the same
as our official and tested release. `edge` can be either cutting-edge
(latest RC) or bleeding-edge (latest commit on cicd branch). For now,
keep it cutting-edge.
Signed-off-by: Suhaas Joshi <s-joshi@ti.com>