diff mbox

[U-Boot,RFC,5/5] imx: mx6ul: Add initial board support for Engicam GEAM6UL

Message ID 1472890977-7377-5-git-send-email-jagan@amarulasolutions.com
State Changes Requested
Delegated to: Stefano Babic
Headers show

Commit Message

Jagan Teki Sept. 3, 2016, 8:22 a.m. UTC
i.MX6UL GEA M6UL modules are system on module solutions manufactured
by Engicam with following characteristics:
Processor       NXP i.MX 6UltraLite MCIMX6G2, 528 MHz
RAM             128MB, 16-bit DDR3
NAND SLC        256MB
Power supply    Single 5V
MAX LCD RES     up to WXGA, 1366x768

Cc: Stefano Babic <sbabic@denx.de>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 arch/arm/cpu/armv7/mx6/Kconfig    |  6 ++++++
 board/freescale/mx6ul/Kconfig     |  2 +-
 board/freescale/mx6ul/MAINTAINERS |  5 +++++
 board/freescale/mx6ul/board.c     |  4 +++-
 configs/mx6ul_geam_kit_defconfig  | 11 +++++++++++
 include/configs/mx6ul.h           |  1 +
 6 files changed, 27 insertions(+), 2 deletions(-)
 create mode 100644 configs/mx6ul_geam_kit_defconfig

Comments

Peng Fan Sept. 3, 2016, 10:08 a.m. UTC | #1
Hi Jagan,

On Sat, Sep 03, 2016 at 01:52:57PM +0530, Jagan Teki wrote:
>i.MX6UL GEA M6UL modules are system on module solutions manufactured
>by Engicam with following characteristics:
>Processor       NXP i.MX 6UltraLite MCIMX6G2, 528 MHz
>RAM             128MB, 16-bit DDR3
>NAND SLC        256MB
>Power supply    Single 5V
>MAX LCD RES     up to WXGA, 1366x768
>
>Cc: Stefano Babic <sbabic@denx.de>
>Cc: Peng Fan <peng.fan@nxp.com>
>Cc: Michael Trimarchi <michael@amarulasolutions.com>
>Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
>---
> arch/arm/cpu/armv7/mx6/Kconfig    |  6 ++++++
> board/freescale/mx6ul/Kconfig     |  2 +-
> board/freescale/mx6ul/MAINTAINERS |  5 +++++
> board/freescale/mx6ul/board.c     |  4 +++-
> configs/mx6ul_geam_kit_defconfig  | 11 +++++++++++
> include/configs/mx6ul.h           |  1 +
> 6 files changed, 27 insertions(+), 2 deletions(-)
> create mode 100644 configs/mx6ul_geam_kit_defconfig
>
>diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig
>index 0c1bc78..d861ded 100644
>--- a/arch/arm/cpu/armv7/mx6/Kconfig
>+++ b/arch/arm/cpu/armv7/mx6/Kconfig
>@@ -129,6 +129,12 @@ config TARGET_MX6UL_14X14_EVK
> 	select DM_THERMAL
> 	select SUPPORT_SPL
> 
>+config TARGET_MX6UL_GEAM_KIT
>+	bool "mx6ul_geam_kit"
>+	select MX6UL
>+	select DM
>+	select DM_THERMAL
>+
> config TARGET_NITROGEN6X
> 	bool "nitrogen6x"
> 
>diff --git a/board/freescale/mx6ul/Kconfig b/board/freescale/mx6ul/Kconfig
>index f97b905..d902cd0 100644
>--- a/board/freescale/mx6ul/Kconfig
>+++ b/board/freescale/mx6ul/Kconfig
>@@ -1,4 +1,4 @@
>-if TARGET_MX6UL_14X14_EVK || TARGET_MX6UL_9X9_EVK
>+if TARGET_MX6UL_14X14_EVK || TARGET_MX6UL_9X9_EVK || TARGET_MX6UL_GEAM_KIT
> 
> config SYS_BOARD
> 	default "mx6ul"
>diff --git a/board/freescale/mx6ul/MAINTAINERS b/board/freescale/mx6ul/MAINTAINERS
>index 20caeee..3265858 100644
>--- a/board/freescale/mx6ul/MAINTAINERS
>+++ b/board/freescale/mx6ul/MAINTAINERS
>@@ -5,3 +5,8 @@ F:	board/freescale/mx6ul/
> F:	include/configs/mx6ul.h
> F:	configs/mx6ul_14x14_evk_defconfig
> F:	configs/mx6ul_9x9_evk_defconfig
>+
>+Engicam GEAM6UL BOARD
>+M:	Jagan Teki <jagan@amarulasolutions.com>
>+S:	Maintained
>+F:	configs/mx6ul_geam_kit_defconfig
>diff --git a/board/freescale/mx6ul/board.c b/board/freescale/mx6ul/board.c
>index 66d6795..f4e35bd 100644
>--- a/board/freescale/mx6ul/board.c
>+++ b/board/freescale/mx6ul/board.c
>@@ -693,8 +693,10 @@ int checkboard(void)
> {
> 	if (is_mx6ul_9x9_evk())
> 		puts("Board: MX6UL 9x9 EVK\n");
>-	else
>+	else if (is_mx6ul_14x14_evk())
> 		puts("Board: MX6UL 14x14 EVK\n");
>+	else
>+		puts("Board: MX6UL GEA KIT\n");
> 
> 	return 0;
> }
>diff --git a/configs/mx6ul_geam_kit_defconfig b/configs/mx6ul_geam_kit_defconfig
>new file mode 100644
>index 0000000..b26f17b
>--- /dev/null
>+++ b/configs/mx6ul_geam_kit_defconfig
>@@ -0,0 +1,11 @@
>+CONFIG_ARM=y
>+CONFIG_ARCH_MX6=y
>+CONFIG_TARGET_MX6UL_GEAM_KIT=y
>+CONFIG_HUSH_PARSER=y
>+CONFIG_SYS_PROMPT="geam6ul> "
>+CONFIG_AUTO_COMPLETE=y
>+CONFIG_SYS_MAXARGS=32
>+CONFIG_BOOTDELAY=3
>+CONFIG_BOARD_EARLY_INIT_F=y
>+CONFIG_BOARD_LATE_INIT=y
>+# CONFIG_CMD_IMLS is not set

I think you missed ddr script settings, SPL or DCD?

Regards,
Peng.
Jagan Teki Sept. 3, 2016, 12:48 p.m. UTC | #2
Hi Peng,

On Sat, Sep 3, 2016 at 3:38 PM, Peng Fan <van.freenix@gmail.com> wrote:
> Hi Jagan,
>
> On Sat, Sep 03, 2016 at 01:52:57PM +0530, Jagan Teki wrote:
>>i.MX6UL GEA M6UL modules are system on module solutions manufactured
>>by Engicam with following characteristics:
>>Processor       NXP i.MX 6UltraLite MCIMX6G2, 528 MHz
>>RAM             128MB, 16-bit DDR3
>>NAND SLC        256MB
>>Power supply    Single 5V
>>MAX LCD RES     up to WXGA, 1366x768
>>
>>Cc: Stefano Babic <sbabic@denx.de>
>>Cc: Peng Fan <peng.fan@nxp.com>
>>Cc: Michael Trimarchi <michael@amarulasolutions.com>
>>Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
>>---
>> arch/arm/cpu/armv7/mx6/Kconfig    |  6 ++++++
>> board/freescale/mx6ul/Kconfig     |  2 +-
>> board/freescale/mx6ul/MAINTAINERS |  5 +++++
>> board/freescale/mx6ul/board.c     |  4 +++-
>> configs/mx6ul_geam_kit_defconfig  | 11 +++++++++++
>> include/configs/mx6ul.h           |  1 +
>> 6 files changed, 27 insertions(+), 2 deletions(-)
>> create mode 100644 configs/mx6ul_geam_kit_defconfig
>>
>>diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig
>>index 0c1bc78..d861ded 100644
>>--- a/arch/arm/cpu/armv7/mx6/Kconfig
>>+++ b/arch/arm/cpu/armv7/mx6/Kconfig
>>@@ -129,6 +129,12 @@ config TARGET_MX6UL_14X14_EVK
>>       select DM_THERMAL
>>       select SUPPORT_SPL
>>
>>+config TARGET_MX6UL_GEAM_KIT
>>+      bool "mx6ul_geam_kit"
>>+      select MX6UL
>>+      select DM
>>+      select DM_THERMAL
>>+
>> config TARGET_NITROGEN6X
>>       bool "nitrogen6x"
>>
>>diff --git a/board/freescale/mx6ul/Kconfig b/board/freescale/mx6ul/Kconfig
>>index f97b905..d902cd0 100644
>>--- a/board/freescale/mx6ul/Kconfig
>>+++ b/board/freescale/mx6ul/Kconfig
>>@@ -1,4 +1,4 @@
>>-if TARGET_MX6UL_14X14_EVK || TARGET_MX6UL_9X9_EVK
>>+if TARGET_MX6UL_14X14_EVK || TARGET_MX6UL_9X9_EVK || TARGET_MX6UL_GEAM_KIT
>>
>> config SYS_BOARD
>>       default "mx6ul"
>>diff --git a/board/freescale/mx6ul/MAINTAINERS b/board/freescale/mx6ul/MAINTAINERS
>>index 20caeee..3265858 100644
>>--- a/board/freescale/mx6ul/MAINTAINERS
>>+++ b/board/freescale/mx6ul/MAINTAINERS
>>@@ -5,3 +5,8 @@ F:     board/freescale/mx6ul/
>> F:    include/configs/mx6ul.h
>> F:    configs/mx6ul_14x14_evk_defconfig
>> F:    configs/mx6ul_9x9_evk_defconfig
>>+
>>+Engicam GEAM6UL BOARD
>>+M:    Jagan Teki <jagan@amarulasolutions.com>
>>+S:    Maintained
>>+F:    configs/mx6ul_geam_kit_defconfig
>>diff --git a/board/freescale/mx6ul/board.c b/board/freescale/mx6ul/board.c
>>index 66d6795..f4e35bd 100644
>>--- a/board/freescale/mx6ul/board.c
>>+++ b/board/freescale/mx6ul/board.c
>>@@ -693,8 +693,10 @@ int checkboard(void)
>> {
>>       if (is_mx6ul_9x9_evk())
>>               puts("Board: MX6UL 9x9 EVK\n");
>>-      else
>>+      else if (is_mx6ul_14x14_evk())
>>               puts("Board: MX6UL 14x14 EVK\n");
>>+      else
>>+              puts("Board: MX6UL GEA KIT\n");
>>
>>       return 0;
>> }
>>diff --git a/configs/mx6ul_geam_kit_defconfig b/configs/mx6ul_geam_kit_defconfig
>>new file mode 100644
>>index 0000000..b26f17b
>>--- /dev/null
>>+++ b/configs/mx6ul_geam_kit_defconfig
>>@@ -0,0 +1,11 @@
>>+CONFIG_ARM=y
>>+CONFIG_ARCH_MX6=y
>>+CONFIG_TARGET_MX6UL_GEAM_KIT=y
>>+CONFIG_HUSH_PARSER=y
>>+CONFIG_SYS_PROMPT="geam6ul> "
>>+CONFIG_AUTO_COMPLETE=y
>>+CONFIG_SYS_MAXARGS=32
>>+CONFIG_BOOTDELAY=3
>>+CONFIG_BOARD_EARLY_INIT_F=y
>>+CONFIG_BOARD_LATE_INIT=y
>>+# CONFIG_CMD_IMLS is not set
>
> I think you missed ddr script settings, SPL or DCD?

True - I will update the code once I tested on board and the reason
for sending this series earlier is to make an approval of existing
file name changes. Will that be OK?

Jagan.
Fabio Estevam Sept. 4, 2016, 1:26 a.m. UTC | #3
On Sat, Sep 3, 2016 at 5:22 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
> i.MX6UL GEA M6UL modules are system on module solutions manufactured
> by Engicam with following characteristics:
> Processor       NXP i.MX 6UltraLite MCIMX6G2, 528 MHz
> RAM             128MB, 16-bit DDR3
> NAND SLC        256MB
> Power supply    Single 5V
> MAX LCD RES     up to WXGA, 1366x768
>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Peng Fan <peng.fan@nxp.com>
> Cc: Michael Trimarchi <michael@amarulasolutions.com>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>  arch/arm/cpu/armv7/mx6/Kconfig    |  6 ++++++
>  board/freescale/mx6ul/Kconfig     |  2 +-

This file does not exist.

>  board/freescale/mx6ul/MAINTAINERS |  5 +++++
>  board/freescale/mx6ul/board.c     |  4 +++-

This file does not exist.

>  configs/mx6ul_geam_kit_defconfig  | 11 +++++++++++
>  include/configs/mx6ul.h           |  1 +

This file does not exist.

You should generate a patch against u-boot-imx git tree.
Jagan Teki Sept. 4, 2016, 2:22 a.m. UTC | #4
On Sun, Sep 4, 2016 at 6:56 AM, Fabio Estevam <festevam@gmail.com> wrote:
> On Sat, Sep 3, 2016 at 5:22 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
>> i.MX6UL GEA M6UL modules are system on module solutions manufactured
>> by Engicam with following characteristics:
>> Processor       NXP i.MX 6UltraLite MCIMX6G2, 528 MHz
>> RAM             128MB, 16-bit DDR3
>> NAND SLC        256MB
>> Power supply    Single 5V
>> MAX LCD RES     up to WXGA, 1366x768
>>
>> Cc: Stefano Babic <sbabic@denx.de>
>> Cc: Peng Fan <peng.fan@nxp.com>
>> Cc: Michael Trimarchi <michael@amarulasolutions.com>
>> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
>> ---
>>  arch/arm/cpu/armv7/mx6/Kconfig    |  6 ++++++
>>  board/freescale/mx6ul/Kconfig     |  2 +-
>
> This file does not exist.
>
>>  board/freescale/mx6ul/MAINTAINERS |  5 +++++
>>  board/freescale/mx6ul/board.c     |  4 +++-
>
> This file does not exist.
>
>>  configs/mx6ul_geam_kit_defconfig  | 11 +++++++++++
>>  include/configs/mx6ul.h           |  1 +
>
> This file does not exist.

These files are the outcomes of previous patches on this series,
please find that.

>
> You should generate a patch against u-boot-imx git tree.

OK, will do that.

thanks!
Fabio Estevam Sept. 4, 2016, 2:23 a.m. UTC | #5
Hi Jagan,

On Sat, Sep 3, 2016 at 10:26 PM, Fabio Estevam <festevam@gmail.com> wrote:

>>  configs/mx6ul_geam_kit_defconfig  | 11 +++++++++++
>>  include/configs/mx6ul.h           |  1 +
>
> This file does not exist.

Ok, I see you introduced these files on previous patches of the series.

I don't think it makes sense to have a global mx6ul.h though.
Jagan Teki Sept. 4, 2016, 2:27 a.m. UTC | #6
Hi Fabio,

On Sun, Sep 4, 2016 at 7:53 AM, Fabio Estevam <festevam@gmail.com> wrote:
> Hi Jagan,
>
> On Sat, Sep 3, 2016 at 10:26 PM, Fabio Estevam <festevam@gmail.com> wrote:
>
>>>  configs/mx6ul_geam_kit_defconfig  | 11 +++++++++++
>>>  include/configs/mx6ul.h           |  1 +
>>
>> This file does not exist.
>
> Ok, I see you introduced these files on previous patches of the series.
>
> I don't think it makes sense to have a global mx6ul.h though.

Please review the respective patches and let me know your comments. I
strongly suspect the global mx6ul.h require as number board with same
soc have different defcoonfigs which is similar to the way common
imx6ul.dtsi with respective board dts files.

thanks!
Fabio Estevam Sept. 4, 2016, 1:08 p.m. UTC | #7
Hi Jagan,

On Sat, Sep 3, 2016 at 5:22 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
>
> diff --git a/board/freescale/mx6ul/Kconfig b/board/freescale/mx6ul/Kconfig
> index f97b905..d902cd0 100644
> --- a/board/freescale/mx6ul/Kconfig
> +++ b/board/freescale/mx6ul/Kconfig

At least for i.MX we follow the convention:
board/vendor/vendorboardname, so under board/freescale directory we
would expect boards manufactured by FSL/NXP only.

> @@ -1,4 +1,4 @@
> -if TARGET_MX6UL_14X14_EVK || TARGET_MX6UL_9X9_EVK
> +if TARGET_MX6UL_14X14_EVK || TARGET_MX6UL_9X9_EVK || TARGET_MX6UL_GEAM_KIT
>
>  config SYS_BOARD
>         default "mx6ul"
> diff --git a/board/freescale/mx6ul/MAINTAINERS b/board/freescale/mx6ul/MAINTAINERS
> index 20caeee..3265858 100644
> --- a/board/freescale/mx6ul/MAINTAINERS
> +++ b/board/freescale/mx6ul/MAINTAINERS
> @@ -5,3 +5,8 @@ F:      board/freescale/mx6ul/

It would be better if you were listed as the maintainer of the Engicam
mx6ul board.

How can I person that does not have the hardware nor it is familiar
with it, be the maintainer of such platform?

> --- a/board/freescale/mx6ul/board.c
> +++ b/board/freescale/mx6ul/board.c
> @@ -693,8 +693,10 @@ int checkboard(void)
>  {
>         if (is_mx6ul_9x9_evk())
>                 puts("Board: MX6UL 9x9 EVK\n");
> -       else
> +       else if (is_mx6ul_14x14_evk())
>                 puts("Board: MX6UL 14x14 EVK\n");
> +       else
> +               puts("Board: MX6UL GEA KIT\n");
>
>         return 0;

If I want to change board.c to improve/fix the code for mx6ulevk there
is risk that such change could break mx6ulgea support.

I prefer that you place the new board at board/engicam/mx6ulgea, or something.


> --- a/include/configs/mx6ul.h
> +++ b/include/configs/mx6ul.h
> @@ -14,6 +14,7 @@
>  #include <asm/imx-common/gpio.h>
>
>  #define is_mx6ul_9x9_evk()     CONFIG_IS_ENABLED(TARGET_MX6UL_9X9_EVK)
> +#define is_mx6ul_14x14_evk()   CONFIG_IS_ENABLED(TARGET_MX6UL_14x14_EVK)

This seems to be an unrelated change.
Michael Nazzareno Trimarchi Sept. 4, 2016, 1:10 p.m. UTC | #8
Hi Fabio

On Sun, Sep 4, 2016 at 3:08 PM, Fabio Estevam <festevam@gmail.com> wrote:
> Hi Jagan,
>
> On Sat, Sep 3, 2016 at 5:22 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
>>
>> diff --git a/board/freescale/mx6ul/Kconfig b/board/freescale/mx6ul/Kconfig
>> index f97b905..d902cd0 100644
>> --- a/board/freescale/mx6ul/Kconfig
>> +++ b/board/freescale/mx6ul/Kconfig
>
> At least for i.MX we follow the convention:
> board/vendor/vendorboardname, so under board/freescale directory we
> would expect boards manufactured by FSL/NXP only.
>
>> @@ -1,4 +1,4 @@
>> -if TARGET_MX6UL_14X14_EVK || TARGET_MX6UL_9X9_EVK
>> +if TARGET_MX6UL_14X14_EVK || TARGET_MX6UL_9X9_EVK || TARGET_MX6UL_GEAM_KIT
>>
>>  config SYS_BOARD
>>         default "mx6ul"
>> diff --git a/board/freescale/mx6ul/MAINTAINERS b/board/freescale/mx6ul/MAINTAINERS
>> index 20caeee..3265858 100644
>> --- a/board/freescale/mx6ul/MAINTAINERS
>> +++ b/board/freescale/mx6ul/MAINTAINERS
>> @@ -5,3 +5,8 @@ F:      board/freescale/mx6ul/
>
> It would be better if you were listed as the maintainer of the Engicam
> mx6ul board.
>
> How can I person that does not have the hardware nor it is familiar
> with it, be the maintainer of such platform?
>

Hardware is on the way ;).

Michael

>> --- a/board/freescale/mx6ul/board.c
>> +++ b/board/freescale/mx6ul/board.c
>> @@ -693,8 +693,10 @@ int checkboard(void)
>>  {
>>         if (is_mx6ul_9x9_evk())
>>                 puts("Board: MX6UL 9x9 EVK\n");
>> -       else
>> +       else if (is_mx6ul_14x14_evk())
>>                 puts("Board: MX6UL 14x14 EVK\n");
>> +       else
>> +               puts("Board: MX6UL GEA KIT\n");
>>
>>         return 0;
>
> If I want to change board.c to improve/fix the code for mx6ulevk there
> is risk that such change could break mx6ulgea support.
>
> I prefer that you place the new board at board/engicam/mx6ulgea, or something.
>
>
>> --- a/include/configs/mx6ul.h
>> +++ b/include/configs/mx6ul.h
>> @@ -14,6 +14,7 @@
>>  #include <asm/imx-common/gpio.h>
>>
>>  #define is_mx6ul_9x9_evk()     CONFIG_IS_ENABLED(TARGET_MX6UL_9X9_EVK)
>> +#define is_mx6ul_14x14_evk()   CONFIG_IS_ENABLED(TARGET_MX6UL_14x14_EVK)
>
> This seems to be an unrelated change.
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
Jagan Teki Sept. 4, 2016, 1:32 p.m. UTC | #9
Hi Fabio,

+ Tom (looking for any suggestions for not maintaining separate board
files if the board code is sharing different boards with same SOC)

On Sun, Sep 4, 2016 at 6:38 PM, Fabio Estevam <festevam@gmail.com> wrote:
> Hi Jagan,
>
> On Sat, Sep 3, 2016 at 5:22 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
>>
>> diff --git a/board/freescale/mx6ul/Kconfig b/board/freescale/mx6ul/Kconfig
>> index f97b905..d902cd0 100644
>> --- a/board/freescale/mx6ul/Kconfig
>> +++ b/board/freescale/mx6ul/Kconfig
>
> At least for i.MX we follow the convention:
> board/vendor/vendorboardname, so under board/freescale directory we
> would expect boards manufactured by FSL/NXP only.

Please see below for this.

>
>> @@ -1,4 +1,4 @@
>> -if TARGET_MX6UL_14X14_EVK || TARGET_MX6UL_9X9_EVK
>> +if TARGET_MX6UL_14X14_EVK || TARGET_MX6UL_9X9_EVK || TARGET_MX6UL_GEAM_KIT
>>
>>  config SYS_BOARD
>>         default "mx6ul"
>> diff --git a/board/freescale/mx6ul/MAINTAINERS b/board/freescale/mx6ul/MAINTAINERS
>> index 20caeee..3265858 100644
>> --- a/board/freescale/mx6ul/MAINTAINERS
>> +++ b/board/freescale/mx6ul/MAINTAINERS
>> @@ -5,3 +5,8 @@ F:      board/freescale/mx6ul/
>
> It would be better if you were listed as the maintainer of the Engicam
> mx6ul board.
>
> How can I person that does not have the hardware nor it is familiar
> with it, be the maintainer of such platform?

Please do read the thread fully before commenting, I've mentioned the
state of hardware when I relied to Peng. And also this is an RFC patch
I'm looking for comments on function like changes whether the flow of
adding code to existing software is meaningful or not and not intended
to directly applying these onto ML.

>
>> --- a/board/freescale/mx6ul/board.c
>> +++ b/board/freescale/mx6ul/board.c
>> @@ -693,8 +693,10 @@ int checkboard(void)
>>  {
>>         if (is_mx6ul_9x9_evk())
>>                 puts("Board: MX6UL 9x9 EVK\n");
>> -       else
>> +       else if (is_mx6ul_14x14_evk())
>>                 puts("Board: MX6UL 14x14 EVK\n");
>> +       else
>> +               puts("Board: MX6UL GEA KIT\n");
>>
>>         return 0;
>
> If I want to change board.c to improve/fix the code for mx6ulevk there
> is risk that such change could break mx6ulgea support.
>
> I prefer that you place the new board at board/engicam/mx6ulgea, or something.

But I prefer to maintain the same on board/freescale/imx6ul. Becuase,
If the most of the code is common to all boards with specific SOC it's
better to have common code for reusability instead of adding different
board files with duplicate code. For example please see board/sunxi or
board/xilinx/zynq where microzed, zed or zynbo not directly
manufactured from xilinx but they maintained as common.

>
>
>> --- a/include/configs/mx6ul.h
>> +++ b/include/configs/mx6ul.h
>> @@ -14,6 +14,7 @@
>>  #include <asm/imx-common/gpio.h>
>>
>>  #define is_mx6ul_9x9_evk()     CONFIG_IS_ENABLED(TARGET_MX6UL_9X9_EVK)
>> +#define is_mx6ul_14x14_evk()   CONFIG_IS_ENABLED(TARGET_MX6UL_14x14_EVK)
>
> This seems to be an unrelated change.

OK, will fix.

thanks!
Fabio Estevam Sept. 4, 2016, 2:47 p.m. UTC | #10
On Sun, Sep 4, 2016 at 10:32 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:

> Please do read the thread fully before commenting, I've mentioned the
> state of hardware when I relied to Peng. And also this is an RFC patch
> I'm looking for comments on function like changes whether the flow of
> adding code to existing software is meaningful or not and not intended
> to directly applying these onto ML.

I have already stated my opinion that you should put your board code
into board/engicam.

> But I prefer to maintain the same on board/freescale/imx6ul. Becuase,
> If the most of the code is common to all boards with specific SOC it's
> better to have common code for reusability instead of adding different
> board files with duplicate code. For example please see board/sunxi or
> board/xilinx/zynq where microzed, zed or zynbo not directly
> manufactured from xilinx but they maintained as common.

All the ifdefery inside board/sunxi/board.c is exactly what I would
like to avoid here.

mx6ul is a recent SoC and there is only mx6ul evk and pico mx6ul
boards currently supported in U-Boot.

I don't think this can scale to support all upcoming boards into a
single board/freescale/mx6ul/board.c.

Why is mx6ul special in this case compared to the other mx6 variants?

Will you be able to support all mx6q boards into
board/freescale/mx6q/board.c as well?

I am sure this will be unmaintainable.
Tom Rini Sept. 6, 2016, 12:03 p.m. UTC | #11
On Sun, Sep 04, 2016 at 11:47:06AM -0300, Fabio Estevam wrote:
> On Sun, Sep 4, 2016 at 10:32 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
> 
> > Please do read the thread fully before commenting, I've mentioned the
> > state of hardware when I relied to Peng. And also this is an RFC patch
> > I'm looking for comments on function like changes whether the flow of
> > adding code to existing software is meaningful or not and not intended
> > to directly applying these onto ML.
> 
> I have already stated my opinion that you should put your board code
> into board/engicam.

Yes, this sounds right.

> > But I prefer to maintain the same on board/freescale/imx6ul. Becuase,
> > If the most of the code is common to all boards with specific SOC it's
> > better to have common code for reusability instead of adding different
> > board files with duplicate code. For example please see board/sunxi or
> > board/xilinx/zynq where microzed, zed or zynbo not directly
> > manufactured from xilinx but they maintained as common.
> 
> All the ifdefery inside board/sunxi/board.c is exactly what I would
> like to avoid here.

Now, in fairness to sunxi, that's more like what would happen if you
decided to support all of the imx6 and imx7 SoCs in a single board.c.

> mx6ul is a recent SoC and there is only mx6ul evk and pico mx6ul
> boards currently supported in U-Boot.
> 
> I don't think this can scale to support all upcoming boards into a
> single board/freescale/mx6ul/board.c.
> 
> Why is mx6ul special in this case compared to the other mx6 variants?
> 
> Will you be able to support all mx6q boards into
> board/freescale/mx6q/board.c as well?
> 
> I am sure this will be unmaintainable.

I suspect there's a certain amount of code that should be in
arch/arm/mach-imx/board.c like a __weak dram_init() and maybe some
${soc}.c files too for things that really aren't board specific but
rather SoC-required.  Of course I'm biased since this is how the TI
stuff evolved to.

But also, if the enigcam board is an example of "take the ref board, cut
it down a bit, ship" or even "take the ref board, tweak slightly", there
will still be some code duplication as they simply made the same board
decisions that NXP did in the reference platform.
diff mbox

Patch

diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig
index 0c1bc78..d861ded 100644
--- a/arch/arm/cpu/armv7/mx6/Kconfig
+++ b/arch/arm/cpu/armv7/mx6/Kconfig
@@ -129,6 +129,12 @@  config TARGET_MX6UL_14X14_EVK
 	select DM_THERMAL
 	select SUPPORT_SPL
 
+config TARGET_MX6UL_GEAM_KIT
+	bool "mx6ul_geam_kit"
+	select MX6UL
+	select DM
+	select DM_THERMAL
+
 config TARGET_NITROGEN6X
 	bool "nitrogen6x"
 
diff --git a/board/freescale/mx6ul/Kconfig b/board/freescale/mx6ul/Kconfig
index f97b905..d902cd0 100644
--- a/board/freescale/mx6ul/Kconfig
+++ b/board/freescale/mx6ul/Kconfig
@@ -1,4 +1,4 @@ 
-if TARGET_MX6UL_14X14_EVK || TARGET_MX6UL_9X9_EVK
+if TARGET_MX6UL_14X14_EVK || TARGET_MX6UL_9X9_EVK || TARGET_MX6UL_GEAM_KIT
 
 config SYS_BOARD
 	default "mx6ul"
diff --git a/board/freescale/mx6ul/MAINTAINERS b/board/freescale/mx6ul/MAINTAINERS
index 20caeee..3265858 100644
--- a/board/freescale/mx6ul/MAINTAINERS
+++ b/board/freescale/mx6ul/MAINTAINERS
@@ -5,3 +5,8 @@  F:	board/freescale/mx6ul/
 F:	include/configs/mx6ul.h
 F:	configs/mx6ul_14x14_evk_defconfig
 F:	configs/mx6ul_9x9_evk_defconfig
+
+Engicam GEAM6UL BOARD
+M:	Jagan Teki <jagan@amarulasolutions.com>
+S:	Maintained
+F:	configs/mx6ul_geam_kit_defconfig
diff --git a/board/freescale/mx6ul/board.c b/board/freescale/mx6ul/board.c
index 66d6795..f4e35bd 100644
--- a/board/freescale/mx6ul/board.c
+++ b/board/freescale/mx6ul/board.c
@@ -693,8 +693,10 @@  int checkboard(void)
 {
 	if (is_mx6ul_9x9_evk())
 		puts("Board: MX6UL 9x9 EVK\n");
-	else
+	else if (is_mx6ul_14x14_evk())
 		puts("Board: MX6UL 14x14 EVK\n");
+	else
+		puts("Board: MX6UL GEA KIT\n");
 
 	return 0;
 }
diff --git a/configs/mx6ul_geam_kit_defconfig b/configs/mx6ul_geam_kit_defconfig
new file mode 100644
index 0000000..b26f17b
--- /dev/null
+++ b/configs/mx6ul_geam_kit_defconfig
@@ -0,0 +1,11 @@ 
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_TARGET_MX6UL_GEAM_KIT=y
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_PROMPT="geam6ul> "
+CONFIG_AUTO_COMPLETE=y
+CONFIG_SYS_MAXARGS=32
+CONFIG_BOOTDELAY=3
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_BOARD_LATE_INIT=y
+# CONFIG_CMD_IMLS is not set
diff --git a/include/configs/mx6ul.h b/include/configs/mx6ul.h
index f5bdb40..55460ad 100644
--- a/include/configs/mx6ul.h
+++ b/include/configs/mx6ul.h
@@ -14,6 +14,7 @@ 
 #include <asm/imx-common/gpio.h>
 
 #define is_mx6ul_9x9_evk()	CONFIG_IS_ENABLED(TARGET_MX6UL_9X9_EVK)
+#define is_mx6ul_14x14_evk()	CONFIG_IS_ENABLED(TARGET_MX6UL_14x14_EVK)
 
 /* SPL options */
 #define CONFIG_SPL_LIBCOMMON_SUPPORT