[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 05/09/2013 11:10 AM, Ian Campbell wrote: > 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? It comes from a bad merge. I will fix it on the next patch series. >> /* 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. Right will be fix on the next patch series. >> 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? Yes, by puts. init_uart will jump to this function at the end. >> 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 > > > -- Julien _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |