mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-28 14:03:44 +00:00
efe19295a5
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>
172 lines
4.1 KiB
Text
172 lines
4.1 KiB
Text
# 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
|