From: gregory.clement@free-electrons.com (Gregory CLEMENT)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/4] arm: mediatek: Add earlyprintk support for MT6589
Date: Wed, 09 Apr 2014 20:54:08 +0000 [thread overview]
Message-ID: <5345B370.6060004@free-electrons.com> (raw)
In-Reply-To: <1397072736-10793-5-git-send-email-matthias.bgg@gmail.com>
Hi Matthias,
On 09/04/2014 19:45, Matthias Brugger wrote:
> Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
> ---
> arch/arm/Kconfig.debug | 49 +++++++++++++++++++++++++++++++++++--
> arch/arm/include/debug/mediatek.S | 38 ++++++++++++++++++++++++++++
> 2 files changed, 85 insertions(+), 2 deletions(-)
> create mode 100644 arch/arm/include/debug/mediatek.S
>
> diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
> index 4a2fc0b..dc51495 100644
> --- a/arch/arm/Kconfig.debug
> +++ b/arch/arm/Kconfig.debug
> @@ -797,6 +797,38 @@ choice
> Say Y here if you want kernel low-level debugging support
> on Ux500 based platforms.
>
> + config DEBUG_MTK6589_UART0
> + depends on ARCH_MEDIATEK
> + bool "Mediatek mt6589 UART0"
> + select DEBUG_UART_MEDIATEK
> + help
> + Say Y here if you want kernel low-level debugging support
> + on Mediatek mt6589 based platforms.
> +
> + config DEBUG_MTK6589_UART1
> + depends on ARCH_MEDIATEK
> + bool "Mediatek mt6589 UART1"
> + select DEBUG_UART_MEDIATEK
> + help
> + Say Y here if you want kernel low-level debugging support
> + on Mediatek mt6589 based platforms.
> +
> + config DEBUG_MTK6589_UART2
> + depends on ARCH_MEDIATEK
> + bool "Mediatek mt6589 UART2"
> + select DEBUG_UART_MEDIATEK
> + help
> + Say Y here if you want kernel low-level debugging support
> + on Mediatek mt6589 based platforms.
> +
> + config DEBUG_MTK6589_UART3
> + depends on ARCH_MEDIATEK
> + bool "Mediatek mt6589 UART3"
> + select DEBUG_UART_MEDIATEK
> + help
> + Say Y here if you want kernel low-level debugging support
> + on Mediatek mt6589 based platforms.
> +
> config DEBUG_VEXPRESS_UART0_DETECT
> bool "Autodetect UART0 on Versatile Express Cortex-A core tiles"
> depends on ARCH_VEXPRESS && CPU_CP15_MMU
> @@ -954,6 +986,10 @@ config DEBUG_MSM_UART
> bool
> depends on ARCH_MSM || ARCH_QCOM
>
> +config DEBUG_UART_MEDIATEK
> + bool
> + depends on ARCH_MEDIATEK
> +
> config DEBUG_LL_INCLUDE
> string
> default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250
> @@ -971,6 +1007,7 @@ config DEBUG_LL_INCLUDE
> DEBUG_IMX53_UART ||\
> DEBUG_IMX6Q_UART || \
> DEBUG_IMX6SL_UART
> + default "debug/mediatek.S" if DEBUG_UART_MEDIATEK
> default "debug/msm.S" if DEBUG_MSM_UART
> default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
> default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1
> @@ -1043,6 +1080,10 @@ config DEBUG_UART_PHYS
> default 0xd0012000 if DEBUG_MVEBU_UART
> default 0xd4017000 if DEBUG_MMP_UART2
> default 0xd4018000 if DEBUG_MMP_UART3
it seems that this symbol are sorted by address so your symbols
should go just after the line
default 0x101fb000 if DEBUG_NOMADIK_UART
> + default 0x11006000 if DEBUG_MTK6589_UART0
> + default 0x11007000 if DEBUG_MTK6589_UART1
> + default 0x11008000 if DEBUG_MTK6589_UART2
> + default 0x11009000 if DEBUG_MTK6589_UART3
> default 0xe0000000 if ARCH_SPEAR13XX
> default 0xf0000be0 if ARCH_EBSA110
> default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE
> @@ -1058,7 +1099,7 @@ config DEBUG_UART_PHYS
> default 0xfffff700 if ARCH_IOP33X
> depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
> DEBUG_LL_UART_EFM32 || \
> - DEBUG_UART_8250 || DEBUG_UART_PL01X
> + DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_UART_MEDIATEK
>
> config DEBUG_UART_VIRT
> hex "Virtual base address of debug UART"
> @@ -1087,6 +1128,10 @@ config DEBUG_UART_VIRT
> default 0xfe012000 if ARCH_ORION5X
> default 0xfe017000 if DEBUG_MMP_UART2
> default 0xfe018000 if DEBUG_MMP_UART3
> + default 0xF1006000 if DEBUG_MTK6589_UART0
> + default 0xF1007000 if DEBUG_MTK6589_UART1
> + default 0xF1008000 if DEBUG_MTK6589_UART2
> + default 0xF1009000 if DEBUG_MTK6589_UART3
> default 0xfe100000 if DEBUG_IMX23_UART || DEBUG_IMX28_UART
> default 0xfe230000 if DEBUG_PICOXCELL_UART
> default 0xfe300000 if DEBUG_BCM_KONA_UART
> @@ -1116,7 +1161,7 @@ config DEBUG_UART_VIRT
> default 0xff003000 if DEBUG_U300_UART
> default DEBUG_UART_PHYS if !MMU
> depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
> - DEBUG_UART_8250 || DEBUG_UART_PL01X
> + DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_UART_MEDIATEK
>
> config DEBUG_UART_8250_SHIFT
> int "Register offset shift for the 8250 debug UART"
> diff --git a/arch/arm/include/debug/mediatek.S b/arch/arm/include/debug/mediatek.S
> new file mode 100644
> index 0000000..98e8414
> --- /dev/null
> +++ b/arch/arm/include/debug/mediatek.S
> @@ -0,0 +1,38 @@
> +/*
> + * Low-level debug macro for Mediatek SoCs
> + *
> + * Copyright (c) 2014 MundoReader S.L.
> + * Author: Matthias Brugger <matthias.bgg@gmail.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + */
> +#include <linux/serial_reg.h>
> +
> + .macro addruart, rp, rv, tmp
> + ldr \rp, =CONFIG_DEBUG_UART_PHYS
> + ldr \rv, =CONFIG_DEBUG_UART_VIRT
> + .endm
> +
> + .macro senduart,rd,rx
> + strb \rd, [\rx, #0x0]
What about using a #define instead of numerical value?
> + .endm
> +
> + .macro waituart,rd,rx
> +1001: ldr \rd, [\rx, #0x14]
ditto
> + tst \rd, #0x40
ditto
> + beq 1001b
> + .endm
> +
> + .macro busyuart,rd,rx
> +1002: ldr \rd, [\rx, #0x14]
ditto
> + tst \rd, #0x40
ditto
> + beq 1002b
> + .endm
>
This file looks very similar to arch/arm/include/debug/pl01x.S,
the only difference is the value of some register offsets.
Should it be possible to make it configurable and then use the
same file?
Thanks,
Gregory
--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
WARNING: multiple messages have this Message-ID (diff)
From: Gregory CLEMENT <gregory.clement@free-electrons.com>
To: Matthias Brugger <matthias.bgg@gmail.com>, linux-kernel@vger.kernel.org
Cc: mark.rutland@arm.com, andrew@lunn.ch, linux-doc@vger.kernel.org,
thierry.reding@gmail.com, heiko.stuebner@bq.com,
linux@arm.linux.org.uk, daniel.lezcano@linaro.org,
florian.vaussard@epfl.ch, sebastian.hesselbarth@gmail.com,
devicetree@vger.kernel.org, jason@lakedaemon.net,
pawel.moll@arm.com, ijc+devicetree@hellion.org.uk,
robh+dt@kernel.org, tglx@linutronix.de,
linux-arm-kernel@lists.infradead.org, rdunlap@infradead.org,
silvio.fricke@gmail.com, galak@codeaurora.org, olof@lixom.net,
jic23@kernel.org
Subject: Re: [PATCH 4/4] arm: mediatek: Add earlyprintk support for MT6589
Date: Wed, 09 Apr 2014 20:54:08 +0000 [thread overview]
Message-ID: <5345B370.6060004@free-electrons.com> (raw)
In-Reply-To: <1397072736-10793-5-git-send-email-matthias.bgg@gmail.com>
Hi Matthias,
On 09/04/2014 19:45, Matthias Brugger wrote:
> Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
> ---
> arch/arm/Kconfig.debug | 49 +++++++++++++++++++++++++++++++++++--
> arch/arm/include/debug/mediatek.S | 38 ++++++++++++++++++++++++++++
> 2 files changed, 85 insertions(+), 2 deletions(-)
> create mode 100644 arch/arm/include/debug/mediatek.S
>
> diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
> index 4a2fc0b..dc51495 100644
> --- a/arch/arm/Kconfig.debug
> +++ b/arch/arm/Kconfig.debug
> @@ -797,6 +797,38 @@ choice
> Say Y here if you want kernel low-level debugging support
> on Ux500 based platforms.
>
> + config DEBUG_MTK6589_UART0
> + depends on ARCH_MEDIATEK
> + bool "Mediatek mt6589 UART0"
> + select DEBUG_UART_MEDIATEK
> + help
> + Say Y here if you want kernel low-level debugging support
> + on Mediatek mt6589 based platforms.
> +
> + config DEBUG_MTK6589_UART1
> + depends on ARCH_MEDIATEK
> + bool "Mediatek mt6589 UART1"
> + select DEBUG_UART_MEDIATEK
> + help
> + Say Y here if you want kernel low-level debugging support
> + on Mediatek mt6589 based platforms.
> +
> + config DEBUG_MTK6589_UART2
> + depends on ARCH_MEDIATEK
> + bool "Mediatek mt6589 UART2"
> + select DEBUG_UART_MEDIATEK
> + help
> + Say Y here if you want kernel low-level debugging support
> + on Mediatek mt6589 based platforms.
> +
> + config DEBUG_MTK6589_UART3
> + depends on ARCH_MEDIATEK
> + bool "Mediatek mt6589 UART3"
> + select DEBUG_UART_MEDIATEK
> + help
> + Say Y here if you want kernel low-level debugging support
> + on Mediatek mt6589 based platforms.
> +
> config DEBUG_VEXPRESS_UART0_DETECT
> bool "Autodetect UART0 on Versatile Express Cortex-A core tiles"
> depends on ARCH_VEXPRESS && CPU_CP15_MMU
> @@ -954,6 +986,10 @@ config DEBUG_MSM_UART
> bool
> depends on ARCH_MSM || ARCH_QCOM
>
> +config DEBUG_UART_MEDIATEK
> + bool
> + depends on ARCH_MEDIATEK
> +
> config DEBUG_LL_INCLUDE
> string
> default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250
> @@ -971,6 +1007,7 @@ config DEBUG_LL_INCLUDE
> DEBUG_IMX53_UART ||\
> DEBUG_IMX6Q_UART || \
> DEBUG_IMX6SL_UART
> + default "debug/mediatek.S" if DEBUG_UART_MEDIATEK
> default "debug/msm.S" if DEBUG_MSM_UART
> default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
> default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1
> @@ -1043,6 +1080,10 @@ config DEBUG_UART_PHYS
> default 0xd0012000 if DEBUG_MVEBU_UART
> default 0xd4017000 if DEBUG_MMP_UART2
> default 0xd4018000 if DEBUG_MMP_UART3
it seems that this symbol are sorted by address so your symbols
should go just after the line
default 0x101fb000 if DEBUG_NOMADIK_UART
> + default 0x11006000 if DEBUG_MTK6589_UART0
> + default 0x11007000 if DEBUG_MTK6589_UART1
> + default 0x11008000 if DEBUG_MTK6589_UART2
> + default 0x11009000 if DEBUG_MTK6589_UART3
> default 0xe0000000 if ARCH_SPEAR13XX
> default 0xf0000be0 if ARCH_EBSA110
> default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE
> @@ -1058,7 +1099,7 @@ config DEBUG_UART_PHYS
> default 0xfffff700 if ARCH_IOP33X
> depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
> DEBUG_LL_UART_EFM32 || \
> - DEBUG_UART_8250 || DEBUG_UART_PL01X
> + DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_UART_MEDIATEK
>
> config DEBUG_UART_VIRT
> hex "Virtual base address of debug UART"
> @@ -1087,6 +1128,10 @@ config DEBUG_UART_VIRT
> default 0xfe012000 if ARCH_ORION5X
> default 0xfe017000 if DEBUG_MMP_UART2
> default 0xfe018000 if DEBUG_MMP_UART3
> + default 0xF1006000 if DEBUG_MTK6589_UART0
> + default 0xF1007000 if DEBUG_MTK6589_UART1
> + default 0xF1008000 if DEBUG_MTK6589_UART2
> + default 0xF1009000 if DEBUG_MTK6589_UART3
> default 0xfe100000 if DEBUG_IMX23_UART || DEBUG_IMX28_UART
> default 0xfe230000 if DEBUG_PICOXCELL_UART
> default 0xfe300000 if DEBUG_BCM_KONA_UART
> @@ -1116,7 +1161,7 @@ config DEBUG_UART_VIRT
> default 0xff003000 if DEBUG_U300_UART
> default DEBUG_UART_PHYS if !MMU
> depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
> - DEBUG_UART_8250 || DEBUG_UART_PL01X
> + DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_UART_MEDIATEK
>
> config DEBUG_UART_8250_SHIFT
> int "Register offset shift for the 8250 debug UART"
> diff --git a/arch/arm/include/debug/mediatek.S b/arch/arm/include/debug/mediatek.S
> new file mode 100644
> index 0000000..98e8414
> --- /dev/null
> +++ b/arch/arm/include/debug/mediatek.S
> @@ -0,0 +1,38 @@
> +/*
> + * Low-level debug macro for Mediatek SoCs
> + *
> + * Copyright (c) 2014 MundoReader S.L.
> + * Author: Matthias Brugger <matthias.bgg@gmail.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + */
> +#include <linux/serial_reg.h>
> +
> + .macro addruart, rp, rv, tmp
> + ldr \rp, =CONFIG_DEBUG_UART_PHYS
> + ldr \rv, =CONFIG_DEBUG_UART_VIRT
> + .endm
> +
> + .macro senduart,rd,rx
> + strb \rd, [\rx, #0x0]
What about using a #define instead of numerical value?
> + .endm
> +
> + .macro waituart,rd,rx
> +1001: ldr \rd, [\rx, #0x14]
ditto
> + tst \rd, #0x40
ditto
> + beq 1001b
> + .endm
> +
> + .macro busyuart,rd,rx
> +1002: ldr \rd, [\rx, #0x14]
ditto
> + tst \rd, #0x40
ditto
> + beq 1002b
> + .endm
>
This file looks very similar to arch/arm/include/debug/pl01x.S,
the only difference is the value of some register offsets.
Should it be possible to make it configurable and then use the
same file?
Thanks,
Gregory
--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
next prev parent reply other threads:[~2014-04-09 20:54 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-09 19:45 [PATCH 0/4] arm: Add basic support for Mediatek Cortex-A7 SoCs Matthias Brugger
2014-04-09 19:45 ` Matthias Brugger
2014-04-09 19:45 ` [PATCH 1/4] clocksource: Add support for the Mediatek SoCs Matthias Brugger
2014-04-09 19:45 ` Matthias Brugger
2014-04-09 19:45 ` Matthias Brugger
2014-04-09 20:58 ` Stephen Boyd
2014-04-09 20:58 ` Stephen Boyd
2014-04-09 20:58 ` Stephen Boyd
2014-04-09 21:08 ` Gregory CLEMENT
2014-04-09 21:08 ` Gregory CLEMENT
2014-04-09 21:08 ` Gregory CLEMENT
2014-04-09 21:52 ` Olof Johansson
2014-04-09 21:52 ` Olof Johansson
2014-04-09 21:52 ` Olof Johansson
2014-04-11 9:07 ` Matthias Brugger
2014-04-11 9:07 ` Matthias Brugger
2014-04-11 9:07 ` Matthias Brugger
2014-04-11 9:21 ` Arnd Bergmann
2014-04-11 9:21 ` Arnd Bergmann
2014-04-11 9:21 ` Arnd Bergmann
2014-04-09 19:45 ` [PATCH 2/4] dt-bindings: add mtk-timer bindings Matthias Brugger
2014-04-09 19:45 ` Matthias Brugger
2014-04-09 19:45 ` Matthias Brugger
2014-04-09 20:56 ` Gregory CLEMENT
2014-04-09 20:56 ` Gregory CLEMENT
2014-04-09 19:45 ` [PATCH 3/4] arm: add basic support for Mediatek MT6589 boards Matthias Brugger
2014-04-09 19:45 ` Matthias Brugger
2014-04-09 20:26 ` Gregory CLEMENT
2014-04-09 20:26 ` Gregory CLEMENT
2014-04-10 8:29 ` Matthias Brugger
2014-04-10 8:29 ` Matthias Brugger
2014-04-10 8:29 ` Matthias Brugger
2014-04-10 8:46 ` Gregory CLEMENT
2014-04-10 8:46 ` Gregory CLEMENT
2014-04-10 8:46 ` Gregory CLEMENT
2014-04-10 9:34 ` Heiko Stübner
2014-04-10 9:34 ` Heiko Stübner
2014-04-10 9:34 ` Heiko Stübner
2014-04-10 9:36 ` Arnd Bergmann
2014-04-10 9:36 ` Arnd Bergmann
2014-04-10 9:36 ` Arnd Bergmann
2014-04-09 21:50 ` Rob Herring
2014-04-09 21:50 ` Rob Herring
2014-04-09 21:50 ` Rob Herring
2014-04-10 9:01 ` Marc Zyngier
2014-04-10 9:01 ` Marc Zyngier
2014-04-10 9:01 ` Marc Zyngier
2014-04-11 9:11 ` Matthias Brugger
2014-04-11 9:11 ` Matthias Brugger
2014-04-11 9:43 ` Marc Zyngier
2014-04-11 9:43 ` Marc Zyngier
2014-04-11 9:53 ` Maxime Ripard
2014-04-11 9:53 ` Maxime Ripard
2014-04-15 16:09 ` Matthias Brugger
2014-04-15 16:09 ` Matthias Brugger
2014-04-15 16:40 ` Marc Zyngier
2014-04-15 16:40 ` Marc Zyngier
2014-05-04 12:50 ` Matthias Brugger
2014-05-04 12:50 ` Matthias Brugger
2014-04-10 7:36 ` Arnd Bergmann
2014-04-10 7:36 ` Arnd Bergmann
2014-04-10 7:36 ` Arnd Bergmann
2014-04-10 9:15 ` Matthias Brugger
2014-04-10 9:15 ` Matthias Brugger
2014-04-09 19:45 ` [PATCH 4/4] arm: mediatek: Add earlyprintk support for MT6589 Matthias Brugger
2014-04-09 19:45 ` Matthias Brugger
2014-04-09 20:54 ` Gregory CLEMENT [this message]
2014-04-09 20:54 ` Gregory CLEMENT
2014-04-09 21:39 ` Rob Herring
2014-04-09 21:39 ` Rob Herring
2014-04-09 21:39 ` Rob Herring
2014-04-10 8:22 ` Matthias Brugger
2014-04-10 8:22 ` Matthias Brugger
2014-04-10 8:22 ` Matthias Brugger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5345B370.6060004@free-electrons.com \
--to=gregory.clement@free-electrons.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.