2017-07-27 16:51:05

by Bich HEMON

[permalink] [raw]
Subject: [PATCH] Add support for low-level debug on STM32

This patch adds low-level debug support on USART1 for STM32F4 and STM32F7.

Gerald Baeza (1):
ARM: stm32: debug: add low-level debug support

arch/arm/Kconfig.debug | 27 +++++++++++++++++++++++++++
arch/arm/include/debug/stm32.S | 41 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 68 insertions(+)
create mode 100644 arch/arm/include/debug/stm32.S

--
1.9.1


2017-07-27 16:51:02

by Bich HEMON

[permalink] [raw]
Subject: [PATCH] ARM: stm32: debug: add low-level debug support

From: Gerald Baeza <[email protected]>

This adds low-level debug support on USART1 for STM32F4
and STM32F7.
Compiled via 'CONFIG_DEBUG_LL' and 'CONFIG_EARLY_PRINTK'.
Enabled via 'earlyprintk' in bootargs.

Signed-off-by: Gerald Baeza <[email protected]>
Signed-off-by: Bich Hemon <[email protected]>
---
arch/arm/Kconfig.debug | 27 +++++++++++++++++++++++++++
arch/arm/include/debug/stm32.S | 41 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 68 insertions(+)
create mode 100644 arch/arm/include/debug/stm32.S

diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 447629d..0b6e61e 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -1126,6 +1126,28 @@ choice

If unsure, say N.

+ config STM32F4_DEBUG_UART
+ bool "Use STM32F4 UART for low-level debug"
+ depends on ARCH_STM32
+ select DEBUG_STM32_UART
+ help
+ Say Y here if you want kernel low-level debugging support
+ on STM32F4 based platforms, which default UART is wired on
+ USART1.
+
+ If unsure, say N.
+
+ config STM32F7_DEBUG_UART
+ bool "Use STM32F7 UART for low-level debug"
+ depends on ARCH_STM32
+ select DEBUG_STM32_UART
+ help
+ Say Y here if you want kernel low-level debugging support
+ on STM32F7 based platforms, which default UART is wired on
+ USART1.
+
+ If unsure, say N.
+
config TEGRA_DEBUG_UART_AUTO_ODMDATA
bool "Kernel low-level debugging messages via Tegra UART via ODMDATA"
depends on ARCH_TEGRA
@@ -1410,6 +1432,10 @@ config DEBUG_STI_UART
bool
depends on ARCH_STI

+config DEBUG_STM32_UART
+ bool
+ depends on ARCH_STM32
+
config DEBUG_SIRFSOC_UART
bool
depends on ARCH_SIRF
@@ -1457,6 +1483,7 @@ config DEBUG_LL_INCLUDE
default "debug/s5pv210.S" if DEBUG_S5PV210_UART
default "debug/sirf.S" if DEBUG_SIRFSOC_UART
default "debug/sti.S" if DEBUG_STI_UART
+ default "debug/stm32.S" if DEBUG_STM32_UART
default "debug/tegra.S" if DEBUG_TEGRA_UART
default "debug/ux500.S" if DEBUG_UX500_UART
default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT
diff --git a/arch/arm/include/debug/stm32.S b/arch/arm/include/debug/stm32.S
new file mode 100644
index 0000000..1e060a5
--- /dev/null
+++ b/arch/arm/include/debug/stm32.S
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) STMicroelectronics SA 2017
+ * Author: Gerald Baeza <[email protected]>
+ * License terms: GNU General Public License (GPL), version 2
+ */
+
+#define STM32_UART_BASE 0x40011000 /* USART1 */
+
+#ifdef CONFIG_STM32F4_DEBUG_UART
+#define STM32_USART_SR_OFF 0x00
+#define STM32_USART_TDR_OFF 0x04
+#endif
+
+#ifdef CONFIG_STM32F7_DEBUG_UART
+#define STM32_USART_SR_OFF 0x1C
+#define STM32_USART_TDR_OFF 0x28
+#endif
+
+#define STM32_USART_TC (1 << 6) /* Tx complete */
+#define STM32_USART_TXE (1 << 7) /* Tx data reg empty */
+
+ .macro addruart, rp, rv, tmp
+ ldr \rp, =STM32_UART_BASE @ physical base
+ ldr \rv, =STM32_UART_BASE @ virt base /* NoMMU */
+ .endm
+
+ .macro senduart,rd,rx
+ strb \rd, [\rx, #STM32_USART_TDR_OFF]
+ .endm
+
+ .macro waituart,rd,rx
+1001: ldr \rd, [\rx, #(STM32_USART_SR_OFF)] @ Read Status Register
+ tst \rd, #STM32_USART_TXE @ TXE = 1 = tx empty
+ beq 1001b
+ .endm
+
+ .macro busyuart,rd,rx
+1001: ldr \rd, [\rx, #(STM32_USART_SR_OFF)] @ Read Status Register
+ tst \rd, #STM32_USART_TC @ TC = 1 = tx complete
+ beq 1001b
+ .endm
--
1.9.1

2018-11-12 18:29:28

by Olof Johansson

[permalink] [raw]
Subject: Re: [PATCH] ARM: stm32: debug: add low-level debug support

On Thu, Jul 27, 2017 at 04:50:20PM +0000, Bich HEMON wrote:
> From: Gerald Baeza <[email protected]>
>
> This adds low-level debug support on USART1 for STM32F4
> and STM32F7.
> Compiled via 'CONFIG_DEBUG_LL' and 'CONFIG_EARLY_PRINTK'.
> Enabled via 'earlyprintk' in bootargs.
>
> Signed-off-by: Gerald Baeza <[email protected]>
> Signed-off-by: Bich Hemon <[email protected]>

Hi,

This had fallen between the chairs it seems. I have applied it to arm-soc
next/soc now, for 4.21 merge window.

It ended up being patched up manually to consolidate the version in
Russell's patch tracker with this posted version, and I tweaked whitespace
a bit. Let me know if I missed something.


Thanks,

-Olof


2018-11-13 09:17:21

by Bich HEMON

[permalink] [raw]
Subject: Re: [PATCH] ARM: stm32: debug: add low-level debug support


On 11/12/18 7:22 PM, Olof Johansson wrote:
> On Thu, Jul 27, 2017 at 04:50:20PM +0000, Bich HEMON wrote:
>> From: Gerald Baeza <[email protected]>
>>
>> This adds low-level debug support on USART1 for STM32F4
>> and STM32F7.
>> Compiled via 'CONFIG_DEBUG_LL' and 'CONFIG_EARLY_PRINTK'.
>> Enabled via 'earlyprintk' in bootargs.
>>
>> Signed-off-by: Gerald Baeza <[email protected]>
>> Signed-off-by: Bich Hemon <[email protected]>
>
> Hi,
>
> This had fallen between the chairs it seems. I have applied it to arm-soc
> next/soc now, for 4.21 merge window.
>
> It ended up being patched up manually to consolidate the version in
> Russell's patch tracker with this posted version, and I tweaked whitespace
> a bit. Let me know if I missed something.
>
>
> Thanks,
>
> -Olof
>

Hi Olof,

Please note that this patch has to be abandoned as Ludovic BARRE pushed
a new version of this change:
https://patchwork.codeaurora.org/patch/400563/

You can find it in Russell's tracker here:
http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=8803/1

Best regards,

Bich

2018-11-13 09:26:30

by Russell King (Oracle)

[permalink] [raw]
Subject: Re: [PATCH] ARM: stm32: debug: add low-level debug support

On Tue, Nov 13, 2018 at 09:16:16AM +0000, Bich HEMON wrote:
>
> On 11/12/18 7:22 PM, Olof Johansson wrote:
> > On Thu, Jul 27, 2017 at 04:50:20PM +0000, Bich HEMON wrote:
> >> From: Gerald Baeza <[email protected]>
> >>
> >> This adds low-level debug support on USART1 for STM32F4
> >> and STM32F7.
> >> Compiled via 'CONFIG_DEBUG_LL' and 'CONFIG_EARLY_PRINTK'.
> >> Enabled via 'earlyprintk' in bootargs.
> >>
> >> Signed-off-by: Gerald Baeza <[email protected]>
> >> Signed-off-by: Bich Hemon <[email protected]>
> >
> > Hi,
> >
> > This had fallen between the chairs it seems. I have applied it to arm-soc
> > next/soc now, for 4.21 merge window.
> >
> > It ended up being patched up manually to consolidate the version in
> > Russell's patch tracker with this posted version, and I tweaked whitespace
> > a bit. Let me know if I missed something.
> >
> >
> > Thanks,
> >
> > -Olof
> >
>
> Hi Olof,
>
> Please note that this patch has to be abandoned as Ludovic BARRE pushed
> a new version of this change:
> https://patchwork.codeaurora.org/patch/400563/
>
> You can find it in Russell's tracker here:
> http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=8803/1

And I'm not going to merge that because:

1) it's not for me to merge - it doesn't go through my tree, but through
arm-soc, which Olof and Arnd manage.
2) it's not been on the mailing list as per normal submission process.

Sorry.

--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

2018-11-13 10:19:17

by Bich HEMON

[permalink] [raw]
Subject: Re: [PATCH] ARM: stm32: debug: add low-level debug support



On 11/13/18 10:24 AM, Russell King - ARM Linux wrote:
> On Tue, Nov 13, 2018 at 09:16:16AM +0000, Bich HEMON wrote:
>>
>> On 11/12/18 7:22 PM, Olof Johansson wrote:
>>> On Thu, Jul 27, 2017 at 04:50:20PM +0000, Bich HEMON wrote:
>>>> From: Gerald Baeza <[email protected]>
>>>>
>>>> This adds low-level debug support on USART1 for STM32F4
>>>> and STM32F7.
>>>> Compiled via 'CONFIG_DEBUG_LL' and 'CONFIG_EARLY_PRINTK'.
>>>> Enabled via 'earlyprintk' in bootargs.
>>>>
>>>> Signed-off-by: Gerald Baeza <[email protected]>
>>>> Signed-off-by: Bich Hemon <[email protected]>
>>>
>>> Hi,
>>>
>>> This had fallen between the chairs it seems. I have applied it to arm-soc
>>> next/soc now, for 4.21 merge window.
>>>
>>> It ended up being patched up manually to consolidate the version in
>>> Russell's patch tracker with this posted version, and I tweaked whitespace
>>> a bit. Let me know if I missed something.
>>>
>>>
>>> Thanks,
>>>
>>> -Olof
>>>
>>
>> Hi Olof,
>>
>> Please note that this patch has to be abandoned as Ludovic BARRE pushed
>> a new version of this change:
>> https://patchwork.codeaurora.org/patch/400563/
>>
>> You can find it in Russell's tracker here:
>> http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=8803/1
>
> And I'm not going to merge that because:
>
> 1) it's not for me to merge - it doesn't go through my tree, but through
> arm-soc, which Olof and Arnd manage.
> 2) it's not been on the mailing list as per normal submission process.
>
> Sorry.
>

Ok, thank you for the feedback.

So Olof, can you please ignore my previous email and merge my patch as
you proposed it for 4.21. Ludovic's patch will be abandoned instead.

Thanks,

Bich

2018-11-13 19:05:33

by Olof Johansson

[permalink] [raw]
Subject: Re: [PATCH] ARM: stm32: debug: add low-level debug support

Take a look at the patch I merged, and please follow up with any patch
to fixup any issue you find with it.

As mentioned in my original email, I tried to consolidate the two
versions, so a look-through and follow up with fixes would be
appreciated. Thanks!


-Olof

On Tue, Nov 13, 2018 at 2:17 AM Bich HEMON <[email protected]> wrote:
>
>
>
> On 11/13/18 10:24 AM, Russell King - ARM Linux wrote:
> > On Tue, Nov 13, 2018 at 09:16:16AM +0000, Bich HEMON wrote:
> >>
> >> On 11/12/18 7:22 PM, Olof Johansson wrote:
> >>> On Thu, Jul 27, 2017 at 04:50:20PM +0000, Bich HEMON wrote:
> >>>> From: Gerald Baeza <[email protected]>
> >>>>
> >>>> This adds low-level debug support on USART1 for STM32F4
> >>>> and STM32F7.
> >>>> Compiled via 'CONFIG_DEBUG_LL' and 'CONFIG_EARLY_PRINTK'.
> >>>> Enabled via 'earlyprintk' in bootargs.
> >>>>
> >>>> Signed-off-by: Gerald Baeza <[email protected]>
> >>>> Signed-off-by: Bich Hemon <[email protected]>
> >>>
> >>> Hi,
> >>>
> >>> This had fallen between the chairs it seems. I have applied it to arm-soc
> >>> next/soc now, for 4.21 merge window.
> >>>
> >>> It ended up being patched up manually to consolidate the version in
> >>> Russell's patch tracker with this posted version, and I tweaked whitespace
> >>> a bit. Let me know if I missed something.
> >>>
> >>>
> >>> Thanks,
> >>>
> >>> -Olof
> >>>
> >>
> >> Hi Olof,
> >>
> >> Please note that this patch has to be abandoned as Ludovic BARRE pushed
> >> a new version of this change:
> >> https://patchwork.codeaurora.org/patch/400563/
> >>
> >> You can find it in Russell's tracker here:
> >> http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=8803/1
> >
> > And I'm not going to merge that because:
> >
> > 1) it's not for me to merge - it doesn't go through my tree, but through
> > arm-soc, which Olof and Arnd manage.
> > 2) it's not been on the mailing list as per normal submission process.
> >
> > Sorry.
> >
>
> Ok, thank you for the feedback.
>
> So Olof, can you please ignore my previous email and merge my patch as
> you proposed it for 4.21. Ludovic's patch will be abandoned instead.
>
> Thanks,
>
> Bich

2018-11-14 10:22:48

by Bich HEMON

[permalink] [raw]
Subject: Re: [PATCH] ARM: stm32: debug: add low-level debug support

Hi Olof,

I had a look at your next branch and no fix is required as you corrected
it all by consolidating Ludovic's version with mine.

Thanks a lot!

Bich

On 11/13/18 8:02 PM, Olof Johansson wrote:
> Take a look at the patch I merged, and please follow up with any patch
> to fixup any issue you find with it.
>
> As mentioned in my original email, I tried to consolidate the two
> versions, so a look-through and follow up with fixes would be
> appreciated. Thanks!
>
>
> -Olof
>
> On Tue, Nov 13, 2018 at 2:17 AM Bich HEMON <[email protected]> wrote:
>>
>>
>>
>> On 11/13/18 10:24 AM, Russell King - ARM Linux wrote:
>>> On Tue, Nov 13, 2018 at 09:16:16AM +0000, Bich HEMON wrote:
>>>>
>>>> On 11/12/18 7:22 PM, Olof Johansson wrote:
>>>>> On Thu, Jul 27, 2017 at 04:50:20PM +0000, Bich HEMON wrote:
>>>>>> From: Gerald Baeza <[email protected]>
>>>>>>
>>>>>> This adds low-level debug support on USART1 for STM32F4
>>>>>> and STM32F7.
>>>>>> Compiled via 'CONFIG_DEBUG_LL' and 'CONFIG_EARLY_PRINTK'.
>>>>>> Enabled via 'earlyprintk' in bootargs.
>>>>>>
>>>>>> Signed-off-by: Gerald Baeza <[email protected]>
>>>>>> Signed-off-by: Bich Hemon <[email protected]>
>>>>>
>>>>> Hi,
>>>>>
>>>>> This had fallen between the chairs it seems. I have applied it to arm-soc
>>>>> next/soc now, for 4.21 merge window.
>>>>>
>>>>> It ended up being patched up manually to consolidate the version in
>>>>> Russell's patch tracker with this posted version, and I tweaked whitespace
>>>>> a bit. Let me know if I missed something.
>>>>>
>>>>>
>>>>> Thanks,
>>>>>
>>>>> -Olof
>>>>>
>>>>
>>>> Hi Olof,
>>>>
>>>> Please note that this patch has to be abandoned as Ludovic BARRE pushed
>>>> a new version of this change:
>>>> https://patchwork.codeaurora.org/patch/400563/
>>>>
>>>> You can find it in Russell's tracker here:
>>>> http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=8803/1
>>>
>>> And I'm not going to merge that because:
>>>
>>> 1) it's not for me to merge - it doesn't go through my tree, but through
>>> arm-soc, which Olof and Arnd manage.
>>> 2) it's not been on the mailing list as per normal submission process.
>>>
>>> Sorry.
>>>
>>
>> Ok, thank you for the feedback.
>>
>> So Olof, can you please ignore my previous email and merge my patch as
>> you proposed it for 4.21. Ludovic's patch will be abandoned instead.
>>
>> Thanks,
>>
>> Bich