diff mbox

[U-Boot,1/2] rockchip: add CONFIG_SPL_ROCKCHIP_SERIAL

Message ID 1448002682-26945-1-git-send-email-hl@rock-chips.com
State Changes Requested
Delegated to: Simon Glass
Headers show

Commit Message

Lin Huang Nov. 20, 2015, 6:58 a.m. UTC
we can use this config to disable rockchip serial driver in SPL stage,
since some rockchip soc sram size is small(rk3036 etc), so we don't
want rockchip serial driver build in SPL, but we still want use common
debug driver in SPL.

Signed-off-by: Lin Huang <hl@rock-chips.com>
---
 arch/arm/mach-rockchip/Kconfig  | 3 +++
 drivers/serial/Makefile         | 2 +-
 include/configs/rk3288_common.h | 1 +
 3 files changed, 5 insertions(+), 1 deletion(-)

Comments

Simon Glass Nov. 27, 2015, 3:35 a.m. UTC | #1
Hi Lin,

On 19 November 2015 at 22:58, Lin Huang <hl@rock-chips.com> wrote:
> we can use this config to disable rockchip serial driver in SPL stage,
> since some rockchip soc sram size is small(rk3036 etc), so we don't
> want rockchip serial driver build in SPL, but we still want use common
> debug driver in SPL.
>
> Signed-off-by: Lin Huang <hl@rock-chips.com>
> ---
>  arch/arm/mach-rockchip/Kconfig  | 3 +++
>  drivers/serial/Makefile         | 2 +-
>  include/configs/rk3288_common.h | 1 +
>  3 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
> index ccff81a..595263c 100644
> --- a/arch/arm/mach-rockchip/Kconfig
> +++ b/arch/arm/mach-rockchip/Kconfig
> @@ -59,6 +59,9 @@ config DM_GPIO
>  config ROCKCHIP_SERIAL
>         default y
>
> +config SPL_ROCKCHIP_SERIAL
> +       default n
> +

It will already default to 'n', so this can be omitted.

Also you should add this new CONFIG to drivers/serial/Kconfig, below
the existing (non-SPL) one.

>  source "arch/arm/mach-rockchip/rk3288/Kconfig"
>  source "arch/arm/mach-rockchip/rk3036/Kconfig"
>  endif
> diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
> index 1818c7c..73e30c6 100644
> --- a/drivers/serial/Makefile
> +++ b/drivers/serial/Makefile
> @@ -41,7 +41,7 @@ obj-$(CONFIG_ZYNQ_SERIAL) += serial_zynq.o
>  obj-$(CONFIG_BFIN_SERIAL) += serial_bfin.o
>  obj-$(CONFIG_FSL_LPUART) += serial_lpuart.o
>  obj-$(CONFIG_MXS_AUART) += mxs_auart.o
> -obj-$(CONFIG_ROCKCHIP_SERIAL) += serial_rockchip.o
> +obj-$(CONFIG_$(SPL_)ROCKCHIP_SERIAL) += serial_rockchip.o
>  obj-$(CONFIG_ARC_SERIAL) += serial_arc.o
>  obj-$(CONFIG_TEGRA_SERIAL) += serial_tegra.o
>  obj-$(CONFIG_UNIPHIER_SERIAL) += serial_uniphier.o
> diff --git a/include/configs/rk3288_common.h b/include/configs/rk3288_common.h
> index 74c7ee1..7f3d1ee 100644
> --- a/include/configs/rk3288_common.h
> +++ b/include/configs/rk3288_common.h
> @@ -30,6 +30,7 @@
>  #define CONFIG_SPL_LIBCOMMON_SUPPORT
>  #define CONFIG_SPL_LIBGENERIC_SUPPORT
>  #define CONFIG_SPL_SERIAL_SUPPORT
> +#define CONFIG_SPL_ROCKCHIP_SERIAL

You should add this to the rk3288 defconfig files, instead of here.
Kconfig items should not be added to config header files - in fact we
plan to eventually remove the config header files.

>  #define CONFIG_SYS_NS16550
>  #define CONFIG_SYS_NS16550_MEM32
>  #define CONFIG_SPL_BOARD_INIT
> --
> 1.9.1
>

Regards,
Simon
Simon Glass Nov. 27, 2015, 3:37 a.m. UTC | #2
Hi Lin,

On 26 November 2015 at 19:35, Simon Glass <sjg@chromium.org> wrote:
> Hi Lin,
>
> On 19 November 2015 at 22:58, Lin Huang <hl@rock-chips.com> wrote:
>> we can use this config to disable rockchip serial driver in SPL stage,
>> since some rockchip soc sram size is small(rk3036 etc), so we don't
>> want rockchip serial driver build in SPL, but we still want use common
>> debug driver in SPL.
>>
>> Signed-off-by: Lin Huang <hl@rock-chips.com>
>> ---
>>  arch/arm/mach-rockchip/Kconfig  | 3 +++
>>  drivers/serial/Makefile         | 2 +-
>>  include/configs/rk3288_common.h | 1 +
>>  3 files changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
>> index ccff81a..595263c 100644
>> --- a/arch/arm/mach-rockchip/Kconfig
>> +++ b/arch/arm/mach-rockchip/Kconfig
>> @@ -59,6 +59,9 @@ config DM_GPIO
>>  config ROCKCHIP_SERIAL
>>         default y
>>
>> +config SPL_ROCKCHIP_SERIAL
>> +       default n
>> +
>
> It will already default to 'n', so this can be omitted.
>
> Also you should add this new CONFIG to drivers/serial/Kconfig, below
> the existing (non-SPL) one.
>
>>  source "arch/arm/mach-rockchip/rk3288/Kconfig"
>>  source "arch/arm/mach-rockchip/rk3036/Kconfig"
>>  endif
>> diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
>> index 1818c7c..73e30c6 100644
>> --- a/drivers/serial/Makefile
>> +++ b/drivers/serial/Makefile
>> @@ -41,7 +41,7 @@ obj-$(CONFIG_ZYNQ_SERIAL) += serial_zynq.o
>>  obj-$(CONFIG_BFIN_SERIAL) += serial_bfin.o
>>  obj-$(CONFIG_FSL_LPUART) += serial_lpuart.o
>>  obj-$(CONFIG_MXS_AUART) += mxs_auart.o
>> -obj-$(CONFIG_ROCKCHIP_SERIAL) += serial_rockchip.o
>> +obj-$(CONFIG_$(SPL_)ROCKCHIP_SERIAL) += serial_rockchip.o
>>  obj-$(CONFIG_ARC_SERIAL) += serial_arc.o
>>  obj-$(CONFIG_TEGRA_SERIAL) += serial_tegra.o
>>  obj-$(CONFIG_UNIPHIER_SERIAL) += serial_uniphier.o
>> diff --git a/include/configs/rk3288_common.h b/include/configs/rk3288_common.h
>> index 74c7ee1..7f3d1ee 100644
>> --- a/include/configs/rk3288_common.h
>> +++ b/include/configs/rk3288_common.h
>> @@ -30,6 +30,7 @@
>>  #define CONFIG_SPL_LIBCOMMON_SUPPORT
>>  #define CONFIG_SPL_LIBGENERIC_SUPPORT
>>  #define CONFIG_SPL_SERIAL_SUPPORT
>> +#define CONFIG_SPL_ROCKCHIP_SERIAL
>
> You should add this to the rk3288 defconfig files, instead of here.
> Kconfig items should not be added to config header files - in fact we
> plan to eventually remove the config header files.
>
>>  #define CONFIG_SYS_NS16550
>>  #define CONFIG_SYS_NS16550_MEM32
>>  #define CONFIG_SPL_BOARD_INIT
>> --
>> 1.9.1
>>

Actually, serial_rockchip.c has been removed in mainline. So you may
not need this patch, or maybe it can be reduced in size. Please check
the current u-boot-rockchip/master.

Regards,
Simon
Lin Huang Dec. 1, 2015, 6:51 a.m. UTC | #3
Hi Simon,

On 27/11/15 11:37, Simon Glass wrote:
> Hi Lin,
>
> On 26 November 2015 at 19:35, Simon Glass <sjg@chromium.org> wrote:
>> Hi Lin,
>>
>> On 19 November 2015 at 22:58, Lin Huang <hl@rock-chips.com> wrote:
>>> we can use this config to disable rockchip serial driver in SPL stage,
>>> since some rockchip soc sram size is small(rk3036 etc), so we don't
>>> want rockchip serial driver build in SPL, but we still want use common
>>> debug driver in SPL.
>>>
>>> Signed-off-by: Lin Huang <hl@rock-chips.com>
>>> ---
>>>   arch/arm/mach-rockchip/Kconfig  | 3 +++
>>>   drivers/serial/Makefile         | 2 +-
>>>   include/configs/rk3288_common.h | 1 +
>>>   3 files changed, 5 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
>>> index ccff81a..595263c 100644
>>> --- a/arch/arm/mach-rockchip/Kconfig
>>> +++ b/arch/arm/mach-rockchip/Kconfig
>>> @@ -59,6 +59,9 @@ config DM_GPIO
>>>   config ROCKCHIP_SERIAL
>>>          default y
>>>
>>> +config SPL_ROCKCHIP_SERIAL
>>> +       default n
>>> +
>> It will already default to 'n', so this can be omitted.
>>
>> Also you should add this new CONFIG to drivers/serial/Kconfig, below
>> the existing (non-SPL) one.
>>
>>>   source "arch/arm/mach-rockchip/rk3288/Kconfig"
>>>   source "arch/arm/mach-rockchip/rk3036/Kconfig"
>>>   endif
>>> diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
>>> index 1818c7c..73e30c6 100644
>>> --- a/drivers/serial/Makefile
>>> +++ b/drivers/serial/Makefile
>>> @@ -41,7 +41,7 @@ obj-$(CONFIG_ZYNQ_SERIAL) += serial_zynq.o
>>>   obj-$(CONFIG_BFIN_SERIAL) += serial_bfin.o
>>>   obj-$(CONFIG_FSL_LPUART) += serial_lpuart.o
>>>   obj-$(CONFIG_MXS_AUART) += mxs_auart.o
>>> -obj-$(CONFIG_ROCKCHIP_SERIAL) += serial_rockchip.o
>>> +obj-$(CONFIG_$(SPL_)ROCKCHIP_SERIAL) += serial_rockchip.o
>>>   obj-$(CONFIG_ARC_SERIAL) += serial_arc.o
>>>   obj-$(CONFIG_TEGRA_SERIAL) += serial_tegra.o
>>>   obj-$(CONFIG_UNIPHIER_SERIAL) += serial_uniphier.o
>>> diff --git a/include/configs/rk3288_common.h b/include/configs/rk3288_common.h
>>> index 74c7ee1..7f3d1ee 100644
>>> --- a/include/configs/rk3288_common.h
>>> +++ b/include/configs/rk3288_common.h
>>> @@ -30,6 +30,7 @@
>>>   #define CONFIG_SPL_LIBCOMMON_SUPPORT
>>>   #define CONFIG_SPL_LIBGENERIC_SUPPORT
>>>   #define CONFIG_SPL_SERIAL_SUPPORT
>>> +#define CONFIG_SPL_ROCKCHIP_SERIAL
>> You should add this to the rk3288 defconfig files, instead of here.
>> Kconfig items should not be added to config header files - in fact we
>> plan to eventually remove the config header files.
>>
>>>   #define CONFIG_SYS_NS16550
>>>   #define CONFIG_SYS_NS16550_MEM32
>>>   #define CONFIG_SPL_BOARD_INIT
>>> --
>>> 1.9.1
>>>
> Actually, serial_rockchip.c has been removed in mainline. So you may
> not need this patch, or maybe it can be reduced in size. Please check
> the current u-boot-rockchip/master.
     i cherry-pick the

     [PATCH 2/2] rockchip: rk3036: enable CONFIG_DEBUG_UART, and use 
ns16550 uart driver

     in u-boot-rockchip/master branch, build it,  but fail, it is will 
call hang() in arch/arm/lib/div0,
     so i need to define  CONFIG_SPL_LIBGENERIC_SUPPORT, but if i do it, 
the spl size too big.
> Regards,
> Simon
>
>
>
Simon Glass Dec. 1, 2015, 3:12 p.m. UTC | #4
Hi Lin,

On 30 November 2015 at 23:51, hl <hl@rock-chips.com> wrote:
> Hi Simon,
>
>
> On 27/11/15 11:37, Simon Glass wrote:
>>
>> Hi Lin,
>>
>> On 26 November 2015 at 19:35, Simon Glass <sjg@chromium.org> wrote:
>>>
>>> Hi Lin,
>>>
>>> On 19 November 2015 at 22:58, Lin Huang <hl@rock-chips.com> wrote:
>>>>
>>>> we can use this config to disable rockchip serial driver in SPL stage,
>>>> since some rockchip soc sram size is small(rk3036 etc), so we don't
>>>> want rockchip serial driver build in SPL, but we still want use common
>>>> debug driver in SPL.
>>>>
>>>> Signed-off-by: Lin Huang <hl@rock-chips.com>
>>>> ---
>>>>   arch/arm/mach-rockchip/Kconfig  | 3 +++
>>>>   drivers/serial/Makefile         | 2 +-
>>>>   include/configs/rk3288_common.h | 1 +
>>>>   3 files changed, 5 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/arch/arm/mach-rockchip/Kconfig
>>>> b/arch/arm/mach-rockchip/Kconfig
>>>> index ccff81a..595263c 100644
>>>> --- a/arch/arm/mach-rockchip/Kconfig
>>>> +++ b/arch/arm/mach-rockchip/Kconfig
>>>> @@ -59,6 +59,9 @@ config DM_GPIO
>>>>   config ROCKCHIP_SERIAL
>>>>          default y
>>>>
>>>> +config SPL_ROCKCHIP_SERIAL
>>>> +       default n
>>>> +
>>>
>>> It will already default to 'n', so this can be omitted.
>>>
>>> Also you should add this new CONFIG to drivers/serial/Kconfig, below
>>> the existing (non-SPL) one.
>>>
>>>>   source "arch/arm/mach-rockchip/rk3288/Kconfig"
>>>>   source "arch/arm/mach-rockchip/rk3036/Kconfig"
>>>>   endif
>>>> diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
>>>> index 1818c7c..73e30c6 100644
>>>> --- a/drivers/serial/Makefile
>>>> +++ b/drivers/serial/Makefile
>>>> @@ -41,7 +41,7 @@ obj-$(CONFIG_ZYNQ_SERIAL) += serial_zynq.o
>>>>   obj-$(CONFIG_BFIN_SERIAL) += serial_bfin.o
>>>>   obj-$(CONFIG_FSL_LPUART) += serial_lpuart.o
>>>>   obj-$(CONFIG_MXS_AUART) += mxs_auart.o
>>>> -obj-$(CONFIG_ROCKCHIP_SERIAL) += serial_rockchip.o
>>>> +obj-$(CONFIG_$(SPL_)ROCKCHIP_SERIAL) += serial_rockchip.o
>>>>   obj-$(CONFIG_ARC_SERIAL) += serial_arc.o
>>>>   obj-$(CONFIG_TEGRA_SERIAL) += serial_tegra.o
>>>>   obj-$(CONFIG_UNIPHIER_SERIAL) += serial_uniphier.o
>>>> diff --git a/include/configs/rk3288_common.h
>>>> b/include/configs/rk3288_common.h
>>>> index 74c7ee1..7f3d1ee 100644
>>>> --- a/include/configs/rk3288_common.h
>>>> +++ b/include/configs/rk3288_common.h
>>>> @@ -30,6 +30,7 @@
>>>>   #define CONFIG_SPL_LIBCOMMON_SUPPORT
>>>>   #define CONFIG_SPL_LIBGENERIC_SUPPORT
>>>>   #define CONFIG_SPL_SERIAL_SUPPORT
>>>> +#define CONFIG_SPL_ROCKCHIP_SERIAL
>>>
>>> You should add this to the rk3288 defconfig files, instead of here.
>>> Kconfig items should not be added to config header files - in fact we
>>> plan to eventually remove the config header files.
>>>
>>>>   #define CONFIG_SYS_NS16550
>>>>   #define CONFIG_SYS_NS16550_MEM32
>>>>   #define CONFIG_SPL_BOARD_INIT
>>>> --
>>>> 1.9.1
>>>>
>> Actually, serial_rockchip.c has been removed in mainline. So you may
>> not need this patch, or maybe it can be reduced in size. Please check
>> the current u-boot-rockchip/master.
>
>     i cherry-pick the
>
>     [PATCH 2/2] rockchip: rk3036: enable CONFIG_DEBUG_UART, and use ns16550
> uart driver
>
>     in u-boot-rockchip/master branch, build it,  but fail, it is will call
> hang() in arch/arm/lib/div0,

That sounds like a symptom of a divide by 0 error?

>     so i need to define  CONFIG_SPL_LIBGENERIC_SUPPORT, but if i do it, the
> spl size too big.

I am hoping that we can enable the debug UART without bringing in full
serial support. Do you think it is possible? We just want printch()
etc., not printf().

Regards,
Simon
diff mbox

Patch

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index ccff81a..595263c 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -59,6 +59,9 @@  config DM_GPIO
 config ROCKCHIP_SERIAL
 	default y
 
+config SPL_ROCKCHIP_SERIAL
+	default n
+
 source "arch/arm/mach-rockchip/rk3288/Kconfig"
 source "arch/arm/mach-rockchip/rk3036/Kconfig"
 endif
diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
index 1818c7c..73e30c6 100644
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
@@ -41,7 +41,7 @@  obj-$(CONFIG_ZYNQ_SERIAL) += serial_zynq.o
 obj-$(CONFIG_BFIN_SERIAL) += serial_bfin.o
 obj-$(CONFIG_FSL_LPUART) += serial_lpuart.o
 obj-$(CONFIG_MXS_AUART) += mxs_auart.o
-obj-$(CONFIG_ROCKCHIP_SERIAL) += serial_rockchip.o
+obj-$(CONFIG_$(SPL_)ROCKCHIP_SERIAL) += serial_rockchip.o
 obj-$(CONFIG_ARC_SERIAL) += serial_arc.o
 obj-$(CONFIG_TEGRA_SERIAL) += serial_tegra.o
 obj-$(CONFIG_UNIPHIER_SERIAL) += serial_uniphier.o
diff --git a/include/configs/rk3288_common.h b/include/configs/rk3288_common.h
index 74c7ee1..7f3d1ee 100644
--- a/include/configs/rk3288_common.h
+++ b/include/configs/rk3288_common.h
@@ -30,6 +30,7 @@ 
 #define CONFIG_SPL_LIBCOMMON_SUPPORT
 #define CONFIG_SPL_LIBGENERIC_SUPPORT
 #define CONFIG_SPL_SERIAL_SUPPORT
+#define CONFIG_SPL_ROCKCHIP_SERIAL
 #define CONFIG_SYS_NS16550
 #define CONFIG_SYS_NS16550_MEM32
 #define CONFIG_SPL_BOARD_INIT