From: Sergei Shtylyov The 8250/Au1x00 driver (drivers/serial/8250_au1x00.c) doesn't claim UART memory ranges and uses wrong (KSEG1-based) UART addresses instead of the physical ones. Sighed-off-by: Sergei Shtylyov Cc: Russell King Cc: Ralf Baechle Signed-off-by: Andrew Morton --- drivers/serial/8250.c | 6 ++++++ drivers/serial/8250_au1x00.c | 5 ++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff -puN drivers/serial/8250_au1x00.c~amd-alchemy-uart-claim-memory-range drivers/serial/8250_au1x00.c --- devel/drivers/serial/8250_au1x00.c~amd-alchemy-uart-claim-memory-range 2006-04-29 23:59:15.000000000 -0700 +++ devel-akpm/drivers/serial/8250_au1x00.c 2006-04-29 23:59:15.000000000 -0700 @@ -30,13 +30,12 @@ { \ .iobase = _base, \ .membase = (void __iomem *)_base,\ - .mapbase = _base, \ + .mapbase = CPHYSADDR(_base), \ .irq = _irq, \ .uartclk = 0, /* filled */ \ .regshift = 2, \ .iotype = UPIO_AU, \ - .flags = UPF_SKIP_TEST | \ - UPF_IOREMAP, \ + .flags = UPF_SKIP_TEST \ } static struct plat_serial8250_port au1x00_data[] = { diff -puN drivers/serial/8250.c~amd-alchemy-uart-claim-memory-range drivers/serial/8250.c --- devel/drivers/serial/8250.c~amd-alchemy-uart-claim-memory-range 2006-04-29 23:59:15.000000000 -0700 +++ devel-akpm/drivers/serial/8250.c 2006-04-29 23:59:15.000000000 -0700 @@ -1906,6 +1906,9 @@ static int serial8250_request_std_resour int ret = 0; switch (up->port.iotype) { + case UPIO_AU: + size = 0x100000; + /* fall thru */ case UPIO_MEM: if (!up->port.mapbase) break; @@ -1938,6 +1941,9 @@ static void serial8250_release_std_resou unsigned int size = 8 << up->port.regshift; switch (up->port.iotype) { + case UPIO_AU: + size = 0x100000; + /* fall thru */ case UPIO_MEM: if (!up->port.mapbase) break; _