Compare commits

..

486 Commits

Author SHA1 Message Date
Jan Čermák
0724608ff7
Update Buildroot to 2025.02 (#4027)
* Update Buildroot base to v2025.02

Packages updated:

* Added host-blake3 1.5.4
* Added host-go-src
* Added host-libxcrypt 4.4.38
* Added host-tar 1.35
* Added host-xxhash 0.8.3
* Added libtalloc 2.4.2
* Added libxcrypt 4.4.38
* apparmor updated from 3.1.2 to 3.1.7
* busybox updated from 1.36.1 to 1.37.0
* cifs-utils updated from 6.15 to 7.1
* containerd updated from 1.7.26 to 2.0.2
* dbus-broker updated from 35 to 36
* dropbear updated from 2024.85 to 2024.86
* e2fsprogs updated from 1.47.0 to 1.47.2
* expat updated from 2.6.4 to 2.7.0
* gcc-final updated from 12.4.0 to 13.3.0
* glibc updated from 2.38-81-gc8cb4d2b86ece572793e31a3422ea29e88d77df5 to 2.41-5-gcb7f20653724029be89224ed3a35d627cc5b4163
* gptfdisk updated from 1.0.9 to 1.0.10
* host-binutils updated from 2.40 to 2.43.1
* host-ccache updated from 4.8.2 to 4.10.2
* host-cmake updated from 3.28.3 to 3.31.5
* host-dtc updated from 1.7.0 to 1.7.2
* host-e2fsprogs updated from 1.47.0 to 1.47.2
* host-elfutils updated from 0.189 to 0.192
* host-expat updated from 2.6.4 to 2.7.0
* host-fakeroot updated from 1.32.1 to 1.36
* host-gawk updated from 5.3.0 to 5.3.1
* host-gcc-final updated from 12.4.0 to 13.3.0
* host-gcc-initial updated from 12.4.0 to 13.3.0
* host-genimage updated from 17 to 18
* host-go updated from 1.22.12 to unknown
* host-gptfdisk updated from 1.0.9 to 1.0.10
* host-kmod updated from 31 to 33
* host-libcap updated from 2.69 to 2.73
* host-libffi updated from 3.4.4 to 3.4.6
* host-libglib2 updated from 2.76.1 to 2.82.5
* host-libopenssl updated from 3.2.4 to 3.4.1
* host-libtirpc updated from 1.3.4 to 1.3.6
* host-libxml2 updated from 2.12.9 to 2.13.6
* host-lz4 updated from 1.9.4 to 1.10.0
* host-lzip updated from 1.23 to 1.25
* host-meson updated from 1.3.1 to 1.7.0
* host-mpc updated from 1.2.1 to 1.3.1
* host-mtools updated from 4.0.43 to 4.0.47
* host-nfs-utils updated from 2.6.4 to 2.8.2
* host-pcre2 updated from 10.42 to 10.44
* host-pkgconf updated from 1.6.3 to 2.3.0
* host-python3 updated from 3.11.11 to 3.12.9
* host-python-flit-core updated from 3.9.0 to 3.10.1
* host-python-jinja2 updated from 3.1.2 to 3.1.5
* host-python-markupsafe updated from 2.1.3 to 3.0.2
* host-python-packaging updated from 23.2 to 24.2
* host-python-pypa-build updated from 1.0.3 to 1.2.2
* host-python-pyproject-hooks updated from 1.0.0 to 1.2.0
* host-python-setuptools updated from 69.0.3 to 75.8.0
* host-python-wheel updated from 0.40.0 to 0.45.1
* host-rauc updated from 1.11.3 to 1.13
* host-sqlite updated from 3.44.2 to 3.48.0
* host-systemd updated from 254.13 to 256.7
* host-util-linux updated from 2.39.3 to 2.40.2
* host-xz updated from 5.4.5 to 5.6.4
* host-zstd updated from 1.5.5 to 1.5.7
* iproute2 updated from 6.7.0 to 6.13.0
* iptables updated from 1.8.9 to 1.8.11
* json-c updated from 0.17 to 0.18
* kmod updated from 31 to 33
* libapparmor updated from 3.1.2 to 3.1.7
* libblockdev updated from 3.1.1 to 3.3.0
* libbytesize updated from 2.7 to 2.10
* libcap-ng updated from 0.8.4 to 0.8.5
* libcap updated from 2.69 to 2.73
* libdnet updated from 1.16.4 to 1.18.0
* libffi updated from 3.4.4 to 3.4.6
* libglib2 updated from 2.76.1 to 2.82.5
* libgudev updated from 237 to 238
* libmicrohttpd updated from 0.9.77 to 1.0.1
* libnftnl updated from 1.2.6 to 1.2.7
* libnl updated from 3.9.0 to 3.11.0
* libnvme updated from 1.7.1 to 1.11.1
* libopenssl updated from 3.2.4 to 3.4.1
* libtirpc updated from 1.3.4 to 1.3.6
* libunistring updated from 1.1 to 1.3
* libusb updated from 1.0.26 to 1.0.27
* lvm2 updated from 2.03.14 to 2.03.27
* nettle updated from 3.9.1 to 3.10.1
* network-manager updated from 1.44.2 to 1.50.2
* nfs-utils updated from 2.6.4 to 2.8.2
* pcre2 updated from 10.42 to 10.44
* procps-ng updated from 4.0.4 to 4.0.5
* rauc updated from 1.11.3 to 1.13
* rpcbind updated from 1.2.6 to 1.2.7
* rtl8821cu updated from 1597dfeda6cefd2e603fc7020ceca226d05fb108 to 96c65c58b544241178638e810b333dcc9aa26b91
* sqlite updated from 3.44.2 to 3.48.0
* systemd updated from 254.13 to 256.7
* util-linux-libs updated from 2.39.3 to 2.40.2
* util-linux updated from 2.39.3 to 2.40.2
* wireless-regdb updated from 2023.09.01 to 2024.10.07
* wpa_supplicant updated from 2.10 to 2.11

* patches/genimage: drop upstreamed patches

* patches/systemd: drop merged patch

* patches/network-manager: drop upstreamed patch

* Add BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_* to defconfigs
2025-04-17 12:04:39 +02:00
Jan Čermák
233b9c9482
Bump OS to development version 15.3.dev0 2025-04-11 10:05:19 +02:00
Jan Čermák
338df41858
Linux: Update kernel to 6.12.23 (#4017)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.23
2025-04-10 17:21:58 +02:00
Jan Čermák
57445099f7
Allow for fluctuation of MemTotal for automatic swapfile size (#4016)
As the reported MemTotal can fluctuate a bit on some systems, e.g. because the
reserved memory changes between kernel version or other factors affect it like
VRAM, the swap file can be recreated unnecessarily between boots. Allow for
some fluctuation (up to +-32MB) before the swapfile is recreated.

This was a problem already before the recent haos-swapfile changes, however,
before it checked if the existing swapfile isn't smaller than the desired
value. If the MemTotal fluctuated there, the swapfile size eventually settled
on the highest value seen and it wasn't recreated anymore. With this change,
things should be stable even more.
2025-04-10 17:18:07 +02:00
Michal Šimek
f3916bb7f0
Enable driver for 1-wire temperature sensors for generic-aarch64 (#4015)
Driver is used for connected local 1-wire temperatures sensors.
2025-04-10 13:31:52 +02:00
Jan Čermák
7b3ce53ab2
Backport realtek phy driver changes for RTL8125D (#4014)
As pointed out in [1] by @cdce8p, the RTL8125D has an internal PHY that also
needs some changes to be backported.

Also, move the patches to more targeted directories is it would be otherwise
applied to RPi 6.6 kernel with failures. We can move it back to the top-level
patches directory once RPi moves to kernel 6.12.

[1] https://github.com/home-assistant/operating-system/issues/3880#issuecomment-2790105503
2025-04-09 21:44:31 +02:00
Jan Čermák
7bc7f66e49
Disable amdgpu SI/CIK support and backport upstream patch to prevent crashes (#4013)
As we enabled SI/CIK support to fix crashes on bunch of AMD SoCs in #3957, the
amdgpu driver still crashes on some hardware. It seems to be some GX-217GA SoCs
or even GX-425GA in Fujitsu thin clients (even though the same SoC is fine on
T620).

To get to the state before update to kernel 6.12, disable amdgpu for these
platforms again (as it couldn't work properly there before OS 15.0) and just
backport the patch that fixes the crashes during probing when the driver isn't
compiled with SI/CIK support.

Fixes #4012
2025-04-09 17:23:55 +02:00
Jan Čermák
fc984b9435
Backport RTL8125D (rev C, XID 688) support (#4011)
* Backport RTL8125D (rev C, XID 688) support

Apply mainline patch adding support for NIC present e.g. on ASUS NUC 14
Essential.

Fixes #3880

* Update buildroot to add RTL8125D firmware

* buildroot 4cd211162d...5379c358bf (1):
  > linux-firmware: add RTL8125D firmware
2025-04-09 16:38:29 +02:00
Jan Čermák
349b7e48ea
Add tests for checking connectivity, fix Supervisor update test (#4008)
When there's a problem with connectivity, it may result in obscure errors later
in the testing. Add checks testing three scenarions:

* connectivity in host - both using curl and nmcli
* connectivity in Supervisor container (uses docker0 as default via)
* connectivity in CLI container (uses hassio as default via)

Also make sure that Supervisor upgrade isn't attempted when the version
information is missing.
2025-04-07 16:13:11 +02:00
Jan Čermák
cdbbfeaecc
Linux: Update kernel to 6.12.22 (#4007)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.22
2025-04-07 16:13:00 +02:00
Jan Čermák
212796c98a
Linux: Update kernel to 6.12.21 (#3994)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.21
2025-04-01 18:49:19 +02:00
Jan Čermák
92a3b5a793
Adjust lock workflow to run only once a day (#3991)
It's unnecessary to run it every hour, adjust it to run shortly after the
current stale workflow.
2025-03-31 20:26:23 +02:00
Jan Čermák
163b1a3fff
Merge branch 'main' into dev 2025-03-31 17:28:33 +02:00
Jan Čermák
3e2f891cc0
Bump OS to release version 15.1 2025-03-31 11:27:11 +02:00
Jan Čermák
23d08b9cf7
Fix permissions for the lock workflow (#3982)
Unlike Core this repo has stricter default policy for actions. Explicitly
enable permissions for scope the lock workflow needs.
2025-03-28 16:59:27 +01:00
Jan Čermák
75f0936c53
Add workflow for locking old issues (#3980)
To avoid necroposting to old issues that's usually left unnoticed, add workflow
for locking issues similar to the one that Core has.

The PR locking limit can be increased as the traffic is much lower compared to
Core. Issues before 2025 have been locked manually via the API.
2025-03-28 15:51:25 +01:00
Jan Čermák
2f0ffbe443
Change algorithm name in OVA manifest from SHA2-256 to SHA256 (#3981)
Update of OpenSSL in OS 12.2 from 1.1.1 to 3.2 changed the output of `openssl
sha256` command. It seems that some hypervisors don't like this and fail if
it's not plain "SHA256".

Fixes #3654
2025-03-28 15:21:46 +01:00
Jan Čermák
3a9a2529c6
Bump OS to development version 15.2.dev0 2025-03-28 15:20:43 +01:00
Jan Čermák
8407de34f6
Bump OS to pre-release version 15.1.rc1 2025-03-27 11:03:23 +01:00
Jan Čermák
00203b8c5c
Update Docker to v28.0.4 (#3974)
Update Docker and its dependencies to versions packaged in last bugfix release.

* buildroot 3914f8cad5...4cd211162d (4):
  > package/runc: bump version to v1.2.6
  > package/docker-cli: bump version to v28.0.4
  > package/docker-engine: bump version to v28.0.4
  > package/containerd: bump version to v1.7.26
2025-03-26 18:43:44 +01:00
Jan Čermák
ed53f0491c
Set initial_turbo=0 in config.txt on Raspberry Pi 3 (#3973)
Firmware change that set initial_turbo to 60 from the previous 0 has broken
initialization of some SD cards in U-Boot. Adjust the value in config.txt on OS
update if the value is not already set by the user, and put it to the default
config.txt.

The config.txt also contains a short comment explaining the purpose. The
purpose of it is also to make it easier to revert this change in the future if
the problem is fixed in the firmware or U-Boot.

Fixes #3965
2025-03-26 17:26:20 +01:00
Jan Čermák
5e9c47a318
Backport RPi patches for PIO/RP1 firmware probing errors (#3972)
One of the reason for failures after update to OS 15.0 was missing support for
the kernel PIO driver in EEPROM firmware. Backport upstream patches from
raspberrypi/linux#6645 and raspberrypi/linux#6642 that handle this situation
more gracefully. These patches could be dropped after the next RPi kernel
release.

Refs #3943
2025-03-26 16:26:44 +01:00
Jan Čermák
ab6214ba42
Linux: Update kernel to 6.12.20 (#3971)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.20
2025-03-25 18:29:22 +01:00
M. Greyson Christoforo
73b6cce99a
Add Mellanox ConnectX-3 NIC support for kernel 6.12 (#3969)
PR #3775 was mistakenly left out of the jump to the 6.12 kernel
2025-03-25 11:50:25 +01:00
Jan Čermák
ff1eadfe21
Fix incorrect buildroot reference after #3964 merge (#3968)
Submodule hash for buildroot was changed by accident in #3964, revert to
version from the previous commit.
2025-03-25 10:09:00 +01:00
Jens Maus
15e59ead2f
Update generic_raw_uart and eq3_char_loop to latest versions (#3964)
Update generic_raw_uart package to the latest sources available coming with
direct kernel 6.12.x compatibility dropping the intermediate patches
accordingly. In addition, the eq3_char_loop patchset was updated to reflect the
same changes performed.
2025-03-23 10:59:02 +01:00
Jan Čermák
05830dae0b
Change i915 to module for proper initialization in VM passthrough (#3959)
When Intel GPUs are used in passthrough, the i915 is probed too early and fails
to load firmware which is in the rootfs mounted later. The CONFIG_DRM_I915=y
comes from x86_64_defconfig, by changing it to module (like we do for
generic-x86-64), the driver becomes only available after the rootfs is mounted
and firmware is loaded correctly.

Fixes #3949
2025-03-20 17:33:17 +01:00
Jan Čermák
0abfee2eaf
Enable amdgpu SI and CIK support for x86 (#3957)
It seems that kernel 6.12 handles device probing less gracefully when these
options are not enabled and causes crash on some AMD SoCs, e.g.:

*ERROR* Invalid callback to read register 0x58184

Link: https://gitlab.freedesktop.org/drm/amd/-/issues/4050

Refs #3944
2025-03-20 17:32:24 +01:00
Jan Čermák
ce961e0c2c
Add patches missing for ODROID-N2/C2/C4 to fix missing serial/I2C (#3947)
U-Boot update in #3878 changed the layout of patch folders for Hardkernel
targets with the goal to make it less confusing. However, it missed adding the
top-level hardkernel patches directory to all hardkernel targets and only
remove it from some of them in [1].

Revert to state before #3878 by adding the hardkernel folder to c2/c4/n2. In
the future, the patches from this folder should be split per target and if any
patches remain in it, they should be applied for all hardkernel boards.

[1] 2716b564c2

Fixes #3936
2025-03-18 18:00:04 +01:00
Jan Čermák
fd2c16d568
Move ODROID-N2/C2/C4 U-Boot patch to correct folder to fix eMMC issues (#3946)
As pointed out by @ginkage, in #3878 the eMMC patch was moved to a wrong path.
Move it to uboot subfolder so it's correctly applied.

Fixes #3942
2025-03-18 14:21:49 +01:00
dependabot[bot]
6d77c03e98
Bump docker/login-action from 3.3.0 to 3.4.0 (#3934)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.3.0...v3.4.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-17 15:12:30 +01:00
Jan Čermák
1e69fb2c25
Merge branch 'main' into dev 2025-03-17 11:27:03 +01:00
Jan Čermák
a3b0232351
Add landing page test to the basic test set (#3928)
We check that landing page is working when the network is down but we don't
check it in the happy path. Add its test to make it more obvious when the
just landing page is broken.
2025-03-17 11:23:04 +01:00
Jan Čermák
d259bf8b6b
Linux: Update kernel to 6.12.19 (#3929)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.19
2025-03-17 11:19:03 +01:00
Jan Čermák
248af90c9f
Bump OS to release version 15.0 2025-03-17 11:10:39 +01:00
Jan Čermák
5741be48bd
Bump OS to pre-release version 15.0.rc2 2025-03-13 10:16:33 +01:00
Jan Čermák
a4190754fe
Ensure haos-wipe service can be called only once per boot (#3924)
In some cases, the wipe service may be called due to a race condition for the
second time during the boot, very likely failing because the filesystems are
already mounted. This can not be reproduced on OVA but can be fairly easy
triggered e.g. on RPi. As we want the service to be executed exactly only once,
we can do what's suggested in [1] and set the RemainAfterExit=yes. That should
ensure the unit is not ever started for the second time.

[1] https://www.github.com/systemd/systemd/issues/29367

(cherry picked from commit 24640c11aeb89290f7a1ecfd0c8c6527f8523e27)
2025-03-13 10:16:12 +01:00
Jan Čermák
24640c11ae
Ensure haos-wipe service can be called only once per boot (#3924)
In some cases, the wipe service may be called due to a race condition for the
second time during the boot, very likely failing because the filesystems are
already mounted. This can not be reproduced on OVA but can be fairly easy
triggered e.g. on RPi. As we want the service to be executed exactly only once,
we can do what's suggested in [1] and set the RemainAfterExit=yes. That should
ensure the unit is not ever started for the second time.

[1] https://www.github.com/systemd/systemd/issues/29367
2025-03-12 20:07:26 +01:00
Jan Čermák
7e6e4119a7
Fix runtime device permissions update in runc v1.2.x (#3921)
Add missing patch and update for latest runc version to fix losing device
permissions when new devices are added in runtime.

* buildroot b079a02a9a...3914f8cad5 (2):
  > package/runc: add patch for extended default allowed devices in v1.2.4
  > package/runc: add missing patch to fix device permissions update

Fixes #3915

(cherry picked from commit 04debe2f539c4275fd68fe4d38fee3f8b8bab84b)
2025-03-12 11:31:35 +01:00
Jan Čermák
34a422401d
Update Hailo PCIe driver and firmware to v4.20.1 (#3922)
Update to latest version of the driver and matching firmware. The most common
application for it - Frigate - currently has 4.19.0 in stable but 4.20.0 is
staged in dev. As it's easier to select OS version than a version of the
add-on, it makes sense to stay ahead in HAOS. This also means Frigate needs to
be updated to the matching version (as staying on an arbitrary older patch
revision doesn't make much sense either).

(cherry picked from commit 173a4388fe7ee2f26c277b6c2dccdcab1b9f0a58)
2025-03-12 11:31:30 +01:00
Jan Čermák
f723d93159
Linux: Update kernel to 6.12.18 (#3919)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.18

(cherry picked from commit 3fb9c161c0f224e91f534bbe152d3dd46cc1375e)
2025-03-12 11:31:27 +01:00
Jan Čermák
084d0acee4
Improve tests traceability, add test for Systemd dependency cycles (#3917)
* Add test checking journal logs for dependency cycles
* Run some test cases to get their output also when full init fails
* Remove high timeouts from the times when GHA couldn't use KVM
* Enable logging durations for future optimizations

(cherry picked from commit 4a1d2b75b94483efc749e88aab95fa639aa2bb0a)
2025-03-12 11:31:24 +01:00
Jan Čermák
4ccc875520
Use shell script instead of OS Agent for device wipe (#3916)
Use simple shell script to perform device wipe instead of calling OS Agent to
do that through the UDisks2 API. While it might have been a good idea to use
high level interface for that back then, it turns out it causes more issues
than the benefits it could bring.

Main problem currently is that the OS Agent needs to read sysctl variables, but
those are only set after mounting the overlay partition. But at the same time,
the overlay partition can't be mounted if we want to wipe it - this creates a
dependency cycle through the haos-agent.service.

To get rid of the cycle and simplify things, use a shell script doing basically
the same what the OS Agent does. Since the wipe functionality only makes sense
to be implemented on HAOS targets (not on Supervised), there's little point of
having it in higher layer of abstraction that OS Agent provides.

It should be also checked if changes from #1291 are needed anymore, as the
driving factor for those have been probably the wipe feature in OS Agent too,
but at this point they seem to be harmless.

(cherry picked from commit 6c4f32a8c0cb48ba203d48068a773a5b3895ccfc)
2025-03-12 11:31:20 +01:00
Jan Čermák
25ca83287e
Bump os-agent to v1.7.2 (#3914)
Update to latest version that fixes start order in haos-agent.service. Without
that, OS Agent reports incorrect swappiness after boot.

(cherry picked from commit 36d905720a12742b4d46f3a0a6b0ca4628ed3f1d)
2025-03-12 11:31:13 +01:00
Jan Čermák
6e8c390096
Update RPi firmware to fix boot with 2025-02-11 bootloader (#3913)
* buildroot 7d5c3b5e70...b079a02a9a (1):
  > package/rpi-firmware: bump to 1.20250305 with updated firmware binaries

Fixes #3911

(cherry picked from commit d4e11afd3c98619bb83c19bee876902f794f8376)
2025-03-12 11:31:10 +01:00
Jan Čermák
16e6599832
Add test that no AppArmor denied events are produced (#3912)
As discussed in #3885, now that fixed Supervisor is in stable, we can test that
no AppArmor denied events are logged during CI tests.

(cherry picked from commit 610ced0162aa1c76915a0cc2adf16d93c858358e)
2025-03-12 11:31:07 +01:00
dependabot[bot]
f7bfd161ad
Bump docker/setup-buildx-action from 3.9.0 to 3.10.0 (#3910)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.9.0 to 3.10.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.9.0...v3.10.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit c72cf09cc36d13782dcdaed4eeb77ed5031a595c)
2025-03-12 11:31:02 +01:00
dependabot[bot]
33b92f53f9
Bump docker/build-push-action from 6.14.0 to 6.15.0 (#3909)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.14.0 to 6.15.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.14.0...v6.15.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit 668c84959a656cdd3a246d42a2ebe1e553dbfdff)
2025-03-12 11:30:55 +01:00
Jan Čermák
04debe2f53
Fix runtime device permissions update in runc v1.2.x (#3921)
Add missing patch and update for latest runc version to fix losing device
permissions when new devices are added in runtime.

* buildroot b079a02a9a...3914f8cad5 (2):
  > package/runc: add patch for extended default allowed devices in v1.2.4
  > package/runc: add missing patch to fix device permissions update

Fixes #3915
2025-03-11 15:24:08 +01:00
Jan Čermák
173a4388fe
Update Hailo PCIe driver and firmware to v4.20.1 (#3922)
Update to latest version of the driver and matching firmware. The most common
application for it - Frigate - currently has 4.19.0 in stable but 4.20.0 is
staged in dev. As it's easier to select OS version than a version of the
add-on, it makes sense to stay ahead in HAOS. This also means Frigate needs to
be updated to the matching version (as staying on an arbitrary older patch
revision doesn't make much sense either).
2025-03-11 15:15:28 +01:00
Jan Čermák
3fb9c161c0
Linux: Update kernel to 6.12.18 (#3919)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.18
2025-03-11 15:12:54 +01:00
Jan Čermák
4a1d2b75b9
Improve tests traceability, add test for Systemd dependency cycles (#3917)
* Add test checking journal logs for dependency cycles
* Run some test cases to get their output also when full init fails
* Remove high timeouts from the times when GHA couldn't use KVM
* Enable logging durations for future optimizations
2025-03-06 18:23:34 +01:00
Jan Čermák
6c4f32a8c0
Use shell script instead of OS Agent for device wipe (#3916)
Use simple shell script to perform device wipe instead of calling OS Agent to
do that through the UDisks2 API. While it might have been a good idea to use
high level interface for that back then, it turns out it causes more issues
than the benefits it could bring.

Main problem currently is that the OS Agent needs to read sysctl variables, but
those are only set after mounting the overlay partition. But at the same time,
the overlay partition can't be mounted if we want to wipe it - this creates a
dependency cycle through the haos-agent.service.

To get rid of the cycle and simplify things, use a shell script doing basically
the same what the OS Agent does. Since the wipe functionality only makes sense
to be implemented on HAOS targets (not on Supervised), there's little point of
having it in higher layer of abstraction that OS Agent provides.

It should be also checked if changes from #1291 are needed anymore, as the
driving factor for those have been probably the wipe feature in OS Agent too,
but at this point they seem to be harmless.
2025-03-06 16:39:40 +01:00
Jan Čermák
36d905720a
Bump os-agent to v1.7.2 (#3914)
Update to latest version that fixes start order in haos-agent.service. Without
that, OS Agent reports incorrect swappiness after boot.
2025-03-05 19:06:27 +01:00
Jan Čermák
d4e11afd3c
Update RPi firmware to fix boot with 2025-02-11 bootloader (#3913)
* buildroot 7d5c3b5e70...b079a02a9a (1):
  > package/rpi-firmware: bump to 1.20250305 with updated firmware binaries

Fixes #3911
2025-03-05 19:04:23 +01:00
Jan Čermák
610ced0162
Add test that no AppArmor denied events are produced (#3912)
As discussed in #3885, now that fixed Supervisor is in stable, we can test that
no AppArmor denied events are logged during CI tests.
2025-03-05 19:04:15 +01:00
Jan Čermák
a39b8a9418
Bump OS to development version 15.1.dev0 2025-03-03 15:14:08 +01:00
dependabot[bot]
c72cf09cc3
Bump docker/setup-buildx-action from 3.9.0 to 3.10.0 (#3910)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.9.0 to 3.10.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.9.0...v3.10.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 15:12:43 +01:00
dependabot[bot]
668c84959a
Bump docker/build-push-action from 6.14.0 to 6.15.0 (#3909)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.14.0 to 6.15.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.14.0...v6.15.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 15:12:14 +01:00
Jan Čermák
b2aa96c9bd
Bump OS to pre-release version 15.0.rc1 2025-03-03 09:24:34 +01:00
Jan Čermák
a4cbf82a6f
Bump os-agent to v1.7.1 (#3906)
Adds new DBus APIs for NTP servers and swap:
 - https://github.com/home-assistant/os-agent/pull/207
 - https://github.com/home-assistant/os-agent/pull/222
2025-02-28 15:07:31 +01:00
Jan Čermák
6b904abfcd
Linux: Update kernel to 6.12.17 (#3905)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.17
2025-02-28 14:19:55 +01:00
Jan Čermák
e801d403e1
Bump BlueZ to v5.79 (#3903)
Cherry-pick bumps up to v5.79 and sync other changes and fixes with latest
upstream state.

* buildroot b4df362187...7d5c3b5e70 (10):
  > package/bluez5_utils: tidy up the init script
  > package/bluez5_utils: install datafiles with correct permissions
  > package/bluez5_utils: fix dbusconfdir
  > package/bluez5_utils{, -headers}: bump version to 5.79
  > package/bluez5_utils: enable asha/bass when building audio plugins
  > package/{bluez5_utils, bluez5_utils-headers}: bump to version 5.78
  > bluez5_utils: disable asha profile
  > package/{bluez5_utils, bluez5_utils-headers}: bump to version 5.77
  > package/bluez5_utils: disable datafiles
  > package/bluez5_utils: fix sixaxis build without tools
2025-02-26 23:07:14 +01:00
Jan Čermák
15be152345
Update Docker to v28.0.1 (#3902)
Update Docker to latest version and containerd to latest version from the 1.7
line. Runc updated to v1.2.5 with rebased patchset from the outstanding PR.

* buildroot 257ddc70ce...b4df362187 (4):
  > package/runc: bump version to v1.2.5
  > package/docker-cli: bump version to v28.0.1
  > package/docker-engine: bump version to v28.0.1
  > package/containerd: bump version to v1.7.25
2025-02-26 17:22:39 +01:00
Jan Čermák
40ef226872
Update linux-firmware to 20250211 (#3901)
Mainly the amdgpu updates cause an increase of generic-x86-64 image size by
~12MB but there's still enough of space in the rootfs after recent cleanup.

* buildroot c5a1cbcf73...257ddc70ce (9):
  > package/linux-firmware: bump Intel BZ firmware version to 92
  > package/linux-firmware: bump version to 20250211
  > package/linux-firmware: bump version to 20241210
  > package/linux-firmware: fix build failures to due RTL8723 file changes
  > package/linux-firmware: bump version to 20240909
  > package/linux-firmware: bump to version 20240709
  > package/linux-firmware: improve help text for Realtek 88xx Bluetooth firmware
  > package/linux-firmware: install all rtl88 Bluetooth binary blobs
  > package/linux-firmware: RTL_88XX_BT: install all firmware
2025-02-26 13:45:53 +01:00
Jan Čermák
b3ce7131af
Disable linux-firmware zstd compression (#3898)
Disable downstream option for linux-firmware compression. With #3877 it's not
needed for x86 anymore and other boards don't need it. Eventually the higher
EROFS compression for firmwares and modules can be enabled for other targets as
well.
2025-02-25 15:16:58 +01:00
Jan Čermák
f5905569b0
Bump buildroot to 2024.02.11 (#3897)
* buildroot 92fab35fed...c5a1cbcf73 (1):
  > Merge tag '2024.02.11' into 2024.02.x-haos
2025-02-25 15:16:46 +01:00
pisanvs
bdcc2b90d5
Improve log clarity and fix typos (#3896) 2025-02-25 15:00:39 +01:00
Jan Čermák
714ca8a344
Drop kernel patch for fixed ODROID-M1/M1S kernel regression (#3895)
Patch added in #3843 is not necessary anymore, as the missing reset names have
been added to DTS includes of the 6.12.y branch as patch
6c9cd0a70ccea8a505471062a85de5626ad07cec (released in v6.12.14).
2025-02-24 17:13:45 +01:00
dependabot[bot]
f032cd571a
Bump docker/build-push-action from 6.13.0 to 6.14.0 (#3894)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.13.0 to 6.14.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.13.0...v6.14.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-24 16:24:34 +01:00
Jan Čermák
ea40984603
Linux: Update kernel to 6.12.16 (#3892)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.15
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.16
2025-02-24 15:17:51 +01:00
Jan Čermák
56e3a377db
Fix RAUC tryboot handler set-state idempotency, add more checks (#3891)
When RPi is booted in the tryboot state and the set-state operation is called
for the second time, the tryboot files don't exists anymore and the handler
exits with an error code, printing an error in the Supervisor logs. Fix
handling of this case and add few more checks to make the handler a bit more
robust/traceable.
2025-02-24 15:17:43 +01:00
Jan Čermák
8531e7b57d
Remove all info pages in post-build script (#3888)
As we don't have the info utility in HAOS, it's worthless to preserve info
pages. While there are currently some files in /share/info (coming from GRUB2
tools install), /usr/share/info was added pre-emptively.
2025-02-20 17:50:38 +01:00
Jan Čermák
664ae4ebfc
Remove unnecessary GRUB userspace tools and other files (#3887)
Because the OTA hooks interact with GRUB environment using grub-editenv, we
have BR2_TARGET_GRUB2_INSTALL_TOOLS enabled. However, that brings massive bloat
of files that are never used in HAOS, as it also installs many other binaries,
GRUB modules and translations.

As it's not possible to configure what gets installed in grub2 package, remove
the undesired files in the post-build function. This brings savings of ~8.5MB
of space in the root partition.
2025-02-20 17:50:21 +01:00
Jan Čermák
e158fbc834
Use auditd to process AppArmor/audit logs (#3885)
Use auditd so logs from AppArmor and other audit events are processed by that
instead of printed to the Systemd journal. This will reduce the log spam from
BPF usually present in host logs and still preserve the audit logs for
debugging.

The default configs seems to be sane for our purpose, rotating up to 5 files of
8MiB each. The difference is that /var/log/audit will be now on tmpfs but given
how AppArmor is used on typical HA setup, we don't need to preserve the logs
over reboots.
2025-02-20 17:45:23 +01:00
Jan Čermák
4ab51e780c
Remove unnecessary and invalid e2scrub removal from post-build (#3886)
Removal of the e2scrub binary is not needed anymore, as it's not installed and
only BR2_PACKAGE_E2FSPROGS_E2IMAGE is enabled. Moreover, it's been probably
wrong since the very beginning, as the TARGET_DIR prefix was missing, possibly
leading to removal of the binary from the host/builder.
2025-02-20 14:16:56 +01:00
Jan Čermák
e455669d62
Move swappiness config to 15-swappiness.conf (#3884) 2025-02-19 21:51:39 +01:00
Jan Čermák
1b511990e3
Allow overriding sysctl parameters via /etc/sysctl.d files (#3883)
Relocate current content of /etc/sysctl.d to /usr/lib and make the /etc folder
writable via a bind mount.
2025-02-19 15:33:16 +01:00
Jan Čermák
d42e34f646
Make swap size configurable (#3882)
Allow configuration of the swap size via /etc/default/haos-swapfile file. By
setting the SWAPSIZE variable in this file, swapfile get recreated on the next
reboot to the defined size. Size can be either in bytes or with optional units
(B/K/M/G, accepting some variations but always interpreted as power of 10). The
size is then rounded to 4k block size. If no override is defined or the value
can't be parsed, it falls back to previously used 33% of system RAM.

Fixes #968
2025-02-19 15:33:04 +01:00
Jan Čermák
dc7b693691
Update U-Boot to 2025.01 (#3878)
* Refresh fileenv patch for U-Boot 2025.01

* Update Tinker to U-Boot 2025.01

Needs minor patch adjustment, also fixed patch numbering.

* Update ODROID-N2 to U-Boot 2025.01, move eMMC patch

Move the patch for eMMC so it's applied only for N2 specifically and update it
for 2025.01.

* Update ODROID-C/XU to U-Boot 2025.01

No changes in patches necessary after moving the N2 patch.

* Update RPi boards to U-Boot 2025.01

Changes needed in bcmstb PCIe driver due to upstream refactoring, rest only
refreshed. All patches now target the same version, so we can drop one of the
series.

* Update VIM3 to U-Boot 2025.01

No patches here, just version bump.

* Update Green to U-Boot 2025.01

Updated and refreshed patches, added a patch to disable OF_UPSTREAM which is
now needed.

* Update ODROID-M1 to U-Boot 2025.01

Drop patch that has been mostly merged upstream. The change is that HS400 would
stay enabled but let's get back to what upstream does.

* Update ODROID-M1 to U-Boot 2025.01

Drop all patches as M1S support should be now merged to U-Boot and DTS taken
from upstream.

* Disable DFU and mkeficapsule to fix build

mkeficapsule requires gnutls to be built first but it's not among dependencies.
Since we don't need the tool, we can disable it.

DFU is also not used on HAOS and it implies EFI_LOADER that we already disable.
Moreover, that also sets SET_DFU_ALT_INFO and leads to linker failure on some
platforms where it's not implemented.

* fixup! Update Green to U-Boot 2025.01

There were more changes needed in the Green config to use correct memory layout
due to upstream changes, otherwise we'll have malloc failures in U-Boot proper.

* Move N2 eMMC patch to more generic patches-meson

To stay on the safe side, move the eMMC hack to more generic folder that's used
for all targets using the meson_gx eMMC driver (i.e. C2, C4 and N2). This is
still better than keeping it in hardkernel/patches which is applied only to
some hardkernel boards (like it was before bump to U-Boot 20205.01).
2025-02-18 13:48:24 +01:00
Jan Čermák
22ed3864dd
Linux: Update kernel to 6.12.14 (#3881)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.14
2025-02-18 11:41:09 +01:00
Jan Čermák
3a666bbeea
Use EROFS LZMA compression of firmware on x86 instead of per-file ZSTD (#3877)
Instead of using per-file ZSTD compression, compress firmware (and newly also
kernel modules) using LZMA within EROFS image. LZMA was picked because ZSTD
support in EROFS is still experimental and due to some limitations in the
implementation, the compression takes significantly more time.

This change gives us more control over compression of the files and with the
proposed settings, saves a bit of the space (~10 MiB) in the resulting image.
In theory, even higher savings could be achieved through compressing other
runtime binaries, but this would need to be thoroughly tested whether it
doesn't have any detrimental effects. For firmware and modules, the overhead
should be minimal, as they are usually touched only once per boot and are
rather small before decompression.

* buildroot 74994c4f32...92fab35fed (6):
  > fs/erofs: add custom compression option with optional compress-hints file
  > package/erofs-utils: bump to version 1.8.5
  > package/erofs-utils: bump to version 1.8.3
  > package/erofs-utils: bump to version 1.8.2
  > package/erofs-utils: bump to version 1.8.1
  > package/erofs-utils: add libdeflate and zlib optional dependencies
2025-02-14 12:27:39 +01:00
Jan Čermák
5fcf2932a6
Update firmware for Intel Wi-Fi 6/6E/7 cards, bump linux-firmware to 20240513 (#3876)
* buildroot 014c3fad50...74994c4f32 (2):
  > package/linux-firmware: update Intel iwlwifi firmware versions for Linux 6.12
  > package/linux-firmware: bump version to 20240513
2025-02-12 22:10:42 +01:00
Jan Čermák
43d26c8c54
Linux: Update kernel to 6.12.13 (#3868)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.13
2025-02-10 15:35:54 +01:00
dependabot[bot]
072ba9bade
Bump docker/setup-buildx-action from 3.8.0 to 3.9.0 (#3869)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.8.0 to 3.9.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.8.0...v3.9.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-10 14:57:53 +01:00
Jan Čermák
970cd4dfeb
Fix order of patches for Yellow (#3862)
After #3856, we need to change the patch order also for Yellow.
2025-02-05 18:18:45 +01:00
Jan Čermák
2dda7a0e75
Enable Intel 40 Gigabit ethernet driver module for x86-64 and OVA (#3858)
Enable Intel 40 Gigabit (aka 700 series) driver, used e.g. on MinisForum MS-01
for the SFP+ ports.

Fixes #3751
2025-02-04 18:33:52 +01:00
Jan Čermák
0ac5f029e6
Linux: Update kernel to 6.12.12 (#3859)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.12
2025-02-04 18:32:36 +01:00
Jan Čermák
aafe82f801
RaspberryPi: Update kernel to 6.6.74 - stable_20250127 (#3860)
* RaspberryPi: Update kernel to 6.6.74 - stable_20250127

* Bump buildroot to update rpi-firmware

* buildroot 71cba6c610...014c3fad50 (1):
  > package/rpi-firmware: bump to version 1.20250127 for kernel 6.6.74

* Update patch for disabling CQE on CM5

The bool has been changed to a cell, adding the possibility to change the value
via sd_cqe dt_param both on CM5 and Pi5. Set it to disabled by default on CM5.
2025-02-04 18:29:42 +01:00
Jan Čermák
1d5e86ad77
Disable UAS via usb-storage.quirks on RPi for JMicron JMS578 (#3857)
Reported in/fixes #3827
2025-02-04 13:13:50 +01:00
Jan Čermák
47309b4a10
Backport upstream patch to fix downstream patch collision in RPi 6.6 kernel (#3856)
Because of refactoring/code quality improvements in upstream, IPv6 reachability
patch no longer applied on 6.12 kernel. We added two versions of the patch to
address this initially, however, this requires updating of the patch directory
name on every kernel bump. Backport the patch causing collision instead to RPi
kernel, so we can carry only one version of the patch.

This also requires swapping of the patching order - now we first apply
board-specific patches, then the global ones. Unless there are collisions,
these operations should be idempontent, so at this point it shouldn't have any
side-effects.
2025-02-04 13:13:40 +01:00
Jan Čermák
b5b2f5da07
Remove USB stack patches working around obsoleted Z-Wave devices issues (#3854)
* Remove USB stack patches working around obsoleted Z-Wave devices issues

In #3224 we've introduced a patch reverting some changes in the USB stack that
was supposed to work around issues with some USB devices. Later discussions
revealed these devices are obsoleted by the manufacturer and there is no
official way of fixing those in newer Linux kernels. However, carrying the
patches makes us diverge from upstream and can eventually trigger other
problems not present upstream we'll have to handle.

Drop these patches now to be part of the upcoming OS 15 release, rather than
needing to drop them later in any of the patch revisions later.

* Also remove the patch from board/raspberrypi patches
2025-02-04 11:42:59 +01:00
Ricardo Pardini
c63f9ec84a
Allow boot from USB and NVMe on ODROID-M1 (#3852)
Use devtype instead of hardcoding device type to mmc in U-Boot script

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
2025-02-03 14:46:01 +01:00
Jan Čermák
9a760a2e28
Update all platforms to latest stable Linux 6.12 (#3850)
* Upgrade Rockchip platforms to Linux 6.12

Upgrade all Rockchip boards to latest 6.12. Patches for M1S can be dropped, its
DTS has been merged. Same goes for the Rockchip TRNG, it only had to be enabled
in the Green DTS. Patch for broken combphy has been updated for 6.12.y.

* Remove deprecated and nonsense symbols from Rockchip defconfig

Many symbols have been removed between 6.6 and 6.12. Most of them have no use
in Rockchip defconfig, or should be set by other kernel fragments anyway.
Remove all of them, with the exception of USB_ONBOARD_HUB (which was renamed to
USB_ONBOARD_DEV) and FSCACHE (which was changed from tristate to bool).

* Update generic-aarch64 to Linux 6.12

* Update Amlogic-based ODROID boards to Linux 6.12

Removed couple of deprecated/unrelated kernel options.

* Update VIM3 to Linux 6.12

Cleaned up symbols unrelated/deprecated in 6.12 from defconfig.

* Update ODROID-XU4 to Linux 6.12

The usual defconfigs suspects had to been removed and the regulator patch for
ethernet needed a minor update after refactoring in upstream.

* Update Tinker to Linux 6.12

Needed defconfig cleanup for 6.12, otherwise no changes.

* Update x86 and OVA to latest 6.12 release

This way the extra patches directory can be removed too.

* Remove 6.6.73 patches

* Refresh all linux patch series against 6.12.11 sources

* Reenable HW RNG on M1S to speed up boot

The TRNG on RK3566 supposedly [1] has low quality, that's why it's disabled in
upstream for this SoC. We had it enabled in the past and without it, the boot
is delayed by quite a lot. Enable it again for now and investigate the RNG
issues later.

[1] https://patchew.org/linux/cover.1722355365.git.daniel@makrotopia.org/

* Also remove CACHEFILES module from Rockchip config

It was only enabled for Rockchip and Tinker, and to my knowledge there is no
cachefiles daemon or anything other in the userspace that's using it.

* Remove unused 6.6.y fragments

Since we only have 6.6.y for Raspberry Pi now, it doesn't need the Rockchip and
wireless PCI fragments.
2025-02-03 14:35:22 +01:00
Jan Čermák
f56130af19
Revert kernel patch causing USB 3 and PCIe breakage on ODROID-M1/M1S (#3843)
Revert the patch changing phy reset behavior, requiring also changes in the
device tree that are missing in the stable backport. The issue was reported to
the regressions mailing list and hopefully future patch release should contain
a proper fix.

The patch is added to the patches-rockchip directory, potentially affecting
Green as well, although the broken peripherals are not used there.

Fixes #3837, fixes #3841
2025-01-30 11:36:01 +01:00
Jan Čermák
ffca0b30a9
Fix RPi 5 getting stuck in bootloader after some reboots (#3842)
Probably since home-assistant/supervisor#5276 introduced in Supervisor
2024.9.0, RAUC bootloader handler for tryboot can set the tryboot flag also
when the tryboot file is not present, causing the Pi to become stuck in
bootloader, trying to load the tryboot file.

This happens when the device is already in the tryboot state, in that case the
tryboot files and flag are created by set-primary and in turn the files are
removed in set-state, while the flag is persisted, causing the bootloader to
attempt loading non-existing file.

To avoid unnecessary juggling with tryboot/config files, only create them and
set the flag if the boot slot is different than the current one. Also, make
sure that the flag is reboot parameter is cleared when the tryboot files are
removed by the handler.

Fixes #3740
2025-01-30 11:35:51 +01:00
Jan Čermák
f9776abb6a
Update OVA to Linux 6.12 (#3845)
* Update OVA to Linux 6.12

* Remove obsolete I2C_COMPAT option

Same as on x86, this symbol was removed upstream.

* Disable linux-tools hypervfcopyd option

It was removed from Linux beginning in 6.9, see:
https://lore.kernel.org/all/1711788723-8593-7-git-send-email-ssengar@linux.microsoft.com/
2025-01-30 11:35:41 +01:00
Nick Venenga
fbd5c2c751
Update generic-x86-64 Linux kernel to 6.12 (#3767)
* Linux: Update kernel to 6.12.6

* Linux 6.12

* https://github.com/home-assistant/operating-system/pull/3767#discussion_r1899169881

* https://github.com/home-assistant/operating-system/pull/3767#discussion_r1899170543

* Add patch descriptions, kernel ver conditionals

Signed-off-by: Nick Venenga <nick@venenga.com>

* Remove extra zram compression algos

* Undo fragment files config change

...for platforms that didn't receive kernel updates

* Sort Dockerfile apt packages

* Add Upstream refs to patches

* Re-enable TC

* Restore v6.6.y kernel fragments

* Update buildroot to rebased branch

* Apply 6.12 migration only to generic-x86-64

* package/eq3_char_loop: port patch from RaspberryMatic by @jens-maus

* package/generic_raw_uart: port patch from RaspberryMatic by @jens-maus

* Restore buildroot-external/board/pc/patches/linux

It's used in ova and generic-aarch64 defconfigs. Keep the path removed from
generic-x86-64 defconfig.

* Split linux patches to be version-specific

The IPv6 reachability patch needs different context on 6.6.y and 6.12.y -
introduce version-specific linux directories. To avoid the need for extra
directory for version used in RPi, copy those patches to its patches directory.

* Replace removed Intel Skylake audio driver with Intel AVS

The Skylake driver was removed and should be now replaced either by Intel HD
Audio or Intel AVS. Remove the old options and enable AVS.

SND_SOC_INTEL_SKYLAKE=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:63)
SND_SOC_INTEL_SKL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:64)
SND_SOC_INTEL_APL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:65)
SND_SOC_INTEL_KBL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:66)
SND_SOC_INTEL_GLK=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:67)
SND_SOC_INTEL_CNL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:68)
SND_SOC_INTEL_CFL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:69)
SND_SOC_INTEL_CML_H=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:70)
SND_SOC_INTEL_CML_LP=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:71)
SND_SOC_INTEL_SKYLAKE_FAMILY=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:72)
SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:73)
SND_SOC_INTEL_SKYLAKE_COMMON=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:74)
-> a882f4d750

SND_SOC_INTEL_SST=m requested, actual = n (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:58)
-> 970d299b0a

* Remove I2C_COMPAT option

I2C_COMPAT=y not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:163)
-> 7e722083fc

* Correctly disable module compression after Kconfig change

The Kconfig structure was changed, there's now a top-level bool:
c7ff693fa2

---------

Signed-off-by: Nick Venenga <nick@venenga.com>
Co-authored-by: Jan Čermák <sairon@sairon.cz>
2025-01-28 14:57:07 +01:00
Jan Čermák
4919e4e26c
Use Python 3.13 for the build and artifacts index jobs (#3840) 2025-01-28 13:51:18 +01:00
Michal Šimek
7eccef8a18
Change Cadence i2c and Zynq GPIO from modules to built-in drivers (#3821)
On Kria KD240 slg7xl45106 device is handling reset for USB hub which is
providing access to SD card (USB/SD converter). Access to this device is
done via i2c which needs to be also enabled in the kernel as built-in
driver not as module when rootfs is mounted.

Also change ZYNQ_GPIO to be built-in driver because i2c is using gpio for
bus recovery that's why it should be also enabled to probe i2c driver
properly.

v6.6 kernel doesn't have support for usb5744 driver that's why disable it
but add TODO to enable it once v6.12 upgrade is done.
2025-01-28 13:05:02 +01:00
dependabot[bot]
c6218aafd8
Bump docker/build-push-action from 6.12.0 to 6.13.0 (#3836)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.12.0 to 6.13.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.12.0...v6.13.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-27 16:26:40 +01:00
dependabot[bot]
f51d6b0490
Bump actions/stale from 9.0.0 to 9.1.0 (#3835) 2025-01-27 15:21:53 +01:00
Jan Čermák
4fb83d5480
Merge branch 'main' into dev 2025-01-27 13:47:53 +01:00
Jan Čermák
da08a45d9f
Bump OS to release version 14.2 2025-01-27 09:29:31 +01:00
Jan Čermák
6f51b80db5
Bump OS to pre-release version 14.2.rc2 2025-01-21 22:44:51 +01:00
Jan Čermák
478f652e8c
Fix linux-pam trying to include disabled pam_lastlog.so on login (#3815)
Build of pam_lastlog.so was disabled by updating to v1.5.3 [1] yet the line
wasn't removed from the login modules. In upstream this was resolved by adding
a config option for turning the lastlog module and dynamic disabling of the
line including it. These changes neither a fix removing the config line were
not applied to 2024.02, so cherry-pick them here to fix the issue.

* buildroot ff563b383d...3784884466 (2):
  > package/linux-pam: adjust login pam file for lastlog
  > package/linux-pam: add menuconfig option to build pam_lastlog.so

Fixes #3789

[1] https://github.com/linux-pam/linux-pam/releases/tag/v1.5.3

(cherry picked from commit af7b36e1007981ccd04c75d60ee24e487d836a04)
2025-01-21 22:44:28 +01:00
Jan Čermák
8db3b9f848
Linux: Update kernel to 6.6.73 (#3813)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.72
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.73

(cherry picked from commit 235d7e0a4d8d7800f7c000d6e2a91fcd30254b9b)
2025-01-21 22:43:34 +01:00
Michal Šimek
5a502ca44c
Enable USB-SD convertor on AMD/Xilinx Kria KD240 platform (#3812)
* Enable USB-SD convertor on AMD/Xilinx Kria KD240 platform

Kria KD240 board is using SD card but SD is connected via onboard USB HUB.
USB controller is DWC3 with Xilinx glue logic. Both of these options are
enabled but board is using slg7xl45106 for driving usb-hub reset (PCA9570
driver) and USB3.0 requires initialization via PHY_XILINX_ZYNQMP driver.

All options should be enabled (=y) and can't be kernel modules because
provide access to rootfs.

* Add a note for config symbol change in 6.12

Changed in mainline commit 31e7f6c015d9eb35e77ae9868801c53ab0ff19ac

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
(cherry picked from commit 64ee53579b32fae80f02d15b88d1ef4016abc2c0)
2025-01-21 22:43:24 +01:00
Jan Čermák
a9efc21cb5
Bump Buildroot to 2024.02.10 (#3811)
* buildroot 00e8f09356...ff563b383d (1):
  > Merge tag '2024.02.10' into 2024.02.x-haos

(cherry picked from commit a7cdebf03217c7d6b44ff64ab2aa93a7a7fc0237)
2025-01-21 22:43:21 +01:00
dependabot[bot]
ed4463ed97
Bump docker/build-push-action from 6.11.0 to 6.12.0 (#3809)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit a9af9c8d351ccb2281d41023b0420491d96d69b8)
2025-01-21 22:43:17 +01:00
Jan Čermák
8233cb94cd
Fix kernel tainted test (#3818)
I have only tested that it fails for unreleased 6.6.72 kernel but haven't
tested the happy path and missed that it also failed because the types were
different. Stupid me.
2025-01-21 22:41:53 +01:00
Jan Čermák
48bf9b5056
Move rauc.db to boot partition (#3810)
* Move rauc.db to boot partition

The RAUC metadata file contains information that is tightly related to the
system and kernel partitions. With the possibility to migrate data disk, the
rauc.db can contain bogus information when moved to a different system. Removal
of the file on "device wipe" is also not desirable, because the information
about slot status is lost.

Relocate the rauc.db to the boot partition after a system upgrade (as this
can't be handled by RAUC hooks, because it needs to be executed after all slots
and metadata is written) and adjust the script for recreating it. The downside
is that its content in /mnt/data would be recreated if the boot slot is changed
or system downgraded but this should be handled quite gracefully.

Also remove the raucdb-first-boot service which is no longer necessary
with the file not present in the data partition.

* Fix shellcheck and mount path
2025-01-21 18:40:07 +01:00
Jan Čermák
af7b36e100
Fix linux-pam trying to include disabled pam_lastlog.so on login (#3815)
Build of pam_lastlog.so was disabled by updating to v1.5.3 [1] yet the line
wasn't removed from the login modules. In upstream this was resolved by adding
a config option for turning the lastlog module and dynamic disabling of the
line including it. These changes neither a fix removing the config line were
not applied to 2024.02, so cherry-pick them here to fix the issue.

* buildroot ff563b383d...3784884466 (2):
  > package/linux-pam: adjust login pam file for lastlog
  > package/linux-pam: add menuconfig option to build pam_lastlog.so

Fixes #3789

[1] https://github.com/linux-pam/linux-pam/releases/tag/v1.5.3
2025-01-21 18:39:58 +01:00
Jan Čermák
235d7e0a4d
Linux: Update kernel to 6.6.73 (#3813)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.72
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.73
2025-01-21 16:56:05 +01:00
Jan Čermák
ca02ed000b
Add check for tainted kernel to automatic tests (#3814)
Add test that the kernel isn't tainted at the end of the basic and supervisor
test suites, allowing us to catch e.g. kernel warnings that may left unnoticed
if dmesg isn't checked. There is no other source of tainting, so the value
should be always zero.
2025-01-21 16:55:49 +01:00
Michal Šimek
64ee53579b
Enable USB-SD convertor on AMD/Xilinx Kria KD240 platform (#3812)
* Enable USB-SD convertor on AMD/Xilinx Kria KD240 platform

Kria KD240 board is using SD card but SD is connected via onboard USB HUB.
USB controller is DWC3 with Xilinx glue logic. Both of these options are
enabled but board is using slg7xl45106 for driving usb-hub reset (PCA9570
driver) and USB3.0 requires initialization via PHY_XILINX_ZYNQMP driver.

All options should be enabled (=y) and can't be kernel modules because
provide access to rootfs.

* Add a note for config symbol change in 6.12

Changed in mainline commit 31e7f6c015d9eb35e77ae9868801c53ab0ff19ac

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2025-01-21 13:01:12 +01:00
Jan Čermák
a7cdebf032
Bump Buildroot to 2024.02.10 (#3811)
* buildroot 00e8f09356...ff563b383d (1):
  > Merge tag '2024.02.10' into 2024.02.x-haos
2025-01-21 12:42:20 +01:00
dependabot[bot]
a9af9c8d35
Bump docker/build-push-action from 6.11.0 to 6.12.0 (#3809)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-20 14:50:05 +01:00
Jan Čermák
219d7ec530
Fix artifacts index job by downgrading awscli (#3805)
Similarly to #3803, artifact index update fails because the R2 doesn't
like the new awscli. The regression apparently comes from 1.37.0 as
well, so pin to version older than that.
2025-01-17 15:50:21 +01:00
Jan Čermák
267679b192
Bump OS to development version 15.0.dev0 2025-01-17 13:12:50 +01:00
Jan Čermák
07e1cedeb8
Pin awscli to older version to work around R2 issues (#3803)
CI job fails to upload build artifacts because R2 doesn't support
checksums [1]. This was added in awscli 1.37.0 [2], pin to a version
older than that to work around the issue before R2 supports it or
ignores the header.

[1] https://www.cloudflarestatus.com/incidents/t5nrjmpxc1cj
[2] https://github.com/aws/aws-cli/blob/develop/CHANGELOG.rst
2025-01-17 10:03:17 +01:00
Jan Čermák
beafcda863
Bump OS to pre-release version 14.2.rc1 2025-01-16 18:12:43 +01:00
Jan Čermák
6ef7a68a1d
Make usb_modeswitch include directory writable (#3800)
The /etc/usb_modeswitch.d is present and empty but it can't be written to allow
user modification. Bind-mount it like other /etc folders to make it possible to
adjust usb_modeswitch config.

Fixes #3785
2025-01-16 18:11:35 +01:00
Jan Čermák
d9fb660152
Enable ES1371 sound card module for VMWare guests (#3799)
VMWare has option to emulate ES1371 soundcard which supposedly works better
than the default hdaudio. Enable its driver for the OVA image.

Fixes #3778
2025-01-16 18:11:03 +01:00
Michal Šimek
b8b1e255b1
Enable AMD 1-wire AXI IP and Zynq GPIO drivers (#3795)
Zynq GPIO driver is used on AMD/Xilinx Kria platform for ETH phy reset.
Macb and PHY drivers are already enabled.
1 wire IP can be used for reading sensors via PMOD connector.
2025-01-15 18:44:45 +01:00
Jan Čermák
4baca32658
Disable CQE on mmc0 to fix I/O freezes on CM5 (#3793)
Similarly to #3705, enabled CQE triggers I/O freezes usually on the first boot
when the swapfile is being created. While we disabled it for Yellow, with #3782
the issue started to appear on generic CM5 targets with the rpi5-64 image.

In the meantime it was discovered that there seems to be some relation with the
ext4lazyinit task, which happens as a result of data partition resize, yet it's
still unclear if the pattern of the access triggered by the concurrent FS
initialization is somehow responsible, or if another factor comes in play.
Disabling CQE yet makes the issue go away and serves as an acceptable
workaround.
2025-01-15 18:00:56 +01:00
Jan Čermák
f3d83d2650
Linux: Update kernel to 6.6.71 (#3792)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.70
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.71
2025-01-15 17:51:24 +01:00
M. Greyson Christoforo
16eb245f43
Add Mellanox ConnectX-3 NIC support (#3775)
Enable MLX4 kernel options, mainly for OVA and x86.

Co-authored-by: Jan Čermák <sairon@sairon.cz>
2025-01-15 10:31:10 +01:00
Gunjan Gupta
cd04812e9e
Allow boot from USB and NVMe on Khadas VIM3 (#3784)
Use devtype instead of hardcoding device type to mmc in U-Boot script.

Signed-off-by: Gunjan Gupta <gunjan@wesion.com>
2025-01-15 09:59:11 +01:00
dependabot[bot]
c0bf2751c4
Bump docker/build-push-action from 6.10.0 to 6.11.0 (#3791)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-13 14:35:42 +01:00
Jan Čermák
c7e21c0cf2
Add all BCM2712 device trees to RPi 5 image (#3782)
RPi 5 images container only device tree for Pi 5 Model B. Add the other
remaining BCM2712 device trees to enable running on CM5 and other variants
supported upstream.

Fixes #3766
2025-01-09 23:14:00 +01:00
Jan Čermák
f778edfac3
Change RPi bootargs order to keep cgroup memory controller enabled (#3772)
With "cgroup: Use kernel command line to disable memory cgroup" merged to RPi
kernel as 86099de [1], the device tree now contains "cgroup_disable=memory"
parameter. The parameters are parsed in the order defined in the cmdline and
with the previous order, the memory CG ends up disabled. Switching the order
fixes that and makes the order similar to what we get with standard bootloader
and parameters in cmdline.txt only.

The possible downside is that it won't be possible to override parameters from
hardcoded bootargs_hassos using cmdline.txt anymore, however, it's unlikely any
of these parameters will need to be adjusted by users.

Fixes #3765

[1] 86099deff5
2025-01-08 10:58:33 +01:00
Jan Čermák
a842fffa5b
Linux: Update kernel to 6.6.69 (#3773)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.67
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.68
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.69
2025-01-08 10:58:20 +01:00
Jan Čermák
29c8cf8440
Remove Z3FOLD option from Tinker kernel config (#3755)
The z3fold allocator was deprecated with the reasoning explained in [1] and
this patch was backported to stable 6.6.y as well. We enable zsmalloc in shared
hassos.config and the enabled option in the Tinker config was probably just
some remnant from the past.

[1] https://lore.kernel.org/linux-mm/20240904233343.933462-1-yosryahmed@google.com/
2024-12-19 13:59:52 +01:00
Jan Čermák
b02eee1af5
Remove unapplied BRCM_TRACING option from Rockchip kernel config (#3754)
The Rockchip config contained BRCM_TRACING option which had no effect without
TRACING enabled. The option now depends on that option since [1], resulting in
warning in our config checker.

[1] https://lore.kernel.org/lkml/81a29b15eaacc1ac1fb421bdace9ac0c3385f40f.1727179742.git.geert@linux-m68k.org/
2024-12-19 13:59:40 +01:00
Jan Čermák
52774c451c
Merge branch 'main' into dev 2024-12-19 11:43:30 +01:00
Jan Čermák
07159c8225
Bump OS to release version 14.1 2024-12-19 08:09:46 +01:00
Jan Čermák
2c2f88b270
Bump OS to development version 14.2.dev0 2024-12-17 10:43:02 +01:00
Jan Čermák
baa3f7871b
Bump OS to pre-release version 14.1.rc1 2024-12-17 09:26:31 +01:00
Jan Čermák
48edf7a114
Bump Buildroot to 2024.02.9 (#3745)
* buildroot b2077df873...00e8f09356 (1):
  > Merge tag '2024.02.9' into 2024.02.x-haos
2024-12-16 16:53:52 +01:00
Jan Čermák
79a90f81ff
Linux: Update kernel to 6.6.66 (#3744)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.66
2024-12-16 16:47:04 +01:00
dependabot[bot]
bb280e796f
Bump docker/setup-buildx-action from 3.7.1 to 3.8.0 (#3746)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.7.1 to 3.8.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.7.1...v3.8.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-16 15:53:52 +01:00
Jan Čermák
765f4daaa2
Enable TCPMSS target iptables module for all boards (#3739)
The TCPMSS target module for iptables was enabled in some kernel defconfigs but
not for all targets. It is used e.g. in default config of @bigmoby's WireGuard
Client add-on. Enable it globally in the HAOS kernel config to make sure it's
always present.

Fixes #3730
2024-12-12 20:44:30 +01:00
Jan Čermák
c7a9a0b906
Remove existing rauc.db from a data disk on the first boot (#3737)
If data disk is adopted on Yellow using the mechanism added in #3686, it
contains RAUC version information that is very likely invalid. In such case,
remove the file on first boot and have it recreated by the raucdb-update
service.
2024-12-12 20:44:15 +01:00
Jan Čermák
3b0b0312f6
Add Hailo PCIe driver and firmware for x86-64, aarch64 and OVA (#3736)
Hailo modules are usable also in other generic targets, so enable them also on
generic x86 and ARM targets. Runtime tested only on x86-64 (Beelink with Intel
N100).
2024-12-12 20:44:02 +01:00
Jan Čermák
d06aa63e3f
Add Hailo PCIe driver and firmware for Yellow (#3734)
The PCIe card from the RPi AI Kit (and probably other M.2 cards using the
Hailo-8 chip) can be used on Yellow - the driver initializes correctly and
creates a /dev/hailo0 device on Yellow both with CM4 and CM5.
2024-12-12 20:43:38 +01:00
Jan Čermák
70318701ea
Linux: Update kernel to 6.6.65 (#3733)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.65
2024-12-11 19:05:25 +01:00
Jan Čermák
434b83722f
Add HA Yellow image to RPi Imager index update action (#3731)
* Add HA Yellow image to RPi Imager index update action

Update the action to also bump HA Yellow image added in
home-assistant/version#402.

* Sync image name with the current JSON PR
2024-12-11 17:01:47 +01:00
Jan Čermák
e30cf80066
Compile hailo_pci module from original sources on RPi 5 (#3732)
Instead of using in-tree module on RPi 5, build it as a module from the
original sources. This will give us better control over the version used and
will also allow us for easier way to add the module to other platforms.

This also makes 017d172 unnecessary anymore.
2024-12-11 15:13:20 +01:00
Jan Čermák
2b30e2bf53
Linux: Update kernel to 6.6.64 (#3728)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.64
2024-12-09 20:01:36 +01:00
Jan Čermák
017d17291d
Fix Hailo-8 firmware path expected since driver v4.19.0 (#3721)
The new driver now expects the firmware file to contain version number, adjust
the path and remove unnecessary makefile step.
2024-12-06 15:17:32 +01:00
Jan Čermák
ce1e261fa4
Bump RPi SDIO WiFi firmware to latest version (#3719)
* buildroot c65b0306bb...b2077df873 (1):
  > package/brcmfmac_sdio-firmware-rpi: bump version to 4c1789e

Raspberry Pi kernel 6.6 driver for BCM43455 (used in RPi 3B+/4B) calls new API
which uses the DUMP_OBSS feature for channel selection. If it's not preset, it
results in drivers reporting errors, e.g.:

brcmf_set_channel: set chanspec 0xd099 fail, reason -52

The RPi OS firmware was updated but the package we use for this firmware
contains an old version that lacks this support. Update to latest version
synced from RPi upstream to fix the issues. The root cause is explained in [1]
by @ragazenta. Both disabling the DUMP_OBSS and updating the firmware makes the
errors go away.

[1] https://github.com/raspberrypi/linux/issues/6049#issuecomment-2485431104

Fixes #3367
2024-12-05 21:29:29 +01:00
Jan Čermák
4229332cc7
Bump Hailo-8 firmware to 4.19.0 for RPi kernel 6.6.62 (#3716)
Kernel bump in #3715 contains update of the driver to version 4.19.0 - bump the
firmware version to match it.
2024-12-04 18:27:50 +01:00
Jan Čermák
0a4114db3e
RaspberryPi: Update kernel to 6.6.62 - dd2394360860d15146c96635796a75b05bb32b61 (#3715)
* RaspberryPi: Update kernel to 6.6.62 - dd2394360860d15146c96635796a75b05bb32b61

* Bump buildroot to update rpi-firmware

* buildroot 1d7407c66b...c65b0306bb (1):
  > package/rpi-firmware: bump to version 1.20241126 for kernel 6.6.62
2024-12-04 18:26:00 +01:00
Jan Čermák
91079a0cc6
Merge branch 'main' into dev 2024-12-03 19:29:39 +01:00
Jan Čermák
2ac3fceaf4
Bump OS to release version 14.0 2024-12-03 14:16:01 +01:00
Jan Čermák
babf11d710
Bump OS to pre-release version 14.0.rc3 2024-12-02 21:22:42 +01:00
Jan Čermák
47a648392a
Disable CM5's RTC to make Yellow's on-board RTC the primary one (#3706)
With both RTCs enabled, the rpi_rtc is probed as the first one, making the
on-board RTC unused by default. Since the CM5's RTC peripheral can't be used on
Yellow, as the VBAT pin is not connected, disable it completely to fix RTC.

(cherry picked from commit 9d643edb54d25be404b1cc92b64f1eddf48e6a86)
2024-12-02 21:22:41 +01:00
dependabot[bot]
0b251bb950
Bump docker/build-push-action from 6.9.0 to 6.10.0 (#3704)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.9.0 to 6.10.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.9.0...v6.10.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit e0ccf398f2093071bfd8f4b20ecd7a8d2bd4c974)
2024-12-02 17:50:31 +01:00
Jan Čermák
3df7743633
Disable CQE on mmc0 to fix I/O freezes on Yellow+CM5 (#3705)
The I/O operations on the eMMC can sometimes fail and lock up completely, and
disabling CQE on the sdio1 (mmc0) interface seems to solve the issue. While it
is a known (and potentially resolved) issue [1] for SD cards in Raspberry Pi's
Linux fork, it is not acknowledged neither resolved for CM5's eMMC. With CQE
enabled, the device usually locks up within the first 10 first boots, when the
swap file is being created. After disabling CQE, no error occurred after more
that 100 cold boots (every time with swap file removed).

[1] https://github.com/raspberrypi/linuxissues/6349

(cherry picked from commit c514d6b4825e4d72a0f3bfac26a5d3a203390e08)
2024-12-02 17:50:28 +01:00
Jan Čermák
a355da2075
Reduce time of mmc0 interface random hangs on Yellow+CM5 boot (#3700)
For yet unknown root cause, the eMMC interface sometimes fails to initialize
properly, delaying boot for up to 130 seconds. This can be reduced by ~100s by
disabling SD and SDIO modes on the sdio1 interface used for mmc0 before a
better patch is found.

(cherry picked from commit 489de0b2fb06aa6477c2c4ad34d4b9440e5a21ae)
2024-12-02 17:50:24 +01:00
Jan Čermák
66405f102a
Linux: Update kernel to 6.6.63 (#3697)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.63

(cherry picked from commit 22dd06018327af29f07a83717a42c0bb19abdeec)
2024-12-02 17:50:21 +01:00
Jan Čermák
9d643edb54
Disable CM5's RTC to make Yellow's on-board RTC the primary one (#3706)
With both RTCs enabled, the rpi_rtc is probed as the first one, making the
on-board RTC unused by default. Since the CM5's RTC peripheral can't be used on
Yellow, as the VBAT pin is not connected, disable it completely to fix RTC.
2024-12-02 17:47:40 +01:00
dependabot[bot]
e0ccf398f2
Bump docker/build-push-action from 6.9.0 to 6.10.0 (#3704)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.9.0 to 6.10.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.9.0...v6.10.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-02 16:47:20 +01:00
Jan Čermák
c514d6b482
Disable CQE on mmc0 to fix I/O freezes on Yellow+CM5 (#3705)
The I/O operations on the eMMC can sometimes fail and lock up completely, and
disabling CQE on the sdio1 (mmc0) interface seems to solve the issue. While it
is a known (and potentially resolved) issue [1] for SD cards in Raspberry Pi's
Linux fork, it is not acknowledged neither resolved for CM5's eMMC. With CQE
enabled, the device usually locks up within the first 10 first boots, when the
swap file is being created. After disabling CQE, no error occurred after more
that 100 cold boots (every time with swap file removed).

[1] https://github.com/raspberrypi/linuxissues/6349
2024-12-02 16:45:35 +01:00
Jan Čermák
489de0b2fb
Reduce time of mmc0 interface random hangs on Yellow+CM5 boot (#3700)
For yet unknown root cause, the eMMC interface sometimes fails to initialize
properly, delaying boot for up to 130 seconds. This can be reduced by ~100s by
disabling SD and SDIO modes on the sdio1 interface used for mmc0 before a
better patch is found.
2024-12-02 15:19:38 +01:00
Jan Čermák
22dd060183
Linux: Update kernel to 6.6.63 (#3697)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.63
2024-11-25 17:49:13 +01:00
Jan Čermák
91532037bb
Bump OS to pre-release version 14.0.rc2 2024-11-22 14:25:55 +01:00
Jan Čermák
55bbddad4f
Enable Cypress M8 USB serial driver for all targets (#3693)
Build cypress_m8 driver as module for all targets - some of them had it in
their base defconfig while some not. It is required e.g. for UPB PIM (Powerline
Interface Module).

Fixes #3690

(cherry picked from commit d57e50776499f209e013efa0db6cb3c7f46f51c3)
2024-11-22 14:25:36 +01:00
Jan Čermák
444f65ca94
Sync Yellow's DTS with plain CM5 device tree (#3688)
Sync the DTS with changes added in newer commits merged after the initial
Yellow/CM5 DTS was written. The sdio1 node now has HS400 mode enabled and
sd_io_1v8_reg has been changed to regulator-fixed.

(cherry picked from commit b288cd212ae82d78de707009d61265d9d950497c)
2024-11-22 14:25:33 +01:00
Jan Čermák
74af855056
Always use NVMe datadisk on Yellow if it's present on first boot (#3686)
If HAOS on Yellow is booted for the first time with NVMe data disk present, it
should be preferred over the empty eMMC data partition. This will ease
reinstall of the system and migration from CM4 to CM5. All other data disks
(e.g. if a USB drive is used for them) are still treated as before, requiring
manual adoption using the Supervisor repair.

(cherry picked from commit 98ac7f017089f28d7f231eed1a51533dfa62a475)
2024-11-22 14:25:29 +01:00
@RubenKelevra
1291848041
Disable UAS via usb-storage.quirks on RPi for JMicron JMS583
Vendor ID: 152d
Product ID: a583

fixes #3674

(cherry picked from commit a042dc01d212dc2b559018fc42337dd5462270de)
2024-11-22 14:25:25 +01:00
Jan Čermák
d57e507764
Enable Cypress M8 USB serial driver for all targets (#3693)
Build cypress_m8 driver as module for all targets - some of them had it in
their base defconfig while some not. It is required e.g. for UPB PIM (Powerline
Interface Module).

Fixes #3690
2024-11-22 13:56:49 +01:00
Jan Čermák
b288cd212a
Sync Yellow's DTS with plain CM5 device tree (#3688)
Sync the DTS with changes added in newer commits merged after the initial
Yellow/CM5 DTS was written. The sdio1 node now has HS400 mode enabled and
sd_io_1v8_reg has been changed to regulator-fixed.
2024-11-21 19:42:58 +01:00
Jan Čermák
98ac7f0170
Always use NVMe datadisk on Yellow if it's present on first boot (#3686)
If HAOS on Yellow is booted for the first time with NVMe data disk present, it
should be preferred over the empty eMMC data partition. This will ease
reinstall of the system and migration from CM4 to CM5. All other data disks
(e.g. if a USB drive is used for them) are still treated as before, requiring
manual adoption using the Supervisor repair.
2024-11-21 19:42:26 +01:00
@RubenKelevra
a042dc01d2
Disable UAS via usb-storage.quirks on RPi for JMicron JMS583
Vendor ID: 152d
Product ID: a583

fixes #3674
2024-11-21 19:07:41 +01:00
Jan Čermák
af833dbc9f
Bump OS to development version 14.1.dev0 2024-11-19 16:06:02 +01:00
Jan Čermák
885f0a82ab
Bump OS to pre-release version 14.0.rc1 2024-11-19 12:02:56 +01:00
Jan Čermák
eec6dfb28d
Add Hailo-8 firmware for Raspberry Pi AI Kit/HAT on RPi 5 (#3680)
Add Hailo-8 firmware binary for Rasperry Pi AI accelerators. The version needs
to be determined from the Git history of the kernel sources, as the driver
source code is included in the RPi downstream kernel and the version string
can't be found in the code directly.

Fixes #3663
2024-11-18 19:01:25 +01:00
Stefan Agner
f169f78bb0
Add Kconfig option for Supervisor channel (#3618)
* Add Makefile variable for Supervisor channel

Allow to set the release channel pre-installed Home Assistant components
like Supervisor and add-on are fetched from. This channel is then also
used at runtime.

* Use choice instead of string variable

* Fix channel in Supervisor updater.json config

* Add newlines
2024-11-18 14:39:46 +01:00
Jan Čermák
71e580175e
Linux: Update kernel to 6.6.62 (#3679)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.61
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.62
2024-11-18 14:09:42 +01:00
Jan Čermák
78cdaab597
Merge Yellow's RAUC post-install hook with the install hook (#3678)
As stated in the docs [1], post-install hook is not executed if the slot
already has an install hook defined. Merge the post-install hook with the
install hook to fix CM5 migration for Yellow.

[1] https://rauc.readthedocs.io/en/latest/using.html#slot-hooks
2024-11-18 12:51:58 +01:00
Jan Čermák
b9e66fbfd0
Remove unnecessary kernel post-install hook for GRUB-based targets (#3672)
The code for this hook was removed in #3457 but it wasn't removed from the
manifest. Remove it to avoid unnecessary execution of the hook.
2024-11-14 16:07:16 +01:00
Jan Čermák
9dfbdd9d12
Fix Yellow's post-install hook for config.txt migration (#3671)
The hook was missing in the manifest, enable it conditionally for Yellow and
add reminder to remove it once it's not needed.
2024-11-14 09:44:12 +01:00
Anton Starikov
b28dd8c4c4
Add iwlwifi-gl firmware needed for Intel BE200 Wi-Fi 7 card (#3668)
Add iwlwifi-gl firmware, which is required for Intel BE200 card. Targets are
generic_aarch64, generic_x86_64 and ova.

* buildroot 19027bc796...1d7407c66b (1):
  > package/linux-firmware: add iwlwifi gl firmware

Closes #3643.
2024-11-14 09:23:34 +01:00
Jan Čermák
23039ceea7
Reduce timeout for network time synchronization to 15 seconds (#3669)
The timeout of 90s was introduced before it was ensured that the timesync
systemd unit starts after network is online. Now with that, it makes less sense
to wait that long - if network is unreachable at the point the time
synchronization starts, and the server fails to reply on the first sync, the
polling interval is exponentially increased and the benefit of waiting for more
attempts is doubtful.

Since another synchronization attempt is done after network changes its state,
we should rely on that instead of having the 90 seconds interval as a waiting
period for plugging the network cable. Worst case, there are other mechanisms
that should set the time to a reasonably accurate value, making the NTP sync
less importart for most of the cases.
2024-11-13 17:14:54 +01:00
Jan Čermák
180c9ada3f
Add initial support for Raspberry Pi CM5 on Yellow (#3667)
* Move RPi U-Boot patches to version-specific directory

We will need to use different series for 2024.10 which would be used as the
base for CM5 support.

* Remove common.h include from the fileenv cmd

It doesn't seem to be used and common.h has been removed in newer U-Boot.

* Use U-Boot 2024.10 with BCM2712 PCIe patches for Yellow

Use rebased patchset from v2024.01 with the first patch removed. Add patches
needed for PCIe initialization and use rpi_arm64_defconfig as the base config
for both CM4 and CM5.

* Add device tree for CM5 on HA Yellow and adjust config

Add device tree definition based on the CM5 device tree with BCM2712D0 changes
applied, and add nodes required for the on-board peripherals of Yellow.

Currently the difference in serial numbering still requires either changes in
this device tree, or userspace changes to create correct symlinks to make HA
configuration directly compatible with CM4 on Yellow.

* Add config.txt migration for conditional device_tree options

* Fix typos and minor issues found by CodeRabbit
2024-11-12 14:34:54 +01:00
Jan Čermák
6047770d7f
Linux: Update kernel to 6.6.60 (#3666)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.60
2024-11-11 17:06:51 +01:00
Jan Čermák
0dc9c65d3c
Fall back to max eMMC clock to fix Kingston eMMC compat with ODROID-N2 (#3665) 2024-11-09 19:04:02 +01:00
Jan Čermák
f612d42fb3
RaspberryPi: Update kernel to 6.6.51 - stable_20241008 (#3662)
* RaspberryPi: Update kernel to 6.6.51 - stable_20241008

* Update rpi-firmware to version for kernel 6.6.51

* buildroot 2ffac68a74...19027bc796 (1):
  > package/rpi-firmware: bump to version 1.20241008 for kernel 6.6.51
2024-11-05 16:02:58 +01:00
Jan Čermák
c9e2b50406
Bump Buildroot to 2024.02.7 (#3659)
* buildroot d59d09ad38...2ffac68a74 (1):
  > Merge tag '2024.02.7' into 2024.02.x-haos
2024-11-05 08:07:31 +01:00
Jan Čermák
7edde96735
Linux: Update kernel to 6.6.59 (#3657)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.58
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.59
2024-11-05 08:07:19 +01:00
xtsrthm
59851f7a51
Add support for external i2c devices (#3642)
This commit adds support for usb to i2c adapters, the i2c chardev and the bme280  famaily environment sensors
2024-11-05 08:06:52 +01:00
dependabot[bot]
8fd7f26d74
Bump mikepenz/action-junit-report from 4 to 5 (#3658)
Bumps [mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report) from 4 to 5.
- [Release notes](https://github.com/mikepenz/action-junit-report/releases)
- [Commits](https://github.com/mikepenz/action-junit-report/compare/v4...v5)

---
updated-dependencies:
- dependency-name: mikepenz/action-junit-report
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 14:48:00 +01:00
Stefan Agner
a2ff594a75
Add kernel options required for Atheros 12k wirelss adapters (#3640)
Add support for interrupt remapping for IO-APIC and MSI devices as
required by some ath12k devices.

Fixes: #3621
2024-10-21 21:19:40 +01:00
Stefan Agner
f459a1174d
Linux: Update kernel to 6.6.57 (#3639) 2024-10-21 21:19:33 +01:00
Jan Čermák
a5cdc318d4
Bump OS to development version 14.0.dev0 2024-10-15 14:36:49 +02:00
Jan Čermák
9e00205ceb
Merge branch 'main' into dev 2024-10-15 14:36:21 +02:00
Jan Čermák
3f161bc7d1
Bump OS to release version 13.2 2024-10-15 13:23:17 +02:00
Jan Čermák
bb0086addf
Linux: Update kernel to 6.6.56 (#3622)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.55
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.56
2024-10-14 16:44:37 +02:00
Jan Čermák
1bd9245219
Bump OS to pre-release version 13.2.rc2 2024-10-14 15:58:11 +02:00
Jan Čermák
fb7a9c4196
Linux: Update kernel to 6.6.54 (#3614)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.54

(cherry picked from commit 1b6b40ebe72f9f6e996ae3670598e73000df680c)
2024-10-14 15:54:52 +02:00
dependabot[bot]
8f69cd7fd1
Bump docker/setup-buildx-action from 3.6.1 to 3.7.1 (#3613)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit 998d0e37fe71880db9e1a534e11f648a34114da7)
2024-10-14 15:54:49 +02:00
Jan Čermák
67ddfe2563
Linux: Update kernel to 6.6.53 (#3605)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.53

(cherry picked from commit a4a3912b21d2df32bf72207b472d76b2cb882e40)
2024-10-14 15:54:44 +02:00
Darren Griffin
ce8b777d74
Add OHF logo to README (#3603)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
(cherry picked from commit 5d58a25b62ab30c467ff29fdfe61658f48155f02)
2024-10-14 15:54:34 +02:00
dependabot[bot]
82f36004f5
Bump docker/build-push-action from 6.7.0 to 6.9.0 (#3604)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit cf546d6f768efd499946115b384901e7dc25c307)
2024-10-14 15:54:29 +02:00
Jan Čermák
1b6b40ebe7
Linux: Update kernel to 6.6.54 (#3614)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.54
2024-10-07 18:22:53 +02:00
dependabot[bot]
998d0e37fe
Bump docker/setup-buildx-action from 3.6.1 to 3.7.1 (#3613)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-07 15:47:43 +02:00
Jan Čermák
a4a3912b21
Linux: Update kernel to 6.6.53 (#3605)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.53
2024-10-01 17:34:04 +02:00
Darren Griffin
5d58a25b62
Add OHF logo to README (#3603)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-09-30 18:47:33 +02:00
dependabot[bot]
cf546d6f76
Bump docker/build-push-action from 6.7.0 to 6.9.0 (#3604)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-30 15:57:27 +02:00
Jan Čermák
62a30ac509
Bump OS to pre-release version 13.2.rc1 2024-09-26 17:03:13 +02:00
Jan Čermák
ba73a8c3d7
Use GRUB2 legacy loader for Macbook Air A1370 (#3593)
Fix loading issues on this Intel-based platform as well. As described in the
patch commit message, there will be likely bigger collateral effect by
referring just to the CPU ID but it shouldn't have major detrimental effects.

[1] https://github.com/home-assistant/operating-system/issues/3305#issuecomment-2360633688
2024-09-25 17:13:33 +02:00
Jan Čermák
0fdf920b89
Fix guest-agent not starting with HyperV Enlightenments enabled (#3592)
Guest agent doesn't start because if HyperV Enlightenments are enabled, the
virtualization gets detected incorrectly. Backport Systemd patch that fixes the
detection, allowing the guest-agent service to meet its dependencies.

This patch should be no longer needed after update of Systemd to v256, or in
case the patch gets eventually backported to the v254 stable branch.

Fixes #3565
2024-09-25 17:13:22 +02:00
Jan Čermák
f27c429be2
Linux: Update kernel to 6.6.52 (#3591)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.52
2024-09-23 23:23:07 +02:00
Viacheslav Bocharov
e4d00de474
Update buildroot to 2024.02.x-haos in .gitmodules (#3589) 2024-09-17 15:07:28 +02:00
Jan Čermák
65789af595
Linux: Update kernel to 6.6.51 (#3587)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.51
2024-09-12 17:49:17 +02:00
Jan Čermák
39b1c6de4e
Bump Buildroot to 2024.02.6 (#3586)
* buildroot c68e03d96b...d59d09ad38 (2):
  > package/procps-ng: fix build with BR2_PACKAGE_SYSTEMD enable
  > Merge tag '2024.02.6' into 2024.02.x-haos
2024-09-12 15:49:27 +02:00
Jan Čermák
2916a1c247
Relocate HAOS Systemd drop-ins to /usr/lib/systemd (#3582)
* Relocate HAOS Systemd drop-ins to /usr/lib/systemd

With some exceptions, Systemd drop-ins overriding default unit configuration
have been placed to `/etc/systemd/system`. This is meant for user overrides of
those, or per `man 5 systemd.unit` for "system unites created by the
administrator". Relocate all of these to `/usr/lib/systemd` which should be
used as path for units "installed by the distribution package manager" which is
closer to what we're trying to achieve.

This will make it easier to detect changes to unit files once we enable the
possibility to edit the content of /etc.

* Patch systemd-timesyncd.service instead of replacing it fully
2024-09-12 12:47:22 +02:00
Jan Čermák
2e6b38a0e1
Enable debug logging for GRUB rescue shell options (#3581)
If the system fails to boot, some kernel messages may not be shown before the
system fully boots. Enable the debug option for rescue shell options to have an
easy way to see those without modifying GRUB options. This will increase log
verbosity and turn on debug logging for Systemd as well [1].

[1] https://www.freedesktop.org/software/systemd/man/latest/systemd.html#debug
2024-09-11 23:30:15 +02:00
Jan Čermák
5d164b12d1
Add test for no failed Systemd units (#3583)
Test that systemctl reports no failed units at the end of the basic test.
2024-09-11 23:30:01 +02:00
Jan Čermák
e3bbe2003f
Tests: update labgrid to v24.0.1 (#3584)
Bump labgrid to latest release. None of the changes require adjustments in the
tests. Remove pytest from requirements.txt, it's not needed anymore, so let pip
to resolve the correct (latest) version from labgrid's dependencies. With these
new dependencies, previous DeprecationWarnings on Python 3.12 are gone now.
2024-09-11 23:29:48 +02:00
Jan Čermák
93ac046349
Linux: Update kernel to 6.6.50 (#3580)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.50
2024-09-09 18:11:34 +02:00
Jan Čermák
d615f8c71e
Linux: Update kernel to 6.6.49 (#3577)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.49
2024-09-05 00:33:38 +02:00
Jan Čermák
3977f1f039
Bump Docker to v27.2.0 (#3576)
* Update Docker to v27.2.0

Update Docker and containerd to latest supported version.

* buildroot a2c10a16a0...c68e03d96b (3):
  > package/containerd: bump version to v1.7.21
  > package/docker-cli: bump version to v27.2.0
  > package/docker-engine: bump version to v27.2.0

* package/hassio: update DinD container to v27.2
2024-09-03 15:42:43 +02:00
Jan Čermák
d9e46d6dbb
Purge Cloudflare cache for all files after uploading R2 artifacts (#3568)
If an attempt to access R2 artifacts is made before the files exist, the 404
reply gets cached and it's not possible to access the file after it's been
created without purging the cache, essentially doing a cache poisoning for
future build artifacts. To avoid it, list all files that have been created by
the build and call the purge cache API.

As there's a limit for number of files that can be purged in a single API call
[1], the GNU split utility is used to split intermediary list of files to
chunks of 30 URLs, which is then converted to a JSON array and passed to the
curl command.

[1] https://developers.cloudflare.com/api/operations/zone-purge#purge-cached-content-by-url
2024-09-02 10:38:04 +02:00
Jan Čermák
b23b54bed0
Linux: Update kernel to 6.6.48 (#3570)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.48
2024-09-02 10:37:48 +02:00
Jan Čermák
5eb7ccb761
Use GRUB legacy loader for HP t520 to fix boot with GRUB 2.12 (#3562)
HP t520 have been reported to have the same issues as Atom boards with bad UEFI
firmware that doesn't work well with the new EFI loader used since GRUB 2.12.
Apply the patch to use legacy loader for its CPU ID as well.

Fixes #3557
2024-08-26 14:34:06 +02:00
Jan Čermák
c6d4e2788e
Fix missing Intel AX210 firmware files, remove unused firmwares (#3556)
Fix AX210 firmware files, this time for real. In #3549 we still had only
ucode and pnvm files for AX211, AX210 was still missing the pnvm file,
because its ucode was provided through IWLWIFI_22000 without appropriate
pnvm file. Both AX210 and AX211 firmwares are now installed with
IWLWIFI_6E which includes both pnvm and ucode files.

Also some firmwares which are not used by the current kernel can be
removed, because the kernel always only loads the most recent one.

* buildroot 01188d9c38...a2c10a16a0 (2):
  > Revert "package/linux-firmware: exclude some files from compression"
  > package/linux-firmware: fix AX210 support, stick to latest supported ucode API, reorganize the split

Fixes #3477
2024-08-23 15:56:41 +02:00
Jan Čermák
14ca2ac75e
Bump Buildroot to 2024.02.5 (#3550)
* buildroot 55be56d521...01188d9c38 (1):
  > Merge tag '2024.02.5' into 2024.02.x-haos
2024-08-21 17:35:30 +02:00
Jan Čermák
4fb27c2ca8
Linux: Update kernel to 6.6.47 (#3541)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.47
2024-08-21 17:34:55 +02:00
Jan Čermák
c7018054b4
Bump OS to development version 13.2.dev0 2024-08-21 17:33:16 +02:00
Jan Čermák
7f9116b7f8
Merge branch 'main' into dev 2024-08-21 17:32:55 +02:00
Jan Čermák
e97b1231dc
Bump OS to release version 13.1 2024-08-21 15:29:36 +02:00
Jan Čermák
1a7dc0ca1f
Fix iwlwifi driver failing to find .pnvm files for Intel 6E (AX210) (#3549)
Since updating to Buildroot 2024.02, the iwlwifi loads a different version of
firmware for Intel AX cards (reported on AX210) which also needs the pnvm file.
However, unlike firmwares, the load method is different and the driver can't
load a compressed file. Disable compression for all .pnvm files to fix this.

* buildroot baa16784d2...55be56d521 (1):
  > package/linux-firmware: exclude some files from compression

Fixes #3477

(cherry picked from commit d3a43a4ca4fcdcb4b0ba9a6017c3340773011166)
2024-08-21 15:28:47 +02:00
Jan Čermák
d3a43a4ca4
Fix iwlwifi driver failing to find .pnvm files for Intel 6E (AX210) (#3549)
Since updating to Buildroot 2024.02, the iwlwifi loads a different version of
firmware for Intel AX cards (reported on AX210) which also needs the pnvm file.
However, unlike firmwares, the load method is different and the driver can't
load a compressed file. Disable compression for all .pnvm files to fix this.

* buildroot baa16784d2...55be56d521 (1):
  > package/linux-firmware: exclude some files from compression

Fixes #3477
2024-08-21 11:14:15 +02:00
dependabot[bot]
3c2f014acb
Bump docker/build-push-action from 6.6.1 to 6.7.0 (#3542)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.6.1 to 6.7.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.6.1...v6.7.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-20 16:36:37 +02:00
Jan Čermák
1b6cfbf940
Bump OS to pre-release version 13.1.rc1 2024-08-16 13:10:22 +02:00
Jan Čermák
cdee2c5838
Add LED indication for button handling in Yellow's U-Boot (#3536)
With #3523 as inspiration, it might be useful to wait for buttons to be
released, e.g. in case when they become stuck. Also indicate the button
operation (wipe, boot files removal, UMS) has been handled by turning on the
yellow LED.
2024-08-16 13:04:07 +02:00
Jan Čermák
7e7612ffeb
Implement device wipe using the hardware button on Green (#3523)
* Improve LED naming in U-Boot DTS

Port Stefan's patch from Linux patchset to U-Boot.

* Implement device wipe using the hardware button on Green

Unlike Yellow, Green doesn't have a way to easily wipe the device, e.g. if the
user forgets the password - in that case the only option is to use a microSD
card and reflash the system. Fortunately, Green has a hardware button wired to
the PMIC chip which exposes the button state in one of the registers. Read this
value in U-Boot and decide if cmdline flag for device wipe should be set - same
as we do on Yellow.

Also enable LED driver and command in U-Boot. In the current implementation, if
the button is held for ~5 seconds when plugging in the device (this time
includes DDR training, SPL, etc.), the yellow LED turns solid to indicate wipe
is about the start. When the Linux kernel starts, the kernel LED driver takes
over and starts blinking in heartbeat pattern. Because it takes a while to load
the kernel, the LED stays solid for 2-3 seconds, which should be enough to
recognize it was acknowledged.

* Wait for button to be released before wiping
2024-08-16 09:35:21 +02:00
Jan Čermák
832b70bab1
Linux: Update kernel to 6.6.46 (#3529)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.46
2024-08-14 17:38:00 +02:00
lamauny
0c08acd2c3
Enable NTFS and exFAT drivers for all targets (#3516)
Enable NTFS and exFAT drivers, as they're not in defconfigs of all platforms and may be useful when mounting removable drives. 

Fixes #2723

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2024-08-14 17:03:59 +02:00
Jan Čermák
1467cc5f64
Enable 1.5MBd serial console on Green for new installs (#3527)
With default console on HDMI (tty0), we lost the console on the serial port. It
may be useful for debugging, let's enable it for new installs with the same
speed as bootloader (to avoid the need for baud rate switching).
2024-08-14 17:00:15 +02:00
Jan Čermák
d44d93e4a1
Fix CPU ID for D2xxx/N2xxx in GRUB2 loader patch (#3526)
Report from @ChernyaevAN in [1] revealed it's 13829424153406670433 in decimal,
which means the endianness was wrong for the CPUs I didn't have available for
testing.

[1] https://github.com/home-assistant/operating-system/issues/3305#issuecomment-2288609199
2024-08-14 17:00:03 +02:00
Jan Čermák
2fb1663a35
Bump OS to development version 13.1.dev0 2024-08-13 15:51:13 +02:00
Jan Čermák
a7617340e9
Merge branch 'main' into dev 2024-08-13 15:50:52 +02:00
Jan Čermák
77e2b92972
Bump OS to release version 13.0 2024-08-13 11:14:31 +02:00
dependabot[bot]
fd31ce14ea
Bump docker/build-push-action from 6.5.0 to 6.6.1 (#3519)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.5.0 to 6.6.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.5.0...v6.6.1)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-12 19:51:32 +02:00
Jan Čermák
598e06de5d
Linux: Update kernel to 6.6.45 (#3518)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.45
2024-08-12 19:23:18 +02:00
Jan Čermák
d83602c6d3
Bump OS to pre-release version 13.0.rc2 2024-08-08 18:42:56 +02:00
Jan Čermák
55b3446bd9
Enable eMMC HS200 mode in Green's U-Boot defconfig (#3511)
Follow-up to #3412. While we haven't seen any issues so far, it's mentioned in
the original patch series we took inspiration from that HS200 works more
reliably, so enable it in Green's defconfig by amending the patch.

(cherry picked from commit 0452965fb04a86712fa1b6f58f9788abb1a8c937)
2024-08-08 18:42:35 +02:00
Jan Čermák
f292ba02e2
Fix writing U-Boot environment on ODROID-M1 (#3510)
Apply the same patch we applied in #3412 for Green. At that time I thought the
patch was already applied upstream for M1 and haven't checked, but it turns out
it wasn't true. Apply it here before we get U-Boot with that patch series [1]
included.

[1] https://patchwork.ozlabs.org/project/uboot/cover/20240204205312.2342868-1-jonas@kwiboo.se/

(cherry picked from commit d6fa83a0d38d8716a283e8c0df5f5ef6bc622c9d)
2024-08-08 18:42:32 +02:00
Jan Čermák
42baa80900
Increase block size of kernel squashfs image to 128K (#3509)
While mksquashfs uses this value by default, Genimage's default is 4K. This is
far too low value and results in slower kernel load, especially on embedded
boards with a flash drive. Explicitly set it to 128K to generate same images as
in pre-genimage builds.

(cherry picked from commit edba18f6c41539f18e53f285b2c6cbecd509eab9)
2024-08-08 18:42:29 +02:00
Jan Čermák
ba86720163
Bump ODROID N2's U-Boot to v2024.01 again (#3508)
We previously reverted the bump because we were unsure where the eMMC issues
are coming from. Now we know some of them were caused by incompatible eMMCs
then never worked from the beggining, and attempt to fix them (by changing the
frequency) caused some other side effects. Bump U-Boot back to the version used
generally and continue from there.

(cherry picked from commit 50a0062ee64972a7387f8eae549becea38018722)
2024-08-08 18:42:23 +02:00
Jan Čermák
0452965fb0
Enable eMMC HS200 mode in Green's U-Boot defconfig (#3511)
Follow-up to #3412. While we haven't seen any issues so far, it's mentioned in
the original patch series we took inspiration from that HS200 works more
reliably, so enable it in Green's defconfig by amending the patch.
2024-08-08 18:40:20 +02:00
Jan Čermák
d6fa83a0d3
Fix writing U-Boot environment on ODROID-M1 (#3510)
Apply the same patch we applied in #3412 for Green. At that time I thought the
patch was already applied upstream for M1 and haven't checked, but it turns out
it wasn't true. Apply it here before we get U-Boot with that patch series [1]
included.

[1] https://patchwork.ozlabs.org/project/uboot/cover/20240204205312.2342868-1-jonas@kwiboo.se/
2024-08-08 18:40:09 +02:00
Jan Čermák
edba18f6c4
Increase block size of kernel squashfs image to 128K (#3509)
While mksquashfs uses this value by default, Genimage's default is 4K. This is
far too low value and results in slower kernel load, especially on embedded
boards with a flash drive. Explicitly set it to 128K to generate same images as
in pre-genimage builds.
2024-08-07 20:14:13 +02:00
Jan Čermák
50a0062ee6
Bump ODROID N2's U-Boot to v2024.01 again (#3508)
We previously reverted the bump because we were unsure where the eMMC issues
are coming from. Now we know some of them were caused by incompatible eMMCs
then never worked from the beggining, and attempt to fix them (by changing the
frequency) caused some other side effects. Bump U-Boot back to the version used
generally and continue from there.
2024-08-07 20:14:06 +02:00
Franz Josef Kaiser
26c383484e
Explains UMS Utility image (#3507) 2024-08-07 16:43:41 +02:00
Jan Čermák
d8baa98ae2
Add documentation and dependencies category to release-drafter config (#3506)
* add Documentation category
* add Dependencies (to easily filter them out if not needed in changelog)
* adjust the order a bit to have user-facing changes first
2024-08-07 15:06:46 +02:00
Jan Čermák
ccca13d3ca
Drop "default kernel tree" line from docs (#3505)
The following table is self-explanatory and unlike this, is kept up-to-date
automatically.
2024-08-06 17:18:10 +02:00
Jan Čermák
7a19b892a5
Bump OS to pre-release version 13.0.rc1 2024-08-06 14:45:45 +02:00
Jan Čermák
66fc7d7e2a
Test landing page is reachable without internet connection (#3499)
* Test landing page is reachable without internet connection

Add test that checks user is able to access the landing page even when HAOS has
no internet connection. We still need some sort of outgoing connectivity, so
outgoing connection attempts don't end up with "network is unreachable". To
simulate this, restricted network is created for the QEMU instance used in the
test, and when everything is started, unresponsive default gateway is added.

This intents to test regression that was fixed by
home-assistant/supervisor#5204, Supervisor 2024.7.0+ is thus needed for this
test to pass.

* Bump requirements for tests
2024-08-06 11:02:59 +02:00
dependabot[bot]
9cc45f65ea
Bump docker/setup-buildx-action from 3.6.0 to 3.6.1 (#3501)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-05 15:33:44 +02:00
Jan Čermák
c2527a2ae1
Linux: Update kernel to 6.6.44 (#3500)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.44
2024-08-05 14:04:32 +02:00
Jan Čermák
a32974e1a7
Use GRUB2 legacy loader only on some Intel Atom boards specifically (#3498)
* Use GRUB2 legacy loader only on some Intel Atom boards specifically

Previous revert of GRUB2 change that introduced usage of the generic EFI loader
for all x86 boards in #3324 caused regressions, the one confirmed is #3348.
This commit adds a specific patch that identifies the broken platforms based
on SMBIOS data gathered in #3305 and falls back to the legacy loader there.

Tested on Intel D525MW (falls back) and QEMU (no fallback).

* Enable GRUB's smbios module

Having smbios command in GRUB can help in future debugging, e.g. to add more
CPUs that should use the linux loader fallback.
2024-07-31 09:22:07 +02:00
Jan Čermák
d51a0d3cec
Patch genimage to force first usable LBA @ 34 to fix RPi 5/Windows issues (#3497)
Genimage sets the first usable LBA to the offset of the first partition. While
it shouldn't be an issue in theory, Windows may do some nasty things with the
GPT header afterwards which breaks the Raspberry Pi bootloader, manifesting as

Before purpose of this behavior is clarified in [1], add a downstream patch
that sets the first usable LBA back to 34, which was the value that was used
before migrating to Genimage in #3388. Since changing this value (hopefully)
doesn't have any other consequences, and the images now should be closer to
pre-genimage builds, no more side-effects are expected from this change.

[1] https://www.github.com/pengutronix/genimage/issues/262

Fixes #3437
2024-07-30 18:57:37 +02:00
dependabot[bot]
13c4bb56c0
Bump docker/setup-buildx-action from 3.5.0 to 3.6.0 (#3496)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 16:39:08 +02:00
Jan Čermák
327e9a07c9
Linux: Update kernel to 6.6.43 (#3495)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.42
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.43
2024-07-29 14:06:21 +02:00
Jan Čermák
568499072f
Allow EROFS compression for Rockchip kernels (#3493)
Rockchip config fragment had EROFS compression explicitly disabled. Remove that
option and also remove the EROFS one, as it's already set in common config.
2024-07-25 21:51:36 +02:00
Stefan Agner
bc7c109163
Enable Netfilter MARK match kernel configuration (#3492)
Make the Netfitler MARK match kernel config a OS required configuration.
This config is required by the OpenThread Border Router add-on.

Fixes: https://github.com/home-assistant/addons/issues/3698
2024-07-24 16:40:37 +02:00
Jan Čermák
b0bc71a835
Reduce log spam from Docker health checks (#3491)
Reduce verbosity from deactivated Docker mounts, triggered by the Docker
healthcheck. These messages do not carry any value for us and logs supplied by
users are often spammed mostly with these. Moreover, they sometimes cause
confusion that something is wrong, see for example #3021.

Unfortunately, it's not possible to use LogFilterPatterns= here, because it's
not applied to these messages, as explicitly said in the docs:

  Filtering is based on the unit for which LogFilterPatterns= is defined
  meaning log messages coming from systemd(1) about the unit are not taken
  into account.

runc 1.2.0 supposedly should fix this, but it's unclear when it would be
available, so let's stick to this solution (reducing verbosity from debug to
notice for all units `run-docker-*.mount`) for the time being.
2024-07-24 16:34:37 +02:00
Jan Čermák
a80311a285
Use EROFS for the root filesystem (#3456)
* Use name.sh functions for paths in genimage

Paths for images generated outside of genimage were not used in genimage
definitions. Use them as the single source of truth.

Images generated by genimage itself (e.g. kernel.img) don't need to use those
functions, so remove the unused ones.

* Use EROFS instead of SquashFS for root FS

* Enabled EROFS in common kernel fragment
* RootFS image switched to EROFS with options to get decent compression
* rootfstype removed from kernel command line

* Get size of correct FS image in GH build summary
2024-07-24 16:34:26 +02:00
Jan Čermák
6de9da2560
Bump buildroot to 2024.02.4 (#3487)
* buildroot d03dda4fcf...baa16784d2 (5):
  > Merge tag '2024.02.4' into 2024.02.x-haos
  > fs/erofs: add config options for dedupe, fragments and ztailpacking
  > fs/erofs: add LZMA compression, allow configurable compression level
  > package/erofs-utils: add config option for LZMA compression
  > package/erofs-utils: bump to 1.7.1
2024-07-23 13:50:56 +02:00
dependabot[bot]
5d5bc36892
Bump docker/login-action from 3.2.0 to 3.3.0 (#3484)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-22 17:30:38 +02:00
dependabot[bot]
77a28bd1df
Bump docker/build-push-action from 6.4.0 to 6.5.0 (#3486)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.4.0 to 6.5.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.4.0...v6.5.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-22 17:29:13 +02:00
dependabot[bot]
038bfd9073
Bump docker/setup-buildx-action from 3.4.0 to 3.5.0 (#3485)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-22 17:11:32 +02:00
Jan Čermák
eb2bdf85e9
Linux: Update kernel to 6.6.41 (#3482)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.39
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.40
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.41
2024-07-22 12:57:35 +02:00
dependabot[bot]
d148ad2b50
Bump docker/build-push-action from 6.3.0 to 6.4.0 (#3475) 2024-07-15 18:27:37 +02:00
Jan Čermák
63a05a5a1e
Revert "Revert GRUB2 patch causing boot failure on some old x86_64 BIOSes (#3324)" (#3470) 2024-07-11 00:01:52 +02:00
Jan Čermák
150be514e4
Enable i6300ESB watchdog driver for generic-aarch64 (#3468)
This is one of WDT drivers used by KVM/QEMU. For OVA it's been already enabled
in #2627 - enable it for aarch64 as well.

Fixes #3414
2024-07-10 14:39:08 +02:00
Jan Čermák
45cbd1d9b7
Linux: Update kernel to 6.6.38 (#3469)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.38
2024-07-10 14:38:51 +02:00
Jan Čermák
00171ae44c
Enable aQuantia AQtion ethernet driver (#3467)
Enable driver for wide range of multi-gigabit NICs.

Fixes #3438
2024-07-09 13:01:25 +02:00
dependabot[bot]
777432913e
Bump docker/setup-buildx-action from 3.3.0 to 3.4.0 (#3465)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-08 15:57:05 +02:00
dependabot[bot]
d57b6be01e
Bump docker/build-push-action from 6.2.0 to 6.3.0 (#3466)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-08 15:56:48 +02:00
Jan Čermák
1f8ed07c42
Refer to GRUB instead of Barebox in top-level readme (#3464)
We don't use Barebox for over two years since d1cc7394, remove the forgotten
mention of it in readme.
2024-07-08 12:13:23 +02:00
Jan Čermák
3ef8b07676
Linux: Update kernel to 6.6.37 (#3463)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.37
2024-07-08 12:13:14 +02:00
Jan Čermák
ea286d9dad
Populate grubenv with RAUC data in clean aarch64 OS image (#3458)
While not as bad as in 87a6c84, because the grubenv already exists in the
image, RAUC still complains about missing ORDER on the very first boot on
aarch64. Populate the environment in the same way as we do for other GRUB
platforms.
2024-07-08 12:12:58 +02:00
Jan Čermák
4308c45391
Remove old code from rauc-hook and GRUB env initialization (#3457)
With upgrade path enforced in standard HAOS upgrade procedure, we don't need to
keep some old code anymore. This means that upgrade from some very old HAOS
version (pre-8.0) to HAOS 13+ will fail in the install-check hook but this is
rather desirable.
2024-07-08 12:12:45 +02:00
Cyprien Laplace
33d8b538ad
Fix rauc hook to save and restore the grub environment (#3451)
Without a machine-id, the next boot will be considered as a
first boot, and any external data disk will be disabled.

Fixes #3247.
2024-07-04 10:14:47 +02:00
Jan Čermák
245c0d0b03
Bump OS to development version 13.0.dev0 2024-07-03 19:38:47 +02:00
dependabot[bot]
c20841ac1e
Bump docker/build-push-action from 6.1.0 to 6.2.0 (#3454)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.1.0...v6.2.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 15:51:21 +02:00
Jan Čermák
0555e89ad0
Linux: Update kernel to 6.6.36 (#3448)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.36
2024-06-27 17:53:15 +02:00
Jan Čermák
203885a7d8
Linux: Update kernel to 6.6.35 (#3443)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.35
2024-06-25 16:21:48 +02:00
dependabot[bot]
7298ffc13f
Bump docker/build-push-action from 6.0.0 to 6.1.0 (#3444)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 15:51:19 +02:00
Jan Čermák
6c7b6fdebe
Generate version information for RAUC when rauc.db is empty (#3436)
RAUC currently doesn't know the version of the booted slot when booted for the
first time or after wiping the data partition. As a result `ha os info` is
missing this information too.

As there's no built-in mechanism for generating these data by RAUC itself, add
a oneshot service that checks if the boot slot information is contained in the
rauc.db and if not, then generate it.

RAUC seems to cope quite well even with bogus data contained in rauc.db but in
any case, a test has been added to check that everything works as expected.
2024-06-20 16:50:14 +02:00
Jan Čermák
87a6c84025
Fix boot slot A marked as bad on the very first boot (#3435)
On the very first boot, grubenv doesn't exist and loading and saving it
silently fails. However, it is later created by the hassos-persists script and
the missing information are added by grub.cfg on the next boot. As the
consequence, when RAUC tries to get information from grubenv on the first boot,
ORDER variable is missing and the slot is reported as bad.

Fixes #3376
2024-06-20 12:57:25 +02:00
Jan Čermák
94c6930acd
Merge branch 'main' into dev 2024-06-18 15:02:36 +02:00
Jan Čermák
a70ed7e81e
Bump OS to release version 12.4 2024-06-18 12:26:14 +02:00
dependabot[bot]
62d7794a6c
Bump docker/build-push-action from 5.4.0 to 6.0.0 (#3421)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.4.0 to 6.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5.4.0...v6.0.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-17 17:08:08 +02:00
Jan Čermák
8490b3bf70
Linux: Update kernel to 6.6.34 (#3420)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.34
2024-06-17 16:00:58 +02:00
Jan Čermák
abe018d4aa
Improve resiliency of skopeo operations in hassio package (#3416)
We still face occasional build errors when fetching from the Docker registry
fails and is not retried with the Skopeo's built-in retry mechanism that was
enabled in #1866. This happens on some network failures, or when premature EOF
is returned when fetching the HTTP data. Seems we're not the only ones having
such issues [1].

To workaround this, add a generic retry shell function that simply retries when
the command ends with a non-zero status, no matter what was the actual cause of
the error.

[1] https://www.github.com/containers/common/issues/654
2024-06-13 15:44:11 +02:00
Jan Čermák
0e9e8ca2a6
Bump OS to pre-release version 12.4.rc1 2024-06-13 13:01:03 +02:00
Jan Čermák
27bc7306ff
Linux: Update kernel to 6.6.33 (#3415)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.33
2024-06-13 11:39:02 +02:00
Jan Čermák
6c2d5b5006
Bump Docker to v26.1.4 (#3411)
* buildroot b9520eedc6...ad5e711bc1 (4):
  > package/containerd: bump to v1.7.17
  > package/docker-cli: bump version to v26.1.4
  > package/docker-engine: bump version to v26.1.4
  > .github: remove upstream's PR template discouraging GH usage
2024-06-12 23:04:34 +02:00
Jan Čermák
d847b9803a
Add hardware details to bug issue template (#3413)
Very often we have to ask for further details about the hardware that HAOS is
running on. Add a required field that asks for these details - in the end it
should't complicate the form a lot and might result in faster turnaround of
resolving the issues.

Also adjust the question about the upgrade and swap the order (people often
don't care and keep the pre-selected value).
2024-06-12 21:52:48 +02:00
Jan Čermák
89533755bc
Fix writing to eMMC in U-Boot on Green (#3412)
When Green starts, there is an error indicating the MMC write failed when
saving the bootstate:

  storing env...

  MMC write: dev # 0, block # 1214464, count 64 ... mmc write failed 0 blocks written: ERROR

This results in the boot count not being updated properly if the boot fails.

Seems to be a known issue for this platform, disabling the DDR52 mode (which is
the same what upstream does for other RK356x boards [1]) fixes the issues and
the bootstate is updated correctly.

[1] https://patchwork.ozlabs.org/project/uboot/patch/20240204205312.2342868-2-jonas@kwiboo.se/
2024-06-12 21:52:36 +02:00
Jan Čermák
6d77355c1c
Temporary revert ODROID-N2 U-Boot to 2023.01 to fix eMMC issues (#3409)
As we don't have proper solution for #3319 and #3351 yet, revert to
previous U-Boot which was proven working. This is intended as a
workaround but as there's nothing in the latest U-Boot that will be
really missed on N2, we can stay on the older version for the time
being.

This also means reverting the "40 MHz hack" back to the 24 MHz one.
Since this patch only applies to N2 (meson gx), it can stay along the
common hardkernel uboot patches.
2024-06-11 19:02:40 +02:00
Jan Čermák
26f0b5a9b7
Fix linux-firmware compression after BR 2024.02.3 merge (#3407)
The compression is necessary for successful generic-x86-64 build.

* buildroot 770f939463...b9520eedc6 (1):
  > package/linux-firmware: fix compression after bad merge
2024-06-11 12:49:20 +02:00
Jan Čermák
542f69efa4
Update Buildroot to 2024.02.3 (#3406)
* Bump buildroot to 2024.02.3

* buildroot 691077e577...770f939463 (1):
  > Merge tag '2024.02.3' into 2024.02.x-haos

* package/hassio: update dind to version 26.0 used in current buildroot
2024-06-10 17:14:17 +02:00
dependabot[bot]
ae588b762a
Bump docker/build-push-action from 5.3.0 to 5.4.0 (#3405)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-10 15:08:18 +02:00
Jan Čermák
6135ecdcc7
Use Genimage for declarative image layout (#3388)
* Use Genimage for declarative image layout instead of s[fg]disk and dd

* Change partition type to hybrid for M1, M1S and Green

This is what it really is, so just make sure only one "fix" function is
called.

* Change efi BOOT_SYS to gpt

There is no reason to have separate efi and boot sys, since all boards
that use efi also use grub as the loader.

* Change BOOT_SYS to more explanatory PARTITION_TABLE_TYPE

* Add units to DISK_SIZE

* Add forced-primary patch and use it in MBR images

* Avoid disabling SC2155, remove old comments
2024-06-07 13:44:14 +02:00
Jan Čermák
22b63ae779
Set tty0 in cmdline as the default preferred console (#3402)
The preferred console (which is used for printing the systemd boot log)
is the last one specified in the cmdline boot arguments. Make sure it is
always tty0, i.e. the first graphical console.

In some places tty1 was used - change it to tty0 which is commonly used,
and in HAOS points to tty1 anyway.

The only exception is the Yellow, which doesn't have an HDMI port, so
the serial console is used as the preferred one instead.

For ASUS Tinker, use a versioned cmdline.txt file instead of in-place
generating it in the post-build hook.
2024-06-07 12:59:21 +02:00
Jan Čermák
bd7474fc97
RaspberryPi: Update kernel to 6.6.31 - stable_20240529 (#3400)
* RaspberryPi: Update kernel to 6.6.31 - stable_20240529

* Unify Linux patches after RPi update to non-conflicting 6.6.31

* Bump buildroot to update rpi-firmware

* buildroot 9af2384782...691077e577 (1):
  > package/rpi-firmware: bump to version 1.20240529 for kernel 6.6.31
2024-06-04 17:33:51 +02:00
dependabot[bot]
5ed9057728
Bump docker/login-action from 3.1.0 to 3.2.0 (#3399)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 15:15:55 +02:00
Jan Čermák
682d59434e
Linux: Update kernel to 6.6.32 (#3394)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.32
2024-05-27 15:00:13 +02:00
Jan Čermák
2c725d90f6
Reintroduce IPv6 reachability probe patch for RPi lost after refactoring (#3389)
* Reintroduce IPv6 reachability probe patch for RPi lost after refactoring

In #3384 we moved the patches around, which results in version-specific
patches not applied for RPi linux-custom build. Copy the missing IPv6
reachability probe patch to the RPi patches directory.

* Only copy IPv6 reachability probe patch to top-level linux patches

Instead of copying the patch to RPi directory and renumbering the
patches, only copy it upper level so it's applied for all linux versions
other than 6.6.31.
2024-05-24 09:30:07 +02:00
Jan Čermák
8dbc03cc76
Linux: Update kernel to 6.6.31 (#3384)
* Linux: Update kernel to 6.6.31

* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.31

* Update patch workarounding Z-Wave.me USB issues

Linux commit 480c3abbba36628dab063b9ca218bb28090e5b46 changed code that
is reverted by the patch. Use a version-specific patch directory again
for upstream Linux patches before RPi kernel is updated to 6.6.31+.
2024-05-21 21:27:51 +02:00
Jan Čermák
8aa9869e4f
Use U-Boot tarball for all boards (#3361)
ODROID M1, M1S and Green historically used git repo as the source. Now
that we use the same version for all boards, use always use distribution
tarball for consistency and more efficient caching.
2024-05-14 11:23:31 +02:00
Jan Čermák
dd96b5019a
Bump buildroot to update openvmtools to 12.3.0 (again) (#3370)
Cherry-picked downstream-only patch lost in Buildroot 2024.02 bump.

* buildroot 34e790c5da...9af2384782 (1):
  > package/openvmtools: bump version to 12.3.0

Fixes #3366
2024-05-14 11:06:37 +02:00
Jan Čermák
229cc7ebbb
Merge branch 'main' into dev 2024-05-09 10:18:11 +02:00
Jan Čermák
ca71774e7d
Linux: Update kernel to 6.6.30 (#3342)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.30
2024-05-08 21:26:45 +02:00
Jan Čermák
12597f197f
Bump OS to release version 12.3 2024-05-06 14:35:19 +02:00
Stefan Agner
2c266c53f1
Enable grep context feature (#3339)
Add context feature to Busybox grep configuration. Context is really useful
when checking host logs directly on the OS shell.
2024-05-01 19:05:01 +02:00
Jan Čermák
d7338e7570
Bump OS to pre-release version 12.3.rc2 2024-04-30 11:58:55 +02:00
Jan Čermák
301bf4a377
RaspberryPi: Update kernel to 6.6.28 - stable_20240423 (#3336)
* RaspberryPi: Update kernel to 6.6.28 - stable_20240423

* Bump buildroot to update rpi-firmware

* buildroot 0a64bfe8f1...e8948ce36e (1):
  > package/rpi-firmware: bump to version 1.20240424 for kernel 6.6.28

(cherry picked from commit 9fa953745a0ded34b4501bae64b9492292278a7a)
2024-04-30 11:57:24 +02:00
Jan Čermák
2ea9eccf79
Fix incorrect mapping of DT overlays on RPi 5 (#3335)
RPi 5 config uses BR2_LINUX_KERNEL_INSTALL_INTREE_OVERLAYS which builds
the device tree overlays from the Linux tree when building the kernel.
The overlays directory also contains overlay_map.dtb which is necessary
to correctly map overlays without RPi version suffix to the
platform-specific ones. Without this, some peripherals may not work
correctly on Pi 5 without any obvious error messages in the kernel log
because an incorrect (Pi 4) overlay is used as the default.

Fixes #3321

* buildroot cc0481f40e...0a64bfe8f1 (1):
  > Install overlay_map.dtb when using in-tree DT overlays

(cherry picked from commit fce19b784615261ddc0c710cb6866a95e3e817ce)
2024-04-30 11:56:55 +02:00
Jan Čermák
1a5a2c4e28
Linux: Update kernel to 6.6.29 (#3334)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.29

(cherry picked from commit 65f35c65b2756e239ae0ea0d0fc46ab0d04e9796)
2024-04-30 11:56:48 +02:00
Jan Čermák
7a94a2ef71
Enable kernel userspace crypto API interface for all platforms (#3330)
Enable libkcapi in generic kernel config. The bloat is minimal and the
options are enabled on most distributions. These modules are also needed
for Bluetooth Mesh and adding them fixes compatibility with some HCI USB
adapters.

Fixes #3322

(cherry picked from commit 67315f86d49ae117766491c366c68845ffa68548)
2024-04-30 11:56:44 +02:00
Jan Čermák
ddd528b8e7
Enable KVM for running tests in GH Actions (#3329)
It was not possible on free runners previously, but it should be now:
https://github.com/actions/runner-images/discussions/7191#discussioncomment-9018826

(cherry picked from commit 4e44b101f32d677d5de19e9baae0773c09640d87)
2024-04-30 11:56:33 +02:00
Jan Čermák
9fa953745a
RaspberryPi: Update kernel to 6.6.28 - stable_20240423 (#3336)
* RaspberryPi: Update kernel to 6.6.28 - stable_20240423

* Bump buildroot to update rpi-firmware

* buildroot 0a64bfe8f1...e8948ce36e (1):
  > package/rpi-firmware: bump to version 1.20240424 for kernel 6.6.28
2024-04-30 11:55:13 +02:00
Jan Čermák
fce19b7846
Fix incorrect mapping of DT overlays on RPi 5 (#3335)
RPi 5 config uses BR2_LINUX_KERNEL_INSTALL_INTREE_OVERLAYS which builds
the device tree overlays from the Linux tree when building the kernel.
The overlays directory also contains overlay_map.dtb which is necessary
to correctly map overlays without RPi version suffix to the
platform-specific ones. Without this, some peripherals may not work
correctly on Pi 5 without any obvious error messages in the kernel log
because an incorrect (Pi 4) overlay is used as the default.

Fixes #3321

* buildroot cc0481f40e...0a64bfe8f1 (1):
  > Install overlay_map.dtb when using in-tree DT overlays
2024-04-29 15:20:36 +02:00
Jan Čermák
65f35c65b2
Linux: Update kernel to 6.6.29 (#3334)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.29
2024-04-29 15:12:50 +02:00
Jan Čermák
67315f86d4
Enable kernel userspace crypto API interface for all platforms (#3330)
Enable libkcapi in generic kernel config. The bloat is minimal and the
options are enabled on most distributions. These modules are also needed
for Bluetooth Mesh and adding them fixes compatibility with some HCI USB
adapters.

Fixes #3322
2024-04-26 21:27:35 +02:00
Jan Čermák
4e44b101f3
Enable KVM for running tests in GH Actions (#3329)
It was not possible on free runners previously, but it should be now:
https://github.com/actions/runner-images/discussions/7191#discussioncomment-9018826
2024-04-26 15:30:23 +02:00
Jan Čermák
21fd9e64c8
Bump OS to development version 12.4.dev0 2024-04-26 11:59:15 +02:00
Jan Čermák
9dab6908c9
Bump OS to pre-release version 12.3.rc1 2024-04-26 11:24:09 +02:00
Jan Čermák
a277854add
Bump buildroot to update BlueZ to 5.75 (#3326)
* buildroot 9a506c0e75...cc0481f40e (1):
  > package/{bluez5_utils, bluez5_utils-headers}: bump to version 5.75
2024-04-25 17:49:30 +02:00
Jan Čermák
8854dd4ddb
Bump buildroot to update linux-pam (#3325)
This fixes "Warning: your password will expire in 0 days." message
shown on tty login since Buildroot bump in HAOS 12.2.

* buildroot 9f5750121a...d29893dd98 (1):
  > package/linux-pam: bump to version 1.6.1
2024-04-25 08:33:10 +02:00
Jan Čermák
478538eac0
Revert GRUB2 patch causing boot failure on some old x86_64 BIOSes (#3324)
GRUB 2.12 release contains a change of the loader [1] used for loading
the kernel on x86_64 platform. This change was identified to cause boot
failure on some old Intel Atom boards with the NM10 chipset, and
possibly some others. Revert this patch before we get a more proper fix
for the issue.

[1] https://git.savannah.gnu.org/cgit/grub.git/commit/?id=cfbfae1aef0694b416aa199291cfef7596cdfc20

Fixes #3305
2024-04-25 08:33:01 +02:00
Stefan Agner
e1b11540a1
ODROID-N2/C2/C4: Force 40MHz instead of 24MHz as eMMC clock (#3319)
It seems that forcing 24MHz clocks is problematic for newer 32GB
Kingston based eMMC modules on ODROID-N2(+). Use what downstream
U-Boot is using as f_max, which is 40MHz.

Fixes: #3227
2024-04-24 20:37:14 +02:00
Salim B
82c3e2a859
Update instructions for ODROID M1 Petitboot update (#3317) 2024-04-18 09:02:17 +02:00
Jan Čermák
9272065664
Linux: Update kernel to 6.6.28 (#3316)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.28
2024-04-17 16:23:18 +02:00
Jan Čermák
77c28be3cd
Increase maximum length of usb_storage.quirks in RPi kernel params (#3311)
With #3281 we hit the maximum length of the quirks parameter. Since
cmdline.txt changes are not applied on OS update, only new installs of
12.2 are affected, effectively disabling all quirks until this patch
lands in future OS release.

Fixes #3308
2024-04-15 14:27:41 +02:00
Jan Čermák
85d7c23a5f
Linux: Update kernel to 6.6.27 (#3310)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.26
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.27
2024-04-15 14:27:28 +02:00
Stefan Agner
4f53947596
Update Raspberry Pi 3 device tree list (#3301)
Make sure all Raspberry Pi devices using the BCM2837 SoC (or the SiP
version RP3A0 of it) are deployed. This especially makes sure that
we only deploy the downstream device trees (named bcm2710*) and deploy
device trees for the CM3 as well as the Zero 2 and Zero 2 W consistently
for 32-bit and 64-bit.
2024-04-12 09:42:05 +02:00
Jan Čermák
dd76a1dda4
Merge branch 'main' into dev 2024-04-11 10:38:30 +02:00
Jan Čermák
c9efdea83b
Bump OS to release version 12.2 2024-04-11 10:07:22 +02:00
Jan Čermák
56ae6e1cb7
Remove BT_HS from kernel configs after upstream removal (#3299)
BT_HS has been removed in e7b02296fb400ee64822fbdd81a0718449066333 and
backported to stable branches - remove it from our configs to avoid
warnings.
2024-04-10 15:53:21 +02:00
Jan Čermák
2254260dad
Update Raspberry Pi Kernel to v6.6.20 (#3297)
* RaspberryPi: Update kernel to 6.6.20 - 6f16847710cc0502450788b9f12f0a14d3429668

Used version specified in RPi OS release notes [1].

[1] https://downloads.raspberrypi.org/raspios_arm64/release_notes.txt

* Update RPi Buildroot defconfigs for v6.6.y kernel

* Update RPi kernel patches for v6.6.y kernel

* Amended old patches to accomodate for new DTS paths
* Removed 6.6.25 patches -> moved to the common folder
* Added patch to fix Yellow DTS compilation

* Bump buildroot to update rpi-firmware

* buildroot b45d671fe3...9f5750121a (1):
  > package/rpi-firmware: bump to version for (untagged) kernel v6.6.20

* Remove kernel v6.1.y config fragments, as they're not needed anymore
2024-04-10 10:04:35 +02:00
Jan Čermák
3252676fde
Bump OS to pre-release version 12.2.rc2 2024-04-08 19:04:20 +02:00
Jan Čermák
5dc234d14f
Only run HA CLI interactively if stdout is a terminal (#3292)
* Only run HA CLI interactively if stdout is a terminal

Flags for running HA CLI commands in an interactive shell added in #3238
cause the command to fail if the process is not running in a terminal.
This is needed for example for the fsfreeze hook, otherwise the command
fails, as seen in this trace when the hook is executed:

-----------
+ '[' thaw '=' freeze ]
+ '[' thaw '=' thaw ]
+ echo 'File system thaw requested, thawing Home Assistant'
File system thaw requested, thawing Home Assistant
+ ha backups thaw
the input device is not a TTY
------------

However, for example on Proxmox this message is not logged anywhere and
the hook just fails silently (i.e. it doesn't cause the backup to fail).

Fixes #3251

* Use -i also when not running in a terminal

(cherry picked from commit 78d281fce111dec47154e02a6f70c1f7a6346ad5)
2024-04-08 19:03:35 +02:00
Jan Čermák
3e970f1e9a
Linux: Update kernel to 6.6.25 (#3291)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.25

(cherry picked from commit 7013872665684c8a842708b6a476a7591c55d55a)
2024-04-08 19:02:54 +02:00
Jan Čermák
ea217fe5bd
Update Linux patches directory for v6.6.24 (#3289)
This should have been included in #3288.

(cherry picked from commit 974812a8afff67b26dd33c1f47646b9db1fb91d2)
2024-04-08 19:02:44 +02:00
Jan Čermák
bfe9943068
Linux: Update kernel to 6.6.24 (#3288)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.24

(cherry picked from commit e18c6ef4ceec79552e825ae787ecb79d0a2424e3)
2024-04-08 19:02:38 +02:00
Stefan Agner
7166a83998
Ignore non-existing CP15 barrier instructions emulation (#3285)
CP15 barrier instruction emulation only exists on arm64 architecture.
Avoid sysctl writing an error to the journal when the setting doesn't
exist by prepending a dash.

(cherry picked from commit 889b561ca19b56fdfadefc8129e3d1985b4841f3)
2024-04-08 19:02:33 +02:00
Jan Čermák
7a69678505
Use Docker 25 for installing containers in hassio package (#3286)
Bump DinD version used for creating data partition after Docker bump
in #3271.

(cherry picked from commit 90b618b096384fa675dcd60fd9de54f2dfc3410e)
2024-04-08 19:02:28 +02:00
agglrx
0c9deaeebf
Disable UAS via usb-storage.quirks on RPi for ADATA SD600Q (#3281)
Booting from a ADATA SD600Q fails when connected to a USB 3.0 port on RPi4. Adding it to the quirks list resolves the issue.

(cherry picked from commit 5ee9cef8c8ce8fd7b99fef02dea58ddff894b735)
2024-04-08 19:02:22 +02:00
dependabot[bot]
de3f2c6420
Bump docker/setup-buildx-action from 3.2.0 to 3.3.0 (#3293)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 16:05:29 +02:00
Jan Čermák
78d281fce1
Only run HA CLI interactively if stdout is a terminal (#3292)
* Only run HA CLI interactively if stdout is a terminal

Flags for running HA CLI commands in an interactive shell added in #3238
cause the command to fail if the process is not running in a terminal.
This is needed for example for the fsfreeze hook, otherwise the command
fails, as seen in this trace when the hook is executed:

-----------
+ '[' thaw '=' freeze ]
+ '[' thaw '=' thaw ]
+ echo 'File system thaw requested, thawing Home Assistant'
File system thaw requested, thawing Home Assistant
+ ha backups thaw
the input device is not a TTY
------------

However, for example on Proxmox this message is not logged anywhere and
the hook just fails silently (i.e. it doesn't cause the backup to fail).

Fixes #3251

* Use -i also when not running in a terminal
2024-04-08 15:43:12 +02:00
Jan Čermák
7013872665
Linux: Update kernel to 6.6.25 (#3291)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.25
2024-04-08 12:46:54 +02:00
Jan Čermák
974812a8af
Update Linux patches directory for v6.6.24 (#3289)
This should have been included in #3288.
2024-04-04 13:52:28 +02:00
Jan Čermák
e18c6ef4ce
Linux: Update kernel to 6.6.24 (#3288)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.24
2024-04-04 12:56:14 +02:00
Stefan Agner
889b561ca1
Ignore non-existing CP15 barrier instructions emulation (#3285)
CP15 barrier instruction emulation only exists on arm64 architecture.
Avoid sysctl writing an error to the journal when the setting doesn't
exist by prepending a dash.
2024-04-04 00:33:45 +02:00
Jan Čermák
90b618b096
Use Docker 25 for installing containers in hassio package (#3286)
Bump DinD version used for creating data partition after Docker bump
in #3271.
2024-04-04 00:33:34 +02:00
agglrx
5ee9cef8c8
Disable UAS via usb-storage.quirks on RPi for ADATA SD600Q (#3281)
Booting from a ADATA SD600Q fails when connected to a USB 3.0 port on RPi4. Adding it to the quirks list resolves the issue.
2024-04-02 10:36:37 +02:00
Jan Čermák
040af8fd9b
Bump OS to development version 12.3.dev0 2024-04-02 10:32:23 +02:00
Jan Čermák
94bf84a807
Bump OS to pre-release version 12.2.rc1 2024-03-28 11:13:08 +01:00
Jan Čermák
b564fb3fa7
Bump buildroot to fix dbus tmpfiles warning (#3273)
* buildroot f2472c23a3...b45d671fe3 (1):
  > package/dbus: set runstatedir to /run
2024-03-28 11:09:51 +01:00
Jan Čermák
2d6b731b9a
Bump buildroot to add forgotten package/runc patch (#3272)
* buildroot 51c9960ed8...f2472c23a3 (1):
  > package/runc: add support for CGroup device permission updates
2024-03-27 17:33:14 +01:00
Jan Čermák
adbd449494
Bump buildroot to update Docker to v25.0.5 (#3271)
* buildroot 1c84a7493b...51c9960ed8 (2):
  > package/docker-engine: bump version to v25.0.5
  > package/docker-cli: bump version to v25.0.5
2024-03-27 17:24:40 +01:00
Jan Čermák
cff5c81cf0
Linux: Update kernel to 6.6.23 (#3270)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.23
2024-03-27 10:20:35 +01:00
Jan Čermák
aafa022800
Bump buildroot to 2024.02.1 (#3268)
* buildroot a1b2d12f32...1c84a7493b (1):
  > Merge tag '2024.02.1' into 2024.02.x-haos
2024-03-26 13:15:48 +01:00
Jan Čermák
ccf92bc87f
Disable setting default keymap in systemd-vconsole-setup (#3261)
Since buildroot commit 3ceb8c97bcb6753740fa27a58b8e0dc00dbbbd19, systemd
has new option BR2_PACKAGE_SYSTEMD_VCONSOLE_DEFAULT_KEYMAP which
defaults to "us". With this option specified, systemd-console depends on
kbd package and causes the following message to be printed during
startup on HAOS:

systemd-vconsole-setup[253]: sh: gzip: not found

This comes from the loadkeys call which tries to open the gzipped file,
so likely the kbd package should also depend on gzip. However, since we
don't want the kbd package at this point, I'm leaving this for later
investigation and simply unsetting the new option to revert to
pre-2024.02 setup.
2024-03-20 12:25:43 +01:00
Jan Čermák
a45cab1756
Linux: Update kernel to 6.6.22 (#3259)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.22
2024-03-20 12:25:35 +01:00
Hedda
6c11146d9c
List Nabu Casa appliances under boards README.md (#3260)
List Nabu Casa appliances under boards README.md

* Home Assistant Green
* Home Assistant Yellow (based custom carrier board and powered by a Raspberry Pi 4 Compute Module)
* Home Assistant Blue (based on ODROID-N2+)
2024-03-20 09:35:58 +01:00
dependabot[bot]
e144c2bc96
Bump docker/setup-buildx-action from 3.1.0 to 3.2.0 (#3257)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 15:35:15 +01:00
dependabot[bot]
6c7c972c5d
Bump docker/build-push-action from 5.2.0 to 5.3.0 (#3256)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 15:31:55 +01:00
dependabot[bot]
1953c2afdb
Bump docker/login-action from 3.0.0 to 3.1.0 (#3258)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 15:31:40 +01:00
Matthieu Baerts
6b062f3c75
kernel: enable MPTCP support (#3248)
The official description says:

  Multipath TCP (MPTCP) connections send and receive data over multiple
  subflows in order to utilize multiple network paths. Each subflow uses
  the TCP protocol, and TCP options carry header information for MPTCP.

Thanks to MPTCP, being able to use multiple paths in parallel or
simultaneously brings new use-cases:

- Seamless handovers: switching from one path to another while
  preserving established connections -- Apple is using it for this
  reason since 2013.

- Best network selection: using the "best" available path (latency,
  losses, cost, bandwidth) -- one path can be used as a "backup" one.

- Network aggregation: using multiple paths at the same time to have a
  higher throughput -- e.g. to combine a fixed an mobile network to
  send files faster.

For example, for HA, it is possible to keep a SSH connection alive when
switching from one network to another (e.g. while travelling).

To be able to use MPTCP, both ends need to support it. An application
has to request it, by creating an MPTCP socket instead of a TCP one.
The rest in unchanged. An alternative is to use 'mptcpize' tool, which
relies on LD_PRELOAD to create an MPTCP socket instead of a TCP one.

Note that a MPTCP-enabled server continues to accept regular TCP
connections that do not use the Multipath TCP extension without any
performance impact. When a connection request is received, and is linked
to a listening socket with MPTCP support, the kernel will simply check
if MPTCP options are present. If not, the accepted socket will be a
"plain" TCP one, with the same impact as before.

To use multiple paths at the same time, additional IP addresses need to
be configured, e.g. via the 'ip' tool (IPRoute2).

MPTCP in the kernel is enabled in most main Linux distributions (Debian,
Ubuntu, RedHat, Fedora, etc.), but in more specific ones like Raspbian.
It is available in the Linux kernel since v5.6.

Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
2024-03-14 16:51:01 +01:00
Jan Čermák
c085ff2b10
Bump OS to development version 12.2.dev0 2024-03-13 15:19:48 +01:00
Jan Čermák
454d764676
Update Buildroot to 2024.02 (#3241)
* Update Buildroot to tag 2024.02 with rebased HAOS patchset

* udisks2: update to v2.10.1

  * Updated to version 2.10.x compatible with libblockdev v3
  * Rebased patches to new codebase
  * Autoreconf patch is not needed anymore
  * libblockdev-nvme is now hard dependency of udisks daemon

* patches/grub2: remove upstreamed efidisk patch

* patches/network-manager: update multiple gateway patch

* package/os-agent: fix go download

  After the Go update, build fails with the following error on mod vendor:

    GOPROXY list is not the empty string, but contains no entries

  Turns out this step is not having the environment variables set, use
  those used for download to fix it.

* package/xe-guest-utilities: set DL env for go mod vendor

* Bump buildroot to fix missing unit file from nfs-utils

* buildroot 3f950a1aee...a1b2d12f32 (1):
  > package/nfs-utils: only install fsidd binary and unit file with enabled nfsd

* CI: install flake8 for pr-checks runner

  Use distribution package, as it's what's used in Buidlroot's Gitlab CI
  Docker image at buildroot/support/docker/Dockefile.

* Disable check for Upstream section in the patch header for now

  It was introduced in latest BR - disable it for now and re-enable
  for HAOS in a later separate PR.
2024-03-13 15:16:54 +01:00
Jan Čermák
0e3a2d016d
Merge branch 'main' into dev 2024-03-13 12:21:53 +01:00
Jan Čermák
fde0c80e54
Bump OS to release version 12.1 2024-03-13 11:17:02 +01:00
Stefan Agner
80dfffc0b0
Bump OS to pre-release version 12.1.rc2 2024-03-12 16:04:54 +01:00
Jan Čermák
dd43bfee8e
Fix IPv6 reachability patch not being applied (#3240)
Fix regression caused by #3224 which introduced version-specific
directory for linux patches, causing the upper-level patch not being
applied. Copy the patch to the version folder instead. Also we need
to keep it in the upper directory for RPi kernels.

(cherry picked from commit 8226323a1b00ed3b96c9c10717de71f75aa5cd01)
2024-03-12 15:09:25 +01:00
Jan Čermák
32f1ca8fa8
Fix test_restore_ssl_directory with HA CLI in interactive PTY (#3239)
The test was missing --no-progress flag, which only manifested after
merging #3238 - causing the CLI to run in an interactive pseudotty.

(cherry picked from commit 122dd1c28875a599965c41678721635ef5028caa)
2024-03-12 14:56:14 +01:00
Stefan Agner
3dfd3a4c21
Start HA CLI interactively and with a tty allocated (#3238)
Use -i (--interactive) and -t (--tty) to start the HA CLI interactively.
This is required by some commands like the new device wipe command added
with https://github.com/home-assistant/cli/pull/464.

(cherry picked from commit fe1978f98fab65f52676590e6c8e60716497d551)
2024-03-12 14:56:11 +01:00
Jan Čermák
8226323a1b
Fix IPv6 reachability patch not being applied (#3240)
Fix regression caused by #3224 which introduced version-specific
directory for linux patches, causing the upper-level patch not being
applied. Copy the patch to the version folder instead. Also we need
to keep it in the upper directory for RPi kernels.
2024-03-12 14:55:18 +01:00
Jan Čermák
122dd1c288
Fix test_restore_ssl_directory with HA CLI in interactive PTY (#3239)
The test was missing --no-progress flag, which only manifested after
merging #3238 - causing the CLI to run in an interactive pseudotty.
2024-03-12 14:55:10 +01:00
Stefan Agner
fe1978f98f
Start HA CLI interactively and with a tty allocated (#3238)
Use -i (--interactive) and -t (--tty) to start the HA CLI interactively.
This is required by some commands like the new device wipe command added
with https://github.com/home-assistant/cli/pull/464.
2024-03-12 10:12:35 +01:00
dependabot[bot]
541afd452b
Bump docker/build-push-action from 5.1.0 to 5.2.0 (#3235)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5.1.0...v5.2.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-11 18:28:48 +01:00
Jan Čermák
b5795a0277
Linux: Update kernel to 6.6.21 (#3234)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.21
2024-03-11 18:28:36 +01:00
Jan Čermák
a909d89e1c
Bump OS to pre-release version 12.1.rc1 2024-03-07 17:48:52 +01:00
Jan Čermák
e24fbf63ae
Revert back to OOT driver for RTL8821CU (#3225)
The in-tree driver introduced in HAOS 12.0 is having random issues,
so revert back to the stable OOT driver that was used before for now.
Also it add it to RPi 2 and Yellow where it's been missing the whole
time.

Fixes #3205
2024-03-06 16:50:14 +01:00
Jan Čermák
a6f54f6c4d
Revert USB core changes to workaround Z-Wave stick issues (#3224)
Revert changes in the USB driver causing Z-Wave sticks (Z-Wave.me a
and Aeotec at least) failing to enumerate. Issue is reported upstream
but reverting the patches is a feasible workaround for the time being.

Refs #2995
2024-03-06 16:49:54 +01:00
dependabot[bot]
6ac4f3435b
Bump docker/setup-buildx-action from 3.0.0 to 3.1.0 (#3221)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.0.0...v3.1.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-04 14:26:47 +01:00
Jan Čermák
8debb61114
Disable UAS via usb-storage.quirks on RPi for JMicron JMS567 (#3220)
Reported to have issues, quick search around the internet also confirms
that UAS driver doesn't work well here on Linux in general.

Fixes #3217
2024-03-04 12:11:47 +01:00
Jan Čermák
47f8671925
Add Intel Wireless-N 105 firmware for generic-x86-64 (#3219)
* buildroot 0ab96d7c0d...15dc3b6e0c (1):
  > linux-firmware: add options for missing Intel b/g/n cards

Fixes #3200
2024-03-04 11:56:23 +01:00
Jan Čermák
8f577e47db
Linux: Update kernel to 6.6.20 (#3218)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.19
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.20
2024-03-04 11:42:04 +01:00
Jan Čermák
2adfa287d1
Linux: Update kernel to 6.6.18 (#3204)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.17
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.18
2024-02-27 19:17:39 +01:00
Jan Čermák
e60a2e4b68
Merge branch 'main' into dev 2024-02-26 09:39:41 +01:00
Jan Čermák
ff34a11f37
Bump OS to release version 12.0 2024-02-26 09:26:15 +01:00
Jan Čermák
dfdd3b4438
Clarify M1S flashing and recovery docs (#3187)
Remove the mentions of petitboot, as it's not normally used on M1S.
Document possibility to use SD card boot and alternative method of
reflashing the eMMC from an OS running from an SD card.
2024-02-20 14:24:24 +01:00
Tim L
9614f769f2
M1S issues template (#3181)
* Add Odroid M1S to issues template

* Add M1S to Hardkernel readme
2024-02-17 09:17:11 +01:00
Tim L
8c5377810f
Add documentation for ODROID-M1S (#3179) 2024-02-16 12:22:28 +01:00
Jan Čermák
426ef2d568
Bump OS to development version 12.1.dev0 2024-02-15 12:08:24 +01:00
Jan Čermák
e9e027dd95
Bump OS to pre-release version 12.0.rc1 2024-02-15 11:40:55 +01:00
Jan Čermák
cf0bde1f5a
Move output directory to /mnt in GH build action (#3174)
With recent change of Azure VM type, the disk layout has changed and
the build of ova target fails with insufficient space. Since there
is now plenty of space on /mnt partition, we can use that, just like
we've been using it for cache for now.

Ref: https://github.com/easimon/maximize-build-space/issues/39#issuecomment-1935591779
2024-02-14 17:42:17 +01:00
Tim L
1b66f81dfa
Add support for Odroid M1S Board (#3121)
* Copy Odroid-m1 config for new odroid-m1s board

* config: Adjust names and paths for odroid-m1s

* configs: Use rk3566 blobs for ATF

* set correct fdt in uboot.ush

* Add linux patches with Odroid-m1s devicetree

Synced from Hardkernel unofficial 6.1 tree
ae33b44557/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts

With additional cleanup and fixes for mainline linux

* Add Odroid M1S to Github actions

* uboot: Patch boot order to set SD Card first

* Create u-boot placeholder partion for odroid-m1s also

* Switch u-boot to full odroid-m1s config

* cherry-pick emmc stability improvements

* Generalise u-boot to use ${devtype} instead of hardcoded mmc

* Remove deprecated snps, reset options from device tree

* re-enable uboot ethernet
2024-02-14 12:01:15 +01:00
Jens Maus
623ebd8d38
added udev rule to rpi-rf-mod package to allow addons to have write (#2854)
access to these led nodes.
2024-02-12 17:12:57 +01:00
Tim L
f05294e51d
Factor out common Rockchip config (#3165)
* Create common kernel config for Rockchip aarch64 boards

* Green: drop kernel option already included in main config

* Move rockchip RNG patchset to common folder

* Odroid-m1 has no board specific patches now
2024-02-12 16:05:47 +01:00
Jan Čermák
af345d98d7
Add SD/MMC drivers of Realtek card readers for generic_x86_64 (#3170)
We added drivers for Realtek cards readers in #3005, however it also
needs MMC drivers in order to make card reading possible. Enable both
USB and PCI versions of those (each about ~40 kB).

Fixes #3167
2024-02-12 16:05:22 +01:00
Jan Čermák
b599d24658
Update issue template with better links to logs, add CLI instructions (#3169)
* Update issue template with better links to logs, add CLI instructions

Legacy supervisor_logs target (which is currently kind of broken) replaced
with standard logs with provider specified. Added instructions how to get
logs in HA CLI.

* Apply suggestions from code review

Co-authored-by: Stefan Agner <stefan@agner.ch>
2024-02-12 16:05:12 +01:00
Jan Čermák
e7a62ce563
RaspberryPi: Update kernel to 6.1.73 - stable_20240124 (#3162)
* RaspberryPi: Update kernel to 6.1.73 - stable_20240124

* Bump rpi-firmware to version for RPi Linux 6.1.73

* buildroot f844f7f725...0ab96d7c0d (1):
  > package/rpi-firmware: bump to version for stable_20240124 kernel
2024-02-08 22:02:28 +01:00
Stefan Agner
f770a3f4b2
Bump Pi 5 image on release in Raspberry Pi Imager json (#3161) 2024-02-08 19:24:18 +01:00
Jan Čermák
0028e20973
Linux: Update kernel to 6.6.16 (#3159)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.16
2024-02-08 10:36:58 +01:00
Jan Čermák
ad4493a781
Fix ODROID XU4 boot by disabling PROVE_LOCKING in kernel (#3158)
ODROID XU4 fails to boot after update to Linux 6.6. Comparing downstream
kernel config with upstream exynos defconfig shows it has various lockdep
options enabled, and PROVE_LOCKING seems to be the one that causes the
issue. It seems it (or any of PROVE_RCU, TRACE_IRQFLAGS or
PREEMPTIRQ_TRACEPOINTS) which get enabled along with it) probably
triggers some timing issues on the I2C bus, which causes the main PMIC
to fail to properly initialize all voltages.

Since these options should not have any real impact on our system, the
easiest option is to disable them. If we need them, or want to stay
closer to upstream defconfig, further debugging is needed.

Fixes #3137
2024-02-08 10:36:49 +01:00
Jan Čermák
5fddd20258
Use verity bundle format for RAUC updates (#3152)
We originally enabled it in 0ebcdcb9dc8d2471bcacf0049e93f1ad0bf12a37
but later reverted the patch in 5b927389b8562b14de5bc35a26f425ad041d0712
because of backward compatibility issues. Since we're going to 12.0,
there is now hopefully enough room for seamless transition.

Co-authored-by: Stefan Agner <stefan@agner.ch>
2024-02-06 18:19:10 +01:00
Jan Čermák
c1b936716d
Enable ath12k, MT7996E and various new Realtek drivers from Linux v6.6 (#3151)
* Enable ath12k, MT7996E and various new Realtek drivers from Linux v6.6

* Remove custom rtl8821cu driver from targets running Linux 6.6
2024-02-06 18:18:58 +01:00
Jan Čermák
977f017cf8
Bump buildroot to update BlueZ to v5.72 (#3147)
* buildroot 235a3aee47...f844f7f725 (1):
  > package/{bluez5_utils, bluez5_utils-headers}: bump to version 5.72
2024-02-05 20:07:39 +01:00
Jan Čermák
87938f0a4b
Use separate path for v6.1.y and v6.6.y kernel config fragments (#3146)
* Use separate path for v6.1.y and v6.6.y kernel config fragments

Since we're now maintaining Linux configs for two different versions,
it may happen that we want to add some options only to one of the
versions. While the Kconfig might figure the invalid options itself,
our config checking tooling would spam us with warnings. This commit
splits the configs to two directories. This pattern is used only for
the common fragments, more specific ones are usually sharing the same
Linux version anyway.

* Add back options removed in v6.6.y to v6.1.y kernel config fragments
2024-02-05 20:06:59 +01:00
dependabot[bot]
37c2f951d6
Bump release-drafter/release-drafter from 5 to 6 (#3144)
Bumps [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter) from 5 to 6.
- [Release notes](https://github.com/release-drafter/release-drafter/releases)
- [Commits](https://github.com/release-drafter/release-drafter/compare/v5...v6)

---
updated-dependencies:
- dependency-name: release-drafter/release-drafter
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-05 18:02:50 +01:00
Stefan Agner
3dee9895ac
Merge branch 'main' into dev 2024-02-05 14:19:24 +01:00
Stefan Agner
0f0eacf46e
Bump OS to release version 11.5 2024-02-05 10:41:11 +01:00
Jan Čermák
8fef166685
Bump OS to development version 12.0.dev0 2024-02-02 14:32:34 +01:00
Jan Čermák
b08f7de9e1
Update buildroot to latest version with rebased 6.6 patches 2024-02-02 14:31:49 +01:00
Jan Čermák
9dcf8ae82f
Update to 6.6 LTS kernel (#3063)
* Linux: Update kernel 6.6.15

* Update buildroot packages to work with Linux 6.6

* Fix top-level and pc patches of linux

* Update tinker patch series

* Drop Odroid M1 patches

M1 is now supported in upstream.

* Update Hardkernel patches

Needed larger refactoring because of 379ae64609c7a3301b60483eb65bd8bc78f76328

* Update Green patches

* Update Odroid XU4 patches

Removing the TMU patch/hack for now, need to check if it's still needed.
If it is indeed, then it needs slighter rewrite.

* Move Rockchip RNG patches to M1 and Green dirs

* Update rtl88x2bu package to fix build

* Update gasket package to fix build

* Fix eq3_char_loop build

* Use fan53555 instead of custom rk860x driver

* Fix kernel base configs and fragments after 6.6 update

Mostly removed options that have been removed between releases. Only
a few options have been renamed, then there's bunch of options that
had dependencies added so they are available only on some architectures,
which are not those that we're using.

* Remove deprecated regulator-compatible from Green DTS
2024-02-02 14:27:18 +01:00
Jan Čermák
c90c175754
Linux: Update kernel to 6.1.76 (#3134)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.76
2024-02-01 11:32:41 +01:00
Jan Čermák
b3e3d833a7
Include links to kernel changelogs on kernel bump (#3133)
Generate list of changelogs if we're bumping to the next patch release.
If major or minor version is bumped, the commit message contains only
the title, like before.

Also fix English in the commit title of RPi bump.
2024-02-01 11:27:52 +01:00
Jan Čermák
5271dd180d
Fix check-dotconfig warnings coming from custom kernel configs (#3130)
* Remove options not present in current kernel anymore

* Adjust options set to incorrect values

* Remove options unset due to missing dependencies
2024-02-01 10:05:45 +01:00
Jan Čermák
3c50eee20b
Bump buildroot to 2023.02.9 (#3129)
* buildroot 512a487366...015e99f244 (1):
  > Merge tag '2023.02.9' into 2023.02.x-haos
2024-01-31 12:45:38 +01:00
Jan Čermák
1e70dc8edf
Bump OS to pre-release version 11.5.rc3 2024-01-31 10:25:40 +01:00
Jan Čermák
fd3c1066b8
Update ATF and DDR blob for Odroid M1, change 1056->1560 MHz RAM timing (#3125)
Odroid M1 was using 1056 MHz blob for RAM training, although it can run
at 1560 MHz. Use the correct file for M1 and update it to latest version,
along with ARM Trusted Firmware blob.

(cherry picked from commit 1f45aaf35955cf25bbf360a4e32c8c5b25011d15)
2024-01-31 10:24:58 +01:00
Stefan Agner
f4f7928f17
Disable MMC environment on ASUS Tinkerboard (#3124)
We don't really use the MMC environment, so disable it by default. This
prevents the following warning at startup:
Loading Environment from MMC... *** Warning - bad CRC, using default environment

(cherry picked from commit f263326ef857fba9189f821444c9f52a7af9ed18)
2024-01-31 10:24:05 +01:00
Stefan Agner
8eeb85ed17
Disable Ethernet in U-Boot if ODROID-M1 (#3122)
It seems that the Ethernet initialization in U-Boot causes significant
packet drops in Linux on some board. On a ODROID-M1 with 8GB of RAM, a
packet loss rate of ~20% has been observed. From the user point of view
it feels like a massive slow down (SSH feels very slow, Home Assistant
loads very slow or not at all).

Disabling the Ethernet controller driver avoids initialization in U-Boot
and makes Ethernet work correctly again in Linux.

While at it, drop the previously board specific configs. They haven't
been used and the board seemed fine without them.

(cherry picked from commit bd3cae5300092b9045378939c2de5385d1de3f1a)
2024-01-31 10:20:21 +01:00
Jens Maus
e00709d449
Add optional rpi-rf-mod dtoverlay block for RPi5 (#3080)
* added optional rpi-rf-mod dtoverlay block
* remove dtoverlay=miniuart-bt as not required.

(cherry picked from commit 9102f06fbab258fa33b50b1985fbc86b5ac1d9f4)
2024-01-31 10:20:18 +01:00
Tim L
9e7b6783d1
Drop Amlogic specific patches for Odroid-m1 build (#3120)
All of the patches in ./board/hardkernel/patches are specific to
Amlogic SoC's. Drop this patch path when building Rockchip based
Odroid-m1 board.
2024-01-31 09:12:33 +01:00
Jan Čermák
1f45aaf359
Update ATF and DDR blob for Odroid M1, change 1056->1560 MHz RAM timing (#3125)
Odroid M1 was using 1056 MHz blob for RAM training, although it can run
at 1560 MHz. Use the correct file for M1 and update it to latest version,
along with ARM Trusted Firmware blob.
2024-01-30 13:48:36 +01:00
Jan Čermák
0ac12d3cd4
Also check kernel custom config file in linux-check-dotconfig (#3126)
If BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE is set, it should be also checked
by the script for checking that all kernel options are applied.
2024-01-30 13:36:59 +01:00
Stefan Agner
f263326ef8
Disable MMC environment on ASUS Tinkerboard (#3124)
We don't really use the MMC environment, so disable it by default. This
prevents the following warning at startup:
Loading Environment from MMC... *** Warning - bad CRC, using default environment
2024-01-30 11:47:48 +01:00
Jan Čermák
82e1beff2e
Linux: Update kernel 6.1.75 (#3123) 2024-01-30 11:30:19 +01:00
Tim L
54e86009c2
Use rockchip combined SPL images for Tinkerboard (#3118)
* tinker: Drop patch for u-boot entry point and move into uboot.config

* tinker: Use rockchip combined uboot image
2024-01-30 11:22:23 +01:00
Stefan Agner
bd3cae5300
Disable Ethernet in U-Boot if ODROID-M1 (#3122)
It seems that the Ethernet initialization in U-Boot causes significant
packet drops in Linux on some board. On a ODROID-M1 with 8GB of RAM, a
packet loss rate of ~20% has been observed. From the user point of view
it feels like a massive slow down (SSH feels very slow, Home Assistant
loads very slow or not at all).

Disabling the Ethernet controller driver avoids initialization in U-Boot
and makes Ethernet work correctly again in Linux.

While at it, drop the previously board specific configs. They haven't
been used and the board seemed fine without them.
2024-01-30 10:12:48 +01:00
Jens Maus
9102f06fba
Add optional rpi-rf-mod dtoverlay block for RPi5 (#3080)
* added optional rpi-rf-mod dtoverlay block
* remove dtoverlay=miniuart-bt as not required.
2024-01-30 10:12:01 +01:00
Tim L
9df30c9e4e
Use rockchip combined uboot images (#3115) 2024-01-29 22:12:52 +01:00
Jan Čermák
378b90bc82
Bump OS to pre-release version 11.5.rc2 2024-01-26 14:23:39 +01:00
Jan Čermák
01c8c1a5fa
Add kernel options missing as a result of enabling CONFIG_EXPERT (#3114)
Enabling CONFIG_EXPERT, which was a dependency of some options we try
to set by our config fragments, had a side-effect of toggling some other
options, most importantly the framebuffer console support. Enable the
options found by diffing old and new kernel configs.

Fixes #3112

(cherry picked from commit 3d234144a23993b69b569c8d2c666945e2c274a1)
2024-01-26 14:23:17 +01:00
Jan Čermák
3d234144a2
Add kernel options missing as a result of enabling CONFIG_EXPERT (#3114)
Enabling CONFIG_EXPERT, which was a dependency of some options we try
to set by our config fragments, had a side-effect of toggling some other
options, most importantly the framebuffer console support. Enable the
options found by diffing old and new kernel configs.

Fixes #3112
2024-01-26 14:04:14 +01:00
Jan Čermák
ae4ab5aa24
Bump OS to development version 11.6.dev0 2024-01-25 15:26:28 +01:00
Jan Čermák
113348ef93
Bump OS to pre-release version 11.5.rc1 2024-01-25 14:26:08 +01:00
Jan Čermák
4b2d34368d
Fix path to VHDX artifact in OS build job (#3105) 2024-01-25 09:46:10 +01:00
Jan Čermák
aadb5a74b6
Use renamed MT7921/MT7922 options from linux-firmware upstream merge (#3106)
* ../../../buildroot 55120df0b7...512a487366 (3):
  > package/linux-firmware: add WiFi and BT firmware for MT7921 and MT7922
  > package/dbus-broker: fix legal info
  > package/rtl8821cu: fix legal info
2024-01-25 09:43:07 +01:00
Jan Čermák
4619dcbb16
Create empty overlays/README to fix DTB overlay loading on RPi 5 (#3107)
Since we're using a custom os_prefix for dual boot on RPi 5, overlays
can be also present in different directories. Raspberry Pi's bootloader
has a strange feature that it only respects os_prefix if the directory
with overlays contains a README file:
https://www.raspberrypi.com/documentation/computers/config_txt.html#overlay_prefix

While rpi-firmware package touches the file when copying overlays to
the destination directory, for RPi 5 we are using BR2_LINUX_KERNEL_INSTALL_INTREE_OVERLAYS
option which does not copy or create it. Ensure it is present (no matter
if we're using intree on rpi-firmware overlays) in the hassos-hook.

Fixes #3079

(also removed invalid mention about the README from config.txt)
2024-01-25 09:27:52 +01:00
Jan Čermák
08b3277bdb
Resolve warnings caused by incorrect kernel config settings (#3104)
* Remove all non-existing kernel config symbols

* Remove unapplied x86 Intel sound options

These are missing various subsystem dependencies and were never in fact
enabled, assuming they're rather exotic and removing them completely.

* Add missing dependencies, adjust tristate values, remove nonsense

* Use KERNEL_LZ4 only for non-aarch64

Since aarch64 doesn't use self-extracting kernel:
https://patchwork.kernel.org/project/linux-arm-kernel/patch/20190119185540.20526-1-tobias.johannes.klausmann@mni.thm.de/

* Extract PCI options to device-support-pci fragment (renamed from device-support-pcie)

RPi 4+ should use this fragment too, since CM4 has PCIe support.

* Rename RPi's kernel-32b fragment to kernel-armv7
2024-01-24 12:03:25 +01:00
Stefan Agner
bf744adc5f
Bump U-Boot to 2024.01 (#3096)
* Bump U-Boot to 2024.01 for Raspberry Pi and Home Assistant Yellow

* Regenerated using --no-thread

By default git creates some email headers. We can minimize them using
--no-thread.

* Fix build for Yellow

* Update U-Boot for ASUS Tinker Board

* Update U-Boot for Khadas VIM3

* Update U-Boot for ODROID-M1

* Update U-Boot for Home Assistant Green

* Update U-Boot for ODROID-C2/C4/N2/XU4
2024-01-24 10:01:13 +01:00
Jens Maus
f36ab6cf5e
add missing ARMv8 32bit kernel support configs (#3099) 2024-01-23 21:28:24 +01:00
Stefan Agner
7685e04c2b
Enable PCIe for Khadas VIM3 (#3092) (#3100)
It seems that the PCIe driver is not enabled for Khadas VIM3. Enable it
by default.

Note to make use of the M2X extension board, the following commands need
to be executed on the U-Boot command line:

```
HAOS> i2c dev 0
Setting bus to 0
HAOS> i2c mw 0x18 0x33 1
```
2024-01-23 21:27:49 +01:00
Jan Čermák
d83fc29969
Fix ARCH/SRCARCH for aarch64 in linux-check-dotconfig (#3098)
Wrong arch for arm64 produces few false check results resulting
from some symbols in arm64 tree not being loaded. We can use raw
$(ARCH) variable for arm, only need to translate aarch64 -> arm64.
2024-01-22 22:15:54 +01:00
Jan Čermák
82e7dc7ccf
Linux: Update kernel 6.1.74 (#3093) 2024-01-22 18:09:30 +01:00
dependabot[bot]
ab586e285f
Bump actions/cache from 3 to 4 (#3095)
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-22 18:09:15 +01:00
Tom Pipe
ff84663caa
Fix build_haos_builder step to fetch the correct version (#3091)
Fixes the build_haos_builder step to fetch the version correctly from the version step, not the (non-existent) version_main step
2024-01-19 13:18:03 +01:00
Tim L
c210a1a52a
Dockerfile: migrate to trusted.gpg.d for docker repo keys (#3090)
Using apt-key for managing Debian repo keys has been deprecated for a
while now. While it currently works ok, seems to be broken in bookworm. This migrates to storing keys in trusted.gpg.d as recommended by the warning messages when using apt-key.
2024-01-19 11:02:34 +01:00
Jan Čermák
3aa2c1e411
Bump buildroot to update linux-firmware (#3084)
* buildroot 153f1461f6...55120df0b7 (8):
  > package/linux-firmware: bump version to 20231211
  > package/linux-firmware: bump version to 20231030
  > package/linux-firmware: add iwlwifi quz firmware
  > package/linux-firmware: add new option for Marvell prestera firmware
  > package/linux-firmware: bump version to 20230804
  > package/linux-firmware: bump version to 20230625
  > package/linux-firmware: add QCA9377 BT firmware
  > package/linux-firmware: bump version to 20230515
2024-01-17 18:58:56 +01:00
Jan Čermák
c845b387c9
Linux: Update kernel 6.1.73 (#3083) 2024-01-17 18:58:45 +01:00
Jan Čermák
bde080336e
Fix path to cmdline after successful RPi 5 tryboot (#3085)
Path to cmdline is set in tryboot.txt to cmdline-tryboot.txt before
attempting A/B boot. After successful boot, tryboot.txt is relocated
to config.txt, yet the config path of cmdline is not changed and remains
set to cmdline-tryboot.txt which doesn't exist anymore at that point,
causing following reboots to fail.

Fixes #3065
2024-01-17 17:56:29 +01:00
Tom Pipe
e7c15f9aa6
Fix self_signed_cert variable value (#3071)
The value of ```self_signed_cert``` is being set incorrectly, resulting in a failed build, as the self signed certs aren't copied correctly.

Updated so the value is set from ```self_signed_cert``` and not ```self_signed```
2024-01-17 10:45:12 +01:00
Jan Čermák
a7f570c4b4
Linux: Update kernel 6.1.72 (#3064)
* Linux: Update kernel 6.1.72
* Remove SMB client workaround for 6.1.71
2024-01-11 10:04:10 +01:00
Jan Čermák
59555e597e
Merge Buildroot 2023.2.8 (#3060)
* buildroot 2d89a0f9b6...153f1461f6 (1):
  > Merge tag '2023.02.8' into 2023.02.x-haos
2024-01-10 10:23:21 +01:00
Jan Čermák
c328d30610
Merge branch 'main' into dev 2024-01-09 10:55:26 +01:00
Jan Čermák
b88ba4d208
Bump OS to release version 11.4 2024-01-09 10:47:53 +01:00
Jan Čermák
99e8af2aac
Bump OS to development version 11.5.dev0 2024-01-08 15:09:41 +01:00
Jan Čermák
66087c4334
Bump OS to pre-release version 11.4.rc1 2024-01-08 14:41:33 +01:00
Jan Čermák
baa756e736
Revert kernel patch causing failures on CIFS share disk usage (#3051)
* Revert kernel patch causing failures on CIFS share disk usage

The issue was reported upstream, waiting for a fix there. Reverting the
patch for a quick resolution of the bug that breaks some things in HA
and add-ons badly.

Refs #3041

* Move the patch to 6.1.71 subdirectory

That way Raspberry Pi's kernel won't be patched (unless it's the same
version which it's currently not).
2024-01-08 13:03:22 +01:00
Jan Čermák
1a48d6fdd4
Add rtw89 firmware option missing in #3003 (#3043)
In #3003 the rtw89 firmware was only added to the buildroot submodule,
config option for enabling it was missing.
2024-01-06 17:30:50 +01:00
Jan Čermák
f50f7c2475
Linux: Update kernel 6.1.71 (#3046) 2024-01-06 17:29:28 +01:00
Stefan Agner
e93d92b50e
Merge branch 'main' into dev 2024-01-04 21:28:48 +01:00
Stefan Agner
0ec5c22d3a
Remove rootfstype for Raspberry Pi 5 (#3037) 2024-01-04 21:26:55 +01:00
Stefan Agner
fdd0bd0efb
Bump OS to release version 11.3 2024-01-04 15:40:02 +01:00
Jan Čermák
714912a2a9
Suppress action-shellcheck warning from deprecated option (#3030)
Use ignore_paths instead of ignore for the buildroot directory.
2024-01-03 10:02:44 +01:00
Jan Čermák
62b76f7f47
Linux: Update kernel 6.1.70 (#3029) 2024-01-03 10:02:34 +01:00
Stefan Agner
d82458a6a8
Enable IP policy routing options (#3026) (#3027)
Enable multiple table options which allows policy routing based on
source address or type-of-service. This is useful for Tailscale.
2024-01-03 09:35:49 +01:00
Stefan Agner
6c549c10d8
Set Raspberry Pi 2 Supervisor architecture correctly (#3012)
The Raspberry Pi 2 was based on Cortex-A7 in first revisions, then
Cortex-A53. However, both ar armv7 architectures, and that is also how
the Operating System itself is configured. Use the correct architecture
for Supervisor.

The hassos-supervisor script should recreate the container
automatically on first boot after update.

Since Supervisor itself is written in Python this shouldn't affect much.
However, the Supervisor uses it's architecture as default architecture
when building local add-on and uses it as default architecture for
multi-arch container images. This is also where this error got noticed
(see https://github.com/home-assistant/supervisor/issues/4402#issuecomment-1865979421).
2023-12-26 17:53:20 +01:00
Jan Čermák
364ca718fb
Remove duplicated step uploading ova QEMU image for the test job (#3011)
* Remove duplicated step uploading ova QEMU image for the test job

Instead of uploading the file twice with a fixed name, upload it in the
same step that is used for unpublished builds and pass the version string
to the test job.

* Update .github/workflows/test.yaml

Co-authored-by: Stefan Agner <stefan@agner.ch>

---------

Co-authored-by: Stefan Agner <stefan@agner.ch>
2023-12-26 17:53:00 +01:00
Jan Čermák
978e13b180
Generate self-signed certificate in the prepare step and archive it (#3015)
Generate the certificate only once and make it available. The preferred
option that doesn't generate warnings would be to use secrets in the
repository config, in that case no certificate is generated or archived.
2023-12-22 14:49:40 +01:00
Stefan Agner
225d4194bf
Bump OS to development version 11.4.dev0 2023-12-21 17:04:24 +01:00
387 changed files with 7598 additions and 10633 deletions

View File

@ -23,6 +23,7 @@ body:
required: true
attributes:
label: What operating system image do you use?
default: 0
options:
- generic-x86-64 (Generic UEFI capable x86-64 systems)
- generic-aarch64 (Generic UEFI capable aarch64 systems)
@ -30,6 +31,7 @@ body:
- odroid-c2 (Hardkernel ODROID-C2)
- odroid-c4 (Hardkernel ODROID-C4)
- odroid-m1 (Hardkernel ODROID-M1)
- odroid-m1s (Hardkernel ODROID-M1S)
- odroid-n2 (Hardkernel ODROID-N2/N2+)
- odroid-xu4 (Hardkernel ODROID-XU4)
- ova (for Virtual Machines)
@ -58,10 +60,21 @@ body:
validations:
required: true
attributes:
label: Did you upgrade the Operating System.
label: Did the problem occur after upgrading the Operating System?
default: 0
options:
- "Yes"
- "No"
- "Yes"
- type: textarea
validations:
required: true
attributes:
label: Hardware details
description: >
Provide details about the hardware used for your install.
This is especially important for bare-metal x86 installations.
If you have any USB devices attached, please list them here.
For VMs, include the hypervisor type and version.
- type: textarea
validations:
required: true
@ -81,10 +94,10 @@ body:
attributes:
label: Anything in the Supervisor logs that might be useful for us?
description: >
Supervisor Logs can be found in [Settings -> System -> Logs](https://my.home-assistant.io/redirect/logs/)
then choose `Supervisor` in the top right.
Supervisor Logs can be found in [Settings -> System -> Logs](https://my.home-assistant.io/redirect/logs/?provider=supervisor)
then choose `Supervisor` in the top right. Alternatively enter `ha supervisor logs` in the Home Assistant CLI.
[![Open your Home Assistant instance and show your Supervisor system logs.](https://my.home-assistant.io/badges/supervisor_logs.svg)](https://my.home-assistant.io/redirect/supervisor_logs/)
[![Open your Home Assistant instance and show your Supervisor system logs.](https://my.home-assistant.io/badges/supervisor_logs.svg)](https://my.home-assistant.io/redirect/logs/?provider=supervisor)
render: txt
- type: textarea
validations:
@ -92,8 +105,8 @@ body:
attributes:
label: Anything in the Host logs that might be useful for us?
description: >
Host Logs can be found in [Settings -> System -> Logs](https://my.home-assistant.io/redirect/logs/)
then choose `Host` in the top right.
Host Logs can be found in [Settings -> System -> Logs](https://my.home-assistant.io/redirect/logs/?provider=host)
then choose `Host` in the top right. Alternatively enter `ha host logs` in the Home Assistant CLI.
render: txt
- type: textarea
attributes:

View File

@ -82,6 +82,8 @@ runs:
bump_entry /tmp/version/rpi-imager-haos.json "$INPUTS_VERSION" "${{ steps.validate-input.outputs.date }}" "rpi3-64" "RPi 3"
bump_entry /tmp/version/rpi-imager-haos.json "$INPUTS_VERSION" "${{ steps.validate-input.outputs.date }}" "rpi4-64" "RPi 4/400"
bump_entry /tmp/version/rpi-imager-haos.json "$INPUTS_VERSION" "${{ steps.validate-input.outputs.date }}" "rpi5-64" "RPi 5"
bump_entry /tmp/version/rpi-imager-haos.json "$INPUTS_VERSION" "${{ steps.validate-input.outputs.date }}" "yellow" "Yellow"
- shell: bash
env:

View File

@ -4,8 +4,6 @@ version-template: "$MAJOR.$MINOR"
categories:
- title: 'Home Assistant Operating System'
label: 'os'
- title: 'Build System'
label: 'build'
- title: 'Raspberry Pi'
label: 'board/raspberrypi'
- title: 'Home Assistant Yellow'
@ -24,6 +22,12 @@ categories:
label: 'board/khadas'
- title: 'Generic aarch64'
label: 'board/generic-aarch64'
- title: 'Documentation'
label: 'documentation'
- title: 'Build System'
label: 'build'
- title: 'Dependencies'
label: 'dependencies'
filter-by-commitish: true
template: |
## Changes

View File

@ -31,7 +31,7 @@ on:
required: true
env:
PYTHON_VERSION: "3.10"
PYTHON_VERSION: "3.13"
jobs:
build-index:
@ -49,7 +49,7 @@ jobs:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install AWS CLI
run: pip install awscli
run: pip install 'awscli<1.37.0'
- name: Create build index
env:
@ -83,11 +83,20 @@ jobs:
- name: Flush CloudFlare cache
run: |
curl --silent --show-error --fail -X POST \
"https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE }}/purge_cache" \
-H "Authorization: Bearer ${{ secrets.CF_PURGE_TOKEN }}" \
-H "Content-Type: application/json" \
--data '{"files": [
"https://os-artifacts.home-assistant.io/index.html",
"https://os-artifacts.home-assistant.io/index.json"
] }'
# Create purge list of all artifacts
jq -r '. | map("https://os-artifacts.home-assistant.io/${{ inputs.version }}/" + .) | join("\n")' < "${{ inputs.version }}.json" > purge_list
# Add indexes to purge list too
echo "https://os-artifacts.home-assistant.io/indexes/${{ inputs.version }}.json" >> purge_list
echo "https://os-artifacts.home-assistant.io/index.html" >> purge_list
echo "https://os-artifacts.home-assistant.io/index.json" >> purge_list
# Split to chunks of 30 files (limit of CF API)
split -d -l30 purge_list purge_list_chunked
# Convert chunked lists to JSON arrays and call CF purge API
for f in purge_list_chunked*; do
files=$(jq -R -s 'split("\n")[:-1]' < "$f")
curl --silent --show-error --fail -X POST \
"https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE }}/purge_cache" \
-H "Authorization: Bearer ${{ secrets.CF_PURGE_TOKEN }}" \
-H "Content-Type: application/json" \
--data "{\"files\": ${files}}"
done

View File

@ -18,7 +18,7 @@ on:
default: true
env:
PYTHON_VERSION: "3.10"
PYTHON_VERSION: "3.13"
jobs:
prepare:
@ -36,6 +36,7 @@ jobs:
matrix: ${{ steps.generate_matrix.outputs.result }}
build_container_image: ghcr.io/${{ github.repository_owner }}/haos-builder@${{ steps.build_haos_builder.outputs.digest }}
publish_build: ${{ steps.check_publish.outputs.publish_build }}
self_signed_cert: ${{ steps.generate_signing_key.outputs.self_signed_cert }}
steps:
- name: Checkout source
uses: actions/checkout@v4
@ -135,24 +136,44 @@ jobs:
}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.0.0
uses: docker/setup-buildx-action@v3.10.0
- name: Log in to the GitHub container registry
uses: docker/login-action@v3.0.0
uses: docker/login-action@v3.4.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push
uses: docker/build-push-action@v5.1.0
uses: docker/build-push-action@v6.15.0
id: build_haos_builder
with:
context: .
file: Dockerfile
tags: ghcr.io/${{ github.repository_owner }}/haos-builder
cache-from: ghcr.io/${{ github.repository_owner }}/haos-builder:cache-${{ steps.version_main.outputs.version_main }}
cache-to: ghcr.io/${{ github.repository_owner }}/haos-builder:cache-${{ steps.version_main.outputs.version_main }}
cache-from: ghcr.io/${{ github.repository_owner }}/haos-builder:cache-${{ steps.version.outputs.version_main }}
cache-to: ghcr.io/${{ github.repository_owner }}/haos-builder:cache-${{ steps.version.outputs.version_main }}
push: true
- name: Generate self-signed certificate
id: generate_signing_key
env:
RAUC_CERTIFICATE: ${{ secrets.RAUC_CERTIFICATE }}
RAUC_PRIVATE_KEY: ${{ secrets.RAUC_PRIVATE_KEY }}
if: env.RAUC_CERTIFICATE == '' || env.RAUC_PRIVATE_KEY == ''
run: |
echo "::warning:: RAUC certificate or key is missing in the repository secrets. Building with a public self-signed certificate!"
buildroot-external/scripts/generate-signing-key.sh cert.pem key.pem
echo "self_signed_cert=true" >> $GITHUB_OUTPUT
- name: Create signing key
uses: actions/upload-artifact@v4
if: steps.generate_signing_key.outcome == 'success'
with:
name: signing-key
path: |
cert.pem
key.pem
build:
name: Build for ${{ matrix.board.id }}
permissions:
@ -178,7 +199,7 @@ jobs:
- name: Install AWS CLI
if: ${{ github.event_name != 'release' && needs.prepare.outputs.publish_build == 'true' }}
run: pip install awscli
run: pip install 'awscli<1.37.0'
- name: Set version suffix
if: ${{ github.event_name != 'release' }}
@ -188,28 +209,38 @@ jobs:
sed -i -E "s/(^VERSION_SUFFIX=\").*(\"$)/\1${VERSION_DEV}\2/" buildroot-external/meta
- name: 'Add release PKI certs'
if: ${{ needs.prepare.outputs.self_signed_cert != 'true' }}
env:
RAUC_CERTIFICATE: ${{ secrets.RAUC_CERTIFICATE }}
RAUC_PRIVATE_KEY: ${{ secrets.RAUC_PRIVATE_KEY }}
run: |
if [ -z "${RAUC_CERTIFICATE}" ] || [ -z "${RAUC_PRIVATE_KEY}" ]; then
echo "::warning:: RAUC certificate or key is missing. Building with a self-signed certificate!"
else
echo -e "-----BEGIN CERTIFICATE-----\n${RAUC_CERTIFICATE}\n-----END CERTIFICATE-----" > cert.pem
echo -e "-----BEGIN PRIVATE KEY-----\n${RAUC_PRIVATE_KEY}\n-----END PRIVATE KEY-----" > key.pem
fi
echo -e "-----BEGIN CERTIFICATE-----\n${RAUC_CERTIFICATE}\n-----END CERTIFICATE-----" > cert.pem
echo -e "-----BEGIN PRIVATE KEY-----\n${RAUC_PRIVATE_KEY}\n-----END PRIVATE KEY-----" > key.pem
- name: Get self-signed certificate from the prepare job
if: ${{ needs.prepare.outputs.self_signed_cert == 'true' }}
uses: actions/download-artifact@v4
with:
name: signing-key
- name: Free space on build drive
run: |
# Inspired by https://github.com/easimon/maximize-build-space/blob/v7/action.yml
df -h
sudo rm -rf /usr/local/lib/android/sdk/ndk
sudo rm -rf /opt/hostedtoolcache/CodeQL
# Make sure cache action can restore this lcoation
sudo mkdir /mnt/cache
sudo chown -R runner:runner /mnt/cache
sudo mkdir /mnt/output
WORKSPACE_OWNER="$(stat -c '%U:%G' "${GITHUB_WORKSPACE}")"
# output directory is symlinked for easier access from workspace
# but for build container it must be mounted as a volume
sudo ln -sf /mnt/output "${GITHUB_WORKSPACE}/output"
sudo chown -R "${WORKSPACE_OWNER}" /mnt/cache
sudo chown -R "${WORKSPACE_OWNER}" /mnt/output
df -h
- name: "Restore cache: object files"
uses: actions/cache/restore@v3
uses: actions/cache/restore@v4
with:
path: /mnt/cache/cc
key: haos-cc-${{ matrix.board.id }}
@ -218,17 +249,21 @@ jobs:
run: |
BUILDER_UID="$(id -u)"
BUILDER_GID="$(id -g)"
docker run --rm --privileged -v "${GITHUB_WORKSPACE}:/build" \
docker run --rm --privileged \
-e BUILDER_UID="${BUILDER_UID}" -e BUILDER_GID="${BUILDER_GID}" \
-v "${GITHUB_WORKSPACE}:/build" \
-v "/mnt/cache:/cache" \
-v "/mnt/output:/build/output" \
${{ needs.prepare.outputs.build_container_image }} \
make BUILDDIR=/build ${{ matrix.board.defconfig }}
- name: Check Linux config
run: |
docker run --rm --privileged -v "${GITHUB_WORKSPACE}:/build" \
docker run --rm --privileged \
-e BUILDER_UID="$(id -u)" -e BUILDER_GID="$(id -g)" \
-v "${GITHUB_WORKSPACE}:/build" \
-v "/mnt/cache:/cache" \
-v "/mnt/output:/build/output" \
${{ needs.prepare.outputs.build_container_image }} \
make -C buildroot O="/build/output" BR2_EXTERNAL="/build/buildroot-external" \
BR2_CHECK_DOTCONFIG_OPTS="--github-format --strip-path-prefix=/build/" linux-check-dotconfig
@ -264,7 +299,7 @@ jobs:
- name: "Save cache: object files"
if: github.ref == 'refs/heads/dev'
uses: actions/cache/save@v3
uses: actions/cache/save@v4
with:
path: /mnt/cache/cc
key: haos-cc-${{ matrix.board.id }}-${{ github.run_id }}
@ -281,18 +316,10 @@ jobs:
echo "## Partitions" >> $GITHUB_STEP_SUMMARY
echo "| File | Size (bytes) | Size (formatted) |" >> $GITHUB_STEP_SUMMARY
echo "|:-|:-|:-|" >> $GITHUB_STEP_SUMMARY
for f in boot.vfat kernel.img rootfs.squashfs overlay.ext4 data.ext4; do
for f in boot.vfat kernel.img rootfs.erofs overlay.ext4 data.ext4; do
echo "| ${f} | $(du -b output/images/$f | cut -f1) | $(du -bh output/images/$f | cut -f1) |" >> $GITHUB_STEP_SUMMARY
done
- name: Upload ova image to artifacts for the test job
uses: actions/upload-artifact@v4
if: ${{ matrix.board.id == 'ova' }}
with:
name: ova-image
path: |
output/images/haos_ova*.qcow2.xz
- name: Upload OS image artifact
uses: actions/upload-artifact@v4
if: ${{ github.event_name != 'release' && needs.prepare.outputs.publish_build != 'true' && matrix.board.id != 'ova' }}
@ -319,7 +346,8 @@ jobs:
- name: Upload QEMU disk image artifact
uses: actions/upload-artifact@v4
if: ${{ github.event_name != 'release' && needs.prepare.outputs.publish_build != 'true' && (matrix.board.id == 'generic-aarch64' || matrix.board.id == 'ova') }}
# Create artifact for ova every time - it's used by the called tests workflow
if: ${{ matrix.board.id == 'ova' || (github.event_name != 'release' && needs.prepare.outputs.publish_build != 'true' && matrix.board.id == 'generic-aarch64') }}
with:
name: haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.qcow2.xz
path: |
@ -347,12 +375,14 @@ jobs:
with:
name: haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.vhdx.zip
path: |
output/images/haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.vhdx..zip
output/images/haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.vhdx.zip
test:
name: Test OS image
needs: [ build, prepare ]
uses: ./.github/workflows/test.yaml
with:
version: ${{ needs.prepare.outputs.version_full }}
update_index:
name: Update artifacts index

25
.github/workflows/lock.yml vendored Normal file
View File

@ -0,0 +1,25 @@
name: Lock
on:
schedule:
- cron: "45 5 * * *"
permissions:
discussions: write
issues: write
pull-requests: write
jobs:
lock:
if: github.repository_owner == 'home-assistant'
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v5.0.1
with:
github-token: ${{ github.token }}
issue-inactive-days: "30"
exclude-issue-created-before: "2025-01-01T00:00:00Z"
issue-lock-reason: ""
pr-inactive-days: "7"
exclude-pr-created-before: "2025-01-01T00:00:00Z"
pr-lock-reason: ""

View File

@ -41,6 +41,12 @@
"architecture": "aarch64",
"label": "board/odroid"
},
{
"id": "odroid-m1s",
"defconfig": "odroid_m1s",
"architecture": "aarch64",
"label": "board/odroid"
},
{
"id": "odroid-n2",
"defconfig": "odroid_n2",

View File

@ -8,6 +8,12 @@ jobs:
linters:
runs-on: ubuntu-22.04
steps:
- name: Install additional dependencies
run: |
sudo apt-get update
sudo apt-get -y install \
python3-flake8
- name: Check out code
uses: actions/checkout@v4
with:
@ -21,8 +27,8 @@ jobs:
- name: Check shell scripts
uses: ludeeus/action-shellcheck@2.0.0
with:
ignore: buildroot
ignore_paths: buildroot
- name: Check buildroot-external packages
run: |
buildroot/utils/check-package --exclude PackageHeader --br2-external buildroot-external/package/*/*
buildroot/utils/check-package --exclude PackageHeader --exclude Upstream --br2-external buildroot-external/package/*/*

View File

@ -13,6 +13,6 @@ jobs:
pull-requests: read # for release-drafter/release-drafter to read PR content and labels
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@v5
- uses: release-drafter/release-drafter@v6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -19,7 +19,7 @@ jobs:
# - No PRs marked as no-stale or pinned
# - No issues marked as no-stale, help-wanted or pinned
- name: 90 days stale issues & PRs policy
uses: actions/stale@v9.0.0
uses: actions/stale@v9.1.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 90

View File

@ -19,14 +19,15 @@ on:
required: false
type: boolean
default: true
version:
description: Version of HAOS to test (as used in the name of the qcow2 image artifact)
required: true
type: string
jobs:
test:
if: ${{ github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success' }}
env:
NO_KVM: 1
name: Test in QEMU
runs-on: ubuntu-22.04
steps:
@ -58,16 +59,22 @@ jobs:
if: ${{ inputs.use-artifact }}
uses: actions/download-artifact@v4
with:
name: ova-image
name: haos_ova-${{ inputs.version }}.qcow2.xz
- name: Extract OS image
run: |
xz -dc haos*.qcow2.xz > tests/haos.qcow2
rm haos*.qcow2.xz
- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Run tests
run: |
./tests/run_tests.sh
./tests/run_tests.sh --durations=0 --durations-min=5.0
- name: Archive logs
uses: actions/upload-artifact@v4
@ -86,7 +93,7 @@ jobs:
tests/junit_reports/*.xml
- name: Publish test report
uses: mikepenz/action-junit-report@v4
uses: mikepenz/action-junit-report@v5
if: always()
with:
report_paths: 'tests/junit_reports/*.xml'

2
.gitmodules vendored
View File

@ -1,4 +1,4 @@
[submodule "buildroot"]
path = buildroot
url = https://github.com/home-assistant/buildroot.git
branch = 2022.02.x-haos
branch = 2024.02.x-haos

View File

@ -12,14 +12,16 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
gpg \
dirmngr \
software-properties-common \
&& curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - \
&& add-apt-repository "deb https://download.docker.com/linux/debian $(lsb_release -cs) stable" \
&& curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/docker.gpg] \
https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list \
&& apt-get update && apt-get install -y --no-install-recommends \
docker-ce \
&& rm -rf /var/lib/apt/lists/*
# Build tools
RUN apt-get update && apt-get install -y --no-install-recommends \
automake \
bash \
bc \
binutils \
@ -29,6 +31,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
file \
git \
graphviz \
help2man \
jq \
make \
ncurses-dev \
@ -42,6 +45,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
rsync \
skopeo \
sudo \
texinfo \
unzip \
vim \
wget \

View File

@ -4,6 +4,10 @@
The following boards/devices are supported:
- Nabu Casa
- [Home Assistant Green](https://www.home-assistant.io/green/)
- [Home Assistant Yellow](https://www.home-assistant.io/yellow/) (based custom carrier board and powered by a Raspberry Pi 4 Compute Module)
- [Home Assistant Blue](https://www.home-assistant.io/blue/) (based on ODROID-N2+)
- Raspberry Pi
- Pi 5 ([4 GB](https://www.raspberrypi.com/products/raspberry-pi-5/?variant=raspberry-pi-5-4gb) and [8 GB](https://www.raspberrypi.com/products/raspberry-pi-5/?variant=raspberry-pi-5-8gb) model) 64-bit
- Pi 4 Model B ([1 GB](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/?variant=raspberry-pi-4-model-b-1gb), [2 GB](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/?variant=raspberry-pi-4-model-b-2gb), [4 GB](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/?variant=raspberry-pi-4-model-b-4gb) and [8 GB](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/?variant=raspberry-pi-4-model-b-8gb) model) 32-bit or 64-bit (recommended)
@ -13,6 +17,7 @@ The following boards/devices are supported:
- [ODROID-C2](https://www.hardkernel.com/shop/odroid-c2/) (discontinued)
- [ODROID-C4](https://www.hardkernel.com/shop/odroid-c4/)
- [ODROID-M1](https://www.hardkernel.com/shop/odroid-m1/)
- ODROID-M1S [4 GB](https://www.hardkernel.com/shop/odroid-m1s-with-4gbyte-ram/) or [8 GB](https://www.hardkernel.com/shop/odroid-m1s-with-8gbyte-ram/)
- [ODROID-N2](https://www.hardkernel.com/shop/odroid-n2/) (discontinued)
- ODROID-N2+ [2 GB](https://www.hardkernel.com/shop/odroid-n2-with-2gbyte-ram-2/) or [4 GB](https://www.hardkernel.com/shop/odroid-n2-with-4gbyte-ram-2/)
- [ODROID-XU4](https://www.hardkernel.com/shop/odroid-xu4-special-price/)
@ -38,6 +43,8 @@ Notes:
|Board|Build|Config|Docs|
|-----|----|------|----|
|Green |`make green` |[green](../../buildroot-external/configs/green_defconfig)|-|
|Yellow |`make yellow` |[yellow](../../buildroot-external/configs/yellow_defconfig)|-|
|Pi5 64-bit |`make rpi5_64` |[rpi5_64](../../buildroot-external/configs/rpi5_64_defconfig)|[raspberrypi](./raspberrypi/)|
|Pi4B 64-bit |`make rpi4_64` |[rpi4_64](../../buildroot-external/configs/rpi4_64_defconfig)|[raspberrypi](./raspberrypi/)|
|Pi4B 32-bit |`make rpi4` |[rpi4](../../buildroot-external/configs/rpi4_defconfig)|[raspberrypi](./raspberrypi/)|
@ -47,6 +54,7 @@ Notes:
|ODROID-C2 |`make odroid_c2` |[odroid_c2](../../buildroot-external/configs/odroid_c2_defconfig)|[hardkernel](./hardkernel/)|
|ODROID-C4 |`make odroid_c4` |[odroid_c4](../../buildroot-external/configs/odroid_c4_defconfig)|[hardkernel](./hardkernel/)|
|ODROID-M1 |`make odroid_m1` |[odroid_m1](../../buildroot-external/configs/odroid_m1_defconfig)|[hardkernel](./hardkernel/)|
|ODROID-M1S |`make odroid_m1s` |[odroid_m1s](../../buildroot-external/configs/odroid_m1s_defconfig)|[hardkernel](./hardkernel/)|
|ODROID-N2/N2+ |`make odroid_n2` |[odroid_n2](../../buildroot-external/configs/odroid_n2_defconfig)|[hardkernel](./hardkernel/)|
|ODROID-XU4 |`make odroid_xu4` |[odroid_xu4](../../buildroot-external/configs/odroid_xu4_defconfig)|[hardkernel](./hardkernel/)|
|Tinker Board |`make tinker` |[tinker](../../buildroot-external/configs/tinker_defconfig)|[asus](./asus/)|

View File

@ -7,6 +7,7 @@
| ODROID-C2 | 2016 | yes | [odroid_c2](../../../buildroot-external/configs/odroid_c2_defconfig) |
| ODROID-C4 | 2020 | yes | [odroid_c4](../../../buildroot-external/configs/odroid_c4_defconfig) |
| ODROID-M1 | 2022 | yes | [odroid_m1](../../../buildroot-external/configs/odroid_m1_defconfig) |
| ODROID-M1S | 2023 | yes | [odroid_m1s](../../../buildroot-external/configs/odroid_m1s_defconfig)|
| ODROID-N2 | 2019 | yes | [odroid_n2](../../../buildroot-external/configs/odroid_n2_defconfig) |
| ODROID-XU4 | 2015 | yes | [odroid_xu4](../../../buildroot-external/configs/odroid_xu4_defconfig)|

View File

@ -8,18 +8,18 @@ SD-card boot is supported via on-board bootloader (SPL) or recovery button.
## eMMC
eMMC boot via on-board bootloader requires the latest version of Petitboot
(spiboot 20230328). To install the latest version download the SPI boot image
eMMC boot via on-board bootloader requires a newer version of Petitboot
(spiboot 20230328 or later). To install the latest version download the SPI boot image
from [linuxfactory.or.kr][1] as follows:
1. Download `spiupdate_odroidm1_20220304.img.xz`
1. Download `spiupdate_odroidm1_20240415.img.xz`
2. Use balenaEtcher or another tool to flash the updater onto an SD card
3. Download `spiboot-20230328.img`
4. Rename the `spiboot-20230328.img` file to`spiboot.img`.
3. Download `spiboot-20240109.img`
4. Rename the `spiboot-20240109.img` file to`spiboot.img`.
5. Paste the `spiboot.img` file onto the FAT partition of that same SD card.
6. Plug-in that SD card to your ODROID-M1. Petitboot will update itself, you can verify the progress on the HDMI output.
7. If you see the version 20230328 in the top right corner, the installation was successful.
* If you see any other version there, the installation failed.
7. If you see the version 20240109 in the top left corner, the installation was successful.\
If you see any other version there, the installation failed.
Once Petitboot is updated you can flash Home Assistant OS directly onto an eMMC.

View File

@ -0,0 +1,58 @@
# ODROID-M1S
Home Assistant OS 12 and newer support the ODROID-M1S board.
## SD-card
ODROID-M1S can boot HAOS directly from an SD card, as it has higher priority than the system on the eMMC. Simply flash the image to the SD card using your favorite tool and insert it to the micro SD slot on the board. This works even when the eMMC is wiped, or when it contains the factory-default U-Boot SPL loader, which is still able to load U-Boot provided in the HAOS image. In the second case, however, if the SD card fails to probe (e.g. due to a hardware failure), the system on the eMMC may be booted instead of HAOS.
## eMMC
HAOS can be installed directly to the eMMC using a special boot image, to do that:
1. Download the _UMS Utility_ image: [`ODROID-M1S_EMMC2UMS.img`][1]. The _UMS Utility_ is a special image that switches ODROID-M1S to USB Mass Storage device.
2. Use balenaEtcher or another tool to flash the _UMS utility_ onto an SD card.
3. Plug-in that SD card to your ODROID-M1S and boot it. Connect your PC to the Micro USB OTG port.
4. The eMMC will show as a drive on your PC and you can directly flash the HAOS image with balenaEther.
Installing HAOS replaces the firmware and SPL on the eMMC with the mainline version provided by HAOS. As a result, it is not possible to use the SD card with the EMMC2UMS image anymore, because the mainline SPL is not compatible with U-Boot in the EMMC2UMS image at this time (February 2024). This does not pose any problem for standard use, just makes it more complicated in case you want to return to the Hardkernel-provided OS.
A reliable way of reflashing the eMMC in this case is to use HAOS booted from an SD card. To do that, insert the SD card with HAOS to the micro SD slot and plug the board in. Once the device boots to the HA CLI, enter `login` to enter the root shell and use `curl` to download an image and `dd` it to the eMMC block device:
```sh
curl https://dn.odroid.com/RK3566/ODROID-M1S/Installer/ODROID-M1S_EMMC2UMS.img | dd of=/dev/mmcblk0
```
This way the device will start in the UMS mode on the next boot with the SD card removed. Alternatively you can use the [Hardkernel installer image][2] directly instead of the EMMC2UMS image.
## NVMe
Booting directly from NVMe is not supported. The NVMe card can be used as a data disk.
## Technical notes on boot flow
The Home Assistant OS image is bootable by the SoC directly. Refer to the [boot sequence documentation][3] for the details on what part of the boot is executed from the eMMC and what from the SD card. The steps documented above should however cover all scenarios that a standard user may encounter during usage.
## Console
By default, console access is available on the serial header (UART) and on HDMI.
The serial console's baudrate is 1500000 by default.
The systemd startup messages will only appear on the serial console by default.
To show the messages on the HDMI console instead, add the console manually
to the `cmdline.txt` file on the boot partition (e.g. `console=tty0`).
## GPIO
Odroid-M1S introduces a new 14pin expansion header. Refer to [the ODROID wiki][4].
At this point not all functionality is supported by the upstream kernel used by Home Assistant OS.
Supported modules include:
- UPS
- Internal USB
- Mini IO board (partial support)
[1]: https://dn.odroid.com/RK3566/ODROID-M1S/Installer/ODROID-M1S_EMMC2UMS.img
[2]: https://wiki.odroid.com/odroid-m1s/getting_started/os_installation_guide#user_installer
[3]: https://wiki.odroid.com/odroid-m1s/board_support/boot_sequence
[4]: https://wiki.odroid.com/odroid-m1s/hardware/expansion_connectors

View File

@ -1,25 +1,24 @@
# Kernel Version
Default Kernel tree: 6.1
| Board | Version |
|-------|---------|
| Open Virtual Appliance | 6.1.70 |
| Raspberry Pi | 6.1.63 |
| Raspberry Pi 0-W | 6.1.63 |
| Raspberry Pi 2 | 6.1.63 |
| Raspberry Pi 3 | 6.1.63 |
| Raspberry Pi 4 | 6.1.63 |
| Raspberry Pi 5 | 6.1.63 |
| Home Assistant Yellow | 6.1.63 |
| Home Assistant Green | 6.1.70 |
| Tinker Board | 6.1.70 |
| ODROID-C2 | 6.1.70 |
| ODROID-C4 | 6.1.70 |
| ODROID-M1 | 6.1.70 |
| ODROID-N2 | 6.1.70 |
| ODROID-XU4 | 6.1.70 |
| Generic aarch64 | 6.1.70 |
| Generic x86-64 | 6.1.70 |
| Khadas VIM3 | 6.1.70 |
| Open Virtual Appliance | 6.12.23 |
| Raspberry Pi | 6.6.74 |
| Raspberry Pi 0-W | 6.6.74 |
| Raspberry Pi 2 | 6.6.74 |
| Raspberry Pi 3 | 6.6.74 |
| Raspberry Pi 4 | 6.6.74 |
| Raspberry Pi 5 | 6.6.74 |
| Home Assistant Yellow | 6.6.74 |
| Home Assistant Green | 6.12.23 |
| Tinker Board | 6.12.23 |
| ODROID-C2 | 6.12.23 |
| ODROID-C4 | 6.12.23 |
| ODROID-M1 | 6.12.23 |
| ODROID-M1S | 6.12.23 |
| ODROID-N2 | 6.12.23 |
| ODROID-XU4 | 6.12.23 |
| Generic aarch64 | 6.12.23 |
| Generic x86-64 | 6.12.23 |
| Khadas VIM3 | 6.12.23 |

View File

@ -4,6 +4,8 @@ Home Assistant Operating System (formerly HassOS) is a Linux based operating sys
Home Assistant Operating System uses Docker as its container engine. By default it deploys the Home Assistant Supervisor as a container. Home Assistant Supervisor in turn uses the Docker container engine to control Home Assistant Core and Add-Ons in separate containers. Home Assistant Operating System is **not** based on a regular Linux distribution like Ubuntu. It is built using [Buildroot](https://buildroot.org/) and it is optimized to run Home Assistant. It targets single board compute (SBC) devices like the Raspberry Pi or ODROID but also supports x86-64 systems with UEFI.
[![Home Assistant - A project from the Open Home Foundation](https://www.openhomefoundation.org/badges/home-assistant.png)](https://www.openhomefoundation.org/)
## Features
- Lightweight and memory-efficient
@ -14,6 +16,7 @@ Home Assistant Operating System uses Docker as its container engine. By default
## Supported hardware
- Nabu Casa
- Raspberry Pi
- Hardkernel ODROID
- Asus Tinker Board
@ -37,7 +40,7 @@ The Home Assistant Operating System documentation can be found on the [Home Assi
### Components
- **Bootloader:**
- [Barebox](https://barebox.org/) for devices that support UEFI
- [GRUB](https://www.gnu.org/software/grub/) for devices that support UEFI
- [U-Boot](https://www.denx.de/wiki/U-Boot) for devices that don't support UEFI
- **Operating System:**
- [Buildroot](https://buildroot.org/) LTS Linux

@ -1 +1 @@
Subproject commit 2d89a0f9b613886345f6ae103dff0b6bff323f40
Subproject commit ead21eb6d24055317b7281b1a8e7d1d6e809313b

View File

@ -2,6 +2,8 @@ source "$BR2_EXTERNAL_HASSOS_PATH/package/bluetooth-rtl8723/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/eq3_char_loop/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/gasket/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/generic_raw_uart/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/hailo8-firmware/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/hailo-pci/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/hardkernel-boot/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/hassio/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/khadas-boot/Config.in"

View File

@ -1 +1 @@
console=tty1 console=ttyS0
console=ttyS0 console=tty0

View File

@ -10,6 +10,9 @@ function hassos_pre_image() {
cp "${BOARD_DIR}/grub.cfg" "${EFIPART_DATA}/EFI/BOOT/grub.cfg"
cp "${BOARD_DIR}/cmdline.txt" "${EFIPART_DATA}/cmdline.txt"
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" create
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" set ORDER="A B"
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" set A_OK=1
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" set A_TRY=0
cp -r "${EFIPART_DATA}/"* "${BOOT_DATA}/"
}
@ -24,4 +27,3 @@ function hassos_post_image() {
convert_disk_image_xz
}

View File

@ -2,6 +2,10 @@ CONFIG_EFI_STUB=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
CONFIG_CONNECTOR=y
CONFIG_VSOCKETS=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_NET=y
@ -9,17 +13,22 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_MEM=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_BLK_SCSI=y
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTIO_MMIO=y
CONFIG_SCSI_VIRTIO=y
CONFIG_HW_RANDOM_VIRTIO=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
CONFIG_VIRTIO_IOMMU=m
CONFIG_CRYPTO_ENGINE=m
CONFIG_CRYPTO_DEV_VIRTIO=m
# options for backward compatibility
CONFIG_ARMV8_DEPRECATED=y
CONFIG_SWP_EMULATION=y
CONFIG_CP15_BARRIER_EMULATION=y
CONFIG_SETEND_EMULATION=y
# These options are needed for virtio-fs
CONFIG_FUSE_FS=y
CONFIG_VIRTIO_FS=y
@ -36,7 +45,6 @@ CONFIG_NVME_HWMON=y
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_HYPERVISOR_GUEST=y
CONFIG_HYPERV=y
CONFIG_HYPERV_UTILS=m
CONFIG_HYPERV_BALLOON=m
@ -47,3 +55,23 @@ CONFIG_HYPERV_VSOCKETS=m
CONFIG_PCI_HYPERV=m
CONFIG_PCI_HYPERV_INTERFACE=m
CONFIG_FB_HYPERV=y
CONFIG_I6300ESB_WDT=y
# GPIO support
CONFIG_GPIO_ZYNQ=y
CONFIG_GPIO_PCA9570=y
# PHY drivers
CONFIG_PHY_XILINX_ZYNQMP=y
# USB support
CONFIG_USB_ONBOARD_DEV=y
CONFIG_USB_ONBOARD_DEV_USB5744=y
# i2c support
CONFIG_I2C_CADENCE=y
# 1-wire
CONFIG_W1_MASTER_AMD_AXI=m
CONFIG_W1_SLAVE_THERM=m

View File

@ -3,9 +3,9 @@ BOARD_NAME="Generic aarch64"
CHASSIS=embedded
BOOTLOADER=grub
KERNEL_FILE=Image
BOOT_SYS=efi
PARTITION_TABLE_TYPE=gpt
BOOT_SIZE=32M
BOOT_SPL=false
DISK_SIZE=6
DISK_SIZE=6G
SUPERVISOR_MACHINE=qemuarm-64
SUPERVISOR_ARCH=aarch64

View File

@ -0,0 +1,154 @@
From f0fb974644a132ecc4bd2dc5cce9622435d0ec13 Mon Sep 17 00:00:00 2001
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Thu, 24 Oct 2024 22:42:33 +0200
Subject: [PATCH] r8169: add support for RTL8125D
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This adds support for new chip version RTL8125D, which can be found on
boards like Gigabyte X870E AORUS ELITE WIFI7. Firmware rtl8125d-1.fw
for this chip version is available in linux-firmware already.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/d0306912-e88e-4c25-8b5d-545ae8834c0c@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Upstream: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=f75d1fbe7809bc5ed134204b920fd9e2fc5db1df
Signed-off-by: Jan Čermák <sairon@sairon.cz>
---
drivers/net/ethernet/realtek/r8169.h | 1 +
drivers/net/ethernet/realtek/r8169_main.c | 23 +++++++++++++------
.../net/ethernet/realtek/r8169_phy_config.c | 10 ++++++++
3 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/realtek/r8169.h b/drivers/net/ethernet/realtek/r8169.h
index e2db944e6fa8b..be4c9622618d8 100644
--- a/drivers/net/ethernet/realtek/r8169.h
+++ b/drivers/net/ethernet/realtek/r8169.h
@@ -68,6 +68,7 @@ enum mac_version {
/* support for RTL_GIGA_MAC_VER_60 has been removed */
RTL_GIGA_MAC_VER_61,
RTL_GIGA_MAC_VER_63,
+ RTL_GIGA_MAC_VER_64,
RTL_GIGA_MAC_VER_65,
RTL_GIGA_MAC_VER_66,
RTL_GIGA_MAC_NONE
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index 5ed2818bac257..1cbde7ebd6f30 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -55,6 +55,7 @@
#define FIRMWARE_8107E_2 "rtl_nic/rtl8107e-2.fw"
#define FIRMWARE_8125A_3 "rtl_nic/rtl8125a-3.fw"
#define FIRMWARE_8125B_2 "rtl_nic/rtl8125b-2.fw"
+#define FIRMWARE_8125D_1 "rtl_nic/rtl8125d-1.fw"
#define FIRMWARE_8126A_2 "rtl_nic/rtl8126a-2.fw"
#define FIRMWARE_8126A_3 "rtl_nic/rtl8126a-3.fw"
@@ -138,6 +139,7 @@ static const struct {
[RTL_GIGA_MAC_VER_61] = {"RTL8125A", FIRMWARE_8125A_3},
/* reserve 62 for CFG_METHOD_4 in the vendor driver */
[RTL_GIGA_MAC_VER_63] = {"RTL8125B", FIRMWARE_8125B_2},
+ [RTL_GIGA_MAC_VER_64] = {"RTL8125D", FIRMWARE_8125D_1},
[RTL_GIGA_MAC_VER_65] = {"RTL8126A", FIRMWARE_8126A_2},
[RTL_GIGA_MAC_VER_66] = {"RTL8126A", FIRMWARE_8126A_3},
};
@@ -707,6 +709,7 @@ MODULE_FIRMWARE(FIRMWARE_8168FP_3);
MODULE_FIRMWARE(FIRMWARE_8107E_2);
MODULE_FIRMWARE(FIRMWARE_8125A_3);
MODULE_FIRMWARE(FIRMWARE_8125B_2);
+MODULE_FIRMWARE(FIRMWARE_8125D_1);
MODULE_FIRMWARE(FIRMWARE_8126A_2);
MODULE_FIRMWARE(FIRMWARE_8126A_3);
@@ -2098,10 +2101,7 @@ static void rtl_set_eee_txidle_timer(struct rtl8169_private *tp)
tp->tx_lpi_timer = timer_val;
r8168_mac_ocp_write(tp, 0xe048, timer_val);
break;
- case RTL_GIGA_MAC_VER_61:
- case RTL_GIGA_MAC_VER_63:
- case RTL_GIGA_MAC_VER_65:
- case RTL_GIGA_MAC_VER_66:
+ case RTL_GIGA_MAC_VER_61 ... RTL_GIGA_MAC_VER_66:
tp->tx_lpi_timer = timer_val;
RTL_W16(tp, EEE_TXIDLE_TIMER_8125, timer_val);
break;
@@ -2233,6 +2233,9 @@ static enum mac_version rtl8169_get_mac_version(u16 xid, bool gmii)
{ 0x7cf, 0x64a, RTL_GIGA_MAC_VER_66 },
{ 0x7cf, 0x649, RTL_GIGA_MAC_VER_65 },
+ /* 8125D family. */
+ { 0x7cf, 0x688, RTL_GIGA_MAC_VER_64 },
+
/* 8125B family. */
{ 0x7cf, 0x641, RTL_GIGA_MAC_VER_63 },
@@ -2500,9 +2503,7 @@ static void rtl_init_rxcfg(struct rtl8169_private *tp)
case RTL_GIGA_MAC_VER_61:
RTL_W32(tp, RxConfig, RX_FETCH_DFLT_8125 | RX_DMA_BURST);
break;
- case RTL_GIGA_MAC_VER_63:
- case RTL_GIGA_MAC_VER_65:
- case RTL_GIGA_MAC_VER_66:
+ case RTL_GIGA_MAC_VER_63 ... RTL_GIGA_MAC_VER_66:
RTL_W32(tp, RxConfig, RX_FETCH_DFLT_8125 | RX_DMA_BURST |
RX_PAUSE_SLOT_ON);
break;
@@ -3814,6 +3815,12 @@ static void rtl_hw_start_8125b(struct rtl8169_private *tp)
rtl_hw_start_8125_common(tp);
}
+static void rtl_hw_start_8125d(struct rtl8169_private *tp)
+{
+ rtl_set_def_aspm_entry_latency(tp);
+ rtl_hw_start_8125_common(tp);
+}
+
static void rtl_hw_start_8126a(struct rtl8169_private *tp)
{
rtl_set_def_aspm_entry_latency(tp);
@@ -3862,6 +3869,7 @@ static void rtl_hw_config(struct rtl8169_private *tp)
[RTL_GIGA_MAC_VER_53] = rtl_hw_start_8117,
[RTL_GIGA_MAC_VER_61] = rtl_hw_start_8125a_2,
[RTL_GIGA_MAC_VER_63] = rtl_hw_start_8125b,
+ [RTL_GIGA_MAC_VER_64] = rtl_hw_start_8125d,
[RTL_GIGA_MAC_VER_65] = rtl_hw_start_8126a,
[RTL_GIGA_MAC_VER_66] = rtl_hw_start_8126a,
};
@@ -3879,6 +3887,7 @@ static void rtl_hw_start_8125(struct rtl8169_private *tp)
/* disable interrupt coalescing */
switch (tp->mac_version) {
case RTL_GIGA_MAC_VER_61:
+ case RTL_GIGA_MAC_VER_64:
for (i = 0xa00; i < 0xb00; i += 4)
RTL_W32(tp, i, 0);
break;
diff --git a/drivers/net/ethernet/realtek/r8169_phy_config.c b/drivers/net/ethernet/realtek/r8169_phy_config.c
index cf29b12084826..d09b2a41cd062 100644
--- a/drivers/net/ethernet/realtek/r8169_phy_config.c
+++ b/drivers/net/ethernet/realtek/r8169_phy_config.c
@@ -1104,6 +1104,15 @@ static void rtl8125b_hw_phy_config(struct rtl8169_private *tp,
rtl8125b_config_eee_phy(phydev);
}
+static void rtl8125d_hw_phy_config(struct rtl8169_private *tp,
+ struct phy_device *phydev)
+{
+ r8169_apply_firmware(tp);
+ rtl8125_legacy_force_mode(phydev);
+ rtl8168g_disable_aldps(phydev);
+ rtl8125b_config_eee_phy(phydev);
+}
+
static void rtl8126a_hw_phy_config(struct rtl8169_private *tp,
struct phy_device *phydev)
{
@@ -1160,6 +1169,7 @@ void r8169_hw_phy_config(struct rtl8169_private *tp, struct phy_device *phydev,
[RTL_GIGA_MAC_VER_53] = rtl8117_hw_phy_config,
[RTL_GIGA_MAC_VER_61] = rtl8125a_2_hw_phy_config,
[RTL_GIGA_MAC_VER_63] = rtl8125b_hw_phy_config,
+ [RTL_GIGA_MAC_VER_64] = rtl8125d_hw_phy_config,
[RTL_GIGA_MAC_VER_65] = rtl8126a_hw_phy_config,
[RTL_GIGA_MAC_VER_66] = rtl8126a_hw_phy_config,
};

View File

@ -0,0 +1,143 @@
From acc8d5ec4b6cdbf0a9625a9f9d3710b52555f3b2 Mon Sep 17 00:00:00 2001
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Tue, 15 Oct 2024 07:47:14 +0200
Subject: [PATCH] net: phy: realtek: merge the drivers for internal NBase-T
PHY's
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The Realtek RTL8125/RTL8126 NBase-T MAC/PHY chips have internal PHY's
which are register-compatible, at least for the registers we use here.
So let's use just one PHY driver to support all of them.
These internal PHY's exist also as external C45 PHY's, but on the
internal PHY's no access to MMD registers is possible. This can be
used to differentiate between the internal and external version.
As a side effect the drivers for two now external-only drivers don't
require read_mmd/write_mmd hooks any longer.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Link: https://patch.msgid.link/c57081a6-811f-4571-ab35-34f4ca6de9af@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Upstream: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=f87a17ed3b51fba4dfdd8f8b643b5423a85fc551
Signed-off-by: Jan Čermák <sairon@sairon.cz>
---
drivers/net/phy/realtek.c | 53 +++++++++++++++++++++++++++++++--------
1 file changed, 43 insertions(+), 10 deletions(-)
diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
index 166f6a7283731..830a0d337de5d 100644
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -92,6 +92,7 @@
#define RTL_GENERIC_PHYID 0x001cc800
#define RTL_8211FVD_PHYID 0x001cc878
+#define RTL_8221B 0x001cc840
#define RTL_8221B_VB_CG 0x001cc849
#define RTL_8221B_VN_CG 0x001cc84a
#define RTL_8251B 0x001cc862
@@ -1040,6 +1041,23 @@ static bool rtlgen_supports_2_5gbps(struct phy_device *phydev)
return val >= 0 && val & MDIO_PMA_SPEED_2_5G;
}
+/* On internal PHY's MMD reads over C22 always return 0.
+ * Check a MMD register which is known to be non-zero.
+ */
+static bool rtlgen_supports_mmd(struct phy_device *phydev)
+{
+ int val;
+
+ phy_lock_mdio_bus(phydev);
+ __phy_write(phydev, MII_MMD_CTRL, MDIO_MMD_PCS);
+ __phy_write(phydev, MII_MMD_DATA, MDIO_PCS_EEE_ABLE);
+ __phy_write(phydev, MII_MMD_CTRL, MDIO_MMD_PCS | MII_MMD_CTRL_NOINCR);
+ val = __phy_read(phydev, MII_MMD_DATA);
+ phy_unlock_mdio_bus(phydev);
+
+ return val > 0;
+}
+
static int rtlgen_match_phy_device(struct phy_device *phydev)
{
return phydev->phy_id == RTL_GENERIC_PHYID &&
@@ -1049,7 +1067,8 @@ static int rtlgen_match_phy_device(struct phy_device *phydev)
static int rtl8226_match_phy_device(struct phy_device *phydev)
{
return phydev->phy_id == RTL_GENERIC_PHYID &&
- rtlgen_supports_2_5gbps(phydev);
+ rtlgen_supports_2_5gbps(phydev) &&
+ rtlgen_supports_mmd(phydev);
}
static int rtlgen_is_c45_match(struct phy_device *phydev, unsigned int id,
@@ -1061,6 +1080,11 @@ static int rtlgen_is_c45_match(struct phy_device *phydev, unsigned int id,
return !is_c45 && (id == phydev->phy_id);
}
+static int rtl8221b_match_phy_device(struct phy_device *phydev)
+{
+ return phydev->phy_id == RTL_8221B && rtlgen_supports_mmd(phydev);
+}
+
static int rtl8221b_vb_cg_c22_match_phy_device(struct phy_device *phydev)
{
return rtlgen_is_c45_match(phydev, RTL_8221B_VB_CG, false);
@@ -1081,9 +1105,21 @@ static int rtl8221b_vn_cg_c45_match_phy_device(struct phy_device *phydev)
return rtlgen_is_c45_match(phydev, RTL_8221B_VN_CG, true);
}
-static int rtl8251b_c22_match_phy_device(struct phy_device *phydev)
+static int rtl_internal_nbaset_match_phy_device(struct phy_device *phydev)
{
- return rtlgen_is_c45_match(phydev, RTL_8251B, false);
+ if (phydev->is_c45)
+ return false;
+
+ switch (phydev->phy_id) {
+ case RTL_GENERIC_PHYID:
+ case RTL_8221B:
+ case RTL_8251B:
+ break;
+ default:
+ return false;
+ }
+
+ return rtlgen_supports_2_5gbps(phydev) && !rtlgen_supports_mmd(phydev);
}
static int rtl8251b_c45_match_phy_device(struct phy_device *phydev)
@@ -1345,10 +1381,8 @@ static struct phy_driver realtek_drvs[] = {
.resume = rtlgen_resume,
.read_page = rtl821x_read_page,
.write_page = rtl821x_write_page,
- .read_mmd = rtl822x_read_mmd,
- .write_mmd = rtl822x_write_mmd,
}, {
- PHY_ID_MATCH_EXACT(0x001cc840),
+ .match_phy_device = rtl8221b_match_phy_device,
.name = "RTL8226B_RTL8221B 2.5Gbps PHY",
.get_features = rtl822x_get_features,
.config_aneg = rtl822x_config_aneg,
@@ -1359,8 +1393,6 @@ static struct phy_driver realtek_drvs[] = {
.resume = rtlgen_resume,
.read_page = rtl821x_read_page,
.write_page = rtl821x_write_page,
- .read_mmd = rtl822x_read_mmd,
- .write_mmd = rtl822x_write_mmd,
}, {
PHY_ID_MATCH_EXACT(0x001cc838),
.name = "RTL8226-CG 2.5Gbps PHY",
@@ -1438,8 +1470,9 @@ static struct phy_driver realtek_drvs[] = {
.read_page = rtl821x_read_page,
.write_page = rtl821x_write_page,
}, {
- .match_phy_device = rtl8251b_c22_match_phy_device,
- .name = "RTL8126A-internal 5Gbps PHY",
+ .match_phy_device = rtl_internal_nbaset_match_phy_device,
+ .name = "Realtek Internal NBASE-T PHY",
+ .flags = PHY_IS_INTERNAL,
.get_features = rtl822x_get_features,
.config_aneg = rtl822x_config_aneg,
.read_status = rtl822x_read_status,

View File

@ -0,0 +1,36 @@
From 7ab842c714924784cae4b6ab229997905b096b4f Mon Sep 17 00:00:00 2001
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Thu, 17 Oct 2024 18:01:13 +0200
Subject: [PATCH] net: phy: realtek: add RTL8125D-internal PHY
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The first boards show up with Realtek's RTL8125D. This MAC/PHY chip
comes with an integrated 2.5Gbps PHY with ID 0x001cc841. It's not
clear yet whether there's an external version of this PHY and how
Realtek calls it, therefore use the numeric id for now.
Link: https://lore.kernel.org/netdev/2ada65e1-5dfa-456c-9334-2bc51272e9da@gmail.com/T/
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Message-ID: <7d2924de-053b-44d2-a479-870dc3878170@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Upstream: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8989bad541133c43550bff2b80edbe37b8fb9659
Signed-off-by: Jan Čermák <sairon@sairon.cz>
---
drivers/net/phy/realtek.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
index 830a0d337de5d..8ce5705af69c5 100644
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -1114,6 +1114,7 @@ static int rtl_internal_nbaset_match_phy_device(struct phy_device *phydev)
case RTL_GENERIC_PHYID:
case RTL_8221B:
case RTL_8251B:
+ case 0x001cc841:
break;
default:
return false;

View File

@ -3,7 +3,6 @@
function hassos_pre_image() {
local BOOT_DATA="$(path_boot_dir)"
local SPL_IMG="$(path_spl_img)"
cp -t "${BOOT_DATA}" \
"${BINARIES_DIR}/boot.scr" \
@ -13,14 +12,7 @@ function hassos_pre_image() {
mkdir -p "${BOOT_DATA}/overlays"
cp "${BINARIES_DIR}"/*.dtbo "${BOOT_DATA}/overlays/"
cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
echo "console=tty1" > "${BOOT_DATA}/cmdline.txt"
# SPL
create_spl_image
dd if="${BINARIES_DIR}/idbloader.img" of="${SPL_IMG}" conv=notrunc bs=512 seek=64
dd if="${BINARIES_DIR}/u-boot-dtb.img" of="${SPL_IMG}" conv=notrunc bs=512 seek=8192
cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
}

View File

@ -0,0 +1 @@
console=tty0

View File

@ -0,0 +1,13 @@
image spl.img {
size = ${BOOT_SPL_SIZE}
hdimage {
partition-table-type = "none"
fill = "yes"
}
partition uboot {
offset = 32k
image = "u-boot-rockchip.bin"
}
}

View File

@ -28,7 +28,6 @@ CONFIG_CGROUP_BPF=y
CONFIG_NAMESPACES=y
CONFIG_USER_NS=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y
CONFIG_PROFILING=y
CONFIG_ARCH_ROCKCHIP=y
CONFIG_ARM_THUMBEE=y
@ -72,7 +71,6 @@ CONFIG_ZSWAP_DEFAULT_ON=y
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4=y
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y
CONFIG_ZBUD=y
CONFIG_Z3FOLD=y
# CONFIG_COMPAT_BRK is not set
CONFIG_KSM=y
CONFIG_CMA=y
@ -183,7 +181,6 @@ CONFIG_NFT_MASQ=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_NAT=m
CONFIG_NFT_TUNNEL=m
CONFIG_NFT_OBJREF=m
CONFIG_NFT_QUEUE=m
CONFIG_NFT_QUOTA=m
CONFIG_NFT_REJECT=m
@ -219,7 +216,6 @@ CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_TEE=m
CONFIG_NETFILTER_XT_TARGET_TPROXY=m
CONFIG_NETFILTER_XT_TARGET_SECMARK=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
CONFIG_NETFILTER_XT_MATCH_BPF=m
@ -319,7 +315,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
@ -397,15 +392,10 @@ CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m
CONFIG_IPDDP=m
CONFIG_IPDDP_ENCAP=y
CONFIG_6LOWPAN=m
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_MULTIQ=m
CONFIG_NET_SCH_RED=m
@ -416,7 +406,6 @@ CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
@ -458,7 +447,6 @@ CONFIG_NET_ACT_GACT=m
CONFIG_GACT_PROB=y
CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_SAMPLE=m
CONFIG_NET_ACT_IPT=m
CONFIG_NET_ACT_NAT=m
CONFIG_NET_ACT_PEDIT=m
CONFIG_NET_ACT_SIMP=m
@ -481,14 +469,13 @@ CONFIG_NETLINK_DIAG=m
CONFIG_HSR=m
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CAN=m
CONFIG_BT=y
CONFIG_BT=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
CONFIG_BT_6LOWPAN=m
CONFIG_BT_LEDS=y
CONFIG_BT_HCIBTUSB=m
@ -496,8 +483,8 @@ CONFIG_BT_HCIBTSDIO=y
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_ATH3K=y
CONFIG_BT_HCIUART_RTL=y
CONFIG_BT_HCIBFUSB=y
CONFIG_BT_HCIVHCI=y
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIVHCI=m
CONFIG_BT_MRVL=y
CONFIG_BT_MRVL_SDIO=y
CONFIG_BT_MTKUART=m
@ -656,9 +643,6 @@ CONFIG_ATH10K_USB=m
CONFIG_WCN36XX=m
CONFIG_AT76C50X_USB=m
CONFIG_BRCMFMAC=m
CONFIG_HOSTAP=y
CONFIG_HOSTAP_FIRMWARE=y
CONFIG_HOSTAP_FIRMWARE_NVRAM=y
# CONFIG_WLAN_VENDOR_MARVELL is not set
CONFIG_MT7601U=m
# CONFIG_WLAN_VENDOR_MICROCHIP is not set
@ -676,9 +660,7 @@ CONFIG_RTL8192CU=m
CONFIG_RTL8XXXU=m
# CONFIG_WLAN_VENDOR_ST is not set
# CONFIG_WLAN_VENDOR_TI is not set
CONFIG_USB_ZD1201=m
CONFIG_ZD1211RW=m
CONFIG_USB_NET_RNDIS_WLAN=m
CONFIG_NET_FAILOVER=m
CONFIG_INPUT_MATRIXKMAP=y
CONFIG_INPUT_JOYDEV=y
@ -849,7 +831,6 @@ CONFIG_SENSORS_SMSC47B397=m
CONFIG_SENSORS_SCH5627=m
CONFIG_SENSORS_SCH5636=m
CONFIG_SENSORS_STTS751=m
CONFIG_SENSORS_SMM665=m
CONFIG_SENSORS_ADC128D818=m
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
@ -884,7 +865,7 @@ CONFIG_DW_WATCHDOG=m
CONFIG_MFD_MADERA=m
CONFIG_MFD_MADERA_I2C=m
CONFIG_MFD_CPCAP=m
CONFIG_MFD_RK808=y
CONFIG_MFD_RK8XX_I2C=y
CONFIG_MFD_TPS6586X=y
CONFIG_MFD_ROHM_BD718XX=m
CONFIG_REGULATOR_FIXED_VOLTAGE=y
@ -972,7 +953,6 @@ CONFIG_VIDEO_USBTV=m
CONFIG_USB_VIDEO_CLASS=m
CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_PVRUSB2=m
CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_AU0828=m
CONFIG_VIDEO_CX231XX=m
CONFIG_VIDEO_CX231XX_ALSA=m
@ -1023,26 +1003,6 @@ CONFIG_VIDEO_EM28XX=m
CONFIG_VIDEO_EM28XX_V4L2=m
CONFIG_VIDEO_EM28XX_ALSA=m
CONFIG_VIDEO_EM28XX_DVB=m
CONFIG_USB_AIRSPY=m
CONFIG_USB_HACKRF=m
CONFIG_USB_MSI2500=m
CONFIG_RADIO_SAA7706H=m
CONFIG_RADIO_SHARK=m
CONFIG_RADIO_SHARK2=m
CONFIG_RADIO_SI4713=m
CONFIG_RADIO_TEA5764=m
CONFIG_RADIO_TEF6862=m
CONFIG_RADIO_WL1273=m
CONFIG_USB_DSBR=m
CONFIG_USB_KEENE=m
CONFIG_USB_MA901=m
CONFIG_USB_MR800=m
CONFIG_USB_RAREMONO=m
CONFIG_RADIO_SI470X=m
CONFIG_USB_SI470X=m
CONFIG_I2C_SI470X=m
CONFIG_USB_SI4713=m
CONFIG_PLATFORM_SI4713=m
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_DVB_PLATFORM_DRIVERS=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
@ -1051,21 +1011,14 @@ CONFIG_DVB_C8SECTPFE=m
CONFIG_VIDEO_XILINX=m
CONFIG_VIDEO_XILINX_TPG=m
CONFIG_SMS_SDIO_DRV=m
CONFIG_V4L_TEST_DRIVERS=y
CONFIG_VIDEO_VIM2M=m
CONFIG_VIDEO_VICODEC=m
CONFIG_VIDEO_VIVID=m
CONFIG_SMS_SIANO_DEBUGFS=y
CONFIG_VIDEO_IMX274=m
CONFIG_VIDEO_MT9M032=m
CONFIG_VIDEO_MT9M111=m
CONFIG_VIDEO_MT9P031=m
CONFIG_VIDEO_MT9T001=m
CONFIG_VIDEO_MT9T112=m
CONFIG_VIDEO_MT9V011=m
CONFIG_VIDEO_MT9V032=m
CONFIG_VIDEO_MT9V111=m
CONFIG_VIDEO_NOON010PC30=m
CONFIG_VIDEO_OV13858=m
CONFIG_VIDEO_OV2640=m
CONFIG_VIDEO_OV2659=m
@ -1085,14 +1038,9 @@ CONFIG_VIDEO_OV7740=m
CONFIG_VIDEO_OV9650=m
CONFIG_VIDEO_RJ54N1=m
CONFIG_VIDEO_S5C73M3=m
CONFIG_VIDEO_S5K4ECGX=m
CONFIG_VIDEO_S5K5BAF=m
CONFIG_VIDEO_S5K6A3=m
CONFIG_VIDEO_S5K6AA=m
CONFIG_VIDEO_SR030PC30=m
CONFIG_VIDEO_VS6624=m
CONFIG_VIDEO_ET8EK8=m
CONFIG_VIDEO_M5MOLS=m
CONFIG_VIDEO_AK7375=m
CONFIG_VIDEO_DW9807_VCM=m
CONFIG_VIDEO_ADP1653=m
@ -1129,7 +1077,6 @@ CONFIG_VIDEO_TW9903=m
CONFIG_VIDEO_TW9906=m
CONFIG_VIDEO_VPX3220=m
CONFIG_VIDEO_SAA717X=m
CONFIG_VIDEO_AD9389B=m
CONFIG_VIDEO_ADV7170=m
CONFIG_VIDEO_ADV7175=m
CONFIG_VIDEO_ADV7343=m
@ -1141,7 +1088,6 @@ CONFIG_VIDEO_SAA7185=m
CONFIG_VIDEO_THS8200=m
CONFIG_VIDEO_UPD64031A=m
CONFIG_VIDEO_UPD64083=m
CONFIG_SDR_MAX2175=m
CONFIG_VIDEO_I2C=m
CONFIG_VIDEO_M52790=m
CONFIG_VIDEO_THS7303=m
@ -1374,7 +1320,6 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_BACKLIGHT=y
CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_ACTIVITY=y
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_LEDS_TRIGGER_TRANSIENT=y
CONFIG_RTC_CLASS=y
@ -1432,7 +1377,6 @@ CONFIG_PL330_DMA=y
CONFIG_STAGING=y
CONFIG_RTL8723BS=m
CONFIG_R8712U=m
CONFIG_R8188EU=m
CONFIG_FB_TFT=m
CONFIG_FB_TFT_AGM1264K_FL=m
CONFIG_FB_TFT_BD663474=m
@ -1537,13 +1481,11 @@ CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
CONFIG_AUTOFS4_FS=y
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_OVERLAY_FS=y
CONFIG_FSCACHE=y
CONFIG_FSCACHE_STATS=y
CONFIG_CACHEFILES=y
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
@ -1551,14 +1493,13 @@ CONFIG_UDF_FS=m
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_NTFS_FS=m
CONFIG_NTFS_RW=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_ECRYPT_FS=m
CONFIG_HFS_FS=m
CONFIG_HFSPLUS_FS=m
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_DECOMP_MULTI=y
CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
@ -1566,8 +1507,6 @@ CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
CONFIG_SQUASHFS_EMBEDDED=y
CONFIG_PSTORE=y
CONFIG_PSTORE_DEFLATE_COMPRESS=m
CONFIG_PSTORE_LZ4HC_COMPRESS=m
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_RAM=y
CONFIG_NFS_FS=y
@ -1577,7 +1516,6 @@ CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_ROOT_NFS=y
CONFIG_NFS_FSCACHE=y
CONFIG_NFSD=m
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
@ -1603,7 +1541,6 @@ CONFIG_SECURITY=y
CONFIG_SECURITY_APPARMOR=y
CONFIG_SECURITY_YAMA=y
CONFIG_LSM="apparmor"
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_PCRYPT=m
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_DH=m
@ -1622,7 +1559,6 @@ CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_CHACHA20=m
CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_KEYWRAP=m
CONFIG_CRYPTO_LRW=m
@ -1634,7 +1570,7 @@ CONFIG_CRYPTO_GHASH=y
CONFIG_CRYPTO_MD4=y
CONFIG_CRYPTO_POLY1305=m
CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA3=y
CONFIG_CRYPTO_VMAC=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_XCBC=m
@ -1645,10 +1581,6 @@ CONFIG_CRYPTO_ZSTD=m
CONFIG_CRYPTO_ANSI_CPRNG=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
CONFIG_CRYPTO_GHASH_ARM_CE=m
CONFIG_CRYPTO_SHA1_ARM_NEON=m
CONFIG_CRYPTO_SHA1_ARM_CE=m
@ -1674,7 +1606,6 @@ CONFIG_DETECT_HUNG_TASK=y
CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
CONFIG_SCHEDSTATS=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_CREDENTIALS=y
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_TRACE is not set
CONFIG_FUNCTION_TRACER=y

View File

@ -3,7 +3,7 @@ BOARD_NAME="Asus TinkerBoard"
CHASSIS=embedded
BOOTLOADER=uboot
KERNEL_FILE=zImage
BOOT_SYS=hybrid
PARTITION_TABLE_TYPE=hybrid
BOOT_SIZE=24M
BOOT_SPL=true
BOOT_SPL_SIZE=8M

View File

@ -0,0 +1,7 @@
partition spl {
size = ${BOOT_SPL_SIZE}
image = "spl.img"
in-partition-table = "no"
offset = 0
holes = {"(0; 17k)"}
}

View File

@ -1,5 +1,4 @@
From 3553f8a938dbb498aa1846a37ea343b7f53739da Mon Sep 17 00:00:00 2001
Message-Id: <3553f8a938dbb498aa1846a37ea343b7f53739da.1676488094.git.stefan@agner.ch>
From 675fbbc309e4f7c805cf4fbd7c463cfc8308b54e Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Wed, 17 Feb 2021 19:55:41 +0100
Subject: [PATCH] Revert "ARM: dts: rockchip: use DMA channels for UARTs for
@ -7,14 +6,14 @@ Subject: [PATCH] Revert "ARM: dts: rockchip: use DMA channels for UARTs for
This reverts commit 3425fe335c29310f6628faf9a7947d07f32d8962.
---
arch/arm/boot/dts/rk3288.dtsi | 8 --------
arch/arm/boot/dts/rockchip/rk3288.dtsi | 8 --------
1 file changed, 8 deletions(-)
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 487b0e03d4b4..1569b1824c89 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -378,8 +378,6 @@ uart0: serial@ff180000 {
diff --git a/arch/arm/boot/dts/rockchip/rk3288.dtsi b/arch/arm/boot/dts/rockchip/rk3288.dtsi
index 3f1d640afafae..becf3abd8367f 100644
--- a/arch/arm/boot/dts/rockchip/rk3288.dtsi
+++ b/arch/arm/boot/dts/rockchip/rk3288.dtsi
@@ -387,8 +387,6 @@ uart0: serial@ff180000 {
reg-io-width = <4>;
clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
clock-names = "baudclk", "apb_pclk";
@ -23,7 +22,7 @@ index 487b0e03d4b4..1569b1824c89 100644
pinctrl-names = "default";
pinctrl-0 = <&uart0_xfer>;
status = "disabled";
@@ -393,8 +391,6 @@ uart1: serial@ff190000 {
@@ -402,8 +400,6 @@ uart1: serial@ff190000 {
reg-io-width = <4>;
clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
clock-names = "baudclk", "apb_pclk";
@ -32,7 +31,7 @@ index 487b0e03d4b4..1569b1824c89 100644
pinctrl-names = "default";
pinctrl-0 = <&uart1_xfer>;
status = "disabled";
@@ -421,8 +417,6 @@ uart3: serial@ff1b0000 {
@@ -430,8 +426,6 @@ uart3: serial@ff1b0000 {
reg-io-width = <4>;
clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
clock-names = "baudclk", "apb_pclk";
@ -41,7 +40,7 @@ index 487b0e03d4b4..1569b1824c89 100644
pinctrl-names = "default";
pinctrl-0 = <&uart3_xfer>;
status = "disabled";
@@ -436,8 +430,6 @@ uart4: serial@ff1c0000 {
@@ -445,8 +439,6 @@ uart4: serial@ff1c0000 {
reg-io-width = <4>;
clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
clock-names = "baudclk", "apb_pclk";
@ -50,6 +49,3 @@ index 487b0e03d4b4..1569b1824c89 100644
pinctrl-names = "default";
pinctrl-0 = <&uart4_xfer>;
status = "disabled";
--
2.39.1

View File

@ -1,7 +1,4 @@
From 695638c05c0bb6f7bcc65e172dd132b3aa280b47 Mon Sep 17 00:00:00 2001
Message-Id: <695638c05c0bb6f7bcc65e172dd132b3aa280b47.1676488094.git.stefan@agner.ch>
In-Reply-To: <3553f8a938dbb498aa1846a37ea343b7f53739da.1676488094.git.stefan@agner.ch>
References: <3553f8a938dbb498aa1846a37ea343b7f53739da.1676488094.git.stefan@agner.ch>
From 37b4467356113f17f55066aef54db55b64daa030 Mon Sep 17 00:00:00 2001
From: "Miouyouyou (Myy)" <myy@miouyouyou.fr>
Date: Mon, 5 Nov 2018 22:15:14 +0100
Subject: [PATCH] ARM: DTS: rk3288-tinker: Defining the SPI interface
@ -17,13 +14,13 @@ Signed-off-by: Miouyouyou (Myy) <myy@miouyouyou.fr>
[move change to rk3288-tinker.dtsi]
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
arch/arm/boot/dts/rk3288-tinker.dtsi | 19 +++++++++++++++++++
arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi
index 09618bb7d872..30430d2e64b9 100644
--- a/arch/arm/boot/dts/rk3288-tinker.dtsi
+++ b/arch/arm/boot/dts/rk3288-tinker.dtsi
diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
index 09618bb7d872c..30430d2e64b93 100644
--- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
+++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
@@ -483,6 +483,25 @@ &sdio0 {
status = "okay";
};
@ -50,6 +47,3 @@ index 09618bb7d872..30430d2e64b9 100644
&tsadc {
rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
--
2.39.1

View File

@ -1,7 +1,4 @@
From d04122215cb56b57458e05b475e41744b8126533 Mon Sep 17 00:00:00 2001
Message-Id: <d04122215cb56b57458e05b475e41744b8126533.1676488094.git.stefan@agner.ch>
In-Reply-To: <3553f8a938dbb498aa1846a37ea343b7f53739da.1676488094.git.stefan@agner.ch>
References: <3553f8a938dbb498aa1846a37ea343b7f53739da.1676488094.git.stefan@agner.ch>
From 1a15fc7f6a241895a31b00c1f324d358d408a610 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Fri, 4 Sep 2020 21:57:55 +0200
Subject: [PATCH] ARM: dts: rockchip: enable I2C1/4 on rk3288-tinker
@ -10,13 +7,13 @@ Enable I2C devices which are accessible via 40-pin header.
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
arch/arm/boot/dts/rk3288-tinker.dtsi | 8 ++++++++
arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi
index 30430d2e64b9..395afc2b2283 100644
--- a/arch/arm/boot/dts/rk3288-tinker.dtsi
+++ b/arch/arm/boot/dts/rk3288-tinker.dtsi
diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
index 30430d2e64b93..395afc2b2283c 100644
--- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
+++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
@@ -342,10 +342,18 @@ regulator-state-mem {
};
};
@ -36,6 +33,3 @@ index 30430d2e64b9..395afc2b2283 100644
&i2c5 {
status = "okay";
};
--
2.39.1

View File

@ -1,7 +1,4 @@
From 7d37754f29c379c5066c6abf38c8d01d654b1613 Mon Sep 17 00:00:00 2001
Message-Id: <7d37754f29c379c5066c6abf38c8d01d654b1613.1676488094.git.stefan@agner.ch>
In-Reply-To: <3553f8a938dbb498aa1846a37ea343b7f53739da.1676488094.git.stefan@agner.ch>
References: <3553f8a938dbb498aa1846a37ea343b7f53739da.1676488094.git.stefan@agner.ch>
From d6c44c231fc4518ad69bb7870a193bb10c563f2a Mon Sep 17 00:00:00 2001
From: Myy Miouyouyou <myy@miouyouyou.fr>
Date: Thu, 19 Oct 2017 21:24:47 +0200
Subject: [PATCH] RK3288: DTSI: rk3288.dtsi: Add missing SPI2 pinctrl
@ -13,14 +10,14 @@ This patch is taken from the patches provided by the ARMbian team.
Signed-off-by: Myy Miouyouyou <myy@miouyouyou.fr>
---
arch/arm/boot/dts/rk3288.dtsi | 2 +-
arch/arm/boot/dts/rockchip/rk3288.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 1569b1824c89..478fd1bb85df 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -311,7 +311,7 @@ spi2: spi@ff130000 {
diff --git a/arch/arm/boot/dts/rockchip/rk3288.dtsi b/arch/arm/boot/dts/rockchip/rk3288.dtsi
index becf3abd8367f..e78fa883b9841 100644
--- a/arch/arm/boot/dts/rockchip/rk3288.dtsi
+++ b/arch/arm/boot/dts/rockchip/rk3288.dtsi
@@ -320,7 +320,7 @@ spi2: spi@ff130000 {
dma-names = "tx", "rx";
interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
@ -29,6 +26,3 @@ index 1569b1824c89..478fd1bb85df 100644
reg = <0x0 0xff130000 0x0 0x1000>;
#address-cells = <1>;
#size-cells = <0>;
--
2.39.1

View File

@ -1,7 +1,4 @@
From 05fde1d1dbbe7805a58a8c445b8fb19e0df59826 Mon Sep 17 00:00:00 2001
Message-Id: <05fde1d1dbbe7805a58a8c445b8fb19e0df59826.1676488094.git.stefan@agner.ch>
In-Reply-To: <3553f8a938dbb498aa1846a37ea343b7f53739da.1676488094.git.stefan@agner.ch>
References: <3553f8a938dbb498aa1846a37ea343b7f53739da.1676488094.git.stefan@agner.ch>
From dfb0232e9fae1267d04247aaf171739038c1659e Mon Sep 17 00:00:00 2001
From: "Miouyouyou (Myy)" <myy@miouyouyou.fr>
Date: Mon, 5 Nov 2018 20:16:05 +0100
Subject: [PATCH] ARM: DTSI: rk3288-tinker: Improving the CPU max voltage
@ -10,13 +7,13 @@ Taken from the various patches provided by @TonyMac32 .
Signed-off-by: Miouyouyou (Myy) <myy@miouyouyou.fr>
---
arch/arm/boot/dts/rk3288-tinker.dtsi | 2 +-
arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi
index 395afc2b2283..c7e79e594720 100644
--- a/arch/arm/boot/dts/rk3288-tinker.dtsi
+++ b/arch/arm/boot/dts/rk3288-tinker.dtsi
diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
index 395afc2b2283c..c7e79e5947206 100644
--- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
+++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
@@ -184,7 +184,7 @@ vdd_cpu: DCDC_REG1 {
regulator-always-on;
regulator-boot-on;
@ -26,6 +23,3 @@ index 395afc2b2283..c7e79e594720 100644
regulator-name = "vdd_arm";
regulator-ramp-delay = <6000>;
regulator-state-mem {
--
2.39.1

View File

@ -1,7 +1,4 @@
From 940d61e1e04929166d5a2bcbc1934aa931952ca5 Mon Sep 17 00:00:00 2001
Message-Id: <940d61e1e04929166d5a2bcbc1934aa931952ca5.1676488094.git.stefan@agner.ch>
In-Reply-To: <3553f8a938dbb498aa1846a37ea343b7f53739da.1676488094.git.stefan@agner.ch>
References: <3553f8a938dbb498aa1846a37ea343b7f53739da.1676488094.git.stefan@agner.ch>
From 4955695e410289df07258b00290d4028c3ac8fb1 Mon Sep 17 00:00:00 2001
From: Myy Miouyouyou <myy@miouyouyou.fr>
Date: Sun, 7 Jan 2018 01:52:44 +0100
Subject: [PATCH] drivers: mmc: dw-mci-rockchip: Handle ASUS Tinkerboard reboot
@ -24,7 +21,7 @@ Signed-off-by: Myy Miouyouyou <myy@miouyouyou.fr>
1 file changed, 66 insertions(+)
diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c
index 2a99f15f527f..181718374429 100644
index f96260fd143b4..fa779ce8fb661 100644
--- a/drivers/mmc/host/dw_mmc-rockchip.c
+++ b/drivers/mmc/host/dw_mmc-rockchip.c
@@ -12,6 +12,11 @@
@ -39,7 +36,7 @@ index 2a99f15f527f..181718374429 100644
#include "dw_mmc.h"
#include "dw_mmc-pltfm.h"
@@ -340,6 +345,66 @@ static const struct of_device_id dw_mci_rockchip_match[] = {
@@ -527,6 +532,66 @@ static const struct of_device_id dw_mci_rockchip_match[] = {
};
MODULE_DEVICE_TABLE(of, dw_mci_rockchip_match);
@ -106,7 +103,7 @@ index 2a99f15f527f..181718374429 100644
static int dw_mci_rockchip_probe(struct platform_device *pdev)
{
const struct dw_mci_drv_data *drv_data;
@@ -367,6 +432,7 @@ static int dw_mci_rockchip_probe(struct platform_device *pdev)
@@ -554,6 +619,7 @@ static int dw_mci_rockchip_probe(struct platform_device *pdev)
}
pm_runtime_put_autosuspend(&pdev->dev);
@ -114,6 +111,3 @@ index 2a99f15f527f..181718374429 100644
return 0;
}
--
2.39.1

View File

@ -1,7 +1,4 @@
From 479e2acb95c09b15382b3766391294790ebd200b Mon Sep 17 00:00:00 2001
Message-Id: <479e2acb95c09b15382b3766391294790ebd200b.1676488094.git.stefan@agner.ch>
In-Reply-To: <3553f8a938dbb498aa1846a37ea343b7f53739da.1676488094.git.stefan@agner.ch>
References: <3553f8a938dbb498aa1846a37ea343b7f53739da.1676488094.git.stefan@agner.ch>
From 74227462bbe9236dca234dd24cce4191fa71bdf9 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Tue, 10 May 2022 22:57:26 +0200
Subject: [PATCH] ARM: dts: rockchip: Add Bluetooth to rk3288-tinker
@ -11,13 +8,13 @@ for Realtek rtl8723bs Bluetooth device.
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
arch/arm/boot/dts/rk3288-tinker.dtsi | 26 ++++++++++++++++++++++++++
arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi | 26 +++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi
index c7e79e594720..5d261fae6e72 100644
--- a/arch/arm/boot/dts/rk3288-tinker.dtsi
+++ b/arch/arm/boot/dts/rk3288-tinker.dtsi
diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
index c7e79e5947206..5d261fae6e72a 100644
--- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
+++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
@@ -386,6 +386,20 @@ bl_en: bl-en {
};
};
@ -58,6 +55,3 @@ index c7e79e594720..5d261fae6e72 100644
};
&uart1 {
--
2.39.1

View File

@ -0,0 +1,32 @@
From eb29ab60a69353f355b3af58b06fff1a89d17992 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Wed, 10 Jan 2024 16:29:59 +0100
Subject: [PATCH] usb-audio: add ASUS TinkerBoard's ALC4040
Converted to git-series patch from the original plain git diff file
buildroot-external/board/asus/tinker/patches/linux/3001_Tinkerboard-4.19-audio.patch
Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
---
sound/usb/card.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/sound/usb/card.c b/sound/usb/card.c
index 9c411b82a218d..672136e25c81d 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c
@@ -533,6 +533,14 @@ static void usb_audio_make_shortname(struct usb_device *dev,
}
strim(card->shortname);
+
+ /* Tinker Board ALC4040 CODEC */
+
+ if(USB_ID_VENDOR(chip->usb_id) == 0x0bda &&
+ USB_ID_PRODUCT(chip->usb_id) == 0x481a) {
+ strlcat(card->shortname, " OnBoard", sizeof(card->shortname));
+ }
+
}
static void usb_audio_make_longname(struct usb_device *dev,

View File

@ -1,19 +0,0 @@
diff --git a/sound/usb/card.c b/sound/usb/card.c
index 2bfe4e80a..cea93aaf5 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c
@@ -382,6 +382,14 @@ static void usb_audio_make_shortname(struct usb_device *dev,
}
strim(card->shortname);
+
+ /* Tinker Board ALC4040 CODEC */
+
+ if(USB_ID_VENDOR(chip->usb_id) == 0x0bda &&
+ USB_ID_PRODUCT(chip->usb_id) == 0x481a) {
+ strlcat(card->shortname, " OnBoard", sizeof(card->shortname));
+ }
+
}
static void usb_audio_make_longname(struct usb_device *dev,

View File

@ -1,37 +0,0 @@
From 966cd1782632bc8279667955ec315e93c89495e6 Mon Sep 17 00:00:00 2001
Message-Id: <966cd1782632bc8279667955ec315e93c89495e6.1645627366.git.stefan@agner.ch>
From: Pascal Vizeli <pvizeli@syshack.ch>
Date: Fri, 24 Apr 2020 12:41:50 +0000
Subject: [PATCH 1/2] SPL: modify load address of U-Boot
Default load address of U-Boot is at sector 16384, which is where HAOS
has its first partition. Use 0x2000 (8192) instead.
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
configs/tinker-rk3288_defconfig | 1 +
configs/tinker-s-rk3288_defconfig | 1 +
2 files changed, 2 insertions(+)
diff --git a/configs/tinker-rk3288_defconfig b/configs/tinker-rk3288_defconfig
index a9c9a122f6..b839fdb570 100644
--- a/configs/tinker-rk3288_defconfig
+++ b/configs/tinker-rk3288_defconfig
@@ -92,3 +92,4 @@ CONFIG_VIDEO_ROCKCHIP=y
CONFIG_DISPLAY_ROCKCHIP_HDMI=y
CONFIG_CMD_DHRYSTONE=y
CONFIG_ERRNO_STR=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x2000
diff --git a/configs/tinker-s-rk3288_defconfig b/configs/tinker-s-rk3288_defconfig
index f367c9370f..c52b0753ec 100644
--- a/configs/tinker-s-rk3288_defconfig
+++ b/configs/tinker-s-rk3288_defconfig
@@ -94,3 +94,4 @@ CONFIG_DISPLAY_ROCKCHIP_HDMI=y
CONFIG_CONSOLE_SCROLL_LINES=10
CONFIG_CMD_DHRYSTONE=y
CONFIG_ERRNO_STR=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x2000
--
2.35.1

View File

@ -1,34 +1,30 @@
From 98674c65a6595e7ac554f7ec9d6f0228556756f6 Mon Sep 17 00:00:00 2001
Message-Id: <98674c65a6595e7ac554f7ec9d6f0228556756f6.1645627366.git.stefan@agner.ch>
In-Reply-To: <966cd1782632bc8279667955ec315e93c89495e6.1645627366.git.stefan@agner.ch>
References: <966cd1782632bc8279667955ec315e93c89495e6.1645627366.git.stefan@agner.ch>
From 78bd1a46cfc585773719963ce8e0a380e9676a93 Mon Sep 17 00:00:00 2001
From: Pascal Vizeli <pvizeli@syshack.ch>
Date: Fri, 24 Apr 2020 11:37:55 +0000
Subject: [PATCH 2/2] pmic: enable LDO2 vcc33_mipi at bootup
Subject: [PATCH] pmic: enable LDO2 vcc33_mipi at bootup
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
---
board/rockchip/tinker_rk3288/tinker-rk3288.c | 37 ++++++++++++++++++++
1 file changed, 37 insertions(+)
board/rockchip/tinker_rk3288/tinker-rk3288.c | 36 ++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/board/rockchip/tinker_rk3288/tinker-rk3288.c b/board/rockchip/tinker_rk3288/tinker-rk3288.c
index f85209c649..6fa1bb0c66 100644
index e966e9f201a..2944d8c084f 100644
--- a/board/rockchip/tinker_rk3288/tinker-rk3288.c
+++ b/board/rockchip/tinker_rk3288/tinker-rk3288.c
@@ -13,6 +13,7 @@
@@ -9,6 +9,7 @@
#include <init.h>
#include <net.h>
#include <netdev.h>
#include <asm/arch-rockchip/bootrom.h>
#include <asm/io.h>
+#include <power/regulator.h>
static int get_ethaddr_from_eeprom(u8 *addr)
{
@@ -48,3 +49,39 @@ int mmc_get_env_dev(void)
@@ -34,3 +35,38 @@ int rk3288_board_late_init(void)
return 1;
return 0;
}
+
+
+#ifdef CONFIG_DM_PMIC
+static int rockchip_set_regulator_on(const char *name, uint uv)
+{
@ -63,6 +59,3 @@ index f85209c649..6fa1bb0c66 100644
+ return 0;
+}
+#endif
--
2.35.1

View File

@ -23,8 +23,8 @@ test -n "${MACHINE_ID}" || setenv BOOT_CONDITION "systemd.condition-first-boot=t
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 systemd.machine_id=${MACHINE_ID} fsck.repair=yes ${BOOT_CONDITION}"
# HassOS system A/B
setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd rootfstype=squashfs ro rootwait"
setenv bootargs_b "root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 rootfstype=squashfs ro rootwait"
setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd ro rootwait"
setenv bootargs_b "root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 ro rootwait"
# Load environment from haos-config.txt
if test -e mmc ${devnum}:1 haos-config.txt; then

View File

@ -1,3 +1,6 @@
# CONFIG_USB_STORAGE is not set
# CONFIG_DOS_PARTITION is not set
CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_SPL_PAD_TO=0x3f8000
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x2000
# CONFIG_ENV_IS_IN_MMC is not set

View File

@ -117,7 +117,6 @@ CONFIG_NFT_MASQ=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_NAT=m
CONFIG_NFT_TUNNEL=m
CONFIG_NFT_OBJREF=m
CONFIG_NFT_QUOTA=m
CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
@ -229,10 +228,8 @@ CONFIG_PCIE_KIRIN=y
# CONFIG_PCI_MESON is not set
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_BRCMSTB_GISB_ARB=y
CONFIG_VEXPRESS_CONFIG=y
CONFIG_ARM_SCPI_PROTOCOL=y
CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
CONFIG_EFI_CAPSULE_LOADER=y
CONFIG_MTD=y
CONFIG_MTD_BLOCK=y
@ -257,8 +254,6 @@ CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_AHCI_PLATFORM=y
CONFIG_AHCI_CEVA=y
CONFIG_AHCI_XGENE=y
CONFIG_AHCI_QORIQ=y
CONFIG_SATA_SIL24=y
CONFIG_PATA_OF_PLATFORM=y
CONFIG_MD=y
@ -382,11 +377,9 @@ CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_OPTEE=m
CONFIG_TCG_TPM=y
CONFIG_TCG_TIS_I2C_INFINEON=y
# CONFIG_RANDOM_TRUST_CPU is not set
# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_MUX=y
CONFIG_I2C_MUX_PCA954x=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_I2C_GPIO=m
CONFIG_I2C_MESON=y
CONFIG_I2C_RK3X=y
@ -394,11 +387,9 @@ CONFIG_I2C_CROS_EC_TUNNEL=y
CONFIG_I2C_SLAVE=y
CONFIG_SPI=y
CONFIG_SPI_BITBANG=m
CONFIG_SPI_NXP_FLEXSPI=y
CONFIG_SPI_MESON_SPICC=m
CONFIG_SPI_MESON_SPIFC=m
CONFIG_SPI_PL022=y
CONFIG_SPI_ROCKCHIP=y
CONFIG_SPI_SPIDEV=m
CONFIG_SPMI=y
CONFIG_PINCTRL=y
@ -416,7 +407,6 @@ CONFIG_W1=y
CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_DS2482=m
CONFIG_W1_MASTER_GPIO=m
CONFIG_POWER_RESET_BRCMSTB=y
CONFIG_POWER_RESET_VEXPRESS=y
CONFIG_POWER_RESET_XGENE=y
CONFIG_POWER_RESET_SYSCON=y
@ -441,7 +431,7 @@ CONFIG_MFD_BD9571MWV=y
CONFIG_MFD_AXP20X_I2C=y
CONFIG_MFD_HI6421_PMIC=y
CONFIG_MFD_MAX77620=y
CONFIG_MFD_RK808=y
CONFIG_MFD_RK8XX_I2C=y
CONFIG_MFD_SEC_CORE=y
CONFIG_MFD_ROHM_BD718XX=y
CONFIG_REGULATOR=y
@ -533,7 +523,6 @@ CONFIG_VIDEO_USBTV=m
CONFIG_USB_VIDEO_CLASS=m
CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_PVRUSB2=m
CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_AU0828=m
CONFIG_VIDEO_CX231XX=m
CONFIG_VIDEO_CX231XX_ALSA=m
@ -549,13 +538,13 @@ CONFIG_DRM_MESON=m
CONFIG_DRM_PL111=m
CONFIG_DRM_LIMA=m
CONFIG_DRM_PANFROST=m
CONFIG_DRM_LEGACY=y
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_EFI=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_LP855X=m
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_HDA_INTEL=m
@ -569,13 +558,13 @@ CONFIG_SND_MESON_AXG_SOUND_CARD=y
CONFIG_SND_MESON_GX_SOUND_CARD=y
CONFIG_SND_MESON_G12A_TOHDMITX=y
CONFIG_SND_SOC_AK4613=m
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_DMIC=y
CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES7241=m
CONFIG_SND_SOC_MAX98357A=y
CONFIG_SND_SOC_PCM3168A_I2C=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
CONFIG_SND_SOC_SPDIF=m
CONFIG_SND_SOC_SPDIF=y
CONFIG_SND_SOC_TAS571X=m
CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_AUDIO_GRAPH_CARD=m
@ -673,7 +662,6 @@ CONFIG_VIRTIO_MMIO=y
CONFIG_XEN_GNTDEV=y
CONFIG_XEN_GRANT_DEV_ALLOC=y
CONFIG_STAGING=y
CONFIG_R8188EU=m
CONFIG_CHROME_PLATFORMS=y
CONFIG_CROS_EC=y
CONFIG_CROS_EC_I2C=y
@ -692,7 +680,6 @@ CONFIG_ARM_SMMU_V3=y
CONFIG_REMOTEPROC=y
CONFIG_RPMSG_QCOM_GLINK_RPM=y
CONFIG_MESON_CANVAS=y
CONFIG_SOC_BRCMSTB=y
CONFIG_SOC_TI=y
CONFIG_EXTCON_USB_GPIO=y
CONFIG_EXTCON_USBC_CROS_EC=y
@ -707,7 +694,6 @@ CONFIG_MPL3115=m
CONFIG_PWM=y
CONFIG_PWM_CROS_EC=m
CONFIG_PWM_MESON=y
CONFIG_PHY_XGENE=y
CONFIG_PHY_QCOM_USB_HS=y
CONFIG_PHY_SAMSUNG_USB2=y
CONFIG_HISI_PMU=y
@ -726,7 +712,7 @@ CONFIG_BTRFS_FS=m
CONFIG_FANOTIFY=y
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA=y
CONFIG_AUTOFS4_FS=y
CONFIG_AUTOFS_FS=y
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_OVERLAY_FS=y

View File

@ -1 +1 @@
console=tty0 console=ttyAML0,115200n8
console=ttyAML0,115200n8 console=tty0

View File

@ -3,9 +3,6 @@
function hassos_pre_image() {
local BOOT_DATA="$(path_boot_dir)"
local BL1="${BINARIES_DIR}/bl1.bin.hardkernel"
local UBOOT_GXBB="${BINARIES_DIR}/u-boot.gxbb"
local SPL_IMG="$(path_spl_img)"
cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr"
cp "${BINARIES_DIR}/meson-gxbb-odroidc2.dtb" "${BOOT_DATA}/meson-gxbb-odroidc2.dtb"
@ -14,13 +11,6 @@ function hassos_pre_image() {
cp "${BINARIES_DIR}"/*.dtbo "${BOOT_DATA}/overlays/"
cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
# SPL
create_spl_image
dd if="${BL1}" of="${SPL_IMG}" conv=notrunc bs=1 count=440
dd if="${BL1}" of="${SPL_IMG}" conv=notrunc bs=512 skip=1 seek=1
dd if="${UBOOT_GXBB}" of="${SPL_IMG}" conv=notrunc bs=512 seek=97
}

View File

@ -0,0 +1,20 @@
image spl.img {
size = ${BOOT_SPL_SIZE}
hdimage {
partition-table-type = "none"
fill = "yes"
}
partition bl1 {
in-partition-table = "no"
image = "bl1.bin.hardkernel"
offset = 0
}
partition u-boot {
in-partition-table = "no"
image = "u-boot.gxbb"
offset = 97s
}
}

View File

@ -3,7 +3,7 @@ BOARD_NAME="Hardkernel ODROID-C2"
CHASSIS=embedded
BOOTLOADER=uboot
KERNEL_FILE=Image
BOOT_SYS=mbr
PARTITION_TABLE_TYPE=mbr
BOOT_SIZE=24M
BOOT_SPL=true
BOOT_SPL_SIZE=8M

View File

@ -0,0 +1,8 @@
partition spl {
size = ${BOOT_SPL_SIZE}
image = "spl.img"
in-partition-table = "no"
offset = 0
holes = {"(440; 512)"}
}

View File

@ -25,8 +25,8 @@ test -n "${MACHINE_ID}" || setenv BOOT_CONDITION "systemd.condition-first-boot=t
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 systemd.machine_id=${MACHINE_ID} fsck.repair=yes ${BOOT_CONDITION}"
# HassOS system A/B
setenv bootargs_a "root=PARTUUID=48617373-06 rootfstype=squashfs ro rootwait"
setenv bootargs_b "root=PARTUUID=48617373-08 rootfstype=squashfs ro rootwait"
setenv bootargs_a "root=PARTUUID=48617373-06 ro rootwait"
setenv bootargs_b "root=PARTUUID=48617373-08 ro rootwait"
# Load environment from haos-config.txt
if test -e mmc ${devnum}:1 haos-config.txt; then

View File

@ -1 +1 @@
console=tty0 console=ttyAML0,115200n8
console=ttyAML0,115200n8 console=tty0

View File

@ -3,8 +3,6 @@
function hassos_pre_image() {
local BOOT_DATA="$(path_boot_dir)"
local UBOOT_SM1="${BINARIES_DIR}/u-boot.sm1"
local SPL_IMG="$(path_spl_img)"
cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr"
cp "${BINARIES_DIR}/meson-sm1-odroid-c4.dtb" "${BOOT_DATA}/meson-sm1-odroid-c4.dtb"
@ -13,11 +11,6 @@ function hassos_pre_image() {
cp "${BINARIES_DIR}"/*.dtbo "${BOOT_DATA}/overlays/"
cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
# SPL
create_spl_image
dd if="${UBOOT_SM1}" of="${SPL_IMG}" conv=notrunc bs=512 seek=1
}

View File

@ -0,0 +1,13 @@
image spl.img {
size = ${BOOT_SPL_SIZE}
hdimage {
partition-table-type = "none"
fill = "yes"
}
partition uboot {
offset = 512
image = "u-boot.sm1"
}
}

View File

@ -3,7 +3,7 @@ BOARD_NAME="Hardkernel ODROID-C4"
CHASSIS=embedded
BOOTLOADER=uboot
KERNEL_FILE=Image
BOOT_SYS=mbr
PARTITION_TABLE_TYPE=mbr
BOOT_SIZE=24M
BOOT_SPL=true
BOOT_SPL_SIZE=8M

View File

@ -0,0 +1,7 @@
partition spl {
size = ${BOOT_SPL_SIZE}
image = "spl.img"
in-partition-table = "no"
offset = 0
holes = {"(0; 512)"}
}

View File

@ -25,8 +25,8 @@ test -n "${MACHINE_ID}" || setenv BOOT_CONDITION "systemd.condition-first-boot=t
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 systemd.machine_id=${MACHINE_ID} clk_ignore_unused usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u ${BOOT_CONDITION}"
# HassOS system A/B
setenv bootargs_a "root=PARTUUID=48617373-06 rootfstype=squashfs ro rootwait"
setenv bootargs_b "root=PARTUUID=48617373-08 rootfstype=squashfs ro rootwait"
setenv bootargs_a "root=PARTUUID=48617373-06 ro rootwait"
setenv bootargs_b "root=PARTUUID=48617373-08 ro rootwait"
# Load environment from haos-config.txt
if test -e mmc ${devnum}:1 haos-config.txt; then

View File

@ -0,0 +1 @@
console=tty0

View File

@ -3,19 +3,12 @@
function hassos_pre_image() {
local BOOT_DATA="$(path_boot_dir)"
local SPL_IMG="$(path_spl_img)"
cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr"
cp "${BINARIES_DIR}"/*.dtb "${BOOT_DATA}/"
cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
# SPL
create_spl_image
dd if="${BINARIES_DIR}/idbloader.img" of="${SPL_IMG}" conv=notrunc bs=512 seek=64
dd if="${BINARIES_DIR}/u-boot.itb" of="${SPL_IMG}" conv=notrunc bs=512 seek=16384
}

View File

@ -0,0 +1,13 @@
image spl.img {
size = ${BOOT_SPL_SIZE}
hdimage {
partition-table-type = "none"
fill = "yes"
}
partition uboot {
offset = 32k
image = "u-boot-rockchip.bin"
}
}

View File

@ -3,7 +3,7 @@ BOARD_NAME="Hardkernel ODROID-M1"
CHASSIS=embedded
BOOTLOADER=uboot
KERNEL_FILE=Image
BOOT_SYS=gpt
PARTITION_TABLE_TYPE=hybrid
BOOT_SIZE=16M
BOOT_SPL=true
BOOT_SPL_SIZE=16M

View File

@ -0,0 +1,17 @@
partition spl {
size = ${BOOT_SPL_SIZE}
image = "spl.img"
in-partition-table = "no"
offset = 0
holes = {"(0; 17k)", "(8M; 16M)"}
}
partition uboot {
size = 8M
offset = 8M
# FIXME: hdd-image intended to use the following, but the next one
# is in the img because of the _fix_disk_spl_gpt function
# partition-type-uuid = "21686148-6449-6e6f-744e-656564454649"
partition-type-uuid = "e3c9e316-0b5c-4db8-817d-f92df00215ae"
# no image here - already contains data from spl.img
}

View File

@ -1,455 +0,0 @@
From d388735d551e09b00317a509859fca51776b9826 Mon Sep 17 00:00:00 2001
Message-ID: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
From: Dongjin Kim <tobetter@gmail.com>
Date: Fri, 30 Sep 2022 07:12:35 +0200
Subject: [PATCH] arm64: dts: rockchip: Add Hardkernel ODROID-M1 board
This patch is to add a device tree for new board Hardkernel ODROID-M1
based on Rockchip RK3568, includes basic peripherals -
uart/eMMC/uSD/i2c and on-board ethernet.
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
[aurelien@aurel32.net: addressed issues from initial review]
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Dan Johansen <strit@manjaro.org>
Link: https://lore.kernel.org/r/20220930051246.391614-3-aurelien@aurel32.net
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
arch/arm64/boot/dts/rockchip/Makefile | 1 +
.../boot/dts/rockchip/rk3568-odroid-m1.dts | 414 ++++++++++++++++++
2 files changed, 415 insertions(+)
create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
index 8c15593c0ca4..5dc1607b3ecf 100644
--- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -71,4 +71,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-roc-pc.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-soquartz-cm4.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-bpi-r2-pro.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-odroid-m1.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3a.dtb
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
new file mode 100644
index 000000000000..b3016437640b
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
@@ -0,0 +1,414 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2022 Hardkernel Co., Ltd.
+ *
+ */
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3568.dtsi"
+
+/ {
+ model = "Hardkernel ODROID-M1";
+ compatible = "rockchip,rk3568-odroid-m1", "rockchip,rk3568";
+
+ aliases {
+ ethernet0 = &gmac0;
+ i2c0 = &i2c3;
+ i2c3 = &i2c0;
+ mmc0 = &sdhci;
+ mmc1 = &sdmmc0;
+ serial0 = &uart1;
+ serial1 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial2:1500000n8";
+ };
+
+ dc_12v: dc-12v-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "dc_12v";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_power: led-0 {
+ gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_RED>;
+ default-state = "keep";
+ linux,default-trigger = "default-on";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_power_pin>;
+ };
+ led_work: led-1 {
+ gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
+ function = LED_FUNCTION_HEARTBEAT;
+ color = <LED_COLOR_ID_BLUE>;
+ linux,default-trigger = "heartbeat";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_work_pin>;
+ };
+ };
+
+ vcc3v3_sys: vcc3v3-sys-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc3v3_sys";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ vin-supply = <&dc_12v>;
+ };
+};
+
+&cpu0 {
+ cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+ cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+ cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+ cpu-supply = <&vdd_cpu>;
+};
+
+&gmac0 {
+ assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
+ assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>;
+ assigned-clock-rates = <0>, <125000000>;
+ clock_in_out = "output";
+ phy-handle = <&rgmii_phy0>;
+ phy-mode = "rgmii";
+ phy-supply = <&vcc3v3_sys>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&gmac0_miim
+ &gmac0_tx_bus2
+ &gmac0_rx_bus2
+ &gmac0_rgmii_clk
+ &gmac0_rgmii_bus>;
+ status = "okay";
+
+ tx_delay = <0x4f>;
+ rx_delay = <0x2d>;
+};
+
+&i2c0 {
+ status = "okay";
+
+ vdd_cpu: regulator@1c {
+ compatible = "tcs,tcs4525";
+ reg = <0x1c>;
+ fcs,suspend-voltage-selector = <1>;
+ regulator-name = "vdd_cpu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1150000>;
+ regulator-ramp-delay = <2300>;
+ vin-supply = <&vcc3v3_sys>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ rk809: pmic@20 {
+ compatible = "rockchip,rk809";
+ reg = <0x20>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+ #clock-cells = <1>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmic_int_l>;
+ rockchip,system-power-controller;
+ vcc1-supply = <&vcc3v3_sys>;
+ vcc2-supply = <&vcc3v3_sys>;
+ vcc3-supply = <&vcc3v3_sys>;
+ vcc4-supply = <&vcc3v3_sys>;
+ vcc5-supply = <&vcc3v3_sys>;
+ vcc6-supply = <&vcc3v3_sys>;
+ vcc7-supply = <&vcc3v3_sys>;
+ vcc8-supply = <&vcc3v3_sys>;
+ vcc9-supply = <&vcc3v3_sys>;
+ wakeup-source;
+
+ regulators {
+ vdd_logic: DCDC_REG1 {
+ regulator-name = "vdd_logic";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-init-microvolt = <900000>;
+ regulator-initial-mode = <0x2>;
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-ramp-delay = <6001>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdd_gpu: DCDC_REG2 {
+ regulator-name = "vdd_gpu";
+ regulator-always-on;
+ regulator-init-microvolt = <900000>;
+ regulator-initial-mode = <0x2>;
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-ramp-delay = <6001>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_ddr: DCDC_REG3 {
+ regulator-name = "vcc_ddr";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-initial-mode = <0x2>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
+ vdd_npu: DCDC_REG4 {
+ regulator-name = "vdd_npu";
+ regulator-init-microvolt = <900000>;
+ regulator-initial-mode = <0x2>;
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-ramp-delay = <6001>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_1v8: DCDC_REG5 {
+ regulator-name = "vcc_1v8";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdda0v9_image: LDO_REG1 {
+ regulator-name = "vdda0v9_image";
+ regulator-always-on;
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdda_0v9: LDO_REG2 {
+ regulator-name = "vdda_0v9";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdda0v9_pmu: LDO_REG3 {
+ regulator-name = "vdda0v9_pmu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <900000>;
+ };
+ };
+
+ vccio_acodec: LDO_REG4 {
+ regulator-name = "vccio_acodec";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vccio_sd: LDO_REG5 {
+ regulator-name = "vccio_sd";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc3v3_pmu: LDO_REG6 {
+ regulator-name = "vcc3v3_pmu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <3300000>;
+ };
+ };
+
+ vcca_1v8: LDO_REG7 {
+ regulator-name = "vcca_1v8";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcca1v8_pmu: LDO_REG8 {
+ regulator-name = "vcca1v8_pmu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1800000>;
+ };
+ };
+
+ vcca1v8_image: LDO_REG9 {
+ regulator-name = "vcca1v8_image";
+ regulator-always-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_3v3: SWITCH_REG1 {
+ regulator-name = "vcc_3v3";
+ regulator-always-on;
+ regulator-boot-on;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc3v3_sd: SWITCH_REG2 {
+ regulator-name = "vcc3v3_sd";
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+ };
+ };
+};
+
+&mdio0 {
+ rgmii_phy0: ethernet-phy@0 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0x0>;
+ reset-assert-us = <20000>;
+ reset-deassert-us = <100000>;
+ reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&pinctrl {
+ leds {
+ led_power_pin: led-power-pin {
+ rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ led_work_pin: led-work-pin {
+ rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ pmic {
+ pmic_int_l: pmic-int-l {
+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+};
+
+&pmu_io_domains {
+ pmuio1-supply = <&vcc3v3_pmu>;
+ pmuio2-supply = <&vcc3v3_pmu>;
+ vccio1-supply = <&vccio_acodec>;
+ vccio2-supply = <&vcc_1v8>;
+ vccio3-supply = <&vccio_sd>;
+ vccio4-supply = <&vcc_1v8>;
+ vccio5-supply = <&vcc_3v3>;
+ vccio6-supply = <&vcc_3v3>;
+ vccio7-supply = <&vcc_3v3>;
+ status = "okay";
+};
+
+&saradc {
+ vref-supply = <&vcca_1v8>;
+ status = "okay";
+};
+
+&sdhci {
+ bus-width = <8>;
+ max-frequency = <200000000>;
+ non-removable;
+ pinctrl-names = "default";
+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe &emmc_rstnout>;
+ vmmc-supply = <&vcc_3v3>;
+ vqmmc-supply = <&vcc_1v8>;
+ status = "okay";
+};
+
+&sdmmc0 {
+ bus-width = <4>;
+ cap-sd-highspeed;
+ cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+ disable-wp;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+ sd-uhs-sdr50;
+ vmmc-supply = <&vcc3v3_sd>;
+ vqmmc-supply = <&vccio_sd>;
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
--
2.41.0

View File

@ -1,38 +0,0 @@
From 24048c1753916bd983746542b16d19d2b399eeb7 Mon Sep 17 00:00:00 2001
Message-ID: <24048c1753916bd983746542b16d19d2b399eeb7.1688490481.git.stefan@agner.ch>
In-Reply-To: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
References: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Fri, 30 Sep 2022 07:12:36 +0200
Subject: [PATCH] arm64: dts: rockchip: add thermal support to ODROID-M1
Add the thermal nodes for the ODROID-M1.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Dan Johansen <strit@manjaro.org>
Link: https://lore.kernel.org/r/20220930051246.391614-4-aurelien@aurel32.net
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
index b3016437640b..112c65af3f55 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
@@ -409,6 +409,12 @@ &sdmmc0 {
status = "okay";
};
+&tsadc {
+ rockchip,hw-tshut-mode = <1>;
+ rockchip,hw-tshut-polarity = <0>;
+ status = "okay";
+};
+
&uart2 {
status = "okay";
};
--
2.41.0

View File

@ -1,103 +0,0 @@
From 982bb2beab8e38a7c0a365770be2ad9c5221a650 Mon Sep 17 00:00:00 2001
Message-ID: <982bb2beab8e38a7c0a365770be2ad9c5221a650.1688490481.git.stefan@agner.ch>
In-Reply-To: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
References: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Fri, 30 Sep 2022 07:12:37 +0200
Subject: [PATCH] arm64: dts: rockchip: Add NOR flash to ODROID-M1
Enable the Rockchip Serial Flash Controller for the ODROID-M1 and add
the corresponding SPI NOR flash entry. The SFC is used in dual I/O mode
and not quad I/O mode, as the FSPI_D2 pin is shared with the EMMC_RSTn
pin.
The partitions addresses and sizes are taken from the ODROID-M1
Partition Table page on the ODROID wiki.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Dan Johansen <strit@manjaro.org>
Link: https://lore.kernel.org/r/20220930051246.391614-5-aurelien@aurel32.net
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
.../boot/dts/rockchip/rk3568-odroid-m1.dts | 58 +++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
index 112c65af3f55..94e839c9afab 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
@@ -351,6 +351,20 @@ rgmii_phy0: ethernet-phy@0 {
};
&pinctrl {
+ fspi {
+ fspi_dual_io_pins: fspi-dual-io-pins {
+ rockchip,pins =
+ /* fspi_clk */
+ <1 RK_PD0 1 &pcfg_pull_none>,
+ /* fspi_cs0n */
+ <1 RK_PD3 1 &pcfg_pull_none>,
+ /* fspi_d0 */
+ <1 RK_PD1 1 &pcfg_pull_none>,
+ /* fspi_d1 */
+ <1 RK_PD2 1 &pcfg_pull_none>;
+ };
+ };
+
leds {
led_power_pin: led-power-pin {
rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
@@ -409,6 +423,50 @@ &sdmmc0 {
status = "okay";
};
+&sfc {
+ /* Dual I/O mode as the D2 pin conflicts with the eMMC */
+ pinctrl-0 = <&fspi_dual_io_pins>;
+ pinctrl-names = "default";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <100000000>;
+ spi-rx-bus-width = <2>;
+ spi-tx-bus-width = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "SPL";
+ reg = <0x0 0xe0000>;
+ };
+ partition@e0000 {
+ label = "U-Boot Env";
+ reg = <0xe0000 0x20000>;
+ };
+ partition@100000 {
+ label = "U-Boot";
+ reg = <0x100000 0x200000>;
+ };
+ partition@300000 {
+ label = "splash";
+ reg = <0x300000 0x100000>;
+ };
+ partition@400000 {
+ label = "Filesystem";
+ reg = <0x400000 0xc00000>;
+ };
+ };
+ };
+};
+
&tsadc {
rockchip,hw-tshut-mode = <1>;
rockchip,hw-tshut-polarity = <0>;
--
2.41.0

View File

@ -1,102 +0,0 @@
From ae25f92a09abb7dd16a9ad3b74e0c105b385f214 Mon Sep 17 00:00:00 2001
Message-ID: <ae25f92a09abb7dd16a9ad3b74e0c105b385f214.1688490481.git.stefan@agner.ch>
In-Reply-To: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
References: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Fri, 30 Sep 2022 07:12:38 +0200
Subject: [PATCH] arm64: dts: rockchip: Add analog audio on ODROID-M1
On the ODROID-M1, the I2S1 TDM controller is connected to the rk809
codec in I2S mode. It is used to provide a stereo headphones output and
a mono speaker output. A GPIO with an external pullup is used as an
headphone detection input.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Dan Johansen <strit@manjaro.org>
Link: https://lore.kernel.org/r/20220930051246.391614-6-aurelien@aurel32.net
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
.../boot/dts/rockchip/rk3568-odroid-m1.dts | 43 ++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
index 94e839c9afab..634c1bd80b4e 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
@@ -59,6 +59,31 @@ led_work: led-1 {
};
};
+ rk809-sound {
+ compatible = "simple-audio-card";
+ pinctrl-names = "default";
+ pinctrl-0 = <&hp_det_pin>;
+ simple-audio-card,name = "Analog RK817";
+ simple-audio-card,format = "i2s";
+ simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
+ simple-audio-card,mclk-fs = <256>;
+ simple-audio-card,widgets =
+ "Headphone", "Headphones",
+ "Speaker", "Speaker";
+ simple-audio-card,routing =
+ "Headphones", "HPOL",
+ "Headphones", "HPOR",
+ "Speaker", "SPKO";
+
+ simple-audio-card,cpu {
+ sound-dai = <&i2s1_8ch>;
+ };
+
+ simple-audio-card,codec {
+ sound-dai = <&rk809>;
+ };
+ };
+
vcc3v3_sys: vcc3v3-sys-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc3v3_sys";
@@ -131,10 +156,15 @@ rk809: pmic@20 {
reg = <0x20>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+ assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
+ assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
#clock-cells = <1>;
+ clock-names = "mclk";
+ clocks = <&cru I2S1_MCLKOUT_TX>;
pinctrl-names = "default";
- pinctrl-0 = <&pmic_int_l>;
+ pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>;
rockchip,system-power-controller;
+ #sound-dai-cells = <0>;
vcc1-supply = <&vcc3v3_sys>;
vcc2-supply = <&vcc3v3_sys>;
vcc3-supply = <&vcc3v3_sys>;
@@ -340,6 +370,11 @@ regulator-state-mem {
};
};
+&i2s1_8ch {
+ rockchip,trcm-sync-tx-only;
+ status = "okay";
+};
+
&mdio0 {
rgmii_phy0: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
@@ -379,6 +414,12 @@ pmic_int_l: pmic-int-l {
rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
+
+ rk809 {
+ hp_det_pin: hp-det-pin {
+ rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
};
&pmu_io_domains {
--
2.41.0

View File

@ -1,97 +0,0 @@
From 3a1be3d8719ef6335385d4e5e456371e7bf7383f Mon Sep 17 00:00:00 2001
Message-ID: <3a1be3d8719ef6335385d4e5e456371e7bf7383f.1688490481.git.stefan@agner.ch>
In-Reply-To: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
References: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Fri, 30 Sep 2022 07:12:39 +0200
Subject: [PATCH] arm64: dts: rockchip: Enable vop2 and hdmi tx on ODROID-M1
Enable the RK356x Video Output Processor (VOP) 2 on ODROID M1.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Dan Johansen <strit@manjaro.org>
Link: https://lore.kernel.org/r/20220930051246.391614-7-aurelien@aurel32.net
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
.../boot/dts/rockchip/rk3568-odroid-m1.dts | 47 +++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
index 634c1bd80b4e..126b893048fe 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
@@ -8,6 +8,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
#include "rk3568.dtsi"
/ {
@@ -37,6 +38,17 @@ dc_12v: dc-12v-regulator {
regulator-max-microvolt = <12000000>;
};
+ hdmi-con {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_con_in: endpoint {
+ remote-endpoint = <&hdmi_out_con>;
+ };
+ };
+ };
+
leds {
compatible = "gpio-leds";
@@ -131,6 +143,24 @@ &gmac0_rgmii_clk
rx_delay = <0x2d>;
};
+&hdmi {
+ avdd-0v9-supply = <&vdda0v9_image>;
+ avdd-1v8-supply = <&vcca1v8_image>;
+ status = "okay";
+};
+
+&hdmi_in {
+ hdmi_in_vp0: endpoint {
+ remote-endpoint = <&vp0_out_hdmi>;
+ };
+};
+
+&hdmi_out {
+ hdmi_out_con: endpoint {
+ remote-endpoint = <&hdmi_con_in>;
+ };
+};
+
&i2c0 {
status = "okay";
@@ -517,3 +547,20 @@ &tsadc {
&uart2 {
status = "okay";
};
+
+&vop {
+ assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
+ assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
+ status = "okay";
+};
+
+&vop_mmu {
+ status = "okay";
+};
+
+&vp0 {
+ vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+ reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+ remote-endpoint = <&hdmi_in_vp0>;
+ };
+};
--
2.41.0

View File

@ -1,48 +0,0 @@
From ded87dc761951205b8b9ba8ee4081e28a850a3db Mon Sep 17 00:00:00 2001
Message-ID: <ded87dc761951205b8b9ba8ee4081e28a850a3db.1688490481.git.stefan@agner.ch>
In-Reply-To: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
References: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Fri, 30 Sep 2022 07:12:40 +0200
Subject: [PATCH] arm64: dts: rockchip: Enable HDMI audio on ODROID-M1.
This enables the i2s0 controller and the hdmi-sound node on the
ODROID-M1.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Dan Johansen <strit@manjaro.org>
Link: https://lore.kernel.org/r/20220930051246.391614-8-aurelien@aurel32.net
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
index 126b893048fe..ac4e94d18feb 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
@@ -161,6 +161,10 @@ hdmi_out_con: endpoint {
};
};
+&hdmi_sound {
+ status = "okay";
+};
+
&i2c0 {
status = "okay";
@@ -400,6 +404,10 @@ regulator-state-mem {
};
};
+&i2s0_8ch {
+ status = "okay";
+};
+
&i2s1_8ch {
rockchip,trcm-sync-tx-only;
status = "okay";
--
2.41.0

View File

@ -1,37 +0,0 @@
From 13438a717627cae086cc3a1126552cffa2f4bd16 Mon Sep 17 00:00:00 2001
Message-ID: <13438a717627cae086cc3a1126552cffa2f4bd16.1688490481.git.stefan@agner.ch>
In-Reply-To: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
References: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Fri, 30 Sep 2022 07:12:41 +0200
Subject: [PATCH] arm64: dts: rockchip: Enable the GPU on ODROID-M1
Enable the GPU core on the Rockchip RK3568 ODROID-M1.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Dan Johansen <strit@manjaro.org>
Link: https://lore.kernel.org/r/20220930051246.391614-9-aurelien@aurel32.net
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
index ac4e94d18feb..e4b7699d3eea 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
@@ -143,6 +143,11 @@ &gmac0_rgmii_clk
rx_delay = <0x2d>;
};
+&gpu {
+ mali-supply = <&vdd_gpu>;
+ status = "okay";
+};
+
&hdmi {
avdd-0v9-supply = <&vdda0v9_image>;
avdd-1v8-supply = <&vcca1v8_image>;
--
2.41.0

View File

@ -1,111 +0,0 @@
From 0f0a85a289b4d0fbd5c39eb5ddbb681a37ad490c Mon Sep 17 00:00:00 2001
Message-ID: <0f0a85a289b4d0fbd5c39eb5ddbb681a37ad490c.1688490481.git.stefan@agner.ch>
In-Reply-To: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
References: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Fri, 30 Sep 2022 07:12:42 +0200
Subject: [PATCH] arm64: dts: rockchip: Enable the USB 2.0 ports on ODROID-M1
The Rockchip RK3568 has two USB OHCI/EHCI controllers connected to a PHY
providing one host-only port and one OTG port. On the ODROID-M1, they
are both used in host mode. The USB ports are powered by a DC/DC
converter providing 5V and named VCC5V0_SYS on the schematics, followed
by a power switch.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Dan Johansen <strit@manjaro.org>
Link: https://lore.kernel.org/r/20220930051246.391614-10-aurelien@aurel32.net
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
.../boot/dts/rockchip/rk3568-odroid-m1.dts | 61 +++++++++++++++++++
1 file changed, 61 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
index e4b7699d3eea..2e4cc20bd676 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
@@ -105,6 +105,28 @@ vcc3v3_sys: vcc3v3-sys-regulator {
regulator-max-microvolt = <3300000>;
vin-supply = <&dc_12v>;
};
+
+ vcc5v0_sys: vcc5v0-sys-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc5v0_sys";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&dc_12v>;
+ };
+
+ vcc5v0_usb_host: vcc5v0-usb-host-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc5v0_usb_host";
+ enable-active-high;
+ gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc5v0_usb_host_en_pin>;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&vcc5v0_sys>;
+ };
};
&cpu0 {
@@ -463,6 +485,15 @@ hp_det_pin: hp-det-pin {
rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
+
+ usb {
+ vcc5v0_usb_host_en_pin: vcc5v0-usb-host-en-pin {
+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ vcc5v0_usb_otg_en_pin: vcc5v0-usb-otg-en-pin {
+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
};
&pmu_io_domains {
@@ -561,6 +592,36 @@ &uart2 {
status = "okay";
};
+&usb_host0_ehci {
+ status = "okay";
+};
+
+&usb_host0_ohci {
+ status = "okay";
+};
+
+&usb_host1_ehci {
+ status = "okay";
+};
+
+&usb_host1_ohci {
+ status = "okay";
+};
+
+&usb2phy1 {
+ status = "okay";
+};
+
+&usb2phy1_host {
+ phy-supply = <&vcc5v0_usb_host>;
+ status = "okay";
+};
+
+&usb2phy1_otg {
+ phy-supply = <&vcc5v0_usb_host>;
+ status = "okay";
+};
+
&vop {
assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
--
2.41.0

View File

@ -1,114 +0,0 @@
From d8abc451c669a8fd36b31db5cb96ec49da819124 Mon Sep 17 00:00:00 2001
Message-ID: <d8abc451c669a8fd36b31db5cb96ec49da819124.1688490481.git.stefan@agner.ch>
In-Reply-To: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
References: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Fri, 30 Sep 2022 07:12:43 +0200
Subject: [PATCH] arm64: dts: rockchip: Enable the USB 3.0 ports on ODROID-M1
The Rockchip RK3568 has two USB XHCI controllers. The USB 2.0 signals
are connected to a PHY providing one host-only port and one OTG port.
The USB 3.0 signals are connected to two USB3.0/PCIE/SATA combo PHY.
The ODROID M1 has 2 type A USB 3.0 connectors, with the USB 3.0 signals
connected to the two combo PHYs. For the USB 2.0 signals, one connector
is connected to the host-only PHY and uses the same power switch as the
USB 2.0 ports. The other connector has its own power switch and is
connected to the OTG PHY, which is also connected to a device only
micro-USB connector. The purpose of this micro-USB connector is for
firmware update using the Rockusb vendor specific USB class. Therefore
it does not make sense to enable this port on Linux, and the PHY is
forced to host mode.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Dan Johansen <strit@manjaro.org>
Link: https://lore.kernel.org/r/20220930051246.391614-11-aurelien@aurel32.net
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
.../boot/dts/rockchip/rk3568-odroid-m1.dts | 49 ++++++++++++++++++-
1 file changed, 48 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
index 2e4cc20bd676..9a84a7e76d7a 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
@@ -127,6 +127,30 @@ vcc5v0_usb_host: vcc5v0-usb-host-regulator {
regulator-max-microvolt = <5000000>;
vin-supply = <&vcc5v0_sys>;
};
+
+ vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc5v0_usb_otg";
+ enable-active-high;
+ gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc5v0_usb_otg_en_pin>;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&vcc5v0_sys>;
+ };
+};
+
+&combphy0 {
+ /* Used for USB3 */
+ phy-supply = <&vcc5v0_usb_host>;
+ status = "okay";
+};
+
+&combphy1 {
+ /* Used for USB3 */
+ phy-supply = <&vcc5v0_usb_otg>;
+ status = "okay";
};
&cpu0 {
@@ -490,7 +514,7 @@ usb {
vcc5v0_usb_host_en_pin: vcc5v0-usb-host-en-pin {
rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
};
- vcc5v0_usb_otg_en_pin: vcc5v0-usb-otg-en-pin {
+ vcc5v0_usb_otg_en_pin: vcc5v0-usb-dr-en-pin {
rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
@@ -600,6 +624,11 @@ &usb_host0_ohci {
status = "okay";
};
+&usb_host0_xhci {
+ dr_mode = "host";
+ status = "okay";
+};
+
&usb_host1_ehci {
status = "okay";
};
@@ -608,6 +637,24 @@ &usb_host1_ohci {
status = "okay";
};
+&usb_host1_xhci {
+ status = "okay";
+};
+
+&usb2phy0 {
+ status = "okay";
+};
+
+&usb2phy0_host {
+ phy-supply = <&vcc5v0_usb_host>;
+ status = "okay";
+};
+
+&usb2phy0_otg {
+ phy-supply = <&vcc5v0_usb_otg>;
+ status = "okay";
+};
+
&usb2phy1 {
status = "okay";
};
--
2.41.0

View File

@ -1,48 +0,0 @@
From 2f6d4521403932ca22cb4dabef9033f1d52232ba Mon Sep 17 00:00:00 2001
Message-ID: <2f6d4521403932ca22cb4dabef9033f1d52232ba.1688490481.git.stefan@agner.ch>
In-Reply-To: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
References: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Fri, 30 Sep 2022 07:12:44 +0200
Subject: [PATCH] arm64: dts: rockchip: Add SATA support to ODROID-M1
Enable the Combo PHY and SATA nodes in ODROID-M1.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Dan Johansen <strit@manjaro.org>
Link: https://lore.kernel.org/r/20220930051246.391614-12-aurelien@aurel32.net
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
index 9a84a7e76d7a..bd24ccf94e76 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
@@ -153,6 +153,11 @@ &combphy1 {
status = "okay";
};
+&combphy2 {
+ /* used for SATA */
+ status = "okay";
+};
+
&cpu0 {
cpu-supply = <&vdd_cpu>;
};
@@ -538,6 +543,10 @@ &saradc {
status = "okay";
};
+&sata2 {
+ status = "okay";
+};
+
&sdhci {
bus-width = <8>;
max-frequency = <200000000>;
--
2.41.0

View File

@ -1,80 +0,0 @@
From 1572a9c5d9fa9f654fbc1909528ae5940ad34aa3 Mon Sep 17 00:00:00 2001
Message-ID: <1572a9c5d9fa9f654fbc1909528ae5940ad34aa3.1688490481.git.stefan@agner.ch>
In-Reply-To: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
References: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Fri, 30 Sep 2022 07:12:45 +0200
Subject: [PATCH] arm64: dts: rockchip: Add PCIEe v3 nodes to ODROID-M1
Add nodes to ODROID-M1 to support PCIe v3 on the M2 slot.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Dan Johansen <strit@manjaro.org>
Link: https://lore.kernel.org/r/20220930051246.391614-13-aurelien@aurel32.net
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
.../boot/dts/rockchip/rk3568-odroid-m1.dts | 34 +++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
index bd24ccf94e76..2f685c606bb9 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
@@ -96,6 +96,19 @@ simple-audio-card,codec {
};
};
+ vcc3v3_pcie: vcc3v3-pcie-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc3v3_pcie";
+ enable-active-high;
+ gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc3v3_pcie_en_pin>;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ startup-delay-us = <5000>;
+ vin-supply = <&vcc3v3_sys>;
+ };
+
vcc3v3_sys: vcc3v3-sys-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc3v3_sys";
@@ -479,6 +492,18 @@ rgmii_phy0: ethernet-phy@0 {
};
};
+&pcie30phy {
+ status = "okay";
+};
+
+&pcie3x2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie_reset_pin>;
+ reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
+ vpcie3v3-supply = <&vcc3v3_pcie>;
+ status = "okay";
+};
+
&pinctrl {
fspi {
fspi_dual_io_pins: fspi-dual-io-pins {
@@ -503,6 +528,15 @@ led_work_pin: led-work-pin {
};
};
+ pcie {
+ pcie_reset_pin: pcie-reset-pin {
+ rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ vcc3v3_pcie_en_pin: vcc3v3-pcie-en-pin {
+ rockchip,pins = <4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
pmic {
pmic_int_l: pmic-int-l {
rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
--
2.41.0

View File

@ -1,54 +0,0 @@
From b2eae73eeb32dd9383571de6af18fc8bd39aac3a Mon Sep 17 00:00:00 2001
Message-ID: <b2eae73eeb32dd9383571de6af18fc8bd39aac3a.1688490481.git.stefan@agner.ch>
In-Reply-To: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
References: <d388735d551e09b00317a509859fca51776b9826.1688490481.git.stefan@agner.ch>
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Fri, 30 Sep 2022 07:12:46 +0200
Subject: [PATCH] arm64: dts: rockchip: Add IR receiver node to ODROID-M1
Add the infrared receiver and its associated pinctrl entry. Note that
there is an external pullup to VCC3V3_SYS.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Dan Johansen <strit@manjaro.org>
Link: https://lore.kernel.org/r/20220930051246.391614-14-aurelien@aurel32.net
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
index 2f685c606bb9..59ecf868dbd0 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
@@ -49,6 +49,13 @@ hdmi_con_in: endpoint {
};
};
+ ir-receiver {
+ compatible = "gpio-ir-receiver";
+ gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&ir_receiver_pin>;
+ };
+
leds {
compatible = "gpio-leds";
@@ -519,6 +526,13 @@ fspi_dual_io_pins: fspi-dual-io-pins {
};
};
+ ir-receiver {
+ ir_receiver_pin: ir-receiver-pin {
+ /* external pullup to VCC3V3_SYS */
+ rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
leds {
led_power_pin: led-power-pin {
rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
--
2.41.0

View File

@ -1,48 +0,0 @@
From acadbae38f91965f204d6a5d49eb8b578970b818 Mon Sep 17 00:00:00 2001
Message-ID: <acadbae38f91965f204d6a5d49eb8b578970b818.1689147150.git.stefan@agner.ch>
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 2 Jul 2023 20:47:17 +0000
Subject: [PATCH] ata: dwc_ahci: Fix support for other platforms
The dwc_ahci driver use platform specific defines, place the platform
specific code behind a ifdef CONFIG_ARCH_OMAP2PLUS to allow build and
use of the driver on Rockchip platform.
Fixes: 02a4b4297901 ("drivers: block: dwc_ahci: Implement a driver for Synopsys DWC sata device")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
drivers/ata/dwc_ahci.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/ata/dwc_ahci.c b/drivers/ata/dwc_ahci.c
index 826fea71cc..1dc91e7fce 100644
--- a/drivers/ata/dwc_ahci.c
+++ b/drivers/ata/dwc_ahci.c
@@ -13,7 +13,9 @@
#include <ahci.h>
#include <scsi.h>
#include <sata.h>
+#ifdef CONFIG_ARCH_OMAP2PLUS
#include <asm/arch/sata.h>
+#endif
#include <asm/io.h>
#include <generic-phy.h>
@@ -72,12 +74,14 @@ static int dwc_ahci_probe(struct udevice *dev)
return ret;
}
+#ifdef CONFIG_ARCH_OMAP2PLUS
if (priv->wrapper_base) {
u32 val = TI_SATA_IDLE_NO | TI_SATA_STANDBY_NO;
/* Enable SATA module, No Idle, No Standby */
writel(val, priv->wrapper_base + TI_SATA_SYSCONFIG);
}
+#endif
return ahci_probe_scsi(dev, (ulong)priv->base);
}
--
2.41.0

View File

@ -1,990 +0,0 @@
From e52e7ff196b942c8bf8bee9e74d4f24619934a1b Mon Sep 17 00:00:00 2001
Message-ID: <e52e7ff196b942c8bf8bee9e74d4f24619934a1b.1689147150.git.stefan@agner.ch>
In-Reply-To: <acadbae38f91965f204d6a5d49eb8b578970b818.1689147150.git.stefan@agner.ch>
References: <acadbae38f91965f204d6a5d49eb8b578970b818.1689147150.git.stefan@agner.ch>
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 2 Jul 2023 20:47:19 +0000
Subject: [PATCH] board: rockchip: Add Hardkernel ODROID-M1
Hardkernel ODROID-M1 is a single board computer with a RK3568B2 SoC,
a slightly modified version of the RK3568 SoC.
Features tested on a ODROID-M1 8GB v1.0 2022-06-13:
- SD-card boot
- eMMC boot
- SPI Flash boot
- PCIe/NVMe/AHCI
- SATA port
- USB host
Device tree is imported from linux v6.4.
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
arch/arm/dts/Makefile | 1 +
arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi | 46 ++
arch/arm/dts/rk3568-odroid-m1.dts | 744 ++++++++++++++++++++++
board/rockchip/evb_rk3568/MAINTAINERS | 7 +
configs/odroid-m1-rk3568_defconfig | 103 +++
doc/board/rockchip/rockchip.rst | 1 +
6 files changed, 902 insertions(+)
create mode 100644 arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi
create mode 100644 arch/arm/dts/rk3568-odroid-m1.dts
create mode 100644 configs/odroid-m1-rk3568_defconfig
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 480269fa60..334c1bafda 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -169,6 +169,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3568) += \
rk3566-anbernic-rgxx3.dtb \
rk3566-radxa-cm3-io.dtb \
rk3568-evb.dtb \
+ rk3568-odroid-m1.dtb \
rk3568-rock-3a.dtb
dtb-$(CONFIG_ROCKCHIP_RK3588) += \
diff --git a/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi b/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi
new file mode 100644
index 0000000000..dc8ad98715
--- /dev/null
+++ b/arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: GPL-2.0+
+
+#include "rk356x-u-boot.dtsi"
+
+/ {
+ aliases {
+ spi0 = &sfc;
+ };
+
+ chosen {
+ stdout-path = &uart2;
+ };
+};
+
+&fspi_dual_io_pins {
+ bootph-all;
+};
+
+&sdhci {
+ cap-mmc-highspeed;
+ mmc-ddr-1_8v;
+ mmc-hs200-1_8v;
+ mmc-hs400-1_8v;
+ mmc-hs400-enhanced-strobe;
+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
+};
+
+&sfc {
+ bootph-pre-ram;
+ u-boot,spl-sfc-no-dma;
+
+ flash@0 {
+ bootph-pre-ram;
+ };
+};
+
+&uart2 {
+ bootph-all;
+ clock-frequency = <24000000>;
+ status = "okay";
+};
+
+&vcc5v0_usb_host {
+ /* Workaround until regulator implement basic reference counter */
+ regulator-always-on;
+};
diff --git a/arch/arm/dts/rk3568-odroid-m1.dts b/arch/arm/dts/rk3568-odroid-m1.dts
new file mode 100644
index 0000000000..59ecf868db
--- /dev/null
+++ b/arch/arm/dts/rk3568-odroid-m1.dts
@@ -0,0 +1,744 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2022 Hardkernel Co., Ltd.
+ *
+ */
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3568.dtsi"
+
+/ {
+ model = "Hardkernel ODROID-M1";
+ compatible = "rockchip,rk3568-odroid-m1", "rockchip,rk3568";
+
+ aliases {
+ ethernet0 = &gmac0;
+ i2c0 = &i2c3;
+ i2c3 = &i2c0;
+ mmc0 = &sdhci;
+ mmc1 = &sdmmc0;
+ serial0 = &uart1;
+ serial1 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial2:1500000n8";
+ };
+
+ dc_12v: dc-12v-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "dc_12v";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ };
+
+ hdmi-con {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_con_in: endpoint {
+ remote-endpoint = <&hdmi_out_con>;
+ };
+ };
+ };
+
+ ir-receiver {
+ compatible = "gpio-ir-receiver";
+ gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&ir_receiver_pin>;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_power: led-0 {
+ gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_RED>;
+ default-state = "keep";
+ linux,default-trigger = "default-on";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_power_pin>;
+ };
+ led_work: led-1 {
+ gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
+ function = LED_FUNCTION_HEARTBEAT;
+ color = <LED_COLOR_ID_BLUE>;
+ linux,default-trigger = "heartbeat";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_work_pin>;
+ };
+ };
+
+ rk809-sound {
+ compatible = "simple-audio-card";
+ pinctrl-names = "default";
+ pinctrl-0 = <&hp_det_pin>;
+ simple-audio-card,name = "Analog RK817";
+ simple-audio-card,format = "i2s";
+ simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
+ simple-audio-card,mclk-fs = <256>;
+ simple-audio-card,widgets =
+ "Headphone", "Headphones",
+ "Speaker", "Speaker";
+ simple-audio-card,routing =
+ "Headphones", "HPOL",
+ "Headphones", "HPOR",
+ "Speaker", "SPKO";
+
+ simple-audio-card,cpu {
+ sound-dai = <&i2s1_8ch>;
+ };
+
+ simple-audio-card,codec {
+ sound-dai = <&rk809>;
+ };
+ };
+
+ vcc3v3_pcie: vcc3v3-pcie-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc3v3_pcie";
+ enable-active-high;
+ gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc3v3_pcie_en_pin>;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ startup-delay-us = <5000>;
+ vin-supply = <&vcc3v3_sys>;
+ };
+
+ vcc3v3_sys: vcc3v3-sys-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc3v3_sys";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ vin-supply = <&dc_12v>;
+ };
+
+ vcc5v0_sys: vcc5v0-sys-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc5v0_sys";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&dc_12v>;
+ };
+
+ vcc5v0_usb_host: vcc5v0-usb-host-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc5v0_usb_host";
+ enable-active-high;
+ gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc5v0_usb_host_en_pin>;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&vcc5v0_sys>;
+ };
+
+ vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc5v0_usb_otg";
+ enable-active-high;
+ gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc5v0_usb_otg_en_pin>;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&vcc5v0_sys>;
+ };
+};
+
+&combphy0 {
+ /* Used for USB3 */
+ phy-supply = <&vcc5v0_usb_host>;
+ status = "okay";
+};
+
+&combphy1 {
+ /* Used for USB3 */
+ phy-supply = <&vcc5v0_usb_otg>;
+ status = "okay";
+};
+
+&combphy2 {
+ /* used for SATA */
+ status = "okay";
+};
+
+&cpu0 {
+ cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+ cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+ cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+ cpu-supply = <&vdd_cpu>;
+};
+
+&gmac0 {
+ assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
+ assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>;
+ assigned-clock-rates = <0>, <125000000>;
+ clock_in_out = "output";
+ phy-handle = <&rgmii_phy0>;
+ phy-mode = "rgmii";
+ phy-supply = <&vcc3v3_sys>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&gmac0_miim
+ &gmac0_tx_bus2
+ &gmac0_rx_bus2
+ &gmac0_rgmii_clk
+ &gmac0_rgmii_bus>;
+ status = "okay";
+
+ tx_delay = <0x4f>;
+ rx_delay = <0x2d>;
+};
+
+&gpu {
+ mali-supply = <&vdd_gpu>;
+ status = "okay";
+};
+
+&hdmi {
+ avdd-0v9-supply = <&vdda0v9_image>;
+ avdd-1v8-supply = <&vcca1v8_image>;
+ status = "okay";
+};
+
+&hdmi_in {
+ hdmi_in_vp0: endpoint {
+ remote-endpoint = <&vp0_out_hdmi>;
+ };
+};
+
+&hdmi_out {
+ hdmi_out_con: endpoint {
+ remote-endpoint = <&hdmi_con_in>;
+ };
+};
+
+&hdmi_sound {
+ status = "okay";
+};
+
+&i2c0 {
+ status = "okay";
+
+ vdd_cpu: regulator@1c {
+ compatible = "tcs,tcs4525";
+ reg = <0x1c>;
+ fcs,suspend-voltage-selector = <1>;
+ regulator-name = "vdd_cpu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1150000>;
+ regulator-ramp-delay = <2300>;
+ vin-supply = <&vcc3v3_sys>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ rk809: pmic@20 {
+ compatible = "rockchip,rk809";
+ reg = <0x20>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+ assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
+ assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
+ #clock-cells = <1>;
+ clock-names = "mclk";
+ clocks = <&cru I2S1_MCLKOUT_TX>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>;
+ rockchip,system-power-controller;
+ #sound-dai-cells = <0>;
+ vcc1-supply = <&vcc3v3_sys>;
+ vcc2-supply = <&vcc3v3_sys>;
+ vcc3-supply = <&vcc3v3_sys>;
+ vcc4-supply = <&vcc3v3_sys>;
+ vcc5-supply = <&vcc3v3_sys>;
+ vcc6-supply = <&vcc3v3_sys>;
+ vcc7-supply = <&vcc3v3_sys>;
+ vcc8-supply = <&vcc3v3_sys>;
+ vcc9-supply = <&vcc3v3_sys>;
+ wakeup-source;
+
+ regulators {
+ vdd_logic: DCDC_REG1 {
+ regulator-name = "vdd_logic";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-init-microvolt = <900000>;
+ regulator-initial-mode = <0x2>;
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-ramp-delay = <6001>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdd_gpu: DCDC_REG2 {
+ regulator-name = "vdd_gpu";
+ regulator-always-on;
+ regulator-init-microvolt = <900000>;
+ regulator-initial-mode = <0x2>;
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-ramp-delay = <6001>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_ddr: DCDC_REG3 {
+ regulator-name = "vcc_ddr";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-initial-mode = <0x2>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
+ vdd_npu: DCDC_REG4 {
+ regulator-name = "vdd_npu";
+ regulator-init-microvolt = <900000>;
+ regulator-initial-mode = <0x2>;
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-ramp-delay = <6001>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_1v8: DCDC_REG5 {
+ regulator-name = "vcc_1v8";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdda0v9_image: LDO_REG1 {
+ regulator-name = "vdda0v9_image";
+ regulator-always-on;
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdda_0v9: LDO_REG2 {
+ regulator-name = "vdda_0v9";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdda0v9_pmu: LDO_REG3 {
+ regulator-name = "vdda0v9_pmu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <900000>;
+ };
+ };
+
+ vccio_acodec: LDO_REG4 {
+ regulator-name = "vccio_acodec";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vccio_sd: LDO_REG5 {
+ regulator-name = "vccio_sd";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc3v3_pmu: LDO_REG6 {
+ regulator-name = "vcc3v3_pmu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <3300000>;
+ };
+ };
+
+ vcca_1v8: LDO_REG7 {
+ regulator-name = "vcca_1v8";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcca1v8_pmu: LDO_REG8 {
+ regulator-name = "vcca1v8_pmu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1800000>;
+ };
+ };
+
+ vcca1v8_image: LDO_REG9 {
+ regulator-name = "vcca1v8_image";
+ regulator-always-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_3v3: SWITCH_REG1 {
+ regulator-name = "vcc_3v3";
+ regulator-always-on;
+ regulator-boot-on;
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc3v3_sd: SWITCH_REG2 {
+ regulator-name = "vcc3v3_sd";
+
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+ };
+ };
+};
+
+&i2s0_8ch {
+ status = "okay";
+};
+
+&i2s1_8ch {
+ rockchip,trcm-sync-tx-only;
+ status = "okay";
+};
+
+&mdio0 {
+ rgmii_phy0: ethernet-phy@0 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0x0>;
+ reset-assert-us = <20000>;
+ reset-deassert-us = <100000>;
+ reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&pcie30phy {
+ status = "okay";
+};
+
+&pcie3x2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie_reset_pin>;
+ reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
+ vpcie3v3-supply = <&vcc3v3_pcie>;
+ status = "okay";
+};
+
+&pinctrl {
+ fspi {
+ fspi_dual_io_pins: fspi-dual-io-pins {
+ rockchip,pins =
+ /* fspi_clk */
+ <1 RK_PD0 1 &pcfg_pull_none>,
+ /* fspi_cs0n */
+ <1 RK_PD3 1 &pcfg_pull_none>,
+ /* fspi_d0 */
+ <1 RK_PD1 1 &pcfg_pull_none>,
+ /* fspi_d1 */
+ <1 RK_PD2 1 &pcfg_pull_none>;
+ };
+ };
+
+ ir-receiver {
+ ir_receiver_pin: ir-receiver-pin {
+ /* external pullup to VCC3V3_SYS */
+ rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ leds {
+ led_power_pin: led-power-pin {
+ rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ led_work_pin: led-work-pin {
+ rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ pcie {
+ pcie_reset_pin: pcie-reset-pin {
+ rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ vcc3v3_pcie_en_pin: vcc3v3-pcie-en-pin {
+ rockchip,pins = <4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ pmic {
+ pmic_int_l: pmic-int-l {
+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+
+ rk809 {
+ hp_det_pin: hp-det-pin {
+ rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ usb {
+ vcc5v0_usb_host_en_pin: vcc5v0-usb-host-en-pin {
+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ vcc5v0_usb_otg_en_pin: vcc5v0-usb-dr-en-pin {
+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+};
+
+&pmu_io_domains {
+ pmuio1-supply = <&vcc3v3_pmu>;
+ pmuio2-supply = <&vcc3v3_pmu>;
+ vccio1-supply = <&vccio_acodec>;
+ vccio2-supply = <&vcc_1v8>;
+ vccio3-supply = <&vccio_sd>;
+ vccio4-supply = <&vcc_1v8>;
+ vccio5-supply = <&vcc_3v3>;
+ vccio6-supply = <&vcc_3v3>;
+ vccio7-supply = <&vcc_3v3>;
+ status = "okay";
+};
+
+&saradc {
+ vref-supply = <&vcca_1v8>;
+ status = "okay";
+};
+
+&sata2 {
+ status = "okay";
+};
+
+&sdhci {
+ bus-width = <8>;
+ max-frequency = <200000000>;
+ non-removable;
+ pinctrl-names = "default";
+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe &emmc_rstnout>;
+ vmmc-supply = <&vcc_3v3>;
+ vqmmc-supply = <&vcc_1v8>;
+ status = "okay";
+};
+
+&sdmmc0 {
+ bus-width = <4>;
+ cap-sd-highspeed;
+ cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+ disable-wp;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+ sd-uhs-sdr50;
+ vmmc-supply = <&vcc3v3_sd>;
+ vqmmc-supply = <&vccio_sd>;
+ status = "okay";
+};
+
+&sfc {
+ /* Dual I/O mode as the D2 pin conflicts with the eMMC */
+ pinctrl-0 = <&fspi_dual_io_pins>;
+ pinctrl-names = "default";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <100000000>;
+ spi-rx-bus-width = <2>;
+ spi-tx-bus-width = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "SPL";
+ reg = <0x0 0xe0000>;
+ };
+ partition@e0000 {
+ label = "U-Boot Env";
+ reg = <0xe0000 0x20000>;
+ };
+ partition@100000 {
+ label = "U-Boot";
+ reg = <0x100000 0x200000>;
+ };
+ partition@300000 {
+ label = "splash";
+ reg = <0x300000 0x100000>;
+ };
+ partition@400000 {
+ label = "Filesystem";
+ reg = <0x400000 0xc00000>;
+ };
+ };
+ };
+};
+
+&tsadc {
+ rockchip,hw-tshut-mode = <1>;
+ rockchip,hw-tshut-polarity = <0>;
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
+
+&usb_host0_ehci {
+ status = "okay";
+};
+
+&usb_host0_ohci {
+ status = "okay";
+};
+
+&usb_host0_xhci {
+ dr_mode = "host";
+ status = "okay";
+};
+
+&usb_host1_ehci {
+ status = "okay";
+};
+
+&usb_host1_ohci {
+ status = "okay";
+};
+
+&usb_host1_xhci {
+ status = "okay";
+};
+
+&usb2phy0 {
+ status = "okay";
+};
+
+&usb2phy0_host {
+ phy-supply = <&vcc5v0_usb_host>;
+ status = "okay";
+};
+
+&usb2phy0_otg {
+ phy-supply = <&vcc5v0_usb_otg>;
+ status = "okay";
+};
+
+&usb2phy1 {
+ status = "okay";
+};
+
+&usb2phy1_host {
+ phy-supply = <&vcc5v0_usb_host>;
+ status = "okay";
+};
+
+&usb2phy1_otg {
+ phy-supply = <&vcc5v0_usb_host>;
+ status = "okay";
+};
+
+&vop {
+ assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
+ assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
+ status = "okay";
+};
+
+&vop_mmu {
+ status = "okay";
+};
+
+&vp0 {
+ vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+ reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+ remote-endpoint = <&hdmi_in_vp0>;
+ };
+};
diff --git a/board/rockchip/evb_rk3568/MAINTAINERS b/board/rockchip/evb_rk3568/MAINTAINERS
index 6b2e7c7575..a5b59da0f7 100644
--- a/board/rockchip/evb_rk3568/MAINTAINERS
+++ b/board/rockchip/evb_rk3568/MAINTAINERS
@@ -7,6 +7,13 @@ F: configs/evb-rk3568_defconfig
F: arch/arm/dts/rk3568-evb-boot.dtsi
F: arch/arm/dts/rk3568-evb.dts
+ODROID-M1
+M: Jonas Karlman <jonas@kwiboo.se>
+S: Maintained
+F: configs/odroid-m1-rk3568_defconfig
+F: arch/arm/dts/rk3568-odroid-m1-u-boot.dtsi
+F: arch/arm/dts/rk3568-odroid-m1.dts
+
RADXA-CM3
M: Jagan Teki <jagan@amarulasolutions.com>
S: Maintained
diff --git a/configs/odroid-m1-rk3568_defconfig b/configs/odroid-m1-rk3568_defconfig
new file mode 100644
index 0000000000..d090196219
--- /dev/null
+++ b/configs/odroid-m1-rk3568_defconfig
@@ -0,0 +1,103 @@
+CONFIG_ARM=y
+CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_COUNTER_FREQUENCY=24000000
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_TEXT_BASE=0x00a00000
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_NR_DRAM_BANKS=2
+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
+CONFIG_SF_DEFAULT_SPEED=24000000
+CONFIG_SF_DEFAULT_MODE=0x1000
+CONFIG_DEFAULT_DEVICE_TREE="rk3568-odroid-m1"
+CONFIG_ROCKCHIP_RK3568=y
+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
+CONFIG_ROCKCHIP_SPI_IMAGE=y
+CONFIG_SPL_SERIAL=y
+CONFIG_SPL_STACK_R_ADDR=0x600000
+CONFIG_SPL_STACK=0x400000
+CONFIG_DEBUG_UART_BASE=0xFE660000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_SPL_SPI_FLASH_SUPPORT=y
+CONFIG_SPL_SPI=y
+CONFIG_SYS_LOAD_ADDR=0xc00800
+CONFIG_PCI=y
+CONFIG_DEBUG_UART=y
+CONFIG_AHCI=y
+CONFIG_FIT=y
+CONFIG_FIT_VERBOSE=y
+CONFIG_SPL_FIT_SIGNATURE=y
+CONFIG_SPL_LOAD_FIT=y
+CONFIG_LEGACY_IMAGE_FORMAT=y
+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-odroid-m1.dtb"
+# CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_SPL_MAX_SIZE=0x40000
+CONFIG_SPL_PAD_TO=0x7f8000
+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
+CONFIG_SPL_BSS_START_ADDR=0x4000000
+CONFIG_SPL_BSS_MAX_SIZE=0x4000
+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
+# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
+CONFIG_SPL_STACK_R=y
+CONFIG_SPL_SPI_LOAD=y
+CONFIG_SYS_SPI_U_BOOT_OFFS=0x100000
+CONFIG_SPL_ATF=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_PCI=y
+CONFIG_CMD_USB=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_PMIC=y
+CONFIG_CMD_REGULATOR=y
+# CONFIG_SPL_DOS_PARTITION is not set
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_OF_LIVE=y
+CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+CONFIG_SPL_REGMAP=y
+CONFIG_SPL_SYSCON=y
+CONFIG_AHCI_PCI=y
+CONFIG_DWC_AHCI=y
+CONFIG_SPL_CLK=y
+CONFIG_ROCKCHIP_GPIO=y
+CONFIG_SYS_I2C_ROCKCHIP=y
+CONFIG_MISC=y
+CONFIG_SUPPORT_EMMC_RPMB=y
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_ROCKCHIP=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_ROCKCHIP=y
+CONFIG_SPI_FLASH_SFDP_SUPPORT=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_GMAC_ROCKCHIP=y
+CONFIG_NVME_PCI=y
+CONFIG_PCIE_DW_ROCKCHIP=y
+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
+CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
+CONFIG_SPL_PINCTRL=y
+CONFIG_DM_PMIC=y
+CONFIG_PMIC_RK8XX=y
+CONFIG_REGULATOR_RK8XX=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_SPL_RAM=y
+CONFIG_SCSI=y
+CONFIG_DM_SCSI=y
+CONFIG_BAUDRATE=1500000
+CONFIG_DEBUG_UART_SHIFT=2
+CONFIG_SYS_NS16550_MEM32=y
+CONFIG_ROCKCHIP_SFC=y
+CONFIG_SYSRESET=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_GENERIC=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_GENERIC=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_GENERIC=y
+CONFIG_ERRNO_STR=y
diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst
index 99376fb54c..b3de15b36a 100644
--- a/doc/board/rockchip/rockchip.rst
+++ b/doc/board/rockchip/rockchip.rst
@@ -95,6 +95,7 @@ List of mainline supported Rockchip boards:
* rk3568
- Rockchip Evb-RK3568 (evb-rk3568)
+ - Hardkernel ODROID-M1 (odroid-m1-rk3568)
* rk3588
- Rockchip EVB (evb-rk3588)
--
2.41.0

View File

@ -1,15 +1,15 @@
part start mmc ${devnum} hassos-bootstate mmc_env
mmc dev ${devnum}
part start ${devtype} ${devnum} hassos-bootstate mmc_env
${devtype} dev ${devnum}
setenv loadbootstate " \
echo 'loading env...'; \
mmc read ${ramdisk_addr_r} ${mmc_env} 0x40; \
${devtype} read ${ramdisk_addr_r} ${mmc_env} 0x40; \
env import -c ${ramdisk_addr_r} 0x8000;"
setenv storebootstate " \
echo 'storing env...'; \
env export -c -s 0x8000 ${ramdisk_addr_r} BOOT_ORDER BOOT_A_LEFT BOOT_B_LEFT MACHINE_ID; \
mmc write ${ramdisk_addr_r} ${mmc_env} 0x40;"
${devtype} write ${ramdisk_addr_r} ${mmc_env} 0x40;"
run loadbootstate
test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B"
@ -23,37 +23,37 @@ test -n "${MACHINE_ID}" || setenv BOOT_CONDITION "systemd.condition-first-boot=t
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 systemd.machine_id=${MACHINE_ID} fsck.repair=yes ${BOOT_CONDITION}"
# HassOS system A/B
setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd rootfstype=squashfs ro rootwait"
setenv bootargs_b "root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 rootfstype=squashfs ro rootwait"
setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd ro rootwait"
setenv bootargs_b "root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 ro rootwait"
part number mmc ${devnum} hassos-boot boot_partnum
part number ${devtype} ${devnum} hassos-boot boot_partnum
# Load environment from haos-config.txt
if test -e mmc ${devnum}:${boot_partnum} haos-config.txt; then
fatload mmc ${devnum}:${boot_partnum} ${ramdisk_addr_r} haos-config.txt
if test -e ${devtype} ${devnum}:${boot_partnum} haos-config.txt; then
fatload ${devtype} ${devnum}:${boot_partnum} ${ramdisk_addr_r} haos-config.txt
env import -t ${ramdisk_addr_r} ${filesize}
fi
# Load extraargs
fileenv mmc ${devnum}:${boot_partnum} ${ramdisk_addr_r} cmdline.txt cmdline
fileenv ${devtype} ${devnum}:${boot_partnum} ${ramdisk_addr_r} cmdline.txt cmdline
# Load device tree
setenv fdtfile rk3568-odroid-m1.dtb
echo "Loading standard device tree ${fdtfile}"
fatload mmc ${devnum}:${boot_partnum} ${fdt_addr_r} ${fdtfile}
fatload ${devtype} ${devnum}:${boot_partnum} ${fdt_addr_r} ${fdtfile}
fdt addr ${fdt_addr_r}
# load dt overlays
fdt resize 65536
for overlay_file in ${overlays}; do
if fatload mmc ${devnum}:${boot_partnum} ${ramdisk_addr_r} overlays/${overlay_file}.dtbo; then
if fatload ${devtype} ${devnum}:${boot_partnum} ${ramdisk_addr_r} overlays/${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_file}.dtbo"
fdt apply ${ramdisk_addr_r} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
fatload mmc ${devnum}:${boot_partnum} ${fdt_addr_r} ${fdtfile}
fatload ${devtype} ${devnum}:${boot_partnum} ${fdt_addr_r} ${fdtfile}
fi
setenv bootargs
@ -64,8 +64,8 @@ for BOOT_SLOT in "${BOOT_ORDER}"; do
if test ${BOOT_A_LEFT} -gt 0; then
setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1
echo "Trying to boot slot A, ${BOOT_A_LEFT} attempts remaining. Loading kernel ..."
part number mmc ${devnum} hassos-kernel0 kernel_partnum
if load mmc ${devnum}:${kernel_partnum} ${kernel_addr_r} Image; then
part number ${devtype} ${devnum} hassos-kernel0 kernel_partnum
if load ${devtype} ${devnum}:${kernel_partnum} ${kernel_addr_r} Image; then
setenv bootargs "${bootargs_hassos} ${bootargs_a} rauc.slot=A ${cmdline}"
fi
fi
@ -73,8 +73,8 @@ for BOOT_SLOT in "${BOOT_ORDER}"; do
if test ${BOOT_B_LEFT} -gt 0; then
setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1
echo "Trying to boot slot B, ${BOOT_B_LEFT} attempts remaining. Loading kernel ..."
part number mmc ${devnum} hassos-kernel1 kernel_partnum
if load mmc ${devnum}:${kernel_partnum} ${kernel_addr_r} Image; then
part number ${devtype} ${devnum} hassos-kernel1 kernel_partnum
if load ${devtype} ${devnum}:${kernel_partnum} ${kernel_addr_r} Image; then
setenv bootargs "${bootargs_hassos} ${bootargs_b} rauc.slot=B ${cmdline}"
fi
fi

View File

@ -1,5 +1,2 @@
CONFIG_DOS_PARTITION=y
# CONFIG_EFI_PARTITION is not set
# CONFIG_USB_STORAGE is not set
CONFIG_DISPLAY_BOARDINFO=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
# CONFIG_DWC_ETH_QOS is not set
# CONFIG_DWC_ETH_QOS_ROCKCHIP is not set

View File

@ -0,0 +1 @@
console=tty0

View File

@ -0,0 +1,18 @@
#!/bin/bash
# shellcheck disable=SC2155
function hassos_pre_image() {
local BOOT_DATA="$(path_boot_dir)"
cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr"
cp "${BINARIES_DIR}"/*.dtb "${BOOT_DATA}/"
cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
}
function hassos_post_image() {
convert_disk_image_xz
}

View File

@ -0,0 +1,13 @@
image spl.img {
size = ${BOOT_SPL_SIZE}
hdimage {
partition-table-type = "none"
fill = "yes"
}
partition uboot {
offset = 32k
image = "u-boot-rockchip.bin"
}
}

View File

@ -0,0 +1,12 @@
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_SENSORS_GPIO_FAN=y
CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_GPIO_POLLED=y
CONFIG_MMC_SDHCI_OF_DWCMSHC=y
# CONFIG_DW_WATCHDOG is not set

View File

@ -0,0 +1,12 @@
BOARD_ID=odroid-m1s
BOARD_NAME="Hardkernel ODROID-M1S"
CHASSIS=embedded
BOOTLOADER=uboot
KERNEL_FILE=Image
PARTITION_TABLE_TYPE=hybrid
BOOT_SIZE=16M
BOOT_SPL=true
BOOT_SPL_SIZE=16M
BOOT_ENV_SIZE=0x8000
SUPERVISOR_MACHINE=odroid-m1
SUPERVISOR_ARCH=aarch64

View File

@ -0,0 +1,17 @@
partition spl {
size = ${BOOT_SPL_SIZE}
image = "spl.img"
in-partition-table = "no"
offset = 0
holes = {"(0; 17k)", "(8M; 16M)"}
}
partition uboot {
size = 8M
offset = 8M
# FIXME: hdd-image intended to use the following, but the next one
# is in the img because of the _fix_disk_spl_gpt function
# partition-type-uuid = "21686148-6449-6e6f-744e-656564454649"
partition-type-uuid = "e3c9e316-0b5c-4db8-817d-f92df00215ae"
# no image here - already contains data from spl.img
}

View File

@ -0,0 +1,32 @@
From 60b24f8c30181ef60964ce186c2a6d05b85f3be1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Fri, 31 Jan 2025 16:13:48 +0100
Subject: [PATCH] arm64: dts: rockchip: Enable Rockchip TRNG on ODROID-M1S
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
HAOS with 6.6 kernel had the RNG disbled because of a downstream patch. Now the
rk356x.dtsi has it's enabled only in rk3568.dtsi. We want it enabled also for
RK3566 on ODROID-M1S.
Signed-off-by: Jan Čermák <sairon@sairon.cz>
---
arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts b/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
index 33bc5249d729b..a0d912b5ce4aa 100644
--- a/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
@@ -551,6 +551,10 @@ &pmu_io_domains {
status = "okay";
};
+&rng {
+ status = "okay";
+};
+
&saradc {
vref-supply = <&vcca_1v8>;
status = "okay";

View File

@ -0,0 +1,98 @@
part start ${devtype} ${devnum} hassos-bootstate mmc_env
${devtype} dev ${devnum}
setenv loadbootstate " \
echo 'loading env...'; \
${devtype} read ${ramdisk_addr_r} ${mmc_env} 0x40; \
env import -c ${ramdisk_addr_r} 0x8000;"
setenv storebootstate " \
echo 'storing env...'; \
env export -c -s 0x8000 ${ramdisk_addr_r} BOOT_ORDER BOOT_A_LEFT BOOT_B_LEFT MACHINE_ID; \
${devtype} write ${ramdisk_addr_r} ${mmc_env} 0x40;"
run loadbootstate
test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B"
test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3
test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3
# Allows ConditionFirstBoot=
test -n "${MACHINE_ID}" || setenv BOOT_CONDITION "systemd.condition-first-boot=true"
# HassOS bootargs
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 systemd.machine_id=${MACHINE_ID} fsck.repair=yes ${BOOT_CONDITION}"
# HassOS system A/B
setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd ro rootwait"
setenv bootargs_b "root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 ro rootwait"
part number ${devtype} ${devnum} hassos-boot boot_partnum
# Load environment from haos-config.txt
if test -e ${devtype} ${devnum}:${boot_partnum} haos-config.txt; then
fatload ${devtype} ${devnum}:${boot_partnum} ${ramdisk_addr_r} haos-config.txt
env import -t ${ramdisk_addr_r} ${filesize}
fi
# Load extraargs
fileenv ${devtype} ${devnum}:${boot_partnum} ${ramdisk_addr_r} cmdline.txt cmdline
# Load device tree
setenv fdtfile rk3566-odroid-m1s.dtb
echo "Loading standard device tree ${fdtfile}"
fatload ${devtype} ${devnum}:${boot_partnum} ${fdt_addr_r} ${fdtfile}
fdt addr ${fdt_addr_r}
# load dt overlays
fdt resize 65536
for overlay_file in ${overlays}; do
if fatload ${devtype} ${devnum}:${boot_partnum} ${ramdisk_addr_r} overlays/${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_file}.dtbo"
fdt apply ${ramdisk_addr_r} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
fatload ${devtype} ${devnum}:${boot_partnum} ${fdt_addr_r} ${fdtfile}
fi
setenv bootargs
for BOOT_SLOT in "${BOOT_ORDER}"; do
if test "x${bootargs}" != "x"; then
# skip remaining slots
elif test "x${BOOT_SLOT}" = "xA"; then
if test ${BOOT_A_LEFT} -gt 0; then
setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1
echo "Trying to boot slot A, ${BOOT_A_LEFT} attempts remaining. Loading kernel ..."
part number ${devtype} ${devnum} hassos-kernel0 kernel_partnum
if load ${devtype} ${devnum}:${kernel_partnum} ${kernel_addr_r} Image; then
setenv bootargs "${bootargs_hassos} ${bootargs_a} rauc.slot=A ${cmdline}"
fi
fi
elif test "x${BOOT_SLOT}" = "xB"; then
if test ${BOOT_B_LEFT} -gt 0; then
setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1
echo "Trying to boot slot B, ${BOOT_B_LEFT} attempts remaining. Loading kernel ..."
part number ${devtype} ${devnum} hassos-kernel1 kernel_partnum
if load ${devtype} ${devnum}:${kernel_partnum} ${kernel_addr_r} Image; then
setenv bootargs "${bootargs_hassos} ${bootargs_b} rauc.slot=B ${cmdline}"
fi
fi
fi
done
if test -n "${bootargs}"; then
run storebootstate
else
echo "No valid slot found, resetting tries to 3"
setenv BOOT_A_LEFT 3
setenv BOOT_B_LEFT 3
run storebootstate
reset
fi
echo "Starting kernel"
booti ${kernel_addr_r} - ${fdt_addr_r}
echo "Boot failed, resetting..."
reset

View File

@ -0,0 +1 @@

View File

@ -1 +1 @@
console=tty0 console=ttyAML0,115200n8
console=ttyAML0,115200n8 console=tty0

View File

@ -3,8 +3,6 @@
function hassos_pre_image() {
local BOOT_DATA="$(path_boot_dir)"
local UBOOT_G12B="${BINARIES_DIR}/u-boot.g12b"
local SPL_IMG="$(path_spl_img)"
cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr"
cp "${BINARIES_DIR}"/*.dtb "${BOOT_DATA}/"
@ -13,11 +11,6 @@ function hassos_pre_image() {
cp "${BINARIES_DIR}"/*.dtbo "${BOOT_DATA}/overlays/"
cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
# SPL
create_spl_image
dd if="${UBOOT_G12B}" of="${SPL_IMG}" conv=notrunc bs=512 seek=1
}

View File

@ -0,0 +1,13 @@
image spl.img {
size = ${BOOT_SPL_SIZE}
hdimage {
partition-table-type = "none"
fill = "yes"
}
partition uboot {
offset = 512
image = "u-boot.g12b"
}
}

View File

@ -3,7 +3,7 @@ BOARD_NAME="Hardkernel ODROID-N2"
CHASSIS=embedded
BOOTLOADER=uboot
KERNEL_FILE=Image
BOOT_SYS=mbr
PARTITION_TABLE_TYPE=mbr
BOOT_SIZE=24M
BOOT_SPL=true
BOOT_SPL_SIZE=8M

View File

@ -0,0 +1,7 @@
partition spl {
size = ${BOOT_SPL_SIZE}
image = "spl.img"
in-partition-table = "no"
offset = 0
holes = {"(0; 512)"}
}

View File

@ -25,8 +25,8 @@ test -n "${MACHINE_ID}" || setenv BOOT_CONDITION "systemd.condition-first-boot=t
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 systemd.machine_id=${MACHINE_ID} fsck.repair=yes ${BOOT_CONDITION}"
# HassOS system A/B
setenv bootargs_a "root=PARTUUID=48617373-06 rootfstype=squashfs ro rootwait"
setenv bootargs_b "root=PARTUUID=48617373-08 rootfstype=squashfs ro rootwait"
setenv bootargs_a "root=PARTUUID=48617373-06 ro rootwait"
setenv bootargs_b "root=PARTUUID=48617373-08 ro rootwait"
# Load environment from haos-config.txt
if test -e mmc ${devnum}:1 haos-config.txt; then

View File

@ -1 +1 @@
console=tty1 console=ttySAC2,115200
console=ttySAC2,115200 console=tty0

View File

@ -3,24 +3,10 @@
function hassos_pre_image() {
local BOOT_DATA="$(path_boot_dir)"
local BL1="${BINARIES_DIR}/bl1.bin.hardkernel"
local BL2="${BINARIES_DIR}/bl2.bin.hardkernel.720k_uboot"
local BLTZ="${BINARIES_DIR}/tzsw.bin.hardkernel"
local UBOOT="${BINARIES_DIR}/u-boot.bin"
local spl_img="$(path_spl_img)"
cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr"
cp "${BINARIES_DIR}/exynos5422-odroidxu4.dtb" "${BOOT_DATA}/exynos5422-odroidxu4.dtb"
cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
# SPL
create_spl_image
dd if="${BL1}" of="${spl_img}" conv=notrunc bs=512 seek=1
dd if="${BL2}" of="${spl_img}" conv=notrunc bs=512 seek=31
dd if="${UBOOT}" of="${spl_img}" conv=notrunc bs=512 seek=63
dd if="${BLTZ}" of="${spl_img}" conv=notrunc bs=512 seek=1503
dd if=/dev/zero of="${spl_img}" conv=notrunc bs=512 count=32 seek=2015
}

View File

@ -0,0 +1,33 @@
image spl.img {
size = ${BOOT_SPL_SIZE}
hdimage {
partition-table-type = "none"
fill = "yes"
}
partition 0 {
size = 512
fill = "yes"
}
partition bl1 {
image = "bl1.bin.hardkernel"
holes = {"(15360; 15616)"} # last 256 bytes are overwritten by bl2
}
partition bl2 {
offset = 31s
image = "bl2.bin.hardkernel.720k_uboot"
}
partition uboot {
offset = 63s
image = "u-boot.bin"
}
partition tzsw {
offset = 1503s
image = "tzsw.bin.hardkernel"
}
}

Some files were not shown because too many files have changed in this diff Show More