* [PATCH 00/10] board: sl28: various updates
@ 2022-05-30 21:02 Michael Walle
2022-05-30 21:02 ` [PATCH 01/10] armv8: layerscape: add missing RCW source defines Michael Walle
` (9 more replies)
0 siblings, 10 replies; 11+ messages in thread
From: Michael Walle @ 2022-05-30 21:02 UTC (permalink / raw)
To: Priyanka Jain; +Cc: u-boot, Michael Walle
This is an update for the sl28 board which adds support for
- 8 GiB memory variant
- different boot sources, like eMMC, SD-card
- dynamic prompts
- various cleanups
Michael Walle (10):
armv8: layerscape: add missing RCW source defines
armv8: layerscape: spl: mark OCRAM as non-secure
board: sl28: set CPO value
board: sl28: remove unneeded ddr config parameter
board: sl28: support 8 GiB memory
board: sl28: rename include guard macro
board: sl28: implement additional bootsources
board: sl28: add user friendly names for the boot sources
board: sl28: support dynamic prompts
board: sl28: remove COUNTER_FREQUENCY_REAL
arch/arm/cpu/armv8/fsl-layerscape/spl.c | 11 ++++
.../asm/arch-fsl-layerscape/immap_lsch3.h | 4 ++
board/kontron/sl28/common.c | 22 ++++++++
board/kontron/sl28/ddr.c | 12 ++++-
board/kontron/sl28/sl28.c | 43 +++++++++++++++
board/kontron/sl28/sl28.h | 16 ++++++
board/kontron/sl28/spl.c | 54 ++++++++++++++++++-
configs/kontron_sl28_defconfig | 6 ++-
include/configs/kontron_sl28.h | 8 ++-
9 files changed, 167 insertions(+), 9 deletions(-)
create mode 100644 board/kontron/sl28/sl28.h
--
2.30.2
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 01/10] armv8: layerscape: add missing RCW source defines
2022-05-30 21:02 [PATCH 00/10] board: sl28: various updates Michael Walle
@ 2022-05-30 21:02 ` Michael Walle
2022-05-30 21:02 ` [PATCH 02/10] armv8: layerscape: spl: mark OCRAM as non-secure Michael Walle
` (8 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Michael Walle @ 2022-05-30 21:02 UTC (permalink / raw)
To: Priyanka Jain; +Cc: u-boot, Michael Walle
A board might need to get the source of the RCW word, which is also the
boot source in most cases.
These defines are taken from the LS1028A and I expect they are the same
across the SoCs with the same chassis, after all, there was already a
reset source for NOR flash.
Signed-off-by: Michael Walle <michael@walle.cc>
---
arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h
index 863618a5f3..304cd7980a 100644
--- a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h
+++ b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h
@@ -230,6 +230,10 @@
#define DCFG_BASE 0x01e00000
#define DCFG_PORSR1 0x000
#define DCFG_PORSR1_RCW_SRC 0xff800000
+#define DCFG_PORSR1_RCW_SRC_SDHC1 0x04000000
+#define DCFG_PORSR1_RCW_SRC_SDHC2 0x04800000
+#define DCFG_PORSR1_RCW_SRC_I2C 0x05000000
+#define DCFG_PORSR1_RCW_SRC_FSPI_NOR 0x07800000
#define DCFG_PORSR1_RCW_SRC_NOR 0x12f00000
#define DCFG_RCWSR12 0x12c
#define DCFG_RCWSR12_SDHC_SHIFT 24
--
2.30.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 02/10] armv8: layerscape: spl: mark OCRAM as non-secure
2022-05-30 21:02 [PATCH 00/10] board: sl28: various updates Michael Walle
2022-05-30 21:02 ` [PATCH 01/10] armv8: layerscape: add missing RCW source defines Michael Walle
@ 2022-05-30 21:02 ` Michael Walle
2022-05-30 21:02 ` [PATCH 03/10] board: sl28: set CPO value Michael Walle
` (7 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Michael Walle @ 2022-05-30 21:02 UTC (permalink / raw)
To: Priyanka Jain; +Cc: u-boot, Michael Walle
By default the OCRAM is marked as secure. While the SPL runs in EL3 and
thus can access it, DMA devices cannot. Mark the whole OCRAM as
non-secure.
This will fix MMC and SD card boot on LS1028A when using SPL instead of
TF-A.
Signed-off-by: Michael Walle <michael@walle.cc>
---
arch/arm/cpu/armv8/fsl-layerscape/spl.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/spl.c b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
index 5f09ef0a4a..f57ab85dab 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/spl.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/spl.c
@@ -67,11 +67,22 @@ void spl_board_init(void)
#endif
}
+void tzpc_init(void)
+{
+ /*
+ * Mark the whole OCRAM as non-secure, otherwise DMA devices cannot
+ * access it. This is for example necessary for MMC boot.
+ */
+ out_le32(TZPCR0SIZE_BASE, 0);
+}
+
void board_init_f(ulong dummy)
{
int ret;
icache_enable();
+ tzpc_init();
+
/* Clear global data */
memset((void *)gd, 0, sizeof(gd_t));
if (IS_ENABLED(CONFIG_DEBUG_UART))
--
2.30.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 03/10] board: sl28: set CPO value
2022-05-30 21:02 [PATCH 00/10] board: sl28: various updates Michael Walle
2022-05-30 21:02 ` [PATCH 01/10] armv8: layerscape: add missing RCW source defines Michael Walle
2022-05-30 21:02 ` [PATCH 02/10] armv8: layerscape: spl: mark OCRAM as non-secure Michael Walle
@ 2022-05-30 21:02 ` Michael Walle
2022-05-30 21:02 ` [PATCH 04/10] board: sl28: remove unneeded ddr config parameter Michael Walle
` (6 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Michael Walle @ 2022-05-30 21:02 UTC (permalink / raw)
To: Priyanka Jain; +Cc: u-boot, Michael Walle
With a 8GiB memory board, it seems that the "very unlikely event" of a
DDR initialization with non-optimal values are not really that unlikely.
It happens in about every other reboot. As described in erratum
A-009942, preset the DEBUG_28 register with an optimal value. The value
iself depends on the memory configuration of the board, but the used
value seems to work well for all variants.
Signed-off-by: Michael Walle <michael@walle.cc>
---
board/kontron/sl28/ddr.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/board/kontron/sl28/ddr.c b/board/kontron/sl28/ddr.c
index 41426996ab..d75b23e54c 100644
--- a/board/kontron/sl28/ddr.c
+++ b/board/kontron/sl28/ddr.c
@@ -54,6 +54,9 @@ static fsl_ddr_cfg_regs_t __maybe_unused ddr_cfg_regs = {
.ddr_cdr1 = 0x80040000,
.ddr_cdr2 = 0x0000bc01,
+
+ /* Erratum A-009942, set optimal CPO value */
+ .debug[28] = 0x00700040,
};
int fsl_initdram(void)
--
2.30.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 04/10] board: sl28: remove unneeded ddr config parameter
2022-05-30 21:02 [PATCH 00/10] board: sl28: various updates Michael Walle
` (2 preceding siblings ...)
2022-05-30 21:02 ` [PATCH 03/10] board: sl28: set CPO value Michael Walle
@ 2022-05-30 21:02 ` Michael Walle
2022-05-30 21:02 ` [PATCH 05/10] board: sl28: support 8 GiB memory Michael Walle
` (5 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Michael Walle @ 2022-05-30 21:02 UTC (permalink / raw)
To: Priyanka Jain; +Cc: u-boot, Michael Walle
config_2 doesn't need to be set to zero because that is already the
default value.
Signed-off-by: Michael Walle <michael@walle.cc>
---
board/kontron/sl28/ddr.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/board/kontron/sl28/ddr.c b/board/kontron/sl28/ddr.c
index d75b23e54c..ed799c6e34 100644
--- a/board/kontron/sl28/ddr.c
+++ b/board/kontron/sl28/ddr.c
@@ -69,7 +69,6 @@ int fsl_initdram(void)
dram_size = 0x80000000;
ddr_cfg_regs.cs[1].bnds = 0;
ddr_cfg_regs.cs[1].config = 0;
- ddr_cfg_regs.cs[1].config_2 = 0;
break;
case GPPORCR1_MEM_4GB_CS0_1:
dram_size = 0x100000000ULL;
--
2.30.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 05/10] board: sl28: support 8 GiB memory
2022-05-30 21:02 [PATCH 00/10] board: sl28: various updates Michael Walle
` (3 preceding siblings ...)
2022-05-30 21:02 ` [PATCH 04/10] board: sl28: remove unneeded ddr config parameter Michael Walle
@ 2022-05-30 21:02 ` Michael Walle
2022-05-30 21:02 ` [PATCH 06/10] board: sl28: rename include guard macro Michael Walle
` (4 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Michael Walle @ 2022-05-30 21:02 UTC (permalink / raw)
To: Priyanka Jain; +Cc: u-boot, Michael Walle
The board supports up to 8 GiB memory. The memory is soldered on the
board but the configuration is equivalent to a dual chip select, dual
rank DIMM module.
Signed-off-by: Michael Walle <michael@walle.cc>
---
board/kontron/sl28/ddr.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/board/kontron/sl28/ddr.c b/board/kontron/sl28/ddr.c
index ed799c6e34..315d9f99c7 100644
--- a/board/kontron/sl28/ddr.c
+++ b/board/kontron/sl28/ddr.c
@@ -73,6 +73,13 @@ int fsl_initdram(void)
case GPPORCR1_MEM_4GB_CS0_1:
dram_size = 0x100000000ULL;
break;
+ case GPPORCR1_MEM_8GB_CS0_1:
+ dram_size = 0x200000000ULL;
+ ddr_cfg_regs.cs[0].bnds = 0x000000ff;
+ ddr_cfg_regs.cs[0].config = 0x80044403;
+ ddr_cfg_regs.cs[1].bnds = 0x010001ff;
+ ddr_cfg_regs.cs[1].config = 0x80044403;
+ break;
case GPPORCR1_MEM_512MB_CS0:
dram_size = 0x20000000;
fallthrough; /* for now */
@@ -82,7 +89,6 @@ int fsl_initdram(void)
case GPPORCR1_MEM_4GB_CS0_2:
dram_size = 0x100000000ULL;
fallthrough; /* for now */
- case GPPORCR1_MEM_8GB_CS0_1:
case GPPORCR1_MEM_8GB_CS0_1_2_3:
dram_size = 0x200000000ULL;
fallthrough; /* for now */
--
2.30.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 06/10] board: sl28: rename include guard macro
2022-05-30 21:02 [PATCH 00/10] board: sl28: various updates Michael Walle
` (4 preceding siblings ...)
2022-05-30 21:02 ` [PATCH 05/10] board: sl28: support 8 GiB memory Michael Walle
@ 2022-05-30 21:02 ` Michael Walle
2022-05-30 21:02 ` [PATCH 07/10] board: sl28: implement additional bootsources Michael Walle
` (3 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Michael Walle @ 2022-05-30 21:02 UTC (permalink / raw)
To: Priyanka Jain; +Cc: u-boot, Michael Walle
Avoid name clashes with an include file on board level.
Signed-off-by: Michael Walle <michael@walle.cc>
---
include/configs/kontron_sl28.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/configs/kontron_sl28.h b/include/configs/kontron_sl28.h
index c47b5940fb..0cc543716a 100644
--- a/include/configs/kontron_sl28.h
+++ b/include/configs/kontron_sl28.h
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0+ */
-#ifndef __SL28_H
-#define __SL28_H
+#ifndef __SL28_CONFIG_H
+#define __SL28_CONFIG_H
#include <asm/arch/stream_id_lsch3.h>
#include <asm/arch/config.h>
@@ -87,4 +87,4 @@
ENV_MEM_LAYOUT_SETTINGS \
BOOTENV
-#endif /* __SL28_H */
+#endif /* __SL28_CONFIG_H */
--
2.30.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 07/10] board: sl28: implement additional bootsources
2022-05-30 21:02 [PATCH 00/10] board: sl28: various updates Michael Walle
` (5 preceding siblings ...)
2022-05-30 21:02 ` [PATCH 06/10] board: sl28: rename include guard macro Michael Walle
@ 2022-05-30 21:02 ` Michael Walle
2022-05-30 21:02 ` [PATCH 08/10] board: sl28: add user friendly names for the boot sources Michael Walle
` (2 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Michael Walle @ 2022-05-30 21:02 UTC (permalink / raw)
To: Priyanka Jain; +Cc: u-boot, Michael Walle
The board is able to boot from the following source:
- user-updateble SPI flash
- write-protected part of the same SPI flash
- eMMC
- SD card
Implement the needed function hooks to support all of these boot
sources.
Signed-off-by: Michael Walle <michael@walle.cc>
---
board/kontron/sl28/common.c | 22 ++++++++++++++++++++
board/kontron/sl28/sl28.c | 23 ++++++++++++++++++++
board/kontron/sl28/sl28.h | 16 ++++++++++++++
board/kontron/sl28/spl.c | 38 +++++++++++++++++++++++++++++++++-
configs/kontron_sl28_defconfig | 5 ++++-
5 files changed, 102 insertions(+), 2 deletions(-)
create mode 100644 board/kontron/sl28/sl28.h
diff --git a/board/kontron/sl28/common.c b/board/kontron/sl28/common.c
index 33c6843c3f..331de29bae 100644
--- a/board/kontron/sl28/common.c
+++ b/board/kontron/sl28/common.c
@@ -2,6 +2,9 @@
#include <common.h>
#include <asm/global_data.h>
+#include <asm/io.h>
+
+#include "sl28.h"
DECLARE_GLOBAL_DATA_PTR;
@@ -9,3 +12,22 @@ u32 get_lpuart_clk(void)
{
return gd->bus_clk / CONFIG_SYS_FSL_LPUART_CLK_DIV;
}
+
+enum boot_source sl28_boot_source(void)
+{
+ u32 rcw_src = in_le32(DCFG_BASE + DCFG_PORSR1) & DCFG_PORSR1_RCW_SRC;
+
+ switch (rcw_src) {
+ case DCFG_PORSR1_RCW_SRC_SDHC1:
+ return BOOT_SOURCE_SDHC;
+ case DCFG_PORSR1_RCW_SRC_SDHC2:
+ return BOOT_SOURCE_MMC;
+ case DCFG_PORSR1_RCW_SRC_I2C:
+ return BOOT_SOURCE_I2C;
+ case DCFG_PORSR1_RCW_SRC_FSPI_NOR:
+ return BOOT_SOURCE_SPI;
+ default:
+ debug("unknown bootsource (%08x)\n", rcw_src);
+ return BOOT_SOURCE_UNKNOWN;
+ }
+}
diff --git a/board/kontron/sl28/sl28.c b/board/kontron/sl28/sl28.c
index 32e9694b77..54719cc01c 100644
--- a/board/kontron/sl28/sl28.c
+++ b/board/kontron/sl28/sl28.c
@@ -24,6 +24,8 @@
#include <fdtdec.h>
#include <miiphy.h>
+#include "sl28.h"
+
DECLARE_GLOBAL_DATA_PTR;
#if CONFIG_IS_ENABLED(EFI_HAVE_CAPSULE_SUPPORT)
@@ -60,6 +62,27 @@ int board_eth_init(struct bd_info *bis)
return pci_eth_init(bis);
}
+enum env_location env_get_location(enum env_operation op, int prio)
+{
+ enum boot_source src = sl28_boot_source();
+
+ if (prio)
+ return ENVL_UNKNOWN;
+
+ if (!CONFIG_IS_ENABLED(ENV_IS_IN_SPI_FLASH))
+ return ENVL_NOWHERE;
+
+ /* write and erase always operate on the environment */
+ if (op == ENVOP_SAVE || op == ENVOP_ERASE)
+ return ENVL_SPI_FLASH;
+
+ /* failsafe boot will always use the compiled-in default environment */
+ if (src == BOOT_SOURCE_SPI)
+ return ENVL_NOWHERE;
+
+ return ENVL_SPI_FLASH;
+}
+
static int __sl28cpld_read(uint reg)
{
struct udevice *dev;
diff --git a/board/kontron/sl28/sl28.h b/board/kontron/sl28/sl28.h
new file mode 100644
index 0000000000..7f0105049c
--- /dev/null
+++ b/board/kontron/sl28/sl28.h
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+
+#ifndef __SL28_H
+#define __SL28_H
+
+enum boot_source {
+ BOOT_SOURCE_UNKNOWN,
+ BOOT_SOURCE_SDHC,
+ BOOT_SOURCE_MMC,
+ BOOT_SOURCE_I2C,
+ BOOT_SOURCE_SPI,
+};
+
+enum boot_source sl28_boot_source(void);
+
+#endif
diff --git a/board/kontron/sl28/spl.c b/board/kontron/sl28/spl.c
index 0e6ad5f37e..b1fefc22b2 100644
--- a/board/kontron/sl28/spl.c
+++ b/board/kontron/sl28/spl.c
@@ -5,6 +5,9 @@
#include <asm/spl.h>
#include <asm/arch-fsl-layerscape/fsl_serdes.h>
#include <asm/arch-fsl-layerscape/soc.h>
+#include <spi_flash.h>
+
+#include "sl28.h"
#define DCFG_RCWSR25 0x160
#define GPINFO_HW_VARIANT_MASK 0xff
@@ -58,7 +61,40 @@ int board_fit_config_name_match(const char *name)
void board_boot_order(u32 *spl_boot_list)
{
- spl_boot_list[0] = BOOT_DEVICE_SPI;
+ enum boot_source src = sl28_boot_source();
+
+ switch (src) {
+ case BOOT_SOURCE_SDHC:
+ spl_boot_list[0] = BOOT_DEVICE_MMC2;
+ break;
+ case BOOT_SOURCE_SPI:
+ case BOOT_SOURCE_I2C:
+ spl_boot_list[0] = BOOT_DEVICE_SPI;
+ break;
+ case BOOT_SOURCE_MMC:
+ spl_boot_list[0] = BOOT_DEVICE_MMC1;
+ break;
+ default:
+ panic("unexpected bootsource (%d)\n", src);
+ break;
+ }
+}
+
+unsigned int spl_spi_get_uboot_offs(struct spi_flash *flash)
+{
+ enum boot_source src = sl28_boot_source();
+
+ switch (src) {
+ case BOOT_SOURCE_SPI:
+ return 0x000000;
+ case BOOT_SOURCE_I2C:
+ return 0x230000;
+ default:
+ panic("unexpected bootsource (%d)\n", src);
+ break;
+ }
+}
+
}
int board_early_init_f(void)
diff --git a/configs/kontron_sl28_defconfig b/configs/kontron_sl28_defconfig
index dc8c28f8cc..7e5c1fc064 100644
--- a/configs/kontron_sl28_defconfig
+++ b/configs/kontron_sl28_defconfig
@@ -12,6 +12,7 @@ CONFIG_ENV_SECT_SIZE=0x10000
CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1028a-kontron-sl28"
CONFIG_SPL_TEXT_BASE=0x18010000
CONFIG_SYS_FSL_SDHC_CLK_DIV=1
+CONFIG_SPL_MMC=y
CONFIG_SPL_SERIAL=y
CONFIG_SPL_SIZE_LIMIT=0x20000
CONFIG_SPL_SIZE_LIMIT_PROVIDE_STACK=0x0
@@ -36,9 +37,11 @@ CONFIG_USE_BOOTARGS=y
CONFIG_BOARD_LATE_INIT=y
CONFIG_PCI_INIT_R=y
CONFIG_SPL_BOARD_INIT=y
+CONFIG_SPL_SEPARATE_BSS=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x900
CONFIG_SPL_MPC8XXX_INIT_DDR=y
CONFIG_SPL_SPI_LOAD=y
-CONFIG_SYS_SPI_U_BOOT_OFFS=0x230000
CONFIG_CMD_ASKENV=y
CONFIG_CMD_GREPENV=y
CONFIG_CMD_NVEDIT_EFI=y
--
2.30.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 08/10] board: sl28: add user friendly names for the boot sources
2022-05-30 21:02 [PATCH 00/10] board: sl28: various updates Michael Walle
` (6 preceding siblings ...)
2022-05-30 21:02 ` [PATCH 07/10] board: sl28: implement additional bootsources Michael Walle
@ 2022-05-30 21:02 ` Michael Walle
2022-05-30 21:02 ` [PATCH 09/10] board: sl28: support dynamic prompts Michael Walle
2022-05-30 21:02 ` [PATCH 10/10] board: sl28: remove COUNTER_FREQUENCY_REAL Michael Walle
9 siblings, 0 replies; 11+ messages in thread
From: Michael Walle @ 2022-05-30 21:02 UTC (permalink / raw)
To: Priyanka Jain; +Cc: u-boot, Michael Walle
During startup the SPL will print where the u-boot proper is read from.
Instead of using the default names, provide more user friendly names.
Signed-off-by: Michael Walle <michael@walle.cc>
---
board/kontron/sl28/spl.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/board/kontron/sl28/spl.c b/board/kontron/sl28/spl.c
index b1fefc22b2..ffaf517a8b 100644
--- a/board/kontron/sl28/spl.c
+++ b/board/kontron/sl28/spl.c
@@ -95,6 +95,22 @@ unsigned int spl_spi_get_uboot_offs(struct spi_flash *flash)
}
}
+const char *spl_board_loader_name(u32 boot_device)
+{
+ enum boot_source src = sl28_boot_source();
+
+ switch (src) {
+ case BOOT_SOURCE_SDHC:
+ return "SD card (Test mode)";
+ case BOOT_SOURCE_SPI:
+ return "Failsafe SPI flash";
+ case BOOT_SOURCE_I2C:
+ return "SPI flash";
+ case BOOT_SOURCE_MMC:
+ return "eMMC";
+ default:
+ return "(unknown)";
+ }
}
int board_early_init_f(void)
--
2.30.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 09/10] board: sl28: support dynamic prompts
2022-05-30 21:02 [PATCH 00/10] board: sl28: various updates Michael Walle
` (7 preceding siblings ...)
2022-05-30 21:02 ` [PATCH 08/10] board: sl28: add user friendly names for the boot sources Michael Walle
@ 2022-05-30 21:02 ` Michael Walle
2022-05-30 21:02 ` [PATCH 10/10] board: sl28: remove COUNTER_FREQUENCY_REAL Michael Walle
9 siblings, 0 replies; 11+ messages in thread
From: Michael Walle @ 2022-05-30 21:02 UTC (permalink / raw)
To: Priyanka Jain; +Cc: u-boot, Michael Walle
Depending on the boot source, set different CLI prompts. This will help
the user to figure out in which mode the bootloader was started. There
are two special modes: failsafe and SDHC boot.
Signed-off-by: Michael Walle <michael@walle.cc>
---
board/kontron/sl28/sl28.c | 20 ++++++++++++++++++++
configs/kontron_sl28_defconfig | 1 +
2 files changed, 21 insertions(+)
diff --git a/board/kontron/sl28/sl28.c b/board/kontron/sl28/sl28.c
index 54719cc01c..0576b3eae4 100644
--- a/board/kontron/sl28/sl28.c
+++ b/board/kontron/sl28/sl28.c
@@ -126,8 +126,28 @@ static void stop_recovery_watchdog(void)
wdt_stop(dev);
}
+static void sl28_set_prompt(void)
+{
+ enum boot_source src = sl28_boot_source();
+
+ switch (src) {
+ case BOOT_SOURCE_SPI:
+ env_set("PS1", "[FAILSAFE] => ");
+ break;
+ case BOOT_SOURCE_SDHC:
+ env_set("PS1", "[SDHC] => ");
+ break;
+ default:
+ env_set("PS1", NULL);
+ break;
+ }
+}
+
int fsl_board_late_init(void)
{
+ if (IS_ENABLED(CONFIG_CMDLINE_PS_SUPPORT))
+ sl28_set_prompt();
+
/*
* Usually, the after a board reset, the watchdog is enabled by
* default. This is to supervise the bootloader boot-up. Therefore,
diff --git a/configs/kontron_sl28_defconfig b/configs/kontron_sl28_defconfig
index 7e5c1fc064..3d142d5470 100644
--- a/configs/kontron_sl28_defconfig
+++ b/configs/kontron_sl28_defconfig
@@ -42,6 +42,7 @@ CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x900
CONFIG_SPL_MPC8XXX_INIT_DDR=y
CONFIG_SPL_SPI_LOAD=y
+CONFIG_CMDLINE_PS_SUPPORT=y
CONFIG_CMD_ASKENV=y
CONFIG_CMD_GREPENV=y
CONFIG_CMD_NVEDIT_EFI=y
--
2.30.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 10/10] board: sl28: remove COUNTER_FREQUENCY_REAL
2022-05-30 21:02 [PATCH 00/10] board: sl28: various updates Michael Walle
` (8 preceding siblings ...)
2022-05-30 21:02 ` [PATCH 09/10] board: sl28: support dynamic prompts Michael Walle
@ 2022-05-30 21:02 ` Michael Walle
9 siblings, 0 replies; 11+ messages in thread
From: Michael Walle @ 2022-05-30 21:02 UTC (permalink / raw)
To: Priyanka Jain; +Cc: u-boot, Michael Walle
The frequency of the system counter is static which is given by the
COUNTER_FREQUENCY option. Remove COUNTER_FREQUENCY_REAL.
Signed-off-by: Michael Walle <michael@walle.cc>
---
include/configs/kontron_sl28.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/include/configs/kontron_sl28.h b/include/configs/kontron_sl28.h
index 0cc543716a..b7d2edb75b 100644
--- a/include/configs/kontron_sl28.h
+++ b/include/configs/kontron_sl28.h
@@ -39,8 +39,6 @@
/* serial port */
#define CONFIG_SYS_NS16550_CLK (get_bus_freq(0) / 2)
-#define COUNTER_FREQUENCY_REAL (get_board_sys_clk() / 4)
-
/* SPL */
#define CONFIG_SPL_BSS_START_ADDR 0x80100000
#define CONFIG_SPL_BSS_MAX_SIZE 0x00100000
--
2.30.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
end of thread, other threads:[~2022-05-30 21:04 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-30 21:02 [PATCH 00/10] board: sl28: various updates Michael Walle
2022-05-30 21:02 ` [PATCH 01/10] armv8: layerscape: add missing RCW source defines Michael Walle
2022-05-30 21:02 ` [PATCH 02/10] armv8: layerscape: spl: mark OCRAM as non-secure Michael Walle
2022-05-30 21:02 ` [PATCH 03/10] board: sl28: set CPO value Michael Walle
2022-05-30 21:02 ` [PATCH 04/10] board: sl28: remove unneeded ddr config parameter Michael Walle
2022-05-30 21:02 ` [PATCH 05/10] board: sl28: support 8 GiB memory Michael Walle
2022-05-30 21:02 ` [PATCH 06/10] board: sl28: rename include guard macro Michael Walle
2022-05-30 21:02 ` [PATCH 07/10] board: sl28: implement additional bootsources Michael Walle
2022-05-30 21:02 ` [PATCH 08/10] board: sl28: add user friendly names for the boot sources Michael Walle
2022-05-30 21:02 ` [PATCH 09/10] board: sl28: support dynamic prompts Michael Walle
2022-05-30 21:02 ` [PATCH 10/10] board: sl28: remove COUNTER_FREQUENCY_REAL Michael Walle
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.