u-boot/board/keymile/Kconfig
Aleksandar Gerasimovski efe19295a5 km: common: implement field fail-safe u-boot update
This patch provides possibility for field fail-safe u-boot updates.
The implementation can be used on all pg-wcom boards that are booting from
parallel NOR flash.

When used in a board design, provided check_for_uboot_update function will
start new u-boot at defined location if updateduboot envvar is set to yes.
With this implementation it is expected that factory programmed u-boot
will always stay as it is, and optionally new u-boot can be safely
programmed by embedded software when the unit is rolled out on the field.

It is expected check_for_uboot_update to be called early in execution
before relocation (*_f) once SoC is basically initialized and environment
can be read, with this possibilities to not be able to fix a u-boot bug by
a u-boot update are reduced to minimum.

Signed-off-by: Aleksandar Gerasimovski <aleksandar.gerasimovski@hitachienergy.com>
Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
2022-02-01 15:08:07 +05:30

173 lines
4.1 KiB
Plaintext

# SPDX-License-Identifier: GPL-2.0+
#
# Copyright (C) 2019, Pascal Linder <pascal.linder@edu.hefr.ch>
config VENDOR_KM
bool
help
Selected by any KM board to have additional configurations.
if VENDOR_KM
menu "KM Board Setup"
config KM_PNVRAM
hex "Pseudo RAM"
default 0x80000
depends on !ARCH_SOCFPGA
help
Start address of the pseudo non-volatile RAM for application.
config KM_PHRAM
hex "Physical RAM"
default 0x17F000 if ARM && !ARCH_LS1021A
default 0x100000 if PPC || ARCH_LS1021A
depends on !ARCH_SOCFPGA
help
Start address of the physical RAM, which is the mounted /var folder.
config KM_RESERVED_PRAM
hex "Reserved RAM"
default 0x801000 if ARCH_KIRKWOOD
default 0x0 if MPC83xx
default 0x1000 if MPC85xx || ARCH_LS1021A
depends on !ARCH_SOCFPGA
help
Reserved physical RAM area at the end of memory for special purposes.
config KM_CRAMFS_ADDR
hex "CRAMFS Address"
default 0x83000000 if ARCH_LS1021A
default 0x3000000
depends on !ARCH_SOCFPGA
help
Start address of the CRAMFS containing the Linux kernel.
config KM_KERNEL_ADDR
hex "Kernel Load Address"
default 0x82000000 if ARCH_LS1021A
default 0x2000000
help
Address where to load Linux kernel in RAM.
config KM_FDT_ADDR
hex "FDT Load Address"
default 0x82FC0000 if ARCH_LS1021A
default 0x2FC0000
help
Address where to load flattened device tree in RAM.
config SYS_PAX_BASE
hex "PAX IFC Base Address"
default 0x78000000
depends on ARCH_LS1021A
help
IFC Base Address for PAXx FPGA.
config SYS_CLIPS_BASE
hex "CLIPS IFC Base Address"
default 0x78000000
depends on ARCH_LS1021A
help
IFC Base Address for CLIPS FPGA.
config KM_CONSOLE_TTY
string "KM Console"
default "ttyS0"
help
TTY console to use on board.
config KM_DEF_NETDEV
string "Default Netdevice"
default "eth0"
help
Default netdevice for debug interface
config KM_COMMON_ETH_INIT
bool "Common Ethernet Initialization"
default y if ARCH_KIRKWOOD || MPC83xx
default n if MPC85xx || ARCH_SOCFPGA || ARCH_LS1021A
help
Use the Ethernet initialization implemented in common code that
detects if a Piggy board is present.
config PIGGY_MAC_ADDRESS_OFFSET
int "Piggy Address Offset"
default 0
help
MAC address offset for the Piggy board.
config KM_MVEXTSW_ADDR
hex "Marvell Switch Address"
depends on MV88E6352_SWITCH
default 0x10
help
Address of external Marvell switch.
config KM_IVM_BUS
int "IVM I2C Bus"
default 0 if ARCH_SOCFPGA
default 1 if ARCH_KIRKWOOD || MPC85xx || ARCH_LS1021A
default 2 if MPC83xx
help
Identifier number of I2C bus, where the inventory EEPROM is connected to.
config SYS_IVM_EEPROM_ADR
hex "IVM I2C Address"
default 0x50
help
I2C address of the EEPROM containing the inventory.
config SYS_IVM_EEPROM_MAX_LEN
hex "IVM Length"
default 0x400
help
Maximum length of inventory in EEPROM.
config SYS_IVM_EEPROM_PAGE_LEN
hex "IVM Page Size"
default 0x100
help
Page size of inventory in EEPROM.
config PG_WCOM_UBOOT_UPDATE_SUPPORTED
bool "Enable U-boot Field Fail-Safe Update Functionality"
default n
help
Indicates that field fail-safe u-boot update is supported.
This functionality works only for designs that are booting
from parallel NOR flash.
config PG_WCOM_UBOOT_BOOTPACKAGE
bool "U-boot Is Part Of Factory Boot-Package Image"
default n
help
Indicates that u-boot will be a part of the factory programmed
boot-package image.
Has to be set for original u-boot programmed at factory.
config PG_WCOM_UBOOT_UPDATE_TEXT_BASE
hex "Text Base For U-boot Programmed Outside Factory"
default 0xFFFFFFFF
help
Text base of an updated u-boot that is not factory programmed but
later when the unit is rolled out on the field.
Has to be set for original u-boot programmed at factory.
config PG_WCOM_UBOOT_UPDATE
bool "U-boot Is Part Of Factory Boot-Package Image"
default n
help
Indicates that u-boot will be a part of the embedded software and
programmed at field.
Has to be set for updated u-boot version programmed at field.
source "board/keymile/km83xx/Kconfig"
source "board/keymile/kmcent2/Kconfig"
source "board/keymile/km_arm/Kconfig"
source "board/keymile/pg-wcom-ls102xa/Kconfig"
endmenu
endif