[4/4] arm: add Cygnus and NSP boards

Message ID 1405733854-20194-5-git-send-email-srae@broadcom.com
State New
Headers show

Commit Message

Steve Rae July 19, 2014, 1:37 a.m.
From: Scott Branden <sbranden@broadcom.com>

The bcm_ep board configuration is used by a number of boards
including Cygnus and NSP.
Add builds for the bcm958300k and the bcm958622hr boards.

Signed-off-by: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Steve Rae <srae@broadcom.com>
---

 arch/arm/include/asm/arch-bcmcygnus/configs.h |  25 ++++++
 arch/arm/include/asm/arch-bcmnsp/configs.h    |  22 +++++
 arch/arm/include/asm/iproc-common/configs.h   |  20 +++++
 board/broadcom/bcm_ep/Makefile                |   7 ++
 board/broadcom/bcm_ep/board.c                 |  62 ++++++++++++++
 boards.cfg                                    |   2 +
 include/configs/bcm_ep_board.h                | 111 ++++++++++++++++++++++++++
 7 files changed, 249 insertions(+)
 create mode 100644 arch/arm/include/asm/arch-bcmcygnus/configs.h
 create mode 100644 arch/arm/include/asm/arch-bcmnsp/configs.h
 create mode 100644 arch/arm/include/asm/iproc-common/configs.h
 create mode 100644 board/broadcom/bcm_ep/Makefile
 create mode 100644 board/broadcom/bcm_ep/board.c
 create mode 100644 include/configs/bcm_ep_board.h

Comments

Wolfgang Denk July 20, 2014, 7:54 a.m. | #1
Dear Steve Rae,

In message <1405733854-20194-5-git-send-email-srae@broadcom.com> you wrote:
> 
> The bcm_ep board configuration is used by a number of boards
> including Cygnus and NSP.
> Add builds for the bcm958300k and the bcm958622hr boards.
...
> +/* uArchitecture specifics */
...
> +#define CONFIG_CONS_INDEX		3
> +#define CONFIG_SYS_NS16550_COM3		0x18023000

Is the console inex really architecture specific and identical for all
boards based on this?  I would expect to find this in the board config
header.

> +/* uArchitecture specifics */
...
> +#define CONFIG_CONS_INDEX		1
> +#define CONFIG_SYS_NS16550_COM1		0x18000300

Ditto here.

...
> +	/* Address of boot parameters passed to kernel
> +	 * Use default offset 0x100
> +	 */

Incorrect multiline comment style.  Please check (and fix, if needed)
globally.

> +/*
> + * misc_init_r - miscellaneous platform dependent initializations
> + */
> +int misc_init_r(void)
> +{
> +	return 0;
> +}

It makes no sense to add an empty function here.  Just do not define
CONFIG_MISC_INIT_R


> +#define CONFIG_SYS_MALLOC_LEN		SZ_4M	/* see armv7/start.S. */
> +#define CONFIG_STACKSIZE		SZ_256K

Please do not use the SZ_ defines.  They are deprecated.

> +/* Init functions */
> +#define CONFIG_MISC_INIT_R	/* board's misc_init_r function */

Unused, so remove.

> +#define CONFIG_ENV_SIZE			0x10000

Do you really, really need 64 kB of environmnt?  I doubt that.


Best regards,

Wolfgang Denk
Steve Rae July 22, 2014, 12:02 a.m. | #2
On 14-07-20 12:54 AM, Wolfgang Denk wrote:
> Dear Steve Rae,
>
> In message <1405733854-20194-5-git-send-email-srae@broadcom.com> you wrote:
>>
>> The bcm_ep board configuration is used by a number of boards
>> including Cygnus and NSP.
>> Add builds for the bcm958300k and the bcm958622hr boards.
> ...
>> +/* uArchitecture specifics */
> ...
>> +#define CONFIG_CONS_INDEX		3
>> +#define CONFIG_SYS_NS16550_COM3		0x18023000
>
> Is the console inex really architecture specific and identical for all
> boards based on this?  I would expect to find this in the board config
> header.
>
Yes -- the bootrom code always uses 3 for this architecture

>> +/* uArchitecture specifics */
> ...
>> +#define CONFIG_CONS_INDEX		1
>> +#define CONFIG_SYS_NS16550_COM1		0x18000300
>
> Ditto here.
Ditto -- the bootrom code always uses 1 for this architecture

>
> ...
>> +	/* Address of boot parameters passed to kernel
>> +	 * Use default offset 0x100
>> +	 */
>
> Incorrect multiline comment style.  Please check (and fix, if needed)
> globally.
will fix in [v2]

>
>> +/*
>> + * misc_init_r - miscellaneous platform dependent initializations
>> + */
>> +int misc_init_r(void)
>> +{
>> +	return 0;
>> +}
>
> It makes no sense to add an empty function here.  Just do not define
> CONFIG_MISC_INIT_R
will fix in [v2]

>
>
>> +#define CONFIG_SYS_MALLOC_LEN		SZ_4M	/* see armv7/start.S. */
>> +#define CONFIG_STACKSIZE		SZ_256K
>
> Please do not use the SZ_ defines.  They are deprecated.
will fix in [v2]

>
>> +/* Init functions */
>> +#define CONFIG_MISC_INIT_R	/* board's misc_init_r function */
>
> Unused, so remove.
will fix in [v2]
>
>> +#define CONFIG_ENV_SIZE			0x10000
>
> Do you really, really need 64 kB of environmnt?  I doubt that.
will fix in [v2]

>
>
> Best regards,
>
> Wolfgang Denk
>

Patch

diff --git a/arch/arm/include/asm/arch-bcmcygnus/configs.h b/arch/arm/include/asm/arch-bcmcygnus/configs.h
new file mode 100644
index 0000000..5354637
--- /dev/null
+++ b/arch/arm/include/asm/arch-bcmcygnus/configs.h
@@ -0,0 +1,25 @@ 
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef __ARCH_CONFIGS_H
+#define __ARCH_CONFIGS_H
+
+#include <asm/iproc-common/configs.h>
+
+/* uArchitecture specifics */
+
+/* Serial Info */
+/* Post pad 3 bytes after each reg addr */
+#define CONFIG_SYS_NS16550_REG_SIZE	(-4)
+#define CONFIG_SYS_NS16550_MEM32
+
+#define CONFIG_SYS_NS16550_CLK		100000000
+#define CONFIG_SYS_NS16550_CLK_DIV	54
+#define CONFIG_SERIAL_MULTI
+#define CONFIG_CONS_INDEX		3
+#define CONFIG_SYS_NS16550_COM3		0x18023000
+
+#endif /* __ARCH_CONFIGS_H */
diff --git a/arch/arm/include/asm/arch-bcmnsp/configs.h b/arch/arm/include/asm/arch-bcmnsp/configs.h
new file mode 100644
index 0000000..786deae
--- /dev/null
+++ b/arch/arm/include/asm/arch-bcmnsp/configs.h
@@ -0,0 +1,22 @@ 
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef __ARCH_CONFIGS_H
+#define __ARCH_CONFIGS_H
+
+#include <asm/iproc-common/configs.h>
+
+/* uArchitecture specifics */
+
+/* Serial Info */
+/* no padding */
+#define CONFIG_SYS_NS16550_REG_SIZE	1
+
+#define CONFIG_SYS_NS16550_CLK		0x03b9aca0
+#define CONFIG_CONS_INDEX		1
+#define CONFIG_SYS_NS16550_COM1		0x18000300
+
+#endif /* __ARCH_CONFIGS_H */
diff --git a/arch/arm/include/asm/iproc-common/configs.h b/arch/arm/include/asm/iproc-common/configs.h
new file mode 100644
index 0000000..c24de1f
--- /dev/null
+++ b/arch/arm/include/asm/iproc-common/configs.h
@@ -0,0 +1,20 @@ 
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef __IPROC_COMMON_CONFIGS_H
+#define __IPROC_COMMON_CONFIGS_H
+
+#include <linux/stringify.h>
+
+/* Architecture, CPU, chip, etc */
+#define CONFIG_IPROC
+#define CONFIG_SYS_ARM_CACHE_WRITETHROUGH
+
+/* Memory Info */
+#define CONFIG_SYS_TEXT_BASE		0x61000000
+#define CONFIG_SYS_SDRAM_BASE		0x61000000
+
+#endif /* __IPROC_COMMON_CONFIGS_H */
diff --git a/board/broadcom/bcm_ep/Makefile b/board/broadcom/bcm_ep/Makefile
new file mode 100644
index 0000000..8914e54
--- /dev/null
+++ b/board/broadcom/bcm_ep/Makefile
@@ -0,0 +1,7 @@ 
+#
+# Copyright 2014 Broadcom Corporation.
+#
+# SPDX-License-Identifier:	GPL-2.0+
+#
+
+obj-y	+= board.o
diff --git a/board/broadcom/bcm_ep/board.c b/board/broadcom/bcm_ep/board.c
new file mode 100644
index 0000000..df17f72
--- /dev/null
+++ b/board/broadcom/bcm_ep/board.c
@@ -0,0 +1,62 @@ 
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <asm/io.h>
+#include <config.h>
+#include <asm/system.h>
+#include <asm/iproc-common/armpll.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/*
+ * board_init - early hardware init
+ */
+int board_init(void)
+{
+	/* Address of boot parameters passed to kernel
+	 * Use default offset 0x100
+	 */
+	gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
+
+	return 0;
+}
+
+/*
+ * misc_init_r - miscellaneous platform dependent initializations
+ */
+int misc_init_r(void)
+{
+	return 0;
+}
+
+/*
+ * dram_init - sets u-boot's idea of sdram size
+ */
+int dram_init(void)
+{
+	gd->ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE,
+				    CONFIG_SYS_SDRAM_SIZE);
+	return 0;
+}
+
+void dram_init_banksize(void)
+{
+	gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
+	gd->bd->bi_dram[0].size = gd->ram_size;
+}
+
+int board_early_init_f(void)
+{
+	uint32_t status = 0;
+
+	/* Setup PLL if required */
+#if defined(CONFIG_ARMCLK)
+	armpll_config(CONFIG_ARMCLK);
+#endif
+
+	return status;
+}
diff --git a/boards.cfg b/boards.cfg
index 1ba2081..25eaaee 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -289,6 +289,8 @@  Active  arm         armv7          at91        atmel           sama5d3xek
 Active  arm         armv7          at91        atmel           sama5d3xek          sama5d3xek_nandflash                  sama5d3xek:SAMA5D3,SYS_USE_NANDFLASH                                                                                              Bo Shen <voice.shen@atmel.com>
 Active  arm         armv7          at91        atmel           sama5d3xek          sama5d3xek_spiflash                   sama5d3xek:SAMA5D3,SYS_USE_SERIALFLASH                                                                                            Bo Shen <voice.shen@atmel.com>
 Active  arm         armv7          bcm281xx    broadcom        bcm28155_ap         bcm28155_ap                           bcm28155_ap                                                                                                                       Tim Kryger <tim.kryger@linaro.org>
+Active  arm         armv7          bcmcygnus   broadcom        bcm_ep              bcm958300k                            bcm_ep_board:SYS_SDRAM_SIZE=0x20000000                                                                                            Steve Rae <srae@broadcom.com>
+Active  arm         armv7          bcmnsp      broadcom        bcm_ep              bcm958622hr                           bcm_ep_board:SYS_SDRAM_SIZE=0x01000000                                                                                            Steve Rae <srae@broadcom.com>
 Active  arm         armv7          exynos      samsung         arndale             arndale                               -                                                                                                                                 Inderpal Singh <inderpal.singh@linaro.org>
 Active  arm         armv7          exynos      samsung         origen              origen                                -                                                                                                                                 Chander Kashyap <k.chander@samsung.com>
 Active  arm         armv7          exynos      samsung         smdk5250            smdk5250                              -                                                                                                                                 Chander Kashyap <k.chander@samsung.com>
diff --git a/include/configs/bcm_ep_board.h b/include/configs/bcm_ep_board.h
new file mode 100644
index 0000000..27b817b
--- /dev/null
+++ b/include/configs/bcm_ep_board.h
@@ -0,0 +1,111 @@ 
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef __BCM_EP_BOARD_H
+#define __BCM_EP_BOARD_H
+
+#include <linux/sizes.h>
+#include <asm/arch/configs.h>
+
+/* Architecture, CPU, chip, etc */
+#define CONFIG_ARMV7
+#define CONFIG_SKIP_LOWLEVEL_INIT
+
+#define CONFIG_SYS_GENERIC_BOARD
+
+/*
+ * Memory configuration
+ *
+ * CONFIG_SYS_TEXT_BASE, CONFIG_SYS_SDRAM_BASE, CONFIG_SYS_SDRAM_SIZE
+ * defined in boards.cfg
+ */
+#define CONFIG_NR_DRAM_BANKS		1
+
+#define CONFIG_SYS_MALLOC_LEN		SZ_4M	/* see armv7/start.S. */
+#define CONFIG_STACKSIZE		SZ_256K
+
+/* Init functions */
+#define CONFIG_MISC_INIT_R	/* board's misc_init_r function */
+
+/* Some commands use this as the default load address */
+#define CONFIG_SYS_LOAD_ADDR		CONFIG_SYS_SDRAM_BASE
+
+/* No mtest functions as recommended */
+#undef CONFIG_CMD_MEMORY
+
+/*
+ * This is the initial SP which is used only briefly for relocating the u-boot
+ * image to the top of SDRAM. After relocation u-boot moves the stack to the
+ * proper place.
+ */
+#define CONFIG_SYS_INIT_SP_ADDR		CONFIG_SYS_TEXT_BASE
+
+/* allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+
+/* Serial Info */
+#define CONFIG_SYS_NS16550
+#define CONFIG_SYS_NS16550_SERIAL
+
+#define CONFIG_BAUDRATE			115200
+
+#define CONFIG_ENV_SIZE			0x10000
+#define CONFIG_ENV_IS_NOWHERE
+
+#define CONFIG_SYS_NO_FLASH	/* Not using NAND/NOR unmanaged flash */
+
+/* console configuration */
+#define CONFIG_SYS_CBSIZE		1024	/* Console buffer size */
+#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
+			sizeof(CONFIG_SYS_PROMPT) + 16)	/* Printbuffer size */
+#define CONFIG_SYS_MAXARGS		64
+#define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
+
+/*
+ * One partition type must be defined for part.c
+ * This is necessary for the fatls command to work on an SD card
+ * for example.
+ */
+#define CONFIG_DOS_PARTITION
+
+/* version string, parser, etc */
+#define CONFIG_VERSION_VARIABLE
+#define CONFIG_AUTO_COMPLETE
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_CMDLINE_EDITING
+#define CONFIG_COMMAND_HISTORY
+#define CONFIG_SYS_LONGHELP
+
+#define CONFIG_CRC32_VERIFY
+#define CONFIG_MX_CYCLIC
+
+/* Commands */
+#include <config_cmd_default.h>
+
+#define CONFIG_CMD_ASKENV
+#define CONFIG_CMD_CACHE
+#define CONFIG_CMD_FAT
+#define CONFIG_FAT_WRITE
+
+/* Enable devicetree support */
+#define CONFIG_OF_LIBFDT
+
+/* SHA hashing */
+#define CONFIG_CMD_HASH
+#define CONFIG_HASH_VERIFY
+#define CONFIG_SHA1
+#define CONFIG_SHA256
+
+/* Enable Time Command */
+#define CONFIG_CMD_TIME
+
+#define CONFIG_CMD_BOOTZ
+
+/* Misc utility code */
+#define CONFIG_BOUNCE_BUFFER
+#define CONFIG_CRC32_VERIFY
+
+#endif /* __BCM_EP_BOARD_H */