Message ID | 6cdb1444950fae035bb447f11519040c0a88992d.1393888981.git.stefan@agner.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Mar 04, 2014 at 12:27:09AM +0100, Stefan Agner wrote: > Add choice for low-level debug UART. Similar to i.MX6, there is a > numeric configuration, valid choices are 0 to 3. > Not that the kernel assumes that the boot loader initialized clock > properly. > > Signed-off-by: Stefan Agner <stefan@agner.ch> > --- > arch/arm/Kconfig.debug | 9 +++++++++ > arch/arm/include/debug/vf.S | 16 ++++++++++++++-- > 2 files changed, 23 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug > index 0531da8..c2005a7 100644 > --- a/arch/arm/Kconfig.debug > +++ b/arch/arm/Kconfig.debug > @@ -946,6 +946,15 @@ config DEBUG_IMX_UART_PORT > Choose UART port on which kernel low-level debug messages > should be output. > > +config DEBUG_VF_UART_PORT > + int "Vybrid Debug UART Port Selection" if DEBUG_VF_UART > + default 1 > + range 0 3 > + depends on SOC_VF610 > + help > + Choose UART port on which kernel low-level debug messages > + should be output. > + > config DEBUG_TEGRA_UART > bool > depends on ARCH_TEGRA > diff --git a/arch/arm/include/debug/vf.S b/arch/arm/include/debug/vf.S > index ba12cc4..4683b7c 100644 > --- a/arch/arm/include/debug/vf.S > +++ b/arch/arm/include/debug/vf.S > @@ -7,9 +7,21 @@ > * > */ > > +#define VF_UART0_BASE_ADDR 0x40027000 > +#define VF_UART1_BASE_ADDR 0x40028000 > +#define VF_UART2_BASE_ADDR 0x40029000 > +#define VF_UART3_BASE_ADDR 0x4002a000 > +#define VF_UART_BASE_ADDR(n) VF_UART##n##_BASE_ADDR > +#define VF_UART_BASE(n) VF_UART_BASE_ADDR(n) > +#define VF_UART_PHYSICAL_BASE VF_UART_BASE(CONFIG_DEBUG_VF_UART_PORT) > + > +#define VF_UART_VIRTUAL_BASE 0xfe000000 > + > + One new line is good enough. > .macro addruart, rp, rv, tmp > - ldr \rp, =0x40028000 @ physical > - ldr \rv, =0xfe028000 @ virtual > + ldr \rp, =(VF_UART_PHYSICAL_BASE) @ physical The parentheses is unnecessary. Shawn > + and \rv, \rp, #0xffffff @ offset within 16MB section > + add \rv, \rv, #VF_UART_VIRTUAL_BASE > .endm > > .macro senduart, rd, rx > -- > 1.9.0 >
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 0531da8..c2005a7 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -946,6 +946,15 @@ config DEBUG_IMX_UART_PORT Choose UART port on which kernel low-level debug messages should be output. +config DEBUG_VF_UART_PORT + int "Vybrid Debug UART Port Selection" if DEBUG_VF_UART + default 1 + range 0 3 + depends on SOC_VF610 + help + Choose UART port on which kernel low-level debug messages + should be output. + config DEBUG_TEGRA_UART bool depends on ARCH_TEGRA diff --git a/arch/arm/include/debug/vf.S b/arch/arm/include/debug/vf.S index ba12cc4..4683b7c 100644 --- a/arch/arm/include/debug/vf.S +++ b/arch/arm/include/debug/vf.S @@ -7,9 +7,21 @@ * */ +#define VF_UART0_BASE_ADDR 0x40027000 +#define VF_UART1_BASE_ADDR 0x40028000 +#define VF_UART2_BASE_ADDR 0x40029000 +#define VF_UART3_BASE_ADDR 0x4002a000 +#define VF_UART_BASE_ADDR(n) VF_UART##n##_BASE_ADDR +#define VF_UART_BASE(n) VF_UART_BASE_ADDR(n) +#define VF_UART_PHYSICAL_BASE VF_UART_BASE(CONFIG_DEBUG_VF_UART_PORT) + +#define VF_UART_VIRTUAL_BASE 0xfe000000 + + .macro addruart, rp, rv, tmp - ldr \rp, =0x40028000 @ physical - ldr \rv, =0xfe028000 @ virtual + ldr \rp, =(VF_UART_PHYSICAL_BASE) @ physical + and \rv, \rp, #0xffffff @ offset within 16MB section + add \rv, \rv, #VF_UART_VIRTUAL_BASE .endm .macro senduart, rd, rx
Add choice for low-level debug UART. Similar to i.MX6, there is a numeric configuration, valid choices are 0 to 3. Not that the kernel assumes that the boot loader initialized clock properly. Signed-off-by: Stefan Agner <stefan@agner.ch> --- arch/arm/Kconfig.debug | 9 +++++++++ arch/arm/include/debug/vf.S | 16 ++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-)