# 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
	default 0x100000 if PPC
	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
	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 0x3000000
	depends on !ARCH_SOCFPGA
	help
	  Start address of the CRAMFS containing the Linux kernel.

config KM_KERNEL_ADDR
	hex "Kernel Load Address"
	default 0x2000000
	help
	  Address where to load Linux kernel in RAM.

config KM_FDT_ADDR
	hex "FDT Load Address"
	default 0x2FC0000
	help
	  Address where to load flattened device tree in RAM.

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
	help
	  Use the Ethernet initialization implemented in common code, which
	  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
	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.

source "board/keymile/km83xx/Kconfig"
source "board/keymile/kmp204x/Kconfig"
source "board/keymile/km_arm/Kconfig"

endmenu

endif
