diff mbox

[v6,2/4] ARM: debug: support debug ll on hisilicon soc

Message ID 1374813135-16238-3-git-send-email-haojian.zhuang@linaro.org
State Superseded
Headers show

Commit Message

Haojian Zhuang July 26, 2013, 4:32 a.m. UTC
Support UART0 debug ll on hisilicon Hi3620 SoC.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
---
 arch/arm/Kconfig.debug             | 15 +++++++++++++++
 arch/arm/include/debug/hisilicon.S | 30 ++++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+)
 create mode 100644 arch/arm/include/debug/hisilicon.S

Comments

Olof Johansson Aug. 14, 2013, 6:39 a.m. UTC | #1
On Fri, Jul 26, 2013 at 12:32:13PM +0800, Haojian Zhuang wrote:
> Support UART0 debug ll on hisilicon Hi3620 SoC.
> 
> Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>


Applied, thanks.


-Olof
Olof Johansson Aug. 14, 2013, 6:44 a.m. UTC | #2
Hi,


On Fri, Jul 26, 2013 at 12:32:13PM +0800, Haojian Zhuang wrote:
> Support UART0 debug ll on hisilicon Hi3620 SoC.
> 
> Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>

By the way, I ended up doing two fixups:

> ---
>  arch/arm/Kconfig.debug             | 15 +++++++++++++++
>  arch/arm/include/debug/hisilicon.S | 30 ++++++++++++++++++++++++++++++
>  2 files changed, 45 insertions(+)
>  create mode 100644 arch/arm/include/debug/hisilicon.S
> 
> diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
> index e401a76..289a248 100644
> --- a/arch/arm/Kconfig.debug
> +++ b/arch/arm/Kconfig.debug
> @@ -272,6 +272,20 @@ choice
>  		  Say Y here if you want the debug print routines to direct
>  		  their output to UART1 serial port on KEYSTONE2 devices.
>  
> +	config DEBUG_HI3620_UART
> +		bool "Hisilicon HI3620 Debug UART"
> +		depends on ARCH_HI3xxx
> +		help
> +		  Say Y here if you want kernel low-level debugging support
> +		  on HI3620 UART.
> +
> +	config DEBUG_HI3716_UART
> +		bool "Hisilicon Hi3716 Debug UART"
> +		depends on ARCH_HI3xxx
> +		help
> +		  Say Y here if you want kernel low-level debugging support
> +		  on HI3716 UART.
> +
>  	config DEBUG_MMP_UART2

These are out of alphabetical order, not good. I moved them up right before
highbank where they should be.

> diff --git a/arch/arm/include/debug/hisilicon.S b/arch/arm/include/debug/hisilicon.S
> new file mode 100644
> index 0000000..47ad019
> --- /dev/null
> +++ b/arch/arm/include/debug/hisilicon.S
> @@ -0,0 +1,30 @@
> +/*
> + * Early serial output macro for Hisilicon SoC
> + *
> + * Copyright (C) 2012-2013 Hisilicon Technologies Co., Ltd.
> + * Copyright (C) 2012-2013 Linaro Ltd.
> + *
> + * Author: Haojian Zhuang <haojian.zhuang@linaro.org>
> + *
> + * 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.
> +*/
> +
> +#if defined(CONFIG_DEBUG_HI3620_UART)
> +#define HS_UART_PHYS_BASE	0xfcb00000
> +#define HS_UART_VIRT_BASE	0xfeb00000
> +#elif defined(CONFIG_DEBUG_HI3716_UART)
> +#define HS_UART_PHYS_BASE	0xf8b00000
> +#define HS_UART_VIRT_BASE	0xfeb00000
> +#endif

HS_UART_VIRT_BASE is the same, so I moved it outside the ifdef.


-Olof
Haojian Zhuang Aug. 14, 2013, 3:32 p.m. UTC | #3
On 14 August 2013 14:44, Olof Johansson <olof@lixom.net> wrote:
> Hi,
>
>
> On Fri, Jul 26, 2013 at 12:32:13PM +0800, Haojian Zhuang wrote:
>> Support UART0 debug ll on hisilicon Hi3620 SoC.
>>
>> Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
>
> By the way, I ended up doing two fixups:
>
>> ---
>>  arch/arm/Kconfig.debug             | 15 +++++++++++++++
>>  arch/arm/include/debug/hisilicon.S | 30 ++++++++++++++++++++++++++++++
>>  2 files changed, 45 insertions(+)
>>  create mode 100644 arch/arm/include/debug/hisilicon.S
>>
>> diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
>> index e401a76..289a248 100644
>> --- a/arch/arm/Kconfig.debug
>> +++ b/arch/arm/Kconfig.debug
>> @@ -272,6 +272,20 @@ choice
>>                 Say Y here if you want the debug print routines to direct
>>                 their output to UART1 serial port on KEYSTONE2 devices.
>>
>> +     config DEBUG_HI3620_UART
>> +             bool "Hisilicon HI3620 Debug UART"
>> +             depends on ARCH_HI3xxx
>> +             help
>> +               Say Y here if you want kernel low-level debugging support
>> +               on HI3620 UART.
>> +
>> +     config DEBUG_HI3716_UART
>> +             bool "Hisilicon Hi3716 Debug UART"
>> +             depends on ARCH_HI3xxx
>> +             help
>> +               Say Y here if you want kernel low-level debugging support
>> +               on HI3716 UART.
>> +
>>       config DEBUG_MMP_UART2
>
> These are out of alphabetical order, not good. I moved them up right before
> highbank where they should be.
>
>> diff --git a/arch/arm/include/debug/hisilicon.S b/arch/arm/include/debug/hisilicon.S
>> new file mode 100644
>> index 0000000..47ad019
>> --- /dev/null
>> +++ b/arch/arm/include/debug/hisilicon.S
>> @@ -0,0 +1,30 @@
>> +/*
>> + * Early serial output macro for Hisilicon SoC
>> + *
>> + * Copyright (C) 2012-2013 Hisilicon Technologies Co., Ltd.
>> + * Copyright (C) 2012-2013 Linaro Ltd.
>> + *
>> + * Author: Haojian Zhuang <haojian.zhuang@linaro.org>
>> + *
>> + * 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.
>> +*/
>> +
>> +#if defined(CONFIG_DEBUG_HI3620_UART)
>> +#define HS_UART_PHYS_BASE    0xfcb00000
>> +#define HS_UART_VIRT_BASE    0xfeb00000
>> +#elif defined(CONFIG_DEBUG_HI3716_UART)
>> +#define HS_UART_PHYS_BASE    0xf8b00000
>> +#define HS_UART_VIRT_BASE    0xfeb00000
>> +#endif
>
> HS_UART_VIRT_BASE is the same, so I moved it outside the ifdef.
>
>
> -Olof

Thanks a lot.

Regards
Haojian
Russell King - ARM Linux Aug. 14, 2013, 3:44 p.m. UTC | #4
On Tue, Aug 13, 2013 at 11:39:16PM -0700, Olof Johansson wrote:
> On Fri, Jul 26, 2013 at 12:32:13PM +0800, Haojian Zhuang wrote:
> > Support UART0 debug ll on hisilicon Hi3620 SoC.
> > 
> > Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
> 
> 
> Applied, thanks.

Applied without reference to my debug cleanup series which has been
sitting in linux-next for ages?

Whatever happened to encouraging people to do things in a manner
compatible with the cleanups we're trying to do?
Russell King - ARM Linux Aug. 14, 2013, 3:46 p.m. UTC | #5
On Wed, Aug 14, 2013 at 11:32:18PM +0800, Haojian Zhuang wrote:
> On 14 August 2013 14:44, Olof Johansson <olof@lixom.net> wrote:
> > Hi,
> >
> >
> > On Fri, Jul 26, 2013 at 12:32:13PM +0800, Haojian Zhuang wrote:
> >> Support UART0 debug ll on hisilicon Hi3620 SoC.
> >>
> >> Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
> >
> > By the way, I ended up doing two fixups:
> >
> >> ---
> >>  arch/arm/Kconfig.debug             | 15 +++++++++++++++
> >>  arch/arm/include/debug/hisilicon.S | 30 ++++++++++++++++++++++++++++++
> >>  2 files changed, 45 insertions(+)
> >>  create mode 100644 arch/arm/include/debug/hisilicon.S
> >>
> >> diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
> >> index e401a76..289a248 100644
> >> --- a/arch/arm/Kconfig.debug
> >> +++ b/arch/arm/Kconfig.debug
> >> @@ -272,6 +272,20 @@ choice
> >>                 Say Y here if you want the debug print routines to direct
> >>                 their output to UART1 serial port on KEYSTONE2 devices.
> >>
> >> +     config DEBUG_HI3620_UART
> >> +             bool "Hisilicon HI3620 Debug UART"
> >> +             depends on ARCH_HI3xxx
> >> +             help
> >> +               Say Y here if you want kernel low-level debugging support
> >> +               on HI3620 UART.
> >> +
> >> +     config DEBUG_HI3716_UART
> >> +             bool "Hisilicon Hi3716 Debug UART"
> >> +             depends on ARCH_HI3xxx
> >> +             help
> >> +               Say Y here if you want kernel low-level debugging support
> >> +               on HI3716 UART.
> >> +
> >>       config DEBUG_MMP_UART2
> >
> > These are out of alphabetical order, not good. I moved them up right before
> > highbank where they should be.
> >
> >> diff --git a/arch/arm/include/debug/hisilicon.S b/arch/arm/include/debug/hisilicon.S
> >> new file mode 100644
> >> index 0000000..47ad019
> >> --- /dev/null
> >> +++ b/arch/arm/include/debug/hisilicon.S
> >> @@ -0,0 +1,30 @@
> >> +/*
> >> + * Early serial output macro for Hisilicon SoC
> >> + *
> >> + * Copyright (C) 2012-2013 Hisilicon Technologies Co., Ltd.
> >> + * Copyright (C) 2012-2013 Linaro Ltd.
> >> + *
> >> + * Author: Haojian Zhuang <haojian.zhuang@linaro.org>
> >> + *
> >> + * 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.
> >> +*/
> >> +
> >> +#if defined(CONFIG_DEBUG_HI3620_UART)
> >> +#define HS_UART_PHYS_BASE    0xfcb00000
> >> +#define HS_UART_VIRT_BASE    0xfeb00000
> >> +#elif defined(CONFIG_DEBUG_HI3716_UART)
> >> +#define HS_UART_PHYS_BASE    0xf8b00000
> >> +#define HS_UART_VIRT_BASE    0xfeb00000
> >> +#endif
> >
> > HS_UART_VIRT_BASE is the same, so I moved it outside the ifdef.
> >
> >
> > -Olof
> 
> Thanks a lot.

Please send me a patch against the debug cleanup stuff which you can
find in my tree (commit daf6d46c2467253af457b326e3299ea431dc2a94)
so that I don't have to go back over this stuff after the next merge
window to fix all the stuff people haven't noticed being queued for
the upcoming merge window.

Thanks.
Haojian Zhuang Aug. 14, 2013, 3:50 p.m. UTC | #6
On 14 August 2013 23:46, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
> On Wed, Aug 14, 2013 at 11:32:18PM +0800, Haojian Zhuang wrote:
>> On 14 August 2013 14:44, Olof Johansson <olof@lixom.net> wrote:
>> > Hi,
>> >
>> >
>> > On Fri, Jul 26, 2013 at 12:32:13PM +0800, Haojian Zhuang wrote:
>> >> Support UART0 debug ll on hisilicon Hi3620 SoC.
>> >>
>> >> Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
>> >
>> > By the way, I ended up doing two fixups:
>> >
>> >> ---
>> >>  arch/arm/Kconfig.debug             | 15 +++++++++++++++
>> >>  arch/arm/include/debug/hisilicon.S | 30 ++++++++++++++++++++++++++++++
>> >>  2 files changed, 45 insertions(+)
>> >>  create mode 100644 arch/arm/include/debug/hisilicon.S
>> >>
>> >> diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
>> >> index e401a76..289a248 100644
>> >> --- a/arch/arm/Kconfig.debug
>> >> +++ b/arch/arm/Kconfig.debug
>> >> @@ -272,6 +272,20 @@ choice
>> >>                 Say Y here if you want the debug print routines to direct
>> >>                 their output to UART1 serial port on KEYSTONE2 devices.
>> >>
>> >> +     config DEBUG_HI3620_UART
>> >> +             bool "Hisilicon HI3620 Debug UART"
>> >> +             depends on ARCH_HI3xxx
>> >> +             help
>> >> +               Say Y here if you want kernel low-level debugging support
>> >> +               on HI3620 UART.
>> >> +
>> >> +     config DEBUG_HI3716_UART
>> >> +             bool "Hisilicon Hi3716 Debug UART"
>> >> +             depends on ARCH_HI3xxx
>> >> +             help
>> >> +               Say Y here if you want kernel low-level debugging support
>> >> +               on HI3716 UART.
>> >> +
>> >>       config DEBUG_MMP_UART2
>> >
>> > These are out of alphabetical order, not good. I moved them up right before
>> > highbank where they should be.
>> >
>> >> diff --git a/arch/arm/include/debug/hisilicon.S b/arch/arm/include/debug/hisilicon.S
>> >> new file mode 100644
>> >> index 0000000..47ad019
>> >> --- /dev/null
>> >> +++ b/arch/arm/include/debug/hisilicon.S
>> >> @@ -0,0 +1,30 @@
>> >> +/*
>> >> + * Early serial output macro for Hisilicon SoC
>> >> + *
>> >> + * Copyright (C) 2012-2013 Hisilicon Technologies Co., Ltd.
>> >> + * Copyright (C) 2012-2013 Linaro Ltd.
>> >> + *
>> >> + * Author: Haojian Zhuang <haojian.zhuang@linaro.org>
>> >> + *
>> >> + * 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.
>> >> +*/
>> >> +
>> >> +#if defined(CONFIG_DEBUG_HI3620_UART)
>> >> +#define HS_UART_PHYS_BASE    0xfcb00000
>> >> +#define HS_UART_VIRT_BASE    0xfeb00000
>> >> +#elif defined(CONFIG_DEBUG_HI3716_UART)
>> >> +#define HS_UART_PHYS_BASE    0xf8b00000
>> >> +#define HS_UART_VIRT_BASE    0xfeb00000
>> >> +#endif
>> >
>> > HS_UART_VIRT_BASE is the same, so I moved it outside the ifdef.
>> >
>> >
>> > -Olof
>>
>> Thanks a lot.
>
> Please send me a patch against the debug cleanup stuff which you can
> find in my tree (commit daf6d46c2467253af457b326e3299ea431dc2a94)
> so that I don't have to go back over this stuff after the next merge
> window to fix all the stuff people haven't noticed being queued for
> the upcoming merge window.
>
> Thanks.

Sure. I'll send the new patch based on your tree.

Regards
Haojian
Olof Johansson Aug. 14, 2013, 4:25 p.m. UTC | #7
On Wed, Aug 14, 2013 at 04:44:44PM +0100, Russell King - ARM Linux wrote:
> On Tue, Aug 13, 2013 at 11:39:16PM -0700, Olof Johansson wrote:
> > On Fri, Jul 26, 2013 at 12:32:13PM +0800, Haojian Zhuang wrote:
> > > Support UART0 debug ll on hisilicon Hi3620 SoC.
> > > 
> > > Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
> > 
> > 
> > Applied, thanks.
> 
> Applied without reference to my debug cleanup series which has been
> sitting in linux-next for ages?
> 
> Whatever happened to encouraging people to do things in a manner
> compatible with the cleanups we're trying to do?

I quite frankly forgot that this was pending for 3.12 in your tree.

Thanks for catching this, I'll revert the patch in arm-soc and let it go
in through yours on top of your cleanups.


-Olof
Russell King - ARM Linux Aug. 14, 2013, 10:54 p.m. UTC | #8
On Wed, Aug 14, 2013 at 09:25:02AM -0700, Olof Johansson wrote:
> On Wed, Aug 14, 2013 at 04:44:44PM +0100, Russell King - ARM Linux wrote:
> > On Tue, Aug 13, 2013 at 11:39:16PM -0700, Olof Johansson wrote:
> > > On Fri, Jul 26, 2013 at 12:32:13PM +0800, Haojian Zhuang wrote:
> > > > Support UART0 debug ll on hisilicon Hi3620 SoC.
> > > > 
> > > > Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
> > > 
> > > 
> > > Applied, thanks.
> > 
> > Applied without reference to my debug cleanup series which has been
> > sitting in linux-next for ages?
> > 
> > Whatever happened to encouraging people to do things in a manner
> > compatible with the cleanups we're trying to do?
> 
> I quite frankly forgot that this was pending for 3.12 in your tree.
> 
> Thanks for catching this, I'll revert the patch in arm-soc and let it go
> in through yours on top of your cleanups.

Has this been pushed out yet?  I'm getting this new conflict:

++<<<<<<< HEAD
++=======
+       default "debug/keystone.S" if DEBUG_KEYSTONE_UART0 || \
+                                     DEBUG_KEYSTONE_UART1
+       default "debug/msm.S" if DEBUG_MSM_UART1 || \
+                                DEBUG_MSM_UART2 || \
+                                DEBUG_MSM_UART3 || \
+                                DEBUG_MSM8660_UART || \
+                                DEBUG_MSM8960_UART
+       default "debug/mvebu.S" if DEBUG_MVEBU_UART || \
+                                  DEBUG_MVEBU_UART_ALTERNATE
+       default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART
+       default "debug/nomadik.S" if DEBUG_NOMADIK_UART
+       default "debug/nspire.S" if     DEBUG_NSPIRE_CX_UART || \
+                                       DEBUG_NSPIRE_CLASSIC_UART
++>>>>>>> arm-soc/for-next

This seems to be due to the addition of MSM here.  If stuff like this
is going to go through arm-soc, I'm going to make no guarantees of
getting this stuff anywhere close to being correct for the next merge
window, because its too complicated to deal with properly in git
merges.

Also:

CONFLICT (delete/modify): arch/arm/include/debug/highbank.S deleted in HEAD and modified in arm-soc/for-next. Version arm-soc/for-next of arch/arm/include/debug/highbank.S left in tree.

which seems to be a change in the virtual address of the port.  This
one is particularly nasty because it needs to be moved to a completely
different file and therefore is not git rerere'able.  Does it have any
dependencies?
Olof Johansson Aug. 14, 2013, 11:03 p.m. UTC | #9
On Wed, Aug 14, 2013 at 3:54 PM, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
> On Wed, Aug 14, 2013 at 09:25:02AM -0700, Olof Johansson wrote:
>> On Wed, Aug 14, 2013 at 04:44:44PM +0100, Russell King - ARM Linux wrote:
>> > On Tue, Aug 13, 2013 at 11:39:16PM -0700, Olof Johansson wrote:
>> > > On Fri, Jul 26, 2013 at 12:32:13PM +0800, Haojian Zhuang wrote:
>> > > > Support UART0 debug ll on hisilicon Hi3620 SoC.
>> > > >
>> > > > Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
>> > >
>> > >
>> > > Applied, thanks.
>> >
>> > Applied without reference to my debug cleanup series which has been
>> > sitting in linux-next for ages?
>> >
>> > Whatever happened to encouraging people to do things in a manner
>> > compatible with the cleanups we're trying to do?
>>
>> I quite frankly forgot that this was pending for 3.12 in your tree.
>>
>> Thanks for catching this, I'll revert the patch in arm-soc and let it go
>> in through yours on top of your cleanups.
>
> Has this been pushed out yet?  I'm getting this new conflict:
>
> ++<<<<<<< HEAD
> ++=======
> +       default "debug/keystone.S" if DEBUG_KEYSTONE_UART0 || \
> +                                     DEBUG_KEYSTONE_UART1
> +       default "debug/msm.S" if DEBUG_MSM_UART1 || \
> +                                DEBUG_MSM_UART2 || \
> +                                DEBUG_MSM_UART3 || \
> +                                DEBUG_MSM8660_UART || \
> +                                DEBUG_MSM8960_UART
> +       default "debug/mvebu.S" if DEBUG_MVEBU_UART || \
> +                                  DEBUG_MVEBU_UART_ALTERNATE
> +       default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART
> +       default "debug/nomadik.S" if DEBUG_NOMADIK_UART
> +       default "debug/nspire.S" if     DEBUG_NSPIRE_CX_UART || \
> +                                       DEBUG_NSPIRE_CLASSIC_UART
> ++>>>>>>> arm-soc/for-next
>
> This seems to be due to the addition of MSM here.  If stuff like this
> is going to go through arm-soc, I'm going to make no guarantees of
> getting this stuff anywhere close to being correct for the next merge
> window, because its too complicated to deal with properly in git
> merges.

Grmbl. Yeah, that was because of the move of debug headers as msm is
moving closer to multiplatform. It was picked up yesterday and I
didn't think to go back and look for other debug stuff after you
pointed out the hisilicon patch on this thread.

We can either drop/refuse any change that touches debug serial stuff
this release cycle and have people merge it through you, or we can
hold off until your branch is stable enough that we can have that as a
base and pick up new things on top. Do you have a preference of the
two?

> Also:
>
> CONFLICT (delete/modify): arch/arm/include/debug/highbank.S deleted in HEAD and modified in arm-soc/for-next. Version arm-soc/for-next of arch/arm/include/debug/highbank.S left in tree.
>
> which seems to be a change in the virtual address of the port.  This
> one is particularly nasty because it needs to be moved to a completely
> different file and therefore is not git rerere'able.  Does it have any
> dependencies?

I don't think so, we can likely move that patch over to your tree
instead and drop it from arm-soc.


-Olof
Kevin Hilman Aug. 15, 2013, 3:44 p.m. UTC | #10
Olof Johansson <olof@lixom.net> writes:

> On Wed, Aug 14, 2013 at 3:54 PM, Russell King - ARM Linux
> <linux@arm.linux.org.uk> wrote:
[...]

>> CONFLICT (delete/modify): arch/arm/include/debug/highbank.S deleted
>> in HEAD and modified in arm-soc/for-next. Version arm-soc/for-next
>> of arch/arm/include/debug/highbank.S left in tree.
>>
>> which seems to be a change in the virtual address of the port.  This
>> one is particularly nasty because it needs to be moved to a completely
>> different file and therefore is not git rerere'able.  Does it have any
>> dependencies?
>
> I don't think so, we can likely move that patch over to your tree
> instead and drop it from arm-soc.

The highbank change is now dropped from arm-soc and needs to be be
rebased/reworked on your tree.

Kevin
diff mbox

Patch

diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index e401a76..289a248 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -272,6 +272,20 @@  choice
 		  Say Y here if you want the debug print routines to direct
 		  their output to UART1 serial port on KEYSTONE2 devices.
 
+	config DEBUG_HI3620_UART
+		bool "Hisilicon HI3620 Debug UART"
+		depends on ARCH_HI3xxx
+		help
+		  Say Y here if you want kernel low-level debugging support
+		  on HI3620 UART.
+
+	config DEBUG_HI3716_UART
+		bool "Hisilicon Hi3716 Debug UART"
+		depends on ARCH_HI3xxx
+		help
+		  Say Y here if you want kernel low-level debugging support
+		  on HI3716 UART.
+
 	config DEBUG_MMP_UART2
 		bool "Kernel low-level debugging message via MMP UART2"
 		depends on ARCH_MMP
@@ -765,6 +779,7 @@  config DEBUG_LL_INCLUDE
 	default "debug/cns3xxx.S" if DEBUG_CNS3XXX
 	default "debug/exynos.S" if DEBUG_EXYNOS_UART
 	default "debug/highbank.S" if DEBUG_HIGHBANK_UART
+	default "debug/hisilicon.S" if DEBUG_HI3620_UART || DEBUG_HI3716_UART
 	default "debug/icedcc.S" if DEBUG_ICEDCC
 	default "debug/imx.S" if DEBUG_IMX1_UART || \
 				 DEBUG_IMX25_UART || \
diff --git a/arch/arm/include/debug/hisilicon.S b/arch/arm/include/debug/hisilicon.S
new file mode 100644
index 0000000..47ad019
--- /dev/null
+++ b/arch/arm/include/debug/hisilicon.S
@@ -0,0 +1,30 @@ 
+/*
+ * Early serial output macro for Hisilicon SoC
+ *
+ * Copyright (C) 2012-2013 Hisilicon Technologies Co., Ltd.
+ * Copyright (C) 2012-2013 Linaro Ltd.
+ *
+ * Author: Haojian Zhuang <haojian.zhuang@linaro.org>
+ *
+ * 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.
+*/
+
+#if defined(CONFIG_DEBUG_HI3620_UART)
+#define HS_UART_PHYS_BASE	0xfcb00000
+#define HS_UART_VIRT_BASE	0xfeb00000
+#elif defined(CONFIG_DEBUG_HI3716_UART)
+#define HS_UART_PHYS_BASE	0xf8b00000
+#define HS_UART_VIRT_BASE	0xfeb00000
+#endif
+
+#if defined(CONFIG_DEBUG_HI3620_UART) || defined(CONFIG_DEBUG_HI3716_UART)
+		.macro	addruart,rp,rv,tmp
+		ldr	\rp, =HS_UART_PHYS_BASE
+		ldr	\rv, =HS_UART_VIRT_BASE
+		.endm
+
+#include <asm/hardware/debug-pl01x.S>
+
+#endif