[U-Boot] [PATCH] ls1088ardb_pb: Add support for ls1088ardb_pb board.

Pramod Kumar pramod.kumar_1 at nxp.com
Tue Aug 7 07:22:12 UTC 2018


ls1088ardb-pb is another varinat of the ls1088ardb.
This board support two m.2 x2 gen 3 pcie card slot.
There is no support of sata,pcie standard slot,
miniPCIE slot and TDM in this board

Signed-off-by: Pramod Kumar <pramod.kumar_1 at nxp.com>
---
 arch/arm/Kconfig                              | 14 +++
 arch/arm/cpu/armv8/Kconfig                    |  1 +
 board/freescale/ls1088a/Kconfig               | 43 +++++++++
 board/freescale/ls1088a/MAINTAINERS           |  8 ++
 board/freescale/ls1088a/Makefile              |  1 +
 board/freescale/ls1088a/ddr.h                 |  4 +-
 board/freescale/ls1088a/ls1088a.c             | 13 ++-
 ... ls1088ardb_pb_qspi_SECURE_BOOT_defconfig} |  2 +-
 ...defconfig => ls1088ardb_pb_qspi_defconfig} |  2 +-
 ...ardb_pb_sdcard_qspi_SECURE_BOOT_defconfig} |  2 +-
 ...ig => ls1088ardb_pb_sdcard_qspi_defconfig} |  2 +-
 include/configs/ls1088ardb_pb.h               | 87 +++++++++++++++++++
 12 files changed, 172 insertions(+), 7 deletions(-)
 copy configs/{ls1088ardb_qspi_SECURE_BOOT_defconfig => ls1088ardb_pb_qspi_SECURE_BOOT_defconfig} (97%)
 copy configs/{ls1088ardb_qspi_defconfig => ls1088ardb_pb_qspi_defconfig} (97%)
 copy configs/{ls1088ardb_sdcard_qspi_SECURE_BOOT_defconfig => ls1088ardb_pb_sdcard_qspi_SECURE_BOOT_defconfig} (98%)
 copy configs/{ls1088ardb_sdcard_qspi_defconfig => ls1088ardb_pb_sdcard_qspi_defconfig} (98%)
 create mode 100644 include/configs/ls1088ardb_pb.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a047552ed3..10fb7149cb 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1120,6 +1120,20 @@ config TARGET_LS1088ARDB
 	  development platform that supports the QorIQ LS1088A
 	  Layerscape Architecture processor.
 
+config TARGET_LS1088ARDB_PB
+	bool "Support ls1088ardb_pb"
+	select ARCH_LS1088A
+	select ARM64
+	select ARMV8_MULTIENTRY
+	select ARCH_MISC_INIT
+	select BOARD_LATE_INIT
+	select SUPPORT_SPL
+	help
+	  Support for NXP LS1088ARDB_PB platform.
+	  The LS1088A Reference design board (RDB_PB) is a high-performance
+	  development platform that supports the QorIQ LS1088A
+	  Layerscape Architecture processor.
+
 config TARGET_LS1021AQDS
 	bool "Support ls1021aqds"
 	select ARCH_LS1021A
diff --git a/arch/arm/cpu/armv8/Kconfig b/arch/arm/cpu/armv8/Kconfig
index c8bebabdf6..8ede276b65 100644
--- a/arch/arm/cpu/armv8/Kconfig
+++ b/arch/arm/cpu/armv8/Kconfig
@@ -100,6 +100,7 @@ config PSCI_RESET
 		   !TARGET_LS2080A_SIMU && !TARGET_LS2080AQDS && \
 		   !TARGET_LS2080ARDB && !TARGET_LS2080A_EMU && \
 		   !TARGET_LS1088ARDB && !TARGET_LS1088AQDS && \
+		   !TARGET_LS1088ARDB_PB && \
 		   !TARGET_LS1012ARDB && !TARGET_LS1012AFRDM && \
 		   !TARGET_LS1012A2G5RDB && !TARGET_LS1012AQDS && \
 		   !TARGET_LS1012AFRWY && \
diff --git a/board/freescale/ls1088a/Kconfig b/board/freescale/ls1088a/Kconfig
index 8bb828e3fd..9f20d7247f 100644
--- a/board/freescale/ls1088a/Kconfig
+++ b/board/freescale/ls1088a/Kconfig
@@ -59,3 +59,46 @@ endif
 
 source "board/freescale/common/Kconfig"
 endif
+
+if TARGET_LS1088ARDB_PB
+
+config SYS_BOARD
+	default "ls1088a"
+
+config SYS_VENDOR
+	default "freescale"
+
+config SYS_SOC
+	default "fsl-layerscape"
+
+config SYS_CONFIG_NAME
+	default "ls1088ardb_pb"
+
+if SYS_LS_PPA_FW_IN_XIP
+
+config SYS_LS_PPA_FW_ADDR
+	hex "PPA Firmware Addr"
+	default 0x20400000
+
+if CHAIN_OF_TRUST
+config SYS_LS_PPA_ESBC_ADDR
+	hex "PPA Firmware HDR Addr"
+	default 0x20680000
+endif
+endif
+
+if (SYS_LS_PPA_FW_IN_MMC || SYS_LS_PPA_FW_IN_NAND)
+
+config SYS_LS_PPA_FW_ADDR
+	hex "PPA Firmware Addr"
+	default 0x400000
+
+if CHAIN_OF_TRUST
+config SYS_LS_PPA_ESBC_ADDR
+	hex "PPA Firmware HDR Addr"
+	default 0x680000
+endif
+endif
+
+source "board/freescale/common/Kconfig"
+endif
diff --git a/board/freescale/ls1088a/MAINTAINERS b/board/freescale/ls1088a/MAINTAINERS
index 4d804d9447..a7cd4fe277 100644
--- a/board/freescale/ls1088a/MAINTAINERS
+++ b/board/freescale/ls1088a/MAINTAINERS
@@ -7,6 +7,14 @@ F:	include/configs/ls1088ardb.h
 F:	configs/ls1088ardb_qspi_defconfig
 F:	configs/ls1088ardb_sdcard_qspi_defconfig
 
+LS1088ARDB_PB BOARD
+M:	Pramod Kumar <Pramod.Kumar at nxp.com>
+S:	Maintained
+F:	board/freescale/ls1088a/
+F:	include/configs/ls1088ardb_pb.h
+F:	configs/ls1088ardb_pb_qspi_defconfig
+F:	configs/ls1088ardb_pb_sdcard_qspi_defconfig
+
 LS1088AQDS BOARD
 M:	Prabhakar Kushwaha <prabhakar.kushwaha at nxp.com>
 M:	Ashish Kumar <Ashish.Kumar at nxp.com>
diff --git a/board/freescale/ls1088a/Makefile b/board/freescale/ls1088a/Makefile
index c2b0e7dc0f..dd5f365378 100644
--- a/board/freescale/ls1088a/Makefile
+++ b/board/freescale/ls1088a/Makefile
@@ -6,5 +6,6 @@ obj-y += ls1088a.o
 obj-y += ddr.o
 ifndef CONFIG_SPL_BUILD
 obj-$(CONFIG_TARGET_LS1088ARDB) += eth_ls1088ardb.o
+obj-$(CONFIG_TARGET_LS1088ARDB_PB) += eth_ls1088ardb.o
 obj-$(CONFIG_TARGET_LS1088AQDS) += eth_ls1088aqds.o
 endif
diff --git a/board/freescale/ls1088a/ddr.h b/board/freescale/ls1088a/ddr.h
index b35c4ae2da..07f5f55e2e 100644
--- a/board/freescale/ls1088a/ddr.h
+++ b/board/freescale/ls1088a/ddr.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
- * Copyright 2017 NXP
+ * Copyright 2018 NXP
  */
 
 #ifndef __LS1088A_DDR_H__
@@ -27,7 +27,7 @@ static const struct board_specific_parameters udimm0[] = {
 	 *   num|  hi| rank|  clk| wrlvl |   wrlvl   |  wrlvl
 	 * ranks| mhz| GB  |adjst| start |   ctl2    |  ctl3
 	 */
-#if defined(CONFIG_TARGET_LS1088ARDB)
+#if defined(CONFIG_TARGET_LS1088ARDB) || defined(CONFIG_TARGET_LS1088ARDB_PB)
 
 	{2,  1666, 0, 8,     8, 0x090A0B0E, 0x0F10110D,},
 	{2,  1900, 0, 8,     9, 0x0A0B0C10, 0x1112140E,},
diff --git a/board/freescale/ls1088a/ls1088a.c b/board/freescale/ls1088a/ls1088a.c
index a0dab6fc2e..7dda7921df 100644
--- a/board/freescale/ls1088a/ls1088a.c
+++ b/board/freescale/ls1088a/ls1088a.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright 2017 NXP
+ * Copyright 2018 NXP
  */
 #include <common.h>
 #include <i2c.h>
@@ -28,6 +28,15 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
+#ifdef CONFIG_TARGET_LS1088ARDB_PB
+int fixup_ls1088ardb_pb_banner(void *fdt)
+{
+	fdt_setprop_string(fdt, 0, "model", "LS1088ARDB-PB Board");
+
+	return 0;
+}
+#endif
+
 int board_early_init_f(void)
 {
 #if defined(CONFIG_SYS_I2C_EARLY_INIT) && defined(CONFIG_TARGET_LS1088AQDS)
@@ -78,6 +87,8 @@ int checkboard(void)
 
 #ifdef CONFIG_TARGET_LS1088AQDS
 	printf("Board: LS1088A-QDS, ");
+#elif CONFIG_TARGET_LS1088ARDB_PB
+	printf("Board: LS1088ARDB-PB, ");
 #else
 	printf("Board: LS1088A-RDB, ");
 #endif
diff --git a/configs/ls1088ardb_qspi_SECURE_BOOT_defconfig b/configs/ls1088ardb_pb_qspi_SECURE_BOOT_defconfig
similarity index 97%
copy from configs/ls1088ardb_qspi_SECURE_BOOT_defconfig
copy to configs/ls1088ardb_pb_qspi_SECURE_BOOT_defconfig
index d0334a239f..d2faf25f39 100644
--- a/configs/ls1088ardb_qspi_SECURE_BOOT_defconfig
+++ b/configs/ls1088ardb_pb_qspi_SECURE_BOOT_defconfig
@@ -1,5 +1,5 @@
 CONFIG_ARM=y
-CONFIG_TARGET_LS1088ARDB=y
+CONFIG_TARGET_LS1088ARDB_PB=y
 CONFIG_SYS_TEXT_BASE=0x20100000
 CONFIG_SECURE_BOOT=y
 CONFIG_FSL_LS_PPA=y
diff --git a/configs/ls1088ardb_qspi_defconfig b/configs/ls1088ardb_pb_qspi_defconfig
similarity index 97%
copy from configs/ls1088ardb_qspi_defconfig
copy to configs/ls1088ardb_pb_qspi_defconfig
index d806966540..cb9eac88a9 100644
--- a/configs/ls1088ardb_qspi_defconfig
+++ b/configs/ls1088ardb_pb_qspi_defconfig
@@ -1,5 +1,5 @@
 CONFIG_ARM=y
-CONFIG_TARGET_LS1088ARDB=y
+CONFIG_TARGET_LS1088ARDB_PB=y
 CONFIG_SYS_TEXT_BASE=0x20100000
 CONFIG_FSL_LS_PPA=y
 CONFIG_QSPI_AHB_INIT=y
diff --git a/configs/ls1088ardb_sdcard_qspi_SECURE_BOOT_defconfig b/configs/ls1088ardb_pb_sdcard_qspi_SECURE_BOOT_defconfig
similarity index 98%
copy from configs/ls1088ardb_sdcard_qspi_SECURE_BOOT_defconfig
copy to configs/ls1088ardb_pb_sdcard_qspi_SECURE_BOOT_defconfig
index 59356095cd..75ad7c26d1 100644
--- a/configs/ls1088ardb_sdcard_qspi_SECURE_BOOT_defconfig
+++ b/configs/ls1088ardb_pb_sdcard_qspi_SECURE_BOOT_defconfig
@@ -1,5 +1,5 @@
 CONFIG_ARM=y
-CONFIG_TARGET_LS1088ARDB=y
+CONFIG_TARGET_LS1088ARDB_PB=y
 CONFIG_SYS_TEXT_BASE=0x80400000
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
diff --git a/configs/ls1088ardb_sdcard_qspi_defconfig b/configs/ls1088ardb_pb_sdcard_qspi_defconfig
similarity index 98%
copy from configs/ls1088ardb_sdcard_qspi_defconfig
copy to configs/ls1088ardb_pb_sdcard_qspi_defconfig
index bf1c0a2d7b..c501795ef0 100644
--- a/configs/ls1088ardb_sdcard_qspi_defconfig
+++ b/configs/ls1088ardb_pb_sdcard_qspi_defconfig
@@ -1,5 +1,5 @@
 CONFIG_ARM=y
-CONFIG_TARGET_LS1088ARDB=y
+CONFIG_TARGET_LS1088ARDB_PB=y
 CONFIG_SYS_TEXT_BASE=0x80400000
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
diff --git a/include/configs/ls1088ardb_pb.h b/include/configs/ls1088ardb_pb.h
new file mode 100644
index 0000000000..24eb5730d2
--- /dev/null
+++ b/include/configs/ls1088ardb_pb.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef __LS1088A_RDB_PB_H
+#define __LS1088A_RDB_PB_H
+
+#include "ls1088a_common.h"
+#include "ls1088ardb.h"
+
+#undef CONFIG_EXTRA_ENV_SETTINGS
+#define CONFIG_EXTRA_ENV_SETTINGS		\
+	"BOARD=ls1088ardb_pb\0"			\
+	"hwconfig=fsl_ddr:bank_intlv=auto\0"	\
+	"ramdisk_addr=0x800000\0"		\
+	"ramdisk_size=0x2000000\0"		\
+	"fdt_high=0xa0000000\0"			\
+	"initrd_high=0xffffffffffffffff\0"	\
+	"fdt_addr=0x64f00000\0"			\
+	"kernel_addr=0x1000000\0"		\
+	"kernel_addr_sd=0x8000\0"		\
+	"kernelhdr_addr_sd=0x4000\0"		\
+	"kernel_start=0x580100000\0"		\
+	"kernelheader_start=0x580800000\0"	\
+	"scriptaddr=0x80000000\0"		\
+	"scripthdraddr=0x80080000\0"		\
+	"fdtheader_addr_r=0x80100000\0"		\
+	"kernelheader_addr=0x800000\0"		\
+	"kernelheader_addr_r=0x80200000\0"	\
+	"kernel_addr_r=0x81000000\0"		\
+	"kernelheader_size=0x40000\0"		\
+	"fdt_addr_r=0x90000000\0"		\
+	"load_addr=0xa0000000\0"		\
+	"kernel_size=0x2800000\0"		\
+	"kernel_size_sd=0x14000\0"		\
+	"kernelhdr_size_sd=0x10\0"		\
+	MC_INIT_CMD				\
+	BOOTENV					\
+	"boot_scripts=ls1088ardb_boot.scr\0"	\
+	"boot_script_hdr=hdr_ls1088ardb_bs.out\0"	\
+	"scan_dev_for_boot_part="		\
+		"part list ${devtype} ${devnum} devplist; "	\
+		"env exists devplist || setenv devplist 1; "	\
+		"for distro_bootpart in ${devplist}; do "	\
+			"if fstype ${devtype} "			\
+				"${devnum}:${distro_bootpart} "	\
+				"bootfstype; then "		\
+				"run scan_dev_for_boot; "	\
+			"fi; "					\
+		"done\0"					\
+	"scan_dev_for_boot="					\
+		"echo Scanning ${devtype} "			\
+		"${devnum}:${distro_bootpart}...; "		\
+		"for prefix in ${boot_prefixes}; do "		\
+			"run scan_dev_for_scripts; "		\
+		"done;\0"					\
+	"boot_a_script="					\
+		"load ${devtype} ${devnum}:${distro_bootpart} " \
+		"${scriptaddr} ${prefix}${script}; "		\
+	"env exists secureboot && load ${devtype} "		\
+		"${devnum}:${distro_bootpart} "			\
+		"${scripthdraddr} ${prefix}${boot_script_hdr} " \
+		"&& esbc_validate ${scripthdraddr};"		\
+		"source ${scriptaddr}\0"			\
+	"installer=load mmc 0:2 $load_addr "			\
+		"/flex_installer_arm64.itb; "			\
+		"env exists mcinitcmd && run mcinitcmd && "	\
+		"mmc read 0x80001000 0x6800 0x800;"		\
+		"fsl_mc lazyapply dpl 0x80001000;"			\
+		"bootm $load_addr#ls1088ardb\0"			\
+	"qspi_bootcmd=echo Trying load from qspi..;"		\
+		"sf probe && sf read $load_addr "		\
+		"$kernel_addr $kernel_size ; env exists secureboot "	\
+		"&& sf read $kernelheader_addr_r $kernelheader_addr "	\
+		"$kernelheader_size && esbc_validate ${kernelheader_addr_r}; "\
+		"bootm $load_addr#ls1088ardb\0"			\
+		"sd_bootcmd=echo Trying load from sd card..;"		\
+		"mmcinfo; mmc read $load_addr "			\
+		"$kernel_addr_sd $kernel_size_sd ;"		\
+		"env exists secureboot && mmc read $kernelheader_addr_r "\
+		"$kernelhdr_addr_sd $kernelhdr_size_sd "	\
+		" && esbc_validate ${kernelheader_addr_r};"	\
+		"bootm $load_addr#ls1088ardb\0"
+
+#endif /* __LS1088A_RDB_H */
-- 
2.17.1



More information about the U-Boot mailing list