* [PATCH 1/2] debug_ll: pl011: add PBL console helper @ 2026-01-12 8:56 Ahmad Fatoum 2026-01-12 8:56 ` [PATCH 2/2] ARM: cpu: setupc: implement 32-bit relocate_to_adr_full Ahmad Fatoum 0 siblings, 1 reply; 2+ messages in thread From: Ahmad Fatoum @ 2026-01-12 8:56 UTC (permalink / raw) To: barebox; +Cc: Ahmad Fatoum For use with pbl_set_putc, define a helper for PL011, like we already do for NS16550. Signed-off-by: Ahmad Fatoum <a.fatoum@barebox.org> --- include/debug_ll/pl011.h | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/include/debug_ll/pl011.h b/include/debug_ll/pl011.h index 12f9ce1564c5..aeec456f2006 100644 --- a/include/debug_ll/pl011.h +++ b/include/debug_ll/pl011.h @@ -3,25 +3,36 @@ #ifndef __INCLUDE_ARM_ASM_DEBUG_LL_PL011_H__ #define __INCLUDE_ARM_ASM_DEBUG_LL_PL011_H__ +#include <io.h> +#include <linux/amba/serial.h> + +static inline void debug_ll_pl011_putc(void __iomem *base, int c) +{ + /* Wait until there is space in the FIFO */ + while (readl(base + UART01x_FR) & UART01x_FR_TXFF) + ; + + /* Send the character */ + writel(c, base + UART01x_DR); +} + +#ifdef CONFIG_DEBUG_LL + #ifndef DEBUG_LL_UART_ADDR #error DEBUG_LL_UART_ADDR is undefined! #endif -#include <io.h> -#include <linux/amba/serial.h> - static inline void PUTC_LL(char c) { - /* Wait until there is space in the FIFO */ - while (readl(DEBUG_LL_UART_ADDR + UART01x_FR) & UART01x_FR_TXFF) - ; + void __iomem *base = IOMEM(DEBUG_LL_UART_ADDR); - /* Send the character */ - writel(c, DEBUG_LL_UART_ADDR + UART01x_DR); + debug_ll_pl011_putc(base, c); /* Wait to make sure it hits the line, in case we die too soon. */ - while (readl(DEBUG_LL_UART_ADDR + UART01x_FR) & UART01x_FR_TXFF) + while (readl(base + UART01x_FR) & UART01x_FR_TXFF) ; } +#endif + #endif /* __INCLUDE_ARM_ASM_DEBUG_LL_PL011_H__ */ -- 2.47.3 ^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH 2/2] ARM: cpu: setupc: implement 32-bit relocate_to_adr_full 2026-01-12 8:56 [PATCH 1/2] debug_ll: pl011: add PBL console helper Ahmad Fatoum @ 2026-01-12 8:56 ` Ahmad Fatoum 0 siblings, 0 replies; 2+ messages in thread From: Ahmad Fatoum @ 2026-01-12 8:56 UTC (permalink / raw) To: barebox; +Cc: Ahmad Fatoum To move barebox out of QEMU's NOR flash and into RAM, implement relocate_to_adr_full(), like we already do for ARM64. Signed-off-by: Ahmad Fatoum <a.fatoum@barebox.org> --- The series adding support for ARM Qemu Virt -bios will make use of this, but this is already useful for other boards, so sending it out now. --- arch/arm/cpu/setupc_32.S | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/arch/arm/cpu/setupc_32.S b/arch/arm/cpu/setupc_32.S index d3449d9646b9..0134637f6296 100644 --- a/arch/arm/cpu/setupc_32.S +++ b/arch/arm/cpu/setupc_32.S @@ -43,12 +43,21 @@ ENDPROC(setup_c) * executing at new address. */ .section .text.relocate_to_adr +#ifdef __PBL__ +ENTRY(relocate_to_adr_full) + ldr r2, =__image_end + b 1f +#endif + ENTRY(relocate_to_adr) - /* r0: target address */ + ldr r2, =__bss_start + b 1f + +1: push {r3, r4, r5, r6, r7, r8} mov r7, lr - mov r6, r0 + mov r6, r0 /* r0: target address */ bl get_runtime_offset @@ -61,8 +70,6 @@ ENTRY(relocate_to_adr) cmp r1, r6 /* already at correct address? */ beq 1f /* yes, skip copy to new address */ - ldr r2, =__bss_start - sub r2, r2, r8 /* r2: size */ mov r0, r6 /* r0: target */ -- 2.47.3 ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-01-12 8:57 UTC | newest] Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2026-01-12 8:56 [PATCH 1/2] debug_ll: pl011: add PBL console helper Ahmad Fatoum 2026-01-12 8:56 ` [PATCH 2/2] ARM: cpu: setupc: implement 32-bit relocate_to_adr_full Ahmad Fatoum
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox