|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V2 28/33] xen/arm: Don't use pl011 UART by default for early printk
On Wed, 2013-05-08 at 03:33 +0100, Julien Grall wrote:
> diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
> index 1ad3364..6af8ca3 100644
> --- a/xen/arch/arm/arm32/Makefile
> +++ b/xen/arch/arm/arm32/Makefile
> @@ -5,4 +5,7 @@ obj-y += mode_switch.o
> obj-y += proc-ca15.o
>
> obj-y += traps.o
> -obj-y += domain.o
> \ No newline at end of file
> +obj-y += domain.o
> +
> +obj-$(EARLY_PRINTK) += debug.o
> +obj-$(CONFIG_EARLY_PL011) += debug-pl011.o
Is this correct now that you are using debug-pl011.inc?
> /* Print a 32-bit number in hex. Specific to the PL011 UART.
> * r0: Number to print.
> - * clobbers r0-r3 */
> + * r11: Early UART base address
> + * clobbers r1-r3 */
This still clobbers r0, via the lsl below.
> putn:
> adr r1, hex
> mov r3, #8
> -1: ldr r2, [r11, #0x18] /* <- UARTFR (Flag register) */
> - tst r2, #0x8 /* Check BUSY bit */
> - bne 1b /* Wait for the UART to be ready */
> +1:
> + early_uart_ready r11, r2
> and r2, r0, #0xf0000000 /* Mask off the top nybble */
> ldrb r2, [r1, r2, lsr #28] /* Convert to a char */
> - str r2, [r11] /* -> UARTDR (Data Register) */
> + early_uart_transmit r11, r2
> lsl r0, #4 /* Roll it through one nybble at a time
> */
> subs r3, r3, #1
> bne 1b
> @@ -329,51 +329,44 @@ fail: PRINT("- Boot failed -\r\n")
> 1: wfe
> b 1b
>
> -#ifdef EARLY_UART_ADDRESS
> +#ifdef EARLY_PRINTK
>
> -/* Bring up the UART. Specific to the PL011 UART.
> - * Clobbers r0-r2 */
> +/* Bring up the UART.
> + * x23: Early UART base address
> + * Clobbers x0-x1 */
Does it actually clobber x1?
> init_uart:
> - mov x1, #0x0
> - strh w1, [x23, #0x24] /* -> UARTIBRD (Baud divisor fraction)
> */
> - mov x1, #0x4 /* 7.3728MHz / 0x4 == 16 * 115200 */
> - strh w1, [x23, #0x24] /* -> UARTIBRD (Baud divisor integer) */
> - mov x1, #0x60 /* 8n1 */
> - strh w1, [x23, #0x24] /* -> UARTLCR_H (Line control) */
> - ldr x1, =0x00000301 /* RXE | TXE | UARTEN */
> - strh w1, [x23, #0x30] /* -> UARTCR (Control Register) */
> + early_uart_init x23, 0
> adr x0, 1f
> - b puts
> + b puts /* Jump to puts */
> 1: .asciz "- UART enabled -\r\n"
> .align 4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |