diff options
author | Robert Schwebel <r.schwebel@pengutronix.de> | 2016-07-26 22:16:06 +0200 |
---|---|---|
committer | Robert Schwebel <r.schwebel@pengutronix.de> | 2016-07-26 22:16:06 +0200 |
commit | 49292bd74f73a260927b7f3f42548e4ee4407237 (patch) | |
tree | 3e89c3b02b9d8d9e1114f8f860afb9a1109cc373 /configs/platform-v7a | |
parent | dd2c39349c6e0358cb5dc463cd02e63b0902bcf2 (diff) | |
download | DistroKit-49292bd74f73a260927b7f3f42548e4ee4407237.tar.gz DistroKit-49292bd74f73a260927b7f3f42548e4ee4407237.tar.xz |
platform-beaglebone: rename to platform-v7a
In the meantime, in addition to beaglebone, this platform supports the
other ARMv7 based boards (rpi2, vexpress), so rename it.
Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
Diffstat (limited to 'configs/platform-v7a')
50 files changed, 7661 insertions, 0 deletions
diff --git a/configs/platform-v7a/barebox-defaultenv/boot/bootchoser b/configs/platform-v7a/barebox-defaultenv/boot/bootchoser new file mode 100644 index 0000000..3b2e19a --- /dev/null +++ b/configs/platform-v7a/barebox-defaultenv/boot/bootchoser @@ -0,0 +1,3 @@ +#!/bin/sh + +bootchoser -d diff --git a/configs/platform-v7a/barebox-defaultenv/init/bootsource b/configs/platform-v7a/barebox-defaultenv/init/bootsource new file mode 100644 index 0000000..4de7163 --- /dev/null +++ b/configs/platform-v7a/barebox-defaultenv/init/bootsource @@ -0,0 +1,13 @@ +#!/bin/sh + +if [ -n "$nv.boot.default" ]; then + exit +fi + +if [ $bootsource = mmc ]; then + global.boot.default="bootchooser net" +elif [ $bootsource = net ]; then + global.boot.default="net bootchooser" +else + global.boot.default="disk0.1 net" +fi diff --git a/configs/platform-v7a/barebox-defaultenv/nv/bootstate.system0.priority b/configs/platform-v7a/barebox-defaultenv/nv/bootstate.system0.priority new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/configs/platform-v7a/barebox-defaultenv/nv/bootstate.system0.priority @@ -0,0 +1 @@ +10 diff --git a/configs/platform-v7a/barebox-defaultenv/nv/bootstate.system1.priority b/configs/platform-v7a/barebox-defaultenv/nv/bootstate.system1.priority new file mode 100644 index 0000000..209e3ef --- /dev/null +++ b/configs/platform-v7a/barebox-defaultenv/nv/bootstate.system1.priority @@ -0,0 +1 @@ +20 diff --git a/configs/platform-v7a/barebox-defaultenv/nv/linux.bootargs.console b/configs/platform-v7a/barebox-defaultenv/nv/linux.bootargs.console new file mode 100644 index 0000000..705752c --- /dev/null +++ b/configs/platform-v7a/barebox-defaultenv/nv/linux.bootargs.console @@ -0,0 +1 @@ +loglevel=5 systemd.log_level=warning systemd.show_status=auto diff --git a/configs/platform-v7a/barebox-rpi2.config.2016.05.0 b/configs/platform-v7a/barebox-rpi2.config.2016.05.0 new file mode 100644 index 0000000..b780f85 --- /dev/null +++ b/configs/platform-v7a/barebox-rpi2.config.2016.05.0 @@ -0,0 +1,523 @@ +# +# Automatically generated file; DO NOT EDIT. +# Barebox/arm 2016.05.0 Configuration +# +CONFIG_ARM=y +CONFIG_ARM_LINUX=y +CONFIG_ARCH_BCM283X=y + +# +# System Type +# +CONFIG_BUILTIN_DTB=y +CONFIG_BUILTIN_DTB_NAME="bcm2836-rpi-2-b" +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCM2835 is not set +CONFIG_ARCH_BCM2836=y +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_DIGIC is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_MXS is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_NOMADIK is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_ROCKCHIP is not set +# CONFIG_ARCH_SOCFPGA is not set +# CONFIG_ARCH_S3C24xx is not set +# CONFIG_ARCH_S5PCxx is not set +# CONFIG_ARCH_S3C64xx is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_UEMD is not set +# CONFIG_ARCH_ZYNQ is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_V7=y +CONFIG_CPU_32v7=y + +# +# processor features +# +# CONFIG_BOOT_ENDIANNESS_SWITCH is not set +CONFIG_ARCH_TEXT_BASE=0x04000000 +CONFIG_MACH_RPI_COMMON=y +CONFIG_MACH_RPI2=y +CONFIG_BAREBOX_MAX_IMAGE_SIZE=0xffffffff +CONFIG_AEABI=y +# CONFIG_THUMB2_BAREBOX is not set +# CONFIG_ARM_BOARD_APPEND_ATAG is not set + +# +# ARM specific settings +# +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_ARM_EXCEPTIONS=y +CONFIG_ARM_UNWIND=y +# CONFIG_ARM_SEMIHOSTING is not set +CONFIG_DEFCONFIG_LIST="$ARCH_DEFCONFIG" +CONFIG_GREGORIAN_CALENDER=y +CONFIG_HAS_KALLSYMS=y +CONFIG_HAS_MODULES=y +CONFIG_ENV_HANDLING=y +CONFIG_HAS_CACHE=y +CONFIG_HAS_DMA=y +CONFIG_GENERIC_GPIO=y +CONFIG_BOOTM=y +CONFIG_BLOCK=y +CONFIG_BLOCK_WRITE=y +CONFIG_FILETYPE=y +CONFIG_BINFMT=y +CONFIG_UIMAGE=y +CONFIG_GLOBALVAR=y +CONFIG_STDDEV=y +CONFIG_MENUTREE=y + +# +# General Settings +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_BANNER=y +CONFIG_MEMINFO=y +CONFIG_ENVIRONMENT_VARIABLES=y + +# +# memory layout +# +CONFIG_HAVE_PBL_IMAGE=y +CONFIG_HAVE_IMAGE_COMPRESSION=y +# CONFIG_PBL_IMAGE is not set +CONFIG_MMU=y +CONFIG_MMU_EARLY=y +CONFIG_HAVE_CONFIGURABLE_TEXT_BASE=y +CONFIG_TEXT_BASE=0x04000000 +CONFIG_BAREBOX_MAX_BARE_INIT_SIZE=0xffffffff +CONFIG_STACK_SIZE=0x8000 +CONFIG_MALLOC_SIZE=0x400000 +# CONFIG_EXPERIMENTAL is not set +# CONFIG_MALLOC_DLMALLOC is not set +CONFIG_MALLOC_TLSF=y +CONFIG_KALLSYMS=y +# CONFIG_RELOCATABLE is not set +# CONFIG_PANIC_HANG is not set +CONFIG_PROMPT="R-Pi> " +CONFIG_BAUDRATE=115200 +CONFIG_CBSIZE=1024 +CONFIG_SHELL_HUSH=y +# CONFIG_SHELL_SIMPLE is not set +# CONFIG_SHELL_NONE is not set +CONFIG_GLOB=y +CONFIG_GLOB_SORT=y +CONFIG_PROMPT_HUSH_PS2="> " +CONFIG_HUSH_FANCY_PROMPT=y +CONFIG_CMDLINE_EDITING=y +CONFIG_AUTO_COMPLETE=y +CONFIG_MENU=y +CONFIG_PASSWORD=y +CONFIG_PASSWORD_DEFAULT="" +CONFIG_PASSWD_SUM_MD5=y +# CONFIG_PASSWD_SUM_SHA1 is not set +# CONFIG_PASSWD_SUM_SHA256 is not set +# CONFIG_PASSWD_SUM_SHA512 is not set +# CONFIG_PASSWD_CRYPTO_PBKDF2 is not set +CONFIG_DYNAMIC_CRC_TABLE=y +CONFIG_ERRNO_MESSAGES=y +CONFIG_TIMESTAMP=y +CONFIG_BLSPEC=y +# CONFIG_IMD is not set +# CONFIG_KERNEL_INSTALL_TARGET is not set +CONFIG_CONSOLE_FULL=y +# CONFIG_CONSOLE_SIMPLE is not set +# CONFIG_CONSOLE_NONE is not set +CONFIG_CONSOLE_ACTIVATE_FIRST=y +# CONFIG_CONSOLE_ACTIVATE_ALL is not set +# CONFIG_CONSOLE_ACTIVATE_NONE is not set +# CONFIG_CONSOLE_RATP is not set +CONFIG_PARTITION=y +CONFIG_PARTITION_DISK=y +CONFIG_PARTITION_DISK_DOS=y +# CONFIG_PARTITION_DISK_EFI is not set +CONFIG_DEFAULT_ENVIRONMENT=y +CONFIG_DEFAULT_COMPRESSION_NONE=y +CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y +CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW_MENU=y +# CONFIG_DEFAULT_ENVIRONMENT_GENERIC is not set +CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/raspberry-pi/env ${PTXDIST_PLATFORMCONFIGDIR}/barebox-defaultenv" +CONFIG_BAREBOXENV_TARGET=y +# CONFIG_BAREBOXCRC32_TARGET is not set +CONFIG_POLLER=y +# CONFIG_RESET_SOURCE is not set + +# +# Debugging +# +CONFIG_COMPILE_LOGLEVEL=6 +CONFIG_DEFAULT_LOGLEVEL=7 +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_LL is not set +# CONFIG_DEBUG_INITCALLS is not set +CONFIG_HAS_DEBUG_LL=y +CONFIG_COMMAND_SUPPORT=y +# CONFIG_HAS_POWEROFF is not set +CONFIG_COMPILE_HASH=y +CONFIG_COMPILE_MEMORY=y + +# +# Commands +# + +# +# Information +# +CONFIG_CMD_ARM_CPUINFO=y +CONFIG_CMD_DEVINFO=y +# CONFIG_CMD_DMESG is not set +CONFIG_CMD_DRVINFO=y +CONFIG_CMD_HELP=y +CONFIG_LONGHELP=y +CONFIG_CMD_IOMEM=y +# CONFIG_CMD_IMD is not set +CONFIG_CMD_MEMINFO=y +# CONFIG_CMD_ARM_MMUINFO is not set +# CONFIG_CMD_REGULATOR is not set +CONFIG_CMD_VERSION=y +# CONFIG_CMD_MMC_EXTCSD is not set + +# +# Boot +# +CONFIG_FLEXIBLE_BOOTARGS=y +CONFIG_CMD_BOOT=y +CONFIG_CMD_BOOTM=y +CONFIG_CMD_BOOTM_SHOW_TYPE=y +CONFIG_CMD_BOOTM_VERBOSE=y +CONFIG_CMD_BOOTM_INITRD=y +CONFIG_CMD_BOOTM_OFTREE=y +# CONFIG_CMD_BOOTM_OFTREE_UIMAGE is not set +# CONFIG_CMD_BOOTM_AIMAGE is not set +# CONFIG_CMD_BOOTM_FITIMAGE is not set +CONFIG_CMD_BOOTU=y +# CONFIG_CMD_BOOTZ is not set +CONFIG_CMD_GO=y +CONFIG_CMD_LOADB=y +# CONFIG_CMD_LOADS is not set +CONFIG_CMD_LOADY=y +CONFIG_CMD_RESET=y +CONFIG_CMD_UIMAGE=y + +# +# Partition +# +CONFIG_CMD_PARTITION=y +CONFIG_CMD_AUTOMOUNT=y +CONFIG_CMD_MOUNT=y +CONFIG_CMD_UMOUNT=y + +# +# Environment +# +CONFIG_CMD_NV=y +CONFIG_CMD_EXPORT=y +CONFIG_CMD_DEFAULTENV=y +CONFIG_CMD_GLOBAL=y +# CONFIG_CMD_LOADENV is not set +CONFIG_CMD_PRINTENV=y +CONFIG_CMD_MAGICVAR=y +CONFIG_CMD_MAGICVAR_HELP=y +CONFIG_CMD_SAVEENV=y + +# +# File +# +CONFIG_CMD_BASENAME=y +CONFIG_CMD_CAT=y +CONFIG_CMD_CD=y +CONFIG_CMD_CP=y +# CONFIG_CMD_CMP is not set +CONFIG_CMD_DIGEST=y +CONFIG_CMD_DIRNAME=y +CONFIG_CMD_FILETYPE=y +CONFIG_CMD_LN=y +CONFIG_CMD_LS=y +CONFIG_CMD_MD5SUM=y +CONFIG_CMD_MKDIR=y +CONFIG_CMD_PWD=y +CONFIG_CMD_READLINK=y +CONFIG_CMD_RM=y +CONFIG_CMD_RMDIR=y +# CONFIG_CMD_SHA1SUM is not set +# CONFIG_CMD_SHA224SUM is not set +# CONFIG_CMD_SHA256SUM is not set +# CONFIG_CMD_SHA384SUM is not set +# CONFIG_CMD_SHA512SUM is not set +CONFIG_CMD_UNCOMPRESS=y + +# +# Shell scripting +# +CONFIG_CMD_FALSE=y +CONFIG_CMD_GETOPT=y +CONFIG_CMD_LET=y +CONFIG_CMD_MSLEEP=y +# CONFIG_CMD_READF is not set +CONFIG_CMD_SLEEP=y +CONFIG_CMD_TEST=y +CONFIG_CMD_TRUE=y + +# +# Console and Framebuffer interaction +# +CONFIG_CMD_CLEAR=y +CONFIG_CMD_ECHO=y +CONFIG_CMD_ECHO_E=y +CONFIG_CMD_EDIT=y +CONFIG_CMD_LOGIN=y +CONFIG_CMD_MENU=y +CONFIG_CMD_MENU_MANAGEMENT=y +CONFIG_CMD_MENUTREE=y +CONFIG_CMD_PASSWD=y +CONFIG_PASSWD_MODE_HIDE=y +# CONFIG_PASSWD_MODE_STAR is not set +# CONFIG_PASSWD_MODE_CLEAR is not set +CONFIG_CMD_READLINE=y +CONFIG_CMD_TIMEOUT=y + +# +# Memory +# +CONFIG_CMD_CRC=y +CONFIG_CMD_CRC_CMP=y +CONFIG_CMD_MD=y +CONFIG_CMD_MEMCMP=y +CONFIG_CMD_MEMCPY=y +CONFIG_CMD_MEMSET=y +# CONFIG_CMD_MEMTEST is not set +CONFIG_CMD_MM=y +CONFIG_CMD_MW=y + +# +# Hardware manipulation +# +CONFIG_CMD_CLK=y +CONFIG_CMD_DETECT=y +# CONFIG_CMD_FLASH is not set +CONFIG_CMD_GPIO=y +# CONFIG_CMD_LED is not set +# CONFIG_CMD_SPI is not set +# CONFIG_CMD_LED_TRIGGER is not set + +# +# Miscellaneous +# +# CONFIG_CMD_2048 is not set +# CONFIG_CMD_BAREBOX_UPDATE is not set +# CONFIG_CMD_FIRMWARELOAD is not set +CONFIG_CMD_OF_DUMP=y +CONFIG_CMD_OF_NODE=y +CONFIG_CMD_OF_PROPERTY=y +# CONFIG_CMD_OF_DISPLAY_TIMINGS is not set +# CONFIG_CMD_OF_FIXUP_STATUS is not set +CONFIG_CMD_OFTREE=y +CONFIG_CMD_TIME=y +# CONFIG_CMD_DHRYSTONE is not set +# CONFIG_CMD_SPD_DECODE is not set +# CONFIG_NET is not set + +# +# Drivers +# +CONFIG_OFTREE=y +CONFIG_OFTREE_MEM_GENERIC=y +CONFIG_DTC=y +CONFIG_OFDEVICE=y +CONFIG_OF_GPIO=y +# CONFIG_OF_BAREBOX_DRIVERS is not set +CONFIG_ARM_AMBA=y + +# +# serial drivers +# +# CONFIG_DRIVER_SERIAL_ARM_DCC is not set +CONFIG_SERIAL_AMBA_PL011=y +# CONFIG_DRIVER_SERIAL_NS16550 is not set +# CONFIG_DRIVER_SERIAL_CADENCE is not set + +# +# SPI drivers +# +CONFIG_SPI=y +# CONFIG_DRIVER_SPI_GPIO is not set +# CONFIG_I2C is not set +# CONFIG_MTD is not set +CONFIG_DISK=y +CONFIG_DISK_WRITE=y + +# +# drive types +# +# CONFIG_DISK_ATA is not set +# CONFIG_DISK_AHCI is not set + +# +# interface types +# +# CONFIG_DISK_INTF_PLATFORM_IDE is not set +# CONFIG_USB_HOST is not set +# CONFIG_USB_GADGET is not set +# CONFIG_USB_MUSB is not set +# CONFIG_VIDEO is not set +CONFIG_MCI=y + +# +# --- Feature list --- +# +CONFIG_MCI_STARTUP=y +CONFIG_MCI_INFO=y +CONFIG_MCI_WRITE=y +CONFIG_MCI_MMC_BOOT_PARTITIONS=y + +# +# --- MCI host drivers --- +# +# CONFIG_MCI_DW is not set +CONFIG_MCI_BCM283X=y +# CONFIG_MCI_MMCI is not set +# CONFIG_MCI_SPI is not set +CONFIG_HAVE_CLK=y +CONFIG_CLKDEV_LOOKUP=y +CONFIG_COMMON_CLK=y +CONFIG_CLOCKSOURCE_BCM283X=y +CONFIG_CLOCKSOURCE_DUMMY_RATE=1000 + +# +# MFD +# +# CONFIG_MFD_MC13XXX is not set +# CONFIG_MFD_SYSCON is not set + +# +# Misc devices +# +# CONFIG_JTAG is not set +# CONFIG_SRAM is not set +CONFIG_LED=y +CONFIG_LED_GPIO=y +# CONFIG_LED_GPIO_OF is not set +# CONFIG_LED_GPIO_RGB is not set +# CONFIG_LED_GPIO_BICOLOR is not set +CONFIG_LED_TRIGGERS=y + +# +# EEPROM support +# +# CONFIG_EEPROM_AT25 is not set + +# +# Input device support +# +# CONFIG_KEYBOARD_GPIO is not set +# CONFIG_WATCHDOG is not set +# CONFIG_PWM is not set + +# +# DMA support +# +CONFIG_GPIOLIB=y + +# +# GPIO +# +# CONFIG_GPIO_74164 is not set +CONFIG_GPIO_BCM283X=y +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_IMX is not set +# CONFIG_GPIO_MXS is not set +# CONFIG_GPIO_OMAP is not set +# CONFIG_GPIO_PL061 is not set +# CONFIG_GPIO_DESIGNWARE is not set +# CONFIG_W1 is not set +# CONFIG_PINCTRL is not set + +# +# Bus devices +# +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_FIXED is not set +CONFIG_REGULATOR_BCM283X=y +# CONFIG_RESET_CONTROLLER is not set +# CONFIG_RTC_CLASS is not set + +# +# Firmware Drivers +# +# CONFIG_FIRMWARE_ALTERA_SERIAL is not set + +# +# PHY Subsystem +# +# CONFIG_GENERIC_PHY is not set +# CONFIG_CRYPTO_HW is not set + +# +# Filesystem support +# +CONFIG_FS=y +CONFIG_FS_AUTOMOUNT=y +# CONFIG_FS_CRAMFS is not set +CONFIG_FS_EXT4=y +CONFIG_FS_RAMFS=y +CONFIG_FS_DEVFS=y +CONFIG_FS_FAT=y +CONFIG_FS_FAT_WRITE=y +CONFIG_FS_FAT_LFN=y +# CONFIG_FS_BPKFS is not set +# CONFIG_FS_UIMAGEFS is not set +# CONFIG_FS_PSTORE is not set +# CONFIG_FS_SQUASHFS is not set + +# +# Library routines +# +CONFIG_PARAMETER=y +CONFIG_UNCOMPRESS=y +# CONFIG_ZLIB is not set +# CONFIG_BZLIB is not set +# CONFIG_LZ4_DECOMPRESS is not set +# CONFIG_XZ_DECOMPRESS is not set +# CONFIG_GENERIC_FIND_NEXT_BIT is not set +CONFIG_PROCESS_ESCAPE_SEQUENCE=y +# CONFIG_LZO_DECOMPRESS is not set +CONFIG_QSORT=y +CONFIG_XYMODEM=y + +# +# Library gui routines +# +# CONFIG_BAREBOX_LOGO is not set + +# +# Crypto support +# +CONFIG_CRC32=y +CONFIG_CRC16=y +CONFIG_DIGEST=y +CONFIG_MD5=y +CONFIG_DIGEST_MD5_GENERIC=y +# CONFIG_DIGEST_SHA1_GENERIC is not set +# CONFIG_DIGEST_SHA224_GENERIC is not set +# CONFIG_DIGEST_SHA256_GENERIC is not set +# CONFIG_DIGEST_SHA384_GENERIC is not set +# CONFIG_DIGEST_SHA512_GENERIC is not set +# CONFIG_DIGEST_HMAC_GENERIC is not set +# CONFIG_DIGEST_SHA1_ARM is not set +# CONFIG_DIGEST_SHA256_ARM is not set +# CONFIG_CRYPTO_KEYSTORE is not set diff --git a/configs/platform-v7a/barebox.config b/configs/platform-v7a/barebox.config new file mode 100644 index 0000000..bd4d153 --- /dev/null +++ b/configs/platform-v7a/barebox.config @@ -0,0 +1,691 @@ +# +# Automatically generated file; DO NOT EDIT. +# Barebox/arm 2016.05.0 Configuration +# +CONFIG_ARM=y +CONFIG_ARM_LINUX=y +CONFIG_ARM_USE_COMPRESSED_DTB=y + +# +# System Type +# +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCM2835 is not set +# CONFIG_ARCH_BCM2836 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_DIGIC is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_MXS is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_NOMADIK is not set +CONFIG_ARCH_OMAP=y +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_ROCKCHIP is not set +# CONFIG_ARCH_SOCFPGA is not set +# CONFIG_ARCH_S3C24xx is not set +# CONFIG_ARCH_S5PCxx is not set +# CONFIG_ARCH_S3C64xx is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_UEMD is not set +# CONFIG_ARCH_ZYNQ is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_V7=y +CONFIG_CPU_32v7=y + +# +# processor features +# +# CONFIG_BOOT_ENDIANNESS_SWITCH is not set +CONFIG_BAREBOX_MAX_IMAGE_SIZE=0xffffffff + +# +# OMAP Features +# +CONFIG_ARCH_AM33XX=y +CONFIG_OMAP_CLOCK_SOURCE_DMTIMER=y +CONFIG_OMAP_GPMC=y +# CONFIG_OMAP_BUILD_IFT is not set +# CONFIG_OMAP_BUILD_SPI is not set +CONFIG_BAREBOX_UPDATE_AM33XX_SPI_NOR_MLO=y +CONFIG_BAREBOX_UPDATE_AM33XX_NAND=y +CONFIG_BAREBOX_UPDATE_AM33XX_EMMC=y +CONFIG_AM33XX_NET_BOOT=y +CONFIG_OMAP_MULTI_BOARDS=y +CONFIG_MACH_AFI_GF=y +# CONFIG_MACH_BEAGLE is not set +CONFIG_MACH_BEAGLEBONE=y +CONFIG_MACH_PHYTEC_SOM_AM335X=y +CONFIG_ARM_ASM_UNIFIED=y +CONFIG_AEABI=y +CONFIG_THUMB2_BAREBOX=y +CONFIG_ARM_BOARD_APPEND_ATAG=y + +# +# ARM specific settings +# +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_ARM_EXCEPTIONS=y +CONFIG_ARM_UNWIND=y +# CONFIG_ARM_SEMIHOSTING is not set +CONFIG_DEFCONFIG_LIST="$ARCH_DEFCONFIG" +CONFIG_HAS_KALLSYMS=y +CONFIG_HAS_MODULES=y +CONFIG_ENV_HANDLING=y +CONFIG_HAS_CACHE=y +CONFIG_HAS_DMA=y +CONFIG_GENERIC_GPIO=y +CONFIG_BOOTM=y +CONFIG_BLOCK=y +CONFIG_BLOCK_WRITE=y +CONFIG_FILETYPE=y +CONFIG_BINFMT=y +CONFIG_UIMAGE=y +CONFIG_GLOBALVAR=y +CONFIG_STDDEV=y +CONFIG_BAREBOX_UPDATE=y +CONFIG_MENUTREE=y +CONFIG_FILE_LIST=y + +# +# General Settings +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_BANNER=y +CONFIG_MEMINFO=y +CONFIG_ENVIRONMENT_VARIABLES=y + +# +# memory layout +# +CONFIG_HAVE_PBL_IMAGE=y +CONFIG_HAVE_PBL_MULTI_IMAGES=y +CONFIG_HAVE_IMAGE_COMPRESSION=y +CONFIG_PBL_IMAGE=y +CONFIG_PBL_MULTI_IMAGES=y +CONFIG_PBL_RELOCATABLE=y +CONFIG_IMAGE_COMPRESSION=y +# CONFIG_IMAGE_COMPRESSION_LZ4 is not set +CONFIG_IMAGE_COMPRESSION_LZO=y +# CONFIG_IMAGE_COMPRESSION_GZIP is not set +# CONFIG_IMAGE_COMPRESSION_XZKERN is not set +# CONFIG_IMAGE_COMPRESSION_NONE is not set +CONFIG_MMU=y +CONFIG_MMU_EARLY=y +CONFIG_HAVE_CONFIGURABLE_TEXT_BASE=y +CONFIG_TEXT_BASE=0x0 +CONFIG_BAREBOX_MAX_PBL_SIZE=0xffffffff +CONFIG_BAREBOX_MAX_BARE_INIT_SIZE=0xffffffff +CONFIG_BAREBOX_MAX_PBLX_SIZE=0xffffffff +CONFIG_STACK_SIZE=0x8000 +CONFIG_MALLOC_SIZE=0x0 +# CONFIG_EXPERIMENTAL is not set +# CONFIG_MALLOC_DLMALLOC is not set +CONFIG_MALLOC_TLSF=y +CONFIG_KALLSYMS=y +CONFIG_RELOCATABLE=y +# CONFIG_PANIC_HANG is not set +CONFIG_PROMPT="barebox> " +CONFIG_BAUDRATE=115200 +CONFIG_CBSIZE=1024 +CONFIG_SHELL_HUSH=y +# CONFIG_SHELL_SIMPLE is not set +# CONFIG_SHELL_NONE is not set +CONFIG_GLOB=y +CONFIG_GLOB_SORT=y +CONFIG_PROMPT_HUSH_PS2="> " +CONFIG_HUSH_FANCY_PROMPT=y +CONFIG_CMDLINE_EDITING=y +CONFIG_AUTO_COMPLETE=y +CONFIG_MENU=y +# CONFIG_PASSWORD is not set +CONFIG_DYNAMIC_CRC_TABLE=y +CONFIG_ERRNO_MESSAGES=y +# CONFIG_TIMESTAMP is not set +CONFIG_BLSPEC=y +# CONFIG_IMD is not set +# CONFIG_KERNEL_INSTALL_TARGET is not set +CONFIG_CONSOLE_FULL=y +# CONFIG_CONSOLE_SIMPLE is not set +# CONFIG_CONSOLE_NONE is not set +# CONFIG_CONSOLE_ACTIVATE_FIRST is not set +# CONFIG_CONSOLE_ACTIVATE_ALL is not set +CONFIG_CONSOLE_ACTIVATE_NONE=y +# CONFIG_PBL_CONSOLE is not set +# CONFIG_CONSOLE_RATP is not set +CONFIG_PARTITION=y +CONFIG_PARTITION_DISK=y +CONFIG_PARTITION_DISK_DOS=y +# CONFIG_PARTITION_DISK_EFI is not set +CONFIG_DEFAULT_ENVIRONMENT=y +CONFIG_DEFAULT_COMPRESSION_LZO=y +# CONFIG_DEFAULT_COMPRESSION_NONE is not set +CONFIG_HAVE_DEFAULT_ENVIRONMENT_NEW=y +CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y +CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW_MENU=y +CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW_DFU=y +CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/beaglebone/defaultenv-beaglebone" +CONFIG_BAREBOXENV_TARGET=y +# CONFIG_BAREBOXCRC32_TARGET is not set +CONFIG_POLLER=y +CONFIG_STATE=y +# CONFIG_STATE_CRYPTO is not set +CONFIG_BOOTSTATE=y +CONFIG_RESET_SOURCE=y + +# +# Debugging +# +CONFIG_COMPILE_LOGLEVEL=6 +CONFIG_DEFAULT_LOGLEVEL=7 +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_LL is not set +CONFIG_DEBUG_OMAP_UART_PORT=1 +# CONFIG_DEBUG_INITCALLS is not set +CONFIG_HAS_DEBUG_LL=y +CONFIG_COMMAND_SUPPORT=y +# CONFIG_HAS_POWEROFF is not set +CONFIG_COMPILE_HASH=y +CONFIG_COMPILE_MEMORY=y + +# +# Commands +# + +# +# Information +# +CONFIG_CMD_ARM_CPUINFO=y +CONFIG_CMD_DEVINFO=y +# CONFIG_CMD_DMESG is not set +CONFIG_CMD_DRVINFO=y +CONFIG_CMD_HELP=y +CONFIG_LONGHELP=y +CONFIG_CMD_IOMEM=y +# CONFIG_CMD_IMD is not set +CONFIG_CMD_MEMINFO=y +CONFIG_CMD_ARM_MMUINFO=y +CONFIG_CMD_VERSION=y +# CONFIG_CMD_MMC_EXTCSD is not set + +# +# Boot +# +CONFIG_FLEXIBLE_BOOTARGS=y +CONFIG_CMD_BOOT=y +CONFIG_CMD_BOOTM=y +CONFIG_CMD_BOOTM_SHOW_TYPE=y +CONFIG_CMD_BOOTM_VERBOSE=y +CONFIG_CMD_BOOTM_INITRD=y +CONFIG_CMD_BOOTM_OFTREE=y +# CONFIG_CMD_BOOTM_OFTREE_UIMAGE is not set +# CONFIG_CMD_BOOTM_AIMAGE is not set +# CONFIG_CMD_BOOTM_FITIMAGE is not set +# CONFIG_CMD_BOOTU is not set +CONFIG_CMD_BOOTZ=y +CONFIG_CMD_GO=y +CONFIG_CMD_LOADB=y +# CONFIG_CMD_LOADS is not set +# CONFIG_CMD_LOADY is not set +CONFIG_CMD_RESET=y +CONFIG_CMD_UIMAGE=y + +# +# Partition +# +CONFIG_CMD_PARTITION=y +CONFIG_CMD_AUTOMOUNT=y +CONFIG_CMD_MOUNT=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBIFORMAT=y +CONFIG_CMD_UMOUNT=y + +# +# Environment +# +CONFIG_CMD_NV=y +CONFIG_CMD_EXPORT=y +# CONFIG_CMD_DEFAULTENV is not set +CONFIG_CMD_GLOBAL=y +CONFIG_CMD_LOADENV=y +CONFIG_CMD_PRINTENV=y +CONFIG_CMD_MAGICVAR=y +CONFIG_CMD_MAGICVAR_HELP=y +CONFIG_CMD_SAVEENV=y + +# +# File +# +CONFIG_CMD_BASENAME=y +CONFIG_CMD_CAT=y +CONFIG_CMD_CD=y +CONFIG_CMD_CP=y +# CONFIG_CMD_CMP is not set +CONFIG_CMD_DIGEST=y +CONFIG_CMD_DIRNAME=y +CONFIG_CMD_FILETYPE=y +CONFIG_CMD_LN=y +CONFIG_CMD_LS=y +CONFIG_CMD_MD5SUM=y +CONFIG_CMD_MKDIR=y +CONFIG_CMD_PWD=y +CONFIG_CMD_READLINK=y +CONFIG_CMD_RM=y +CONFIG_CMD_RMDIR=y +# CONFIG_CMD_SHA1SUM is not set +# CONFIG_CMD_SHA224SUM is not set +# CONFIG_CMD_SHA256SUM is not set +# CONFIG_CMD_SHA384SUM is not set +# CONFIG_CMD_SHA512SUM is not set +CONFIG_CMD_UNCOMPRESS=y + +# +# Shell scripting +# +CONFIG_CMD_FALSE=y +CONFIG_CMD_GETOPT=y +CONFIG_CMD_LET=y +CONFIG_CMD_MSLEEP=y +CONFIG_CMD_READF=y +CONFIG_CMD_SLEEP=y +CONFIG_CMD_TEST=y +CONFIG_CMD_TRUE=y + +# +# Network +# +CONFIG_CMD_DHCP=y +# CONFIG_CMD_HOST is not set +CONFIG_NET_CMD_IFUP=y +CONFIG_CMD_MIITOOL=y +CONFIG_CMD_PING=y +CONFIG_CMD_TFTP=y + +# +# Console and Framebuffer interaction +# +CONFIG_CMD_CLEAR=y +CONFIG_CMD_ECHO=y +CONFIG_CMD_ECHO_E=y +CONFIG_CMD_EDIT=y +# CONFIG_CMD_LOGIN is not set +CONFIG_CMD_MENU=y +# CONFIG_CMD_MENU_MANAGEMENT is not set +CONFIG_CMD_MENUTREE=y +CONFIG_CMD_READLINE=y +CONFIG_CMD_TIMEOUT=y + +# +# Memory +# +CONFIG_CMD_CRC=y +CONFIG_CMD_CRC_CMP=y +CONFIG_CMD_MD=y +CONFIG_CMD_MEMCMP=y +CONFIG_CMD_MEMCPY=y +CONFIG_CMD_MEMSET=y +# CONFIG_CMD_MEMTEST is not set +CONFIG_CMD_MM=y +CONFIG_CMD_MW=y + +# +# Hardware manipulation +# +CONFIG_CMD_DETECT=y +CONFIG_CMD_FLASH=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_I2C=y +CONFIG_CMD_LED=y +CONFIG_CMD_NAND=y +# CONFIG_CMD_NANDTEST is not set +# CONFIG_CMD_NAND_BITFLIP is not set +CONFIG_CMD_SPI=y +CONFIG_CMD_LED_TRIGGER=y +CONFIG_CMD_USB=y +CONFIG_CMD_USBGADGET=y + +# +# Miscellaneous +# +# CONFIG_CMD_2048 is not set +CONFIG_CMD_BAREBOX_UPDATE=y +# CONFIG_CMD_FIRMWARELOAD is not set +CONFIG_CMD_OF_DUMP=y +CONFIG_CMD_OF_NODE=y +CONFIG_CMD_OF_PROPERTY=y +CONFIG_CMD_OF_DISPLAY_TIMINGS=y +CONFIG_CMD_OF_FIXUP_STATUS=y +CONFIG_CMD_OFTREE=y +CONFIG_CMD_TIME=y +# CONFIG_CMD_STATE is not set +# CONFIG_CMD_DHRYSTONE is not set +# CONFIG_CMD_SPD_DECODE is not set +CONFIG_CMD_BOOTCHOOSER=y +CONFIG_NET=y +CONFIG_NET_NFS=y +CONFIG_NET_NETCONSOLE=y +CONFIG_NET_RESOLV=y +CONFIG_NET_IFUP=y +CONFIG_NET_DHCP=y +# CONFIG_NET_SNTP is not set + +# +# Drivers +# +CONFIG_OFTREE=y +CONFIG_OFTREE_MEM_GENERIC=y +CONFIG_DTC=y +CONFIG_OFDEVICE=y +CONFIG_OF_NET=y +CONFIG_OF_GPIO=y +CONFIG_OF_BAREBOX_DRIVERS=y +# CONFIG_OF_BAREBOX_ENV_IN_FS is not set + +# +# serial drivers +# +# CONFIG_DRIVER_SERIAL_ARM_DCC is not set +CONFIG_DRIVER_SERIAL_NS16550=y +CONFIG_DRIVER_SERIAL_NS16550_OMAP_EXTENSIONS=y +# CONFIG_DRIVER_SERIAL_CADENCE is not set +CONFIG_PHYLIB=y + +# +# Network drivers +# +# CONFIG_DRIVER_NET_ARC_EMAC is not set +# CONFIG_DRIVER_NET_CALXEDA_XGMAC is not set +CONFIG_DRIVER_NET_CPSW=y +# CONFIG_DRIVER_NET_DESIGNWARE is not set +# CONFIG_DRIVER_NET_ENC28J60 is not set +# CONFIG_DRIVER_NET_KS8851_MLL is not set +# CONFIG_DRIVER_NET_MICREL is not set +# CONFIG_DRIVER_NET_SMC911X is not set +# CONFIG_DRIVER_NET_SMC91111 is not set + +# +# phylib +# + +# +# MII PHY device drivers +# +# CONFIG_AT803X_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_MARVELL_PHY is not set +CONFIG_MICREL_PHY=y +# CONFIG_NATIONAL_PHY is not set +# CONFIG_SMSC_PHY is not set + +# +# MII bus device drivers +# +# CONFIG_MDIO_BITBANG is not set +CONFIG_NET_USB=y +CONFIG_NET_USB_ASIX=y +CONFIG_NET_USB_SMSC95XX=y + +# +# SPI drivers +# +CONFIG_SPI=y +# CONFIG_DRIVER_SPI_GPIO is not set +CONFIG_DRIVER_SPI_OMAP3=y +CONFIG_I2C=y + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_DESIGNWARE is not set +CONFIG_I2C_OMAP=y +# CONFIG_I2C_MUX is not set +CONFIG_MTD=y +CONFIG_MTD_WRITE=y +CONFIG_MTD_OOB_DEVICE=y +# CONFIG_MTD_RAW_DEVICE is not set +# CONFIG_MTD_CONCAT is not set + +# +# MTD debug options +# +# CONFIG_MTD_PEB_DEBUG is not set + +# +# Self contained MTD devices +# +# CONFIG_MTD_DATAFLASH is not set +CONFIG_MTD_M25P80=y +# CONFIG_MTD_SST25L is not set +# CONFIG_MTD_DOCG3 is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_DRIVER_CFI is not set +CONFIG_NAND=y +CONFIG_NAND_ECC_SOFT=y +# CONFIG_NAND_ECC_BCH is not set +CONFIG_NAND_ECC_HW=y +# CONFIG_NAND_ECC_HW_OOB_FIRST is not set +CONFIG_NAND_ECC_HW_SYNDROME=y +CONFIG_NAND_ECC_HW_NONE=y +CONFIG_NAND_INFO=y +CONFIG_NAND_READ_OOB=y +CONFIG_NAND_BBT=y +# CONFIG_NAND_ALLOW_ERASE_BAD is not set +CONFIG_NAND_OMAP_GPMC=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DENALI is not set +CONFIG_MTD_SPI_NOR=y +# CONFIG_SPI_CADENCE_QUADSPI is not set +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set + +# +# UBI debugging options +# +# CONFIG_MTD_UBI_CHECK_IO is not set +# CONFIG_MTD_UBI_GENERAL_EXTRA_CHECKS is not set +CONFIG_DISK=y +CONFIG_DISK_WRITE=y + +# +# drive types +# +# CONFIG_DISK_ATA is not set +# CONFIG_DISK_AHCI is not set + +# +# interface types +# +# CONFIG_DISK_INTF_PLATFORM_IDE is not set +CONFIG_USB=y +CONFIG_USB_HOST=y +# CONFIG_USB_EHCI is not set +# CONFIG_USB_XHCI is not set +# CONFIG_USB_ULPI is not set +CONFIG_USB_STORAGE=y +CONFIG_USB_GADGET=y + +# +# USB Gadget drivers +# +CONFIG_USB_GADGET_DFU=y +CONFIG_USB_GADGET_SERIAL=y +CONFIG_USB_GADGET_FASTBOOT=y +CONFIG_USB_MUSB=y +CONFIG_USB_MUSB_DSPS=y +CONFIG_USB_MUSB_AM335X=y +CONFIG_USB_MUSB_HOST=y +CONFIG_USB_MUSB_GADGET=y +# CONFIG_VIDEO is not set +CONFIG_MCI=y + +# +# --- Feature list --- +# +CONFIG_MCI_STARTUP=y +CONFIG_MCI_INFO=y +CONFIG_MCI_WRITE=y +# CONFIG_MCI_MMC_BOOT_PARTITIONS is not set + +# +# --- MCI host drivers --- +# +# CONFIG_MCI_DW is not set +CONFIG_MCI_OMAP_HSMMC=y +# CONFIG_MCI_SPI is not set +CONFIG_CLOCKSOURCE_DUMMY_RATE=1000 + +# +# MFD +# +# CONFIG_MFD_ACT8846 is not set +# CONFIG_MFD_DA9053 is not set +# CONFIG_MFD_DA9063 is not set +# CONFIG_MFD_LP3972 is not set +# CONFIG_MFD_MC13XXX is not set +# CONFIG_MFD_MC34704 is not set +# CONFIG_MFD_MC9SDZ60 is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TWL4030 is not set +# CONFIG_MFD_TWL6030 is not set + +# +# Misc devices +# +# CONFIG_JTAG is not set +# CONFIG_SRAM is not set +# CONFIG_STATE_DRV is not set +CONFIG_BOOTSTATE_DRV=y +CONFIG_LED=y +CONFIG_LED_GPIO=y +CONFIG_LED_GPIO_OF=y +# CONFIG_LED_GPIO_RGB is not set +# CONFIG_LED_GPIO_BICOLOR is not set +CONFIG_LED_TRIGGERS=y + +# +# EEPROM support +# +# CONFIG_EEPROM_AT25 is not set +CONFIG_EEPROM_AT24=y + +# +# Input device support +# +# CONFIG_KEYBOARD_GPIO is not set +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_USB is not set +# CONFIG_WATCHDOG is not set +# CONFIG_PWM is not set + +# +# DMA support +# +CONFIG_GPIOLIB=y + +# +# GPIO +# +CONFIG_GPIO_GENERIC=y +# CONFIG_GPIO_74164 is not set +CONFIG_GPIO_GENERIC_PLATFORM=y +# CONFIG_GPIO_IMX is not set +# CONFIG_GPIO_MXS is not set +CONFIG_GPIO_OMAP=y +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_DESIGNWARE is not set +# CONFIG_W1 is not set +CONFIG_PINCTRL=y +CONFIG_PINCTRL_SINGLE=y + +# +# Bus devices +# +CONFIG_BUS_OMAP_GPMC=y +# CONFIG_REGULATOR is not set +# CONFIG_RESET_CONTROLLER is not set +# CONFIG_RTC_CLASS is not set + +# +# Firmware Drivers +# +# CONFIG_FIRMWARE_ALTERA_SERIAL is not set + +# +# PHY Subsystem +# +CONFIG_GENERIC_PHY=y +# CONFIG_CRYPTO_HW is not set + +# +# Filesystem support +# +CONFIG_FS=y +CONFIG_FS_AUTOMOUNT=y +# CONFIG_FS_CRAMFS is not set +CONFIG_FS_EXT4=y +CONFIG_FS_RAMFS=y +CONFIG_FS_DEVFS=y +CONFIG_FS_TFTP=y +CONFIG_FS_NFS=y +CONFIG_FS_FAT=y +CONFIG_FS_FAT_WRITE=y +CONFIG_FS_FAT_LFN=y +# CONFIG_FS_UBIFS is not set +# CONFIG_FS_BPKFS is not set +# CONFIG_FS_UIMAGEFS is not set +# CONFIG_FS_PSTORE is not set +# CONFIG_FS_SQUASHFS is not set + +# +# Library routines +# +CONFIG_PARAMETER=y +CONFIG_UNCOMPRESS=y +# CONFIG_ZLIB is not set +# CONFIG_BZLIB is not set +# CONFIG_LZ4_DECOMPRESS is not set +# CONFIG_XZ_DECOMPRESS is not set +# CONFIG_GENERIC_FIND_NEXT_BIT is not set +CONFIG_PROCESS_ESCAPE_SEQUENCE=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_QSORT=y +CONFIG_LIBSCAN=y +CONFIG_LIBUBIGEN=y + +# +# Library gui routines +# +# CONFIG_BAREBOX_LOGO is not set + +# +# Crypto support +# +CONFIG_CRC32=y +CONFIG_CRC16=y +CONFIG_DIGEST=y +CONFIG_MD5=y +CONFIG_DIGEST_MD5_GENERIC=y +# CONFIG_DIGEST_SHA1_GENERIC is not set +# CONFIG_DIGEST_SHA224_GENERIC is not set +# CONFIG_DIGEST_SHA256_GENERIC is not set +# CONFIG_DIGEST_SHA384_GENERIC is not set +# CONFIG_DIGEST_SHA512_GENERIC is not set +# CONFIG_DIGEST_HMAC_GENERIC is not set +# CONFIG_DIGEST_SHA1_ARM is not set +# CONFIG_DIGEST_SHA256_ARM is not set +# CONFIG_CRYPTO_KEYSTORE is not set diff --git a/configs/platform-v7a/barebox_mlo.config b/configs/platform-v7a/barebox_mlo.config new file mode 100644 index 0000000..39dd4a5 --- /dev/null +++ b/configs/platform-v7a/barebox_mlo.config @@ -0,0 +1,366 @@ +# +# Automatically generated file; DO NOT EDIT. +# Barebox/arm 2016.05.0 Configuration +# +CONFIG_ARM=y +CONFIG_ARM_USE_COMPRESSED_DTB=y + +# +# System Type +# +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCM2835 is not set +# CONFIG_ARCH_BCM2836 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_DIGIC is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_MXS is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_NOMADIK is not set +CONFIG_ARCH_OMAP=y +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_ROCKCHIP is not set +# CONFIG_ARCH_SOCFPGA is not set +# CONFIG_ARCH_S3C24xx is not set +# CONFIG_ARCH_S5PCxx is not set +# CONFIG_ARCH_S3C64xx is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_UEMD is not set +# CONFIG_ARCH_ZYNQ is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_V7=y +CONFIG_CPU_32v7=y + +# +# processor features +# +# CONFIG_BOOT_ENDIANNESS_SWITCH is not set +CONFIG_BAREBOX_MAX_IMAGE_SIZE=0xffffffff + +# +# OMAP Features +# +CONFIG_ARCH_AM33XX=y +CONFIG_OMAP_CLOCK_SOURCE_DMTIMER=y +CONFIG_OMAP_GPMC=y +CONFIG_OMAP_BUILD_IFT=y +# CONFIG_OMAP_BUILD_SPI is not set +CONFIG_OMAP_SERIALBOOT=y +CONFIG_OMAP_MULTI_BOARDS=y +CONFIG_MACH_AFI_GF=y +# CONFIG_MACH_BEAGLE is not set +CONFIG_MACH_BEAGLEBONE=y +CONFIG_MACH_PHYTEC_SOM_AM335X=y +CONFIG_ARM_ASM_UNIFIED=y +CONFIG_AEABI=y +CONFIG_THUMB2_BAREBOX=y + +# +# ARM specific settings +# +# CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS is not set +CONFIG_ARM_EXCEPTIONS=y +# CONFIG_ARM_UNWIND is not set +# CONFIG_ARM_SEMIHOSTING is not set +CONFIG_DEFCONFIG_LIST="$ARCH_DEFCONFIG" +CONFIG_HAS_KALLSYMS=y +CONFIG_HAS_MODULES=y +CONFIG_HAS_CACHE=y +CONFIG_HAS_DMA=y +CONFIG_GENERIC_GPIO=y +CONFIG_BLOCK=y +CONFIG_FILETYPE=y + +# +# General Settings +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_BANNER=y +# CONFIG_MEMINFO is not set +# CONFIG_ENVIRONMENT_VARIABLES is not set + +# +# memory layout +# +CONFIG_HAVE_PBL_IMAGE=y +CONFIG_HAVE_PBL_MULTI_IMAGES=y +CONFIG_HAVE_IMAGE_COMPRESSION=y +CONFIG_PBL_IMAGE=y +CONFIG_PBL_MULTI_IMAGES=y +CONFIG_PBL_RELOCATABLE=y +CONFIG_IMAGE_COMPRESSION=y +# CONFIG_IMAGE_COMPRESSION_LZ4 is not set +CONFIG_IMAGE_COMPRESSION_LZO=y +# CONFIG_IMAGE_COMPRESSION_GZIP is not set +# CONFIG_IMAGE_COMPRESSION_XZKERN is not set +# CONFIG_IMAGE_COMPRESSION_NONE is not set +CONFIG_MMU=y +CONFIG_MMU_EARLY=y +CONFIG_HAVE_CONFIGURABLE_TEXT_BASE=y +CONFIG_TEXT_BASE=0x0 +CONFIG_BAREBOX_MAX_PBL_SIZE=0xffffffff +CONFIG_BAREBOX_MAX_BARE_INIT_SIZE=0xffffffff +CONFIG_BAREBOX_MAX_PBLX_SIZE=0xffffffff +CONFIG_STACK_SIZE=0x8000 +CONFIG_MALLOC_SIZE=0x0 +# CONFIG_EXPERIMENTAL is not set +# CONFIG_MALLOC_DLMALLOC is not set +CONFIG_MALLOC_TLSF=y +# CONFIG_MALLOC_DUMMY is not set +# CONFIG_KALLSYMS is not set +CONFIG_RELOCATABLE=y +# CONFIG_PANIC_HANG is not set +CONFIG_PROMPT="MLO>" +CONFIG_BAUDRATE=115200 +CONFIG_SIMPLE_READLINE=y +CONFIG_CBSIZE=1024 +# CONFIG_SHELL_HUSH is not set +# CONFIG_SHELL_SIMPLE is not set +CONFIG_SHELL_NONE=y +# CONFIG_GLOB is not set +# CONFIG_PASSWORD is not set +# CONFIG_ERRNO_MESSAGES is not set +# CONFIG_TIMESTAMP is not set +# CONFIG_IMD is not set +# CONFIG_KERNEL_INSTALL_TARGET is not set +CONFIG_CONSOLE_FULL=y +# CONFIG_CONSOLE_SIMPLE is not set +# CONFIG_CONSOLE_NONE is not set +# CONFIG_CONSOLE_ACTIVATE_FIRST is not set +# CONFIG_CONSOLE_ACTIVATE_ALL is not set +CONFIG_CONSOLE_ACTIVATE_NONE=y +# CONFIG_PBL_CONSOLE is not set +# CONFIG_CONSOLE_RATP is not set +CONFIG_PARTITION=y +CONFIG_PARTITION_DISK=y +CONFIG_PARTITION_DISK_DOS=y +# CONFIG_PARTITION_DISK_EFI is not set +# CONFIG_DEFAULT_ENVIRONMENT is not set +# CONFIG_DEFAULT_COMPRESSION_LZO is not set +CONFIG_DEFAULT_COMPRESSION_NONE=y +CONFIG_HAVE_DEFAULT_ENVIRONMENT_NEW=y +# CONFIG_BAREBOXENV_TARGET is not set +# CONFIG_BAREBOXCRC32_TARGET is not set +# CONFIG_POLLER is not set + +# +# Debugging +# +CONFIG_COMPILE_LOGLEVEL=6 +CONFIG_DEFAULT_LOGLEVEL=7 +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_LL is not set +CONFIG_DEBUG_OMAP_UART_PORT=1 +# CONFIG_DEBUG_INITCALLS is not set +CONFIG_HAS_DEBUG_LL=y +# CONFIG_HAS_POWEROFF is not set +# CONFIG_NET is not set + +# +# Drivers +# +CONFIG_OFTREE=y +CONFIG_OFTREE_MEM_GENERIC=y +CONFIG_DTC=y +CONFIG_OFDEVICE=y +CONFIG_OF_GPIO=y + +# +# serial drivers +# +# CONFIG_DRIVER_SERIAL_ARM_DCC is not set +CONFIG_DRIVER_SERIAL_NS16550=y +CONFIG_DRIVER_SERIAL_NS16550_OMAP_EXTENSIONS=y +# CONFIG_DRIVER_SERIAL_CADENCE is not set + +# +# SPI drivers +# +CONFIG_SPI=y +# CONFIG_DRIVER_SPI_GPIO is not set +CONFIG_DRIVER_SPI_OMAP3=y +# CONFIG_I2C is not set +CONFIG_MTD=y +# CONFIG_MTD_WRITE is not set +# CONFIG_MTD_OOB_DEVICE is not set +# CONFIG_MTD_RAW_DEVICE is not set +# CONFIG_MTD_CONCAT is not set + +# +# MTD debug options +# +# CONFIG_MTD_PEB_DEBUG is not set + +# +# Self contained MTD devices +# +# CONFIG_MTD_DATAFLASH is not set +CONFIG_MTD_M25P80=y +# CONFIG_MTD_SST25L is not set +# CONFIG_MTD_DOCG3 is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_DRIVER_CFI is not set +CONFIG_NAND=y +# CONFIG_NAND_ECC_SOFT is not set +# CONFIG_NAND_ECC_BCH is not set +CONFIG_NAND_ECC_HW=y +# CONFIG_NAND_ECC_HW_OOB_FIRST is not set +# CONFIG_NAND_ECC_HW_SYNDROME is not set +# CONFIG_NAND_ECC_HW_NONE is not set +# CONFIG_NAND_INFO is not set +# CONFIG_NAND_BBT is not set +CONFIG_NAND_OMAP_GPMC=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DENALI is not set +CONFIG_MTD_SPI_NOR=y +# CONFIG_SPI_CADENCE_QUADSPI is not set +# CONFIG_MTD_UBI is not set +CONFIG_DISK=y +# CONFIG_DISK_WRITE is not set + +# +# drive types +# +# CONFIG_DISK_ATA is not set +# CONFIG_DISK_AHCI is not set + +# +# interface types +# +# CONFIG_DISK_INTF_PLATFORM_IDE is not set +# CONFIG_USB_HOST is not set +# CONFIG_USB_GADGET is not set +# CONFIG_USB_MUSB is not set +# CONFIG_VIDEO is not set +CONFIG_MCI=y + +# +# --- Feature list --- +# +# CONFIG_MCI_STARTUP is not set +# CONFIG_MCI_WRITE is not set +# CONFIG_MCI_MMC_BOOT_PARTITIONS is not set + +# +# --- MCI host drivers --- +# +# CONFIG_MCI_DW is not set +CONFIG_MCI_OMAP_HSMMC=y +# CONFIG_MCI_SPI is not set +CONFIG_CLOCKSOURCE_DUMMY_RATE=1000 + +# +# MFD +# +# CONFIG_MFD_MC13XXX is not set +# CONFIG_MFD_SYSCON is not set + +# +# Misc devices +# +# CONFIG_JTAG is not set +# CONFIG_SRAM is not set +# CONFIG_LED is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_AT25 is not set + +# +# Input device support +# +# CONFIG_KEYBOARD_GPIO is not set +# CONFIG_WATCHDOG is not set +# CONFIG_PWM is not set + +# +# DMA support +# +CONFIG_GPIOLIB=y + +# +# GPIO +# +# CONFIG_GPIO_74164 is not set +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_IMX is not set +# CONFIG_GPIO_MXS is not set +CONFIG_GPIO_OMAP=y +# CONFIG_GPIO_DESIGNWARE is not set +# CONFIG_W1 is not set +CONFIG_PINCTRL=y +CONFIG_PINCTRL_SINGLE=y + +# +# Bus devices +# +CONFIG_BUS_OMAP_GPMC=y +# CONFIG_REGULATOR is not set +# CONFIG_RESET_CONTROLLER is not set +# CONFIG_RTC_CLASS is not set + +# +# Firmware Drivers +# +# CONFIG_FIRMWARE_ALTERA_SERIAL is not set + +# +# PHY Subsystem +# +# CONFIG_GENERIC_PHY is not set +# CONFIG_CRYPTO_HW is not set + +# +# Filesystem support +# +CONFIG_FS=y +# CONFIG_FS_CRAMFS is not set +# CONFIG_FS_EXT4 is not set +CONFIG_FS_RAMFS=y +# CONFIG_FS_DEVFS is not set +CONFIG_FS_FAT=y +# CONFIG_FS_FAT_WRITE is not set +CONFIG_FS_FAT_LFN=y +# CONFIG_FS_BPKFS is not set +# CONFIG_FS_UIMAGEFS is not set +# CONFIG_FS_PSTORE is not set +# CONFIG_FS_SQUASHFS is not set + +# +# Library routines +# +CONFIG_UNCOMPRESS=y +# CONFIG_ZLIB is not set +# CONFIG_BZLIB is not set +# CONFIG_LZ4_DECOMPRESS is not set +# CONFIG_XZ_DECOMPRESS is not set +# CONFIG_GENERIC_FIND_NEXT_BIT is not set +# CONFIG_PROCESS_ESCAPE_SEQUENCE is not set +CONFIG_LZO_DECOMPRESS=y +CONFIG_XYMODEM=y + +# +# Library gui routines +# +# CONFIG_BAREBOX_LOGO is not set +# CONFIG_BOOTSTRAP is not set + +# +# Crypto support +# +CONFIG_CRC16=y +# CONFIG_DIGEST is not set +# CONFIG_CRYPTO_KEYSTORE is not set diff --git a/configs/platform-v7a/config/images/boot-vfat.config b/configs/platform-v7a/config/images/boot-vfat.config new file mode 100644 index 0000000..7d29c76 --- /dev/null +++ b/configs/platform-v7a/config/images/boot-vfat.config @@ -0,0 +1,10 @@ +image @IMAGE@ { + vfat { + files = { @FIRMWARE_RPI2@ } + file MLO { image = "barebox-am33xx-beaglebone-mlo.img"} + file barebox.bin-rpi2 { image = barebox.bin-rpi2 } + file barebox.bin { image = "barebox-am33xx-beaglebone.img" } + } + name = boot-mlo + size = 32M +} diff --git a/configs/platform-v7a/config/images/hd.config b/configs/platform-v7a/config/images/hd.config new file mode 100644 index 0000000..4ff3363 --- /dev/null +++ b/configs/platform-v7a/config/images/hd.config @@ -0,0 +1,18 @@ + +@BOOTLOADER_IMAGES@ + +image @IMAGE@ { + hdimage { + align = 1M + } + @BOOTLOADER_PARTITIONS@ + partition root-A { + image = root.ext2 + partition-type = 0x83 + size = 512M + } + partition data { + partition-type = 0x83 + size = 512M + } +} diff --git a/configs/platform-v7a/kernelconfig b/configs/platform-v7a/kernelconfig new file mode 100644 index 0000000..75fb8be --- /dev/null +++ b/configs/platform-v7a/kernelconfig @@ -0,0 +1,2942 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm 4.6.0 Kernel Configuration +# +CONFIG_ARM=y +CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_MIGHT_HAVE_PCI=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_NO_IOPORT_MAP=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_ARCH_HAS_BANDGAP=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_GENERIC_BUG=y +CONFIG_PGTABLE_LEVELS=2 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +# CONFIG_COMPILE_TEST is not set +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_LZ4=y +# CONFIG_KERNEL_GZIP is not set +CONFIG_KERNEL_LZMA=y +# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZO is not set +# CONFIG_KERNEL_LZ4 is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_FHANDLE=y +CONFIG_USELIB=y +CONFIG_AUDIT=y +CONFIG_HAVE_ARCH_AUDITSYSCALL=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_WATCH=y +CONFIG_AUDIT_TREE=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_HANDLE_DOMAIN_IRQ=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set +# CONFIG_NO_HZ is not set +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_IRQ_TIME_ACCOUNTING is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_RCU_EXPERT is not set +CONFIG_SRCU=y +# CONFIG_TASKS_RCU is not set +CONFIG_RCU_STALL_COMMON=y +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_RCU_EXPEDITE_BOOT is not set +CONFIG_BUILD_BIN2C=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_CGROUPS=y +CONFIG_PAGE_COUNTER=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMCG_SWAP_ENABLED=y +CONFIG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set +CONFIG_CGROUP_WRITEBACK=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_RT_GROUP_SCHED=y +# CONFIG_CGROUP_PIDS is not set +CONFIG_CGROUP_FREEZER=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +# CONFIG_CGROUP_DEBUG is not set +# CONFIG_CHECKPOINT_RESTORE is not set +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_IPC_NS=y +# CONFIG_USER_NS is not set +CONFIG_PID_NS=y +CONFIG_NET_NS=y +# CONFIG_SCHED_AUTOGROUP is not set +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_RD_LZ4 is not set +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_HAVE_UID16=y +CONFIG_BPF=y +CONFIG_EXPERT=y +CONFIG_UID16=y +CONFIG_MULTIUSER=y +# CONFIG_SGETMASK_SYSCALL is not set +CONFIG_SYSFS_SYSCALL=y +# CONFIG_SYSCTL_SYSCALL is not set +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set +CONFIG_KALLSYMS_BASE_RELATIVE=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +# CONFIG_BPF_SYSCALL is not set +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_ADVISE_SYSCALLS=y +# CONFIG_USERFAULTFD is not set +CONFIG_MEMBARRIER=y +CONFIG_EMBEDDED=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y +CONFIG_COMPAT_BRK=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_SLUB_CPU_PARTIAL=y +# CONFIG_SYSTEM_DATA_VERIFICATION is not set +# CONFIG_PROFILING is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set +# CONFIG_UPROBES is not set +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_CC_STACKPROTECTOR=y +# CONFIG_CC_STACKPROTECTOR is not set +CONFIG_CC_STACKPROTECTOR_NONE=y +# CONFIG_CC_STACKPROTECTOR_REGULAR is not set +# CONFIG_CC_STACKPROTECTOR_STRONG is not set +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_BITS_MAX=16 +CONFIG_ARCH_MMAP_RND_BITS=8 +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_MODULE_SIG is not set +# CONFIG_MODULE_COMPRESS is not set +CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_BLOCK=y +CONFIG_LBDAF=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set +# CONFIG_BLK_DEV_THROTTLING is not set +# CONFIG_BLK_CMDLINE_PARSER is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_EFI_PARTITION=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_DEFAULT_NOOP=y +CONFIG_DEFAULT_IOSCHED="noop" +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_FREEZER=y + +# +# System Type +# +CONFIG_MMU=y +CONFIG_ARCH_MULTIPLATFORM=y +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_LPC32XX is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C24XX is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP1 is not set + +# +# Multiple platform selection +# + +# +# CPU Core family selection +# +# CONFIG_ARCH_MULTI_V6 is not set +CONFIG_ARCH_MULTI_V7=y +CONFIG_ARCH_MULTI_V6_V7=y +# CONFIG_ARCH_MULTI_CPU_AUTO is not set +# CONFIG_ARCH_VIRT is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_ALPINE is not set +# CONFIG_ARCH_ARTPEC is not set +# CONFIG_ARCH_AT91 is not set +CONFIG_ARCH_BCM=y + +# +# IPROC architected SoCs +# +# CONFIG_ARCH_BCM_CYGNUS is not set +# CONFIG_ARCH_BCM_NSP is not set +# CONFIG_ARCH_BCM_5301X is not set + +# +# KONA architected SoCs +# +# CONFIG_ARCH_BCM_281XX is not set +# CONFIG_ARCH_BCM_21664 is not set + +# +# Other Architectures +# +CONFIG_ARCH_BCM2835=y +# CONFIG_ARCH_BCM_63XX is not set +# CONFIG_ARCH_BRCMSTB is not set +# CONFIG_ARCH_BERLIN is not set +# CONFIG_ARCH_DIGICOLOR is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_HISI is not set +# CONFIG_ARCH_KEYSTONE is not set +# CONFIG_ARCH_MESON is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_MEDIATEK is not set +CONFIG_ARCH_OMAP=y + +# +# TI OMAP Common Features +# + +# +# OMAP Feature Selections +# +CONFIG_OMAP_RESET_CLOCKS=y +CONFIG_OMAP_MUX=y +CONFIG_OMAP_MUX_DEBUG=y +CONFIG_OMAP_MUX_WARNINGS=y +CONFIG_OMAP_32K_TIMER=y +CONFIG_OMAP_DM_TIMER=y +CONFIG_OMAP_PM_NOOP=y +CONFIG_MACH_OMAP_GENERIC=y + +# +# TI OMAP/AM/DM/DRA Family +# +# CONFIG_ARCH_OMAP3 is not set +# CONFIG_ARCH_OMAP4 is not set +# CONFIG_SOC_OMAP5 is not set +CONFIG_SOC_AM33XX=y +# CONFIG_SOC_AM43XX is not set +# CONFIG_SOC_DRA7XX is not set +CONFIG_ARCH_OMAP2PLUS=y + +# +# TI OMAP2/3/4 Specific Features +# +# CONFIG_ARCH_OMAP2PLUS_TYPICAL is not set +# CONFIG_SOC_HAS_OMAP2_SDRC is not set + +# +# OMAP Legacy Platform Data Board Type +# +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_QCOM is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_ROCKCHIP is not set +# CONFIG_ARCH_SOCFPGA is not set +# CONFIG_PLAT_SPEAR is not set +# CONFIG_ARCH_STI is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_SUNXI is not set +# CONFIG_ARCH_SIRF is not set +# CONFIG_ARCH_TANGO is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_UNIPHIER is not set +# CONFIG_ARCH_U8500 is not set +CONFIG_ARCH_VEXPRESS=y +CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y +CONFIG_ARCH_VEXPRESS_SPC=y +# CONFIG_ARCH_WM8850 is not set +# CONFIG_ARCH_ZX is not set +# CONFIG_ARCH_ZYNQ is not set +CONFIG_PLAT_VERSATILE=y + +# +# Processor Type +# +CONFIG_CPU_V7=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV7=y +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_ARM_THUMB=y +CONFIG_ARM_THUMBEE=y +CONFIG_ARM_VIRT_EXT=y +CONFIG_SWP_EMULATE=y +# CONFIG_CPU_BIG_ENDIAN is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_KUSER_HELPERS=y +CONFIG_VDSO=y +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=y +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +CONFIG_CACHE_L2X0=y +CONFIG_PL310_ERRATA_588369=y +CONFIG_PL310_ERRATA_727915=y +CONFIG_PL310_ERRATA_753970=y +# CONFIG_PL310_ERRATA_769419 is not set +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_ARM_HEAVY_MB=y +CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y +CONFIG_DEBUG_RODATA=y +CONFIG_DEBUG_ALIGN_RODATA=y +CONFIG_MULTI_IRQ_HANDLER=y +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_643719=y +CONFIG_ARM_ERRATA_720789=y +CONFIG_ARM_ERRATA_754322=y +# CONFIG_ARM_ERRATA_754327 is not set +# CONFIG_ARM_ERRATA_764369 is not set +CONFIG_ARM_ERRATA_775420=y +# CONFIG_ARM_ERRATA_798181 is not set +# CONFIG_ARM_ERRATA_773022 is not set +CONFIG_ICST=y + +# +# Bus support +# +# CONFIG_PCI is not set +# CONFIG_PCI_DOMAINS_GENERIC is not set +# CONFIG_PCI_SYSCALL is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_HAVE_SMP=y +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_ARM_CPU_TOPOLOGY=y +# CONFIG_SCHED_MC is not set +# CONFIG_SCHED_SMT is not set +CONFIG_HAVE_ARM_SCU=y +CONFIG_HAVE_ARM_ARCH_TIMER=y +CONFIG_HAVE_ARM_TWD=y +# CONFIG_MCPM is not set +# CONFIG_BIG_LITTLE is not set +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_3G_OPT is not set +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_NR_CPUS=4 +CONFIG_HOTPLUG_CPU=y +# CONFIG_ARM_PSCI is not set +CONFIG_ARCH_NR_GPIO=0 +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_HZ_FIXED=0 +CONFIG_HZ_100=y +# CONFIG_HZ_200 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +# CONFIG_HZ_500 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=100 +CONFIG_SCHED_HRTICK=y +# CONFIG_THUMB2_KERNEL is not set +CONFIG_ARM_PATCH_IDIV=y +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HIGHMEM=y +CONFIG_HIGHPTE=y +CONFIG_CPU_SW_DOMAIN_PAN=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +# CONFIG_ARM_MODULE_PLTS is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_NO_BOOTMEM=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=0 +CONFIG_BOUNCE=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +# CONFIG_CLEANCACHE is not set +# CONFIG_FRONTSWAP is not set +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +CONFIG_CMA_AREAS=7 +# CONFIG_ZPOOL is not set +# CONFIG_ZBUD is not set +# CONFIG_ZSMALLOC is not set +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_FORCE_MAX_ZONEORDER=12 +CONFIG_ALIGNMENT_TRAP=y +# CONFIG_UACCESS_WITH_MEMCPY is not set +CONFIG_SECCOMP=y +CONFIG_SWIOTLB=y +CONFIG_IOMMU_HELPER=y +# CONFIG_PARAVIRT is not set +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +# CONFIG_XEN is not set + +# +# Boot options +# +CONFIG_USE_OF=y +# CONFIG_ATAGS is not set +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +# CONFIG_ARM_APPENDED_DTB is not set +CONFIG_CMDLINE="" +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_AUTO_ZRELADDR=y +# CONFIG_EFI is not set + +# +# CPU Power Management +# + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y + +# +# CPU frequency scaling drivers +# +CONFIG_CPUFREQ_DT=y +# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set +# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set +# CONFIG_ARM_OMAP2PLUS_CPUFREQ is not set +# CONFIG_QORIQ_CPUFREQ is not set + +# +# CPU Idle +# +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y + +# +# ARM CPU Idle Drivers +# +# CONFIG_ARM_CPUIDLE is not set +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_NEON=y +# CONFIG_KERNEL_MODE_NEON is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +# CONFIG_HAVE_AOUT is not set +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +# CONFIG_SUSPEND_SKIP_SYNC is not set +# CONFIG_HIBERNATION is not set +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +# CONFIG_APM_EMULATION is not set +CONFIG_PM_OPP=y +CONFIG_PM_CLK=y +CONFIG_PM_GENERIC_DOMAINS=y +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_PM_GENERIC_DOMAINS_OF=y +CONFIG_CPU_PM=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_NET=y +CONFIG_NET_INGRESS=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set +CONFIG_UNIX=y +# CONFIG_UNIX_DIAG is not set +CONFIG_XFRM=y +CONFIG_XFRM_ALGO=y +CONFIG_XFRM_USER=y +# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_MIGRATE=y +# CONFIG_XFRM_STATISTICS is not set +CONFIG_NET_KEY=y +CONFIG_NET_KEY_MIGRATE=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +# CONFIG_NET_IP_TUNNEL is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_NET_IPVTI is not set +# CONFIG_NET_UDP_TUNNEL is not set +# CONFIG_NET_FOU is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_INET_UDP_DIAG is not set +# CONFIG_INET_DIAG_DESTROY is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=y +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +# CONFIG_INET6_AH is not set +# CONFIG_INET6_ESP is not set +# CONFIG_INET6_IPCOMP is not set +# CONFIG_IPV6_MIP6 is not set +# CONFIG_IPV6_ILA is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET6_XFRM_MODE_TUNNEL is not set +# CONFIG_INET6_XFRM_MODE_BEET is not set +# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set +# CONFIG_IPV6_SIT is not set +# CONFIG_IPV6_TUNNEL is not set +# CONFIG_IPV6_GRE is not set +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NET_PTP_CLASSIFY=y +CONFIG_NETWORK_PHY_TIMESTAMPING=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_INGRESS=y +# CONFIG_NETFILTER_NETLINK_ACCT is not set +# CONFIG_NETFILTER_NETLINK_QUEUE is not set +# CONFIG_NETFILTER_NETLINK_LOG is not set +# CONFIG_NF_CONNTRACK is not set +# CONFIG_NF_TABLES is not set +# CONFIG_NETFILTER_XTABLES is not set +# CONFIG_IP_SET is not set +# CONFIG_IP_VS is not set + +# +# IP: Netfilter Configuration +# +# CONFIG_NF_DEFRAG_IPV4 is not set +# CONFIG_NF_DUP_IPV4 is not set +# CONFIG_NF_LOG_ARP is not set +# CONFIG_NF_LOG_IPV4 is not set +# CONFIG_NF_REJECT_IPV4 is not set +# CONFIG_IP_NF_IPTABLES is not set +# CONFIG_IP_NF_ARPTABLES is not set + +# +# IPv6: Netfilter Configuration +# +# CONFIG_NF_DEFRAG_IPV6 is not set +# CONFIG_NF_DUP_IPV6 is not set +# CONFIG_NF_REJECT_IPV6 is not set +# CONFIG_NF_LOG_IPV6 is not set +# CONFIG_IP6_NF_IPTABLES is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +# CONFIG_BRIDGE is not set +CONFIG_HAVE_NET_DSA=y +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_PHONET is not set +# CONFIG_6LOWPAN is not set +# CONFIG_IEEE802154 is not set +# CONFIG_NET_SCHED is not set +# CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +# CONFIG_BATMAN_ADV is not set +# CONFIG_OPENVSWITCH is not set +# CONFIG_VSOCKETS is not set +# CONFIG_NETLINK_DIAG is not set +# CONFIG_MPLS is not set +# CONFIG_HSR is not set +# CONFIG_NET_SWITCHDEV is not set +# CONFIG_NET_L3_MASTER_DEV is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y +# CONFIG_SOCK_CGROUP_DATA is not set +# CONFIG_CGROUP_NET_PRIO is not set +# CONFIG_CGROUP_NET_CLASSID is not set +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +# CONFIG_BPF_JIT is not set +CONFIG_NET_FLOW_LIMIT=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set +# CONFIG_AF_KCM is not set +# CONFIG_WIRELESS is not set +# CONFIG_WIMAX is not set +# CONFIG_RFKILL is not set +# CONFIG_RFKILL_REGULATOR is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +# CONFIG_LWTUNNEL is not set +# CONFIG_DST_CACHE is not set +# CONFIG_NET_DEVLINK is not set +CONFIG_MAY_USE_DEVLINK=y +CONFIG_HAVE_BPF_JIT=y + +# +# Device Drivers +# +CONFIG_ARM_AMBA=y + +# +# Generic Driver Options +# +# CONFIG_UEVENT_HELPER is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set +# CONFIG_ALLOW_DEV_COREDUMP is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set +CONFIG_SOC_BUS=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_IRQ=y +# CONFIG_DMA_SHARED_BUFFER is not set +CONFIG_DMA_CMA=y + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=16 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 + +# +# Bus devices +# +# CONFIG_ARM_CCI400_PMU is not set +# CONFIG_ARM_CCI5xx_PMU is not set +# CONFIG_ARM_CCN is not set +# CONFIG_BRCMSTB_GISB_ARB is not set +CONFIG_OMAP_INTERCONNECT=y +CONFIG_OMAP_OCP2SCP=y +CONFIG_VEXPRESS_CONFIG=y +# CONFIG_CONNECTOR is not set +CONFIG_MTD=y +# CONFIG_MTD_TESTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=y +# CONFIG_MTD_AR7_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set +# CONFIG_MTD_PARTITIONED_MASTER is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=y +# CONFIG_MTD_CFI_AMDSTD is not set +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_PHYSMAP=y +# CONFIG_MTD_PHYSMAP_COMPAT is not set +CONFIG_MTD_PHYSMAP_OF=y +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_DATAFLASH is not set +# CONFIG_MTD_SST25L is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_BCH=y +CONFIG_MTD_NAND_ECC_BCH=y +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MTD_NAND_DENALI_DT is not set +# CONFIG_MTD_NAND_GPIO is not set +CONFIG_MTD_NAND_OMAP2=y +CONFIG_MTD_NAND_OMAP_BCH=y +CONFIG_MTD_NAND_OMAP_BCH_BUILD=y +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_DOCG4 is not set +# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND_BRCMNAND is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_NAND_HISI504 is not set +# CONFIG_MTD_ONENAND is not set + +# +# LPDDR & LPDDR2 PCM memory drivers +# +# CONFIG_MTD_LPDDR is not set +# CONFIG_MTD_LPDDR2_NVM is not set +# CONFIG_MTD_SPI_NOR is not set +# CONFIG_MTD_UBI is not set +CONFIG_DTC=y +CONFIG_OF=y +# CONFIG_OF_UNITTEST is not set +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_DYNAMIC=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_NET=y +CONFIG_OF_MDIO=y +CONFIG_OF_MTD=y +CONFIG_OF_RESERVED_MEM=y +CONFIG_OF_RESOLVE=y +CONFIG_OF_OVERLAY=y +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_NULL_BLK is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_DRBD is not set +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MG_DISK is not set +# CONFIG_VIRTIO_BLK is not set +# CONFIG_BLK_DEV_RBD is not set + +# +# Misc devices +# +# CONFIG_SENSORS_LIS3LV02D is not set +# CONFIG_AD525X_DPOT is not set +# CONFIG_DUMMY_IRQ is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_DS1682 is not set +# CONFIG_TI_DAC7512 is not set +# CONFIG_ARM_CHARLCD is not set +# CONFIG_BMP085_I2C is not set +# CONFIG_BMP085_SPI is not set +# CONFIG_USB_SWITCH_FSA9480 is not set +# CONFIG_LATTICE_ECP3_CONFIG is not set +# CONFIG_SRAM is not set +CONFIG_VEXPRESS_SYSCFG=y +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_AT24 is not set +# CONFIG_EEPROM_AT25 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +CONFIG_EEPROM_93CX6=y +# CONFIG_EEPROM_93XX46 is not set + +# +# Texas Instruments shared transport line discipline +# +# CONFIG_TI_ST is not set +# CONFIG_SENSORS_LIS3_SPI is not set +# CONFIG_SENSORS_LIS3_I2C is not set + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set + +# +# Intel MIC Bus Driver +# + +# +# SCIF Bus Driver +# + +# +# VOP Bus Driver +# + +# +# Intel MIC Host Driver +# + +# +# Intel MIC Card Driver +# + +# +# SCIF Driver +# + +# +# Intel MIC Coprocessor State Management (COSM) Drivers +# + +# +# VOP Driver +# +# CONFIG_ECHO is not set +# CONFIG_CXL_BASE is not set +# CONFIG_CXL_KERNEL_API is not set +# CONFIG_CXL_EEH is not set + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set +# CONFIG_SCSI_DMA is not set +# CONFIG_SCSI_NETLINK is not set +CONFIG_HAVE_PATA_PLATFORM=y +# CONFIG_ATA is not set +# CONFIG_MD is not set +CONFIG_NETDEVICES=y +CONFIG_MII=y +CONFIG_NET_CORE=y +# CONFIG_BONDING is not set +# CONFIG_DUMMY is not set +# CONFIG_EQUALIZER is not set +# CONFIG_NET_TEAM is not set +# CONFIG_MACVLAN is not set +# CONFIG_IPVLAN is not set +# CONFIG_VXLAN is not set +# CONFIG_MACSEC is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_TUN is not set +# CONFIG_TUN_VNET_CROSS_LE is not set +# CONFIG_VETH is not set +# CONFIG_VIRTIO_NET is not set +# CONFIG_NLMON is not set + +# +# CAIF transport drivers +# +# CONFIG_VHOST_NET is not set +# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set + +# +# Distributed Switch Architecture drivers +# +# CONFIG_NET_DSA_MV88E6XXX is not set +# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set +CONFIG_ETHERNET=y +# CONFIG_ALTERA_TSE is not set +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_AURORA is not set +# CONFIG_NET_CADENCE is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CIRRUS is not set +# CONFIG_DM9000 is not set +# CONFIG_DNET is not set +# CONFIG_NET_VENDOR_EZCHIP is not set +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_HISILICON is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_NETRONOME is not set +# CONFIG_ETHOC is not set +# CONFIG_NET_VENDOR_QUALCOMM is not set +# CONFIG_NET_VENDOR_RENESAS is not set +# CONFIG_NET_VENDOR_ROCKER is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +CONFIG_NET_VENDOR_SMSC=y +# CONFIG_SMC91X is not set +# CONFIG_SMC911X is not set +CONFIG_SMSC911X=y +# CONFIG_SMSC911X_ARCH_HOOKS is not set +# CONFIG_NET_VENDOR_STMICRO is not set +# CONFIG_NET_VENDOR_SYNOPSYS is not set +CONFIG_NET_VENDOR_TI=y +CONFIG_TI_DAVINCI_MDIO=y +CONFIG_TI_DAVINCI_CPDMA=y +CONFIG_TI_CPSW_PHY_SEL=y +CONFIG_TI_CPSW_ALE=y +CONFIG_TI_CPSW=y +CONFIG_TI_CPTS=y +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +CONFIG_PHYLIB=y + +# +# MII PHY device drivers +# +# CONFIG_AQUANTIA_PHY is not set +# CONFIG_AT803X_PHY is not set +# CONFIG_AMD_PHY is not set +# CONFIG_MARVELL_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_QSEMI_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_CICADA_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_TERANETICS_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_BROADCOM_PHY is not set +# CONFIG_BCM7XXX_PHY is not set +# CONFIG_BCM87XX_PHY is not set +# CONFIG_ICPLUS_PHY is not set +# CONFIG_REALTEK_PHY is not set +# CONFIG_NATIONAL_PHY is not set +# CONFIG_STE10XP is not set +# CONFIG_LSI_ET1011C_PHY is not set +# CONFIG_MICREL_PHY is not set +# CONFIG_DP83848_PHY is not set +# CONFIG_DP83867_PHY is not set +# CONFIG_MICROCHIP_PHY is not set +# CONFIG_FIXED_PHY is not set +# CONFIG_MDIO_BITBANG is not set +# CONFIG_MDIO_BUS_MUX_GPIO is not set +# CONFIG_MDIO_BUS_MUX_MMIOREG is not set +# CONFIG_MDIO_BCM_UNIMAC is not set +# CONFIG_MICREL_KS8995MA is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +CONFIG_USB_NET_DRIVERS=y +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_RTL8152 is not set +# CONFIG_USB_LAN78XX is not set +CONFIG_USB_USBNET=y +# CONFIG_USB_NET_AX8817X is not set +# CONFIG_USB_NET_AX88179_178A is not set +# CONFIG_USB_NET_CDCETHER is not set +# CONFIG_USB_NET_CDC_EEM is not set +# CONFIG_USB_NET_CDC_NCM is not set +# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set +# CONFIG_USB_NET_CDC_MBIM is not set +# CONFIG_USB_NET_DM9601 is not set +# CONFIG_USB_NET_SR9700 is not set +# CONFIG_USB_NET_SR9800 is not set +# CONFIG_USB_NET_SMSC75XX is not set +CONFIG_USB_NET_SMSC95XX=y +# CONFIG_USB_NET_GL620A is not set +# CONFIG_USB_NET_NET1080 is not set +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +# CONFIG_USB_NET_ZAURUS is not set +# CONFIG_USB_NET_CX82310_ETH is not set +# CONFIG_USB_NET_KALMIA is not set +# CONFIG_USB_NET_QMI_WWAN is not set +# CONFIG_USB_NET_INT51X1 is not set +# CONFIG_USB_IPHETH is not set +# CONFIG_USB_SIERRA_NET is not set +# CONFIG_USB_NET_CH9200 is not set +# CONFIG_WLAN is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +# CONFIG_WAN is not set +# CONFIG_ISDN is not set +# CONFIG_NVM is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_LEDS is not set +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set +# CONFIG_INPUT_SPARSEKMAP is not set +CONFIG_INPUT_MATRIXKMAP=y + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set +# CONFIG_RMI4_CORE is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_AMBAKMI is not set +# CONFIG_SERIO_LIBPS2 is not set +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_SERIO_APBPS2 is not set +# CONFIG_USERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_N_GSM is not set +# CONFIG_TRACE_SINK is not set +CONFIG_DEVMEM=y +CONFIG_DEVKMEM=y + +# +# Serial drivers +# +CONFIG_SERIAL_EARLYCON=y +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_AMBA_PL010 is not set +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX310X is not set +# CONFIG_SERIAL_UARTLITE is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_OMAP=y +CONFIG_SERIAL_OMAP_CONSOLE=y +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_BCM63XX is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_IFX6X60 is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +# CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set +# CONFIG_SERIAL_ST_ASC is not set +# CONFIG_SERIAL_STM32 is not set +# CONFIG_SERIAL_MVEBU_UART is not set +# CONFIG_TTY_PRINTK is not set +# CONFIG_HVC_DCC is not set +# CONFIG_VIRTIO_CONSOLE is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +CONFIG_HW_RANDOM_BCM2835=y +CONFIG_HW_RANDOM_OMAP=y +# CONFIG_HW_RANDOM_VIRTIO is not set +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_XILLYBUS is not set + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_MUX is not set +CONFIG_I2C_HELPER_AUTO=y + +# +# I2C Hardware Bus support +# + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_BCM2835=y +# CONFIG_I2C_CBUS_GPIO is not set +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set +# CONFIG_I2C_EMEV2 is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_NOMADIK is not set +# CONFIG_I2C_OCORES is not set +CONFIG_I2C_OMAP=y +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_PXA_PCI is not set +# CONFIG_I2C_RK3X is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_VERSATILE is not set +# CONFIG_I2C_XILINX is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_ROBOTFUZZ_OSIF is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_SLAVE is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_ALTERA is not set +# CONFIG_SPI_AXI_SPI_ENGINE is not set +CONFIG_SPI_BCM2835=y +# CONFIG_SPI_BCM2835AUX is not set +# CONFIG_SPI_BITBANG is not set +# CONFIG_SPI_CADENCE is not set +# CONFIG_SPI_DESIGNWARE is not set +# CONFIG_SPI_GPIO is not set +# CONFIG_SPI_FSL_SPI is not set +# CONFIG_SPI_OC_TINY is not set +CONFIG_SPI_OMAP24XX=y +# CONFIG_SPI_TI_QSPI is not set +# CONFIG_SPI_PL022 is not set +# CONFIG_SPI_PXA2XX_PCI is not set +# CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_XCOMM is not set +# CONFIG_SPI_XILINX is not set +# CONFIG_SPI_ZYNQMP_GQSPI is not set + +# +# SPI Protocol Masters +# +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SPI_LOOPBACK_TEST is not set +# CONFIG_SPI_TLE62X0 is not set +# CONFIG_SPMI is not set +# CONFIG_HSI is not set + +# +# PPS support +# +CONFIG_PPS=y +# CONFIG_PPS_DEBUG is not set +# CONFIG_NTP_PPS is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=y +# CONFIG_DP83640_PHY is not set +CONFIG_PINCTRL=y + +# +# Pin controllers +# +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +# CONFIG_PINCTRL_AMD is not set +CONFIG_PINCTRL_SINGLE=y +# CONFIG_PINCTRL_PALMAS is not set +CONFIG_PINCTRL_BCM2835=y +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_DEVRES=y +CONFIG_OF_GPIO=y +CONFIG_GPIOLIB_IRQCHIP=y +CONFIG_DEBUG_GPIO=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=y + +# +# Memory mapped GPIO drivers +# +# CONFIG_GPIO_74XX_MMIO is not set +# CONFIG_GPIO_ALTERA is not set +# CONFIG_GPIO_DWAPB is not set +# CONFIG_GPIO_EM is not set +CONFIG_GPIO_GENERIC_PLATFORM=y +# CONFIG_GPIO_GRGPIO is not set +# CONFIG_GPIO_MPC8XXX is not set +CONFIG_GPIO_OMAP=y +# CONFIG_GPIO_PL061 is not set +# CONFIG_GPIO_SYSCON is not set +# CONFIG_GPIO_XILINX is not set +# CONFIG_GPIO_ZEVIO is not set +# CONFIG_GPIO_ZX is not set + +# +# I2C GPIO expanders +# +# CONFIG_GPIO_ADP5588 is not set +# CONFIG_GPIO_ADNP is not set +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_SX150X is not set +# CONFIG_GPIO_TPIC2810 is not set + +# +# MFD GPIO expanders +# +CONFIG_GPIO_PALMAS=y +# CONFIG_GPIO_TPS65218 is not set +# CONFIG_GPIO_TPS65910 is not set +CONFIG_GPIO_TWL4030=y +# CONFIG_GPIO_TWL6040 is not set + +# +# SPI GPIO expanders +# +# CONFIG_GPIO_74X164 is not set +# CONFIG_GPIO_MAX7301 is not set +# CONFIG_GPIO_MC33880 is not set +# CONFIG_GPIO_PISOSR is not set + +# +# SPI or I2C GPIO expanders +# +# CONFIG_GPIO_MCP23S08 is not set + +# +# USB GPIO expanders +# +# CONFIG_W1 is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_TEST_POWER is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_SBS is not set +# CONFIG_BATTERY_BQ27XXX is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_GPIO is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_BQ24190 is not set +# CONFIG_CHARGER_BQ24257 is not set +# CONFIG_CHARGER_BQ24735 is not set +# CONFIG_CHARGER_BQ25890 is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_CHARGER_TPS65217 is not set +# CONFIG_BATTERY_GAUGE_LTC2941 is not set +# CONFIG_CHARGER_RT9455 is not set +CONFIG_POWER_RESET=y +# CONFIG_POWER_RESET_BRCMSTB is not set +# CONFIG_POWER_RESET_GPIO is not set +# CONFIG_POWER_RESET_GPIO_RESTART is not set +# CONFIG_POWER_RESET_LTC2952 is not set +# CONFIG_POWER_RESET_RESTART is not set +# CONFIG_POWER_RESET_VERSATILE is not set +CONFIG_POWER_RESET_VEXPRESS=y +# CONFIG_POWER_RESET_SYSCON is not set +# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set +CONFIG_POWER_AVS=y +# CONFIG_HWMON is not set +# CONFIG_THERMAL is not set +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +# CONFIG_WATCHDOG_SYSFS is not set + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +# CONFIG_GPIO_WATCHDOG is not set +# CONFIG_XILINX_WATCHDOG is not set +# CONFIG_ZIIRAVE_WATCHDOG is not set +# CONFIG_ARM_SP805_WATCHDOG is not set +# CONFIG_CADENCE_WATCHDOG is not set +# CONFIG_DW_WATCHDOG is not set +CONFIG_OMAP_WATCHDOG=y +# CONFIG_TWL4030_WATCHDOG is not set +# CONFIG_MAX63XX_WATCHDOG is not set +CONFIG_BCM2835_WDT=y +# CONFIG_MEN_A21_WDT is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +# CONFIG_MFD_ACT8945A is not set +# CONFIG_MFD_AS3711 is not set +# CONFIG_MFD_AS3722 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_ATMEL_FLEXCOM is not set +# CONFIG_MFD_ATMEL_HLCDC is not set +# CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_AXP20X_I2C is not set +# CONFIG_MFD_CROS_EC is not set +# CONFIG_MFD_ASIC3 is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_DA9062 is not set +# CONFIG_MFD_DA9063 is not set +# CONFIG_MFD_DA9150 is not set +# CONFIG_MFD_DLN2 is not set +# CONFIG_MFD_MC13XXX_SPI is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_HTC_EGPIO is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_INTEL_SOC_PMIC is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX14577 is not set +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77843 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_MENF21BMC is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_PM8921_CORE is not set +# CONFIG_MFD_RT5033 is not set +# CONFIG_MFD_RTSX_USB is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_RK808 is not set +# CONFIG_MFD_RN5T618 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SKY81452 is not set +# CONFIG_MFD_SMSC is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_STMPE is not set +CONFIG_MFD_SYSCON=y +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP3943 is not set +# CONFIG_MFD_LP8788 is not set +CONFIG_MFD_PALMAS=y +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65086 is not set +# CONFIG_MFD_TPS65090 is not set +CONFIG_MFD_TPS65217=y +CONFIG_MFD_TPS65218=y +# CONFIG_MFD_TPS6586X is not set +CONFIG_MFD_TPS65910=y +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS80031 is not set +CONFIG_TWL4030_CORE=y +CONFIG_TWL4030_POWER=y +CONFIG_MFD_TWL4030_AUDIO=y +CONFIG_TWL6040_CORE=y +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_LM3533 is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_ARIZONA_SPI is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +CONFIG_MFD_VEXPRESS_SYSREG=y +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=y +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_ACT8865 is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_DA9210 is not set +# CONFIG_REGULATOR_DA9211 is not set +# CONFIG_REGULATOR_FAN53555 is not set +# CONFIG_REGULATOR_GPIO is not set +# CONFIG_REGULATOR_ISL9305 is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_LP872X is not set +# CONFIG_REGULATOR_LP8755 is not set +# CONFIG_REGULATOR_LTC3589 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_MAX8973 is not set +# CONFIG_REGULATOR_MT6311 is not set +CONFIG_REGULATOR_PALMAS=y +CONFIG_REGULATOR_PBIAS=y +# CONFIG_REGULATOR_PFUZE100 is not set +# CONFIG_REGULATOR_PV88060 is not set +# CONFIG_REGULATOR_PV88090 is not set +# CONFIG_REGULATOR_PWM is not set +CONFIG_REGULATOR_TI_ABB=y +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +CONFIG_REGULATOR_TPS65217=y +# CONFIG_REGULATOR_TPS65218 is not set +# CONFIG_REGULATOR_TPS6524X is not set +# CONFIG_REGULATOR_TPS65910 is not set +# CONFIG_REGULATOR_TWL4030 is not set +# CONFIG_REGULATOR_VEXPRESS is not set +# CONFIG_MEDIA_SUPPORT is not set + +# +# Graphics support +# +# CONFIG_DRM is not set + +# +# ACP (Audio CoProcessor) Configuration +# +# CONFIG_DRM_AMD_ACP is not set + +# +# Frame buffer Devices +# +# CONFIG_FB is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set +# CONFIG_VGASTATE is not set + +# +# Console display driver support +# +CONFIG_DUMMY_CONSOLE=y +# CONFIG_SOUND is not set + +# +# HID support +# +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +# CONFIG_HIDRAW is not set +# CONFIG_UHID is not set +# CONFIG_HID_GENERIC is not set + +# +# Special HID drivers +# +# CONFIG_HID_A4TECH is not set +# CONFIG_HID_ACRUX is not set +# CONFIG_HID_APPLE is not set +# CONFIG_HID_AUREAL is not set +# CONFIG_HID_BELKIN is not set +# CONFIG_HID_CHERRY is not set +# CONFIG_HID_CHICONY is not set +# CONFIG_HID_CORSAIR is not set +# CONFIG_HID_CMEDIA is not set +# CONFIG_HID_CYPRESS is not set +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_EZKEY is not set +# CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set +# CONFIG_HID_KEYTOUCH is not set +# CONFIG_HID_KYE is not set +# CONFIG_HID_WALTOP is not set +# CONFIG_HID_GYRATION is not set +# CONFIG_HID_ICADE is not set +# CONFIG_HID_TWINHAN is not set +# CONFIG_HID_KENSINGTON is not set +# CONFIG_HID_LCPOWER is not set +# CONFIG_HID_LENOVO is not set +# CONFIG_HID_LOGITECH is not set +# CONFIG_HID_MAGICMOUSE is not set +# CONFIG_HID_MICROSOFT is not set +# CONFIG_HID_MONTEREY is not set +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_ORTEK is not set +# CONFIG_HID_PANTHERLORD is not set +# CONFIG_HID_PETALYNX is not set +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_PLANTRONICS is not set +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_SAITEK is not set +# CONFIG_HID_SAMSUNG is not set +# CONFIG_HID_SPEEDLINK is not set +# CONFIG_HID_STEELSERIES is not set +# CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_RMI is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TIVO is not set +# CONFIG_HID_TOPSEED is not set +# CONFIG_HID_THINGM is not set +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_XINMO is not set +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +# CONFIG_HID_SENSOR_HUB is not set + +# +# USB HID support +# +# CONFIG_USB_HID is not set +# CONFIG_HID_PID is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set + +# +# I2C HID support +# +# CONFIG_I2C_HID is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_USB_ULPI_BUS is not set +# CONFIG_USB_MON is not set +# CONFIG_USB_WUSB_CBAF is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +# CONFIG_USB_XHCI_HCD is not set +# CONFIG_USB_EHCI_HCD is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_FOTG210_HCD is not set +# CONFIG_USB_MAX3421_HCD is not set +# CONFIG_USB_OHCI_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_HCD_TEST_MODE is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USBIP_CORE is not set +CONFIG_USB_MUSB_HDRC=y +CONFIG_USB_MUSB_HOST=y + +# +# Platform Glue Layer +# +# CONFIG_USB_MUSB_TUSB6010 is not set +# CONFIG_USB_MUSB_OMAP2PLUS is not set +CONFIG_USB_MUSB_AM35X=y +# CONFIG_USB_MUSB_DSPS is not set + +# +# MUSB DMA mode +# +# CONFIG_MUSB_PIO_ONLY is not set +# CONFIG_USB_TI_CPPI41_DMA is not set +# CONFIG_USB_DWC3 is not set +CONFIG_USB_DWC2=y +CONFIG_USB_DWC2_HOST=y + +# +# Gadget/Dual-role mode requires USB Gadget support to be enabled +# +# CONFIG_USB_DWC2_DEBUG is not set +# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set +# CONFIG_USB_ISP1760 is not set + +# +# USB port drivers +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_EHSET_TEST_FIXTURE is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +# CONFIG_USB_EZUSB_FX2 is not set +# CONFIG_USB_HSIC_USB3503 is not set +# CONFIG_USB_LINK_LAYER_TEST is not set +# CONFIG_USB_CHAOSKEY is not set + +# +# USB Physical Layer drivers +# +CONFIG_USB_PHY=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_AM335X_CONTROL_USB=y +CONFIG_AM335X_PHY_USB=y +# CONFIG_USB_GPIO_VBUS is not set +# CONFIG_USB_ISP1301 is not set +# CONFIG_USB_ULPI is not set +# CONFIG_USB_GADGET is not set +# CONFIG_USB_LED_TRIG is not set +# CONFIG_UWB is not set +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_SDIO_UART=y +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_PLTFM=y +# CONFIG_MMC_SDHCI_OF_ARASAN is not set +# CONFIG_MMC_SDHCI_OF_AT91 is not set +CONFIG_MMC_SDHCI_BCM2835=y +# CONFIG_MMC_SDHCI_F_SDH30 is not set +# CONFIG_MMC_SDHCI_IPROC is not set +CONFIG_MMC_OMAP=y +CONFIG_MMC_OMAP_HS=y +# CONFIG_MMC_DW is not set +# CONFIG_MMC_VUB300 is not set +# CONFIG_MMC_USHC is not set +# CONFIG_MMC_USDHI6ROL0 is not set +# CONFIG_MMC_MTK is not set +# CONFIG_MEMSTICK is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +# CONFIG_LEDS_CLASS_FLASH is not set + +# +# LED drivers +# +# CONFIG_LEDS_BCM6328 is not set +# CONFIG_LEDS_BCM6358 is not set +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_LM3642 is not set +# CONFIG_LEDS_PCA9532 is not set +CONFIG_LEDS_GPIO=y +# CONFIG_LEDS_LP3944 is not set +# CONFIG_LEDS_LP5521 is not set +# CONFIG_LEDS_LP5523 is not set +# CONFIG_LEDS_LP5562 is not set +# CONFIG_LEDS_LP8501 is not set +# CONFIG_LEDS_LP8860 is not set +# CONFIG_LEDS_PCA955X is not set +# CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_DAC124S085 is not set +# CONFIG_LEDS_PWM is not set +# CONFIG_LEDS_REGULATOR is not set +# CONFIG_LEDS_BD2802 is not set +# CONFIG_LEDS_LT3593 is not set +# CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_TLC591XX is not set +# CONFIG_LEDS_LM355x is not set +# CONFIG_LEDS_IS31FL32XX is not set + +# +# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) +# +# CONFIG_LEDS_BLINKM is not set +# CONFIG_LEDS_SYSCON is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y + +# +# iptables trigger is under Netfilter config (LED target) +# +# CONFIG_LEDS_TRIGGER_TRANSIENT is not set +# CONFIG_LEDS_TRIGGER_CAMERA is not set +# CONFIG_ACCESSIBILITY is not set +CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_EDAC_SUPPORT=y +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_SYSTOHC_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_ABB5ZES3 is not set +# CONFIG_RTC_DRV_ABX80X is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_HYM8563 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_ISL12057 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8523 is not set +# CONFIG_RTC_DRV_PCF85063 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set +# CONFIG_RTC_DRV_TWL4030 is not set +# CONFIG_RTC_DRV_PALMAS is not set +# CONFIG_RTC_DRV_TPS65910 is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8010 is not set +# CONFIG_RTC_DRV_RX8581 is not set +# CONFIG_RTC_DRV_RX8025 is not set +# CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV3029C2 is not set +# CONFIG_RTC_DRV_RV8803 is not set + +# +# SPI RTC drivers +# +# CONFIG_RTC_DRV_M41T93 is not set +# CONFIG_RTC_DRV_M41T94 is not set +# CONFIG_RTC_DRV_DS1305 is not set +# CONFIG_RTC_DRV_DS1343 is not set +# CONFIG_RTC_DRV_DS1347 is not set +# CONFIG_RTC_DRV_DS1390 is not set +# CONFIG_RTC_DRV_R9701 is not set +# CONFIG_RTC_DRV_RX4581 is not set +# CONFIG_RTC_DRV_RX6110 is not set +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_PCF2123 is not set +# CONFIG_RTC_DRV_MCP795 is not set +CONFIG_RTC_I2C_AND_SPI=y + +# +# SPI and I2C RTC drivers +# +# CONFIG_RTC_DRV_DS3232 is not set +# CONFIG_RTC_DRV_PCF2127 is not set + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1685_FAMILY is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_DS2404 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_V3020 is not set +# CONFIG_RTC_DRV_ZYNQMP is not set + +# +# on-CPU RTC drivers +# +CONFIG_RTC_DRV_OMAP=y +# CONFIG_RTC_DRV_PL030 is not set +# CONFIG_RTC_DRV_PL031 is not set +# CONFIG_RTC_DRV_SNVS is not set + +# +# HID Sensor RTC drivers +# +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_OF=y +# CONFIG_AMBA_PL08X is not set +CONFIG_DMA_BCM2835=y +CONFIG_DMA_OMAP=y +# CONFIG_FSL_EDMA is not set +# CONFIG_INTEL_IDMA64 is not set +# CONFIG_NBPFAXI_DMA is not set +# CONFIG_PL330_DMA is not set +CONFIG_TI_CPPI41=y +CONFIG_TI_DMA_CROSSBAR=y +CONFIG_TI_EDMA=y +# CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_HIDMA is not set +# CONFIG_DW_DMAC is not set + +# +# DMA Clients +# +# CONFIG_ASYNC_TX_DMA is not set +# CONFIG_DMATEST is not set +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +# CONFIG_VIRT_DRIVERS is not set +CONFIG_VIRTIO=y + +# +# Virtio drivers +# +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_INPUT is not set +# CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# +# CONFIG_STAGING is not set +# CONFIG_GOLDFISH is not set +# CONFIG_CHROME_PLATFORMS is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +CONFIG_COMMON_CLK_VERSATILE=y +CONFIG_CLK_SP810=y +CONFIG_CLK_VEXPRESS_OSC=y +# CONFIG_COMMON_CLK_SI5351 is not set +# CONFIG_COMMON_CLK_SI514 is not set +# CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_CDCE706 is not set +# CONFIG_COMMON_CLK_CDCE925 is not set +# CONFIG_COMMON_CLK_CS2000_CP is not set +# CONFIG_CLK_TWL6040 is not set +# CONFIG_CLK_QORIQ is not set +# CONFIG_COMMON_CLK_NXP is not set +CONFIG_COMMON_CLK_PALMAS=y +# CONFIG_COMMON_CLK_PWM is not set +# CONFIG_COMMON_CLK_PXA is not set +# CONFIG_COMMON_CLK_TI_ADPLL is not set +CONFIG_HWSPINLOCK=y + +# +# Hardware Spinlock drivers +# +CONFIG_HWSPINLOCK_OMAP=y + +# +# Clock Source drivers +# +CONFIG_CLKSRC_OF=y +CONFIG_CLKSRC_PROBE=y +CONFIG_CLKSRC_MMIO=y +CONFIG_CLKSRC_TI_32K=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +CONFIG_ARM_GLOBAL_TIMER=y +CONFIG_ARM_TIMER_SP804=y +CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y +# CONFIG_ATMEL_PIT is not set +# CONFIG_SH_TIMER_CMT is not set +# CONFIG_SH_TIMER_MTU2 is not set +# CONFIG_SH_TIMER_TMU is not set +# CONFIG_EM_TIMER_STI is not set +CONFIG_CLKSRC_VERSATILE=y +CONFIG_MAILBOX=y +# CONFIG_ARM_MHU is not set +# CONFIG_PL320_MBOX is not set +# CONFIG_OMAP2PLUS_MBOX is not set +# CONFIG_ALTERA_MBOX is not set +CONFIG_BCM2835_MBOX=y +# CONFIG_MAILBOX_TEST is not set +# CONFIG_IOMMU_SUPPORT is not set + +# +# Remoteproc drivers +# +CONFIG_REMOTEPROC=y +# CONFIG_STE_MODEM_RPROC is not set +CONFIG_WKUP_M3_RPROC=y + +# +# Rpmsg drivers +# + +# +# SOC (System On Chip) specific Drivers +# +CONFIG_RASPBERRYPI_POWER=y +# CONFIG_SOC_BRCMSTB is not set +# CONFIG_SUNXI_SRAM is not set +CONFIG_SOC_TI=y +CONFIG_PM_DEVFREQ=y + +# +# DEVFREQ Governors +# +# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set +# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set +# CONFIG_DEVFREQ_GOV_POWERSAVE is not set +# CONFIG_DEVFREQ_GOV_USERSPACE is not set + +# +# DEVFREQ Drivers +# +# CONFIG_PM_DEVFREQ_EVENT is not set +# CONFIG_EXTCON is not set +CONFIG_MEMORY=y +# CONFIG_ARM_PL172_MPMC is not set +CONFIG_TI_EMIF=y +CONFIG_OMAP_GPMC=y +# CONFIG_OMAP_GPMC_DEBUG is not set +# CONFIG_IIO is not set +CONFIG_PWM=y +CONFIG_PWM_SYSFS=y +CONFIG_PWM_BCM2835=y +# CONFIG_PWM_FSL_FTM is not set +# CONFIG_PWM_OMAP_DMTIMER is not set +# CONFIG_PWM_PCA9685 is not set +# CONFIG_PWM_TIECAP is not set +# CONFIG_PWM_TIEHRPWM is not set +# CONFIG_PWM_TWL is not set +# CONFIG_PWM_TWL_LED is not set +CONFIG_IRQCHIP=y +CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_MAX_NR=1 +CONFIG_OMAP_IRQCHIP=y +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set +# CONFIG_FMC is not set + +# +# PHY Subsystem +# +# CONFIG_GENERIC_PHY is not set +# CONFIG_PHY_DM816X_USB is not set +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_OMAP_CONTROL_PHY is not set +# CONFIG_OMAP_USB2 is not set +# CONFIG_TI_PIPE3 is not set +# CONFIG_BCM_KONA_USB2_PHY is not set +# CONFIG_PHY_SAMSUNG_USB2 is not set +# CONFIG_POWERCAP is not set +# CONFIG_MCB is not set + +# +# Performance monitor support +# +CONFIG_ARM_PMU=y +# CONFIG_RAS is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_NVMEM is not set +# CONFIG_STM is not set +# CONFIG_INTEL_TH is not set + +# +# FPGA Configuration Support +# +# CONFIG_FPGA is not set + +# +# Firmware Drivers +# +# CONFIG_FIRMWARE_MEMMAP is not set +CONFIG_RASPBERRYPI_FIRMWARE=y +CONFIG_HAVE_ARM_SMCCC=y + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +CONFIG_EXT3_FS=y +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set +CONFIG_EXT4_FS=y +# CONFIG_EXT4_FS_POSIX_ACL is not set +# CONFIG_EXT4_FS_SECURITY is not set +# CONFIG_EXT4_ENCRYPTION is not set +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +# CONFIG_F2FS_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +CONFIG_FILE_LOCKING=y +# CONFIG_MANDATORY_FILE_LOCKING is not set +# CONFIG_FS_ENCRYPTION is not set +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +CONFIG_QUOTA=y +# CONFIG_QUOTA_NETLINK_INTERFACE is not set +CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_TREE=y +# CONFIG_QFMT_V1 is not set +CONFIG_QFMT_V2=y +CONFIG_QUOTACTL=y +CONFIG_AUTOFS4_FS=y +# CONFIG_FUSE_FS is not set +# CONFIG_OVERLAY_FS is not set + +# +# Caches +# +# CONFIG_FSCACHE is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_FAT_DEFAULT_UTF8 is not set +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +# CONFIG_PROC_CHILDREN is not set +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_CONFIGFS_FS=y +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V2=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +# CONFIG_NFS_SWAP is not set +# CONFIG_NFS_V4_1 is not set +CONFIG_ROOT_NFS=y +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFSD is not set +CONFIG_GRACE_PERIOD=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +# CONFIG_SUNRPC_DEBUG is not set +# CONFIG_CEPH_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set +# CONFIG_NLS_UTF8 is not set +# CONFIG_DLM is not set + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_DYNAMIC_DEBUG is not set + +# +# Compile-time checks and compiler options +# +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_INFO_REDUCED is not set +# CONFIG_DEBUG_INFO_SPLIT is not set +# CONFIG_DEBUG_INFO_DWARF4 is not set +# CONFIG_GDB_SCRIPTS is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1024 +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_READABLE_ASM is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_PAGE_OWNER is not set +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_DEBUG_KERNEL=y + +# +# Memory Debugging +# +CONFIG_PAGE_EXTENSION=y +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_PAGE_POISONING=y +# CONFIG_PAGE_POISONING_NO_SANITY is not set +# CONFIG_PAGE_POISONING_ZERO is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_DEBUG_HIGHMEM is not set +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Lockups and Hangs +# +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_DETECT_HUNG_TASK is not set +# CONFIG_WQ_WATCHDOG is not set +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +# CONFIG_SCHED_DEBUG is not set +# CONFIG_SCHED_INFO is not set +# CONFIG_SCHEDSTATS is not set +# CONFIG_SCHED_STACK_END_CHECK is not set +# CONFIG_DEBUG_TIMEKEEPING is not set +# CONFIG_TIMER_STATS is not set + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +CONFIG_STACKTRACE=y +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_PI_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_PROVE_RCU is not set +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_TORTURE_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=21 +# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_EQS_DEBUG is not set +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_LATENCYTOP is not set +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set + +# +# Runtime Testing +# +# CONFIG_LKDTM is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_USER_COPY is not set +# CONFIG_TEST_BPF is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_UDELAY is not set +# CONFIG_MEMTEST is not set +# CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_UBSAN is not set +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y +# CONFIG_STRICT_DEVMEM is not set +# CONFIG_ARM_PTDUMP is not set +CONFIG_ARM_UNWIND=y +# CONFIG_DEBUG_USER is not set +# CONFIG_DEBUG_LL is not set +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +# CONFIG_DEBUG_UART_8250 is not set +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" +# CONFIG_PID_IN_CONTEXTIDR is not set +# CONFIG_DEBUG_SET_MODULE_RONX is not set +# CONFIG_CORESIGHT is not set + +# +# Security options +# +CONFIG_KEYS=y +# CONFIG_PERSISTENT_KEYRINGS is not set +# CONFIG_BIG_KEYS is not set +# CONFIG_ENCRYPTED_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +# CONFIG_CRYPTO_RSA is not set +# CONFIG_CRYPTO_MANAGER is not set +# CONFIG_CRYPTO_MANAGER2 is not set +# CONFIG_CRYPTO_USER is not set +# CONFIG_CRYPTO_GF128MUL is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_PCRYPT is not set +# CONFIG_CRYPTO_CRYPTD is not set +# CONFIG_CRYPTO_MCRYPTD is not set +# CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_TEST is not set + +# +# Authenticated Encryption with Associated Data +# +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_SEQIV is not set +# CONFIG_CRYPTO_ECHAINIV is not set + +# +# Block modes +# +# CONFIG_CRYPTO_CBC is not set +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +# CONFIG_CRYPTO_ECB is not set +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_KEYWRAP is not set + +# +# Hash modes +# +# CONFIG_CRYPTO_CMAC is not set +# CONFIG_CRYPTO_HMAC is not set +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_CRCT10DIF=y +# CONFIG_CRYPTO_GHASH is not set +# CONFIG_CRYPTO_POLY1305 is not set +# CONFIG_CRYPTO_MD4 is not set +# CONFIG_CRYPTO_MD5 is not set +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_RMD256 is not set +# CONFIG_CRYPTO_RMD320 is not set +# CONFIG_CRYPTO_SHA1 is not set +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_ANUBIS is not set +# CONFIG_CRYPTO_ARC4 is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_DES is not set +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_CHACHA20 is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_TWOFISH is not set + +# +# Compression +# +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_LZO is not set +# CONFIG_CRYPTO_842 is not set +# CONFIG_CRYPTO_LZ4 is not set +# CONFIG_CRYPTO_LZ4HC is not set + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +# CONFIG_CRYPTO_DRBG_MENU is not set +# CONFIG_CRYPTO_JITTERENTROPY is not set +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +# CONFIG_CRYPTO_USER_API_RNG is not set +# CONFIG_CRYPTO_USER_API_AEAD is not set +# CONFIG_CRYPTO_HW is not set +# CONFIG_ASYMMETRIC_KEY_TYPE is not set + +# +# Certificates for signature checking +# +# CONFIG_SYSTEM_TRUSTED_KEYRING is not set +# CONFIG_ARM_CRYPTO is not set +# CONFIG_BINARY_PRINTF is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_HAVE_ARCH_BITREVERSE=y +CONFIG_RATIONAL=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_NET_UTILS=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IO=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +# CONFIG_CRC_CCITT is not set +CONFIG_CRC16=y +# CONFIG_CRC_T10DIF is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC7 is not set +# CONFIG_LIBCRC32C is not set +# CONFIG_CRC8 is not set +CONFIG_AUDIT_GENERIC=y +# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_BCH=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_DMA=y +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_NLATTR=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y +# CONFIG_CORDIC is not set +CONFIG_DDR=y +# CONFIG_IRQ_POLL is not set +CONFIG_LIBFDT=y +CONFIG_OID_REGISTRY=y +# CONFIG_SG_SPLIT is not set +CONFIG_ARCH_HAS_SG_CHAIN=y +CONFIG_VIRTUALIZATION=y diff --git a/configs/platform-v7a/patches/barebox-2016.05.0/0001-bootstate-add-framework-for-redundant-boot-scenarios.patch b/configs/platform-v7a/patches/barebox-2016.05.0/0001-bootstate-add-framework-for-redundant-boot-scenarios.patch new file mode 100644 index 0000000..08b17de --- /dev/null +++ b/configs/platform-v7a/patches/barebox-2016.05.0/0001-bootstate-add-framework-for-redundant-boot-scenarios.patch @@ -0,0 +1,1467 @@ +From: Marc Kleine-Budde <mkl@pengutronix.de> +Date: Fri, 20 Feb 2015 09:19:14 +0100 +Subject: [PATCH] bootstate: add framework for redundant boot scenarios + +There are several use cases where a redundant Linux system is needed. The +barebox,bootstate framework provides the building blocks to model different +use cases without the need to start from the scratch over and over again. + +Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> +--- + .../bindings/barebox/barebox,bootstate.rst | 236 +++++++ + arch/sandbox/dts/sandbox.dts | 83 +++ + commands/Kconfig | 5 + + commands/Makefile | 1 + + commands/bootchooser.c | 101 +++ + common/Kconfig | 8 + + common/Makefile | 1 + + common/bootstate.c | 781 +++++++++++++++++++++ + drivers/misc/Kconfig | 5 + + drivers/misc/Makefile | 1 + + drivers/misc/bootstate.c | 79 +++ + include/bootstate.h | 39 + + 12 files changed, 1340 insertions(+) + create mode 100644 Documentation/devicetree/bindings/barebox/barebox,bootstate.rst + create mode 100644 commands/bootchooser.c + create mode 100644 common/bootstate.c + create mode 100644 drivers/misc/bootstate.c + create mode 100644 include/bootstate.h + +diff --git a/Documentation/devicetree/bindings/barebox/barebox,bootstate.rst b/Documentation/devicetree/bindings/barebox/barebox,bootstate.rst +new file mode 100644 +index 000000000000..0f7131536798 +--- /dev/null ++++ b/Documentation/devicetree/bindings/barebox/barebox,bootstate.rst +@@ -0,0 +1,236 @@ ++barebox bootstate ++================= ++ ++Overview ++-------- ++ ++There are several use cases where a redundant Linux system is needed. ++The ``barebox,bootstate`` framework provides the building blocks to ++model different use cases without the need to start from the scratch ++over and over again. ++ ++The ``barebox,bootstate`` works on abstract boot targets, each with a ++set of properties and implements an algorithm which selects the ++highest priority target to boot. ++ ++A set of boot targets can be described in a devicetree node. This ++node could be part of the regular devicetree blob or it could be an ++extra devicetree for the bootstate. ++ ++A bootstate node contains a description of a set of boot targets along ++with a place where to store the mutable state. Currently implemented ++backends are :ref:`barebox,state` and ``nv`` (:ref:`command_nv`) ++variables. ++ ++Required properties: ++ ++* ``compatible``: should be ``barebox,bootstate``; ++* ``backend-type``: should be ``state`` or ``nv``. ++ ++Optional properties: ++ ++* ``backend``: phandle to the :ref:`barebox,state` backend ++ ++ ++boot target nodes - immutable description ++----------------------------------------- ++ ++These are subnodes of a bootstate node, each describing a boot ++target. The node name may end with ``@<ADDRESS>``, but the suffix is ++stripped from the target name. ++ ++Optional properties: ++ ++* ``default_attempts``: If the boot attempts counter is reset, this ++ value is used. ++ ++Example:: ++ ++ bootstate: bootstate { ++ compatible = "barebox,bootstate"; ++ backend-type = "state"; ++ backend = <&state>; ++ ++ system0 { ++ default_attempts = <3>; ++ }; ++ ++ system1 { ++ default_attempts = <3>; ++ }; ++ }; ++ ++In this example a bootstate, using a :ref:`barebox,state` backend with ++two boot target nodes ``system0`` and ``system1`` is defined. When the ++boot attempts counter is reset, the default value of ``3`` is used for ++both targets. ++ ++ ++boot target nodes - mutable state ++--------------------------------- ++ ++The above example uses a :ref:`barebox,state` backend, which requires ++some additional configuration to hold the mutable ++state. :ref:`barebox,state` has to be explicidly configured, while ++``nv`` (:ref:`command_nv`) variables are created on the fly. ++ ++The state of each boot target consists of the following ``uint32`` ++varibles: ++ ++* ``remaining_attempts``: holds the number of remaining boot attempts. ++ This variable is changed by the bootstate algorithm during boot. ++* ``priority``: defines the priority of the boot target. Higher number ++ indicate a higher priority, If two boot targets have the same ++ priority the one defined first in the device tree has precedence. ++ The ``priority`` can optionally be changed by the algorithm to 0, if ++ the boot target is decremented to ``0`` remaining boot attempts. A ++ ``priority`` of ``0`` means the boot target is **deactivated** and ++ will not be considered a valid target during further boots. If the ++ remaining attempts counter is reset, a target with priority 0 is ++ **not** changed. ++* ``ok``: this is an opaque value, it's not accessed by the bootstate ++ algorithm. It can be used be the Linux system to track the first ++ boot after an update. ++ ++The bootstate can also hold a default watchdog timeout (in seconds), ++which can be activated by the bootstate algorithm. ++ ++Example:: ++ ++ state: state { ++ magic = <0x4d433230>; ++ compatible = "barebox,state"; ++ backend-type = "raw"; ++ backend = <&backend_state>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ bootstate { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ system0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ remaining_attempts { ++ reg = <0x0 0x4>; ++ type = "uint32"; ++ }; ++ priority { ++ reg = <0x4 0x4>; ++ type = "uint32"; ++ }; ++ ok { ++ reg = <0x8 0x4>; ++ type = "uint32"; ++ }; ++ }; ++ ++ system1 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ remaining_attempts { ++ reg = <0x10 0x4>; ++ type = "uint32"; ++ }; ++ priority { ++ reg = <0x14 0x4>; ++ type = "uint32"; ++ }; ++ ok { ++ reg = <0x18 0x4>; ++ type = "uint32"; ++ }; ++ }; ++ ++ watchdog_timeout { ++ reg = <0x20 0x4>; ++ type = "uint32"; ++ default = <60>; ++ }; ++ }; ++ }; ++ ++This example defines two boot targets (``system0`` and ``system1``) and ++a watchdog timeout of ``60`` seconds. ++ ++ ++Backends ++-------- ++ ++Currently two backends exist. The :ref:`barebox,state` backend is a ++bit more complicated to setup, as all boot target have to be described ++in the referenced :ref:`barebox,state` in the device tree. On the ++upside, the advantages of the (possible redundant storage, etc...) of ++the :ref:`barebox,state` is gained for free. ++ ++The :ref:`command_nv` backend is a lot simpler, no special setup is ++needed, it should run on every board, which already implements a ++read/writeable barebox environment. ++ ++ ++Algorithm ++--------- ++ ++The low level algorithm is implemented by the ++``bootstate_get_target()`` function. Its job is to iterate over all ++boot sources and return the name (as a string) of the choosen boot ++target. ++ ++The algorithm iterates over all boot targets defined under the ++associated device tree node and picks the one with the highest ++``priority`` (higher number have a higher priority) where the ++``remaining_attempts`` is greater than zero. A pointer to the name of ++the boot target is returned, the string should be freed via ``free()``. ++ ++The behaviour can be modified with the flags paramter. The following ++flags are currently supported: ++ ++* ``BOOTCHOOSER_FLAG_ATTEMPTS_KEEP``: the ``remaining_attempts`` ++ counter of the choosen boot target is not changed. ++* ``BOOTCHOOSER_FLAG_ATTEMPTS_DEC``: the ``remaining_attempts`` ++ counter of the choosen boot target is decremented by one. ++* ``BOOTCHOOSER_FLAG_ATTEMPTS_RESET``: the ``remaining_attempts`` ++ counter of all *active* boot targets (those with ``priority > 0``) ++ are reset to their default values as defined in the immutable ++ description by ``default_attempts``. ++* ``BOOTCHOOSER_FLAG_DEACTIVATE_ON_ZERO_ATTEMPTS``: if used together ++ with ``BOOTCHOOSER_FLAG_ATTEMPTS_DEC`` and the ++ ``remaining_attempts`` counter of the choosen boot target is ++ decremented to ``0``, the boot target is deactivated for further ++ boot attempts (although *this* boot is attemped as usual). This is ++ done by setting the ``priority`` to ``0``. ++* ``BOOTCHOOSER_FLAG_VERBOSE``: increases the verbosity of the output ++ ++ ++Frontend ++-------- ++ ++The shell command ``bootchooser`` (:ref:`command_bootchooser`) can be ++used to choose and start a boot target by a shell one-liner. The ++command picks the boot target with the highest priority and calls the ++``boot`` (:ref:`command_boot`) command with the selected boot target ++as its first and only parameter. ++ ++The ``bootchooser`` command implements command line paramter versions ++of the above described flags: ++ ++* ``-k``: keep boot attempts ++* ``-d``: decrement boot attempts ++* ``-r``: reset boot attempts ++* ``-z``: deactivate on zero remaining attempts ++* ``-v``: verbose output ++ ++Next to the standard parameters, these additional options are ++implemented: ++ ++* ``-D``: dryrun - do not boot (all other functionality is active) - a ++ specified watchdog timeout will be activated. ++* ``-R``: retry - if booting fails, then chose next target, but ++ decrement its attempts. Note: if the current target has still the ++ highest priority and remaining attemts, it will be selected again. ++* ``-w <TIMEOUT_IN_SEC>``: activate watchdog - if no parameter is ++ given, the timeout from the device tree is used. A given parameter ++ overwrites the device tree default. +diff --git a/arch/sandbox/dts/sandbox.dts b/arch/sandbox/dts/sandbox.dts +index 2595aa13fa62..e2bc8f76c2e3 100644 +--- a/arch/sandbox/dts/sandbox.dts ++++ b/arch/sandbox/dts/sandbox.dts +@@ -3,5 +3,88 @@ + #include "skeleton.dtsi" + + / { ++ aliases { ++ state = &state; ++ }; + ++ state: state { ++ magic = <0x4d433230>; ++ compatible = "barebox,state"; ++ backend-type = "dtb"; ++ backend = "/fd0"; ++ ++ bootstate { ++ system0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ remaining_attempts { ++ reg = <0x0 0x4>; ++ type = "uint32"; ++ }; ++ priority { ++ reg = <0x4 0x4>; ++ type = "uint32"; ++ }; ++ ok { ++ reg = <0x8 0x4>; ++ type = "uint32"; ++ }; ++ }; ++ ++ system1 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ remaining_attempts { ++ reg = <0x10 0x4>; ++ type = "uint32"; ++ }; ++ priority { ++ reg = <0x14 0x4>; ++ type = "uint32"; ++ }; ++ ok { ++ reg = <0x18 0x4>; ++ type = "uint32"; ++ }; ++ }; ++ ++ factory { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ remaining_attempts { ++ reg = <0x20 0x4>; ++ type = "uint32"; ++ }; ++ priority { ++ reg = <0x24 0x4>; ++ type = "uint32"; ++ }; ++ ok { ++ reg = <0x28 0x4>; ++ type = "uint32"; ++ }; ++ }; ++ }; ++ }; ++ ++ bootstate: bootstate { ++ compatible = "barebox,bootstate"; ++ backend-type = "state"; // or "nv", or "efivar" ++ backend = <&state>; ++ ++ system0 { ++ default_attempts = <3>; ++ }; ++ ++ system1 { ++ default_attempts = <3>; ++ }; ++ ++ factory { ++ default_attempts = <3>; ++ }; ++ }; + }; +diff --git a/commands/Kconfig b/commands/Kconfig +index 875c5f4f01ed..603e887b15ec 100644 +--- a/commands/Kconfig ++++ b/commands/Kconfig +@@ -2189,6 +2189,11 @@ config CMD_SPD_DECODE + help + decode spd eeprom + ++config CMD_BOOTCHOOSER ++ tristate ++ depends on BOOTSTATE ++ prompt "bootchooser" ++ + # end Miscellaneous commands + endmenu + +diff --git a/commands/Makefile b/commands/Makefile +index f1b482f04934..bb3b40809af5 100644 +--- a/commands/Makefile ++++ b/commands/Makefile +@@ -117,3 +117,4 @@ obj-$(CONFIG_CMD_DHRYSTONE) += dhrystone.o + obj-$(CONFIG_CMD_SPD_DECODE) += spd_decode.o + obj-$(CONFIG_CMD_MMC_EXTCSD) += mmc_extcsd.o + obj-$(CONFIG_CMD_NAND_BITFLIP) += nand-bitflip.o ++obj-$(CONFIG_CMD_BOOTCHOOSER) += bootchooser.o +diff --git a/commands/bootchooser.c b/commands/bootchooser.c +new file mode 100644 +index 000000000000..06ca5e41d527 +--- /dev/null ++++ b/commands/bootchooser.c +@@ -0,0 +1,101 @@ ++/* ++ * Copyright (C) 2012 Jan Luebbe <j.luebbe@pengutronix.de> ++ * Copyright (C) 2015 Marc Kleine-Budde <mkl@pengutronix.de> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include <bootstate.h> ++#include <command.h> ++#include <common.h> ++#include <getopt.h> ++#include <malloc.h> ++#include <stdio.h> ++ ++static int do_bootchooser(int argc, char *argv[]) ++{ ++ unsigned flags = 0, timeout = 0; ++ char *name = NULL; ++ int opt, ret; ++ ++ while ((opt = getopt(argc, argv, "kdrzvDRw::")) > 0) { ++ switch (opt) { ++ case 'k': ++ flags |= BOOTCHOOSER_FLAG_ATTEMPTS_KEEP; ++ break; ++ case 'd': ++ flags |= BOOTCHOOSER_FLAG_ATTEMPTS_DEC; ++ break; ++ case 'r': ++ flags |= BOOTCHOOSER_FLAG_ATTEMPTS_RESET; ++ break; ++ case 'z': ++ flags |= BOOTCHOOSER_FLAG_DEACTIVATE_ON_ZERO_ATTEMPTS; ++ break; ++ case 'v': ++ flags |= BOOTCHOOSER_FLAG_VERBOSE; ++ break; ++ case 'D': ++ flags |= BOOTCHOOSER_FLAG_DRYRUN; ++ break; ++ case 'R': ++ flags |= BOOTCHOOSER_FLAG_RETRY_WITH_DEC; ++ break; ++ case 'w': ++ if (optarg) ++ timeout = simple_strtoul(optarg, NULL, 0); ++ else ++ flags |= BOOTCHOOSER_FLAG_WATCHDOG_TIMEOUT_FROM_STATE; ++ flags |= BOOTCHOOSER_FLAG_WATCHDOG_ENABLE; ++ break; ++ default: ++ return COMMAND_ERROR_USAGE; ++ } ++ } ++ ++ if (optind < argc) ++ name = argv[optind]; ++ ++ if (!(flags & (BOOTCHOOSER_FLAG_ATTEMPTS_KEEP | ++ BOOTCHOOSER_FLAG_ATTEMPTS_DEC | ++ BOOTCHOOSER_FLAG_ATTEMPTS_RESET))) { ++ bootstate_info(); ++ return 0; ++ } ++ ++ if ((flags & BOOTCHOOSER_FLAG_ATTEMPTS_KEEP) && ++ (flags & (BOOTCHOOSER_FLAG_ATTEMPTS_DEC | BOOTCHOOSER_FLAG_ATTEMPTS_RESET))) ++ return COMMAND_ERROR_USAGE; ++ ++ ret = bootstate_bootchooser(name, flags, timeout); ++ ++ return ret ? COMMAND_ERROR : COMMAND_SUCCESS; ++} ++ ++BAREBOX_CMD_HELP_START(bootchooser) ++BAREBOX_CMD_HELP_TEXT("Options:") ++BAREBOX_CMD_HELP_OPT ("-k","keep - boot, don't modify attempts counter") ++BAREBOX_CMD_HELP_OPT ("-d","decrement - boot, but decrement attempts counter by one") ++BAREBOX_CMD_HELP_OPT ("-r","reset - boot, but reset _all_ attempts counters to default") ++BAREBOX_CMD_HELP_OPT ("-z","deactivate chosen target on zero remaining boot attempts") ++BAREBOX_CMD_HELP_OPT ("-v","verbose output") ++BAREBOX_CMD_HELP_OPT ("-D","dryrun - do not boot, but handle watchdog and reset") ++BAREBOX_CMD_HELP_OPT ("-R","retry - boot, retry next boot target and decrement attempts") ++BAREBOX_CMD_HELP_OPT ("-w","activate watchdog, use timeout specified in <BOOTSTATE>.watchdog_timeout") ++BAREBOX_CMD_HELP_END ++ ++BAREBOX_CMD_START(bootchooser) ++ .cmd = do_bootchooser, ++ BAREBOX_CMD_DESC("automatically select a boot target and boot") ++ BAREBOX_CMD_OPTS("[-kdrzvDR] -w <TIMEOUT> [BOOTSTATE]") ++ BAREBOX_CMD_GROUP(CMD_GRP_MISC) ++ BAREBOX_CMD_HELP(cmd_bootchooser_help) ++BAREBOX_CMD_END +diff --git a/common/Kconfig b/common/Kconfig +index 7c09e8c117f1..f17769661ee6 100644 +--- a/common/Kconfig ++++ b/common/Kconfig +@@ -792,6 +792,14 @@ config STATE_CRYPTO + See Documentation/devicetree/bindings/barebox/barebox,state.rst + for more information. + ++config BOOTSTATE ++ bool "bootstate infrastructure" ++ depends on OF_BAREBOX_DRIVERS ++ select ENVIRONMENT_VARIABLES ++ select OFTREE ++ select PARAMETER ++ select BOOTSTATE_DRV ++ + config RESET_SOURCE + bool "detect Reset cause" + depends on GLOBALVAR +diff --git a/common/Makefile b/common/Makefile +index d99ca7b7ac74..5505449874ad 100644 +--- a/common/Makefile ++++ b/common/Makefile +@@ -46,6 +46,7 @@ obj-$(CONFIG_SHELL_HUSH) += hush.o + obj-$(CONFIG_SHELL_SIMPLE) += parser.o + obj-$(CONFIG_STATE) += state.o + obj-$(CONFIG_RATP) += ratp.o ++obj-$(CONFIG_BOOTSTATE) += bootstate.o + obj-$(CONFIG_UIMAGE) += image.o uimage.o + obj-$(CONFIG_FITIMAGE) += image-fit.o + obj-$(CONFIG_MENUTREE) += menutree.o +diff --git a/common/bootstate.c b/common/bootstate.c +new file mode 100644 +index 000000000000..3dc18813064d +--- /dev/null ++++ b/common/bootstate.c +@@ -0,0 +1,781 @@ ++/* ++ * Copyright (C) 2012 Jan Luebbe <j.luebbe@pengutronix.de> ++ * Copyright (C) 2015 Marc Kleine-Budde <mkl@pengutronix.de> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include <bootstate.h> ++#include <common.h> ++#include <envfs.h> ++#include <environment.h> ++#include <errno.h> ++#include <fcntl.h> ++#include <fs.h> ++#include <globalvar.h> ++#include <init.h> ++#include <ioctl.h> ++#include <libbb.h> ++#include <libfile.h> ++#include <malloc.h> ++#include <net.h> ++#include <printk.h> ++#include <state.h> ++#include <stdio.h> ++#include <watchdog.h> ++#include <xfuncs.h> ++ ++#include <linux/err.h> ++#include <linux/kernel.h> ++#include <linux/list.h> ++#include <linux/mtd/mtd-abi.h> ++#include <linux/mtd/mtd.h> ++ ++#include <asm/unaligned.h> ++ ++/* list of all registered bootstate instances */ ++static LIST_HEAD(bootstate_list); ++ ++struct state_backend; ++ ++struct bootstate { ++ struct device_d dev; ++ const char *name; ++ struct list_head list; ++ struct list_head targets; ++ struct list_head targets_unsorted; ++ struct bootstate_backend *backend; ++ bool dirty; ++}; ++ ++struct bootstate_backend { ++ int (*load)(struct bootstate_backend *backend, struct bootstate *bootstate); ++ int (*save)(struct bootstate_backend *backend, struct bootstate *bootstate); ++ const char *name; ++ const char *path; ++}; ++ ++struct bootstate_target { ++ struct list_head list; ++ struct list_head list_unsorted; ++ ++ /* state */ ++ unsigned int priority; ++ unsigned int remaining_attempts; ++ bool ok; ++ ++ /* spec */ ++ const char *name; ++ unsigned int default_attempts; ++}; ++ ++static void pr_target(struct bootstate *bootstate, struct bootstate_target *target) ++{ ++ printf("%s: target: name=%s prio=%u, ok=%d, rem=%u, def=%u\n", ++ bootstate->name, target->name, target->priority, target->ok, ++ target->remaining_attempts, target->default_attempts); ++} ++ ++static struct bootstate *bootstate_new(const char *name) ++{ ++ struct bootstate *bootstate; ++ int ret; ++ ++ bootstate = xzalloc(sizeof(*bootstate)); ++ safe_strncpy(bootstate->dev.name, name, MAX_DRIVER_NAME); ++ bootstate->name = bootstate->dev.name; ++ bootstate->dev.id = DEVICE_ID_DYNAMIC; ++ INIT_LIST_HEAD(&bootstate->targets); ++ INIT_LIST_HEAD(&bootstate->targets_unsorted); ++ ++ ret = register_device(&bootstate->dev); ++ if (ret) { ++ free(bootstate); ++ return ERR_PTR(ret); ++ } ++ ++ list_add_tail(&bootstate->list, &bootstate_list); ++ ++ return bootstate; ++} ++ ++void bootstate_release(struct bootstate *bootstate) ++{ ++ list_del(&bootstate->list); ++ unregister_device(&bootstate->dev); ++ free(bootstate); ++} ++ ++static int bootstate_target_compare(struct list_head *a, struct list_head *b) ++{ ++ struct bootstate_target *bootstate_a = list_entry(a, struct bootstate_target, list); ++ struct bootstate_target *bootstate_b = list_entry(b, struct bootstate_target, list); ++ ++ /* order descending */ ++ return bootstate_a->priority >= bootstate_b->priority ? -1 : 1; ++} ++ ++static void bootstate_target_add(struct bootstate *bootstate, struct bootstate_target *target) ++{ ++ list_del(&target->list); ++ list_add_sort(&target->list, &bootstate->targets, bootstate_target_compare); ++} ++ ++static int bootstate_variable_read_u32(const struct bootstate *bootstate, ++ const char *name, uint32_t *out_val) ++{ ++ char *var; ++ int ret; ++ ++ var = asprintf("%s.%s.%s", bootstate->backend->path, bootstate->name, name); ++ ret = getenv_uint(var, out_val); ++ free(var); ++ ++ return ret; ++} ++ ++static int bootstate_backend_variable_read_target_u32(const struct bootstate_backend *backend, ++ const struct bootstate *bootstate, ++ const struct bootstate_target *target, ++ const char *name, uint32_t *out_val) ++{ ++ char *var; ++ int ret; ++ ++ var = asprintf("%s.%s.%s.%s", backend->path, bootstate->name, ++ target->name, name); ++ ret = getenv_uint(var, out_val); ++ free(var); ++ ++ return ret; ++} ++ ++static int bootstate_backend_variable_write_target_u32(const struct bootstate_backend *backend, ++ const struct bootstate *bootstate, ++ const struct bootstate_target *target, ++ const char *name, uint32_t in_val) ++{ ++ char *var; ++ char *val; ++ int ret; ++ ++ var = asprintf("%s.%s.%s.%s", backend->path, bootstate->name, ++ target->name, name); ++ val = asprintf("%d", in_val); ++ ret = setenv(var, val); ++ free(val); ++ free(var); ++ ++ return ret; ++} ++ ++static int bootstate_variable_nv_init_u32(const struct bootstate_backend *backend, ++ const struct bootstate *bootstate, ++ const struct bootstate_target *target, ++ const char *name) ++{ ++ char *var; ++ int ret; ++ ++ var = asprintf("%s.%s.%s", bootstate->name, target->name, name); ++ ret = nvvar_add(var, "0"); ++ free(var); ++ ++ return ret; ++} ++ ++static struct bootstate_target *bootstate_target_find(const struct bootstate *bootstate, ++ const char *name) ++{ ++ struct bootstate_target *target; ++ ++ list_for_each_entry(target, &bootstate->targets, list) { ++ if (!strcmp(target->name, name)) ++ return target; ++ } ++ ++ return ERR_PTR(-ENOENT); ++} ++ ++static int bootstate_target_from_node(struct bootstate *bootstate, const struct device_node *node, bool create) ++{ ++ struct bootstate_target *target; ++ char *name, *indexs; ++ int ret; ++ ++ name = xstrdup(node->name); ++ indexs = strchr(name, '@'); ++ if (indexs) ++ *indexs++ = 0; ++ ++ if (create) { ++ /* create*/ ++ target = xzalloc(sizeof(*target)); ++ ++ target->name = xstrdup(name); ++ list_add_tail(&target->list, &bootstate->targets); ++ list_add_tail(&target->list_unsorted, ++ &bootstate->targets_unsorted); ++ } else { ++ target = bootstate_target_find(bootstate, name); ++ if (IS_ERR(target)) { ++ int ret = PTR_ERR(target); ++ pr_err("no such boot target: %s: %s\n", ++ name, strerror(-ret)); ++ return ret; ++ } ++ } ++ ++ /* init */ ++ ret = of_property_read_u32(node, "default_attempts", ++ &target->default_attempts); ++ if (ret) ++ return ret; ++ ++ free(name); ++ ++ return 0; ++} ++ ++static int bootstate_from_node(struct bootstate *bootstate, ++ const struct device_node *node, bool create) ++{ ++ struct device_node *child; ++ int ret; ++ ++ for_each_child_of_node(node, child) { ++ ret = bootstate_target_from_node(bootstate, child, create); ++ if (ret) ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int bootstate_backend_load_one(const struct bootstate_backend *backend, ++ const struct bootstate *bootstate, ++ struct bootstate_target *target) ++{ ++ uint32_t tmp; ++ int ret; ++ ++ ret = bootstate_backend_variable_read_target_u32(backend, bootstate, target, ++ "remaining_attempts", ++ &target->remaining_attempts); ++ if (ret) ++ return ret; ++ ++ ret = bootstate_backend_variable_read_target_u32(backend, bootstate, target, ++ "priority", &target->priority); ++ if (ret) ++ return ret; ++ ++ ret = bootstate_backend_variable_read_target_u32(backend, bootstate, target, ++ "ok", &tmp); ++ if (ret) ++ return ret; ++ ++ target->ok = !!tmp; ++ ++ return ret; ++} ++ ++static int bootstate_backend_load(struct bootstate_backend *backend, ++ struct bootstate *bootstate) ++{ ++ struct bootstate_target *target; ++ int ret; ++ ++ list_for_each_entry(target, &bootstate->targets_unsorted, list_unsorted) { ++ ret = bootstate_backend_load_one(backend, bootstate, target); ++ if (ret) ++ return ret; ++ bootstate_target_add(bootstate, target); ++ } ++ ++ return 0; ++} ++ ++static int bootstate_backend_save_one(const struct bootstate_backend *backend, ++ const struct bootstate *bootstate, ++ struct bootstate_target *target) ++{ ++ int ret; ++ ++ ret = bootstate_backend_variable_write_target_u32(backend, bootstate, target, ++ "remaining_attempts", ++ target->remaining_attempts); ++ if (ret) ++ return ret; ++ ++ ret = bootstate_backend_variable_write_target_u32(backend, bootstate, target, ++ "priority", target->priority); ++ if (ret) ++ return ret; ++ ++ ret = bootstate_backend_variable_write_target_u32(backend, bootstate, target, ++ "ok", target->ok); ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ ++static int bootstate_backend_save(const struct bootstate_backend *backend, ++ const struct bootstate *bootstate) ++{ ++ struct bootstate_target *target; ++ int ret; ++ ++ list_for_each_entry(target, &bootstate->targets, list) { ++ ret = bootstate_backend_save_one(backend, bootstate, target); ++ if (ret) ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int bootstate_backend_nv_init_one(const struct bootstate_backend *backend, ++ const struct bootstate *bootstate, ++ struct bootstate_target *target) ++{ ++ int ret; ++ ++ ret = bootstate_variable_nv_init_u32(backend, bootstate, target, ++ "remaining_attempts"); ++ if (ret) ++ return ret; ++ ++ ret = bootstate_variable_nv_init_u32(backend, bootstate, target, ++ "priority"); ++ if (ret) ++ return ret; ++ ++ ret = bootstate_variable_nv_init_u32(backend, bootstate, target, ++ "ok"); ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ ++static int bootstate_backend_nv_init(struct bootstate_backend *backend, ++ struct bootstate *bootstate) ++{ ++ struct bootstate_target *target; ++ int ret; ++ ++ list_for_each_entry(target, &bootstate->targets_unsorted, list_unsorted) { ++ ret = bootstate_backend_nv_init_one(backend, bootstate, target); ++ if (ret) ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int bootstate_backend_nv_save(struct bootstate_backend *backend, ++ struct bootstate *bootstate) ++{ ++ int ret; ++ ++ ret = bootstate_backend_save(backend, bootstate); ++ if (ret) ++ return ret; ++ ++ return envfs_save(NULL, NULL, 0); ++} ++ ++static int bootstate_backend_nv_load(struct bootstate_backend *backend, ++ struct bootstate *bootstate) ++{ ++ return bootstate_backend_load(backend, bootstate); ++} ++ ++struct bootstate_backend_nv { ++ struct bootstate_backend backend; ++}; ++ ++int bootstate_backend_nv(struct bootstate *bootstate) ++{ ++ struct bootstate_backend_nv *backend_nv; ++ struct bootstate_backend *backend; ++ ++ if (bootstate->backend) ++ return -EBUSY; ++ ++ backend_nv = xzalloc(sizeof(*backend_nv)); ++ backend = &backend_nv->backend; ++ ++ backend->load = bootstate_backend_nv_load; ++ backend->save = bootstate_backend_nv_save; ++ backend->name = "nv"; ++ backend->path = "nv"; ++ ++ bootstate->backend = backend; ++ ++ return bootstate_backend_nv_init(backend, bootstate); ++} ++ ++struct bootstate_backend_state { ++ struct bootstate_backend backend; ++ struct state *state; ++}; ++ ++static int bootstate_backend_state_save(struct bootstate_backend *backend, ++ struct bootstate *bootstate) ++{ ++ struct bootstate_backend_state *backend_state = ++ container_of(backend, struct bootstate_backend_state, backend); ++ int ret; ++ ++ ret = bootstate_backend_save(backend, bootstate); ++ if (ret) ++ return ret; ++ ++ return state_save(backend_state->state); ++} ++ ++static int bootstate_backend_state_load(struct bootstate_backend *backend, ++ struct bootstate *bootstate) ++{ ++ return bootstate_backend_load(backend, bootstate); ++} ++ ++int bootstate_backend_state(struct bootstate *bootstate, const struct device_node *node) ++{ ++ struct bootstate_backend_state *backend_state; ++ struct bootstate_backend *backend; ++ const struct device_node *state_node; ++ struct state *state; ++ ++ if (bootstate->backend) ++ return -EBUSY; ++ ++ state_node = of_parse_phandle(node, "backend", 0); ++ if (!state_node) ++ return -EINVAL; ++ ++ state = state_by_node(state_node); ++ if (!state) ++ return -EPROBE_DEFER; ++ ++ backend_state = xzalloc(sizeof(*backend_state)); ++ backend_state->state = state; ++ ++ backend = &backend_state->backend; ++ backend->load = bootstate_backend_state_load; ++ backend->save = bootstate_backend_state_save; ++ backend->name = "state"; ++ ++ bootstate->backend = backend; ++ ++ return state_get_name(backend_state->state, &backend->path); ++} ++ ++/* ++ * bootstate_new_from_node - create a new bootstate instance from a device_node ++ * ++ * @name The name of the new bootstate instance ++ * @node The device_node describing the new bootstate instance ++ */ ++struct bootstate *bootstate_new_from_node(const char *name, const struct device_node *node) ++{ ++ struct bootstate *bootstate; ++ int ret; ++ ++ pr_debug("%s: node=%s, name=%s\n", __func__, node->full_name, name); ++ ++ bootstate = bootstate_new(name); ++ if (!bootstate) ++ return ERR_PTR(-EINVAL); ++ ++ ret = bootstate_from_node(bootstate, node, true); ++ if (ret) { ++ bootstate_release(bootstate); ++ return ERR_PTR(ret); ++ } ++ ++ return bootstate; ++} ++ ++/* ++ * bootstate_by_name - find a bootstate instance by name ++ * ++ * @name The name of the state instance ++ */ ++struct bootstate *bootstate_by_name(const char *name) ++{ ++ struct bootstate *bs; ++ ++ list_for_each_entry(bs, &bootstate_list, list) { ++ if (!strcmp(name, bs->name)) ++ return bs; ++ } ++ ++ return NULL; ++} ++ ++/* ++ * bootstate_load - load a bootstate from the backing store ++ * ++ * @bootstate The state instance to load ++ */ ++static int bootstate_load(struct bootstate *bootstate) ++{ ++ int ret; ++ ++ if (!bootstate->backend) ++ return -ENOSYS; ++ ++ ret = bootstate->backend->load(bootstate->backend, bootstate); ++ if (ret) ++ bootstate->dirty = 1; ++ else ++ bootstate->dirty = 0; ++ ++ return ret; ++} ++ ++/* ++ * bootstate_save - save a bootstate to the backing store ++ * ++ * @bootstate The bootstate instance to save ++ */ ++static int bootstate_save(struct bootstate *bootstate) ++{ ++ int ret; ++ ++ if (!bootstate->dirty) ++ return 0; ++ ++ if (!bootstate->backend) ++ return -ENOSYS; ++ ++ ret = bootstate->backend->save(bootstate->backend, bootstate); ++ if (ret) ++ return ret; ++ ++ bootstate->dirty = 0; ++ ++ return 0; ++} ++ ++void bootstate_info(void) ++{ ++ struct bootstate *bootstate; ++ ++ printf("registered bootstate instances:\n"); ++ ++ list_for_each_entry(bootstate, &bootstate_list, list) { ++ printf("%-20s ", bootstate->name); ++ printf("(backend: %s, path: %s)\n", ++ bootstate->backend->name, bootstate->backend->path); ++ } ++} ++ ++#define __BF(arg) [__BOOTCHOOSER_FLAG_##arg##_SHIFT] = __stringify(arg) ++ ++static const char * const bootstate_flags_str[] = { ++ __BF(ATTEMPTS_KEEP), ++ __BF(ATTEMPTS_DEC), ++ __BF(ATTEMPTS_RESET), ++ __BF(DEACTIVATE_ON_ZERO_ATTEMPTS), ++ __BF(VERBOSE), ++ __BF(DRYRUN), ++ __BF(RETRY_WITH_DEC), ++ __BF(WATCHDOG_ENABLE), ++ __BF(WATCHDOG_TIMEOUT_FROM_STATE), ++}; ++ ++#undef __BF ++ ++#define pr(verbose, format, args...) \ ++ ({ \ ++ (verbose) ? pr_info((format), ##args) : 0; \ ++ }) ++ ++void _pr_flags(struct bootstate *bootstate, unsigned flags) ++{ ++ int i; ++ ++ pr_info("%s: flags=0x%08x\n", bootstate->name, flags); ++ ++ for (i = 0; i < ARRAY_SIZE(bootstate_flags_str); i++) { ++ if (flags & (1 << i)) ++ pr_info("%s: -> %s\n", bootstate->name, ++ bootstate_flags_str[i]); ++ } ++} ++ ++#define pr_flags(verbose, bootstate, flags) \ ++ ({ \ ++ (verbose) ? _pr_flags(bootstate, flags) : 0; \ ++ }) ++ ++/* ++ * bootstate_get_target - create a new state instance from a device_node ++ * ++ * @bootstate the bootstate instance to work in ++ * @flags supported flags: ++ * BOOTCHOOSER_FLAG_VERBOSE ++ * BOOTCHOOSER_FLAG_ATTEMPTS_KEEP ++ * BOOTCHOOSER_FLAG_ATTEMPTS_DEC ++ * BOOTCHOOSER_FLAG_ATTEMPTS_RESET ++ * BOOTCHOOSER_FLAG_DEACTIVATE_ON_ZERO_ATTEMPTS ++ * @target_out a string to the choosen boot target is returned via ++ * this paramater ++ */ ++int bootstate_get_target(struct bootstate *bootstate, unsigned flags, char **target_out) ++{ ++ struct bootstate_target *target; ++ int ret; ++ bool found = false; ++ bool v = flags & BOOTCHOOSER_FLAG_VERBOSE; ++ ++ pr_flags(v, bootstate, flags); ++ ++ ret = bootstate_load(bootstate); ++ if (ret) ++ return ret; ++ ++ if (flags & BOOTCHOOSER_FLAG_ATTEMPTS_RESET) { ++ list_for_each_entry(target, &bootstate->targets, list) { ++ if (target->priority == 0) ++ continue; ++ ++ target->remaining_attempts = target->default_attempts; ++ bootstate->dirty = true; ++ ++ pr(v, "%s: target: name=%s setting rem to %d due to %s\n", ++ bootstate->name, target->name, target->default_attempts, ++ bootstate_flags_str[__BOOTCHOOSER_FLAG_ATTEMPTS_RESET_SHIFT]); ++ } ++ pr(v, "%s: --------\n", bootstate->name); ++ } ++ ++ list_for_each_entry(target, &bootstate->targets, list) { ++ pr_target(bootstate, target); ++ ++ if (found) ++ continue; ++ ++ if (target->priority == 0) { ++ pr(v, "%s: name=%s prio=%d - trying next\n", ++ bootstate->name, target->name, target->priority); ++ continue; ++ } ++ ++ if (target->remaining_attempts == 0) { ++ pr(v, "%s: name=%s remaining attempts == 0 - trying next\n", ++ bootstate->name, target->name); ++ continue; ++ } ++ ++ if (flags & BOOTCHOOSER_FLAG_ATTEMPTS_DEC) { ++ bootstate->dirty = true; ++ target->remaining_attempts--; ++ ++ pr(v, "%s: name=%s decrementing remaining_attempts to %d due to %s\n", ++ bootstate->name, target->name, ++ target->remaining_attempts, ++ bootstate_flags_str[__BOOTCHOOSER_FLAG_ATTEMPTS_DEC_SHIFT]); ++ ++ if ((target->remaining_attempts == 0) && ++ (flags & BOOTCHOOSER_FLAG_DEACTIVATE_ON_ZERO_ATTEMPTS)) { ++ target->priority = 0; ++ ++ pr(v, "%s: name=%s deactivating target (setting priority = 0) due to %s\n", ++ bootstate->name, target->name, ++ bootstate_flags_str[__BOOTCHOOSER_FLAG_DEACTIVATE_ON_ZERO_ATTEMPTS_SHIFT]); ++ } ++ } ++ ++ found = true; ++ *target_out = strdup(target->name); ++ pr_debug("%s: selected target '%s'\n", __func__, target->name); ++ if (!v) ++ goto out; ++ ++ pr(v, "%s: --- other bootsources ---\n", bootstate->name); ++ } ++ ++ out: ++ bootstate_save(bootstate); ++ ++ if (!found) ++ return -ENOENT; ++ ++ return 0; ++} ++ ++int bootstate_bootchooser(char *name, unsigned flags, unsigned timeout) ++{ ++ struct bootstate *bootstate; ++ bool v = flags & BOOTCHOOSER_FLAG_VERBOSE; ++ char *target; ++ int ret; ++ ++ if (!name) ++ name = "bootstate"; ++ ++ bootstate = bootstate_by_name(name); ++ if (!bootstate) { ++ pr_err("Bootstate '%s' not found.\n", name); ++ return -ENODEV; ++ } ++ ++ if (flags & BOOTCHOOSER_FLAG_WATCHDOG_ENABLE) { ++ if (flags & BOOTCHOOSER_FLAG_WATCHDOG_TIMEOUT_FROM_STATE) { ++ ret = bootstate_variable_read_u32(bootstate, "watchdog_timeout", ++ &timeout); ++ if (ret) ++ return ret; ++ } ++ ++ if (timeout != 0) { ++ pr(v, "%s: starting watchdog with timeout=%ds\n", ++ __func__, timeout); ++ ++ ret = watchdog_set_timeout(timeout); ++ if (ret) ++ return ret; ++ } ++ } ++ ++ while (true) { ++ char *cmd; ++ ++ ret = bootstate_get_target(bootstate, flags, &target); ++ if (ret) ++ return ret; ++ ++ cmd = asprintf("boot %s", target); ++ free(target); ++ pr_info("%srunning: %s...\n", ++ flags & BOOTCHOOSER_FLAG_DRYRUN ? "not " : "", cmd); ++ if (!(flags & BOOTCHOOSER_FLAG_DRYRUN)) ++ ret = run_command(cmd); ++ free(cmd); ++ ++ if (flags & BOOTCHOOSER_FLAG_RETRY_WITH_DEC) { ++ flags |= BOOTCHOOSER_FLAG_ATTEMPTS_DEC; ++ flags &= ~(BOOTCHOOSER_FLAG_ATTEMPTS_RESET | ++ BOOTCHOOSER_FLAG_ATTEMPTS_KEEP); ++ continue; ++ } ++ ++ return ret; ++ } ++ ++ return -ENOENT; ++} +diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig +index 7a5b14697efd..2459051e1db1 100644 +--- a/drivers/misc/Kconfig ++++ b/drivers/misc/Kconfig +@@ -19,4 +19,9 @@ config STATE_DRV + tristate "state driver" + depends on STATE + ++config BOOTSTATE_DRV ++ tristate "bootstate driver" ++ depends on BOOTSTATE ++ depends on STATE ++ + endmenu +diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile +index 487e4b8ba2e5..603e14ebb5de 100644 +--- a/drivers/misc/Makefile ++++ b/drivers/misc/Makefile +@@ -5,3 +5,4 @@ + obj-$(CONFIG_JTAG) += jtag.o + obj-$(CONFIG_SRAM) += sram.o + obj-$(CONFIG_STATE_DRV) += state.o ++obj-$(CONFIG_BOOTSTATE_DRV) += bootstate.o +diff --git a/drivers/misc/bootstate.c b/drivers/misc/bootstate.c +new file mode 100644 +index 000000000000..3ec9b8fda86b +--- /dev/null ++++ b/drivers/misc/bootstate.c +@@ -0,0 +1,79 @@ ++/* ++ * Copyright (C) 2013 Sascha Hauer <s.hauer@pengutronix.de> ++ * Copyright (C) 2015 Marc Kleine-Budde <mkl@pengutronix.de> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include <bootstate.h> ++#include <driver.h> ++#include <init.h> ++#include <malloc.h> ++#include <of.h> ++#include <printk.h> ++#include <string.h> ++ ++#include <linux/err.h> ++ ++static int bootstate_probe(struct device_d *dev) ++{ ++ struct device_node *np = dev->device_node; ++ struct bootstate *bootstate; ++ const char *alias; ++ const char *backend_type = NULL; ++ int ret; ++ ++ if (!np) ++ return -EINVAL; ++ ++ alias = of_alias_get(np); ++ if (!alias) ++ alias = "bootstate"; ++ ++ bootstate = bootstate_new_from_node(alias, np); ++ if (IS_ERR(bootstate)) ++ return PTR_ERR(bootstate); ++ ++ of_property_read_string(np, "backend-type", &backend_type); ++ if (!strcmp(backend_type, "state")) { ++ ret = bootstate_backend_state(bootstate, np); ++ } else if (!strcmp(backend_type, "nv")) { ++ ret = bootstate_backend_nv(bootstate); ++ } else { ++ dev_warn(dev, "invalid backend type: %s\n", backend_type); ++ ret = -ENODEV; ++ goto out_release; ++ } ++ ++ if (ret) ++ goto out_release; ++ ++ return 0; ++ ++ out_release: ++ bootstate_release(bootstate); ++ return ret; ++} ++ ++static __maybe_unused struct of_device_id bootstate_ids[] = { ++ { ++ .compatible = "barebox,bootstate", ++ }, { ++ /* sentinel */ ++ } ++}; ++ ++static struct driver_d bootstate_driver = { ++ .name = "bootstate", ++ .probe = bootstate_probe, ++ .of_compatible = DRV_OF_COMPAT(bootstate_ids), ++}; ++device_platform_driver(bootstate_driver); +diff --git a/include/bootstate.h b/include/bootstate.h +new file mode 100644 +index 000000000000..22631c902f60 +--- /dev/null ++++ b/include/bootstate.h +@@ -0,0 +1,39 @@ ++#ifndef __BOOTSTATE_H ++#define __BOOTSTATE_H ++ ++#include <of.h> ++ ++struct bootstate *bootstate_new_from_node(const char *name, const struct device_node *node); ++struct bootstate *bootstate_find_by_name(const char *name); ++struct bootstate *bootstate_by_name(const char *name); ++void bootstate_release(struct bootstate *bootstate); ++void bootstate_info(void); ++int bootstate_backend_nv(struct bootstate *bootstate); ++int bootstate_backend_state(struct bootstate *bootstate, const struct device_node *node); ++ ++enum { ++ __BOOTCHOOSER_FLAG_ATTEMPTS_KEEP_SHIFT, ++ __BOOTCHOOSER_FLAG_ATTEMPTS_DEC_SHIFT, ++ __BOOTCHOOSER_FLAG_ATTEMPTS_RESET_SHIFT, ++ __BOOTCHOOSER_FLAG_DEACTIVATE_ON_ZERO_ATTEMPTS_SHIFT, ++ __BOOTCHOOSER_FLAG_VERBOSE_SHIFT, ++ __BOOTCHOOSER_FLAG_DRYRUN_SHIFT, ++ __BOOTCHOOSER_FLAG_RETRY_WITH_DEC_SHIFT, ++ __BOOTCHOOSER_FLAG_WATCHDOG_ENABLE_SHIFT, ++ __BOOTCHOOSER_FLAG_WATCHDOG_TIMEOUT_FROM_STATE_SHIFT, ++}; ++ ++#define BOOTCHOOSER_FLAG_ATTEMPTS_KEEP (1 << __BOOTCHOOSER_FLAG_ATTEMPTS_KEEP_SHIFT) ++#define BOOTCHOOSER_FLAG_ATTEMPTS_DEC (1 << __BOOTCHOOSER_FLAG_ATTEMPTS_DEC_SHIFT) ++#define BOOTCHOOSER_FLAG_ATTEMPTS_RESET (1 << __BOOTCHOOSER_FLAG_ATTEMPTS_RESET_SHIFT) ++#define BOOTCHOOSER_FLAG_DEACTIVATE_ON_ZERO_ATTEMPTS (1 << __BOOTCHOOSER_FLAG_DEACTIVATE_ON_ZERO_ATTEMPTS_SHIFT) ++#define BOOTCHOOSER_FLAG_VERBOSE (1 << __BOOTCHOOSER_FLAG_VERBOSE_SHIFT) ++#define BOOTCHOOSER_FLAG_DRYRUN (1 << __BOOTCHOOSER_FLAG_DRYRUN_SHIFT) ++#define BOOTCHOOSER_FLAG_RETRY_WITH_DEC (1 << __BOOTCHOOSER_FLAG_RETRY_WITH_DEC_SHIFT) ++#define BOOTCHOOSER_FLAG_WATCHDOG_ENABLE (1 << __BOOTCHOOSER_FLAG_WATCHDOG_ENABLE_SHIFT) ++#define BOOTCHOOSER_FLAG_WATCHDOG_TIMEOUT_FROM_STATE (1 << __BOOTCHOOSER_FLAG_WATCHDOG_TIMEOUT_FROM_STATE_SHIFT) ++ ++int bootstate_get_target(struct bootstate *bootstate, unsigned flags, char **target_out); ++int bootstate_bootchooser(char *name, unsigned flags, unsigned watchdog_timeout_s); ++ ++#endif /* __BOOTSTATE_H */ diff --git a/configs/platform-v7a/patches/barebox-2016.05.0/0002-bootstate-Add-kernel-option-containing-the-system-th.patch b/configs/platform-v7a/patches/barebox-2016.05.0/0002-bootstate-Add-kernel-option-containing-the-system-th.patch new file mode 100644 index 0000000..719cd50 --- /dev/null +++ b/configs/platform-v7a/patches/barebox-2016.05.0/0002-bootstate-Add-kernel-option-containing-the-system-th.patch @@ -0,0 +1,43 @@ +From: Sascha Hauer <s.hauer@pengutronix.de> +Date: Mon, 20 Jul 2015 20:44:00 +0200 +Subject: [PATCH] bootstate: Add kernel option containing the system that is + started + +This is useful to allow the userspace to determine which system +is actually started without dissecting the root= option. + +Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> +--- + common/bootstate.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/common/bootstate.c b/common/bootstate.c +index 3dc18813064d..b0cb0183068a 100644 +--- a/common/bootstate.c ++++ b/common/bootstate.c +@@ -753,12 +753,16 @@ int bootstate_bootchooser(char *name, unsigned flags, unsigned timeout) + } + + while (true) { +- char *cmd; ++ char *cmd, *system; + + ret = bootstate_get_target(bootstate, flags, &target); + if (ret) + return ret; + ++ system = asprintf("bootstate.active=%s", target); ++ globalvar_add_simple("linux.bootargs.bootchooser", system); ++ free(system); ++ + cmd = asprintf("boot %s", target); + free(target); + pr_info("%srunning: %s...\n", +@@ -766,6 +770,7 @@ int bootstate_bootchooser(char *name, unsigned flags, unsigned timeout) + if (!(flags & BOOTCHOOSER_FLAG_DRYRUN)) + ret = run_command(cmd); + free(cmd); ++ globalvar_set_match("linux.bootargs.bootchooser", NULL); + + if (flags & BOOTCHOOSER_FLAG_RETRY_WITH_DEC) { + flags |= BOOTCHOOSER_FLAG_ATTEMPTS_DEC; diff --git a/configs/platform-v7a/patches/barebox-2016.05.0/0003-bootstate-separate-names-from-boot-targets.patch b/configs/platform-v7a/patches/barebox-2016.05.0/0003-bootstate-separate-names-from-boot-targets.patch new file mode 100644 index 0000000..77f4949 --- /dev/null +++ b/configs/platform-v7a/patches/barebox-2016.05.0/0003-bootstate-separate-names-from-boot-targets.patch @@ -0,0 +1,63 @@ +From: Sascha Hauer <s.hauer@pengutronix.de> +Date: Thu, 23 Jul 2015 16:42:18 +0200 +Subject: [PATCH] bootstate: separate names from boot targets + +The name of a boot target and the device or script to boot may be two +different things. Allow a 'boot' property in the boot targets. + +Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> +--- + common/bootstate.c | 16 +++++++++++++--- + 1 file changed, 13 insertions(+), 3 deletions(-) + +diff --git a/common/bootstate.c b/common/bootstate.c +index b0cb0183068a..fde278262fa3 100644 +--- a/common/bootstate.c ++++ b/common/bootstate.c +@@ -75,6 +75,7 @@ struct bootstate_target { + /* spec */ + const char *name; + unsigned int default_attempts; ++ const char *boot; + }; + + static void pr_target(struct bootstate *bootstate, struct bootstate_target *target) +@@ -205,7 +206,7 @@ static struct bootstate_target *bootstate_target_find(const struct bootstate *bo + return ERR_PTR(-ENOENT); + } + +-static int bootstate_target_from_node(struct bootstate *bootstate, const struct device_node *node, bool create) ++static int bootstate_target_from_node(struct bootstate *bootstate, struct device_node *node, bool create) + { + struct bootstate_target *target; + char *name, *indexs; +@@ -217,10 +218,18 @@ static int bootstate_target_from_node(struct bootstate *bootstate, const struct + *indexs++ = 0; + + if (create) { ++ const char *boot; ++ + /* create*/ + target = xzalloc(sizeof(*target)); + + target->name = xstrdup(name); ++ ++ if (!of_property_read_string(node, "boot", &boot)) ++ target->boot = xstrdup(boot); ++ else ++ target->boot = xstrdup(name); ++ + list_add_tail(&target->list, &bootstate->targets); + list_add_tail(&target->list_unsorted, + &bootstate->targets_unsorted); +@@ -701,8 +710,9 @@ int bootstate_get_target(struct bootstate *bootstate, unsigned flags, char **tar + } + + found = true; +- *target_out = strdup(target->name); +- pr_debug("%s: selected target '%s'\n", __func__, target->name); ++ *target_out = strdup(target->boot); ++ pr_debug("%s: selected target '%s', boot '%s'\n", ++ __func__, target->name, target->boot); + if (!v) + goto out; diff --git a/configs/platform-v7a/patches/barebox-2016.05.0/0004-bootstate-set-kernel-option-to-name-of-boot-target.patch b/configs/platform-v7a/patches/barebox-2016.05.0/0004-bootstate-set-kernel-option-to-name-of-boot-target.patch new file mode 100644 index 0000000..1db763c --- /dev/null +++ b/configs/platform-v7a/patches/barebox-2016.05.0/0004-bootstate-set-kernel-option-to-name-of-boot-target.patch @@ -0,0 +1,119 @@ +From: Sascha Hauer <s.hauer@pengutronix.de> +Date: Mon, 27 Jul 2015 13:39:45 +0200 +Subject: [PATCH] bootstate: set kernel option to name of boot target + +Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> +--- + common/bootstate.c | 60 ++++++++++++++++++++++++++++++++---------------------- + 1 file changed, 36 insertions(+), 24 deletions(-) + +diff --git a/common/bootstate.c b/common/bootstate.c +index fde278262fa3..2dcc47cfa257 100644 +--- a/common/bootstate.c ++++ b/common/bootstate.c +@@ -631,20 +631,8 @@ void _pr_flags(struct bootstate *bootstate, unsigned flags) + (verbose) ? _pr_flags(bootstate, flags) : 0; \ + }) + +-/* +- * bootstate_get_target - create a new state instance from a device_node +- * +- * @bootstate the bootstate instance to work in +- * @flags supported flags: +- * BOOTCHOOSER_FLAG_VERBOSE +- * BOOTCHOOSER_FLAG_ATTEMPTS_KEEP +- * BOOTCHOOSER_FLAG_ATTEMPTS_DEC +- * BOOTCHOOSER_FLAG_ATTEMPTS_RESET +- * BOOTCHOOSER_FLAG_DEACTIVATE_ON_ZERO_ATTEMPTS +- * @target_out a string to the choosen boot target is returned via +- * this paramater +- */ +-int bootstate_get_target(struct bootstate *bootstate, unsigned flags, char **target_out) ++static struct bootstate_target *bootstate_target_get(struct bootstate *bootstate, ++ unsigned flags) + { + struct bootstate_target *target; + int ret; +@@ -655,7 +643,7 @@ int bootstate_get_target(struct bootstate *bootstate, unsigned flags, char **tar + + ret = bootstate_load(bootstate); + if (ret) +- return ret; ++ return ERR_PTR(ret); + + if (flags & BOOTCHOOSER_FLAG_ATTEMPTS_RESET) { + list_for_each_entry(target, &bootstate->targets, list) { +@@ -710,7 +698,6 @@ int bootstate_get_target(struct bootstate *bootstate, unsigned flags, char **tar + } + + found = true; +- *target_out = strdup(target->boot); + pr_debug("%s: selected target '%s', boot '%s'\n", + __func__, target->name, target->boot); + if (!v) +@@ -723,7 +710,33 @@ int bootstate_get_target(struct bootstate *bootstate, unsigned flags, char **tar + bootstate_save(bootstate); + + if (!found) +- return -ENOENT; ++ return ERR_PTR(-ENOENT); ++ ++ return target; ++} ++ ++/* ++ * bootstate_get_target - create a new state instance from a device_node ++ * ++ * @bootstate the bootstate instance to work in ++ * @flags supported flags: ++ * BOOTCHOOSER_FLAG_VERBOSE ++ * BOOTCHOOSER_FLAG_ATTEMPTS_KEEP ++ * BOOTCHOOSER_FLAG_ATTEMPTS_DEC ++ * BOOTCHOOSER_FLAG_ATTEMPTS_RESET ++ * BOOTCHOOSER_FLAG_DEACTIVATE_ON_ZERO_ATTEMPTS ++ * @target_out a string to the choosen boot target is returned via ++ * this paramater ++ */ ++int bootstate_get_target(struct bootstate *bootstate, unsigned flags, char **target_out) ++{ ++ struct bootstate_target *target; ++ ++ target = bootstate_target_get(bootstate, flags); ++ if (IS_ERR(target)) ++ return PTR_ERR(target); ++ ++ *target_out = strdup(target->boot); + + return 0; + } +@@ -732,7 +745,7 @@ int bootstate_bootchooser(char *name, unsigned flags, unsigned timeout) + { + struct bootstate *bootstate; + bool v = flags & BOOTCHOOSER_FLAG_VERBOSE; +- char *target; ++ struct bootstate_target *target; + int ret; + + if (!name) +@@ -765,16 +778,15 @@ int bootstate_bootchooser(char *name, unsigned flags, unsigned timeout) + while (true) { + char *cmd, *system; + +- ret = bootstate_get_target(bootstate, flags, &target); +- if (ret) +- return ret; ++ target = bootstate_target_get(bootstate, flags); ++ if (IS_ERR(target)) ++ return PTR_ERR(target); + +- system = asprintf("bootstate.active=%s", target); ++ system = asprintf("bootstate.active=%s", target->name); + globalvar_add_simple("linux.bootargs.bootchooser", system); + free(system); + +- cmd = asprintf("boot %s", target); +- free(target); ++ cmd = asprintf("boot %s", target->boot); + pr_info("%srunning: %s...\n", + flags & BOOTCHOOSER_FLAG_DRYRUN ? "not " : "", cmd); + if (!(flags & BOOTCHOOSER_FLAG_DRYRUN)) diff --git a/configs/platform-v7a/patches/barebox-2016.05.0/0101-beaglebone-add-state-entrie-for-mmc0-and-mmc1.patch b/configs/platform-v7a/patches/barebox-2016.05.0/0101-beaglebone-add-state-entrie-for-mmc0-and-mmc1.patch new file mode 100644 index 0000000..9761b58 --- /dev/null +++ b/configs/platform-v7a/patches/barebox-2016.05.0/0101-beaglebone-add-state-entrie-for-mmc0-and-mmc1.patch @@ -0,0 +1,35 @@ +From: Michael Grzeschik <m.grzeschik@pengutronix.de> +Date: Fri, 10 Jun 2016 14:02:30 +0200 +Subject: [PATCH] beaglebone: add state entrie for mmc0 and mmc1 + +Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> +--- + arch/arm/dts/am335x-bone-common.dtsi | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/arch/arm/dts/am335x-bone-common.dtsi b/arch/arm/dts/am335x-bone-common.dtsi +index ef97d906616c..d14c6ded6a55 100644 +--- a/arch/arm/dts/am335x-bone-common.dtsi ++++ b/arch/arm/dts/am335x-bone-common.dtsi +@@ -11,6 +11,21 @@ + linux,stdout-path = &uart0; + }; + ++ bootstate: bootstate { ++ compatible = "barebox,bootstate"; ++ backend-type = "nv"; ++ ++ system0 { ++ default_attempts = <3>; ++ boot = "mmc0"; ++ }; ++ ++ system1 { ++ default_attempts = <3>; ++ boot = "mmc1"; ++ }; ++ }; ++ + cpus { + cpu@0 { + cpu0-supply = <&dcdc2_reg>; diff --git a/configs/platform-v7a/patches/barebox-2016.05.0/0201-rpi2-add-basic-boot-spec-devicetree-support.patch b/configs/platform-v7a/patches/barebox-2016.05.0/0201-rpi2-add-basic-boot-spec-devicetree-support.patch new file mode 100644 index 0000000..40d67be --- /dev/null +++ b/configs/platform-v7a/patches/barebox-2016.05.0/0201-rpi2-add-basic-boot-spec-devicetree-support.patch @@ -0,0 +1,462 @@ +From: Alexander Aring <aar@pengutronix.de> +Date: Thu, 9 Jun 2016 11:26:03 +0200 +Subject: [PATCH] rpi2: add basic boot-spec devicetree support + +Signed-off-by: Alexander Aring <aar@pengutronix.de> +--- + arch/arm/dts/Makefile | 1 + + arch/arm/dts/bcm2835-rpi.dtsi | 60 +++++++++++ + arch/arm/dts/bcm2836-rpi-2-b.dts | 35 +++++++ + arch/arm/dts/bcm2836.dtsi | 78 ++++++++++++++ + arch/arm/dts/bcm283x.dtsi | 212 +++++++++++++++++++++++++++++++++++++++ + arch/arm/mach-bcm283x/core.c | 4 +- + 6 files changed, 389 insertions(+), 1 deletion(-) + create mode 100644 arch/arm/dts/bcm2835-rpi.dtsi + create mode 100644 arch/arm/dts/bcm2836-rpi-2-b.dts + create mode 100644 arch/arm/dts/bcm2836.dtsi + create mode 100644 arch/arm/dts/bcm283x.dtsi + +diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile +index b83c1109ef39..960d8aac3933 100644 +--- a/arch/arm/dts/Makefile ++++ b/arch/arm/dts/Makefile +@@ -9,6 +9,7 @@ obj- += dummy.o + + pbl-dtb-$(CONFIG_MACH_AFI_GF) += am335x-afi-gf.dtb.o + pbl-dtb-$(CONFIG_MACH_BEAGLEBONE) += am335x-bone.dtb.o am335x-boneblack.dtb.o am335x-bone-common.dtb.o ++pbl-dtb-$(CONFIG_MACH_RPI2) += bcm2836-rpi-2-b.dtb.o + pbl-dtb-$(CONFIG_MACH_CM_FX6) += imx6dl-cm-fx6.dtb.o imx6q-cm-fx6.dtb.o imx6q-utilite.dtb.o + pbl-dtb-$(CONFIG_MACH_DFI_FS700_M60) += imx6q-dfi-fs700-m60-6q.dtb.o imx6dl-dfi-fs700-m60-6s.dtb.o + pbl-dtb-$(CONFIG_MACH_DUCKBILL) += imx28-duckbill.dtb.o +diff --git a/arch/arm/dts/bcm2835-rpi.dtsi b/arch/arm/dts/bcm2835-rpi.dtsi +new file mode 100644 +index 000000000000..3afb9fefe2d1 +--- /dev/null ++++ b/arch/arm/dts/bcm2835-rpi.dtsi +@@ -0,0 +1,60 @@ ++/ { ++ memory { ++ reg = <0 0x10000000>; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ act { ++ label = "ACT"; ++ default-state = "keep"; ++ linux,default-trigger = "heartbeat"; ++ }; ++ }; ++ ++ soc { ++ firmware: firmware { ++ compatible = "raspberrypi,bcm2835-firmware"; ++ mboxes = <&mailbox>; ++ }; ++ }; ++}; ++ ++&gpio { ++ pinctrl-names = "default"; ++ ++ gpioout: gpioout { ++ brcm,pins = <6>; ++ brcm,function = <BCM2835_FSEL_GPIO_OUT>; ++ }; ++ ++ alt0: alt0 { ++ brcm,pins = <0 1 2 3 4 5 7 8 9 10 11 14 15 40 45>; ++ brcm,function = <BCM2835_FSEL_ALT0>; ++ }; ++ ++ alt3: alt3 { ++ brcm,pins = <48 49 50 51 52 53>; ++ brcm,function = <BCM2835_FSEL_ALT3>; ++ }; ++}; ++ ++&i2c0 { ++ status = "okay"; ++ clock-frequency = <100000>; ++}; ++ ++&i2c1 { ++ status = "okay"; ++ clock-frequency = <100000>; ++}; ++ ++&i2c2 { ++ status = "okay"; ++}; ++ ++&sdhci { ++ status = "okay"; ++ bus-width = <4>; ++}; +diff --git a/arch/arm/dts/bcm2836-rpi-2-b.dts b/arch/arm/dts/bcm2836-rpi-2-b.dts +new file mode 100644 +index 000000000000..ff946661bd13 +--- /dev/null ++++ b/arch/arm/dts/bcm2836-rpi-2-b.dts +@@ -0,0 +1,35 @@ ++/dts-v1/; ++#include "bcm2836.dtsi" ++#include "bcm2835-rpi.dtsi" ++ ++/ { ++ compatible = "raspberrypi,2-model-b", "brcm,bcm2836"; ++ model = "Raspberry Pi 2 Model B"; ++ ++ memory { ++ reg = <0 0x40000000>; ++ }; ++ ++ leds { ++ act { ++ gpios = <&gpio 47 0>; ++ }; ++ ++ pwr { ++ label = "PWR"; ++ gpios = <&gpio 35 0>; ++ default-state = "keep"; ++ linux,default-trigger = "default-on"; ++ }; ++ }; ++}; ++ ++&gpio { ++ pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>; ++ ++ /* I2S interface */ ++ i2s_alt0: i2s_alt0 { ++ brcm,pins = <18 19 20 21>; ++ brcm,function = <BCM2835_FSEL_ALT0>; ++ }; ++}; +diff --git a/arch/arm/dts/bcm2836.dtsi b/arch/arm/dts/bcm2836.dtsi +new file mode 100644 +index 000000000000..9d0651d8f373 +--- /dev/null ++++ b/arch/arm/dts/bcm2836.dtsi +@@ -0,0 +1,78 @@ ++#include "bcm283x.dtsi" ++ ++/ { ++ compatible = "brcm,bcm2836"; ++ ++ soc { ++ ranges = <0x7e000000 0x3f000000 0x1000000>, ++ <0x40000000 0x40000000 0x00001000>; ++ dma-ranges = <0xc0000000 0x00000000 0x3f000000>; ++ ++ local_intc: local_intc { ++ compatible = "brcm,bcm2836-l1-intc"; ++ reg = <0x40000000 0x100>; ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ interrupt-parent = <&local_intc>; ++ }; ++ ++ arm-pmu { ++ compatible = "arm,cortex-a7-pmu"; ++ interrupt-parent = <&local_intc>; ++ interrupts = <9>; ++ }; ++ }; ++ ++ timer { ++ compatible = "arm,armv7-timer"; ++ interrupt-parent = <&local_intc>; ++ interrupts = <0>, // PHYS_SECURE_PPI ++ <1>, // PHYS_NONSECURE_PPI ++ <3>, // VIRT_PPI ++ <2>; // HYP_PPI ++ always-on; ++ }; ++ ++ cpus: cpus { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ v7_cpu0: cpu@0 { ++ device_type = "cpu"; ++ compatible = "arm,cortex-a7"; ++ reg = <0xf00>; ++ clock-frequency = <800000000>; ++ }; ++ ++ v7_cpu1: cpu@1 { ++ device_type = "cpu"; ++ compatible = "arm,cortex-a7"; ++ reg = <0xf01>; ++ clock-frequency = <800000000>; ++ }; ++ ++ v7_cpu2: cpu@2 { ++ device_type = "cpu"; ++ compatible = "arm,cortex-a7"; ++ reg = <0xf02>; ++ clock-frequency = <800000000>; ++ }; ++ ++ v7_cpu3: cpu@3 { ++ device_type = "cpu"; ++ compatible = "arm,cortex-a7"; ++ reg = <0xf03>; ++ clock-frequency = <800000000>; ++ }; ++ }; ++}; ++ ++/* Make the BCM2835-style global interrupt controller be a child of the ++ * CPU-local interrupt controller. ++ */ ++&intc { ++ compatible = "brcm,bcm2836-armctrl-ic"; ++ reg = <0x7e00b200 0x200>; ++ interrupt-parent = <&local_intc>; ++ interrupts = <8>; ++}; +diff --git a/arch/arm/dts/bcm283x.dtsi b/arch/arm/dts/bcm283x.dtsi +new file mode 100644 +index 000000000000..971e741e5467 +--- /dev/null ++++ b/arch/arm/dts/bcm283x.dtsi +@@ -0,0 +1,212 @@ ++#include <dt-bindings/pinctrl/bcm2835.h> ++#include <dt-bindings/clock/bcm2835.h> ++#include "skeleton.dtsi" ++ ++/* This include file covers the common peripherals and configuration between ++ * bcm2835 and bcm2836 implementations, leaving the CPU configuration to ++ * bcm2835.dtsi and bcm2836.dtsi. ++ */ ++ ++/ { ++ compatible = "brcm,bcm2835"; ++ model = "BCM2835"; ++ interrupt-parent = <&intc>; ++ ++ chosen { ++ bootargs = "earlyprintk console=ttyAMA0"; ++ }; ++ ++ soc { ++ compatible = "simple-bus"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ timer@7e003000 { ++ compatible = "brcm,bcm2835-system-timer"; ++ reg = <0x7e003000 0x1000>; ++ interrupts = <1 0>, <1 1>, <1 2>, <1 3>; ++ /* This could be a reference to BCM2835_CLOCK_TIMER, ++ * but we don't have the driver using the common clock ++ * support yet. ++ */ ++ clock-frequency = <1000000>; ++ }; ++ ++ dma: dma@7e007000 { ++ compatible = "brcm,bcm2835-dma"; ++ reg = <0x7e007000 0xf00>; ++ interrupts = <1 16>, ++ <1 17>, ++ <1 18>, ++ <1 19>, ++ <1 20>, ++ <1 21>, ++ <1 22>, ++ <1 23>, ++ <1 24>, ++ <1 25>, ++ <1 26>, ++ <1 27>, ++ <1 28>; ++ ++ #dma-cells = <1>; ++ brcm,dma-channel-mask = <0x7f35>; ++ }; ++ ++ intc: interrupt-controller@7e00b200 { ++ compatible = "brcm,bcm2835-armctrl-ic"; ++ reg = <0x7e00b200 0x200>; ++ interrupt-controller; ++ #interrupt-cells = <2>; ++ }; ++ ++ watchdog@7e100000 { ++ compatible = "brcm,bcm2835-pm-wdt"; ++ reg = <0x7e100000 0x28>; ++ }; ++ ++ clocks: cprman@7e101000 { ++ compatible = "brcm,bcm2835-cprman"; ++ #clock-cells = <1>; ++ reg = <0x7e101000 0x2000>; ++ ++ /* CPRMAN derives everything from the platform's ++ * oscillator. ++ */ ++ clocks = <&clk_osc>; ++ }; ++ ++ rng@7e104000 { ++ compatible = "brcm,bcm2835-rng"; ++ reg = <0x7e104000 0x10>; ++ }; ++ ++ mailbox: mailbox@7e00b800 { ++ compatible = "brcm,bcm2835-mbox"; ++ reg = <0x7e00b880 0x40>; ++ interrupts = <0 1>; ++ #mbox-cells = <0>; ++ }; ++ ++ gpio: gpio@7e200000 { ++ compatible = "brcm,bcm2835-gpio"; ++ reg = <0x7e200000 0xb4>; ++ /* ++ * The GPIO IP block is designed for 3 banks of GPIOs. ++ * Each bank has a GPIO interrupt for itself. ++ * There is an overall "any bank" interrupt. ++ * In order, these are GIC interrupts 17, 18, 19, 20. ++ * Since the BCM2835 only has 2 banks, the 2nd bank ++ * interrupt output appears to be mirrored onto the ++ * 3rd bank's interrupt signal. ++ * So, a bank0 interrupt shows up on 17, 20, and ++ * a bank1 interrupt shows up on 18, 19, 20! ++ */ ++ interrupts = <2 17>, <2 18>, <2 19>, <2 20>; ++ ++ gpio-controller; ++ #gpio-cells = <2>; ++ ++ interrupt-controller; ++ #interrupt-cells = <2>; ++ }; ++ ++ uart0: uart@7e201000 { ++ compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; ++ reg = <0x7e201000 0x1000>; ++ interrupts = <2 25>; ++ clocks = <&clocks BCM2835_CLOCK_UART>, ++ <&clocks BCM2835_CLOCK_VPU>; ++ clock-names = "uartclk", "apb_pclk"; ++ arm,primecell-periphid = <0x00241011>; ++ }; ++ ++ i2s: i2s@7e203000 { ++ compatible = "brcm,bcm2835-i2s"; ++ reg = <0x7e203000 0x20>, ++ <0x7e101098 0x02>; ++ ++ dmas = <&dma 2>, ++ <&dma 3>; ++ dma-names = "tx", "rx"; ++ status = "disabled"; ++ }; ++ ++ spi: spi@7e204000 { ++ compatible = "brcm,bcm2835-spi"; ++ reg = <0x7e204000 0x1000>; ++ interrupts = <2 22>; ++ clocks = <&clocks BCM2835_CLOCK_VPU>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "disabled"; ++ }; ++ ++ i2c0: i2c@7e205000 { ++ compatible = "brcm,bcm2835-i2c"; ++ reg = <0x7e205000 0x1000>; ++ interrupts = <2 21>; ++ clocks = <&clocks BCM2835_CLOCK_VPU>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "disabled"; ++ }; ++ ++ aux: aux@0x7e215000 { ++ compatible = "brcm,bcm2835-aux"; ++ #clock-cells = <1>; ++ reg = <0x7e215000 0x8>; ++ clocks = <&clocks BCM2835_CLOCK_VPU>; ++ }; ++ ++ sdhci: sdhci@7e300000 { ++ compatible = "brcm,bcm2835-sdhci"; ++ reg = <0x7e300000 0x100>; ++ interrupts = <2 30>; ++ clocks = <&clocks BCM2835_CLOCK_EMMC>; ++ status = "disabled"; ++ }; ++ ++ i2c1: i2c@7e804000 { ++ compatible = "brcm,bcm2835-i2c"; ++ reg = <0x7e804000 0x1000>; ++ interrupts = <2 21>; ++ clocks = <&clocks BCM2835_CLOCK_VPU>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "disabled"; ++ }; ++ ++ i2c2: i2c@7e805000 { ++ compatible = "brcm,bcm2835-i2c"; ++ reg = <0x7e805000 0x1000>; ++ interrupts = <2 21>; ++ clocks = <&clocks BCM2835_CLOCK_VPU>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "disabled"; ++ }; ++ ++ usb@7e980000 { ++ compatible = "brcm,bcm2835-usb"; ++ reg = <0x7e980000 0x10000>; ++ interrupts = <1 9>; ++ }; ++ }; ++ ++ clocks { ++ compatible = "simple-bus"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ /* The oscillator is the root of the clock tree. */ ++ clk_osc: clock@3 { ++ compatible = "fixed-clock"; ++ reg = <3>; ++ #clock-cells = <0>; ++ clock-output-names = "osc"; ++ clock-frequency = <19200000>; ++ }; ++ ++ }; ++}; +diff --git a/arch/arm/mach-bcm283x/core.c b/arch/arm/mach-bcm283x/core.c +index 64f37813883a..f11221dd6685 100644 +--- a/arch/arm/mach-bcm283x/core.c ++++ b/arch/arm/mach-bcm283x/core.c +@@ -42,15 +42,17 @@ static int bcm2835_clk_init(void) + + clk = clk_fixed("uart0-pl0110", 3 * 1000 * 1000); + clk_register_clkdev(clk, NULL, "uart0-pl0110"); ++ clk_register_clkdev(clk, NULL, "3f201000.uart"); + + clk = clk_fixed("bcm2835-cs", 1 * 1000 * 1000); + clk_register_clkdev(clk, NULL, "bcm2835-cs"); ++ clk_register_clkdev(clk, NULL, "3f003000.timer"); + + add_generic_device("bcm2835-cs", DEVICE_ID_SINGLE, NULL, BCM2835_ST_BASE, 0x1C, IORESOURCE_MEM, NULL); + + return 0; + } +-postcore_initcall(bcm2835_clk_init); ++pure_initcall(bcm2835_clk_init); + + void bcm2835_register_uart(void) + { diff --git a/configs/platform-v7a/patches/barebox-2016.05.0/0301-Release-2016.05.0-customers-pengutronix-multi_v7-201.patch b/configs/platform-v7a/patches/barebox-2016.05.0/0301-Release-2016.05.0-customers-pengutronix-multi_v7-201.patch new file mode 100644 index 0000000..76e12c8 --- /dev/null +++ b/configs/platform-v7a/patches/barebox-2016.05.0/0301-Release-2016.05.0-customers-pengutronix-multi_v7-201.patch @@ -0,0 +1,22 @@ +From: Michael Grzeschik <m.grzeschik@pengutronix.de> +Date: Fri, 10 Jun 2016 14:10:58 +0200 +Subject: [PATCH] Release 2016.05.0/customers/pengutronix/multi_v7/20160610-1 + +Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 93f1d17d99d2..b844aa674da5 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,7 +1,7 @@ + VERSION = 2016 + PATCHLEVEL = 05 + SUBLEVEL = 0 +-EXTRAVERSION = ++EXTRAVERSION =-20160610-1 + NAME = None + + # *DOCUMENTATION* diff --git a/configs/platform-v7a/patches/barebox-2016.05.0/series b/configs/platform-v7a/patches/barebox-2016.05.0/series new file mode 100644 index 0000000..a93c9d2 --- /dev/null +++ b/configs/platform-v7a/patches/barebox-2016.05.0/series @@ -0,0 +1,22 @@ +# umpf-base: v2016.05.0 +# umpf-name: 2016.05.0/customers/pengutronix/multi_v7 +# umpf-version: 2016.05.0/customers/pengutronix/multi_v7/20160610-1 +# umpf-topic: v2016.05.0/topic/bootstate +# umpf-hashinfo: bfaa55682a5f53a0f679ab08e6b55350594ed047 +# umpf-topic-range: f5142b8564005d95324e4c326dbc390ce85e8bef..bfaa55682a5f53a0f679ab08e6b55350594ed047 +0001-bootstate-add-framework-for-redundant-boot-scenarios.patch +0002-bootstate-Add-kernel-option-containing-the-system-th.patch +0003-bootstate-separate-names-from-boot-targets.patch +0004-bootstate-set-kernel-option-to-name-of-boot-target.patch +# umpf-topic: v2016.05.0/customers/pengutronix/beaglebone +# umpf-hashinfo: 9cbaeb8cfaa8b5e7837725df242aacccbbc5fa53 +# umpf-topic-range: bfaa55682a5f53a0f679ab08e6b55350594ed047..c95ad802cdf09922b56027338b85cd58de732c2a +0101-beaglebone-add-state-entrie-for-mmc0-and-mmc1.patch +# umpf-topic: v2016.05.0/customers/pengutronix/rpi2 +# umpf-hashinfo: 2df94ba7d6c5680032d7da8c1554cf01c7ca845b +# umpf-topic-range: c95ad802cdf09922b56027338b85cd58de732c2a..64afca484be01d3a0329b289fe4667608495e14b +0201-rpi2-add-basic-boot-spec-devicetree-support.patch +# umpf-release: 2016.05.0/customers/pengutronix/multi_v7/20160610-1 +# umpf-topic-range: 64afca484be01d3a0329b289fe4667608495e14b..92019e24a71b3a5484927b84863d0f2bf34aae51 +0301-Release-2016.05.0-customers-pengutronix-multi_v7-201.patch +# umpf-end diff --git a/configs/platform-v7a/platformconfig b/configs/platform-v7a/platformconfig new file mode 100644 index 0000000..9288b4b --- /dev/null +++ b/configs/platform-v7a/platformconfig @@ -0,0 +1,278 @@ +# +# Automatically generated file; DO NOT EDIT. +# PTXdist 2016.05.0 +# +PTXCONF__platformconfig_MAGIC__=y + +# +# ------------------------------------ +# + +# +# Target Platform Configuration +# + +# +# ------------------------------------ +# +PTXCONF_PLATFORM="v7a" +PTXCONF_PLATFORM_VERSION="-${PTXDIST_BSP_AUTOVERSION}" +PTXCONF_RUNTIME=y +PTXCONF_BUILDTIME=y +PTXCONF_PLATFORMCONFIG_VERSION="2016.05.0" + +# +# architecture +# +# PTXCONF_ARCH_ALPHA is not set +# PTXCONF_ARCH_AVR32 is not set +# PTXCONF_ARCH_AVR is not set +PTXCONF_ARCH_ARM=y +# PTXCONF_ARCH_ARM64 is not set +# PTXCONF_ARCH_BLACKFIN is not set +# PTXCONF_ARCH_X86 is not set +# PTXCONF_ARCH_MINGW is not set +# PTXCONF_ARCH_PPC is not set +# PTXCONF_ARCH_M68K is not set +# PTXCONF_ARCH_SPARC is not set +# PTXCONF_ARCH_MICROBLAZE is not set +# PTXCONF_ARCH_MIPS is not set +# PTXCONF_ARCH_CRIS is not set +# PTXCONF_ARCH_PARISC is not set +# PTXCONF_ARCH_SH is not set +PTXCONF_ARCH_SUPPORTS_ENDIAN_BIG=y +PTXCONF_ARCH_SUPPORTS_ENDIAN_LITTLE=y +# PTXCONF_ENDIAN_BIG is not set +PTXCONF_ENDIAN_LITTLE=y +PTXCONF_ARCH_ARM_V6=y +# PTXCONF_ARCH_ARM_IWMMXT is not set +PTXCONF_ARCH_ARM_NEON=y +PTXCONF_HAS_HARDFLOAT=y +PTXCONF_HAS_MMU=y +PTXCONF_SIZEOF_LONG_DOUBLE="8" +PTXCONF_ARCH_STRING="arm" + +# +# paths & directories +# +PTXCONF_SYSROOT_TARGET="${PTXDIST_PLATFORMDIR}/sysroot-target" +PTXCONF_SYSROOT_HOST="${PTXDIST_PLATFORMDIR}/sysroot-host" +PTXCONF_SYSROOT_CROSS="${PTXDIST_PLATFORMDIR}/sysroot-cross" + +# +# toolchain +# +PTXCONF_CROSSCHAIN_VENDOR="OSELAS.Toolchain-2014.12.2" +PTXCONF_CROSSCHAIN_CHECK="4.9.2" +PTXCONF_LIBC_GLIBC=y +# PTXCONF_LIBC_UCLIBC is not set +PTXCONF_GLIBC_VERSION="2.20" +PTXCONF_GNU_TARGET="arm-v7a-linux-gnueabihf" +PTXCONF_COMPILER_PREFIX="${PTXCONF_GNU_TARGET}-" +PTXCONF_COMPILER_PREFIX_KERNEL="${PTXCONF_COMPILER_PREFIX}" +PTXCONF_COMPILER_PREFIX_BOOTLOADER="${PTXCONF_COMPILER_PREFIX}" + +# +# hardening options +# +# PTXCONF_TARGET_HARDEN_STACK is not set +PTXCONF_TARGET_HARDEN_FORTIFY=y +PTXCONF_TARGET_HARDEN_RELRO=y +PTXCONF_TARGET_HARDEN_BINDNOW=y +# PTXCONF_TARGET_HARDEN_PIE is not set + +# +# extra toolchain options +# +# PTXCONF_TARGET_LINKER_HASH_DEFAULT is not set +# PTXCONF_TARGET_LINKER_HASH_SYSV is not set +PTXCONF_TARGET_LINKER_HASH_GNU=y +# PTXCONF_TARGET_LINKER_HASH_BOTH is not set +# PTXCONF_TARGET_LINKER_AS_NEEDED is not set +# PTXCONF_TARGET_DEBUG_OFF is not set +PTXCONF_TARGET_DEBUG_KEEP=y +# PTXCONF_TARGET_DEBUG_ENABLE is not set +# PTXCONF_TARGET_DEBUG_FULL is not set +PTXCONF_TARGET_COMPILER_RECORD_SWITCHES=y +PTXCONF_TARGET_EXTRA_CPPFLAGS="" +PTXCONF_TARGET_EXTRA_CFLAGS="" +PTXCONF_TARGET_EXTRA_CXXFLAGS="" +PTXCONF_TARGET_EXTRA_LDFLAGS="" +PTXCONF_KERNEL=y +PTXCONF_KERNEL_XPKG=y +PTXCONF_KERNEL_INSTALL=y +PTXCONF_KERNEL_MODULES=y +PTXCONF_KERNEL_MODULES_INSTALL=y +PTXCONF_KERNEL_MODULES_BUILD="modules" +PTXCONF_KERNEL_VERSION="4.6" +PTXCONF_KERNEL_MD5="d2927020e24a76da4ab482a8bc3e9ef3" +PTXCONF_KERNEL_ARCH_STRING="arm" +# PTXCONF_KERNEL_IMAGE_BZ is not set +PTXCONF_KERNEL_IMAGE_Z=y +# PTXCONF_KERNEL_IMAGE_XIP is not set +# PTXCONF_KERNEL_IMAGE_U is not set +# PTXCONF_KERNEL_IMAGE_VM is not set +# PTXCONF_KERNEL_IMAGE_VMLINUX is not set +# PTXCONF_KERNEL_IMAGE_RAW is not set +# PTXCONF_KERNEL_IMAGE_SIMPLE is not set +PTXCONF_KERNEL_IMAGE="zImage" +PTXCONF_KERNEL_DTC=y +PTXCONF_KERNEL_XZ=y +PTXCONF_KERNEL_LZOP=y + +# +# patching & configuration +# +PTXCONF_KERNEL_SERIES="series" +PTXCONF_KERNEL_CONFIG="kernelconfig" + +# +# Development features +# +PTXCONF_KERNEL_EXTRA_MAKEVARS="CONFIG_DEBUG_SECTION_MISMATCH=y" +PTXCONF_DTC=y +PTXCONF_DTC_INSTALL_OFTREE=y +PTXCONF_DTC_OFTREE_DTS_PATH="${KERNEL_DIR}/arch/${PTXCONF_KERNEL_ARCH_STRING}/boot/dts" +PTXCONF_DTC_OFTREE_DTS="am335x-bone.dts am335x-boneblack.dts vexpress-v2p-ca9.dts bcm2836-rpi-2-b.dts" +PTXCONF_DTC_KERNEL=y +PTXCONF_DTC_EXTRA_ARGS="" + +# +# console options +# +PTXCONF_CONSOLE_NAME="ttyO0" +PTXCONF_CONSOLE_SPEED="115200" + +# +# extra kernel +# + +# +# bootloaders +# +# PTXCONF_AT91BOOTSTRAP is not set +# PTXCONF_AT91BOOTSTRAP2 is not set +PTXCONF_BAREBOX_RPI2=y +PTXCONF_BAREBOX_RPI2_NEEDS_HOST_LZOP=y +PTXCONF_BAREBOX_ARCH_STRING="arm" +PTXCONF_BAREBOX=y +PTXCONF_BAREBOX_VERSION="2016.05.0" +PTXCONF_BAREBOX_MD5="4df21ad084faa54ea0310288c7b03049" +PTXCONF_BAREBOX_CONFIG="barebox.config" +PTXCONF_BAREBOX_EXTRA_ENV=y +PTXCONF_BAREBOX_EXTRA_ENV_PATH="${PTXDIST_PLATFORMCONFIGDIR}/barebox-defaultenv" +# PTXCONF_BAREBOX_BAREBOXENV is not set +# PTXCONF_BAREBOX_BAREBOXCRC32 is not set +# PTXCONF_BAREBOX_KERNEL_INSTALL is not set +# PTXCONF_BAREBOX_BAREBOXIMD is not set +# PTXCONF_BAREBOX_NEEDS_HOST_LIBUSB is not set +# PTXCONF_BAREBOX_NEEDS_HOST_OPENSSL is not set +# PTXCONF_BAREBOX_NEEDS_HOST_IMX_CST is not set +# PTXCONF_BAREBOX_NEEDS_HOST_LZOP is not set +PTXCONF_BAREBOX_MLO=y +PTXCONF_BAREBOX_MLO_VERSION="${PTXCONF_BAREBOX_VERSION}" +PTXCONF_BAREBOX_MLO_MD5="${PTXCONF_BAREBOX_MD5}" +PTXCONF_BAREBOX_MLO_ARCH_STRING="arm" +PTXCONF_BAREBOX_MLO_CONFIG="barebox_mlo.config" +PTXCONF_BAREBOX_MLO_NEEDS_HOST_LZOP=y +PTXCONF_BOOTLOADER=y +# PTXCONF_GRUB is not set +# PTXCONF_HOST_MXS_UTILS is not set + +# +# i.MX HAB +# +# PTXCONF_U_BOOT_V2 is not set +# PTXCONF_U_BOOT is not set +# PTXCONF_X_LOAD is not set + +# +# bootloader spec entries +# +PTXCONF_BLSPEC_BONEBLACK=y +PTXCONF_BLSPEC_BONEWHITE=y +# PTXCONF_BLSPEC_ENTRY is not set +PTXCONF_BLSPEC_RPI2=y + +# +# image creation options +# +# PTXCONF_IMAGE_BOOT_MLO_VFAT is not set +# PTXCONF_IMAGE_CPIO is not set +# PTXCONF_IMAGE_CPIO_GZ is not set +# PTXCONF_IMAGE_EXT2 is not set +# PTXCONF_IMAGE_HD is not set +# PTXCONF_IMAGE_VDI is not set + +# +# ipkg options +# +# PTXCONF_IMAGE_IPKG_PUSH_TO_REPOSITORY is not set +# PTXCONF_IMAGE_INSTALL_FROM_IPKG_REPOSITORY is not set +PTXCONF_IMAGE_IPKG_INDEX=y +PTXCONF_IMAGE_XPKG_EXTRA_ARGS="" +# PTXCONF_IMAGE_JFFS2 is not set +PTXCONF_IMAGE_KERNEL=y + +# +# 'rootfs in kernel image' is incompatible with 'install kernel into /boot' +# +PTXCONF_IMAGE_KERNEL_INSTALL_EARLY=y +# PTXCONF_IMAGE_KERNEL_LZOP is not set +# PTXCONF_IMAGE_SQUASHFS is not set +# PTXCONF_IMAGE_TGZ is not set +# PTXCONF_IMAGE_UBI is not set +# PTXCONF_IMAGE_UBIFS is not set +# PTXCONF_IMAGE_UIMAGE is not set + +# +# new image creation options +# +# PTXCONF_IMAGE_BOOT_MLO is not set +PTXCONF_IMAGE_BOOT_VFAT=y +PTXCONF_IMAGE_BOOT_VFAT_GPU_MEM=64 +PTXCONF_IMAGE_HDIMG=y +# PTXCONF_IMAGE_HDIMG_NONE is not set +# PTXCONF_IMAGE_HDIMG_BAREBOX is not set +PTXCONF_IMAGE_HDIMG_VFAT=y +# PTXCONF_IMAGE_ROOT_CPIO_GZ is not set +# PTXCONF_IMAGE_ROOT_CPIO is not set +PTXCONF_IMAGE_ROOT_EXT=y +PTXCONF_IMAGE_ROOT_EXT_SIZE="125%" +# PTXCONF_IMAGE_ROOT_EXT_EXT2 is not set +# PTXCONF_IMAGE_ROOT_EXT_EXT3 is not set +PTXCONF_IMAGE_ROOT_EXT_EXT4=y +PTXCONF_IMAGE_ROOT_EXT_TYPE="ext4" +PTXCONF_IMAGE_ROOT_TGZ=y +# PTXCONF_IMAGE_ROOT_UBI is not set +# PTXCONF_IMAGE_ROOT_UBIFS is not set +# PTXCONF_HOST_ACL is not set +# PTXCONF_HOST_ATTR is not set +# PTXCONF_HOST_BZIP2 is not set +# PTXCONF_HOST_CDRKIT is not set +# PTXCONF_HOST_CMAKE is not set +# PTXCONF_HOST_CRAMFS is not set +PTXCONF_HOST_DOSFSTOOLS=y +PTXCONF_HOST_E2FSPROGS=y +PTXCONF_HOST_GENEXT2FS=y +PTXCONF_HOST_GENIMAGE=y +# PTXCONF_HOST_GENPART is not set +# PTXCONF_HOST_GETTEXT is not set +# PTXCONF_HOST_LIBBLKID is not set +# PTXCONF_HOST_LIBCAP is not set +PTXCONF_HOST_LIBCONFUSE=y +PTXCONF_HOST_LIBKMOD=y +PTXCONF_HOST_LIBLZO=y +# PTXCONF_HOST_LIBUSB is not set +# PTXCONF_HOST_LIBUUID is not set +PTXCONF_HOST_LZOP=y +# PTXCONF_HOST_MKELFIMAGE is not set +# PTXCONF_HOST_MTD_UTILS is not set +PTXCONF_HOST_MTOOLS=y +# PTXCONF_HOST_OPENSSL is not set +# PTXCONF_HOST_SQUASHFS_TOOLS is not set +# PTXCONF_HOST_U_BOOT_TOOLS is not set +# PTXCONF_HOST_UTIL_LINUX_NG is not set +# PTXCONF_HOST_XL_TOOLS is not set +PTXCONF_HOST_XZ=y +# PTXCONF_HOST_ZLIB is not set diff --git a/configs/platform-v7a/platforms/barebox-rpi2.in b/configs/platform-v7a/platforms/barebox-rpi2.in new file mode 100644 index 0000000..c72762c --- /dev/null +++ b/configs/platform-v7a/platforms/barebox-rpi2.in @@ -0,0 +1,20 @@ +## SECTION=bootloader + +menuconfig BAREBOX_RPI2 + tristate + prompt "Barebox (rpi2)" + select HOST_LZOP if BAREBOX_RPI2_NEEDS_HOST_LZOP + help + Raspberry Pi 2 support for barebox. + +if BAREBOX_RPI2 + +config BAREBOX_RPI2_NEEDS_HOST_LZOP + prompt "barebox rpi2 needs lzop" + bool + help + The barebox rpi2 can be compressed. Select this if lzop + is used in order to compile lzop for your development + host. + +endif diff --git a/configs/platform-v7a/platforms/barebox_mlo.in b/configs/platform-v7a/platforms/barebox_mlo.in new file mode 100644 index 0000000..184aa52 --- /dev/null +++ b/configs/platform-v7a/platforms/barebox_mlo.in @@ -0,0 +1,45 @@ +## SECTION=bootloader + +menuconfig BAREBOX_MLO + prompt "barebox mlo " + select HOST_LZOP if BAREBOX_MLO_NEEDS_HOST_LZOP + bool + help + Build mlo from barebox sources. + +if BAREBOX_MLO + +config BAREBOX_MLO_VERSION + prompt "barebox version" if !BAREBOX + string + default "${PTXCONF_BAREBOX_VERSION}" if BAREBOX + default "2014.01.0" if !BAREBOX + +config BAREBOX_MLO_MD5 + prompt "barebox source md5sum" if !BAREBOX + string + default "${PTXCONF_BAREBOX_MD5}" if BAREBOX + +config BAREBOX_MLO_ARCH_STRING + string + default "arm" if ARCH_ARM + default "blackfin" if ARCH_BLACKFIN + default "ppc" if ARCH_PPC + default "x86" if ARCH_X86 + +config BAREBOX_MLO_CONFIG + prompt "mlo config file" + string + default "barebox_mlo.config" + help + This entry specifies the .config file used to compile mlo. + +config BAREBOX_MLO_NEEDS_HOST_LZOP + prompt "barebox mlo needs lzop" + bool + help + The barebox mlo dtb's can be compressed. Select this if + lzop is used in order to compile lzop for your development + host. + +endif diff --git a/configs/platform-v7a/platforms/blspec-boneblack.in b/configs/platform-v7a/platforms/blspec-boneblack.in new file mode 100644 index 0000000..a4eda10 --- /dev/null +++ b/configs/platform-v7a/platforms/blspec-boneblack.in @@ -0,0 +1,5 @@ +## SECTION=blspec + +config BLSPEC_BONEBLACK + tristate + prompt "/loader/entries/boneblack.conf bootloader spec entry" diff --git a/configs/platform-v7a/platforms/blspec-bonewhite.in b/configs/platform-v7a/platforms/blspec-bonewhite.in new file mode 100644 index 0000000..8408cd8 --- /dev/null +++ b/configs/platform-v7a/platforms/blspec-bonewhite.in @@ -0,0 +1,5 @@ +## SECTION=blspec + +config BLSPEC_BONEWHITE + tristate + prompt "/loader/entries/bonewhite.conf bootloader spec entry" diff --git a/configs/platform-v7a/platforms/blspec-rpi2.in b/configs/platform-v7a/platforms/blspec-rpi2.in new file mode 100644 index 0000000..e5b0952 --- /dev/null +++ b/configs/platform-v7a/platforms/blspec-rpi2.in @@ -0,0 +1,5 @@ +## SECTION=blspec + +config BLSPEC_RPI2 + tristate + prompt "/loader/entries/rpi2.conf bootloader spec entry" diff --git a/configs/platform-v7a/platforms/image-boot-vfat.in b/configs/platform-v7a/platforms/image-boot-vfat.in new file mode 100644 index 0000000..6ac5dd9 --- /dev/null +++ b/configs/platform-v7a/platforms/image-boot-vfat.in @@ -0,0 +1,22 @@ +## SECTION=image2 + +config IMAGE_BOOT_VFAT + tristate + select HOST_GENIMAGE + select HOST_MTOOLS + select HOST_DOSFSTOOLS + select KERNEL + prompt "Generate image/boot.vfat" + help + FIXME + +if IMAGE_BOOT_VFAT + +config IMAGE_BOOT_VFAT_GPU_MEM + int + default 64 + prompt "GPU memory" + help + GPU memory in megabyte. Sets the memory split between the ARM + and GPU. ARM gets the remaining memory. Min 16. +endif diff --git a/configs/platform-v7a/projectroot/loader/entries/boneblack.conf b/configs/platform-v7a/projectroot/loader/entries/boneblack.conf new file mode 100644 index 0000000..028184f --- /dev/null +++ b/configs/platform-v7a/projectroot/loader/entries/boneblack.conf @@ -0,0 +1,5 @@ +title BeagleBone Black - Pengutronix-DistroKit +version 4.6 +options root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rw +linux /boot/zImage +devicetree /boot/am335x-boneblack.dtb diff --git a/configs/platform-v7a/projectroot/loader/entries/bonewhite.conf b/configs/platform-v7a/projectroot/loader/entries/bonewhite.conf new file mode 100644 index 0000000..727a263 --- /dev/null +++ b/configs/platform-v7a/projectroot/loader/entries/bonewhite.conf @@ -0,0 +1,5 @@ +title BeagleBone White - Pengutronix-DistroKit +version 4.6 +options root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rw +linux /boot/zImage +devicetree /boot/am335x-bone.dtb diff --git a/configs/platform-v7a/projectroot/loader/entries/rpi2.conf b/configs/platform-v7a/projectroot/loader/entries/rpi2.conf new file mode 100644 index 0000000..05992c0 --- /dev/null +++ b/configs/platform-v7a/projectroot/loader/entries/rpi2.conf @@ -0,0 +1,5 @@ +title Raspberry Pi 2 - Pengutronix-DistroKit +version 4.6 +options loglevel=5 systemd.log_level=warning systemd.show_status=auto root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rw +linux /boot/zImage +devicetree /boot/bcm2836-rpi-2-b.dtb diff --git a/configs/platform-v7a/qemu-common b/configs/platform-v7a/qemu-common new file mode 100755 index 0000000..86e2584 --- /dev/null +++ b/configs/platform-v7a/qemu-common @@ -0,0 +1,92 @@ +#!/bin/bash +# +# This is sourced by the run scripts. + +platformconfig=selected_platformconfig +# fallback to platformconfig in the same dir as this script +if [ ! -e "$platformconfig" ]; then + platformconfig=$(dirname $0)/platformconfig +fi + +# +# we need information about the platform +# +if [ ! -e "$platformconfig" ]; then + echo "error: selected_platformconfig does not exist" + echo " please use 'ptxdist platform ...' or 'ptxdist --platformconfig=...'" + exit 1 +fi + +source $platformconfig + +if [ -n "${PTXCONF_PLATFORM}" ]; then + PTXDIST_PLATFORMDIR="./platform-${PTXCONF_PLATFORM}" +else + PTXDIST_PLATFORMDIR="." +fi + +if [ ! -e "${PTXDIST_PLATFORMDIR}/images/linuximage" ]; then + echo "error: run 'ptxdist go' first" + exit 1 +fi + +if [ ! -e "${PTXDIST_PLATFORMDIR}/images/hd.img" ]; then + echo "error: run 'ptxdist images' first" + exit 1 +fi + +#if [ ! -e "${PTXDIST_PLATFORMDIR}/images/nor0.img" ]; then +# echo "error: run 'ptxdist images' first" +# exit 1 +#fi + +# the emulator to run +QEMU_EXEC="${PTXDIST_PLATFORMDIR}/sysroot-host/bin/qemu-system-arm" + +if [ ! -e "${QEMU_EXEC}" ]; then + echo "error: enable and install 'host-qemu' first" + exit 1 +fi + +# disable this, if you want to have some graphics output +QEMU_NOGRAPHIC=-nographic + +# Machine to emulate: The default kernel is prepared to run on "versatile pb" +QEMU_MACHINE=vexpress-a9 + +# +# 'user mode' network related settings +# +PLATFORM_IP="10.0.2.7" + +# +# *_INTERNAL_PORT: the port a service would connect (in the emulated system) +# *_EXTERNAL_PORT: port QEMU opens at the host side to give access to the ${*_INTERNAL_PORT} +# +TELNET_INTERNAL_PORT=23 +TELNET_EXTERNAL_PORT=20023 + +HTTP_INTERNAL_PORT=80 +HTTP_EXTERNAL_PORT=20080 + +if [ -z "${VDE_SOCKET}" ]; then + for dir in $(ls -d /var/run/vde2/*.ctl 2>/dev/null); do + if [ -r "${dir}" ]; then + VDE_SOCKET="${dir}" + fi + done +fi +if [ -n "${VDE_SOCKET}" ]; then + if ${QEMU_EXEC} --help | grep -q -- '-net vde'; then + QEMU_NET="-net vde,vlan=1,sock=${VDE_SOCKET}" + fi +fi +if [ -z "${QEMU_NET}" ]; then + QEMU_NET="-net user,vlan=1" + PLATFORM_IP="" +fi + +QEMU_REDIR=" \ + -redir tcp:${TELNET_EXTERNAL_PORT}:${PLATFORM_IP}:${TELNET_INTERNAL_PORT} \ + -redir tcp:${HTTP_EXTERNAL_PORT}:${PLATFORM_IP}:${HTTP_INTERNAL_PORT} \ +" diff --git a/configs/platform-v7a/rpi-firmware/LICENCE.broadcom b/configs/platform-v7a/rpi-firmware/LICENCE.broadcom new file mode 100644 index 0000000..89b5c0c --- /dev/null +++ b/configs/platform-v7a/rpi-firmware/LICENCE.broadcom @@ -0,0 +1,30 @@ +Copyright (c) 2006, Broadcom Corporation. +Copyright (c) 2015, Raspberry Pi (Trading) Ltd +All rights reserved. + +Redistribution. Redistribution and use in binary form, without +modification, are permitted provided that the following conditions are +met: + +* This software may only be used for the purposes of developing for, + running or using a Raspberry Pi device. +* Redistributions must reproduce the above copyright notice and the + following disclaimer in the documentation and/or other materials + provided with the distribution. +* Neither the name of Broadcom Corporation nor the names of its suppliers + may be used to endorse or promote products derived from this software + without specific prior written permission. + +DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + diff --git a/configs/platform-v7a/rpi-firmware/bootcode.bin b/configs/platform-v7a/rpi-firmware/bootcode.bin Binary files differnew file mode 100644 index 0000000..59c9256 --- /dev/null +++ b/configs/platform-v7a/rpi-firmware/bootcode.bin diff --git a/configs/platform-v7a/rpi-firmware/config.txt b/configs/platform-v7a/rpi-firmware/config.txt new file mode 100644 index 0000000..a71e4a6 --- /dev/null +++ b/configs/platform-v7a/rpi-firmware/config.txt @@ -0,0 +1,14 @@ +# Set barebox as third state bootloader +kernel=barebox.bin-rpi2 +# Set stdv mode to PAL (as used in Europe) +sdtv_mode=2 +# Force the monitor to HDMI mode so that sound will be sent over HDMI cable +hdmi_drive=2 +# Set monitor mode to DMT +hdmi_group=1 +# Set monitor resolution to 1080p60 +hdmi_mode=16 +# No overscan +disable_overscan=1 +# GPU memory in megabyte +gpu_mem=@GPU_MEM@ diff --git a/configs/platform-v7a/rpi-firmware/fixup.dat b/configs/platform-v7a/rpi-firmware/fixup.dat Binary files differnew file mode 100644 index 0000000..8ff5889 --- /dev/null +++ b/configs/platform-v7a/rpi-firmware/fixup.dat diff --git a/configs/platform-v7a/rpi-firmware/fixup_cd.dat b/configs/platform-v7a/rpi-firmware/fixup_cd.dat Binary files differnew file mode 100644 index 0000000..0cebf99 --- /dev/null +++ b/configs/platform-v7a/rpi-firmware/fixup_cd.dat diff --git a/configs/platform-v7a/rpi-firmware/fixup_db.dat b/configs/platform-v7a/rpi-firmware/fixup_db.dat Binary files differnew file mode 100644 index 0000000..f2ace7c --- /dev/null +++ b/configs/platform-v7a/rpi-firmware/fixup_db.dat diff --git a/configs/platform-v7a/rpi-firmware/fixup_x.dat b/configs/platform-v7a/rpi-firmware/fixup_x.dat Binary files differnew file mode 100644 index 0000000..563a503 --- /dev/null +++ b/configs/platform-v7a/rpi-firmware/fixup_x.dat diff --git a/configs/platform-v7a/rpi-firmware/start.elf b/configs/platform-v7a/rpi-firmware/start.elf Binary files differnew file mode 100644 index 0000000..9a40ea5 --- /dev/null +++ b/configs/platform-v7a/rpi-firmware/start.elf diff --git a/configs/platform-v7a/rpi-firmware/start_cd.elf b/configs/platform-v7a/rpi-firmware/start_cd.elf Binary files differnew file mode 100644 index 0000000..2a703c4 --- /dev/null +++ b/configs/platform-v7a/rpi-firmware/start_cd.elf diff --git a/configs/platform-v7a/rpi-firmware/start_db.elf b/configs/platform-v7a/rpi-firmware/start_db.elf Binary files differnew file mode 100644 index 0000000..be0b00a --- /dev/null +++ b/configs/platform-v7a/rpi-firmware/start_db.elf diff --git a/configs/platform-v7a/rpi-firmware/start_x.elf b/configs/platform-v7a/rpi-firmware/start_x.elf Binary files differnew file mode 100644 index 0000000..63e8032 --- /dev/null +++ b/configs/platform-v7a/rpi-firmware/start_x.elf diff --git a/configs/platform-v7a/rules/barebox-rpi2.make b/configs/platform-v7a/rules/barebox-rpi2.make new file mode 100644 index 0000000..218140e --- /dev/null +++ b/configs/platform-v7a/rules/barebox-rpi2.make @@ -0,0 +1,92 @@ +# -*-makefile-*- +# +# Copyright (C) 2016 by Alexander Aring <aar@pengutronix.de> +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_BAREBOX_RPI2) += barebox-rpi2 + +# +# Paths and names +# +BAREBOX_RPI2_VERSION := 2016.05.0 +BAREBOX_RPI2_MD5 := +BAREBOX_RPI2 := barebox-$(BAREBOX_RPI2_VERSION) +BAREBOX_RPI2_SUFFIX := tar.bz2 +BAREBOX_RPI2_DIR := $(BUILDDIR)/barebox-rpi2-$(BAREBOX_RPI2_VERSION) +BAREBOX_RPI2_CONFIG := $(PTXDIST_PLATFORMCONFIGDIR)/barebox-rpi2.config.$(BAREBOX_RPI2_VERSION) +BAREBOX_RPI2_LICENSE := GPL-2.0 +BAREBOX_RPI2_URL := $(call barebox-url, BAREBOX_RPI2) +BAREBOX_RPI2_SOURCE := $(SRCDIR)/$(BAREBOX_RPI2).$(BAREBOX_RPI2_SUFFIX) + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +BAREBOX_RPI2_BLACKLIST := \ + TARGET_HARDEN_RELRO \ + TARGET_HARDEN_BINDNOW \ + TARGET_HARDEN_PIE \ + TARGET_DEBUG + +BAREBOX_RPI2_CONF_ENV := KCONFIG_NOTIMESTAMP=1 +BAREBOX_RPI2_CONF_OPT := $(call barebox-opts, BAREBOX_RPI2) + +BAREBOX_RPI2_MAKE_ENV := $(BAREBOX_RPI2_CONF_ENV) +BAREBOX_RPI2_MAKE_OPT := $(BAREBOX_RPI2_CONF_OPT) + +BAREBOX_RPI2_IMAGES := barebox.bin +BAREBOX_RPI2_IMAGES := $(addprefix $(BAREBOX_RPI2_DIR)/,$(BAREBOX_RPI2_IMAGES)) + +ifdef PTXCONF_BAREBOX_RPI2 +$(BAREBOX_RPI2_CONFIG): + @echo + @echo "****************************************************************************" + @echo " Please generate a bareboxconfig with 'ptxdist menuconfig barebox-rpi2'" + @echo "****************************************************************************" + @echo + @echo + @exit 1 +endif + +$(STATEDIR)/barebox-rpi2.prepare: $(BAREBOX_RPI2_CONFIG) + +# ---------------------------------------------------------------------------- +# Install +# ---------------------------------------------------------------------------- + +BAREBOX_RPI2_INSTALL_OPT := \ + $(call barebox-opts, BAREBOX_RPI2) + +$(STATEDIR)/barebox-rpi2.install: + @$(call targetinfo) + @$(foreach image, $(BAREBOX_RPI2_IMAGES), \ + install -m 644 \ + $(image) $(IMAGEDIR)/$(notdir $(image))-rpi2;) + @$(call touch) + +# ---------------------------------------------------------------------------- +# Clean +# ---------------------------------------------------------------------------- + +$(STATEDIR)/barebox-rpi2.clean: + @$(call targetinfo) + @$(call clean_pkg, BAREBOX_RPI2) + @$(foreach image, $(BAREBOX_RPI2_IMAGES), \ + rm -fv $(IMAGEDIR)/$(notdir $(image))-rpi2;) + +# ---------------------------------------------------------------------------- +# oldconfig / menuconfig +# ---------------------------------------------------------------------------- + +barebox-rpi2_oldconfig barebox-rpi2_menuconfig barebox-rpi2_nconfig: $(STATEDIR)/barebox-rpi2.extract + @$(call world/kconfig, BAREBOX_RPI2, $(subst barebox-rpi2_,,$@)) + +# vim: syntax=make diff --git a/configs/platform-v7a/rules/blspec-boneblack.make b/configs/platform-v7a/rules/blspec-boneblack.make new file mode 100644 index 0000000..841b13a --- /dev/null +++ b/configs/platform-v7a/rules/blspec-boneblack.make @@ -0,0 +1,38 @@ +# -*-makefile-*- +# +# Copyright (C) 2016 by Michael Grzeschik <mgr@pengutronix.de> +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_BLSPEC_BONEBLACK) += blspec-boneblack + +BLSPEC_BONEBLACK_VERSION := 4.6 + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/blspec-boneblack.targetinstall: + @$(call targetinfo) + + @$(call install_init, blspec-boneblack) + @$(call install_fixup,blspec-boneblack,PRIORITY,optional) + @$(call install_fixup,blspec-boneblack,SECTION,base) + @$(call install_fixup,blspec-boneblack,AUTHOR,"Michael Grzeschik <mgr@pengutronix.de>") + @$(call install_fixup,blspec-boneblack,DESCRIPTION,missing) + + @$(call install_alternative, blspec-boneblack, 0, 0, 0644, \ + /loader/entries/boneblack.conf) + + @$(call install_finish,blspec-boneblack) + + @$(call touch) + +# vim: syntax=make diff --git a/configs/platform-v7a/rules/blspec-bonewhite.make b/configs/platform-v7a/rules/blspec-bonewhite.make new file mode 100644 index 0000000..1d7cbea --- /dev/null +++ b/configs/platform-v7a/rules/blspec-bonewhite.make @@ -0,0 +1,38 @@ +# -*-makefile-*- +# +# Copyright (C) 2016 by Michael Grzeschik <mgr@pengutronix.de> +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_BLSPEC_BONEWHITE) += blspec-bonewhite + +BLSPEC_BONEWHITE_VERSION := 4.6 + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/blspec-bonewhite.targetinstall: + @$(call targetinfo) + + @$(call install_init, blspec-bonewhite) + @$(call install_fixup,blspec-bonewhite,PRIORITY,optional) + @$(call install_fixup,blspec-bonewhite,SECTION,base) + @$(call install_fixup,blspec-bonewhite,AUTHOR,"Michael Grzeschik <mgr@pengutronix.de>") + @$(call install_fixup,blspec-bonewhite,DESCRIPTION,missing) + + @$(call install_alternative, blspec-bonewhite, 0, 0, 0644, \ + /loader/entries/bonewhite.conf) + + @$(call install_finish,blspec-bonewhite) + + @$(call touch) + +# vim: syntax=make diff --git a/configs/platform-v7a/rules/blspec-rpi2.make b/configs/platform-v7a/rules/blspec-rpi2.make new file mode 100644 index 0000000..4013220 --- /dev/null +++ b/configs/platform-v7a/rules/blspec-rpi2.make @@ -0,0 +1,38 @@ +# -*-makefile-*- +# +# Copyright (C) 2016 by Alexander Aring <aar@pengutronix.de> +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_BLSPEC_RPI2) += blspec-rpi2 + +BLSPEC_RPI2_VERSION := 4.6 + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/blspec-rpi2.targetinstall: + @$(call targetinfo) + + @$(call install_init, blspec-rpi2) + @$(call install_fixup,blspec-rpi2,PRIORITY,optional) + @$(call install_fixup,blspec-rpi2,SECTION,base) + @$(call install_fixup,blspec-rpi2,AUTHOR,"Alexander Aring <aar@pengutronix.de>") + @$(call install_fixup,blspec-rpi2,DESCRIPTION,missing) + + @$(call install_alternative, blspec-rpi2, 0, 0, 0644, \ + /loader/entries/rpi2.conf) + + @$(call install_finish,blspec-rpi2) + + @$(call touch) + +# vim: syntax=make diff --git a/configs/platform-v7a/rules/image-boot-vfat.make b/configs/platform-v7a/rules/image-boot-vfat.make new file mode 100644 index 0000000..185c2b7 --- /dev/null +++ b/configs/platform-v7a/rules/image-boot-vfat.make @@ -0,0 +1,49 @@ +# -*-makefile-*- +# +# Copyright (C) 2012 by Michael Olbrich <m.olbrich@pengutronix.de> +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +IMAGE_PACKAGES-$(PTXCONF_IMAGE_BOOT_VFAT) += image-boot-vfat + +# +# Paths and names +# +IMAGE_BOOT_VFAT := image-boot-vfat +IMAGE_BOOT_VFAT_DIR := $(BUILDDIR)/$(IMAGE_BOOT_VFAT) +IMAGE_BOOT_VFAT_IMAGE := $(IMAGEDIR)/boot.vfat +IMAGE_BOOT_VFAT_DATA := \ + $(wildcard $(PTXDIST_PLATFORMCONFIGDIR)/rpi-firmware/*.bin) \ + $(wildcard $(PTXDIST_PLATFORMCONFIGDIR)/rpi-firmware/*.elf) \ + $(wildcard $(PTXDIST_PLATFORMCONFIGDIR)/rpi-firmware/*.dat) \ + $(wildcard $(PTXDIST_PLATFORMCONFIGDIR)/rpi-firmware/config.txt) +IMAGE_BOOT_VFAT_CONFIG := boot-vfat.config + +# ---------------------------------------------------------------------------- +# Image +# ---------------------------------------------------------------------------- + +define squote_and_comma +$(subst $(ptx/def/space),$(comma) ,$(addsuffix $(ptx/def/squote),$(addprefix $(ptx/def/squote),$(1)))) +endef + + +IMAGE_BOOT_VFAT_ENV := \ + FIRMWARE_RPI2="$(call squote_and_comma,$(IMAGE_BOOT_VFAT_DATA))" + +$(IMAGE_BOOT_VFAT_IMAGE): + @$(call targetinfo) + @GPU_MEM=$(PTXCONF_IMAGE_BOOT_VFAT_GPU_MEM) \ + ptxd_replace_magic "$(PTXDIST_PLATFORMCONFIGDIR)/rpi-firmware/config.txt" > \ + "$(PTXDIST_TEMPDIR)/config.txt" + @$(call image/genimage, IMAGE_BOOT_VFAT) + @$(call finish) + +# vim: syntax=make diff --git a/configs/platform-v7a/rules/post/genimage-fixup.make b/configs/platform-v7a/rules/post/genimage-fixup.make new file mode 100644 index 0000000..67c5deb --- /dev/null +++ b/configs/platform-v7a/rules/post/genimage-fixup.make @@ -0,0 +1,3 @@ +$(IMAGEDIR)/boot.vfat: $(STATEDIR)/kernel.targetinstall.post +$(IMAGEDIR)/boot.vfat: $(STATEDIR)/barebox.targetinstall.post +$(IMAGEDIR)/boot.vfat: $(STATEDIR)/barebox-rpi2.targetinstall.post diff --git a/configs/platform-v7a/run b/configs/platform-v7a/run new file mode 100755 index 0000000..eba8197 --- /dev/null +++ b/configs/platform-v7a/run @@ -0,0 +1,21 @@ +#!/bin/bash +# +# For some information about how to work with qemu for ARM, please +# refer: http://fedoraproject.org/wiki/Architectures/ARM/HowToQemu + +. $(dirname $0)/qemu-common + +# do the job +${QEMU_EXEC} ${QEMU_NOGRAPHIC} \ + -M ${QEMU_MACHINE} \ + -m 1024 \ + -no-reboot \ + -net nic,vlan=1 \ + ${QEMU_NET} \ + ${QEMU_REDIR} \ + -kernel ${PTXDIST_PLATFORMDIR}/images/linuximage \ + -dtb ${PTXDIST_PLATFORMDIR}/images/vexpress-v2p-ca9.dtb \ + -drive if=sd,file=${PTXDIST_PLATFORMDIR}/images/hd.img,format=raw \ + -smp 1 \ + -append "console=ttyAMA0 root=/dev/mmcblk0p2 rootfs=ext2 rw mem=1024M rootwait loglevel=5 rootfstype=ext4 systemd.log_level=warning systemd.show_status=auto" + diff --git a/configs/platform-v7a/run-nfs b/configs/platform-v7a/run-nfs new file mode 100755 index 0000000..d1675fb --- /dev/null +++ b/configs/platform-v7a/run-nfs @@ -0,0 +1,20 @@ +#!/bin/bash +# +# For some information about how to work with qemu for ARM, please +# refer: http://fedoraproject.org/wiki/Architectures/ARM/HowToQemu + +. $(dirname $0)/qemu-common + +# do the job +${QEMU_EXEC} ${QEMU_NOGRAPHIC} \ + -M ${QEMU_MACHINE} \ + -m 1024 \ + -no-reboot \ + -net nic,vlan=1 \ + ${QEMU_NET} \ + ${QEMU_REDIR} \ + -kernel ${PTXDIST_PLATFORMDIR}/images/linuximage \ + -dtb ${PTXDIST_PLATFORMDIR}/images/vexpress-v2p-ca9.dtb \ + -smp 1 \ + -append "console=ttyAMA0 root=/dev/nfs nfsroot=10.0.2.2:/root,v3,tcp,port=2049,mountport=2049 rw mem=1024M rootwait loglevel=5 systemd.log_level=warning systemd.show_status=auto ip=dhcp" + diff --git a/configs/platform-v7a/scripts/lib/ptxd_make_nfsd.sh b/configs/platform-v7a/scripts/lib/ptxd_make_nfsd.sh new file mode 100644 index 0000000..2fefcdc --- /dev/null +++ b/configs/platform-v7a/scripts/lib/ptxd_make_nfsd.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# +# Copyright (C) 2012 by Michael Olbrich <m.olbrich@pengutronix.de> +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +ptxd_make_nfsd_exec() { + local port + local root="/$(basename "${ptx_nfsroot}")" + local base="$(dirname "${ptx_nfsroot}")" + + if ! port="$(ptxd_get_kconfig "${PTXDIST_BOARDSETUP}" "PTXCONF_BOARDSETUP_NFSPORT")"; then + port=2049 + fi + + echo + echo "Mount rootfs with nfsroot=${root},v3,tcp,port=${port},mountport=${port}" + echo + + #insecure for qemu with -net user + echo "/ (rw,no_root_squash,insecure)" > "${PTXDIST_TEMPDIR}/exports" && + UNFS_BASE="${base}" unfsd -e "${PTXDIST_TEMPDIR}/exports" -n ${port} -m ${port} -p -d +} +export -f ptxd_make_nfsd_exec + |