From: Ahmad Fatoum <hidden> Date: 2026-03-02 13:49:28
qemu-ppce500 was the only PowerPC board with a 1 MiB malloc area, while
other boards range from 16 to 64 MiB and the Kconfig default is 4 MiB.
The small heap caused the talloc stress test to run out of memory
(the test randomly allocates up to 1024 buffers of 1-4096 bytes).
Drop the explicit CONFIG_MALLOC_SIZE override to use the default.
Signed-off-by: Ahmad Fatoum <redacted>
---
arch/powerpc/configs/qemu-ppce500_defconfig | 1 -
1 file changed, 1 deletion(-)
From: Ahmad Fatoum <hidden> Date: 2026-03-02 13:49:29
After sendcontrol("c") in tftp_conversation, the call to
_await_prompt() re-queries global.loglevel. At this point, loglevel
has already been silenced to 0 by the previous _run() command's
cleanup, so _await_prompt() saves 0 as the log level to use for
future commands.
This causes the barebox_interfaces fixture's ifup -a to run at
loglevel 0 on the next test, suppressing the dev_info "DHCP client
bound to address" message that the fixture parses to discover
interfaces. The test_barebox_network_real_tftp test then fails with
"Network testing is only possible with at least one DHCP interface".
Fix by saving and restoring saved_log_level across the _await_prompt()
call.
Co-Authored-By: Claude Opus 4.6 [off-list ref]
Signed-off-by: Ahmad Fatoum <redacted>
---
test/py/test_network.py | 5 +++++
1 file changed, 5 insertions(+)
@@ -68,7 +68,12 @@ def tftp_conversation(barebox, barebox_interface, guestaddr):finally:# terminate a timed-out tftpbarebox.console.sendcontrol("c")+saved_log_level=barebox.saved_log_levelbarebox._await_prompt()+# _await_prompt() re-queries global.loglevel, which has been+# silenced to 0 by _run(), and saves it. Restore the original+# level so subsequent run_check() calls still raise it.+barebox.saved_log_level=saved_log_leveltftp_thread.join()barebox.run_check("ifdown eth0")
From: Ahmad Fatoum <hidden> Date: 2026-03-02 13:49:30
PowerPC e500 uses large CAM-style TLB entries that can't do arbitrary
virtual-to-physical remapping. When arch_remap_range returns -ENOSYS
for the mirroring case, skip the 6 mirroring subtests instead of
counting them as failures.
Co-Authored-By: Claude Opus 4.6 [off-list ref]
Signed-off-by: Ahmad Fatoum <redacted>
---
test/self/mmu.c | 6 ++++++
1 file changed, 6 insertions(+)
@@ -107,6 +107,10 @@ static void test_remap(void)expect_success(ret,"asserting no mirror before remap");ret=arch_remap_range(mirror,buffer_phys,TEST_BUFFER_SIZE,MAP_UNCACHED);+if(ret==-ENOSYS){+skipped_tests+=6;+gotoskip_mirroring;+}expect_success(ret,"remapping with mirroring");for(i=0;i<TEST_BUFFER_SIZE;i+=sizeof(u32)){
@@ -150,6 +154,8 @@ static void test_remap(void)expect_success(ret,"asserting mirroring after remap (virt += 4K)");+skip_mirroring:+ret=remap_range(buffer,TEST_BUFFER_SIZE,MAP_DEFAULT);expect_success(ret,"remapping buffer with default attrs");memtest(buffer,TEST_BUFFER_SIZE,"newly cached buffer");
From: Ahmad Fatoum <hidden> Date: 2026-03-02 13:49:31
initjmp was storing the function pointer at offset 88, which is the CR
(condition register) slot in the jmp_buf, instead of offset 84, which is
the LR (link register) slot. When longjmp later restored the buffer, it
would load uninitialized data into LR and jump to it, causing a crash.
This was caught by the setjmp selftest, which triggered a reboot loop on
qemu-ppce500.
Co-Authored-By: Claude Opus 4.6 [off-list ref]
Signed-off-by: Ahmad Fatoum <redacted>
---
arch/powerpc/lib/setjmp.S | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)