board: ns2: Add support for Broadcom Northstar 2

Add support for the Broadcom Northstar2 SoC and SVK (bcm958712k).  The
BCM5871X is a series of quad-core 64-bit 2GHz ARMv8 Cortex-A57
processors targeting a broad range of networking applications.

Signed-off-by: Jon Mason <jon.mason@broadcom.com>
This commit is contained in:
Jon Mason 2017-03-17 12:12:14 -04:00 committed by Tom Rini
parent daa483debe
commit 274bced86d
7 changed files with 160 additions and 0 deletions

View File

@ -559,6 +559,14 @@ config TARGET_BCMNSP
bool "Support bcmnsp"
select CPU_V7
config TARGET_BCMNS2
bool "Support Broadcom Northstar2"
select ARM64
help
Support for Broadcom Northstar 2 SoCs. NS2 is a quad-core 64-bit
ARMv8 Cortex-A57 processors targeting a broad range of networking
applications
config ARCH_EXYNOS
bool "Samsung EXYNOS"
select DM
@ -1237,6 +1245,7 @@ source "board/broadcom/bcm23550_w1d/Kconfig"
source "board/broadcom/bcm28155_ap/Kconfig"
source "board/broadcom/bcmcygnus/Kconfig"
source "board/broadcom/bcmnsp/Kconfig"
source "board/broadcom/bcmns2/Kconfig"
source "board/cavium/thunderx/Kconfig"
source "board/cirrus/edb93xx/Kconfig"
source "board/compulab/cm_t335/Kconfig"

View File

@ -0,0 +1,6 @@
BCM958712K BOARD
M: Jon Mason <jon.mason@broadcom.com>
S: Maintained
F: board/broadcom/bcmns2/
F: include/configs/bcm_northstar2.h
F: configs/bcm958712k_defconfig

View File

@ -0,0 +1,15 @@
if TARGET_BCMNS2
config SYS_BOARD
default "bcmns2"
config SYS_VENDOR
default "broadcom"
config SYS_SOC
default "ns2"
config SYS_CONFIG_NAME
default "bcm_northstar2"
endif

View File

@ -0,0 +1,7 @@
#
# Copyright 2016 Broadcom Ltd.
#
# SPDX-License-Identifier: GPL-2.0+
#
obj-y := northstar2.o

View File

@ -0,0 +1,58 @@
/*
* (C) Copyright 2016 Broadcom Ltd.
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <asm/system.h>
#include <asm/armv8/mmu.h>
static struct mm_region ns2_mem_map[] = {
{
.virt = 0x0UL,
.phys = 0x0UL,
.size = 0x80000000UL,
.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
PTE_BLOCK_NON_SHARE |
PTE_BLOCK_PXN | PTE_BLOCK_UXN
}, {
.virt = 0x80000000UL,
.phys = 0x80000000UL,
.size = 0xff80000000UL,
.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
PTE_BLOCK_INNER_SHARE
}, {
/* List terminator */
0,
}
};
struct mm_region *mem_map = ns2_mem_map;
DECLARE_GLOBAL_DATA_PTR;
int board_init(void)
{
return 0;
}
int dram_init(void)
{
gd->ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE,
PHYS_SDRAM_1_SIZE + PHYS_SDRAM_2_SIZE);
return 0;
}
void dram_init_banksize(void)
{
gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
gd->bd->bi_dram[1].start = CONFIG_SYS_SDRAM_BASE + PHYS_SDRAM_1_SIZE;
gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE;
}
void reset_cpu(ulong addr)
{
psci_system_reset();
}

View File

@ -0,0 +1,10 @@
CONFIG_ARM=y
CONFIG_TARGET_BCMNS2=y
CONFIG_IDENT_STRING=" Broadcom Northstar 2"
CONFIG_DISTRO_DEFAULTS=y
CONFIG_BOOTDELAY=5
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_SYS_PROMPT="u-boot> "
# CONFIG_CMD_IMLS is not set
CONFIG_SYS_NS16550=y
CONFIG_OF_LIBFDT=y

View File

@ -0,0 +1,55 @@
/*
* Configuration for Broadcom NS2.
*
* SPDX-License-Identifier: GPL-2.0+
*/
#ifndef __BCM_NORTHSTAR2_H
#define __BCM_NORTHSTAR2_H
#include <linux/sizes.h>
#define CONFIG_HOSTNAME northstar2
/* Physical Memory Map */
#define V2M_BASE 0x80000000
#define PHYS_SDRAM_1 V2M_BASE
#define CONFIG_NR_DRAM_BANKS 2
#define PHYS_SDRAM_1_SIZE (4UL * SZ_1G)
#define PHYS_SDRAM_2_SIZE (4UL * SZ_1G)
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
/* define text_base for U-boot image */
#define CONFIG_SYS_TEXT_BASE 0x85000000
#define CONFIG_SYS_INIT_SP_ADDR (PHYS_SDRAM_1 + 0x7ff00)
#define CONFIG_SYS_LOAD_ADDR 0x90000000
#define CONFIG_SYS_MALLOC_LEN SZ_16M
/* Serial Configuration */
#define CONFIG_SYS_NS16550_SERIAL
#define CONFIG_SYS_NS16550_REG_SIZE (-4)
#define CONFIG_SYS_NS16550_CLK 25000000
#define CONFIG_SYS_NS16550_COM1 0x66100000
#define CONFIG_SYS_NS16550_COM2 0x66110000
#define CONFIG_SYS_NS16550_COM3 0x66120000
#define CONFIG_SYS_NS16550_COM4 0x66130000
#define CONFIG_CONS_INDEX 4
#define CONFIG_BAUDRATE 115200
#define CONFIG_ENV_SIZE SZ_8K
#define CONFIG_ENV_IS_NOWHERE
/* console configuration */
#define CONFIG_SYS_CBSIZE SZ_1K
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \
sizeof(CONFIG_SYS_PROMPT) + 16)
#define CONFIG_SYS_MAXARGS 64
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
/* version string, parser, etc */
#define CONFIG_CMDLINE_EDITING
#define CONFIG_COMMAND_HISTORY
#define CONFIG_SYS_LONGHELP
#endif /* __BCM_NORTHSTAR2_H */