diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/arm/pl011/aarch32/pl011_console.S | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/arm/pl011/aarch32/pl011_console.S b/drivers/arm/pl011/aarch32/pl011_console.S index ae613b134..e9f95f289 100644 --- a/drivers/arm/pl011/aarch32/pl011_console.S +++ b/drivers/arm/pl011/aarch32/pl011_console.S @@ -63,7 +63,14 @@ func console_pl011_core_init /* Program the baudrate */ /* Divisor = (Uart clock * 4) / baudrate */ lsl r1, r1, #2 +#if (ARM_ARCH_MAJOR == 7) && !defined(ARMV7_SUPPORTS_VIRTUALIZATION) + push {r0,r3} + softudiv r0,r1,r2,r3 + mov r1, r0 + pop {r0,r3} +#else udiv r2, r1, r2 +#endif /* IBRD = Divisor >> 6 */ lsr r1, r2, #6 /* Write the IBRD */ |