Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dd185456 authored by Nicolas Pitre's avatar Nicolas Pitre Committed by Nicolas Pitre
Browse files

ARM: plat-omap: make OMAP_UART_INFO into a relative offset



This is the first step to remove PLAT_PHYS_OFFSET usage from the debug
UART code.

Signed-off-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
Tested-by: default avatarTony Lindgren <tony@atomide.com>
Reviewed-by: default avatarKevin Hilman <khilman@ti.com>
parent 639da5ee
Loading
Loading
Loading
Loading
+3 −5
Original line number Original line Diff line number Diff line
@@ -46,11 +46,9 @@ omap_uart_virt: .word 0x0
		bne	99f			@ already configured
		bne	99f			@ already configured


		/* Check the debug UART configuration set in uncompress.h */
		/* Check the debug UART configuration set in uncompress.h */
		mrc	p15, 0, \rp, c1, c0
		and	\rp, pc, #0xff000000
		tst	\rp, #1			@ MMU enabled?
		ldr	\rv, =OMAP_UART_INFO_OFS
		ldreq	\rp, =OMAP_UART_INFO	@ MMU not enabled
		ldr	\rp, [\rp, \rv]
		ldrne	\rp, =omap_uart_p2v(OMAP_UART_INFO)	@ MMU enabled
		ldr	\rp, [\rp, #0]


		/* Select the UART to use based on the UART1 scratchpad value */
		/* Select the UART to use based on the UART1 scratchpad value */
10:		cmp	\rp, #0			@ no port configured?
10:		cmp	\rp, #0			@ no port configured?
+4 −5
Original line number Original line Diff line number Diff line
@@ -49,11 +49,10 @@ omap_uart_lsr: .word 0
		bne	99f			@ already configured
		bne	99f			@ already configured


		/* Check the debug UART configuration set in uncompress.h */
		/* Check the debug UART configuration set in uncompress.h */
		mrc	p15, 0, \rp, c1, c0
		mov	\rp, pc
		tst	\rp, #1			@ MMU enabled?
		ldr	\rv, =OMAP_UART_INFO_OFS
		ldreq	\rp, =OMAP_UART_INFO	@ MMU not enabled
		and	\rp, \rp, #0xff000000
		ldrne	\rp, =omap_uart_p2v(OMAP_UART_INFO)	@ MMU enabled
		ldr	\rp, [\rp, \rv]
		ldr	\rp, [\rp, #0]


		/* Select the UART to use based on the UART1 scratchpad value */
		/* Select the UART to use based on the UART1 scratchpad value */
		cmp	\rp, #0			@ no port configured?
		cmp	\rp, #0			@ no port configured?
+3 −3
Original line number Original line Diff line number Diff line
@@ -16,8 +16,8 @@
#include <linux/init.h>
#include <linux/init.h>


/*
/*
 * Memory entry used for the DEBUG_LL UART configuration. See also
 * Memory entry used for the DEBUG_LL UART configuration, relative to
 * uncompress.h and debug-macro.S.
 * start of RAM. See also uncompress.h and debug-macro.S.
 *
 *
 * Note that using a memory location for storing the UART configuration
 * Note that using a memory location for storing the UART configuration
 * has at least two limitations:
 * has at least two limitations:
@@ -27,7 +27,7 @@
 * 2. We assume printascii is called at least once before paging_init,
 * 2. We assume printascii is called at least once before paging_init,
 *    and addruart has a chance to read OMAP_UART_INFO
 *    and addruart has a chance to read OMAP_UART_INFO
 */
 */
#define OMAP_UART_INFO		(PLAT_PHYS_OFFSET + 0x3ffc)
#define OMAP_UART_INFO_OFS	0x3ffc


/* OMAP1 serial ports */
/* OMAP1 serial ports */
#define OMAP1_UART1_BASE	0xfffb0000
#define OMAP1_UART1_BASE	0xfffb0000
+7 −1
Original line number Original line Diff line number Diff line
@@ -36,7 +36,13 @@ int uart_shift;
 */
 */
static void set_omap_uart_info(unsigned char port)
static void set_omap_uart_info(unsigned char port)
{
{
	*(volatile u32 *)OMAP_UART_INFO = port;
	/*
	 * Get address of some.bss variable and round it down
	 * a la CONFIG_AUTO_ZRELADDR.
	 */
	u32 ram_start = (u32)&uart_shift & 0xf8000000;
	u32 *uart_info = (u32 *)(ram_start + OMAP_UART_INFO_OFS);
	*uart_info = port;
}
}


static void putc(int c)
static void putc(int c)