[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [XEN RFC PATCH 02/40] xen/arm: Print a 64-bit number in hex from early uart
Hi Julien, > -----Original Message----- > From: Julien Grall <julien@xxxxxxx> > Sent: 2021年8月19日 21:05 > To: Wei Chen <Wei.Chen@xxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx; > sstabellini@xxxxxxxxxx; jbeulich@xxxxxxxx > Cc: Bertrand Marquis <Bertrand.Marquis@xxxxxxx> > Subject: Re: [XEN RFC PATCH 02/40] xen/arm: Print a 64-bit number in hex > from early uart > > Hi Wei, > > On 11/08/2021 11:23, Wei Chen wrote: > > Current putn function that is using for early print > > only can print low 32-bit of AArch64 register. This > > will lose some important messages while debugging > > with early console. For example: > > (XEN) Bringing up CPU5 > > - CPU 0000000100000100 booting - > > Will be truncated to > > (XEN) Bringing up CPU5 > > - CPU 00000100 booting - > > > > In this patch, we increased the print loops and shift > > bits to make putn print 64-bit number. > > > > Signed-off-by: Wei Chen <wei.chen@xxxxxxx> > > Acked-by: Julien Grall <jgrall@xxxxxxxxxx> > > > --- > > xen/arch/arm/arm64/head.S | 9 +++++---- > > 1 file changed, 5 insertions(+), 4 deletions(-) > > > > diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S > > index aa1f88c764..b32639d7d6 100644 > > --- a/xen/arch/arm/arm64/head.S > > +++ b/xen/arch/arm/arm64/head.S > > @@ -862,17 +862,18 @@ puts: > > ret > > ENDPROC(puts) > > > > -/* Print a 32-bit number in hex. Specific to the PL011 UART. > > +/* Print a 64-bit number in hex. Specific to the PL011 UART. > > As you modify the line, can you take the opportunity to write: > > /* > * Print a 64-bit... > > And also drop the second sentence as it the code has not been PL011 > specific for quite a while now. > Ok, I will do it in next version > > * x0: Number to print. > > * x23: Early UART base address > > * Clobbers x0-x3 */ > > +#define PRINT_MASK 0xf000000000000000 > > putn: > > adr x1, hex > > - mov x3, #8 > > + mov x3, #16 > > 1: > > early_uart_ready x23, 2 > > - and x2, x0, #0xf0000000 /* Mask off the top nybble */ > > - lsr x2, x2, #28 > > + and x2, x0, #PRINT_MASK /* Mask off the top nybble */ > > + lsr x2, x2, #60 > > ldrb w2, [x1, x2] /* Convert to a char */ > > early_uart_transmit x23, w2 > > lsl x0, x0, #4 /* Roll it through one nybble at > a time */ > > > > Cheers, > > -- > Julien Grall
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |