Allow late mdesc detection, v4
Subsystems (21)
cover Allow late mdesc detection, v4
Hi all,
Currently, we probe for a mdesc early in boot. At this early stage, the only thing we use the mdesc for is to determine the debug page mapping.
However, the debug addresses (phys and virt) need to be coded into the addruart macro anyway; the dynamic probing is only going to tell us what we already know.
These changes allow us to use the addruart macros to find the debug mapping addresses, rather than pulling them out of the mdesc. This means that the addresses are only kept in the one place, and that we don't need the mdesc nearly as early.
The first change updates all of the addruart macros to return both physical and virtual addresses. I've used 'rp' and 'rv' as the macro arguments to indicate which address goes where
The second change updates the debug setup routine to use the addruart macro to establish the debug mapping, now that we can invoke the macro to find the phyical and virtual addresses.
This allows us to delay the requirement to have a mdesc available until much later. For example, we can parse one from the device tree once we've reached C code.
As they have more complex and/or new debug macros, the following platforms could do with extra testing:
* omap (mach-omap1 and mach-omap2)
* davinci
* tegra
Cheers,
Jeremy
v4:
* updates for 2.6.36
* add changes for tegra
* update davinci
* include fixes for omap[12]
* drop mdesc changes
v3:
* only establish page mapping if !DEBUG_ICEDCC
v2:
* return both phys and virt addresses from addruart
* mask unneeded bits from uart physical address in mapping setup
* remove io_pg_offst and phys_io, in a separate patch
---
Jeremy Kerr (3):
arm/debug: consolidate addruart macros for CONFIG_DEBUG_ICEDCC
arm: return both physical and virtual addresses from addruart
arm: use addruart macro to establish debug mappings
PATCH 1/3 arm/debug: consolidate addruart macros for CONFIG_DEBUG_ICEDCC
We have the same (empty) macro for all IDEDCC flavours, so consolidate it to one.
--- arch/arm/kernel/debug.S | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-)
arch/arm/kernel/debug.S +2 -11
@@ -22,11 +22,11 @@ #if defined(CONFIG_DEBUG_ICEDCC) @@ debug using ARM EmbeddedICE DCC channel -#if defined(CONFIG_CPU_V6) - .macro addruart, rx, tmp .endm +#if defined(CONFIG_CPU_V6) + .macro senduart, rd, rx mcr p14, 0, \rd, c0, c5, 0 .endm
@@ -51,9 +51,6 @@ #elif defined(CONFIG_CPU_V7) - .macro addruart, rx, tmp - .endm - .macro senduart, rd, rx mcr p14, 0, \rd, c0, c5, 0 .endm
@@ -71,9 +68,6 @@ wait: mrc p14, 0, pc, c0, c1, 0 #elif defined(CONFIG_CPU_XSCALE) - .macro addruart, rx, tmp - .endm - .macro senduart, rd, rx mcr p14, 0, \rd, c8, c0, 0 .endm
@@ -98,9 +92,6 @@ wait: mrc p14, 0, pc, c0, c1, 0 #else - .macro addruart, rx, tmp - .endm - .macro senduart, rd, rx mcr p14, 0, \rd, c1, c0, 0 .endm
PATCH 2/3 arm: return both physical and virtual addresses from addruart
In reply to Jeremy KerrRather than checking the MMU status in every instance of addruart, do it once in kernel/debug.S, and change the existing addruart macros to return both physical and virtual addresses. The main debug code can then select the appropriate address to use.
This will also allow us to retreive the address of a uart for the MMU state that we're not current in.
Updated with fixes for OMAP from Jason Wang <[email protected]> and Tony Lindgren <[email protected]>, and fix for versatile express from Lorenzo Pieralisi <[email protected]>.
--- arch/arm/kernel/debug.S | 14 + arch/arm/mach-aaec2000/include/mach/debug-macro.S | 10 arch/arm/mach-at91/include/mach/debug-macro.S | 8 arch/arm/mach-clps711x/include/mach/debug-macro.S | 12 - arch/arm/mach-cns3xxx/include/mach/debug-macro.S | 10 arch/arm/mach-davinci/include/mach/debug-macro.S | 46 ++-- arch/arm/mach-dove/include/mach/debug-macro.S | 11 - arch/arm/mach-ebsa110/include/mach/debug-macro.S | 7 arch/arm/mach-ep93xx/include/mach/debug-macro.S | 11 - arch/arm/mach-footbridge/include/mach/debug-macro.S | 22 -- arch/arm/mach-gemini/include/mach/debug-macro.S | 8 arch/arm/mach-h720x/include/mach/debug-macro.S | 10 arch/arm/mach-integrator/include/mach/debug-macro.S | 10 arch/arm/mach-iop13xx/include/mach/debug-macro.S | 16 - arch/arm/mach-iop32x/include/mach/debug-macro.S | 7 arch/arm/mach-iop33x/include/mach/debug-macro.S | 12 - arch/arm/mach-ixp2000/include/mach/debug-macro.S | 14 - arch/arm/mach-ixp23xx/include/mach/debug-macro.S | 11 - arch/arm/mach-ixp4xx/include/mach/debug-macro.S | 16 - arch/arm/mach-kirkwood/include/mach/debug-macro.S | 11 - arch/arm/mach-ks8695/include/mach/debug-macro.S | 8 arch/arm/mach-l7200/include/mach/debug-macro.S | 38 +++ arch/arm/mach-lh7a40x/include/mach/debug-macro.S | 10 arch/arm/mach-loki/include/mach/debug-macro.S | 11 - arch/arm/mach-mmp/include/mach/debug-macro.S | 11 - arch/arm/mach-msm/include/mach/debug-macro.S | 10 arch/arm/mach-mv78xx0/include/mach/debug-macro.S | 11 - arch/arm/mach-netx/include/mach/debug-macro.S | 10 arch/arm/mach-nomadik/include/mach/debug-macro.S | 12 - arch/arm/mach-ns9xxx/include/mach/debug-macro.S | 8 arch/arm/mach-omap1/include/mach/debug-macro.S | 68 +++--- arch/arm/mach-omap2/include/mach/debug-macro.S | 127 +++++------- arch/arm/mach-orion5x/include/mach/debug-macro.S | 11 - arch/arm/mach-pnx4008/include/mach/debug-macro.S | 10 arch/arm/mach-pxa/include/mach/debug-macro.S | 10 arch/arm/mach-realview/include/mach/debug-macro.S | 10 arch/arm/mach-rpc/include/mach/debug-macro.S | 12 - arch/arm/mach-s3c2410/include/mach/debug-macro.S | 11 - arch/arm/mach-s3c24a0/include/mach/debug-macro.S | 11 - arch/arm/mach-s3c64xx/include/mach/debug-macro.S | 11 - arch/arm/mach-s5p6440/include/mach/debug-macro.S | 11 - arch/arm/mach-s5p6442/include/mach/debug-macro.S | 11 - arch/arm/mach-s5pc100/include/mach/debug-macro.S | 11 - arch/arm/mach-s5pv210/include/mach/debug-macro.S | 11 - arch/arm/mach-sa1100/include/mach/debug-macro.S | 36 +-- arch/arm/mach-shark/include/mach/debug-macro.S | 7 arch/arm/mach-tegra/include/mach/debug-macro.S | 26 +- arch/arm/mach-u300/include/mach/debug-macro.S | 11 - arch/arm/mach-ux500/include/mach/debug-macro.S | 8 arch/arm/mach-versatile/include/mach/debug-macro.S | 12 - arch/arm/mach-vexpress/include/mach/debug-macro.S | 10 arch/arm/plat-mxc/include/mach/debug-macro.S | 8 arch/arm/plat-spear/include/plat/debug-macro.S | 8 arch/arm/plat-stmp3xxx/include/mach/debug-macro.S | 11 - 54 files changed, 424 insertions(+), 433 deletions(-)
arch/arm/kernel/debug.S +11 -3
@@ -22,7 +22,7 @@ #if defined(CONFIG_DEBUG_ICEDCC) @@ debug using ARM EmbeddedICE DCC channel - .macro addruart, rx, tmp + .macro addruart, rp, rv .endm #if defined(CONFIG_CPU_V6)
@@ -121,6 +121,14 @@ wait: mrc p14, 0, pc, c0, c1, 0 #include <mach/debug-macro.S> #endif /* CONFIG_DEBUG_ICEDCC */ + .macro addruart_current, rx, tmp1, tmp2 + addruart \tmp1, \tmp2 + mrc p15, 0, \rx, c1, c0 + tst \rx, #1 + moveq \rx, \tmp1 + movne \rx, \tmp2 + .endm + /* * Useful debugging routines */
@@ -155,7 +163,7 @@ ENDPROC(printhex2) .ltorg ENTRY(printascii) - addruart r3, r1 + addruart_current r3, r1, r2 b 2f 1: waituart r2, r3 senduart r1, r3
@@ -171,7 +179,7 @@ ENTRY(printascii) ENDPROC(printascii) ENTRY(printch) - addruart r3, r1 + addruart_current r3, r1, r2 mov r1, r0 mov r0, #0 b 1b
arch/arm/mach-aaec2000/include/mach/debug-macro.S +4 -6
@@ -10,12 +10,10 @@ */ #include "hardware.h" - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x80000000 @ physical - movne \rx, #io_p2v(0x80000000) @ virtual - orr \rx, \rx, #0x00000800 + .macro addruart, rp, rv + mov \rp, 0x00000800 + orr \rv, \rp, #io_p2v(0x80000000) @ virtual + orr \rp, \rp, #0x80000000 @ physical .endm .macro senduart,rd,rx
arch/arm/mach-at91/include/mach/debug-macro.S +3 -5
@@ -14,11 +14,9 @@ #include <mach/hardware.h> #include <mach/at91_dbgu.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, =(AT91_BASE_SYS + AT91_DBGU) @ System peripherals (phys address) - ldrne \rx, =(AT91_VA_BASE_SYS + AT91_DBGU) @ System peripherals (virt address) + .macro addruart, rp, rv + ldr \rp, =(AT91_BASE_SYS + AT91_DBGU) @ System peripherals (phys address) + ldr \rv, =(AT91_VA_BASE_SYS + AT91_DBGU) @ System peripherals (virt address) .endm .macro senduart,rd,rx
arch/arm/mach-clps711x/include/mach/debug-macro.S +5 -7
@@ -14,16 +14,14 @@ #include <mach/hardware.h> #include <asm/hardware/clps7111.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #CLPS7111_PHYS_BASE - movne \rx, #CLPS7111_VIRT_BASE + .macro addruart, rp, rv #ifndef CONFIG_DEBUG_CLPS711X_UART2 - add \rx, \rx, #0x0000 @ UART1 + mov \rp, #0x0000 @ UART1 #else - add \rx, \rx, #0x1000 @ UART2 + mov \rp, #0x1000 @ UART2 #endif + orr \rv, \rp, #CLPS7111_VIRT_BASE + orr \rp, \rp, #CLPS7111_PHYS_BASE .endm .macro senduart,rd,rx
arch/arm/mach-cns3xxx/include/mach/debug-macro.S +4 -6
@@ -10,12 +10,10 @@ * published by the Free Software Foundation. */ - .macro addruart,rx - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x10000000 - movne \rx, #0xf0000000 @ virtual base - orr \rx, \rx, #0x00009000 + .macro addruart,rp,rv + mov \rp, #0x00009000 + orr \rv, \rp, #0xf0000000 @ virtual base + orr \rp, \rp, #0x10000000 .endm #include <asm/hardware/debug-pl01x.S>
arch/arm/mach-davinci/include/mach/debug-macro.S +25 -21
60 lines not on this page · raw message
arch/arm/mach-dove/include/mach/debug-macro.S +5 -6
@@ -8,12 +8,11 @@ #include <mach/bridge-regs.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, =DOVE_SB_REGS_PHYS_BASE - ldrne \rx, =DOVE_SB_REGS_VIRT_BASE - orr \rx, \rx, #0x00012000 + .macro addruart, rp, rv + ldr \rp, =DOVE_SB_REGS_PHYS_BASE + ldr \rv, =DOVE_SB_REGS_VIRT_BASE + orr \rp, \rp, #0x00012000 + orr \rv, \rv, #0x00012000 .endm #define UART_SHIFT 2
arch/arm/mach-ebsa110/include/mach/debug-macro.S +4 -3
@@ -11,9 +11,10 @@ * **/ - .macro addruart, rx, tmp - mov \rx, #0xf0000000 - orr \rx, \rx, #0x00000be0 + .macro addruart, rp, rv + mov \rp, #0xf0000000 + orr \rp, \rp, #0x00000be0 + mov \rp, \rv .endm #define UART_SHIFT 2
arch/arm/mach-ep93xx/include/mach/debug-macro.S +5 -6
@@ -11,12 +11,11 @@ */ #include <mach/ep93xx-regs.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, =EP93XX_APB_PHYS_BASE @ Physical base - ldrne \rx, =EP93XX_APB_VIRT_BASE @ virtual base - orr \rx, \rx, #0x000c0000 + .macro addruart, rp, rv + ldr \rp, =EP93XX_APB_PHYS_BASE @ Physical base + ldr \rv, =EP93XX_APB_VIRT_BASE @ virtual base + orr \rp, \rp, #0x000c0000 + orr \rv, \rv, #0x000c0000 .endm #include <asm/hardware/debug-pl01x.S>
arch/arm/mach-footbridge/include/mach/debug-macro.S +10 -12
@@ -15,12 +15,10 @@ #ifndef CONFIG_DEBUG_DC21285_PORT /* For NetWinder debugging */ - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x7c000000 @ physical - movne \rx, #0xff000000 @ virtual - orr \rx, \rx, #0x000003f8 + .macro addruart, rp, rv + mov \rp, #0x000003f8 + orr \rv, \rp, #0x7c000000 @ physical + orr \rp, \rp, #0xff000000 @ virtual .endm #define UART_SHIFT 0
@@ -32,14 +30,14 @@ .equ dc21285_high, ARMCSR_BASE & 0xff000000 .equ dc21285_low, ARMCSR_BASE & 0x00ffffff - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x42000000 - movne \rx, #dc21285_high + .macro addruart, rp, rv .if dc21285_low - orrne \rx, \rx, #dc21285_low + mov \rp, #dc21285_low + .else + mov \rp, #0 .endif + orr \rv, \rp, #0x42000000 + orr \rp, \rp, #dc21285_high .endm .macro senduart,rd,rx
arch/arm/mach-gemini/include/mach/debug-macro.S +3 -5
@@ -11,11 +11,9 @@ */ #include <mach/hardware.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, =GEMINI_UART_BASE @ physical - ldrne \rx, =IO_ADDRESS(GEMINI_UART_BASE) @ virtual + .macro addruart, rp, rv + ldr \rp, =GEMINI_UART_BASE @ physical + ldr \rv, =IO_ADDRESS(GEMINI_UART_BASE) @ virtual .endm #define UART_SHIFT 2
arch/arm/mach-h720x/include/mach/debug-macro.S +4 -6
@@ -16,12 +16,10 @@ .equ io_virt, IO_VIRT .equ io_phys, IO_PHYS - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #io_phys @ physical base address - movne \rx, #io_virt @ virtual address - add \rx, \rx, #0x00020000 @ UART1 + .macro addruart, rp, rv + mov \rp, #0x00020000 @ UART1 + add \rv, \rp, #io_virt @ virtual address + add \rp, \rp, #io_phys @ physical base address .endm .macro senduart,rd,rx
arch/arm/mach-integrator/include/mach/debug-macro.S +4 -6
@@ -11,12 +11,10 @@ * */ - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x16000000 @ physical base address - movne \rx, #0xf0000000 @ virtual base - addne \rx, \rx, #0x16000000 >> 4 + .macro addruart, rp, rv + mov \rp, #0x16000000 @ physical base address + mov \rv, #0xf0000000 @ virtual base + add \rv, \rv, #0x16000000 >> 4 .endm #include <asm/hardware/debug-pl01x.S>
arch/arm/mach-iop13xx/include/mach/debug-macro.S +7 -9
@@ -11,15 +11,13 @@ * published by the Free Software Foundation. */ - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ mmu enabled? - moveq \rx, #0xff000000 @ physical - orreq \rx, \rx, #0x00d80000 - movne \rx, #0xfe000000 @ virtual - orrne \rx, \rx, #0x00e80000 - orr \rx, \rx, #0x00002300 - orr \rx, \rx, #0x00000040 + .macro addruart, rp, rv + mov \rp, #0x00002300 + orr \rp, \rp, #0x00000040 + orr \rv, \rp, #0xfe000000 @ virtual + orr \rv, \rv, #0x00e80000 + orr \rp, \rp, #0xff000000 @ physical + orr \rp, \rp, #0x00d80000 .endm #define UART_SHIFT 2
arch/arm/mach-iop32x/include/mach/debug-macro.S +4 -3
@@ -11,9 +11,10 @@ * published by the Free Software Foundation. */ - .macro addruart, rx, tmp - mov \rx, #0xfe000000 @ physical as well as virtual - orr \rx, \rx, #0x00800000 @ location of the UART + .macro addruart, rp, rv + mov \rp, #0xfe000000 @ physical as well as virtual + orr \rp, \rp, #0x00800000 @ location of the UART + mov \rv, \rp .endm #define UART_SHIFT 0
arch/arm/mach-iop33x/include/mach/debug-macro.S +5 -7
@@ -11,13 +11,11 @@ * published by the Free Software Foundation. */ - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ mmu enabled? - moveq \rx, #0xff000000 @ physical - movne \rx, #0xfe000000 @ virtual - orr \rx, \rx, #0x00ff0000 - orr \rx, \rx, #0x0000f700 + .macro addruart, rp, rv + mov \rp, #0x00ff0000 + orr \rp, \rp, #0x0000f700 + orr \rv, #0xfe000000 @ virtual + orr \rp, #0xff000000 @ physical .endm #define UART_SHIFT 2
arch/arm/mach-ixp2000/include/mach/debug-macro.S +6 -8
@@ -11,16 +11,14 @@ * */ - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0xc0000000 @ Physical base - movne \rx, #0xfe000000 @ virtual base - orrne \rx, \rx, #0x00f00000 - orr \rx, \rx, #0x00030000 + .macro addruart, rp, rv + mov \rp, #0x00030000 #ifdef __ARMEB__ - orr \rx, \rx, #0x00000003 + orr \rp, \rp, #0x00000003 #endif + orr \rv, \rp, #0xfe000000 @ virtual base + orr \rv, \rv, #0x00f00000 + orr \rp, \rp, #0xc0000000 @ Physical base .endm #define UART_SHIFT 2
arch/arm/mach-ixp23xx/include/mach/debug-macro.S +5 -6
@@ -12,13 +12,12 @@ */ #include <mach/ixp23xx.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ mmu enabled? - ldreq \rx, =IXP23XX_PERIPHERAL_PHYS @ physical - ldrne \rx, =IXP23XX_PERIPHERAL_VIRT @ virtual + .macro addruart, rp, rv + ldr \rp, =IXP23XX_PERIPHERAL_PHYS @ physical + ldr \rv, =IXP23XX_PERIPHERAL_VIRT @ virtual #ifdef __ARMEB__ - orr \rx, \rx, #0x00000003 + orr \rp, \rp, #0x00000003 + orr \rv, \rv, #0x00000003 #endif .endm
arch/arm/mach-ixp4xx/include/mach/debug-macro.S +8 -8
@@ -10,16 +10,16 @@ * published by the Free Software Foundation. */ - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0xc8000000 - movne \rx, #0xff000000 - orrne \rx, \rx, #0x00b00000 + .macro addruart, rp, rv #ifdef __ARMEB__ - add \rx,\rx,#3 @ Uart regs are at off set of 3 if - @ byte writes used - Big Endian. + mov \rp, #3 @ Uart regs are at off set of 3 if + @ byte writes used - Big Endian. +#else + mov \rp, #0 #endif + orr \rv, \rp, #0xff000000 @ virtual + orr \rv, \rv, #0x00b00000 + orr \rp, \rp, #0xc8000000 @ physical .endm #define UART_SHIFT 2
arch/arm/mach-kirkwood/include/mach/debug-macro.S +5 -6
@@ -8,12 +8,11 @@ #include <mach/bridge-regs.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, =KIRKWOOD_REGS_PHYS_BASE - ldrne \rx, =KIRKWOOD_REGS_VIRT_BASE - orr \rx, \rx, #0x00012000 + .macro addruart, rp, rv + ldr \rp, =KIRKWOOD_REGS_PHYS_BASE + ldr \rv, =KIRKWOOD_REGS_VIRT_BASE + orr \rp, \rp, #0x00012000 + orr \rv, \rv, #0x00012000 .endm #define UART_SHIFT 2
arch/arm/mach-ks8695/include/mach/debug-macro.S +3 -5
@@ -14,11 +14,9 @@ #include <mach/hardware.h> #include <mach/regs-uart.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, =KS8695_UART_PA @ physical base address - ldrne \rx, =KS8695_UART_VA @ virtual base address + .macro addruart, rp, rv + ldr \rp, =KS8695_UART_PA @ physical base address + ldr \rv, =KS8695_UART_VA @ virtual base address .endm .macro senduart, rd, rx
arch/arm/mach-l7200/include/mach/debug-macro.S new file +38 -0
@@ -0,0 +1,38 @@ +/* arch/arm/mach-l7200/include/mach/debug-macro.S + * + * Debugging macro include header + * + * Copyright (C) 1994-1999 Russell King + * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * +*/ + + .equ io_virt, IO_BASE + .equ io_phys, IO_START + + .macro addruart, rp, rv + mov \rp, #0x00044000 @ UART1 +@ mov \rp, #0x00045000 @ UART2 + add \rv, \rp, #io_virt @ virtual address + add \rp, \rp, #io_phys @ physical base address + .endm + + .macro senduart,rd,rx + str \rd, [\rx, #0x0] @ UARTDR + .endm + + .macro waituart,rd,rx +1001: ldr \rd, [\rx, #0x18] @ UARTFLG + tst \rd, #1 << 5 @ UARTFLGUTXFF - 1 when full + bne 1001b + .endm + + .macro busyuart,rd,rx +1001: ldr \rd, [\rx, #0x18] @ UARTFLG + tst \rd, #1 << 3 @ UARTFLGUBUSY - 1 when busy + bne 1001b + .endm
arch/arm/mach-lh7a40x/include/mach/debug-macro.S +4 -6
@@ -14,12 +14,10 @@ @ It is not known if this will be appropriate for every 40x @ board. - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - mov \rx, #0x00000700 @ offset from base - orreq \rx, \rx, #0x80000000 @ physical base - orrne \rx, \rx, #0xf8000000 @ virtual base + .macro addruart, rp, rv + mov \rp, #0x00000700 @ offset from base + orr \rv, \rp, #0xf8000000 @ virtual base + orr \rp, \rp, #0x80000000 @ physical base .endm .macro senduart,rd,rx
arch/arm/mach-loki/include/mach/debug-macro.S +5 -6
@@ -8,12 +8,11 @@ #include <mach/loki.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, =LOKI_REGS_PHYS_BASE - ldrne \rx, =LOKI_REGS_VIRT_BASE - orr \rx, \rx, #0x00012000 + .macro addruart, rp, rv + ldr \rp, =LOKI_REGS_PHYS_BASE + ldr \rv, =LOKI_REGS_VIRT_BASE + orr \rp, \rp, #0x00012000 + orr \rv, \rv, #0x00012000 .endm #define UART_SHIFT 2
arch/arm/mach-mmp/include/mach/debug-macro.S +5 -6
@@ -11,12 +11,11 @@ #include <mach/addr-map.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, =APB_PHYS_BASE @ physical - ldrne \rx, =APB_VIRT_BASE @ virtual - orr \rx, \rx, #0x00017000 + .macro addruart, rp, rv + ldr \rp, =APB_PHYS_BASE @ physical + ldr \rv, =APB_VIRT_BASE @ virtual + orr \rp, \rp, #0x00017000 + orr \rv, \rv, #0x00017000 .endm #define UART_SHIFT 2
arch/arm/mach-msm/include/mach/debug-macro.S +4 -6
@@ -20,12 +20,10 @@ #include <mach/msm_iomap.h> #ifdef CONFIG_MSM_DEBUG_UART - .macro addruart, rx, tmp + .macro addruart, rp, rv @ see if the MMU is enabled and select appropriate base address - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 - ldreq \rx, =MSM_DEBUG_UART_PHYS - ldrne \rx, =MSM_DEBUG_UART_BASE + ldr \rp, =MSM_DEBUG_UART_PHYS + ldr \rv, =MSM_DEBUG_UART_BASE .endm .macro senduart,rd,rx
@@ -40,7 +38,7 @@ beq 1001b .endm #else - .macro addruart, rx, tmp + .macro addruart, rp, rv .endm .macro senduart,rd,rx
arch/arm/mach-mv78xx0/include/mach/debug-macro.S +5 -6
@@ -8,12 +8,11 @@ #include <mach/mv78xx0.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, =MV78XX0_REGS_PHYS_BASE - ldrne \rx, =MV78XX0_REGS_VIRT_BASE - orr \rx, \rx, #0x00012000 + .macro addruart, rp, rv + ldr \rp, =MV78XX0_REGS_PHYS_BASE + ldr \rv, =MV78XX0_REGS_VIRT_BASE + orr \rp, \rp, #0x00012000 + orr \rv, \rv, #0x00012000 .endm #define UART_SHIFT 2
arch/arm/mach-netx/include/mach/debug-macro.S +4 -6
@@ -13,12 +13,10 @@ #include "hardware.h" - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x00100000 @ physical - movne \rx, #io_p2v(0x00100000) @ virtual - orr \rx, \rx, #0x00000a00 + .macro addruart, rp, rv + mov \rp, #0x00000a00 + orr \rv, \rp, #io_p2v(0x00100000) @ virtual + orr \rp, \rp, #0x00100000 @ physical .endm .macro senduart,rd,rx
arch/arm/mach-nomadik/include/mach/debug-macro.S +5 -7
@@ -10,13 +10,11 @@ * */ - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x10000000 @ physical base address - movne \rx, #0xf0000000 @ virtual base - add \rx, \rx, #0x00100000 - add \rx, \rx, #0x000fb000 + .macro addruart, rp, rv + mov \rp, #0x00100000 + add \rp, \rp, #0x000fb000 + add \rv, \rp, #0xf0000000 @ virtual base + add \rp, \rp, #0x10000000 @ physical base address .endm #include <asm/hardware/debug-pl01x.S>
arch/arm/mach-ns9xxx/include/mach/debug-macro.S +3 -5
@@ -12,11 +12,9 @@ #include <mach/regs-board-a9m9750dev.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 - ldreq \rx, =NS9XXX_CSxSTAT_PHYS(0) - ldrne \rx, =io_p2v(NS9XXX_CSxSTAT_PHYS(0)) + .macro addruart, rp, rv + ldr \rp, =NS9XXX_CSxSTAT_PHYS(0) + ldr \rv, =io_p2v(NS9XXX_CSxSTAT_PHYS(0)) .endm #define UART_SHIFT 2
arch/arm/mach-omap1/include/mach/debug-macro.S +35 -33
91 lines not on this page · raw message
arch/arm/mach-omap2/include/mach/debug-macro.S +63 -64
167 lines not on this page · raw message
arch/arm/mach-orion5x/include/mach/debug-macro.S +5 -6
@@ -10,12 +10,11 @@ #include <mach/orion5x.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, =ORION5X_REGS_PHYS_BASE - ldrne \rx, =ORION5X_REGS_VIRT_BASE - orr \rx, \rx, #0x00012000 + .macro addruart, rp, rv + ldr \rp, =ORION5X_REGS_PHYS_BASE + ldr \rv, =ORION5X_REGS_VIRT_BASE + orr \rp, \rp, #0x00012000 + orr \rv, \rv, #0x00012000 .endm #define UART_SHIFT 2
arch/arm/mach-pnx4008/include/mach/debug-macro.S +4 -6
@@ -11,12 +11,10 @@ * */ - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - mov \rx, #0x00090000 - addeq \rx, \rx, #0x40000000 - addne \rx, \rx, #0xf4000000 + .macro addruart, rp, rv + mov \rp, #0x00090000 + add \rv, \rp, #0xf4000000 @ virtual + add \rp, \rp, #0x40000000 @ physical .endm #define UART_SHIFT 2
arch/arm/mach-pxa/include/mach/debug-macro.S +4 -6
@@ -13,12 +13,10 @@ #include "hardware.h" - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x40000000 @ physical - movne \rx, #io_p2v(0x40000000) @ virtual - orr \rx, \rx, #0x00100000 + .macro addruart, rp, rv + mov \rp, #0x00100000 + orr \rv, \rp, #io_p2v(0x40000000) @ virtual + orr \rp, \rp, #0x40000000 @ physical .endm #define UART_SHIFT 2
arch/arm/mach-realview/include/mach/debug-macro.S +4 -6
@@ -33,12 +33,10 @@ #error "Unknown RealView platform" #endif - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x10000000 - movne \rx, #0xfb000000 @ virtual base - orr \rx, \rx, #DEBUG_LL_UART_OFFSET + .macro addruart, rp, rv + mov \rp, #DEBUG_LL_UART_OFFSET + orr \rv, \rp, #0xfb000000 @ virtual base + orr \rp, \rp, #0x10000000 @ physical base .endm #include <asm/hardware/debug-pl01x.S>
arch/arm/mach-rpc/include/mach/debug-macro.S +5 -7
@@ -11,13 +11,11 @@ * */ - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x03000000 - movne \rx, #0xe0000000 - orr \rx, \rx, #0x00010000 - orr \rx, \rx, #0x00000fe0 + .macro addruart, rp, rv + mov \rp, #0x00010000 + orr \rp, \rp, #0x00000fe0 + orr \rv, \rp, #0xe0000000 @ virtual + orr \rp, \rp, #0x03000000 @ physical .endm #define UART_SHIFT 2
arch/arm/mach-s3c2410/include/mach/debug-macro.S +5 -6
@@ -19,13 +19,12 @@ #define S3C2410_UART1_OFF (0x4000) #define SHIFT_2440TXF (14-9) - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 - ldreq \rx, = S3C24XX_PA_UART - ldrne \rx, = S3C24XX_VA_UART + .macro addruart, rp, rv + ldr \rp, = S3C24XX_PA_UART + ldr \rv, = S3C24XX_VA_UART #if CONFIG_DEBUG_S3C_UART != 0 - add \rx, \rx, #(S3C2410_UART1_OFF * CONFIG_DEBUG_S3C_UART) + add \rp, \rp, #(S3C2410_UART1_OFF * CONFIG_DEBUG_S3C_UART) + add \rv, \rv, #(S3C2410_UART1_OFF * CONFIG_DEBUG_S3C_UART) #endif .endm
arch/arm/mach-s3c24a0/include/mach/debug-macro.S +5 -6
@@ -10,13 +10,12 @@ #include <mach/map.h> #include <plat/regs-serial.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 - ldreq \rx, = S3C24XX_PA_UART - ldrne \rx, = S3C24XX_VA_UART + .macro addruart, rp, rv + ldr \rp, = S3C24XX_PA_UART + ldr \rv, = S3C24XX_VA_UART #if CONFIG_DEBUG_S3C_UART != 0 - add \rx, \rx, #(S3C2410_UART1_OFF * CONFIG_DEBUG_S3C_UART) + add \rp, \rp, #(S3C2410_UART1_OFF * CONFIG_DEBUG_S3C_UART) + add \rv, \rv, #(S3C2410_UART1_OFF * CONFIG_DEBUG_S3C_UART) #endif .endm
arch/arm/mach-s3c64xx/include/mach/debug-macro.S +5 -6
@@ -21,13 +21,12 @@ * aligned and add in the offset when we load the value here. */ - .macro addruart, rx, rtmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 - ldreq \rx, = S3C_PA_UART - ldrne \rx, = (S3C_VA_UART + S3C_PA_UART & 0xfffff) + .macro addruart, rp, rv + ldr \rp, = S3C_PA_UART + ldr \rv, = (S3C_VA_UART + S3C_PA_UART & 0xfffff) #if CONFIG_DEBUG_S3C_UART != 0 - add \rx, \rx, #(0x400 * CONFIG_DEBUG_S3C_UART) + add \rp, \rp, #(0x400 * CONFIG_DEBUG_S3C_UART) + add \rv, \rv, #(0x400 * CONFIG_DEBUG_S3C_UART) #endif .endm
arch/arm/mach-s5p6440/include/mach/debug-macro.S +5 -6
@@ -19,13 +19,12 @@ * aligned and add in the offset when we load the value here. */ - .macro addruart, rx, rtmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 - ldreq \rx, = S3C_PA_UART - ldrne \rx, = S3C_VA_UART + .macro addruart, rp, rv + ldr \rp, = S3C_PA_UART + ldr \rv, = S3C_VA_UART #if CONFIG_DEBUG_S3C_UART != 0 - add \rx, \rx, #(0x400 * CONFIG_DEBUG_S3C_UART) + add \rp, \rp, #(0x400 * CONFIG_DEBUG_S3C_UART) + add \rv, \rv, #(0x400 * CONFIG_DEBUG_S3C_UART) #endif .endm
arch/arm/mach-s5p6442/include/mach/debug-macro.S +5 -6
@@ -15,13 +15,12 @@ #include <mach/map.h> #include <plat/regs-serial.h> - .macro addruart, rx, rtmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 - ldreq \rx, = S3C_PA_UART - ldrne \rx, = S3C_VA_UART + .macro addruart, rp, rv + ldr \rp, = S3C_PA_UART + ldr \rv, = S3C_VA_UART #if CONFIG_DEBUG_S3C_UART != 0 - add \rx, \rx, #(0x400 * CONFIG_DEBUG_S3C_UART) + add \rp, \rp, #(0x400 * CONFIG_DEBUG_S3C_UART) + add \rv, \rv, #(0x400 * CONFIG_DEBUG_S3C_UART) #endif .endm
arch/arm/mach-s5pc100/include/mach/debug-macro.S +5 -6
@@ -22,13 +22,12 @@ * aligned and add in the offset when we load the value here. */ - .macro addruart, rx, rtmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 - ldreq \rx, = S3C_PA_UART - ldrne \rx, = S3C_VA_UART + .macro addruart, rp, rv + ldr \rp, = S3C_PA_UART + ldr \rv, = S3C_VA_UART #if CONFIG_DEBUG_S3C_UART != 0 - add \rx, \rx, #(0x400 * CONFIG_DEBUG_S3C_UART) + add \rp, \rp, #(0x400 * CONFIG_DEBUG_S3C_UART) + add \rv, \rv, #(0x400 * CONFIG_DEBUG_S3C_UART) #endif .endm
arch/arm/mach-s5pv210/include/mach/debug-macro.S +5 -6
@@ -21,13 +21,12 @@ * aligned and add in the offset when we load the value here. */ - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 - ldreq \rx, = S3C_PA_UART - ldrne \rx, = S3C_VA_UART + .macro addruart, rp, rv + ldr \rp, = S3C_PA_UART + ldr \rv, = S3C_VA_UART #if CONFIG_DEBUG_S3C_UART != 0 - add \rx, \rx, #(0x400 * CONFIG_DEBUG_S3C_UART) + add \rp, \rp, #(0x400 * CONFIG_DEBUG_S3C_UART) + add \rv, \rv, #(0x400 * CONFIG_DEBUG_S3C_UART) #endif .endm
arch/arm/mach-sa1100/include/mach/debug-macro.S +20 -16
@@ -12,33 +12,37 @@ */ #include <mach/hardware.h> - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x80000000 @ physical base address - movne \rx, #0xf8000000 @ virtual address + .macro addruart, rp, rv + mrc p15, 0, \rp, c1, c0 + tst \rp, #1 @ MMU enabled? + moveq \rp, #0x80000000 @ physical base address + movne \rp, #0xf8000000 @ virtual address @ We probe for the active serial port here, coherently with @ the comment in arch/arm/mach-sa1100/include/mach/uncompress.h. @ We assume r1 can be clobbered. @ see if Ser3 is active - add \rx, \rx, #0x00050000 - ldr r1, [\rx, #UTCR3] - tst r1, #UTCR3_TXE + add \rp, \rp, #0x00050000 + ldr \rv, [\rp, #UTCR3] + tst \rv, #UTCR3_TXE @ if Ser3 is inactive, then try Ser1 - addeq \rx, \rx, #(0x00010000 - 0x00050000) - ldreq r1, [\rx, #UTCR3] - tsteq r1, #UTCR3_TXE + addeq \rp, \rp, #(0x00010000 - 0x00050000) + ldreq \rv, [\rp, #UTCR3] + tsteq \rv, #UTCR3_TXE @ if Ser1 is inactive, then try Ser2 - addeq \rx, \rx, #(0x00030000 - 0x00010000) - ldreq r1, [\rx, #UTCR3] - tsteq r1, #UTCR3_TXE + addeq \rp, \rp, #(0x00030000 - 0x00010000) + ldreq \rv, [\rp, #UTCR3] + tsteq \rv, #UTCR3_TXE + + @ clear top bits, and generate both phys and virt addresses + lsl \rp, \rp, #8 + lsr \rp, \rp, #8 + orr \rv, \rp, #0xf8000000 @ virtual + orr \rp, \rp, #0x80000000 @ physical - @ if all ports are inactive, then there is nothing we can do - moveq pc, lr .endm .macro senduart,rd,rx
arch/arm/mach-shark/include/mach/debug-macro.S +4 -3
@@ -11,9 +11,10 @@ * */ - .macro addruart, rx, tmp - mov \rx, #0xe0000000 - orr \rx, \rx, #0x000003f8 + .macro addruart, rp, rv + mov \rp, #0xe0000000 + orr \rp, \rp, #0x000003f8 + mov \rv, \rp .endm .macro senduart,rd,rx
arch/arm/mach-tegra/include/mach/debug-macro.S +15 -11
@@ -20,24 +20,28 @@ #include <mach/io.h> - .macro addruart,rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, =IO_APB_PHYS @ physical - ldrne \rx, =IO_APB_VIRT @ virtual + .macro addruart, rp, rv + ldreq \rp, =IO_APB_PHYS @ physical + ldrne \rv, =IO_APB_VIRT @ virtual #if defined(CONFIG_TEGRA_DEBUG_UART_NONE) #error "A debug UART must be selected in the kernel config to use DEBUG_LL" #elif defined(CONFIG_TEGRA_DEBUG_UARTA) - orr \rx, \rx, #0x6000 + orr \rp, \rp, #0x6000 + orr \rv, \rv, #0x6000 #elif defined(CONFIG_TEGRA_DEBUG_UARTB) - ldr \tmp, =0x6040 - orr \rx, \rx, \tmp + orr \rp, \rp, #0x6000 + orr \rp, \rp, #0x40 + orr \rv, \rv, #0x6000 + orr \rv, \rv, #0x40 #elif defined(CONFIG_TEGRA_DEBUG_UARTC) - orr \rx, \rx, #0x6200 + orr \rp, \rp, #0x6200 + orr \rv, \rv, #0x6200 #elif defined(CONFIG_TEGRA_DEBUG_UARTD) - orr \rx, \rx, #0x6300 + orr \rp, \rp, #0x6300 + orr \rv, \rv, #0x6300 #elif defined(CONFIG_TEGRA_DEBUG_UARTE) - orr \rx, \rx, #0x6400 + orr \rp, \rp, #0x6400 + orr \rv, \rv, #0x6400 #endif .endm
arch/arm/mach-u300/include/mach/debug-macro.S +5 -6
@@ -10,13 +10,12 @@ */ #include <mach/hardware.h> - .macro addruart, rx, tmp + .macro addruart, rp, rv /* If we move the address using MMU, use this. */ - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, = U300_SLOW_PER_PHYS_BASE @ MMU off, physical address - ldrne \rx, = U300_SLOW_PER_VIRT_BASE @ MMU on, virtual address - orr \rx, \rx, #0x00003000 + ldr \rp, = U300_SLOW_PER_PHYS_BASE @ MMU off, physical address + ldr \rv, = U300_SLOW_PER_VIRT_BASE @ MMU on, virtual address + orr \rp, \rp, #0x00003000 + orr \rv, \rv, #0x00003000 .endm #include <asm/hardware/debug-pl01x.S>
arch/arm/mach-ux500/include/mach/debug-macro.S +3 -5
@@ -18,11 +18,9 @@ #define UX500_UART(n) __UX500_UART(n) #define UART_BASE UX500_UART(CONFIG_UX500_DEBUG_UART) - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, =UART_BASE @ no, physical address - ldrne \rx, =IO_ADDRESS(UART_BASE) @ yes, virtual address + .macro addruart, rp, rv + ldr \rp, =UART_BASE @ no, physical address + ldr \rv, =IO_ADDRESS(UART_BASE) @ yes, virtual address .endm #include <asm/hardware/debug-pl01x.S>
arch/arm/mach-versatile/include/mach/debug-macro.S +5 -7
@@ -11,13 +11,11 @@ * */ - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x10000000 - movne \rx, #0xf1000000 @ virtual base - orr \rx, \rx, #0x001F0000 - orr \rx, \rx, #0x00001000 + .macro addruart, rp, rv + mov \rp, #0x001F0000 + orr \rp, \rp, #0x00001000 + orr \rv, \rp, #0xf1000000 @ virtual base + orr \rp, \rp, #0x10000000 @ physical base .endm #include <asm/hardware/debug-pl01x.S>
arch/arm/mach-vexpress/include/mach/debug-macro.S +4 -6
@@ -12,12 +12,10 @@ #define DEBUG_LL_UART_OFFSET 0x00009000 - .macro addruart,rx,tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x10000000 - movne \rx, #0xf8000000 @ virtual base - orr \rx, \rx, #DEBUG_LL_UART_OFFSET + .macro addruart,rp,rv + mov \rp, #DEBUG_LL_UART_OFFSET + orr \rv, \rp, #0xf8000000 @ virtual base + orr \rp, \rp, #0x10000000 @ physical base .endm #include <asm/hardware/debug-pl01x.S>
arch/arm/plat-mxc/include/mach/debug-macro.S +3 -5
@@ -62,11 +62,9 @@ #define UART_PADDR MXC91231_UART2_BASE_ADDR #define UART_VADDR MXC91231_IO_ADDRESS(MXC91231_UART2_BASE_ADDR) #endif - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - ldreq \rx, =UART_PADDR @ physical - ldrne \rx, =UART_VADDR @ virtual + .macro addruart, rp, rv + ldr \rp, =UART_PADDR @ physical + ldr \rv, =UART_VADDR @ virtual .endm .macro senduart,rd,rx
arch/arm/plat-spear/include/plat/debug-macro.S +3 -5
@@ -14,11 +14,9 @@ #include <linux/amba/serial.h> #include <mach/spear.h> - .macro addruart, rx - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #SPEAR_DBG_UART_BASE @ Physical base - movne \rx, #VA_SPEAR_DBG_UART_BASE @ Virtual base + .macro addruart, rp, rv + mov \rp, #SPEAR_DBG_UART_BASE @ Physical base + mov \rv, #VA_SPEAR_DBG_UART_BASE @ Virtual base .endm .macro senduart, rd, rx
arch/arm/plat-stmp3xxx/include/mach/debug-macro.S +4 -7
@@ -16,13 +16,10 @@ * http://www.gnu.org/copyleft/gpl.html */ - .macro addruart, rx, tmp - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - moveq \rx, #0x80000000 @ physical base address - addeq \rx, \rx, #0x00070000 - movne \rx, #0xf0000000 @ virtual base - addne \rx, \rx, #0x00070000 + .macro addruart, rp, rv + mov \rp, #0x00070000 + add \rv, \rp, #0xf0000000 @ virtual base + add \rp, \rp, #0x80000000 @ physical base .endm .macro senduart,rd,rx
PATCH 2/3 arm: return both physical and virtual addresses from addruart
Hello,
arch/arm/kernel/debug.S wait: mrc p14, 0, pc, c0, c1, 0 · line 130
Quoted 7 lines
arch/arm/kernel/debug.S +7
-0+ .macro addruart_current, rx, tmp1, tmp2 + addruart \tmp1, \tmp2 + mrc p15, 0, \rx, c1, c0 + tst \rx, #1 + moveq \rx, \tmp1 + movne \rx, \tmp2 + .endm
Don't you need to depend on MMU somehow to do this in generic code?
Best regards
Uwe
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
PATCH 2/3 arm: return both physical and virtual addresses from addruart
Hi Uwe,
Quoted 9 lines
arch/arm/kernel/debug.S wait: mrc p14, 0, pc, c0, c1, 0 · line 130
Quoted 7 lines
arch/arm/kernel/debug.S +7
-0+ .macro addruart_current, rx, tmp1, tmp2 + addruart \tmp1, \tmp2 + mrc p15, 0, \rx, c1, c0 + tst \rx, #1 + moveq \rx, \tmp1 + movne \rx, \tmp2 + .endmDon't you need to depend on MMU somehow to do this in generic code?
Yeah, it would make sense to have a separate paths for CONFIG_MMU/! CONFIG_MMU (the latter just using \tmp1).
Although, What will the mrc instruction do if there is no MMU? if it doesn't cause an exception, we can assume that the platform's addruart macro will return the same address in both registers and the existing code will just work.
Cheers,
Jeremy
PATCH 3/3 arm: use addruart macro to establish debug mappings
In reply to Jeremy KerrSince we can get both physical and virtual addresses from the addruart macro, we can use this to establish the debug mappings.
In the case of CONFIG_DEBUG_ICEDCC, we don't need any mappings, but may still need to setup r7 correctly.
Incorporating ASM changes from Nicolas Pitre <[email protected]>.
--- arch/arm/kernel/head.S | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-)
arch/arm/kernel/head.S +19 -4
@@ -22,6 +22,10 @@ #include <asm/thread_info.h> #include <asm/system.h> +#ifdef CONFIG_DEBUG_LL +#include <mach/debug-macro.S> +#endif + #if (PHYS_OFFSET & 0x001fffff) #error "PHYS_OFFSET must be at an even 2MiB boundary!" #endif
@@ -289,24 +293,35 @@ __create_page_tables: str r6, [r0] #ifdef CONFIG_DEBUG_LL - ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags +#ifndef CONFIG_DEBUG_ICEDCC /* * Map in IO space for serial debugging. * This allows debug messages to be output * via a serial console before paging_init. */ - ldr r3, [r8, #MACHINFO_PGOFFIO] + addruart r7, r3 + + mov r3, r3, lsr #20 + mov r3, r3, lsl #2 + add r0, r4, r3 rsb r3, r3, #0x4000 @ PTRS_PER_PGD*sizeof(long) cmp r3, #0x0800 @ limit to 512MB movhi r3, #0x0800 add r6, r0, r3 - ldr r3, [r8, #MACHINFO_PHYSIO] - orr r3, r3, r7 + mov r3, r7, lsr #20 + ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags + orr r3, r7, r3, lsl #20 1: str r3, [r0], #4 add r3, r3, #1 << 20 teq r0, r6 bne 1b + +#else /* CONFIG_DEBUG_ICEDCC */ + /* we don't need any serial debugging mappings for ICEDCC */ + ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags +#endif /* !CONFIG_DEBUG_ICEDCC */ + #if defined(CONFIG_ARCH_NETWINDER) || defined(CONFIG_ARCH_CATS) /* * If we're using the NetWinder or CATS, we also need to map
cover Allow late mdesc detection, v4
In reply to Jeremy KerrQuoted 20 lines · Jeremy Kerr
Currently, we probe for a mdesc early in boot. At this early stage, the only thing we use the mdesc for is to determine the debug page mapping.
However, the debug addresses (phys and virt) need to be coded into the addruart macro anyway; the dynamic probing is only going to tell us what we already know.
These changes allow us to use the addruart macros to find the debug mapping addresses, rather than pulling them out of the mdesc. This means that the addresses are only kept in the one place, and that we don't need the mdesc nearly as early.
The first change updates all of the addruart macros to return both physical and virtual addresses. I've used 'rp' and 'rv' as the macro arguments to indicate which address goes where
The second change updates the debug setup routine to use the addruart macro to establish the debug mapping, now that we can invoke the macro to find the phyical and virtual addresses.
Quoted 8 lines
This allows us to delay the requirement to have a mdesc available until much later. For example, we can parse one from the device tree once we've reached C code.
As they have more complex and/or new debug macros, the following platforms could do with extra testing:
* omap (mach-omap1 and mach-omap2)
* davinci
Tested on a couple flavors of DaVinci SoCs, so for davinci
Quoted 33 lines
* tegra
Cheers,
Jeremy
v4:
* updates for 2.6.36
* add changes for tegra
* update davinci
* include fixes for omap[12]
* drop mdesc changesv3:
* only establish page mapping if !DEBUG_ICEDCCv2:
* return both phys and virt addresses from addruart
* mask unneeded bits from uart physical address in mapping setup
* removeio_pg_offstandphys_io, in a separate patch---
Jeremy Kerr (3):
arm/debug: consolidate addruart macros forCONFIG_DEBUG_ICEDCC
arm: return both physical and virtual addresses from addruart
arm: use addruart macro to establish debug mappings_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
cover Allow late mdesc detection, v4
Hi Kevin,
Quoted 7 lines
Quoted 4 lines
As they have more complex and/or new debug macros, the following platforms could do with extra testing:
* omap (mach-omap1 and mach-omap2)
* davinciTested on a couple flavors of DaVinci SoCs, so for davinci
Awesome, thank you for the testing.
Quoted 2 lines
Signed-off-by Kevin Hilman <[email protected]>
OK if I change this to Tested-by: ?
Cheers,
Jeremy
cover Allow late mdesc detection, v4
Quoted 10 lines · Jeremy Kerr
Hi Kevin,
Quoted 7 lines
Quoted 4 lines
As they have more complex and/or new debug macros, the following platforms could do with extra testing:
* omap (mach-omap1 and mach-omap2)
* davinciTested on a couple flavors of DaVinci SoCs, so for davinci
Quoted 6 lines
Awesome, thank you for the testing.
Quoted 2 lines
Signed-off-by Kevin Hilman <[email protected]>OK if I change this to Tested-by: ?
Sure, np
Kevin
cover Allow late mdesc detection, v4
In reply to Jeremy KerrQuoted 11 lines · Jeremy Kerr
Currently, we probe for a mdesc early in boot. At this early stage, the only thing we use the mdesc for is to determine the debug page mapping.
However, the debug addresses (phys and virt) need to be coded into the addruart macro anyway; the dynamic probing is only going to tell us what we already know.
These changes allow us to use the addruart macros to find the debug mapping addresses, rather than pulling them out of the mdesc. This means that the addresses are only kept in the one place, and that we don't need the mdesc nearly as early.
I fear that to merge them into my tree now will invite merge conflicts and/or code breakage when something gets merged without regard to these changes. As I said last time around, the point to merge these (as newly updated patches) is once we freeze new platform support just before the next merge window.
So I'm not merging them until the potential last week prior to the merge window opening - please keep an eye on Linus' -rc announcements and send updated patches (against my -devel tree - this is one case where we're going to have to do it this way) to the patch system at when Linus indicates that he's released the final -rc.
Thanks.
cover Allow late mdesc detection, v4
Quoted 19 lines · Russell King - ARM Linux
Quoted 11 lines · Jeremy Kerr
Currently, we probe for a mdesc early in boot. At this early stage, the only thing we use the mdesc for is to determine the debug page mapping.
However, the debug addresses (phys and virt) need to be coded into the addruart macro anyway; the dynamic probing is only going to tell us what we already know.
These changes allow us to use the addruart macros to find the debug mapping addresses, rather than pulling them out of the mdesc. This means that the addresses are only kept in the one place, and that we don't need the mdesc nearly as early.
I fear that to merge them into my tree now will invite merge conflicts and/or code breakage when something gets merged without regard to these changes. As I said last time around, the point to merge these (as newly updated patches) is once we freeze new platform support just before the next merge window.
Quoted 5 lines
So I'm not merging them until the potential last week prior to the merge window opening - please keep an eye on Linus' -rc announcements and send updated patches (against my -devel tree - this is one case where we're going to have to do it this way) to the patch system at when Linus indicates that he's released the final -rc.
I think that time has come, or is very close. And since Jeremy is away on vacation he asked me to handle the submission for those patches on his behalf.
So... could you pull the following:
git://git.linaro.org/people/nico/linux debug_cleanup
It is currently based on your devel branch at commit f7de6b55ea4. If you'd prefer another base just tell me.
Jeremy Kerr (3):
arm/debug: consolidate addruart macros for CONFIG_DEBUG_ICEDCC
arm: return both physical and virtual addresses from addruart
arm: use addruart macro to establish debug mappings
Nicolas Pitre (2):
ARM: make struct machine_desc definition coherent with its comment
arm: remove machine_desc.io_pg_offst and .phys_io
arch/arm/include/asm/mach/arch.h | 9 +- arch/arm/kernel/asm-offsets.c | 2 - arch/arm/kernel/debug.S | 35 +++-- arch/arm/kernel/head.S | 23 ++- arch/arm/mach-aaec2000/aaed2000.c | 2 - arch/arm/mach-aaec2000/include/mach/debug-macro.S | 10 +- arch/arm/mach-at91/board-1arm.c | 2 - arch/arm/mach-at91/board-afeb-9260v1.c | 2 - arch/arm/mach-at91/board-at572d940hf_ek.c | 2 - arch/arm/mach-at91/board-cam60.c | 2 - arch/arm/mach-at91/board-cap9adk.c | 2 - arch/arm/mach-at91/board-carmeva.c | 2 - arch/arm/mach-at91/board-cpu9krea.c | 2 - arch/arm/mach-at91/board-cpuat91.c | 2 - arch/arm/mach-at91/board-csb337.c | 2 - arch/arm/mach-at91/board-csb637.c | 2 - arch/arm/mach-at91/board-dk.c | 2 - arch/arm/mach-at91/board-eb9200.c | 2 - arch/arm/mach-at91/board-ecbat91.c | 2 - arch/arm/mach-at91/board-eco920.c | 2 - arch/arm/mach-at91/board-ek.c | 2 - arch/arm/mach-at91/board-flexibity.c | 2 - arch/arm/mach-at91/board-kafa.c | 2 - arch/arm/mach-at91/board-kb9202.c | 2 - arch/arm/mach-at91/board-neocore926.c | 2 - arch/arm/mach-at91/board-picotux200.c | 2 - arch/arm/mach-at91/board-qil-a9260.c | 2 - arch/arm/mach-at91/board-sam9-l9260.c | 2 - arch/arm/mach-at91/board-sam9260ek.c | 2 - arch/arm/mach-at91/board-sam9261ek.c | 2 - arch/arm/mach-at91/board-sam9263ek.c | 2 - arch/arm/mach-at91/board-sam9g20ek.c | 4 - arch/arm/mach-at91/board-sam9m10g45ek.c | 2 - arch/arm/mach-at91/board-sam9rlek.c | 2 - arch/arm/mach-at91/board-snapper9260.c | 2 - arch/arm/mach-at91/board-stamp9g20.c | 4 - arch/arm/mach-at91/board-usb-a9260.c | 2 - arch/arm/mach-at91/board-usb-a9263.c | 2 - arch/arm/mach-at91/board-yl-9200.c | 2 - arch/arm/mach-at91/include/mach/debug-macro.S | 8 +- arch/arm/mach-bcmring/arch.c | 2 - arch/arm/mach-clps711x/autcpu12.c | 2 - arch/arm/mach-clps711x/cdb89712.c | 2 - arch/arm/mach-clps711x/ceiva.c | 2 - arch/arm/mach-clps711x/clep7312.c | 2 - arch/arm/mach-clps711x/edb7211-arch.c | 2 - arch/arm/mach-clps711x/fortunet.c | 2 - arch/arm/mach-clps711x/include/mach/debug-macro.S | 12 +- arch/arm/mach-clps711x/p720t.c | 2 - arch/arm/mach-cns3xxx/cns3420vb.c | 2 - arch/arm/mach-cns3xxx/include/mach/debug-macro.S | 10 +- arch/arm/mach-davinci/board-da830-evm.c | 2 - arch/arm/mach-davinci/board-da850-evm.c | 2 - arch/arm/mach-davinci/board-dm355-evm.c | 2 - arch/arm/mach-davinci/board-dm355-leopard.c | 2 - arch/arm/mach-davinci/board-dm365-evm.c | 2 - arch/arm/mach-davinci/board-dm644x-evm.c | 2 - arch/arm/mach-davinci/board-dm646x-evm.c | 4 - arch/arm/mach-davinci/board-neuros-osd2.c | 2 - arch/arm/mach-davinci/board-sffsdr.c | 2 - arch/arm/mach-davinci/board-tnetv107x-evm.c | 2 - arch/arm/mach-davinci/include/mach/debug-macro.S | 46 +++--- arch/arm/mach-dove/dove-db-setup.c | 2 - arch/arm/mach-dove/include/mach/debug-macro.S | 11 +- arch/arm/mach-ebsa110/core.c | 2 - arch/arm/mach-ebsa110/include/mach/debug-macro.S | 7 +- arch/arm/mach-ep93xx/adssphere.c | 2 - arch/arm/mach-ep93xx/edb93xx.c | 16 -- arch/arm/mach-ep93xx/gesbc9312.c | 2 - arch/arm/mach-ep93xx/include/mach/debug-macro.S | 11 +- arch/arm/mach-ep93xx/micro9.c | 8 - arch/arm/mach-ep93xx/simone.c | 2 - arch/arm/mach-ep93xx/snappercl15.c | 2 - arch/arm/mach-ep93xx/ts72xx.c | 2 - arch/arm/mach-footbridge/cats-hw.c | 2 - arch/arm/mach-footbridge/ebsa285.c | 2 - .../arm/mach-footbridge/include/mach/debug-macro.S | 22 +-- arch/arm/mach-footbridge/netwinder-hw.c | 2 - arch/arm/mach-footbridge/personal.c | 2 - arch/arm/mach-gemini/board-nas4220b.c | 2 - arch/arm/mach-gemini/board-rut1xx.c | 2 - arch/arm/mach-gemini/board-wbd111.c | 2 - arch/arm/mach-gemini/board-wbd222.c | 2 - arch/arm/mach-gemini/include/mach/debug-macro.S | 8 +- arch/arm/mach-h720x/h7201-eval.c | 2 - arch/arm/mach-h720x/h7202-eval.c | 2 - arch/arm/mach-h720x/include/mach/debug-macro.S | 10 +- arch/arm/mach-imx/mach-cpuimx27.c | 2 - arch/arm/mach-imx/mach-imx27_visstrim_m10.c | 2 - arch/arm/mach-imx/mach-imx27lite.c | 2 - arch/arm/mach-imx/mach-mx1ads.c | 4 - arch/arm/mach-imx/mach-mx21ads.c | 2 - arch/arm/mach-imx/mach-mx27_3ds.c | 2 - arch/arm/mach-imx/mach-mx27ads.c | 2 - arch/arm/mach-imx/mach-mxt_td60.c | 2 - arch/arm/mach-imx/mach-pca100.c | 2 - arch/arm/mach-imx/mach-pcm038.c | 2 - arch/arm/mach-imx/mach-scb9328.c | 2 - .../arm/mach-integrator/include/mach/debug-macro.S | 10 +- arch/arm/mach-integrator/integrator_ap.c | 2 - arch/arm/mach-integrator/integrator_cp.c | 2 - arch/arm/mach-iop13xx/include/mach/debug-macro.S | 16 +- arch/arm/mach-iop13xx/iq81340mc.c | 2 - arch/arm/mach-iop13xx/iq81340sc.c | 2 - arch/arm/mach-iop32x/em7210.c | 2 - arch/arm/mach-iop32x/glantank.c | 2 - arch/arm/mach-iop32x/include/mach/debug-macro.S | 7 +- arch/arm/mach-iop32x/iq31244.c | 4 - arch/arm/mach-iop32x/iq80321.c | 2 - arch/arm/mach-iop32x/n2100.c | 2 - arch/arm/mach-iop33x/include/mach/debug-macro.S | 12 +- arch/arm/mach-iop33x/iq80331.c | 2 - arch/arm/mach-iop33x/iq80332.c | 2 - arch/arm/mach-ixp2000/enp2611.c | 2 - arch/arm/mach-ixp2000/include/mach/debug-macro.S | 14 +- arch/arm/mach-ixp2000/ixdp2400.c | 2 - arch/arm/mach-ixp2000/ixdp2800.c | 2 - arch/arm/mach-ixp2000/ixdp2x01.c | 6 - arch/arm/mach-ixp23xx/espresso.c | 2 - arch/arm/mach-ixp23xx/include/mach/debug-macro.S | 11 +- arch/arm/mach-ixp23xx/ixdp2351.c | 2 - arch/arm/mach-ixp23xx/roadrunner.c | 2 - arch/arm/mach-ixp4xx/avila-setup.c | 4 - arch/arm/mach-ixp4xx/coyote-setup.c | 4 - arch/arm/mach-ixp4xx/dsmg600-setup.c | 2 - arch/arm/mach-ixp4xx/fsg-setup.c | 2 - arch/arm/mach-ixp4xx/gateway7001-setup.c | 2 - arch/arm/mach-ixp4xx/goramo_mlr.c | 2 - arch/arm/mach-ixp4xx/gtwx5715-setup.c | 2 - arch/arm/mach-ixp4xx/include/mach/debug-macro.S | 16 +- arch/arm/mach-ixp4xx/ixdp425-setup.c | 8 - arch/arm/mach-ixp4xx/nas100d-setup.c | 2 - arch/arm/mach-ixp4xx/nslu2-setup.c | 2 - arch/arm/mach-ixp4xx/vulcan-setup.c | 2 - arch/arm/mach-ixp4xx/wg302v2-setup.c | 2 - arch/arm/mach-kirkwood/d2net_v2-setup.c | 2 - arch/arm/mach-kirkwood/db88f6281-bp-setup.c | 2 - arch/arm/mach-kirkwood/dockstar-setup.c | 2 - arch/arm/mach-kirkwood/guruplug-setup.c | 2 - arch/arm/mach-kirkwood/include/mach/debug-macro.S | 11 +- arch/arm/mach-kirkwood/mv88f6281gtw_ge-setup.c | 2 - arch/arm/mach-kirkwood/netspace_v2-setup.c | 6 - arch/arm/mach-kirkwood/netxbig_v2-setup.c | 4 - arch/arm/mach-kirkwood/openrd-setup.c | 6 - arch/arm/mach-kirkwood/rd88f6192-nas-setup.c | 2 - arch/arm/mach-kirkwood/rd88f6281-setup.c | 2 - arch/arm/mach-kirkwood/sheevaplug-setup.c | 4 - arch/arm/mach-kirkwood/t5325-setup.c | 2 - arch/arm/mach-kirkwood/ts219-setup.c | 2 - arch/arm/mach-kirkwood/ts41x-setup.c | 2 - arch/arm/mach-ks8695/board-acs5k.c | 2 - arch/arm/mach-ks8695/board-dsm320.c | 2 - arch/arm/mach-ks8695/board-micrel.c | 2 - arch/arm/mach-ks8695/include/mach/debug-macro.S | 8 +- arch/arm/mach-l7200/include/mach/debug-macro.S | 38 ++++ arch/arm/mach-lh7a40x/arch-kev7a400.c | 2 - arch/arm/mach-lh7a40x/arch-lpd7a40x.c | 4 - arch/arm/mach-lh7a40x/include/mach/debug-macro.S | 10 +- arch/arm/mach-loki/include/mach/debug-macro.S | 11 +- arch/arm/mach-loki/lb88rc8480-setup.c | 2 - arch/arm/mach-lpc32xx/include/mach/debug-macro.S | 8 +- arch/arm/mach-lpc32xx/phy3250.c | 2 - arch/arm/mach-mmp/aspenite.c | 4 - arch/arm/mach-mmp/avengers_lite.c | 2 - arch/arm/mach-mmp/flint.c | 2 - arch/arm/mach-mmp/include/mach/debug-macro.S | 11 +- arch/arm/mach-mmp/jasper.c | 2 - arch/arm/mach-mmp/tavorevb.c | 2 - arch/arm/mach-mmp/ttc_dkb.c | 2 - arch/arm/mach-msm/board-halibut.c | 2 - arch/arm/mach-msm/board-mahimahi.c | 2 - arch/arm/mach-msm/board-msm7x27.c | 8 - arch/arm/mach-msm/board-msm7x30.c | 6 - arch/arm/mach-msm/board-qsd8x50.c | 4 - arch/arm/mach-msm/board-sapphire.c | 2 - arch/arm/mach-msm/board-trout.c | 2 - arch/arm/mach-msm/include/mach/debug-macro.S | 10 +- arch/arm/mach-mv78xx0/buffalo-wxl-setup.c | 2 - arch/arm/mach-mv78xx0/db78x00-bp-setup.c | 2 - arch/arm/mach-mv78xx0/include/mach/debug-macro.S | 11 +- arch/arm/mach-mv78xx0/rd78x00-masa-setup.c | 2 - arch/arm/mach-mx25/mach-cpuimx25.c | 2 - arch/arm/mach-mx25/mach-mx25_3ds.c | 2 - arch/arm/mach-mx3/mach-armadillo5x0.c | 2 - arch/arm/mach-mx3/mach-cpuimx35.c | 2 - arch/arm/mach-mx3/mach-kzm_arm11_01.c | 2 - arch/arm/mach-mx3/mach-mx31_3ds.c | 2 - arch/arm/mach-mx3/mach-mx31ads.c | 2 - arch/arm/mach-mx3/mach-mx31lilly.c | 2 - arch/arm/mach-mx3/mach-mx31lite.c | 2 - arch/arm/mach-mx3/mach-mx31moboard.c | 2 - arch/arm/mach-mx3/mach-mx35_3ds.c | 2 - arch/arm/mach-mx3/mach-pcm037.c | 2 - arch/arm/mach-mx3/mach-pcm043.c | 2 - arch/arm/mach-mx3/mach-qong.c | 2 - arch/arm/mach-mx5/board-cpuimx51.c | 2 - arch/arm/mach-mx5/board-mx51_3ds.c | 2 - arch/arm/mach-mx5/board-mx51_babbage.c | 2 - arch/arm/mach-mx5/board-mx51_efikamx.c | 2 - arch/arm/mach-mxc91231/magx-zn5.c | 2 - arch/arm/mach-netx/include/mach/debug-macro.S | 10 +- arch/arm/mach-netx/nxdb500.c | 2 - arch/arm/mach-netx/nxdkn.c | 2 - arch/arm/mach-netx/nxeb500hmi.c | 2 - arch/arm/mach-nomadik/board-nhk8815.c | 2 - arch/arm/mach-nomadik/include/mach/debug-macro.S | 12 +- arch/arm/mach-ns9xxx/include/mach/debug-macro.S | 8 +- arch/arm/mach-nuc93x/mach-nuc932evb.c | 2 - arch/arm/mach-omap1/board-ams-delta.c | 2 - arch/arm/mach-omap1/board-fsample.c | 2 - arch/arm/mach-omap1/board-generic.c | 2 - arch/arm/mach-omap1/board-h2.c | 2 - arch/arm/mach-omap1/board-h3.c | 2 - arch/arm/mach-omap1/board-htcherald.c | 2 - arch/arm/mach-omap1/board-innovator.c | 2 - arch/arm/mach-omap1/board-nokia770.c | 2 - arch/arm/mach-omap1/board-osk.c | 2 - arch/arm/mach-omap1/board-palmte.c | 2 - arch/arm/mach-omap1/board-palmtt.c | 2 - arch/arm/mach-omap1/board-palmz71.c | 2 - arch/arm/mach-omap1/board-perseus2.c | 2 - arch/arm/mach-omap1/board-sx1.c | 2 - arch/arm/mach-omap1/board-voiceblue.c | 2 - arch/arm/mach-omap1/include/mach/debug-macro.S | 68 ++++---- arch/arm/mach-omap2/board-2430sdp.c | 2 - arch/arm/mach-omap2/board-3430sdp.c | 2 - arch/arm/mach-omap2/board-3630sdp.c | 2 - arch/arm/mach-omap2/board-4430sdp.c | 2 - arch/arm/mach-omap2/board-am3517evm.c | 2 - arch/arm/mach-omap2/board-apollon.c | 2 - arch/arm/mach-omap2/board-cm-t35.c | 2 - arch/arm/mach-omap2/board-devkit8000.c | 2 - arch/arm/mach-omap2/board-generic.c | 2 - arch/arm/mach-omap2/board-h4.c | 2 - arch/arm/mach-omap2/board-igep0020.c | 2 - arch/arm/mach-omap2/board-ldp.c | 2 - arch/arm/mach-omap2/board-n8x0.c | 6 - arch/arm/mach-omap2/board-omap3beagle.c | 2 - arch/arm/mach-omap2/board-omap3evm.c | 2 - arch/arm/mach-omap2/board-omap3pandora.c | 2 - arch/arm/mach-omap2/board-omap3stalker.c | 2 - arch/arm/mach-omap2/board-omap3touchbook.c | 2 - arch/arm/mach-omap2/board-omap4panda.c | 2 - arch/arm/mach-omap2/board-overo.c | 2 - arch/arm/mach-omap2/board-rx51.c | 2 - arch/arm/mach-omap2/board-zoom2.c | 2 - arch/arm/mach-omap2/board-zoom3.c | 2 - arch/arm/mach-omap2/include/mach/debug-macro.S | 127 +++++++------- arch/arm/mach-orion5x/d2net-setup.c | 4 - arch/arm/mach-orion5x/db88f5281-setup.c | 2 - arch/arm/mach-orion5x/dns323-setup.c | 2 - arch/arm/mach-orion5x/edmini_v2-setup.c | 2 - arch/arm/mach-orion5x/include/mach/debug-macro.S | 11 +- arch/arm/mach-orion5x/kurobox_pro-setup.c | 4 - arch/arm/mach-orion5x/ls_hgl-setup.c | 2 - arch/arm/mach-orion5x/lsmini-setup.c | 2 - arch/arm/mach-orion5x/mss2-setup.c | 2 - arch/arm/mach-orion5x/mv2120-setup.c | 2 - arch/arm/mach-orion5x/net2big-setup.c | 2 - arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c | 2 - arch/arm/mach-orion5x/rd88f5181l-ge-setup.c | 2 - arch/arm/mach-orion5x/rd88f5182-setup.c | 2 - arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | 2 - arch/arm/mach-orion5x/terastation_pro2-setup.c | 2 - arch/arm/mach-orion5x/ts209-setup.c | 2 - arch/arm/mach-orion5x/ts409-setup.c | 2 - arch/arm/mach-orion5x/ts78xx-setup.c | 2 - arch/arm/mach-orion5x/wnr854t-setup.c | 2 - arch/arm/mach-orion5x/wrt350n-v2-setup.c | 2 - arch/arm/mach-pnx4008/core.c | 2 - arch/arm/mach-pnx4008/include/mach/debug-macro.S | 10 +- arch/arm/mach-pxa/balloon3.c | 2 - arch/arm/mach-pxa/capc7117.c | 2 - arch/arm/mach-pxa/cm-x2xx.c | 2 - arch/arm/mach-pxa/cm-x300.c | 2 - arch/arm/mach-pxa/colibri-pxa270.c | 4 - arch/arm/mach-pxa/colibri-pxa300.c | 2 - arch/arm/mach-pxa/colibri-pxa320.c | 2 - arch/arm/mach-pxa/corgi.c | 6 - arch/arm/mach-pxa/csb726.c | 2 - arch/arm/mach-pxa/em-x270.c | 4 - arch/arm/mach-pxa/eseries.c | 12 -- arch/arm/mach-pxa/ezx.c | 12 -- arch/arm/mach-pxa/gumstix.c | 2 - arch/arm/mach-pxa/h5000.c | 2 - arch/arm/mach-pxa/himalaya.c | 2 - arch/arm/mach-pxa/hx4700.c | 2 - arch/arm/mach-pxa/icontrol.c | 2 - arch/arm/mach-pxa/idp.c | 2 - arch/arm/mach-pxa/include/mach/debug-macro.S | 10 +- arch/arm/mach-pxa/littleton.c | 2 - arch/arm/mach-pxa/lpd270.c | 2 - arch/arm/mach-pxa/lubbock.c | 2 - arch/arm/mach-pxa/magician.c | 2 - arch/arm/mach-pxa/mainstone.c | 2 - arch/arm/mach-pxa/mioa701.c | 2 - arch/arm/mach-pxa/mp900.c | 2 - arch/arm/mach-pxa/palmld.c | 2 - arch/arm/mach-pxa/palmt5.c | 2 - arch/arm/mach-pxa/palmtc.c | 2 - arch/arm/mach-pxa/palmte2.c | 2 - arch/arm/mach-pxa/palmtreo.c | 4 - arch/arm/mach-pxa/palmtx.c | 2 - arch/arm/mach-pxa/palmz72.c | 2 - arch/arm/mach-pxa/pcm027.c | 2 - arch/arm/mach-pxa/poodle.c | 2 - arch/arm/mach-pxa/raumfeld.c | 6 - arch/arm/mach-pxa/saar.c | 2 - arch/arm/mach-pxa/spitz.c | 6 - arch/arm/mach-pxa/stargate2.c | 4 - arch/arm/mach-pxa/tavorevb.c | 2 - arch/arm/mach-pxa/tosa.c | 2 - arch/arm/mach-pxa/trizeps4.c | 4 - arch/arm/mach-pxa/viper.c | 2 - arch/arm/mach-pxa/vpac270.c | 2 - arch/arm/mach-pxa/xcep.c | 2 - arch/arm/mach-pxa/z2.c | 2 - arch/arm/mach-pxa/zeus.c | 2 - arch/arm/mach-pxa/zylonite.c | 2 - arch/arm/mach-realview/include/mach/debug-macro.S | 10 +- arch/arm/mach-realview/realview_eb.c | 2 - arch/arm/mach-realview/realview_pb1176.c | 2 - arch/arm/mach-realview/realview_pb11mp.c | 2 - arch/arm/mach-realview/realview_pba8.c | 2 - arch/arm/mach-realview/realview_pbx.c | 2 - arch/arm/mach-rpc/include/mach/debug-macro.S | 12 +- arch/arm/mach-rpc/riscpc.c | 2 - arch/arm/mach-s3c2410/include/mach/debug-macro.S | 11 +- arch/arm/mach-s3c2410/mach-amlm5900.c | 2 - arch/arm/mach-s3c2410/mach-bast.c | 2 - arch/arm/mach-s3c2410/mach-h1940.c | 2 - arch/arm/mach-s3c2410/mach-n30.c | 4 - arch/arm/mach-s3c2410/mach-otom.c | 2 - arch/arm/mach-s3c2410/mach-qt2410.c | 2 - arch/arm/mach-s3c2410/mach-smdk2410.c | 2 - arch/arm/mach-s3c2410/mach-tct_hammer.c | 2 - arch/arm/mach-s3c2410/mach-vr1000.c | 2 - arch/arm/mach-s3c2412/mach-jive.c | 2 - arch/arm/mach-s3c2412/mach-smdk2413.c | 6 - arch/arm/mach-s3c2412/mach-vstms.c | 2 - arch/arm/mach-s3c2416/mach-smdk2416.c | 2 - arch/arm/mach-s3c2440/mach-anubis.c | 2 - arch/arm/mach-s3c2440/mach-at2440evb.c | 2 - arch/arm/mach-s3c2440/mach-gta02.c | 2 - arch/arm/mach-s3c2440/mach-mini2440.c | 2 - arch/arm/mach-s3c2440/mach-nexcoder.c | 2 - arch/arm/mach-s3c2440/mach-osiris.c | 2 - arch/arm/mach-s3c2440/mach-rx1950.c | 2 - arch/arm/mach-s3c2440/mach-rx3715.c | 2 - arch/arm/mach-s3c2440/mach-smdk2440.c | 2 - arch/arm/mach-s3c2443/mach-smdk2443.c | 2 - arch/arm/mach-s3c24a0/include/mach/debug-macro.S | 11 +- arch/arm/mach-s3c64xx/include/mach/debug-macro.S | 11 +- arch/arm/mach-s3c64xx/mach-anw6410.c | 2 - arch/arm/mach-s3c64xx/mach-hmt.c | 2 - arch/arm/mach-s3c64xx/mach-ncp.c | 2 - arch/arm/mach-s3c64xx/mach-real6410.c | 2 - arch/arm/mach-s3c64xx/mach-smartq5.c | 2 - arch/arm/mach-s3c64xx/mach-smartq7.c | 2 - arch/arm/mach-s3c64xx/mach-smdk6400.c | 2 - arch/arm/mach-s3c64xx/mach-smdk6410.c | 2 - arch/arm/mach-s5p6440/include/mach/debug-macro.S | 11 +- arch/arm/mach-s5p6440/mach-smdk6440.c | 2 - arch/arm/mach-s5p6442/include/mach/debug-macro.S | 11 +- arch/arm/mach-s5p6442/mach-smdk6442.c | 2 - arch/arm/mach-s5pc100/include/mach/debug-macro.S | 11 +- arch/arm/mach-s5pc100/mach-smdkc100.c | 2 - arch/arm/mach-s5pv210/include/mach/debug-macro.S | 11 +- arch/arm/mach-s5pv210/mach-aquila.c | 2 - arch/arm/mach-s5pv210/mach-goni.c | 2 - arch/arm/mach-s5pv210/mach-smdkc110.c | 2 - arch/arm/mach-s5pv210/mach-smdkv210.c | 2 - arch/arm/mach-s5pv310/include/mach/debug-macro.S | 11 +- arch/arm/mach-s5pv310/mach-smdkv310.c | 2 - arch/arm/mach-s5pv310/mach-universal_c210.c | 2 - arch/arm/mach-sa1100/assabet.c | 2 - arch/arm/mach-sa1100/badge4.c | 2 - arch/arm/mach-sa1100/cerf.c | 2 - arch/arm/mach-sa1100/collie.c | 2 - arch/arm/mach-sa1100/h3100.c | 2 - arch/arm/mach-sa1100/h3600.c | 2 - arch/arm/mach-sa1100/hackkit.c | 2 - arch/arm/mach-sa1100/include/mach/debug-macro.S | 36 ++-- arch/arm/mach-sa1100/jornada720.c | 2 - arch/arm/mach-sa1100/lart.c | 2 - arch/arm/mach-sa1100/pleb.c | 2 - arch/arm/mach-sa1100/shannon.c | 2 - arch/arm/mach-sa1100/simpad.c | 2 - arch/arm/mach-shark/core.c | 2 - arch/arm/mach-shark/include/mach/debug-macro.S | 7 +- arch/arm/mach-shmobile/board-ap4evb.c | 2 - arch/arm/mach-shmobile/board-g3evm.c | 2 - arch/arm/mach-shmobile/board-g4evm.c | 2 - arch/arm/mach-stmp378x/stmp378x_devb.c | 2 - arch/arm/mach-stmp37xx/stmp37xx_devb.c | 2 - arch/arm/mach-tcc8k/board-tcc8000-sdk.c | 2 - arch/arm/mach-tegra/board-harmony.c | 2 - arch/arm/mach-tegra/include/mach/debug-macro.S | 26 ++-- arch/arm/mach-u300/include/mach/debug-macro.S | 11 +- arch/arm/mach-u300/u300.c | 2 - arch/arm/mach-ux500/board-mop500.c | 2 - arch/arm/mach-ux500/board-u5500.c | 2 - arch/arm/mach-ux500/include/mach/debug-macro.S | 8 +- arch/arm/mach-versatile/include/mach/debug-macro.S | 12 +- arch/arm/mach-versatile/versatile_ab.c | 2 - arch/arm/mach-versatile/versatile_pb.c | 2 - arch/arm/mach-vexpress/ct-ca9x4.c | 2 - arch/arm/mach-vexpress/include/mach/debug-macro.S | 10 +- arch/arm/mach-w90x900/mach-nuc910evb.c | 2 - arch/arm/mach-w90x900/mach-nuc950evb.c | 2 - arch/arm/mach-w90x900/mach-nuc960evb.c | 2 - arch/arm/plat-mxc/include/mach/debug-macro.S | 8 +- arch/arm/plat-spear/include/plat/debug-macro.S | 8 +- arch/arm/plat-stmp3xxx/include/mach/debug-macro.S | 11 +- arch/arm/plat-tcc/include/mach/debug-macro.S | 11 +- 415 files changed, 469 insertions(+), 1311 deletions(-)
Quoted 8 lines
Thanks.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
cover Allow late mdesc detection, v4
Quoted 10 lines · Nicolas Pitre
I think that time has come, or is very close. And since Jeremy is away on vacation he asked me to handle the submission for those patches on his behalf.
So... could you pull the following:
git://git.linaro.org/people/nico/linuxdebug_cleanupIt is currently based on your devel branch at commit
f7de6b55ea4. If you'd prefer another base just tell me.
I'm going to drop this - there's still a few trees which are outstanding and this is causing problems... I think we have a few days left.
With Eric's changes merged, there's another io_pg_offst which has popped up in mach-mmp, and there's a few new OMAP boards external to my tree which are broken by this.
cover Allow late mdesc detection, v4
Quoted 12 lines · Russell King - ARM Linux
Quoted 10 lines · Nicolas Pitre
I think that time has come, or is very close. And since Jeremy is away on vacation he asked me to handle the submission for those patches on his behalf.
So... could you pull the following:
git://git.linaro.org/people/nico/linuxdebug_cleanupIt is currently based on your devel branch at commit
f7de6b55ea4. If you'd prefer another base just tell me.
Quoted 6 lines
I'm going to drop this - there's still a few trees which are outstanding and this is causing problems... I think we have a few days left.
With Eric's changes merged, there's another
io_pg_offstwhich has popped up in mach-mmp, and there's a few new OMAP boards external to my tree which are broken by this.
No problem. Just tell me when you're done merging those other trees and I'll rebase/adjust this series on top for you to pull again.
Nicolas
Tony Lindgren
maintainercover Allow late mdesc detection, v4
Quoted 17 lines · Nicolas Pitre
Quoted 15 lines · Russell King - ARM Linux
Quoted 10 lines · Nicolas Pitre
I think that time has come, or is very close. And since Jeremy is away on vacation he asked me to handle the submission for those patches on his behalf.
So... could you pull the following:
git://git.linaro.org/people/nico/linuxdebug_cleanupIt is currently based on your devel branch at commit
f7de6b55ea4. If you'd prefer another base just tell me.I'm going to drop this - there's still a few trees which are outstanding and this is causing problems... I think we have a few days left.
Quoted 6 lines
Quoted 3 lines
With Eric's changes merged, there's another
io_pg_offstwhich has popped up in mach-mmp, and there's a few new OMAP boards external to my tree which are broken by this.No problem. Just tell me when you're done merging those other trees and I'll rebase/adjust this series on top for you to pull again.
Hmm, these patches are not a problem at least from omap tree point of view.
We already tested an earlier version of these patches a while back, and I just applied them to our temporary omap-testing branch, and things work as expected.
The only fixup that we need to fix up few omap specific board files. I've added the fixups to the omap for-next, and I can merge with mainline tree to fix these before sending the pull request.
Regards,
Tony