Git log: commit 3b7db3eb84f5b50460778c7c2e6df6540cf942e3
Author: NoisyCoil <noisycoil@tutanota.com>
Date: Sat Oct 18 23:58:08 2025 +0200
New upstream release: 1.5.1
commit c99a5ecebc1db63028d5551844d2d9e8bed9329e
Merge: f6ef473 923c752
Author: NoisyCoil <noisycoil@tutanota.com>
Date: Sat Oct 18 23:56:09 2025 +0200
Update upstream source from tag 'upstream/1.5.1'
Update to upstream version '1.5.1'
with Debian dir 1b6de8e3843e74a930b60e4eb4b3d7c98af18f3d
commit 923c752e7e4b65132f42fa6f7072855477baaf3f
Merge: 7505538 060ce0f
Author: NoisyCoil <noisycoil@tutanota.com>
Date: Sat Oct 18 23:50:37 2025 +0200
New upstream version 1.5.1
commit 060ce0f89b44edda3de156150c5edd3d78199597
Author: Sven Peter <sven@svenpeter.dev>
Date: Mon Oct 13 18:20:35 2025 +0200
kboot_atc: Rename tunables
M3 introduces new tunables that have to be applied before the
axi2af ones anyway so let's rename what used to be called fuses
to common-a and what used to be called common to common-b.
Also add the old name for backwards compatibility
Signed-off-by: Sven Peter <sven@svenpeter.dev>
commit 3373306cdd6f67e064048c851fbf17e8137c2792
Author: Janne Grunau <j@jannau.net>
Date: Wed Oct 1 17:25:54 2025 +0200
kboot: atc: Order atc-phy compatibles reverse chronologically
Reverse chronologically order ensures that later devices with multiple
compatibles matches their compatible first. This is applicable on t602x
devices were the atc-phy nodes have '"atc-phy,t6020", "atc-phy,t8112"'
as compatible.
Suggested-by: Mark Kettenis <kettenis@openbsd.org>
Signed-off-by: Janne Grunau <j@jannau.net>
commit 8779d3858f0f7c46c1aee5c60548431cf8e2289c
Author: Janne Grunau <j@jannau.net>
Date: Thu Oct 2 09:42:58 2025 +0200
CI: build/installer: Install aarch64-unknown-none-softfloat target
Do not explicitily request rustup's stable toolchain as that will not
be fully installed when it diverges from the rust install in github's CI
runner image.
Signed-off-by: Janne Grunau <j@jannau.net>
commit 88c3dec5f2cbcaeaf599029280af02b8f8cf1100
Author: Janne Grunau <j@jannau.net>
Date: Tue Sep 23 23:01:58 2025 +0200
CI: uefi-only: Create installer package explicitly
Github's upload-artifact@v4 action does not add directories to the zip
archive. This is not compatible with the installer. Instead create the
installer package explicitly and upload that that as artifact.
Signed-off-by: Janne Grunau <j@jannau.net>
commit 4c48779216bb391286c8267a67290d3c8740ac0e
Author: Janne Grunau <j@jannau.net>
Date: Sun Sep 21 18:32:04 2025 +0200
CI: uefi-only: Run on tags and `releases/*` branches
Only runs on tags shall be used to update the package for the uefi-only
installer target. Testing on release branches ensures that the workflow
runs before a tag is created.
Signed-off-by: Janne Grunau <j@jannau.net>
commit 3b16554ba59114cac5001fa4721cdd7dad9a1cc6
Author: Janne Grunau <j@jannau.net>
Date: Fri Sep 19 00:13:26 2025 +0200
CI: uefi-only: Include u-boot in boot.bin
Fixes: 54d2c7f ("CI: add target to build UEFI-only boot.bin")
Signed-off-by: Janne Grunau <j@jannau.net>
commit d95f52812ea84393937748bc542938405114ef24
Author: Janne Grunau <j@jannau.net>
Date: Thu Sep 18 23:37:06 2025 +0200
CI: uefi-only: Use m1n1 commit data and linux tag in artifact name
Signed-off-by: Janne Grunau <j@jannau.net>
commit 8588272f06459d408a6f6564cb94f6aade2fa7b5
Author: Janne Grunau <j@jannau.net>
Date: Thu Sep 18 23:31:28 2025 +0200
CI: uefi-only: Adjust path for use as uefi-only installer package
Signed-off-by: Janne Grunau <j@jannau.net>
commit 76b18e14f4544ddedc4c5952dfd60b947a5843c9
Author: Janne Grunau <j@jannau.net>
Date: Thu Sep 18 23:29:23 2025 +0200
CI: uefi-only: Use actions/checkout for linux/u-boot repos
Signed-off-by: Janne Grunau <j@jannau.net>
commit 57387300beeaef49fb86b024c7352b9a0cc6a3c5
Author: Janne Grunau <j@jannau.net>
Date: Sat Sep 13 13:16:56 2025 +0200
CI: add target to build UEFI-only boot.bin
u-boot and linux should be built using specific tags but let's try this
first to avoid forgetting updating tags.
The workflow runs only on main and for pull request touching it to avoid
failures in pull requests due to u-boot and linux changes.
Signed-off-by: Janne Grunau <j@jannau.net>
commit 9c65a88b86f81a58a46bab7e77a3d8e1e323900e
Author: Janne Grunau <j@jannau.net>
Date: Fri Sep 12 20:53:24 2025 +0200
m1n1: toolchain: llvm: Link with `--pie`
ld.lld started with 21.1 using 0x200000 as image base conflicting with
the fixed address of 0x1238 for the .text section used in m1n1's asm.py.
Linking as position independent executable avoids this.
Signed-off-by: Janne Grunau <j@jannau.net>
commit d6c83eaa8c572b3751114443187ce37976f9f3eb
Author: Janne Grunau <j@jannau.net>
Date: Fri Aug 29 09:19:16 2025 +0200
kboot: t6020: Add generic compatibles for downstream compatibility
After discussion with the Linux DT maintainers we agreed to not extend
lists with the generic compatibles anymore [1]. The upstream device
trees for t602x devices will be the first devices affected by this. Let
m1n1 temporarily add these generic compatibles to keep support for t602x
devices in downstream projects relying on generic compatibles.
[1]: https://lore.kernel.org/asahi/12ab93b7-1fc2-4ce0-926e-c8141cfe81bf@kernel.org/
Signed-off-by: Janne Grunau <j@jannau.net>
commit 920f778f84d005561f22a9b96e342f6239453190
Author: Janne Grunau <j@jannau.net>
Date: Wed Aug 13 08:20:29 2025 +0200
kboot_gpu: Fix booting with v6.17-rc1 upstream DT
Booting with Linux 6.17-rc1 device trees fails due to missing
"operating-points-v2" properties. Check for the downstream only
"apple,agx-t*" compatible strings and disable the gpu node if those are
not found.
This serves as temporary fix until
https://github.com/AsahiLinux/m1n1/pull/466 is merged.
Signed-off-by: Janne Grunau <j@jannau.net>
commit b6468a243ea4ed0b03c7b5953e688bf8b0137368
Author: Sven Peter <sven@svenpeter.dev>
Date: Wed Aug 27 19:26:53 2025 +0200
kboot_atc: Add fuses for t6000, t6002, and t8112
These have been converted from the downstream DTS using the following
python script:
import libfdt
import sys
import re
def get_address(dt, node_offset):
# find parent with ranges
parent_offset = node_offset
ranges = None
while parent_offset:
try:
ranges = dt.getprop(parent_offset, "ranges")
except:
pass
if ranges:
break
parent_offset = dt.parent_offset(parent_offset)
addr = dt.getprop(node_offset, "reg").as_int64_list()[0]
for start, parent, size in zip(*[iter(ranges.as_int64_list())] * 3):
if addr >= start and addr < start + size:
return parent - start + addr
return addr
def find_fuses(dtb_blob, idx, soc):
dt = libfdt.Fdt(dtb_blob)
phy = dt.get_alias("atcphy" + str(idx))
if not phy:
return
node_offset = dt.path_offset(phy)
nvmem = dt.getprop(node_offset, "nvmem-cells").as_int32_list()
nvmem_names = dt.getprop(node_offset, "nvmem-cell-names").as_stringlist()
cells = {}
base = None
for phandle, name in zip(nvmem, nvmem_names):
node_offset = dt.node_offset_by_phandle(phandle)
if base is None:
base = dt.getprop(dt.parent_offset(node_offset), "reg").as_int64_list()[0]
base = get_address(dt, dt.parent_offset(node_offset))
reg = base + dt.getprop(node_offset, "reg").as_int32_list()[0]
bits = dt.getprop(node_offset, "bits").as_int32_list()
fuse = [
reg,
] + bits
cells[name] = fuse
table = [
("cio3pll_dco_coarsebin0", "CIO3PLL_DCO_NCTRL", "CIO3PLL_DCO_COARSEBIN_EFUSE0"),
("cio3pll_dco_coarsebin1", "CIO3PLL_DCO_NCTRL", "CIO3PLL_DCO_COARSEBIN_EFUSE1"),
(
"cio3pll_dll_start_capcode",
"CIO3PLL_FRACN_CAN",
"CIO3PLL_DLL_CAL_START_CAPCODE",
),
("cio3pll_dtc_vreg_adjust", "CIO3PLL_DTC_VREG", "CIO3PLL_DTC_VREG_ADJUST"),
("aus_cmn_shm_vreg_trim", "AUS_COMMON_SHIM_BLK_VREG", "AUS_VREG_TRIM"),
("auspll_rodco_encap", "AUSPLL_DCO_EFUSE_SPARE", "AUSPLL_RODCO_ENCAP_EFUSE"),
(
"auspll_rodco_bias_adjust",
"AUSPLL_DCO_EFUSE_SPARE",
"AUSPLL_RODCO_BIAS_ADJUST_EFUSE",
),
(
"auspll_fracn_dll_start_capcode",
"AUSPLL_FRACN_CAN",
"AUSPLL_DLL_START_CAPCODE",
),
("auspll_dtc_vreg_adjust", "AUSPLL_CLKOUT_DTC_VREG", "AUSPLL_DTC_VREG_ADJUST"),
("aus_cmn_shm_vreg_trim", "AUS_COMMON_SHIM_BLK_VREG", "AUS_VREG_TRIM"),
]
print("static const struct atc_fuse_info atc_fuses_t%d_port%d[] = {" % (soc, idx))
for name, a, b in table:
cell = cells[name]
print(
" {"
+ hex(cell[0])
+ ", "
+ str(cell[1])
+ ", "
+ str(cell[2])
+ ", "
+ a
+ ", "
+ b
+ "},"
)
print("};")
if __name__ == "__main__":
with open(sys.argv[1], "rb") as f:
fdt = f.read()
match = re.search(r"t(\d+)", sys.argv[1])
soc = int(match.group(1))
for idx in range(10):
find_fuses(fdt, idx, soc)
Signed-off-by: Sven Peter <sven@svenpeter.dev>
commit 068a55c5369c9d80eb6a78d0299c7f4ce2ca2333
Author: Sven Peter <sven@svenpeter.dev>
Date: Thu May 29 16:19:49 2025 +0200
kboot_atc: Copy fuses to FDT as well
Signed-off-by: Sven Peter <sven@svenpeter.dev>
commit 6ab3121241d57f93a550ef1579e627749f8217c1
Author: Sven Peter <sven@svenpeter.dev>
Date: Fri May 30 13:14:14 2025 +0200
types: FIELD_PREP: Ensure that bits outside of mask can't be set
Signed-off-by: Sven Peter <sven@svenpeter.dev>
commit 196f2ad7619330dc4c5e9d530d769662071fe012
Author: Janne Grunau <j@jannau.net>
Date: Sun Aug 3 10:24:05 2025 +0200
Drop PackIt integration
PackIt ends up more annoying than helpful since source code and rpm spec
file are not in sync. Drop it since importing the spec file from fedora
and keeping it in sync is not an attractive option either.
Signed-off-by: Janne Grunau <j@jannau.net>