Commit Graph

100328 Commits

Author SHA1 Message Date
Simon Glass
d512b608dc pickman: Record cherry-pick of 5 commits from us/next
- e44098d1aa arm: mach-k3: am62p: Fixup CPU core, CAN-FD and Video-codec nodes in fdt
- a226a6422c arm: mach-k3: am62p: Fixup thermal zone critical points
- 8d05cbef73 arm: mach-k3: am62p: Fixup a53 max cpu frequency by speed-grade
- 969f43c563 arm: mach-k3: am62p: Set a53 cpu freq based on speed-grade
- e26a9ac4c6 Merge patch series "Add fdt-fixups for AM62P variants"
2025-12-21 18:13:44 -07:00
Tom Rini
e4e089bcb2 Merge patch series "Add fdt-fixups for AM62P variants"
Aparna Patra <a-patra@ti.com> says:

This series implements fdt fixups, by reading hardware
information from registers and accordingly delete/modify
the DT nodes, at run-time.

Logs for AM62P boot:
https://gist.github.com/itsme-aparna/b889fe59882c1acf0ef25a644bd325c4

Link: https://lore.kernel.org/r/20250108044939.392785-1-a-patra@ti.com
(cherry picked from commit e26a9ac4c6)
2025-12-21 18:12:21 -07:00
Aparna Patra
4e979aaa5b arm: mach-k3: am62p: Set a53 cpu freq based on speed-grade
The maximum frequency of the A53 CPU on the AM62P depends on the speed
grade of the SoC. This value is hardcoded in the DT for all AM62P
variants, potentially causing specifications to be exceeded. Moreover,
setting a common lower frequency for all variants increases boot time.
To prevent these issues, modify the DT at runtime from the R5 core to
adjust the A53 CPU frequency.

Signed-off-by: Aparna Patra <a-patra@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
(cherry picked from commit 969f43c563)
2025-12-21 18:12:21 -07:00
Aparna Patra
8e10079bf7 arm: mach-k3: am62p: Fixup a53 max cpu frequency by speed-grade
AM62P SoC has multiple speed grades. Add function to delete
non-relevant CPU frequency nodes, based on the information
retrieved from hardware registers. Fastest grade's maximum
frequency also depends on PMIC voltage, hence to simplify
implementation use the smaller value.

Signed-off-by: Aparna Patra <a-patra@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
(cherry picked from commit 8d05cbef73)
2025-12-21 18:12:21 -07:00
Aparna Patra
767ce53d88 arm: mach-k3: am62p: Fixup thermal zone critical points
Read the max temperature for the SoC temperature grade from the hardware
and modify the critical trip nodes on each thermal zone of FDT at
runtime so they are correct with the hardware value for its grade.

Signed-off-by: Aparna Patra <a-patra@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
(cherry picked from commit a226a6422c)
2025-12-21 18:12:21 -07:00
Aparna Patra
95dc001586 arm: mach-k3: am62p: Fixup CPU core, CAN-FD and Video-codec nodes in fdt
AM62P SOC is available in multiple variants:
-CPU cores (Cortex-A) AM62Px1 (1 core),
 AM62Px2 (2 cores), AM62Px4 (4 cores)
-With and without CAN-FD & Video-codec support

Remove the relevant FDT nodes by reading the actual configuration
from the SoC registers, with that change it is possible to have a single
dts/dtb file handling the different variant at runtime.

Signed-off-by: Aparna Patra <a-patra@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
(cherry picked from commit e44098d1aa)
2025-12-21 18:12:21 -07:00
Simon Glass
b8c5c58767 Merge branch 'cherry8' into 'master'
pickman: A few small fixes

See merge request u-boot/u-boot!285
2025-12-22 01:07:47 +00:00
Simon Glass
7ceabc05f6 pickman: Skip push pipeline for rebases to avoid duplicates
When rebasing MRs, two CI pipelines are triggered: one for the push
and another when GitLab detects the MR source branch update. Also,
the MR title can inadvertently be changed during rebases.

Fix this by:
- Removing --run-ci flag from the push-branch command in the review
  agent prompt (GitLab triggers an MR pipeline automatically)
- Adding an instruction not to update the MR title during rebases

Update the CI Pipelines documentation to reflect that all pushes
(both initial and updates) skip the push pipeline.

Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-22 01:07:26 +00:00
Simon Glass
5cab831b93 pickman: Add signal mechanism for already-applied commits
When commits have already been applied to the target branch via a
different path (with different hashes), cherry-picking fails with
conflicts. Pickman has no way to detect this situation, resulting
in confusing MRs and requiring manual intervention.

Add a signal mechanism so the agent can communicate this status back
to pickman. When the first cherry-pick fails with conflicts, the agent
checks if commits are already present in the target branch by matching
subjects. If all commits are found:

- The agent aborts the cherry-pick and writes a signal file
  (.pickman-signal) with 'already_applied' status
- Pickman reads this signal and handles it appropriately:
  - Marks commits as 'skipped' in the database
  - Updates source position to advance past these commits
  - Creates an MR with [skipped] prefix to record the attempt

This allows automated workflows to continue without manual intervention.

Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-22 01:07:26 +00:00
Simon Glass
99762d81df Merge branch 'bmh' into 'master'
buildman: Increase test coverage for boards.py

See merge request u-boot/u-boot!284
2025-12-22 01:07:16 +00:00
Simon Glass
f40c1031e4 buildman: Increase test coverage for boards.py
Add a new test_boards.py with 26 tests to achieve 100% coverage for
boards.py.

Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-22 01:07:09 +00:00
Simon Glass
844e68ee1f Merge branch 'cherry-8ff96fb6d01' into 'master'
[pickman] Merge patch series "Inline ECC Series"

See merge request u-boot/u-boot!281
2025-12-22 00:40:00 +00:00
Simon Glass
b80bc1753e pickman: Record cherry-pick of 10 commits from us/next
- 8ff96fb6d0 arm: dts: k3-*-ddr: Add ss_cfg reg entry
- fed3b1eb9b ram: k3-ddrss: Use the DDR controller BIST engine for ECC priming
- 22ce56a3eb ram: k3-ddrss: Add k3_ddrss_ddr_bank_base_size_calc() to solve 'calculations restricted to 32 bits' issue
- 39d66893ef ram: k3-ddrss: Setup ECC region start and range
- 42957c3a8b ram: k3-ddrss: Enable ECC interrupts
- 98dd3c126e drivers: ram: Kconfig: Add CONFIG_K3_INLINE_ECC
- 7a84969dcb ram: k3-ddrss: Remove 'ti,ecc-enable' support
- 01fa91bd5b arm: mach-k3: Set NR_DRAM_BANKS to 2
- bc07851897 board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled
- 08733bf313 Merge patch series "Inline ECC Series"
2025-12-21 15:11:24 -07:00
Tom Rini
d1d0e436bf Merge patch series "Inline ECC Series"
Santhosh Kumar K <s-k6@ti.com> says:

Hello,

This series adds support for Inline ECC in DDR for AM64X, AM62X,
AM62AX, AM62PX, J721E, J721S2, J722S and J784S4 devices.

Test Results: https://gist.github.com/santhosh21/88de920771ed2efa0463a5a367cb8d7b

Link: https://lore.kernel.org/r/20250106090708.1541212-1-s-k6@ti.com
(cherry picked from commit 08733bf313)
2025-12-21 15:11:24 -07:00
Santhosh Kumar K
71b87b5062 board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled
As there are few redundant functions in board/ti/*/evm.c files, pull
them to a common location of access to reuse and include the common file
to access the functions.

Call k3-ddrss driver through fixup_ddr_driver_for_ecc() to fixup the
device tree and resize the available amount of DDR, if ECC is enabled.
Otherwise, fixup the device tree using the regular
fdt_fixup_memory_banks().

Also call dram_init_banksize() after every call to
fixup_ddr_driver_for_ecc() is made so that gd->bd is populated
correctly.

Ensure that fixup_ddr_driver_for_ecc() is agnostic to the number of DDR
controllers present.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
(cherry picked from commit bc07851897)
2025-12-21 15:11:24 -07:00
Neha Malcom Francis
eb453a0eba arm: mach-k3: Set NR_DRAM_BANKS to 2
Set CONFIG_NR_DRAM_BANKS to 2 as we have two banks described in the
memory/ node for lower and higher addressible DDR regions.

This allows use of FDT functions from fdt_support.c to set up and fix up
the memory/ node correctly.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
(cherry picked from commit 01fa91bd5b)
2025-12-21 15:11:24 -07:00
Santhosh Kumar K
96233cc766 ram: k3-ddrss: Remove 'ti,ecc-enable' support
The functionality of enabling Inline ECC is now controlled by
CONFIG_K3_INLINE_ECC. So, remove the support for 'ti,ecc-enable'
property to avoid redundancy and to ensure the Inline ECC feature is
mananged through build-time config.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
(cherry picked from commit 7a84969dcb)
2025-12-21 15:11:24 -07:00
Neha Malcom Francis
6c24691eaf drivers: ram: Kconfig: Add CONFIG_K3_INLINE_ECC
Add CONFIG_K3_INLINE_ECC so that ECC functions can be compiled into R5 SPL
only when the config has been enabled.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
(cherry picked from commit 98dd3c126e)
2025-12-21 15:11:24 -07:00
Santhosh Kumar K
77f4cd2b41 ram: k3-ddrss: Enable ECC interrupts
Enable ECC 1-bit error, 2-bit error, multiple 1-bit error interrupts
by setting the respective bits in the DDRSS_V2A_INT_SET_REG register.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
(cherry picked from commit 42957c3a8b)
2025-12-21 15:11:24 -07:00
Santhosh Kumar K
6edd6a60ef ram: k3-ddrss: Setup ECC region start and range
Setup the ECC region's start and range using the device private data,
ddrss->ddr_bank_base[0] and ddrss->ddr_ram_size. Also, move start and
range of ECC regions from 32 bits to 64 bits to accommodate for
DDR greater than or equal to 4GB.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
(cherry picked from commit 39d66893ef)
2025-12-21 15:11:24 -07:00
Santhosh Kumar K
c82b781805 ram: k3-ddrss: Add k3_ddrss_ddr_bank_base_size_calc() to solve 'calculations restricted to 32 bits' issue
As R5 is a 32 bit processor, the RAM banks' base and size calculation
is restricted to 32 bits, which results in wrong values if bank's base
is greater than 32 bits or bank's size is greater than or equal to 4GB.

So, add k3_ddrss_ddr_bank_base_size_calc() to get the base address and
size of RAM's banks from the device tree memory node, and store in a
64 bit device private data which can be used for ECC reserved memory
calculation, Setting ECC range and Fixing up bank size in device tree
when ECC is enabled.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
(cherry picked from commit 22ce56a3eb)
2025-12-21 15:11:24 -07:00
Georgi Vlaev
9ac5f89609 ram: k3-ddrss: Use the DDR controller BIST engine for ECC priming
The 1-bit inline ECC support in TI's DDRSS bridge requires
the configured memory regions to be preloaded with a pattern
before use. This is done by the k3-ddrss driver from the
R5 SPL in a 'for' loop. It takes around 10 seconds to fill
2GB of memory, for example. Memset can cut the time in half
and using DMA currently yields a similar result.

The BIST engine of DDR controller provides support for
initializing any memory region with a pattern. This
bypasses the DDRSS bridge, so the required inline ECC
data is not computed and populated in the memory. For
some values like zero, the computed ECC syndrome is also
zero and we can use these values to preload the memory
from the DDR controller, without the assistance of the
bridge.

The registers involved in the process are described in the
'DDR controller registers' topic in [1] AM62 and [2] J721E
reference manuals.

The patch replaces the 'for' loop memory fill function with
the BIST memory initialization procedure. This cuts the time
to preload the 2GB memory from 10 seconds down to 1 second.
The bist preload function uses the lpddr4 APIs in the k3-ddrss,
so this is compatible with devices with both 16-bit LPDDR4 and
32-bit LPDDR4 interfaces (e.g J721E).

[1] AM62x: https://www.ti.com/lit/pdf/spruiv7
[2] DRA829/TDA4VM: https://www.ti.com/lit/zip/spruil1

Signed-off-by: Georgi Vlaev <g-vlaev@ti.com>
Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
(cherry picked from commit fed3b1eb9b)
2025-12-21 15:11:24 -07:00
Santhosh Kumar K
c678dfd606 arm: dts: k3-*-ddr: Add ss_cfg reg entry
Add ss_cfg memory region which maps the DDRSS configuration region
for the memory controller node.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Tested-by: Neha Malcom Francis <n-francis@ti.com>
(cherry picked from commit 8ff96fb6d0)
2025-12-21 15:11:24 -07:00
Simon Glass
268ef9933b Merge branch 'extf' into 'master'
ext4l: Add jbd2 and remaining ext4l files to build

See merge request u-boot/u-boot!280
2025-12-21 22:02:14 +00:00
Simon Glass
aa0782825e ext4l: Add fsmap.c to the build
Update fsmap.c to use ext4_uboot.h and add the required stubs:
- struct fsmap and related FMR_* macros
- trace_ext4_fsmap_* stub macros
- list_sort and sort stub macros

Cover-letter:
ext4l: Add jbd2 and remaining ext4l files to build
This series continues the ext4l port by adding the jbd2 journaling layer
and remaining ext4l files to the build.

Changes:
- Fix pr_emerg() macro to use log_emer()
- Import jbd2 source files from Linux 6.18
- Add jbd2 files to build: checkpoint, commit, journal, recovery,
  revoke, transaction
- Add ext4l files to build: migrate, mmp, move_extent, resize, fsmap

Each file addition includes the necessary stubs in ext4_uboot.h and
removes redundant stubs from stub.c as real implementations become
available.
END

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
a9422f0bf2 ext4l: Add resize.c to the build
Add filesystem-resize support.

Use ext4_uboot.h compatibility layer and add stubs for:
- test_and_set_bit_lock - forwards to test_and_set_bit
- div64_u64 - simple 64-bit division
- time_is_before_jiffies - always returns false

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
6e336ef205 ext4l: Add move_extent.c to the build
Add support for extent-moving for write operations.

Use ext4_uboot.h compatibility layer and add stubs for:
- down_write_nested - forwards to down_write
- filemap_release_folio, IS_SWAPFILE, PAGE_MASK
- lock_two_nondirectories, unlock_two_nondirectories

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
4dd4cfcc71 ext4l: Add mmp.c to the build
Add support for multi-mount protection.

Use ext4_uboot.h compatibility layer and add stubs for:
- init_utsname() - returns static node name "u-boot"
- sb_start_write/sb_end_write - no-op stubs

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
f8f6570a77 ext4l: Add migrate.c to the build
Add extent migration support for write operations.

Use the ext4_uboot.h compatibility layer instead of Linux headers.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
5c428be137 jbd2: Add transaction.c to the build
Add transaction.c to the jbd2 Makefile and update includes to use the
ext4l compatibility layer.

Add stubs for various functions needed by transaction.c including
atomic_add_return, prepare_to_wait_exclusive, rwsem_acquire_read,
hrtimer functions, and JBD2 trace stubs.

Remove JBD2 transaction function stubs that are now provided by
transaction.c.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
81d8264b76 jbd2: Add revoke.c to the build
Add revoke.c to the jbd2 Makefile and update its includes to use the
compatibility layer.

Add stubs for hash_64 and __find_get_block_nonatomic()

Remove JBD2 revoke function stubs that are now provided by revoke.c.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
87f7e16bfa jbd2: Add recovery.c to the build
Add recovery.c to the jbd2 Makefile and update includes to use the ext4l
compatibility layer.

Add stubs for revoke.c functions that recovery.c depends on and tweak a
few so things build.

Fix sync_blockdev to return int instead of void.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
525cff9f6c jbd2: Add journal.c to the build
Add journal.c to the jbd2 Makefile and update includes to use the
ext4l compatibility layer.

Add stubs for functions from recovery.c, revoke.c, and transaction.c
that journal.c depends on.

Remove JBD2 function stubs from stub.c that are now provided by
journal.c.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 14:15:36 -07:00
Simon Glass
c113b81eab jbd2: Add checkpoint.c to the build
Update checkpoint.c includes to use ext4_uboot.h compatibility layer.
Add jbd2/Makefile and include jbd2 in the build via fs/Makefile

Add necessary stubs and definitions:
- JBD2 trace stubs (trace_jbd2_checkpoint, etc.)
- mutex_lock_io, write_dirty_buffer, spin_needbreak stubs
- bd_dev field to struct block_device
- Temporary JBD2 function stubs until other jbd2 files are added

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
33ba48ad14 jbd2: Add journal.c from Linux
Add the JBD2 journaling layer core journal management from the
Linux 6.18 kernel ext4 filesystem driver.

journal.c handles:
- Journal initialisation and destruction
- Superblock management
- Journal thread (kjournald2) operations
- Block-mapping for journal storage
- Feature flag management
- Journal format versioning
- Fast-commit support infrastructure

This file provides the main journal_t structure management and
is the entry point for creating and destroying journals.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
d2feaa01d8 jbd2: Add transaction.c from Linux
Add the JBD2 journaling layer transaction management from the
Linux 6.18 kernel ext4 filesystem driver.

transaction.c handles:
- Transaction lifecycle (start, stop, restart)
- Handle management for filesystem operations
- Buffer attachment to transactions
- Transaction state machine
- Credit reservation and accounting
- Metadata and data buffer journaling

This is the core transaction API that ext4 uses to ensure
atomic updates to filesystem metadata.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
c5bf8fcdf2 jbd2: Add recovery.c and commit.c from Linux
Add the JBD2 journaling layer recovery and commit functionality
from the Linux 6.18 kernel ext4 filesystem driver.

recovery.c handles:
- Journal recovery after unclean shutdown
- Transaction replay and verification
- Descriptor block parsing
- Revoke block processing

commit.c handles:
- Transaction commit processing
- Descriptor block writing
- Data and metadata buffer submission
- Checksum calculation for journal blocks

These files are needed for journal integrity and crash recovery in the
ext4 filesystem.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
83206febed jbd2: Add checkpoint.c and revoke.c from Linux
Add the JBD2 journaling layer checkpoint and revoke functionality
from the Linux 6.18 kernel ext4 filesystem driver.

checkpoint.c handles:
- Log space management and checkpointing
- Buffer flushing and cleanup
- Transaction checkpoint processing

revoke.c handles:
- Block revocation for journal recovery
- Revoke record management
- Hash table for revoked blocks

These files are part of the JBD2 (Journaling Block Device 2) layer
that provides transaction support for ext4.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
3b51642751 printk: Fix pr_emerg to use log_emer
The pr_emerg macro was calling log_emerg which doesn't exist. The
correct function name is log_emer, matching the LOGL_EMERG log level.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 14:15:36 -07:00
Simon Glass
2e36fa45ef Merge branch 'cherry7' into 'master'
CI: Fix quoting for --shallow-since date

See merge request u-boot/u-boot!279
2025-12-21 20:50:00 +00:00
Simon Glass
9736ccce07 CI: Fix quoting for --shallow-since date
The date format from 'git log --format=%ci' includes spaces
(e.g., "2024-01-15 17:28:00 -0700"). Without quotes, the shell
splits this and git sees only "17:28:00" as an invalid refspec.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 13:01:57 -07:00
Simon Glass
72d06f1289 Merge branch 'cherry7' into 'master'
CI: Fetch minimal history before GitHub push

See merge request u-boot/u-boot!278
2025-12-21 19:00:03 +00:00
Simon Glass
44b7a6a332 CI: Fetch minimal history before GitHub push
The trigger_snap_builds job fails when pushing to GitHub because GitLab
uses shallow clones by default. GitHub may expect objects that aren't
present in the shallow clone.

Fix this by fetching only the commits needed: first get GitHub's current
master (depth=1), then fetch from origin only commits since that date.
This is much faster than fetching the entire history.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 11:59:01 -07:00
Simon Glass
5499abcf69 Merge branch 'cherry6' into 'master'
CI: Fix safe.directory error for GitHub push

See merge request u-boot/u-boot!277
2025-12-21 18:15:08 +00:00
Simon Glass
48638cb1e5 CI: Fix safe.directory error for GitHub push
Add git safe.directory config before pushing to GitHub to avoid
"dubious ownership" errors in the CI container environment.

Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 10:54:04 -07:00
Simon Glass
9ff001e594 Merge branch 'cherry5' into 'master'
pickman and CI improvements

See merge request u-boot/u-boot!276
2025-12-21 15:22:09 +00:00
Simon Glass
7ecd1216aa pickman: Fix push errors for new and aborted branches
Fix two issues with push-branch:

1. Handle missing remote branch: When pushing a new branch for the
   first time, the fetch to update tracking refs fails because the
   branch doesn't exist on the remote yet. Handle this by catching
   the fetch failure and using regular --force instead of
   --force-with-lease for new branches.

2. Detect aborted cherry-picks: When the agent aborts a cherry-pick
   (e.g., because commits are already applied), it may delete the
   branch. Verify the branch exists after the agent runs to avoid
   attempting to push a non-existent branch.

Cover-letter:
pickman and CI improvements
This series contains pickman enhancements and a CI fix:

- Process MRs oldest first to handle rebases chronologically
- Add --run-ci option for push-branch to trigger pipelines after rebase
- Fix force-push tracking ref issues by fetching before push
- Handle edge cases: new branches and agent-aborted cherry-picks
- Push master to GitHub for ReadTheDocs documentation rebuilds
END

Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 08:19:22 -07:00
Simon Glass
cdd3ed1365 pickman: Fetch before force-push to update tracking refs
When using --force-with-lease with an HTTPS URL (instead of a remote
name), git cannot find the tracking refs automatically. This causes
"stale info" errors when the local tracking ref is out of date.

Fix by fetching the branch first to update the tracking ref before
pushing.

Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 08:15:41 -07:00
Simon Glass
5b83f25996 pickman: Add --run-ci option for push-branch command
Add a --run-ci flag to push-branch that triggers the CI pipeline instead
of skipping it. This is needed when pushing rebased branches where the
MR pipeline should run to verify the changes.

Update the review agent prompt to use --run-ci when pushing after
rebase operations.

Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 08:15:21 -07:00
Simon Glass
64e1d96c06 pickman: Process MRs oldest first
Sort merge requests by created_at ascending so older MRs are processed
before newer ones. This ensures that MRs needing rebase are handled in
chronological order.

Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-21 08:14:16 -07:00