Proposal to add NAND-boot support for Sunxi SPL
Subsystems (4)
The following patches take the work by Daniel Kochm?nski, and make some heavy modifications for readability and functionality, based on Boris Brezillon's Linux driver. Tested on an Olimex Lime w/ A20. Patches are sent as RFC. Open questions:
- Config options added are partially NAND-chip specific. Some options can be autodetected based on the NAND ID, others require either brute-forcing or config options like these. Do they belong in sunxi-common? Should we make a Kconfig option for this? If bikeshedding is desired, are defines in sunxi-common.h good enough for now?
- Style is mostly kernel-like. Satisfied?
- Daniel: do you think we can work from here?
Please comment away!
Roy
Signature · 6 lines
IMAGINE IT >> MAKE IT Meet us online at Twitter <http://twitter.com/ultimaker>, Facebook <http://facebook.com/ultimaker>, Google+ <http://google.com/+Ultimaker> www.ultimaker.com
PATCH 1/2 nand: sunxi: change BLOCK_SIZE in mksunxiboot to match NAND block size
From: Daniel Kochma?ski <[email protected]>
This change is necessary to calculate correct checksum for NAND boot. Works both for MMC and NAND. Without it BROM rejects boot image as invalid (bad checksum). (Changes block size from 0x200 to 0x2000).
V2: Document decision in source too
--- tools/mksunxiboot.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
tools/mksunxiboot.c +7 -1
@@ -65,7 +65,13 @@ int gen_check_sum(struct boot_file_head *head_p)#define SUN4I_SRAM_SIZE 0x7600/* 0x7748+ is used by BROM */ #define SRAM_LOAD_MAX_SIZE (SUN4I_SRAM_SIZE - sizeof(struct boot_file_head)) -#define BLOCK_SIZE 512 + +/* +* BROM (at least on A10 and A20) requires NAND-images to be explicitly aligned +* to a multiple of 8K, and rejects the image otherwise. MMC-images are fine +* with 512B blocks. To cater for both, align to the largest of the two. +*/ +#define BLOCK_SIZE 0x2000struct boot_img {struct boot_file_head header;
Signature · 12 lines
2.1.0 -- IMAGINE IT >> MAKE IT Meet us online at Twitter <http://twitter.com/ultimaker>, Facebook <http://facebook.com/ultimaker>, Google+ <http://google.com/+Ultimaker> www.ultimaker.com
PATCH 1/2 nand: sunxi: change BLOCK_SIZE in mksunxiboot to match NAND block size
Hi,
Quoted 6 lines · Roy Spliet
From: Daniel Kochma?ski <[email protected]>
This change is necessary to calculate correct checksum for NAND boot. Works both for MMC and NAND. Without it BROM rejects boot image as invalid (bad checksum). (Changes block size from
0x200to0x2000).
Quoted 6 lines
V2: Document decision in source too
Signed-off-by Daniel Kochma?ski <[email protected]>Cc Ian Campbell <[email protected]>Cc Hans De Goede <[email protected]>Signed-off-by Roy Spliet <[email protected]>
Looks good: Reviewed-by: Hans de Goede <[email protected]>
Regards,
Hans
Quoted 24 lines
--- tools/mksunxiboot.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)tools/mksunxiboot.c +7
-1@@ -65,7 +65,13 @@ int gen_check_sum(struct boot_file_head *head_p)#define SUN4I_SRAM_SIZE 0x7600/* 0x7748+ is used by BROM */ #define SRAM_LOAD_MAX_SIZE (SUN4I_SRAM_SIZE - sizeof(struct boot_file_head)) -#define BLOCK_SIZE 512 + +/* +* BROM (at least on A10 and A20) requires NAND-images to be explicitly aligned +* to a multiple of 8K, and rejects the image otherwise. MMC-images are fine +* with 512B blocks. To cater for both, align to the largest of the two. +*/ +#define BLOCK_SIZE 0x2000struct boot_img {struct boot_file_head header;
PATCH 2/2 nand: sunxi: Add support for booting from internal NAND memory
In reply to Roy SplietFrom: Daniel Kochma?ski <[email protected]>
V2:
- Rename config option
- Move to separate driver
- fix DMA directly into RAM
- Many readability upgrades
- Drop R32 and W32 macros in favour of readl/writel respectively
- Use standard port controller methods for pinctl
- Make many NAND options semi-configurable
--- arch/arm/cpu/armv7/sunxi/board.c | 12 +- arch/arm/include/asm/arch-sunxi/gpio.h | 2 + board/sunxi/Kconfig | 12 ++ board/sunxi/board.c | 27 +++ drivers/mtd/nand/Makefile | 1 + drivers/mtd/nand/sunxi_nand_spl.c | 290 +++++++++++++++++++++++++++++++++ include/configs/sun4i.h | 1 + include/configs/sun5i.h | 3 + include/configs/sun7i.h | 2 + include/configs/sun8i.h | 6 + include/configs/sunxi-common.h | 20 +++ 11 files changed, 374 insertions(+), 2 deletions(-) create mode 100644 drivers/mtd/nand/sunxi_nand_spl.c
arch/arm/cpu/armv7/sunxi/board.c +10 -2
@@ -111,8 +111,10 @@ void s_init(void)#ifdef CONFIG_SPL_BUILD /* The sunxi internal brom will try to loader external bootloader * from mmc0, nand flash, mmc2. -* Unfortunately we can't check how SPL was loaded so assume -* it's always the first SD/MMC controller +* +* Unfortunately we can't check how SPL was loaded so assume it's +* always the first SD/MMC controller, unless it was explicitly +* stated that SPL is on nand flash. */ u32 spl_boot_device (void ) {
@@ -122,6 +124,12 @@ u32 spl_boot_device(void)* enabled build. It has many restrictions and can only boot over USB. */ return BOOT_DEVICE_BOARD ; +#elif defined(CONFIG_SPL_NAND_SUPPORT ) +/* +* This is compile time configuration informing SPL, that it +* was loaded from nand flash. +*/ +return BOOT_DEVICE_NAND ;#else /* * When booting from the SD card, the "eGON.BT0" signature is expected
arch/arm/include/asm/arch-sunxi/gpio.h +2 -0
@@ -156,6 +156,8 @@ enum sunxi_gpio_number {#define SUN4I_GPB_UART0 2#define SUN5I_GPB_UART0 2 +#define SUNXI_GPC_NAND 2 +#define SUNXI_GPC_SDC2 3#define SUN6I_GPC_SDC3 4
board/sunxi/Kconfig +12 -0
@@ -269,6 +269,18 @@ config MMC_SUNXI_SLOT_EXTRA slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable support for this. +config SPL_NAND_SUPPORT + bool "SPL/NAND mode support" + depends on SPL + default n + ---help--- + This enables support for booting from NAND internal + memory. U-Boot SPL doesn't detect where is it load from, + therefore this option is needed to properly load image from + flash. Option also disables MMC functionality on U-Boot due to + initialization errors encountered, when both controllers are + enabled. + config USB0_VBUS_PIN string "Vbus enable pin for usb0 (otg)" default ""
board/sunxi/board.c +27 -0
@@ -22,6 +22,9 @@#ifdef CONFIG_AXP221_POWER #include <axp221.h> #endif +#ifdef CONFIG_NAND_SUNXI +#include <nand.h> +#endif #include <asm/arch/clock.h> #include <asm/arch/cpu.h> #include <asm/arch/display.h>
@@ -34,6 +37,8 @@#include <linux/usb/musb.h> #include <net.h> +#define CCMU_BASE 0x01c20000 +#if definedCONFIG_VIDEO_LCD_PANEL_I2C && !(definedCONFIG_SPL_BUILD )/* So that we can use pin names in Kconfig and sunxi_name_to_gpio() */ int soft_i2c_gpio_sda;
@@ -315,6 +320,28 @@ int board_mmc_init(bd_t *bis) }#endif +void board_nand_init (void ) +{ +uint32_t val; +unsigned int pin; +static u8 ports[] =CONFIG_NAND_SUNXI_GPC_PORTS ; + +/* Configure AHB muxes to connect output pins with NAND controller */ +for (pin =0 ; pin <16 ; pin++) +sunxi_gpio_set_cfgpin (SUNXI_GPC (pin),SUNXI_GPC_NAND ); + +for (pin =0 ; pin <ARRAY_SIZE (ports); pin++) +sunxi_gpio_set_cfgpin (SUNXI_GPC (ports[pin]),SUNXI_GPC_NAND ); + +/* "un-gate" NAND clock and clock source +* This assumes that the clock was already correctly configured by +* BootROM */ + val =readl (CCMU_BASE +0x60 ); +writel ((val |0x00002000 ),CCMU_BASE +0x60 ); + val =readl (CCMU_BASE +0x80 ); +writel ((val |0x80000000 ),CCMU_BASE +0x80 ); +} +void i2c_init_board (void ) {#ifdef CONFIG_I2C0_ENABLE
drivers/mtd/nand/Makefile +1 -0
@@ -73,5 +73,6 @@ obj-$(CONFIG_NAND_FSL_ELBC) += fsl_elbc_spl.o obj-$(CONFIG_NAND_FSL_IFC) += fsl_ifc_spl.o obj-$(CONFIG_NAND_MXC) += mxc_nand_spl.o obj-$(CONFIG_NAND_MXS) += mxs_nand_spl.o mxs_nand.o +obj-$(CONFIG_NAND_SUNXI) += sunxi_nand_spl.o endif # drivers
drivers/mtd/nand/sunxi_nand_spl.c new file +290 -0
290 lines not on this page · raw message
include/configs/sun4i.h +1 -0
@@ -18,6 +18,7 @@#endif #define CONFIG_SUNXI_USB_PHYS 3 +#define CONFIG_NAND_SUNXI_GPC_PORTS {16, 17, 18, 19, 20, 21, 22, 24}/* * Include common sunxi configuration where most the settings are
include/configs/sun5i.h +3 -0
@@ -19,6 +19,9 @@#define CONFIG_SUNXI_USB_PHYS 2 +/* \todo A13 only defines port 19, whereas A10s requires each of these */ +#define CONFIG_NAND_SUNXI_GPC_PORTS {16, 17, 18, 19} +/* * Include common sunxi configuration where most the settings are */
include/configs/sun7i.h +2 -0
@@ -24,6 +24,8 @@#define CONFIG_ARMV7_SECURE_BASE SUNXI_SRAM_B_BASE#define CONFIG_TIMER_CLK_FREQ 24000000 +#define CONFIG_NAND_SUNXI_GPC_PORTS {16, 17, 18, 19, 20, 21, 22, 24} +/* * Include common sunxi configuration where most the settings are */
include/configs/sun8i.h +6 -0
@@ -20,6 +20,12 @@#define CONFIG_SUNXI_USB_PHYS 2 +#if defined(CONFIG_MACH_SUN8I_A23 ) +#define CONFIG_NAND_SUNXI_GPC_PORTS {16, 17, 18} +#elif defined(CONFIG_MACH_SUN8I_A33 ) +#define CONFIG_NAND_SUNXI_GPC_PORTS {16} +#endif +/* * Include common sunxi configuration where most the settings are */
include/configs/sunxi-common.h +20 -0
@@ -106,8 +106,10 @@#define CONFIG_CMD_MMC #define CONFIG_MMC_SUNXI #define CONFIG_MMC_SUNXI_SLOT 0 +#if !defined(CONFIG_SPL_NAND_SUPPORT )#define CONFIG_ENV_IS_IN_MMC #define CONFIG_SYS_MMC_ENV_DEV 0/* first detected MMC controller */ +#endif /* CONFIG_SPL_NAND_SUPPORT */ #endif /* 4MB of malloc() pool */
@@ -324,6 +326,24 @@ extern int soft_i2c_gpio_scl;#define CONFIG_ENV_IS_NOWHERE #endif +#ifdef CONFIG_SPL_NAND_SUPPORT +#define CONFIG_NAND +#define CONFIG_SYS_NAND_SELF_INIT +#define CONFIG_NAND_SUNXI +#define CONFIG_CMD_SPL_WRITE_SIZE 0x000400 +#define CONFIG_SYS_NAND_U_BOOT_OFFS 0x008000 + +/* \todo Make these parameterisable in kernel config ? */ +#define CONFIG_NAND_SUNXI_PAGE_SIZE 8192 +#define CONFIG_NAND_SUNXI_ECC_STEP 1024 +#define CONFIG_NAND_SUNXI_ECC_STRENGTH 40 +#define CONFIG_NAND_SUNXI_ADDR_CYCLES 5 + +#ifndef CONFIG_NAND_SUNXI_GPC_PORTS +#error "No NAND GPC ports defined, NAND unsupported" +#endif +#endif /* CONFIG_SPL_NAND_SUPPORT */ +#define CONFIG_MISC_INIT_R #define CONFIG_SYS_CONSOLE_IS_IN_ENV
Signature · 12 lines
2.1.0 -- IMAGINE IT >> MAKE IT Meet us online at Twitter <http://twitter.com/ultimaker>, Facebook <http://facebook.com/ultimaker>, Google+ <http://google.com/+Ultimaker> www.ultimaker.com
PATCH 2/2 nand: sunxi: Add support for booting from internal NAND memory
Hi,
Quoted 83 lines · Roy Spliet
From: Daniel Kochma?ski <[email protected]>
V2:
- Rename config option
- Move to separate driver
- fix DMA directly into RAM
- Many readability upgrades
- Drop R32 and W32 macros in favour of readl/writel respectively
- Use standard port controller methods for pinctl
- Make many NAND options semi-configurableSigned-off-by Roy Spliet <[email protected]>--- arch/arm/cpu/armv7/sunxi/board.c | 12 +- arch/arm/include/asm/arch-sunxi/gpio.h | 2 + board/sunxi/Kconfig | 12 ++ board/sunxi/board.c | 27 +++ drivers/mtd/nand/Makefile | 1 + drivers/mtd/nand/sunxi_nand_spl.c | 290 +++++++++++++++++++++++++++++++++ include/configs/sun4i.h | 1 + include/configs/sun5i.h | 3 + include/configs/sun7i.h | 2 + include/configs/sun8i.h | 6 + include/configs/sunxi-common.h | 20 +++ 11 files changed, 374 insertions(+), 2 deletions(-)create mode 100644
drivers/mtd/nand/sunxi_nand_spl.carch/arm/cpu/armv7/sunxi/board.c +10
-2@@ -111,8 +111,10 @@ void s_init(void)#ifdef CONFIG_SPL_BUILD /* The sunxi internal brom will try to loader external bootloader * from mmc0, nand flash, mmc2. -* Unfortunately we can't check how SPL was loaded so assume -* it's always the first SD/MMC controller +* +* Unfortunately we can't check how SPL was loaded so assume it's +* always the first SD/MMC controller, unless it was explicitly +* stated that SPL is on nand flash. */ u32 spl_boot_device (void ) {@@ -122,6 +124,12 @@ u32 spl_boot_device(void)* enabled build. It has many restrictions and can only boot over USB. */ return BOOT_DEVICE_BOARD ; +#elif defined(CONFIG_SPL_NAND_SUPPORT ) +/* +* This is compile time configuration informing SPL, that it +* was loaded from nand flash. +*/ +return BOOT_DEVICE_NAND ;#else /* * When booting from the SD card, the "eGON.BT0" signature is expected arch/arm/include/asm/arch-sunxi/gpio.h +2
-0@@ -156,6 +156,8 @@ enum sunxi_gpio_number {#define SUN4I_GPB_UART0 2#define SUN5I_GPB_UART0 2 +#define SUNXI_GPC_NAND 2 +#define SUNXI_GPC_SDC2 3#define SUN6I_GPC_SDC3 4board/sunxi/Kconfig +5
-0@@ -269,6 +269,18 @@ config MMC_SUNXI_SLOT_EXTRA slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable support for this. +config SPL_NAND_SUPPORT + bool "SPL/NAND mode support" + depends on SPL + default n + ---help---
board/sunxi/Kconfig config MMC_SUNXI_SLOT_EXTRA · line 286
Quoted 10 lines
board/sunxi/Kconfig +7
-0+ This enables support for booting from NAND internal + memory. U-Boot SPL doesn't detect where is it load from, + therefore this option is needed to properly load image from + flash. Option also disables MMC functionality on U-Boot due to + initialization errors encountered, when both controllers are + enabled. + config USB0_VBUS_PIN string "Vbus enable pin for usb0 (otg)" default ""
There is a way to figure out if you're booting from sdcard or nand actually, simply check if an sdcard is there and if it has the boot0 signature, if that is true, then we should be booting from sd, as those are the checks the brom does itself to determine what to boot (*).
Since we support booting from internal emmc on boars which have it. and those are connected to mmc2 rather then mmc0 we already have code to check for this, see board/sunxi/board.c: board_mmc_init(), adapting this for use to determine whether to look u-boot.bin from nand or mmc on systems which have nand rather an emmc should be trivial.
So we should be able to build uniform SPL (and u-boot) binaries which work for both nand and sdcard. Note that this is jyst FYI, I'm fine with merging the patch as is and fixing this in a follow up patch.
*) Note this is not true on the A31 which prefers nand over sdcard unless the fel pin is pulled down (or was it up), but is true on all other SoCs
Quoted 15 lines
board/sunxi/board.c +3
-0@@ -22,6 +22,9 @@#ifdef CONFIG_AXP221_POWER #include <axp221.h> #endif +#ifdef CONFIG_NAND_SUNXI +#include <nand.h> +#endif #include <asm/arch/clock.h> #include <asm/arch/cpu.h> #include <asm/arch/display.h>
board/sunxi/board.c line 41
Quoted 5 lines
board/sunxi/board.c +2
-0@@ -34,6 +37,8 @@#include <linux/usb/musb.h> #include <net.h> +#define CCMU_BASE 0x01c20000 +
Ugh no please, see below.
Quoted 19 lines
board/sunxi/board.c +12
-0#if definedCONFIG_VIDEO_LCD_PANEL_I2C && !(definedCONFIG_SPL_BUILD )/* So that we can use pin names in Kconfig and sunxi_name_to_gpio() */ int soft_i2c_gpio_sda;@@ -315,6 +320,28 @@ int board_mmc_init(bd_t *bis) }#endif +void board_nand_init (void ) +{ +uint32_t val; +unsigned int pin; +static u8 ports[] =CONFIG_NAND_SUNXI_GPC_PORTS ; + +/* Configure AHB muxes to connect output pins with NAND controller */ +for (pin =0 ; pin <16 ; pin++) +sunxi_gpio_set_cfgpin (SUNXI_GPC (pin),SUNXI_GPC_NAND ); + +for (pin =0 ; pin <ARRAY_SIZE (ports); pin++) +sunxi_gpio_set_cfgpin (SUNXI_GPC (ports[pin]),SUNXI_GPC_NAND );
board/sunxi/board.c int board_mmc_init(bd_t *bis) · line 344
Quoted 10 lines
board/sunxi/board.c +10
-0+ +/* "un-gate" NAND clock and clock source +* This assumes that the clock was already correctly configured by +* BootROM */ + val =readl (CCMU_BASE +0x60 ); +writel ((val |0x00002000 ),CCMU_BASE +0x60 ); + val =readl (CCMU_BASE +0x80 ); +writel ((val |0x80000000 ),CCMU_BASE +0x80 ); +} +
2 remarks here:
1) The ccmu poking needs to be done in the same way it is done everywhere else, see e.g. drivers/mmc/sunxi_mmc.c which does:
struct sunxi_ccm_reg * const ccm =
(struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
/* config ahb clock */
setbits_le32(&ccm->ahb_gate0, 1 << AHB_GATE_OFFSET_MMC(sdc_no));
#ifdef CONFIG_SUNXI_GEN_SUN6I
/* unassert reset */
setbits_le32(&ccm->ahb_reset0_cfg, 1 << AHB_RESET_OFFSET_MMC(sdc_no));#endif
Also why are you doing this in the board init code? All other sunxi code only does pinmux setup in the board_init code and does the clk gating stuff in the actual driver code.
Last: "This assumes that the clock was already correctly configured by BROM" that will need to be fixed (eventually, can be in a follow up patch), as in u-boot.bin we will want to support reading nand while booted from sdcard (for the unified binaries)
Quoted 27 lines
board/sunxi/board.c +0
-0void i2c_init_board (void ) {#ifdef CONFIG_I2C0_ENABLE drivers/mtd/nand/Makefile +1
-0@@ -73,5 +73,6 @@ obj-$(CONFIG_NAND_FSL_ELBC) += fsl_elbc_spl.o obj-$(CONFIG_NAND_FSL_IFC) += fsl_ifc_spl.o obj-$(CONFIG_NAND_MXC) += mxc_nand_spl.o obj-$(CONFIG_NAND_MXS) += mxs_nand_spl.o mxs_nand.o +obj-$(CONFIG_NAND_SUNXI) += sunxi_nand_spl.o endif # driversdrivers/mtd/nand/sunxi_nand_spl.c new file +7
-0@@ -0,0 +1,290 @@ +/* +* Copyright (c) 2014, Antmicro Ltd <www.antmicro.com> +* Copyright (c) 2015, Turtle Solutions <www.turtle-solutions.eu> +* Copyright (c) 2015, Roy Spliet <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*
drivers/mtd/nand/sunxi_nand_spl.c line 17
Quoted 10 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +10
-0+* \todo Detect chip parameters (page size, ECC mode, randomisation...) +*/ + +#include <common.h> +#include <config.h> +#include <asm/io.h> +#include <nand.h> + +/* DMAC */ +#define DMAC_BASE 0x01c02000
Please use the base address define from arch/arm/include/asm/arch-sunxi/cpu_sun4i.h or add one there if necessary.
Quoted 39 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +37
-0+#define DMAC_REG (a) (DMAC_BASE + a) + +#define DMAC_INT DMAC_REG(0x000) +#define DMAC_DDMA_CFG DMAC_REG(0x300) +#define DMAC_DDMA_SRC DMAC_REG(0x304) +#define DMAC_DDMA_DST DMAC_REG(0x308) +#define DMAC_DDMA_BYTE_COUNT DMAC_REG(0x30C) +#define DMAC_DDMA_PARAM DMAC_REG(0x318) + +/* NAND controller */ +#define NANDFLASHC_BASE 0x01c03000 +#define NREG (a) (0x01c03000 + a) + +#define NANDFLASHC_CTL NREG(0x00) +#define NANDFLASHC_CTL_EN 0x00000001 +#define NANDFLASHC_CTL_RST 0x00000002 +#define NANDFLASHC_CTL_RAM_METHOD 0x00004000 + +#define NANDFLASHC_ST NREG(0x004) +#define NANDFLASHC_INT NREG(0x008) +#define NANDFLASHC_TIMING_CTL NREG(0x00C) +#define NANDFLASHC_TIMING_CFG NREG(0x010) +#define NANDFLASHC_ADDR_LOW NREG(0x014) +#define NANDFLASHC_ADDR_HIGH NREG(0x018) +#define NANDFLASHC_SECTOR_NUM NREG(0x01C) +#define NANDFLASHC_CNT NREG(0x020) + +#define NANDFLASHC_CMD NREG(0x024) +#define NANDFLASHC_SEND_CMD1 (1 << 22) +#define NANDFLASHC_WAIT_FLAG (1 << 23) + +#define NANDFLASHC_RCMD_SET NREG(0x028) +#define NANDFLASHC_WCMD_SET NREG(0x02C) +#define NANDFLASHC_IO_DATA NREG(0x030) +#define NANDFLASHC_ECC_CTL NREG(0x034) +#define NANDFLASHC_ECC_ST NREG(0x038) +#define NANDFLASHC_DEBUG NREG(0x03c)
drivers/mtd/nand/sunxi_nand_spl.c line 64
Quoted 10 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +10
-0+#define NANDFLASHC_ECC_CNT0 NREG(0x040) +#define NANDFLASHC_ECC_CNT1 NREG(0x044) +#define NANDFLASHC_ECC_CNT2 NREG(0x048) +#define NANDFLASHC_ECC_CNT3 NREG(0x04c) +#define NANDFLASHC_USER_DATA_BASE NREG(0x050) +#define NANDFLASHC_EFNAND_STATUS NREG(0x090) +#define NANDFLASHC_SPARE_AREA NREG(0x0A0) +#define NANDFLASHC_PATTERN_ID NREG(0x0A4) +#define NANDFLASHC_RAM0_BASE NREG(0x400) +#define NANDFLASHC_RAM1_BASE NREG(0x800)
Please create a struct reflecting the register layout and then initialize a ptr to this struct from the base-address and get register addresses this way, this is how we deal with this in pretty much all other sunxi code, see e.g.:
arch/arm/include/asm/arch-sunxi/mmc.h
Quoted 7 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +7
-0+ +void +nand_init (void ) +{ +uint32_t val; + +board_nand_init ();
drivers/mtd/nand/sunxi_nand_spl.c line 81
Quoted 10 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +10
-0+ val =readl (NANDFLASHC_CTL ); + val |=NANDFLASHC_CTL_RST ; +writel (val,NANDFLASHC_CTL ); + +/* Wait until reset pin is deasserted */ +do { + val =readl (NANDFLASHC_CTL ); +if (!(val &NANDFLASHC_CTL_RST )) +break ; + }while (1 );
Please put a timeout on all waits, see mctl_await_completion() from arch/arm/cpu/armv7/sunxi/dram_helpers.c, or just use that outright. It is intended for use during dram init, but it should work fine for things like this too.
Quoted 10 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +10
-0+ +/** \todo Chip select, currently kind of static */ + val =readl (NANDFLASHC_CTL ); + val &=0xf0fff0f2 ; + val |=NANDFLASHC_CTL_EN ; + val |= (3 <<8 ); +writel (val,NANDFLASHC_CTL ); + +writel (0x100 ,NANDFLASHC_TIMING_CTL ); +writel (0x7ff ,NANDFLASHC_TIMING_CFG );
drivers/mtd/nand/sunxi_nand_spl.c line 101
Quoted 10 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +10
-0+ +/* reset CMD */ + val =NANDFLASHC_SEND_CMD1 |NANDFLASHC_WAIT_FLAG |NAND_CMD_RESET ; +writel (val,NANDFLASHC_CMD ); +do { + val =readl (NANDFLASHC_ST ); +if (val & (1 <<1 )) +break ; +udelay (1000 ); + }while (1 );
Idem. Also the udelay buys you nothing.
Quoted 22 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +22
-0+ +printf ("Nand initialised\n" ); +} + +/* random seed */ +static const uint16_t random_seed[128 ] = { +0x2b75 ,0x0bd0 ,0x5ca3 ,0x62d1 ,0x1c93 ,0x07e9 ,0x2162 ,0x3a72 , +0x0d67 ,0x67f9 ,0x1be7 ,0x077d ,0x032f ,0x0dac ,0x2716 ,0x2436 , +0x7922 ,0x1510 ,0x3860 ,0x5287 ,0x480f ,0x4252 ,0x1789 ,0x5a2d , +0x2a49 ,0x5e10 ,0x437f ,0x4b4e ,0x2f45 ,0x216e ,0x5cb7 ,0x7130 , +0x2a3f ,0x60e4 ,0x4dc9 ,0x0ef0 ,0x0f52 ,0x1bb9 ,0x6211 ,0x7a56 , +0x226d ,0x4ea7 ,0x6f36 ,0x3692 ,0x38bf ,0x0c62 ,0x05eb ,0x4c55 , +0x60f4 ,0x728c ,0x3b6f ,0x2037 ,0x7f69 ,0x0936 ,0x651a ,0x4ceb , +0x6218 ,0x79f3 ,0x383f ,0x18d9 ,0x4f05 ,0x5c82 ,0x2912 ,0x6f17 , +0x6856 ,0x5938 ,0x1007 ,0x61ab ,0x3e7f ,0x57c2 ,0x542f ,0x4f62 , +0x7454 ,0x2eac ,0x7739 ,0x42d4 ,0x2f90 ,0x435a ,0x2e52 ,0x2064 , +0x637c ,0x66ad ,0x2c90 ,0x0bad ,0x759c ,0x0029 ,0x0986 ,0x7126 , +0x1ca7 ,0x1605 ,0x386a ,0x27f5 ,0x1380 ,0x6d75 ,0x24c3 ,0x0f8e , +0x2b7a ,0x1418 ,0x1fd1 ,0x7dc1 ,0x2d8e ,0x43af ,0x2267 ,0x7da3 , +0x4e3d ,0x1338 ,0x50db ,0x454d ,0x764d ,0x40a3 ,0x42e6 ,0x262b , +0x2d2e ,0x1aea ,0x2e17 ,0x173d ,0x3a6e ,0x71bf ,0x25f9 ,0x0a5d , +0x7c57 ,0x0fbe ,0x46ce ,0x4939 ,0x6b17 ,0x37bb ,0x3e91 ,0x76db ,
drivers/mtd/nand/sunxi_nand_spl.c line 133
Quoted 10 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +10
-0+}; + +uint32_t ecc_errors =0 ; + +int nand_waid_cmd_fifo_free (void ) +{ +do { +if (!(readl (NANDFLASHC_ST ) &0x8 )) +return 0 ; + }while (1 );
Idem.
Quoted 244 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +157
-0+return -1 ; +} + +static void +nand_config_ecc (uint32_t page,int syndrome) +{ +static u8 strength[] = {16 ,24 ,28 ,32 ,40 ,48 ,56 ,60 ,64 }; +int i; +uint32_t ecc_mode; +u32 ecc; + +for (i =0 ; i <ARRAY_SIZE (strength); i++) { +if (CONFIG_NAND_SUNXI_ECC_STRENGTH == strength[i]) { + ecc_mode = i; +break ; + } + } + +if (i ==ARRAY_SIZE (strength)) { +printf ("ECC strength unsupported\n" ); +return ; + } + + ecc =1 | (1 <<3 ) | (1 <<9 ) | (ecc_mode <<12 ); + +if (CONFIG_NAND_SUNXI_ECC_STEP ==512 ) + ecc |=1 <<5 ; + +if (syndrome) + ecc |= (0x4A80 <<16 ); +else + ecc |= (random_seed[page %ARRAY_SIZE (random_seed)] <<16 ); + +writel (ecc,NANDFLASHC_ECC_CTL ); +} + +/* read CONFIG_NAND_SUNXI_ECC_STEP bytes from real_addr to temp_buf */ +void +nand_read_block (phys_addr_t src,dma_addr_t dst,int syndrome) +{ +uint32_t shift; +uint32_t page; +uint32_t addr; +uint32_t oob_offset; +uint32_t ecc_bytes; +u32 val; +u32 cmd; + + page = src /CONFIG_NAND_SUNXI_PAGE_SIZE ; +if (page >0xFFFF ) { +/* TODO: currently this is not supported */ +printf ("Reading from address >= %08X is not allowed.\n" , +0xFFFF *CONFIG_NAND_SUNXI_PAGE_SIZE ); +return ; + } + + shift = src %CONFIG_NAND_SUNXI_PAGE_SIZE ; +writel (0 ,NANDFLASHC_ECC_ST ); + +/* ECC_CTL, randomization */ + ecc_bytes =CONFIG_NAND_SUNXI_ECC_STRENGTH * +fls (CONFIG_NAND_SUNXI_ECC_STEP *8 ); + ecc_bytes =DIV_ROUND_UP (ecc_bytes,8 ); + ecc_bytes += (ecc_bytes &1 );/* Align to 2-bytes */ + ecc_bytes +=4 ; + +nand_config_ecc (page, syndrome); +if (syndrome) { +/* shift every 1kB in syndrome */ + shift += (shift /CONFIG_NAND_SUNXI_ECC_STEP ) * ecc_bytes; + oob_offset =CONFIG_NAND_SUNXI_ECC_STEP + shift; + }else { + oob_offset =CONFIG_NAND_SUNXI_PAGE_SIZE + + (shift /CONFIG_NAND_SUNXI_ECC_STEP ) * ecc_bytes; + } + + addr = (page <<16 ) | shift; + +/* DMA */ + val =readl (NANDFLASHC_CTL ); +writel (val |NANDFLASHC_CTL_RAM_METHOD ,NANDFLASHC_CTL ); + +writel (oob_offset,NANDFLASHC_SPARE_AREA ); + +/* DMAC +* \todo Separate this into a tidy driver */ +writel (0x0 ,DMAC_INT );/* clear dma interrupts */ +writel (NANDFLASHC_IO_DATA ,DMAC_DDMA_SRC ); +writel (dst ,DMAC_DDMA_DST ); +writel (0x00007F0F ,DMAC_DDMA_PARAM ); +writel (CONFIG_NAND_SUNXI_ECC_STEP ,DMAC_DDMA_BYTE_COUNT ); +/* +* [ 0: 4] Source - NAND +* [ 5: 6] Mode - IO +* [ 9:10] Dada width - 32-bits +* [16:20] Dest - SDRAM +* [25:26] Data width - 32-bits +* [ 31] Enable +*/ +writel (0x84010423 ,DMAC_DDMA_CFG ); + +writel (0x00E00530 ,NANDFLASHC_RCMD_SET ); +nand_waid_cmd_fifo_free (); +writel (1 ,NANDFLASHC_SECTOR_NUM ); +writel (addr,NANDFLASHC_ADDR_LOW ); +writel (0 ,NANDFLASHC_ADDR_HIGH ); + +/* CMD (PAGE READ) */ + cmd =0x85E80000 ; + cmd |= ((CONFIG_NAND_SUNXI_ADDR_CYCLES -1 ) <<16 ); + cmd |= (syndrome ?0x02000000 :0x0 ); +writel (cmd,NANDFLASHC_CMD ); + +do {/* wait for dma irq */ + val =readl (NANDFLASHC_ST ); +if (val & (1 <<2 )) +break ; +udelay (1000 ); + }while (1 ); + +do {/* make sure cmd is finished */ + val =readl (DMAC_BASE +0x300 ); +if (!(val &0x80000000 )) +break ; +udelay (1000 ); + }while (1 ); + +if (readl (NANDFLASHC_ECC_ST )) + ecc_errors++; +} + +int +nand_spl_load_image (uint32_t offs,unsigned int size,void *dest) +{ +dma_addr_t dst_block; +dma_addr_t dst_end; +phys_addr_t addr = offs; + + dst_end = ((dma_addr_t ) dest) + size; + +memset ((void *)dest,0x0 , size); + ecc_errors =0 ; +for (dst_block = (dma_addr_t ) dest; dst_block < dst_end; + dst_block +=CONFIG_NAND_SUNXI_ECC_STEP , + addr +=CONFIG_NAND_SUNXI_ECC_STEP ) { +/* syndrome read first 4MiB to match Allwinner BootROM */ +nand_read_block (addr, dst_block, addr <0x400000 ); + } + +if (ecc_errors) +printf ("Error: %d ECC failures detected\n" , ecc_errors); +return ecc_errors ==0 ; +} + +void +nand_deselect (void ) +{}include/configs/sun4i.h +1
-0@@ -18,6 +18,7 @@#endif #define CONFIG_SUNXI_USB_PHYS 3 +#define CONFIG_NAND_SUNXI_GPC_PORTS {16, 17, 18, 19, 20, 21, 22, 24}/* * Include common sunxi configuration where most the settings are include/configs/sun5i.h +3
-0@@ -19,6 +19,9 @@#define CONFIG_SUNXI_USB_PHYS 2 +/* \todo A13 only defines port 19, whereas A10s requires each of these */ +#define CONFIG_NAND_SUNXI_GPC_PORTS {16, 17, 18, 19} +/* * Include common sunxi configuration where most the settings are */ include/configs/sun7i.h +2
-0@@ -24,6 +24,8 @@#define CONFIG_ARMV7_SECURE_BASE SUNXI_SRAM_B_BASE#define CONFIG_TIMER_CLK_FREQ 24000000 +#define CONFIG_NAND_SUNXI_GPC_PORTS {16, 17, 18, 19, 20, 21, 22, 24} +/* * Include common sunxi configuration where most the settings are */ include/configs/sun8i.h +6
-0@@ -20,6 +20,12 @@#define CONFIG_SUNXI_USB_PHYS 2 +#if defined(CONFIG_MACH_SUN8I_A23 ) +#define CONFIG_NAND_SUNXI_GPC_PORTS {16, 17, 18} +#elif defined(CONFIG_MACH_SUN8I_A33 ) +#define CONFIG_NAND_SUNXI_GPC_PORTS {16} +#endif +/* * Include common sunxi configuration where most the settings are */ include/configs/sunxi-common.h +13
-0@@ -106,8 +106,10 @@#define CONFIG_CMD_MMC #define CONFIG_MMC_SUNXI #define CONFIG_MMC_SUNXI_SLOT 0 +#if !defined(CONFIG_SPL_NAND_SUPPORT )#define CONFIG_ENV_IS_IN_MMC #define CONFIG_SYS_MMC_ENV_DEV 0/* first detected MMC controller */ +#endif /* CONFIG_SPL_NAND_SUPPORT */ #endif /* 4MB of malloc() pool */ @@ -324,6 +326,24 @@ extern int soft_i2c_gpio_scl;#define CONFIG_ENV_IS_NOWHERE #endif +#ifdef CONFIG_SPL_NAND_SUPPORT +#define CONFIG_NAND +#define CONFIG_SYS_NAND_SELF_INIT +#define CONFIG_NAND_SUNXI +#define CONFIG_CMD_SPL_WRITE_SIZE 0x000400 +#define CONFIG_SYS_NAND_U_BOOT_OFFS 0x008000 + +/* \todo Make these parameterisable in kernel config ? */ +#define CONFIG_NAND_SUNXI_PAGE_SIZE 8192 +#define CONFIG_NAND_SUNXI_ECC_STEP 1024 +#define CONFIG_NAND_SUNXI_ECC_STRENGTH 40
include/configs/sunxi-common.h extern int soft_i2c_gpio_scl; · line 349
Quoted 10 lines
include/configs/sunxi-common.h +7
-0+#define CONFIG_NAND_SUNXI_ADDR_CYCLES 5 + +#ifndef CONFIG_NAND_SUNXI_GPC_PORTS +#error "No NAND GPC ports defined, NAND unsupported" +#endif +#endif /* CONFIG_SPL_NAND_SUPPORT */ +#define CONFIG_MISC_INIT_R #define CONFIG_SYS_CONSOLE_IS_IN_ENV
Otherwise this looks like a good start, with the coding style issues fixed I would not be opposed against merging this as a first step to growing proper nand support.
Ian, is that ok with you ?
Regards,
Hans
PATCH 2/2 nand: sunxi: Add support for booting from internal NAND memory
On Thu, 2015-05-21 at 20:39 +0200, Hans de Goede wrote:
[...]
Quoted 4 lines
Please create a struct reflecting the register layout and then initialize a ptr to this struct from the base-address and get register addresses this way, this is how we deal with this in pretty much all other sunxi code, see e.g.:
This isn't just sunxi, I believe it is u-boot's preferred way to do things generally.
[...]
Quoted 5 lines
Otherwise this looks like a good start, with the coding style issues fixed I would not be opposed against merging this as a first step to growing proper nand support.
Ian, is that ok with you ?
You mean with the coding style fixed but not (necessarily) all the other issues you pointed out (timeouts on loops, structs for register accesses)?
I think at least the structs for register access stuff should be fixed first, especially given it was already raised in the previous round of review.
Ian
PATCH 2/2 nand: sunxi: Add support for booting from internal NAND memory
Hi,
Quoted 14 lines · Ian Campbell
On Thu, 2015-05-21 at 20:39 +0200, Hans de Goede wrote:
[...]Quoted 4 lines
Please create a struct reflecting the register layout and then initialize a ptr to this struct from the base-address and get register addresses this way, this is how we deal with this in pretty much all other sunxi code, see e.g.:
This isn't just sunxi, I believe it is u-boot's preferred way to do things generally.
[...]Quoted 4 lines
Otherwise this looks like a good start, with the coding style issues fixed I would not be opposed against merging this as a first step to growing proper nand support.
Quoted 5 lines
Quoted 1 line
Ian, is that ok with you ?
You mean with the coding style fixed but not (necessarily) all the other issues you pointed out (timeouts on loops, structs for register accesses)?
Sorry, what I meant is are you ok with starting with merging just the SPL support without having support for actually reading the kernel, etc. as a first step. The SPL support would have to have all the issues (*) I pointed out fixed before merging.
Regards,
Hans
*) Except for those where I explicitly said they can be fixed up with a follow up commit.
PATCH 2/2 nand: sunxi: Add support for booting from internal NAND memory
Quoted 19 lines · Hans de Goede
Hi,
Quoted 16 lines · Ian Campbell
On Thu, 2015-05-21 at 20:39 +0200, Hans de Goede wrote:
[...]Quoted 4 lines
Please create a struct reflecting the register layout and then initialize a ptr to this struct from the base-address and get register addresses this way, this is how we deal with this in pretty much all other sunxi code, see e.g.:
This isn't just sunxi, I believe it is u-boot's preferred way to do things generally.
[...]Quoted 5 lines
Otherwise this looks like a good start, with the coding style issues fixed I would not be opposed against merging this as a first step to growing proper nand support.
Ian, is that ok with you ?
Quoted 7 lines
Quoted 3 lines
You mean with the coding style fixed but not (necessarily) all the other issues you pointed out (timeouts on loops, structs for register accesses)?
Sorry, what I meant is are you ok with starting with merging just the SPL support without having support for actually reading the kernel, etc. as a first step.
Oh yes, that seems completely reasonable.
Quoted 2 lines
The SPL support would have to
have all the issues (*) I pointed out fixed before merging.
Agreed.
Ian.
PATCH 2/2 nand: sunxi: Add support for booting from internal NAND memory
In reply to Roy Splietboard/sunxi/board.c line 27
Quoted 3 lines · Roy Spliet
board/sunxi/board.c +3
-0+#ifdef CONFIG_NAND_SUNXI +#include <nand.h> +#endif
Why do you need the ifdef?
+#include <common.h>
Quoted 43 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +43
-0+#include <config.h> +#include <asm/io.h> +#include <nand.h> + +/* DMAC */ +#define DMAC_BASE 0x01c02000 +#define DMAC_REG (a) (DMAC_BASE + a) + +#define DMAC_INT DMAC_REG(0x000) +#define DMAC_DDMA_CFG DMAC_REG(0x300) +#define DMAC_DDMA_SRC DMAC_REG(0x304) +#define DMAC_DDMA_DST DMAC_REG(0x308) +#define DMAC_DDMA_BYTE_COUNT DMAC_REG(0x30C) +#define DMAC_DDMA_PARAM DMAC_REG(0x318) + +/* NAND controller */ +#define NANDFLASHC_BASE 0x01c03000 +#define NREG (a) (0x01c03000 + a) + +#define NANDFLASHC_CTL NREG(0x00) +#define NANDFLASHC_CTL_EN 0x00000001 +#define NANDFLASHC_CTL_RST 0x00000002 +#define NANDFLASHC_CTL_RAM_METHOD 0x00004000 + +#define NANDFLASHC_ST NREG(0x004) +#define NANDFLASHC_INT NREG(0x008) +#define NANDFLASHC_TIMING_CTL NREG(0x00C) +#define NANDFLASHC_TIMING_CFG NREG(0x010) +#define NANDFLASHC_ADDR_LOW NREG(0x014) +#define NANDFLASHC_ADDR_HIGH NREG(0x018) +#define NANDFLASHC_SECTOR_NUM NREG(0x01C) +#define NANDFLASHC_CNT NREG(0x020) + +#define NANDFLASHC_CMD NREG(0x024) +#define NANDFLASHC_SEND_CMD1 (1 << 22) +#define NANDFLASHC_WAIT_FLAG (1 << 23) + +#define NANDFLASHC_RCMD_SET NREG(0x028) +#define NANDFLASHC_WCMD_SET NREG(0x02C) +#define NANDFLASHC_IO_DATA NREG(0x030) +#define NANDFLASHC_ECC_CTL NREG(0x034) +#define NANDFLASHC_ECC_ST NREG(0x038) +#define NANDFLASHC_DEBUG NREG(0x03c)
drivers/mtd/nand/sunxi_nand_spl.c line 64
Quoted 10 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +10
-0+#define NANDFLASHC_ECC_CNT0 NREG(0x040) +#define NANDFLASHC_ECC_CNT1 NREG(0x044) +#define NANDFLASHC_ECC_CNT2 NREG(0x048) +#define NANDFLASHC_ECC_CNT3 NREG(0x04c) +#define NANDFLASHC_USER_DATA_BASE NREG(0x050) +#define NANDFLASHC_EFNAND_STATUS NREG(0x090) +#define NANDFLASHC_SPARE_AREA NREG(0x0A0) +#define NANDFLASHC_PATTERN_ID NREG(0x0A4) +#define NANDFLASHC_RAM0_BASE NREG(0x400) +#define NANDFLASHC_RAM1_BASE NREG(0x800)
Shouldn't these be in a header file so they can be shared with a non- SPL driver?
drivers/mtd/nand/sunxi_nand_spl.c line 68
Quoted 3 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +3
-0+void +nand_init (void ) +{
Don't put a newline after the return type.
drivers/mtd/nand/sunxi_nand_spl.c line 81
Quoted 13 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +13
-0+uint32_t val; + +board_nand_init (); + val =readl (NANDFLASHC_CTL ); + val |=NANDFLASHC_CTL_RST ; +writel (val,NANDFLASHC_CTL ); + +/* Wait until reset pin is deasserted */ +do { + val =readl (NANDFLASHC_CTL ); +if (!(val &NANDFLASHC_CTL_RST )) +break ; + }while (1 );
Add a timeout to delay loops.
drivers/mtd/nand/sunxi_nand_spl.c line 85
Quoted 4 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +4
-0+ +/** \todo Chip select, currently kind of static */ + val =readl (NANDFLASHC_CTL ); + val &=0xf0fff0f2 ;
Don't put magic numbers in the code -- use symbolic constants taht describe what the fields mean.
+/* random seed */
Quoted 8 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +8
-0+static const uint16_t random_seed[128 ] = { +0x2b75 ,0x0bd0 ,0x5ca3 ,0x62d1 ,0x1c93 ,0x07e9 ,0x2162 ,0x3a72 , +0x0d67 ,0x67f9 ,0x1be7 ,0x077d ,0x032f ,0x0dac ,0x2716 ,0x2436 , +0x7922 ,0x1510 ,0x3860 ,0x5287 ,0x480f ,0x4252 ,0x1789 ,0x5a2d , +0x2a49 ,0x5e10 ,0x437f ,0x4b4e ,0x2f45 ,0x216e ,0x5cb7 ,0x7130 , +0x2a3f ,0x60e4 ,0x4dc9 ,0x0ef0 ,0x0f52 ,0x1bb9 ,0x6211 ,0x7a56 , +0x226d ,0x4ea7 ,0x6f36 ,0x3692 ,0x38bf ,0x0c62 ,0x05eb ,0x4c55 , +0x60f4 ,0x728c ,0x3b6f ,0x2037 ,0x7f69 ,0x0936 ,0x651a ,0x4ceb ,
drivers/mtd/nand/sunxi_nand_spl.c line 124
Quoted 10 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +10
-0+0x6218 ,0x79f3 ,0x383f ,0x18d9 ,0x4f05 ,0x5c82 ,0x2912 ,0x6f17 , +0x6856 ,0x5938 ,0x1007 ,0x61ab ,0x3e7f ,0x57c2 ,0x542f ,0x4f62 , +0x7454 ,0x2eac ,0x7739 ,0x42d4 ,0x2f90 ,0x435a ,0x2e52 ,0x2064 , +0x637c ,0x66ad ,0x2c90 ,0x0bad ,0x759c ,0x0029 ,0x0986 ,0x7126 , +0x1ca7 ,0x1605 ,0x386a ,0x27f5 ,0x1380 ,0x6d75 ,0x24c3 ,0x0f8e , +0x2b7a ,0x1418 ,0x1fd1 ,0x7dc1 ,0x2d8e ,0x43af ,0x2267 ,0x7da3 , +0x4e3d ,0x1338 ,0x50db ,0x454d ,0x764d ,0x40a3 ,0x42e6 ,0x262b , +0x2d2e ,0x1aea ,0x2e17 ,0x173d ,0x3a6e ,0x71bf ,0x25f9 ,0x0a5d , + 0x7c57, 0x0fbe, 0x46ce, 0x4939, 0x6b17, 0x37bb, 0x3e91, 0x76db, +};
Why is randomness needed?
Quoted 1 line
+uint32_t
ecc_errors= 0;
Why is this global?
drivers/mtd/nand/sunxi_nand_spl.c line 274
Quoted 10 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +10
-0+int +nand_spl_load_image (uint32_t offs,unsigned int size,void *dest) +{ +dma_addr_t dst_block; +dma_addr_t dst_end; +phys_addr_t addr = offs; + + dst_end = ((dma_addr_t ) dest) + size; + +memset ((void *)dest,0x0 , size);
Unnecessary cast.
-Scott
PATCH 2/2 nand: sunxi: Add support for booting from internal NAND memory
Dear Scott,
Thank you for taking your time to feedback. However, it seems to be about a week and two versions of the patchset too late. Most of your issues have been addressed in the meanwhile, as you can see in Hans de Goede's sunxi branch.
Yours,
Roy
Op 02-06-15 om 00:14 schreef Scott Wood:
Quoted 128 lines · Roy Spliet
board/sunxi/board.c line 27
Quoted 3 lines
board/sunxi/board.c +3
-0+#ifdef CONFIG_NAND_SUNXI +#include <nand.h> +#endif Why do you need the ifdef?
+#include <
common.h>Quoted 43 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +43
-0+#include <config.h> +#include <asm/io.h> +#include <nand.h> + +/* DMAC */ +#define DMAC_BASE 0x01c02000 +#define DMAC_REG (a) (DMAC_BASE + a) + +#define DMAC_INT DMAC_REG(0x000) +#define DMAC_DDMA_CFG DMAC_REG(0x300) +#define DMAC_DDMA_SRC DMAC_REG(0x304) +#define DMAC_DDMA_DST DMAC_REG(0x308) +#define DMAC_DDMA_BYTE_COUNT DMAC_REG(0x30C) +#define DMAC_DDMA_PARAM DMAC_REG(0x318) + +/* NAND controller */ +#define NANDFLASHC_BASE 0x01c03000 +#define NREG (a) (0x01c03000 + a) + +#define NANDFLASHC_CTL NREG(0x00) +#define NANDFLASHC_CTL_EN 0x00000001 +#define NANDFLASHC_CTL_RST 0x00000002 +#define NANDFLASHC_CTL_RAM_METHOD 0x00004000 + +#define NANDFLASHC_ST NREG(0x004) +#define NANDFLASHC_INT NREG(0x008) +#define NANDFLASHC_TIMING_CTL NREG(0x00C) +#define NANDFLASHC_TIMING_CFG NREG(0x010) +#define NANDFLASHC_ADDR_LOW NREG(0x014) +#define NANDFLASHC_ADDR_HIGH NREG(0x018) +#define NANDFLASHC_SECTOR_NUM NREG(0x01C) +#define NANDFLASHC_CNT NREG(0x020) + +#define NANDFLASHC_CMD NREG(0x024) +#define NANDFLASHC_SEND_CMD1 (1 << 22) +#define NANDFLASHC_WAIT_FLAG (1 << 23) + +#define NANDFLASHC_RCMD_SET NREG(0x028) +#define NANDFLASHC_WCMD_SET NREG(0x02C) +#define NANDFLASHC_IO_DATA NREG(0x030) +#define NANDFLASHC_ECC_CTL NREG(0x034) +#define NANDFLASHC_ECC_ST NREG(0x038) +#define NANDFLASHC_DEBUG NREG(0x03c)drivers/mtd/nand/sunxi_nand_spl.c line 64
Quoted 10 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +10
-0+#define NANDFLASHC_ECC_CNT0 NREG(0x040) +#define NANDFLASHC_ECC_CNT1 NREG(0x044) +#define NANDFLASHC_ECC_CNT2 NREG(0x048) +#define NANDFLASHC_ECC_CNT3 NREG(0x04c) +#define NANDFLASHC_USER_DATA_BASE NREG(0x050) +#define NANDFLASHC_EFNAND_STATUS NREG(0x090) +#define NANDFLASHC_SPARE_AREA NREG(0x0A0) +#define NANDFLASHC_PATTERN_ID NREG(0x0A4) +#define NANDFLASHC_RAM0_BASE NREG(0x400) +#define NANDFLASHC_RAM1_BASE NREG(0x800)Shouldn't these be in a header file so they can be shared with a non- SPL driver?
drivers/mtd/nand/sunxi_nand_spl.c line 68
Quoted 3 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +3
-0+void +nand_init (void ) +{Don't put a newline after the return type.
drivers/mtd/nand/sunxi_nand_spl.c line 81
Quoted 13 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +13
-0+uint32_t val; + +board_nand_init (); + val =readl (NANDFLASHC_CTL ); + val |=NANDFLASHC_CTL_RST ; +writel (val,NANDFLASHC_CTL ); + +/* Wait until reset pin is deasserted */ +do { + val =readl (NANDFLASHC_CTL ); +if (!(val &NANDFLASHC_CTL_RST )) +break ; + }while (1 );Add a timeout to delay loops.
drivers/mtd/nand/sunxi_nand_spl.c line 85
Quoted 4 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +4
-0+ +/** \todo Chip select, currently kind of static */ + val =readl (NANDFLASHC_CTL ); + val &=0xf0fff0f2 ;Don't put magic numbers in the code -- use symbolic constants taht describe what the fields mean.
+/* random seed */
Quoted 8 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +8
-0+static const uint16_t random_seed[128 ] = { +0x2b75 ,0x0bd0 ,0x5ca3 ,0x62d1 ,0x1c93 ,0x07e9 ,0x2162 ,0x3a72 , +0x0d67 ,0x67f9 ,0x1be7 ,0x077d ,0x032f ,0x0dac ,0x2716 ,0x2436 , +0x7922 ,0x1510 ,0x3860 ,0x5287 ,0x480f ,0x4252 ,0x1789 ,0x5a2d , +0x2a49 ,0x5e10 ,0x437f ,0x4b4e ,0x2f45 ,0x216e ,0x5cb7 ,0x7130 , +0x2a3f ,0x60e4 ,0x4dc9 ,0x0ef0 ,0x0f52 ,0x1bb9 ,0x6211 ,0x7a56 , +0x226d ,0x4ea7 ,0x6f36 ,0x3692 ,0x38bf ,0x0c62 ,0x05eb ,0x4c55 , +0x60f4 ,0x728c ,0x3b6f ,0x2037 ,0x7f69 ,0x0936 ,0x651a ,0x4ceb ,drivers/mtd/nand/sunxi_nand_spl.c line 124
Quoted 10 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +10
-0+0x6218 ,0x79f3 ,0x383f ,0x18d9 ,0x4f05 ,0x5c82 ,0x2912 ,0x6f17 , +0x6856 ,0x5938 ,0x1007 ,0x61ab ,0x3e7f ,0x57c2 ,0x542f ,0x4f62 , +0x7454 ,0x2eac ,0x7739 ,0x42d4 ,0x2f90 ,0x435a ,0x2e52 ,0x2064 , +0x637c ,0x66ad ,0x2c90 ,0x0bad ,0x759c ,0x0029 ,0x0986 ,0x7126 , +0x1ca7 ,0x1605 ,0x386a ,0x27f5 ,0x1380 ,0x6d75 ,0x24c3 ,0x0f8e , +0x2b7a ,0x1418 ,0x1fd1 ,0x7dc1 ,0x2d8e ,0x43af ,0x2267 ,0x7da3 , +0x4e3d ,0x1338 ,0x50db ,0x454d ,0x764d ,0x40a3 ,0x42e6 ,0x262b , +0x2d2e ,0x1aea ,0x2e17 ,0x173d ,0x3a6e ,0x71bf ,0x25f9 ,0x0a5d , + 0x7c57, 0x0fbe, 0x46ce, 0x4939, 0x6b17, 0x37bb, 0x3e91, 0x76db, +};Why is randomness needed?
Quoted 1 line
+uint32_t
ecc_errors= 0;Why is this global?
drivers/mtd/nand/sunxi_nand_spl.c line 274
Quoted 10 lines
drivers/mtd/nand/sunxi_nand_spl.c new file +10
-0+int +nand_spl_load_image (uint32_t offs,unsigned int size,void *dest) +{ +dma_addr_t dst_block; +dma_addr_t dst_end; +phys_addr_t addr = offs; + + dst_end = ((dma_addr_t ) dest) + size; + +memset ((void *)dest,0x0 , size);Unnecessary cast.
-Scott
Signature · 6 lines
IMAGINE IT >> MAKE IT Meet us online at Twitter <http://twitter.com/ultimaker>, Facebook <http://facebook.com/ultimaker>, Google+ <http://google.com/+Ultimaker> www.ultimaker.com
Hi Roy,
Quoted 12 lines · Roy Spliet
The following patches take the work by Daniel Kochm?nski, and make some heavy modifications for readability and functionality, based on Boris Brezillon's Linux driver. Tested on an Olimex Lime w/ A20. Patches are sent as RFC. Open questions:
- Config options added are partially NAND-chip specific. Some options can be autodetected based on the NAND ID, others require either brute-forcing or config options like these. Do they belong in sunxi-common? Should we make aKconfigoption for this? If bikeshedding is desired, are defines insunxi-common.hgood enough for now?
- Style is mostly kernel-like. Satisfied?
- Daniel: do you think we can work from here?
Quoted 1 line
Please comment away!
Cool stuff. Overall this looks good I'll reply with more detailed feedback to your individual patches, 2 questions:
1) Can you provide a quick howto (at developer level) on how to actually get the spl and u-boot into the nand, what I'm looking for is unstructions like this:
a) Take this git repo + branch, build a kernel from it
b) Look at this dts file for a nand settings example, adjust it for your board
c) Once booted into the kernel using an updated dts you should have these block devices, dd spl to this one, and u-boot to this one.
No more to go more detailed then that :)
2) What is the plan to add support for loading files from nand in u-boot proper, so that we can get (e.g.) extlinux.conf + kernel +dtb from a /boot on nand ?
Regards,
Hans
Hi Roy,
I could definitely use such a howto. I have applied the patches to the current mainline u-boot head and try to boot my A13-OlinXino Wifi board in FEL mode.
I can compile and boot into u-boot via FEL. However, I get these errors when I have CONFIG_SPL_NAND_SUPPORT defined:
U-Boot SPL 2015.07-rc1-00276-g77792f9-dirty (May 21 2015 - 19:15:54)
DRAM: 512 MiB
Failed to set core voltage! Can't set CPU frequency
sunxi board_nand_init()
Nand initialised
Error: 1 ECC failures detected
Error: 512 ECC failures detected
This is my configs/A13-OLinuXino_defconfig looks like this:CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER,USB_EHCI,SYS_MAX_NAND_DEVICE=1,SYS_NAND_BASE=0x00" CONFIG_NAND=y
CONFIG_SUNXI_NAND=y
CONFIG_SUNXI_DMA=y
CONFIG_CMD_NAND=y
CONFIG_SPL_NAND_SUPPORT=y
CONFIG_SPL=y
CONFIG_FDTFILE="sun5i-a13-olinuxino.dtb"
CONFIG_USB1_VBUS_PIN="PG11"
CONFIG_VIDEO_HDMI=n
CONFIG_VIDEO_VGA_VIA_LCD=y
CONFIG_VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH=y
# For use with the Olimex 7" LCD module, adjust timings for other
displays
# Set video-mode=sunxi:800x600-24 at 60,monitor=lcd in the env. to
enable CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:18,pclk_khz:33000,le:16,ri:209,up:22,lo:22,hs:30,vs:1,sync:3,vmode:0" CONFIG_VIDEO_LCD_POWER="AXP0-0"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=408
CONFIG_DRAM_ZQ=123
CONFIG_DRAM_EMR1=0
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-olinuxino"
I just found out in the sun5i-a13-olinuxino.dts file are no nand settings. I guess I can find the information in the linux-sunxi 3.4 kernels fex file for the olinuxio and need to convert to dts, correct?
I am happy about any hints / comments.
Thanks
Alex
Quoted 45 lines · Hans de Goede
Hi Roy,
Quoted 5 lines · Roy Spliet
The following patches take the work by Daniel Kochm?nski, and make some heavy modifications for readability and functionality, based on Boris Brezillon's Linux driver. Tested on an Olimex Lime w/ A20. Patches are sent as RFC. Open questions:
- Config options added are partially NAND-chip specific. Some optionscan
Quoted 1 line
be autodetected based on the NAND ID, others require either
brute-forcing
Quoted 2 lines
or config options like these. Do they belong in sunxi-common? Should we make a
Kconfigoption for this? If bikeshedding is desired, aredefines
Quoted 5 lines
in
sunxi-common.hgood enough for now?
- Style is mostly kernel-like. Satisfied?
- Daniel: do you think we can work from here?Please comment away!
Cool stuff. Overall this looks good I'll reply with more detailed feedback to your individual patches, 2 questions:
1) Can you provide a quick howto (at developer level) on how to actually get the spl and u-boot into the nand, what I'm looking for is unstructions like this:
a) Take this git repo + branch, build a kernel from it
b) Look at this dts file for a nand settings example, adjust it for your board
c) Once booted into the kernel using an updated dts you should have these block devices, dd spl to this one, and u-boot to this one.No more to go more detailed then that :)
2) What is the plan to add support for loading files from nand in u-boot proper,
so that we can get (e.g.) extlinux.conf + kernel +dtb from a /boot on nand ?Regards,
Hans
Hello,
For my set-up I made use of Boris Brezillon's sunxi-nand tree[1], or actually I rebased his patches on top of 4.0rc7. This basically adds support for NAND-chip partitioning, ECC and randomisation. Docs for the DT specification in Documentation/devicetree/bindings/mtd/sunxi-nand.txt , and an example can be found in arch/arm/boot/dts/sun7i-a20-cubietruck.dts . [2] lists the acceptable configuration options for the boot and boot_rescue partitions, make sure to pick one of these (which should be no problem for MLC-type nand). The ECC mode for these boot partitions is called hw_syndrome.
Assuming you now have a Linux set-up kernel based on this tree with NAND support on an MMC, for U-boot what you should currently do is:
1) in include/configs/sunxi-common.h, adjust the parameters <CONFIG_NAND_SUNXI_>PAGE_SIZE, ECC_STEP, ECC_STRENGTH to match your NAND chip and DT configuration.
2) Build
3) Use your MMC to flash u-boot-sunxi-with-spl.bin onto NAND:
# flash_erase /dev/mtd0 # nandwrite -p /dev/mtd0 u-boot-sunxi-with-spl.bin 4) Reboot without the MMC card and see U-boot load
That should be all.
@Alex: To answer your question specifically: It's likely that the parameters in sunxi-common.h mentioned above might not match your NAND-chip configuration in the Linux kernel. I can't tell you precisely how to fetch these details from the 3.4 kernel, sorry. I recall Daniel using 24-bit strength ECC with otherwise equal parameters, but perhaps he can help you with this better than I can.
Cheers,
Roy
[1] https://github.com/bbrezillon/linux-sunxi/commits/sunxi-nand
[2] https://linux-sunxi.org/NAND#More_information_on_BROM_NAND
Op 22-05-15 om 04:23 schreef kaplan2539 at gmail.com:
Quoted 107 lines
Hi Roy,
I could definitely use such a howto. I have applied the patches to the current mainline u-boot head and try to boot my A13-OlinXino Wifi board in FEL mode.
I can compile and boot into u-boot via FEL. However, I get these errors when I haveCONFIG_SPL_NAND_SUPPORTdefined:U-Boot SPL 2015.07-rc1-00276-g77792f9-dirty (May 21 2015 - 19:15:54)
DRAM: 512 MiB
Failed to set core voltage! Can't set CPU frequency
sunxiboard_nand_init()
Nand initialised
Error: 1 ECC failures detected
Error: 512 ECC failures detectedThis is my configs/A13-OLinuXino_defconfig looks like this:
CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER,USB_EHCI,SYS_MAX_NAND_DEVICE=1,SYS_NAND_BASE=0x00"CONFIG_NAND=yCONFIG_SUNXI_NAND=yCONFIG_SUNXI_DMA=yCONFIG_CMD_NAND=yCONFIG_SPL_NAND_SUPPORT=yCONFIG_SPL=yCONFIG_FDTFILE="sun5i-a13-olinuxino.dtb"CONFIG_USB1_VBUS_PIN="PG11"CONFIG_VIDEO_HDMI=nCONFIG_VIDEO_VGA_VIA_LCD=yCONFIG_VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH=y
# For use with the Olimex 7" LCD module, adjust timings for other
displays
# Set video-mode=sunxi:800x600-24 at 60,monitor=lcd in the env. to enableCONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:18,pclk_khz:33000,le:16,ri:209,up:22,lo:22,hs:30,vs:1,sync:3,vmode:0"CONFIG_VIDEO_LCD_POWER="AXP0-0"CONFIG_VIDEO_LCD_BL_PWM="PB2"CONFIG_ARM=yCONFIG_ARCH_SUNXI=yCONFIG_MACH_SUN5I=yCONFIG_DRAM_CLK=408CONFIG_DRAM_ZQ=123CONFIG_DRAM_EMR1=0CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-olinuxino"I just found out in the
sun5i-a13-olinuxino.dtsfile are no nand settings. I guess I can find the information in the linux-sunxi 3.4 kernels fex file for the olinuxio and need to convert to dts, correct?I am happy about any hints / comments.
Thanks
AlexOn Thursday, May 21, 2015 at 11:08:24 AM UTC-7, Hans de Goede wrote:
Hi Roy,
On 21-05-15 15:59, Roy Spliet wrote:
> The following patches take the work by Daniel Kochm?nski, and make some
> heavy modifications for readability and functionality, based on Boris
> Brezillon's Linux driver. Tested on an Olimex Lime w/ A20. > Patches are sent as RFC. Open questions:
> - Config options added are partially NAND-chip specific. Some options can
> be autodetected based on the NAND ID, others require either brute-forcing
> or config options like these. Do they belong in sunxi-common? Should
> we make aKconfigoption for this? If bikeshedding is desired, are defines
> insunxi-common.hgood enough for now?
> - Style is mostly kernel-like. Satisfied?
> - Daniel: do you think we can work from here?
>
> Please comment away!Cool stuff. Overall this looks good I'll reply with more detailed feedback
to your individual patches, 2 questions:1) Can you provide a quick howto (at developer level) on how to actually
get the spl and u-boot into the nand, what I'm looking for is unstructions
like this:a) Take this git repo + branch, build a kernel from it
b) Look at this dts file for a nand settings example, adjust it for your board
c) Once booted into the kernel using an updated dts you should have these
block devices, dd spl to this one, and u-boot to this one.No more to go more detailed then that :)
2) What is the plan to add support for loading files from nand in u-boot proper,
so that we can get (e.g.) extlinux.conf + kernel +dtb from a /boot on nand ?Regards,
Hans
Signature · 6 lines
IMAGINE IT >> MAKE IT Meet us online at Twitter <http://twitter.com/ultimaker>, Facebook <http://facebook.com/ultimaker>, Google+ <http://google.com/+Ultimaker> www.ultimaker.com
Hi,
Quoted 11 lines · Roy Spliet
Hello,
For my set-up I made use of Boris Brezillon's sunxi-nand tree[1], or actually I rebased his patches on top of 4.0rc7. This basically adds support for NAND-chip partitioning, ECC and randomisation. Docs for the DT specification in
Documentation/devicetree/bindings/mtd/sunxi-nand.txt, and an example can be found inarch/arm/boot/dts/sun7i-a20-cubietruck.dts. [2] lists the acceptable configuration options for the boot andboot_rescuepartitions, make sure to pick one of these (which should be no problem for MLC-type nand). The ECC mode for these boot partitions is calledhw_syndrome.Assuming you now have a Linux set-up kernel based on this tree with NAND support on an MMC, for U-boot what you should currently do is:
1) ininclude/configs/sunxi-common.h, adjust the parameters <CONFIG_NAND_SUNXI_>PAGE_SIZE,ECC_STEP,ECC_STRENGTHto match your NAND chip and DT configuration.
2) Build
3) Use your MMC to flash u-boot-sunxi-with-spl.bin onto NAND:# flash_erase /dev/mtd0 # nandwrite -p /dev/mtd0 u-boot-sunxi-with-spl.bin 4) Reboot without the MMC card and see U-boot load
Ok, it took me way longer then I wanted (see below) but I've this working now. It is cool to see u-boot load from nand :)
Quoted 4 lines
That should be all.
@Alex: To answer your question specifically: It's likely that the parameters in
sunxi-common.hmentioned above might not match your NAND-chip configuration in the Linux kernel. I can't tell you precisely how to fetch these details from the 3.4 kernel, sorry. I recall Daniel using 24-bit strength ECC with otherwise equal parameters, but perhaps he can help you with this better than I can.
Alex, could it be that you are writing the nand using a (rebased) version of bbrezillon's sunxi-nand-next branch ?
I started with that too because it is much newer and contains various bug fixes, but it seems that it also contains a new bug causing it to write the NAND in such a way that the BROM and u-boot SPL code will not read it.
I've just pushed a rebased version of the sunxi-nand branch of Boris here:
https://github.com/jwrdegoede/linux-sunxi/commits/sunxi-nand-experiment
And that works for me, where as before I got the exact same errors trying to fel load a nand enabled spl.
I'm working on merging over all the changes from the sunxi-nand-next branch onto my working sunxi-nand-experiment branch 1 by 1 until I find the one which causes the breakage...
Regards,
Hans
Quoted 113 lines
Cheers,
Roy
[1] https://github.com/bbrezillon/linux-sunxi/commits/sunxi-nand
[2] https://linux-sunxi.org/NAND#More_information_on_BROM_NANDOp 22-05-15 om 04:23 schreef kaplan2539 at gmail.com:
Quoted 102 lines
Hi Roy,
I could definitely use such a howto. I have applied the patches to the current mainline u-boot head and try to boot my A13-OlinXino Wifi board in FEL mode. I can compile and boot into u-boot via FEL. However, I get these errors when I have
CONFIG_SPL_NAND_SUPPORTdefined:U-Boot SPL 2015.07-rc1-00276-g77792f9-dirty (May 21 2015 - 19:15:54)
DRAM: 512 MiB
Failed to set core voltage! Can't set CPU frequency
sunxiboard_nand_init()
Nand initialised
Error: 1 ECC failures detected
Error: 512 ECC failures detectedThis is my configs/A13-OLinuXino_defconfig looks like this:
CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER,USB_EHCI,SYS_MAX_NAND_DEVICE=1,SYS_NAND_BASE=0x00"CONFIG_NAND=yCONFIG_SUNXI_NAND=yCONFIG_SUNXI_DMA=yCONFIG_CMD_NAND=yCONFIG_SPL_NAND_SUPPORT=yCONFIG_SPL=yCONFIG_FDTFILE="sun5i-a13-olinuxino.dtb"CONFIG_USB1_VBUS_PIN="PG11"CONFIG_VIDEO_HDMI=nCONFIG_VIDEO_VGA_VIA_LCD=yCONFIG_VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH=y
# For use with the Olimex 7" LCD module, adjust timings for other displays
# Set video-mode=sunxi:800x600-24 at 60,monitor=lcd in the env. to enableCONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:18,pclk_khz:33000,le:16,ri:209,up:22,lo:22,hs:30,vs:1,sync:3,vmode:0"CONFIG_VIDEO_LCD_POWER="AXP0-0"CONFIG_VIDEO_LCD_BL_PWM="PB2"CONFIG_ARM=yCONFIG_ARCH_SUNXI=yCONFIG_MACH_SUN5I=yCONFIG_DRAM_CLK=408CONFIG_DRAM_ZQ=123CONFIG_DRAM_EMR1=0CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-olinuxino"I just found out in the
sun5i-a13-olinuxino.dtsfile are no nand settings.
I guess I can find the information in the linux-sunxi 3.4 kernels fex file for the olinuxio and need to convert to dts, correct?I am happy about any hints / comments.
Thanks
AlexOn Thursday, May 21, 2015 at 11:08:24 AM UTC-7, Hans de Goede wrote:
Hi Roy,
On 21-05-15 15:59, Roy Spliet wrote:
> The following patches take the work by Daniel Kochm?nski, and make some
> heavy modifications for readability and functionality, based on Boris
> Brezillon's Linux driver. Tested on an Olimex Lime w/ A20. > Patches are sent as RFC. Open questions:
> - Config options added are partially NAND-chip specific. Some options can
> be autodetected based on the NAND ID, others require either brute-forcing
> or config options like these. Do they belong in sunxi-common? Should
> we make aKconfigoption for this? If bikeshedding is desired, are defines
> insunxi-common.hgood enough for now?
> - Style is mostly kernel-like. Satisfied?
> - Daniel: do you think we can work from here?
>
> Please comment away!Cool stuff. Overall this looks good I'll reply with more detailed feedback
to your individual patches, 2 questions:1) Can you provide a quick howto (at developer level) on how to actually
get the spl and u-boot into the nand, what I'm looking for is unstructions
like this:a) Take this git repo + branch, build a kernel from it
b) Look at this dts file for a nand settings example, adjust it for your board
c) Once booted into the kernel using an updated dts you should have these
block devices, dd spl to this one, and u-boot to this one.No more to go more detailed then that :)
2) What is the plan to add support for loading files from nand in u-boot proper,
so that we can get (e.g.) extlinux.conf + kernel +dtb from a /boot on nand ?Regards,
Hans
Hi,
Quoted 33 lines · Hans de Goede
Hi,
Quoted 11 lines · Roy Spliet
Hello,
For my set-up I made use of Boris Brezillon's sunxi-nand tree[1], or actually I rebased his patches on top of 4.0rc7. This basically adds support for NAND-chip partitioning, ECC and randomisation. Docs for the DT specification in
Documentation/devicetree/bindings/mtd/sunxi-nand.txt, and an example can be found inarch/arm/boot/dts/sun7i-a20-cubietruck.dts. [2] lists the acceptable configuration options for the boot andboot_rescuepartitions, make sure to pick one of these (which should be no problem for MLC-type nand). The ECC mode for these boot partitions is calledhw_syndrome.Assuming you now have a Linux set-up kernel based on this tree with NAND support on an MMC, for U-boot what you should currently do is:
1) ininclude/configs/sunxi-common.h, adjust the parameters <CONFIG_NAND_SUNXI_>PAGE_SIZE,ECC_STEP,ECC_STRENGTHto match your NAND chip and DT configuration.
2) Build
3) Use your MMC to flash u-boot-sunxi-with-spl.bin onto NAND:# flash_erase /dev/mtd0 # nandwrite -p /dev/mtd0 u-boot-sunxi-with-spl.bin 4) Reboot without the MMC card and see U-boot loadOk, it took me way longer then I wanted (see below) but I've this working now. It is cool to see u-boot load from nand :)
Quoted 4 lines
That should be all.
@Alex: To answer your question specifically: It's likely that the parameters in
sunxi-common.hmentioned above might not match your NAND-chip configuration in the Linux kernel. I can't tell you precisely how to fetch these details from the 3.4 kernel, sorry. I recall Daniel using 24-bit strength ECC with otherwise equal parameters, but perhaps he can help you with this better than I can.Alex, could it be that you are writing the nand using a (rebased) version of bbrezillon's sunxi-nand-next branch ?
I started with that too because it is much newer and contains various bug fixes, but it seems that it also contains a new bug causing it to write the NAND in such a way that the BROM and u-boot SPL code will not read it.
I've just pushed a rebased version of the sunxi-nand branch of Boris here:
Quoted 8 lines
https://github.com/jwrdegoede/linux-sunxi/commits/sunxi-nand-experiment
And that works for me, where as before I got the exact same errors trying to fel load a nand enabled spl.
I'm working on merging over all the changes from the sunxi-nand-next branch onto my working sunxi-nand-experiment branch 1 by 1 until I find the one which causes the breakage...
Ok, so quick update the breakage was caused by this commit:
https://github.com/bbrezillon/linux-sunxi/commit/7f7324bc6170a45742352070fb45170779a3611c
When it was rebased someone (Boris I guess) forgot to remove the "chip->read_buf(mtd, NULL, ecc->size);" line at line 1075 (after the patch) and likewise the "chip->write_buf(mtd, buf + (i * ecc->size), ecc->size);" line at line 1161. With these 2 lines removed the sunxi-nand-next branch from Boris, rebased on 4.1-rc1 can write the nand boot parts and the brom / spl can load the spl / resp. u-boot.bin from there (on a cubieboard2).
I've also tried to get this code running on a cubieboard (non 2 so A10 rather then A20), the SPL loads fine there (indicating that the kernel bits work), but then I get:
U-Boot SPL 2015.07-rc1-00287-g050de86-dirty (May 25 2015 - 22:28:19)
DRAM: 1024 MiB
CPU: 1008000000Hz, AXI/AHB/APB: 3/2/2
Nand initialised
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
...
Which seems to indicate a problem with the SPL nand code on the A10. I'll investigate this further tomorrow evening.
A cleaned up version of my kernel work on this is available in my sunxi-wip branch.
Regards,
Hans
Hello Hans,
Re-sent to everybody instead of just you. Reply inline.
Op 25-05-15 om 22:39 schreef Hans de Goede:
Quoted 67 lines
Hi,
Quoted 50 lines · Hans de Goede
Hi,
Quoted 20 lines · Roy Spliet
Hello,
For my set-up I made use of Boris Brezillon's sunxi-nand tree[1], or actually I rebased his patches on top of 4.0rc7. This basically adds support for NAND-chip partitioning, ECC and randomisation. Docs for the DT specification in
Documentation/devicetree/bindings/mtd/sunxi-nand.txt, and an example can be found inarch/arm/boot/dts/sun7i-a20-cubietruck.dts.
[2] lists the acceptable configuration options for the boot andboot_rescuepartitions, make sure to pick one of these (which should be no problem for MLC-type nand). The ECC mode for these boot partitions is calledhw_syndrome.Assuming you now have a Linux set-up kernel based on this tree with NAND support on an MMC, for U-boot what you should currently do is:
1) ininclude/configs/sunxi-common.h, adjust the parameters <CONFIG_NAND_SUNXI_>PAGE_SIZE,ECC_STEP,ECC_STRENGTHto match your NAND chip and DT configuration.
2) Build
3) Use your MMC to flash u-boot-sunxi-with-spl.bin onto NAND:Quoted 3 lines
# flash_erase /dev/mtd0 # nandwrite -p /dev/mtd0 u-boot-sunxi-with-spl.bin 4) Reboot without the MMC card and see U-boot loadOk, it took me way longer then I wanted (see below) but I've this working now. It is cool to see u-boot load from nand :)
Quoted 9 lines
That should be all.
@Alex: To answer your question specifically: It's likely that the parameters in
sunxi-common.hmentioned above might not match your NAND-chip configuration in the Linux kernel. I can't tell you precisely how to fetch these details from the 3.4 kernel, sorry. I recall Daniel using 24-bit strength ECC with otherwise equal parameters, but perhaps he can help you with this better than I can.Alex, could it be that you are writing the nand using a (rebased) version of bbrezillon's sunxi-nand-next branch ?
I started with that too because it is much newer and contains various bug fixes, but it seems that it also contains a new bug causing it to write the NAND in such a way that the BROM and u-boot SPL code will not read it.
I've just pushed a rebased version of the sunxi-nand branch of Boris here:
Quoted 8 lines
https://github.com/jwrdegoede/linux-sunxi/commits/sunxi-nand-experiment
And that works for me, where as before I got the exact same errors trying to fel load a nand enabled spl.
I'm working on merging over all the changes from the sunxi-nand-next branch onto my working sunxi-nand-experiment branch 1 by 1 until I find the one which causes the breakage...
Ok, so quick update the breakage was caused by this commit:
https://github.com/bbrezillon/linux-sunxi/commit/7f7324bc6170a45742352070fb45170779a3611c
Quoted 10 lines
When it was rebased someone (Boris I guess) forgot to remove the "
chip->read_buf(mtd, NULL, ecc->size);" line at line 1075 (after the patch) and
likewise the "chip->write_buf(mtd, buf + (i * ecc->size), ecc->size);" line at
line 1161. With these 2 lines removed the sunxi-nand-next branch from Boris,
rebased on 4.1-rc1 can write the nand boot parts and the brom / spl can load
the spl / resp. u-boot.bin from there (on a cubieboard2).
You're right... I did spot this, but assumed this was my own mistake in merging these patches with our 4.0RC7 tree. Sorry, could have saved you some trouble if I were sharper.
Quoted 10 lines
I've also tried to get this code running on a cubieboard (non 2 so A10 rather then
A20), the SPL loads fine there (indicating that the kernel bits work), but then
I get:U-Boot SPL 2015.07-rc1-00287-g050de86-dirty (May 25 2015 - 22:28:19)
DRAM: 1024 MiBCPU: 1008000000Hz, AXI/AHB/APB: 3/2/2
Quoted 8 lines
Nand initialised
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
...
Thanks for testing this. I don't own an A10 myself, so I haven't observed this behaviour.
First thing I would verify personally is whether all the clocks are properly configured. Could you make U-boot print &ccm->ahb_gate0 and &ccm->nand0_clk_cfg? For the first, bits 6 (DMA) and 13 (NAND) must be set, the second must have bit 31 set, bits 24 and 25 cleared (and otherwise, the accompanying PLL must be configured too... probably easier to use the OSC24M), and the divide ratios set to 0 (although a small divider, like 1, shouldn't be a problem either).
I am assuming these values should be correct, but only because BROM initialised part of it. I am aware of the fact that the SPL driver doesn't control the DMA gating reg and the NAND post-dividers. It might be a good idea to do so for as long as we don't have a full DMA driver, so I'll patch that up today.
Roy
Quoted 11 lines
Which seems to indicate a problem with the SPL nand code on the A10. I'll investigate
this further tomorrow evening.A cleaned up version of my kernel work on this is available in my sunxi-wip branch.
Regards,
Hans
Signature · 6 lines
IMAGINE IT >> MAKE IT Meet us online at Twitter <http://twitter.com/ultimaker>, Facebook <http://facebook.com/ultimaker>, Google+ <http://google.com/+Ultimaker> www.ultimaker.com
Hi,
Quoted 77 lines · Roy Spliet
Hello Hans,
Re-sent to everybody instead of just you. Reply inline.
Op 25-05-15 om 22:39 schreef Hans de Goede:
Quoted 47 lines
Hi,
Quoted 33 lines · Hans de Goede
Hi,
Quoted 11 lines · Roy Spliet
Hello,
For my set-up I made use of Boris Brezillon's sunxi-nand tree[1], or actually I rebased his patches on top of 4.0rc7. This basically adds support for NAND-chip partitioning, ECC and randomisation. Docs for the DT specification in
Documentation/devicetree/bindings/mtd/sunxi-nand.txt, and an example can be found inarch/arm/boot/dts/sun7i-a20-cubietruck.dts. [2] lists the acceptable configuration options for the boot andboot_rescuepartitions, make sure to pick one of these (which should be no problem for MLC-type nand). The ECC mode for these boot partitions is calledhw_syndrome.Assuming you now have a Linux set-up kernel based on this tree with NAND support on an MMC, for U-boot what you should currently do is:
1) ininclude/configs/sunxi-common.h, adjust the parameters <CONFIG_NAND_SUNXI_>PAGE_SIZE,ECC_STEP,ECC_STRENGTHto match your NAND chip and DT configuration.
2) Build
3) Use your MMC to flash u-boot-sunxi-with-spl.bin onto NAND:# flash_erase /dev/mtd0 # nandwrite -p /dev/mtd0 u-boot-sunxi-with-spl.bin 4) Reboot without the MMC card and see U-boot loadOk, it took me way longer then I wanted (see below) but I've this working now. It is cool to see u-boot load from nand :)
Quoted 4 lines
That should be all.
@Alex: To answer your question specifically: It's likely that the parameters in
sunxi-common.hmentioned above might not match your NAND-chip configuration in the Linux kernel. I can't tell you precisely how to fetch these details from the 3.4 kernel, sorry. I recall Daniel using 24-bit strength ECC with otherwise equal parameters, but perhaps he can help you with this better than I can.Alex, could it be that you are writing the nand using a (rebased) version of bbrezillon's sunxi-nand-next branch ?
I started with that too because it is much newer and contains various bug fixes, but it seems that it also contains a new bug causing it to write the NAND in such a way that the BROM and u-boot SPL code will not read it.
I've just pushed a rebased version of the sunxi-nand branch of Boris here:
Quoted 8 lines
https://github.com/jwrdegoede/linux-sunxi/commits/sunxi-nand-experiment
And that works for me, where as before I got the exact same errors trying to fel load a nand enabled spl.
I'm working on merging over all the changes from the sunxi-nand-next branch onto my working sunxi-nand-experiment branch 1 by 1 until I find the one which causes the breakage...
Ok, so quick update the breakage was caused by this commit:
Quoted 8 lines
https://github.com/bbrezillon/linux-sunxi/commit/7f7324bc6170a45742352070fb45170779a3611c
When it was rebased someone (Boris I guess) forgot to remove the "
chip->read_buf(mtd, NULL, ecc->size);" line at line 1075 (after the patch) and likewise the "chip->write_buf(mtd, buf + (i * ecc->size), ecc->size);" line at line 1161. With these 2 lines removed the sunxi-nand-next branch from Boris, rebased on 4.1-rc1 can write the nand boot parts and the brom / spl can load the spl / resp. u-boot.bin from there (on a cubieboard2).You're right... I did spot this, but assumed this was my own mistake in merging these patches with our 4.0RC7 tree. Sorry, could have saved you some trouble if I were sharper.
Quoted 8 lines
I've also tried to get this code running on a cubieboard (non 2 so A10 rather then A20), the SPL loads fine there (indicating that the kernel bits work), but then I get:
U-Boot SPL 2015.07-rc1-00287-g050de86-dirty (May 25 2015 - 22:28:19)
DRAM: 1024 MiBCPU: 1008000000Hz, AXI/AHB/APB: 3/2/2Quoted 8 lines
Nand initialised
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
...
Quoted 3 lines
Thanks for testing this. I don't own an A10 myself, so I haven't observed this behaviour.
First thing I would verify personally is whether all the clocks are properly configured. Could you make U-boot print&ccm->ahb_gate0and&ccm->nand0_clk_cfg? For the first, bits 6 (DMA) and 13 (NAND) must be set, the second must have bit 31 set, bits 24 and 25 cleared (and otherwise, the accompanying PLL must be configured too... probably easier to use the OSC24M), and the divide ratios set to 0 (although a small divider, like 1, shouldn't be a problem either). I am assuming these values should be correct, but only because BROM initialised part of it. I am aware of the fact that the SPL driver doesn't control the DMA gating reg and the NAND post-dividers. It might be a good idea to do so for as long as we don't have a full DMA driver, so I'll patch that up today.
I've just tried the prelimary v4 of your patch-set from:
https://gitlab.com/turtle-solutions/u-boot/commits/sunxi-nand-wip
And the changes you've made fix these errors on the A10, good job.
Regards,
Hans
Hi,
I tried both the kernel from
https://github.com/jwrdegoede/linux-sunxi/commits/sunxi-nand-experiment
and u-boot from
https://gitlab.com/turtle-solutions/u-boot/commits/sunxi-nand-wip
I can successfully compile and boot them on my A13-OLinuXino but there is no NAND available. Neither in kernel log nor in the u-boot output there is anything mentioned about NAND. I tried to enable all the NAND options, especially the "Support for NAND on Allwinner SoCs" in nconfig but I'm afraid I still have not found the right configuration.
Would it be possible to share the build configuration files?
Thanks in advance
Alex
Quoted 142 lines · Hans de Goede
Hi,
Quoted 112 lines · Roy Spliet
Hello Hans,
Re-sent to everybody instead of just you. Reply inline.
Op 25-05-15 om 22:39 schreef Hans de Goede:
Quoted 72 lines
Hi,
Quoted 53 lines · Hans de Goede
Hi,
Quoted 19 lines · Roy Spliet
Hello,
For my set-up I made use of Boris Brezillon's sunxi-nand tree[1], or actually I rebased his patches on top of 4.0rc7. This basically adds support for NAND-chip partitioning, ECC and randomisation. Docs for the DT specification in
Documentation/devicetree/bindings/mtd/sunxi-nand.txt, and an example can be found inarch/arm/boot/dts/sun7i-a20-cubietruck.dts. [2] lists the acceptable configuration options for the boot andboot_rescuepartitions, make sure to pick one of these (which should be no problem for MLC-type nand). The ECC mode for these boot partitions is calledhw_syndrome.Assuming you now have a Linux set-up kernel based on this tree with NAND support on an MMC, for U-boot what you should currently do is:
1) ininclude/configs/sunxi-common.h, adjust the parameters <CONFIG_NAND_SUNXI_>PAGE_SIZE,ECC_STEP,ECC_STRENGTHto match your NAND chip and DT configuration.
2) Build
3) Use your MMC to flash u-boot-sunxi-with-spl.bin onto NAND:Quoted 4 lines
# flash_erase /dev/mtd0 # nandwrite -p /dev/mtd0 u-boot-sunxi-with-spl.bin 4) Reboot without the MMC card and see U-boot loadOk, it took me way longer then I wanted (see below) but I've this working now. It is cool to see u-boot load from nand :)
Quoted 10 lines
That should be all.
@Alex: To answer your question specifically: It's likely that the parameters in
sunxi-common.hmentioned above might not match your NAND-chip configuration in the Linux kernel. I can't tell you precisely how to fetch these details from the 3.4 kernel, sorry. I recall Daniel using 24-bit strength ECC with otherwise equal parameters, but perhaps he can help you with this better than I can.Alex, could it be that you are writing the nand using a (rebased) version of bbrezillon's sunxi-nand-next branch ?
I started with that too because it is much newer and contains various bug fixes, but it seems that it also contains a new bug causing it to write the NAND in such a way that the BROM and u-boot SPL code will not read it.
I've just pushed a rebased version of the sunxi-nand branch of Boris here:
Quoted 9 lines
https://github.com/jwrdegoede/linux-sunxi/commits/sunxi-nand-experiment
And that works for me, where as before I got the exact same errors trying to fel load a nand enabled spl.
I'm working on merging over all the changes from the sunxi-nand-next branch onto my working sunxi-nand-experiment branch 1 by 1 until I find the one which causes the breakage...
Ok, so quick update the breakage was caused by this commit:
https://github.com/bbrezillon/linux-sunxi/commit/7f7324bc6170a45742352070fb45170779a3611c
Quoted 11 lines
When it was rebased someone (Boris I guess) forgot to remove the "
chip->read_buf(mtd, NULL, ecc->size);" line at line 1075 (after the patch) and
likewise the "chip->write_buf(mtd, buf + (i * ecc->size), ecc->size);" line at
line 1161. With these 2 lines removed the sunxi-nand-next branch from Boris,
rebased on 4.1-rc1 can write the nand boot parts and the brom / spl can load
the spl / resp. u-boot.bin from there (on a cubieboard2).You're right... I did spot this, but assumed this was my own mistake in merging these patches with our 4.0RC7 tree. Sorry, could have saved you some trouble if I were sharper.
Quoted 10 lines
I've also tried to get this code running on a cubieboard (non 2 so A10 rather then
A20), the SPL loads fine there (indicating that the kernel bits work), but then
I get:U-Boot SPL 2015.07-rc1-00287-g050de86-dirty (May 25 2015 - 22:28:19)
DRAM: 1024 MiBCPU: 1008000000Hz, AXI/AHB/APB: 3/2/2Quoted 9 lines
Nand initialised
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
...Quoted 15 lines
Thanks for testing this. I don't own an A10 myself, so I haven't observed this behaviour.
First thing I would verify personally is whether all the clocks are properly configured. Could you make U-boot print&ccm->ahb_gate0and&ccm->nand0_clk_cfg? For the first, bits 6 (DMA) and 13 (NAND) must be set, the second must have bit 31 set, bits 24 and 25 cleared (and otherwise, the accompanying PLL must be configured too... probably easier to use the OSC24M), and the divide ratios set to 0 (although a small divider, like 1, shouldn't be a problem either).
I am assuming these values should be correct, but only because BROM initialised part of it. I am aware of the fact that the SPL driver doesn't control the DMA gating reg and the NAND post-dividers. It might be a good idea to do so for as long as we don't have a full DMA driver, so I'll patch that up today.I've just tried the prelimary v4 of your patch-set from:
https://gitlab.com/turtle-solutions/u-boot/commits/sunxi-nand-wipAnd the changes you've made fix these errors on the A10, good job.
Regards,
Hans
Hello Alexander,
you have to put correct nand configuration in devicetree in arch/arm/boot/dts/sun5i-a13-olinuxino.dts of your board. For comparision you may check sun7i-a20-cubieboard2.dts which has appropriate definitions. sunxi-nand-wip branch works on a20.
Good luck!
Daniel
Quoted 163 lines · Alexander Kaplan
Hi,
I tried both the kernel from
https://github.com/jwrdegoede/linux-sunxi/commits/sunxi-nand-experimentand u-boot from
https://gitlab.com/turtle-solutions/u-boot/commits/sunxi-nand-wipI can successfully compile and boot them on my A13-OLinuXino but there is no NAND available. Neither in kernel log nor in the u-boot output there is anything mentioned about NAND. I tried to enable all the NAND options, especially the "Support for NAND on Allwinner SoCs" in nconfig but I'm afraid I still have not found the right configuration.
Would it be possible to share the build configuration files?
Thanks in advance
AlexQuoted 142 lines · Hans de Goede
Hi,
Quoted 112 lines · Roy Spliet
Hello Hans,
Re-sent to everybody instead of just you. Reply inline.
Op 25-05-15 om 22:39 schreef Hans de Goede:
Quoted 72 lines
Hi,
Quoted 53 lines · Hans de Goede
Hi,
Quoted 19 lines · Roy Spliet
Hello,
For my set-up I made use of Boris Brezillon's sunxi-nand tree[1], or actually I rebased his patches on top of 4.0rc7. This basically adds support for NAND-chip partitioning, ECC and randomisation. Docs for the DT specification in
Documentation/devicetree/bindings/mtd/sunxi-nand.txt, and an example can be found inarch/arm/boot/dts/sun7i-a20-cubietruck.dts. [2] lists the acceptable configuration options for the boot andboot_rescuepartitions, make sure to pick one of these (which should be no problem for MLC-type nand). The ECC mode for these boot partitions is calledhw_syndrome.Assuming you now have a Linux set-up kernel based on this tree with NAND support on an MMC, for U-boot what you should currently do is:
1) ininclude/configs/sunxi-common.h, adjust the parameters <CONFIG_NAND_SUNXI_>PAGE_SIZE,ECC_STEP,ECC_STRENGTHto match your NAND chip and DT configuration.
2) Build
3) Use your MMC to flash u-boot-sunxi-with-spl.bin onto NAND:Quoted 4 lines
# flash_erase /dev/mtd0 # nandwrite -p /dev/mtd0 u-boot-sunxi-with-spl.bin 4) Reboot without the MMC card and see U-boot loadOk, it took me way longer then I wanted (see below) but I've this working now. It is cool to see u-boot load from nand :)
Quoted 10 lines
That should be all.
@Alex: To answer your question specifically: It's likely that the parameters in
sunxi-common.hmentioned above might not match your NAND-chip configuration in the Linux kernel. I can't tell you precisely how to fetch these details from the 3.4 kernel, sorry. I recall Daniel using 24-bit strength ECC with otherwise equal parameters, but perhaps he can help you with this better than I can.Alex, could it be that you are writing the nand using a (rebased) version of bbrezillon's sunxi-nand-next branch ?
I started with that too because it is much newer and contains various bug fixes, but it seems that it also contains a new bug causing it to write the NAND in such a way that the BROM and u-boot SPL code will not read it.
I've just pushed a rebased version of the sunxi-nand branch of Boris here:
Quoted 9 lines
https://github.com/jwrdegoede/linux-sunxi/commits/sunxi-nand-experiment
And that works for me, where as before I got the exact same errors trying to fel load a nand enabled spl.
I'm working on merging over all the changes from the sunxi-nand-next branch onto my working sunxi-nand-experiment branch 1 by 1 until I find the one which causes the breakage...
Ok, so quick update the breakage was caused by this commit:
https://github.com/bbrezillon/linux-sunxi/commit/7f7324bc6170a45742352070fb45170779a3611c
Quoted 11 lines
When it was rebased someone (Boris I guess) forgot to remove the "
chip->read_buf(mtd, NULL, ecc->size);" line at line 1075 (after the patch) and
likewise the "chip->write_buf(mtd, buf + (i * ecc->size), ecc->size);" line at
line 1161. With these 2 lines removed the sunxi-nand-next branch from Boris,
rebased on 4.1-rc1 can write the nand boot parts and the brom / spl can load
the spl / resp. u-boot.bin from there (on a cubieboard2).You're right... I did spot this, but assumed this was my own mistake in merging these patches with our 4.0RC7 tree. Sorry, could have saved you some trouble if I were sharper.
Quoted 10 lines
I've also tried to get this code running on a cubieboard (non 2 so A10 rather then
A20), the SPL loads fine there (indicating that the kernel bits work), but then
I get:U-Boot SPL 2015.07-rc1-00287-g050de86-dirty (May 25 2015 - 22:28:19)
DRAM: 1024 MiBCPU: 1008000000Hz, AXI/AHB/APB: 3/2/2Quoted 9 lines
Nand initialised
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
NAND timeout reading data
...Quoted 15 lines
Thanks for testing this. I don't own an A10 myself, so I haven't observed this behaviour.
First thing I would verify personally is whether all the clocks are properly configured. Could you make U-boot print&ccm->ahb_gate0and&ccm->nand0_clk_cfg? For the first, bits 6 (DMA) and 13 (NAND) must be set, the second must have bit 31 set, bits 24 and 25 cleared (and otherwise, the accompanying PLL must be configured too... probably easier to use the OSC24M), and the divide ratios set to 0 (although a small divider, like 1, shouldn't be a problem either).
I am assuming these values should be correct, but only because BROM initialised part of it. I am aware of the fact that the SPL driver doesn't control the DMA gating reg and the NAND post-dividers. It might be a good idea to do so for as long as we don't have a full DMA driver, so I'll patch that up today.I've just tried the prelimary v4 of your patch-set from:
https://gitlab.com/turtle-solutions/u-boot/commits/sunxi-nand-wipAnd the changes you've made fix these errors on the A10, good job.
Regards,
Hans
Signature · 4 lines
Daniel Kochma?ski | Pozna?, Poland ;; aka jackdaniel "Be the change that you wish to see in the world." - Mahatma Gandhi
Hi Alexander,
Quoted 11 lines · Alexander Kaplan
Hi,
I tried both the kernel from
https://github.com/jwrdegoede/linux-sunxi/commits/sunxi-nand-experimentand u-boot from
https://gitlab.com/turtle-solutions/u-boot/commits/sunxi-nand-wipI can successfully compile and boot them on my A13-OLinuXino but there is no NAND available. Neither in kernel log nor in the u-boot output there is anything mentioned about NAND. I tried to enable all the NAND options, especially the "Support for NAND on Allwinner SoCs" in nconfig but I'm afraid I still have not found the right configuration.
Would it be possible to share the build configuration files?
I've just finished adding (partial) support for the A13-OLinuxino nand to my sunxi-wip kernel branch, and just pushed the result mere seconds ago.
I'm using the attached kernel .config file.
Note I've just also joined irc I'm hansg on #linux-sunxi @freenode so we can discuss this in realtime if you want.
Regards,
Hans
-------------- next part --------------
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 4.1.0-rc1 Kernel Configuration
#CONFIG_ARM=yCONFIG_ARM_HAS_SG_CHAIN=yCONFIG_MIGHT_HAVE_PCI=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_HAVE_PROC_CPU=yCONFIG_NO_IOPORT_MAP=yCONFIG_STACKTRACE_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_BANDGAP=yCONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=yCONFIG_ZONE_DMA=yCONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_SUPPORTS_UPROBES=yCONFIG_FIQ=yCONFIG_VECTORS_BASE=0xffff0000 CONFIG_ARM_PATCH_PHYS_VIRT=yCONFIG_GENERIC_BUG=yCONFIG_PGTABLE_LEVELS=2 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_IRQ_WORK=yCONFIG_BUILDTIME_EXTABLE_SORT=y
#
# General setup
#CONFIG_INIT_ENV_ARG_LIMIT=32CONFIG_CROSS_COMPILE=""
# CONFIG_COMPILE_TEST is not setCONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not setCONFIG_HAVE_KERNEL_GZIP=yCONFIG_HAVE_KERNEL_LZMA=yCONFIG_HAVE_KERNEL_XZ=yCONFIG_HAVE_KERNEL_LZO=yCONFIG_HAVE_KERNEL_LZ4=yCONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not setCONFIG_DEFAULT_HOSTNAME="(none)"CONFIG_SWAP=yCONFIG_SYSVIPC=yCONFIG_SYSVIPC_SYSCTL=yCONFIG_POSIX_MQUEUE=yCONFIG_POSIX_MQUEUE_SYSCTL=yCONFIG_CROSS_MEMORY_ATTACH=yCONFIG_FHANDLE=yCONFIG_USELIB=yCONFIG_AUDIT=yCONFIG_HAVE_ARCH_AUDITSYSCALL=yCONFIG_AUDITSYSCALL=yCONFIG_AUDIT_WATCH=yCONFIG_AUDIT_TREE=y
#
# IRQ subsystem
#CONFIG_GENERIC_IRQ_PROBE=yCONFIG_GENERIC_IRQ_SHOW=yCONFIG_GENERIC_IRQ_SHOW_LEVEL=yCONFIG_HARDIRQS_SW_RESEND=yCONFIG_GENERIC_IRQ_CHIP=yCONFIG_IRQ_DOMAIN=yCONFIG_IRQ_DOMAIN_HIERARCHY=yCONFIG_HANDLE_DOMAIN_IRQ=y
# CONFIG_IRQ_DOMAIN_DEBUG is not setCONFIG_IRQ_FORCED_THREADING=yCONFIG_SPARSE_IRQ=yCONFIG_GENERIC_TIME_VSYSCALL=yCONFIG_GENERIC_CLOCKEVENTS=yCONFIG_ARCH_HAS_TICK_BROADCAST=yCONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
#
# Timers subsystem
#CONFIG_TICK_ONESHOT=yCONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not setCONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not setCONFIG_NO_HZ=yCONFIG_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 setCONFIG_BSD_PROCESS_ACCT=yCONFIG_BSD_PROCESS_ACCT_V3=yCONFIG_TASKSTATS=yCONFIG_TASK_DELAY_ACCT=yCONFIG_TASK_XACCT=yCONFIG_TASK_IO_ACCOUNTING=y
#
# RCU Subsystem
#CONFIG_TREE_RCU=yCONFIG_SRCU=y
# CONFIG_TASKS_RCU is not setCONFIG_RCU_STALL_COMMON=y
# CONFIG_RCU_USER_QS is not setCONFIG_RCU_FANOUT=32CONFIG_RCU_FANOUT_LEAF=16
# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_RCU_FAST_NO_HZ is not set
# CONFIG_TREE_RCU_TRACE is not setCONFIG_RCU_KTHREAD_PRIO=0
# CONFIG_RCU_NOCB_CPU is not set
# CONFIG_RCU_EXPEDITE_BOOT is not set
# CONFIG_BUILD_BIN2C is not set
# CONFIG_IKCONFIG is not setCONFIG_LOG_BUF_SHIFT=18CONFIG_LOG_CPU_MAX_BUF_SHIFT=12CONFIG_GENERIC_SCHED_CLOCK=yCONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not setCONFIG_CGROUP_FREEZER=yCONFIG_CGROUP_DEVICE=yCONFIG_CPUSETS=yCONFIG_PROC_PID_CPUSET=yCONFIG_CGROUP_CPUACCT=yCONFIG_PAGE_COUNTER=yCONFIG_MEMCG=yCONFIG_MEMCG_SWAP=yCONFIG_MEMCG_SWAP_ENABLED=yCONFIG_MEMCG_KMEM=yCONFIG_CGROUP_PERF=yCONFIG_CGROUP_SCHED=yCONFIG_FAIR_GROUP_SCHED=yCONFIG_CFS_BANDWIDTH=yCONFIG_RT_GROUP_SCHED=yCONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
# CONFIG_CHECKPOINT_RESTORE is not setCONFIG_NAMESPACES=yCONFIG_UTS_NS=yCONFIG_IPC_NS=y
# CONFIG_USER_NS is not setCONFIG_PID_NS=yCONFIG_NET_NS=yCONFIG_SCHED_AUTOGROUP=y
# CONFIG_SYSFS_DEPRECATED is not setCONFIG_RELAY=yCONFIG_BLK_DEV_INITRD=yCONFIG_INITRAMFS_SOURCE=""CONFIG_RD_GZIP=yCONFIG_RD_BZIP2=yCONFIG_RD_LZMA=yCONFIG_RD_XZ=yCONFIG_RD_LZO=yCONFIG_RD_LZ4=yCONFIG_CC_OPTIMIZE_FOR_SIZE=yCONFIG_SYSCTL=yCONFIG_ANON_INODES=yCONFIG_HAVE_UID16=yCONFIG_BPF=y
# CONFIG_EXPERT is not setCONFIG_UID16=yCONFIG_MULTIUSER=y
# CONFIG_SGETMASK_SYSCALL is not setCONFIG_SYSFS_SYSCALL=y
# CONFIG_SYSCTL_SYSCALL is not setCONFIG_KALLSYMS=yCONFIG_KALLSYMS_ALL=yCONFIG_PRINTK=yCONFIG_BUG=yCONFIG_ELF_CORE=yCONFIG_BASE_FULL=yCONFIG_FUTEX=yCONFIG_EPOLL=yCONFIG_SIGNALFD=yCONFIG_TIMERFD=yCONFIG_EVENTFD=y
# CONFIG_BPF_SYSCALL is not setCONFIG_SHMEM=yCONFIG_AIO=yCONFIG_ADVISE_SYSCALLS=yCONFIG_PCI_QUIRKS=y
# CONFIG_EMBEDDED is not setCONFIG_HAVE_PERF_EVENTS=yCONFIG_PERF_USE_VMALLOC=y
#
# Kernel Performance Events And Counters
#CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not setCONFIG_VM_EVENT_COUNTERS=yCONFIG_SLUB_DEBUG=y
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not setCONFIG_SLUB=yCONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_SYSTEM_TRUSTED_KEYRING is not setCONFIG_PROFILING=yCONFIG_TRACEPOINTS=yCONFIG_OPROFILE=mCONFIG_HAVE_OPROFILE=yCONFIG_KPROBES=yCONFIG_JUMP_LABEL=yCONFIG_OPTPROBES=y
# CONFIG_UPROBES is not set
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not setCONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=yCONFIG_ARCH_USE_BUILTIN_BSWAP=yCONFIG_KRETPROBES=yCONFIG_HAVE_KPROBES=yCONFIG_HAVE_KRETPROBES=yCONFIG_HAVE_OPTPROBES=yCONFIG_HAVE_ARCH_TRACEHOOK=yCONFIG_HAVE_DMA_ATTRS=yCONFIG_HAVE_DMA_CONTIGUOUS=yCONFIG_GENERIC_SMP_IDLE_THREAD=yCONFIG_GENERIC_IDLE_POLL_SETUP=yCONFIG_HAVE_REGS_AND_STACK_ACCESS_API=yCONFIG_HAVE_CLK=yCONFIG_HAVE_DMA_API_DEBUG=yCONFIG_HAVE_HW_BREAKPOINT=yCONFIG_HAVE_PERF_REGS=yCONFIG_HAVE_PERF_USER_STACK_DUMP=yCONFIG_HAVE_ARCH_JUMP_LABEL=yCONFIG_ARCH_WANT_IPC_PARSE_VERSION=yCONFIG_HAVE_ARCH_SECCOMP_FILTER=yCONFIG_SECCOMP_FILTER=yCONFIG_HAVE_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR is not setCONFIG_CC_STACKPROTECTOR_NONE=y
# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
# CONFIG_CC_STACKPROTECTOR_STRONG is not setCONFIG_HAVE_CONTEXT_TRACKING=yCONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=yCONFIG_HAVE_IRQ_TIME_ACCOUNTING=yCONFIG_HAVE_MOD_ARCH_SPECIFIC=yCONFIG_MODULES_USE_ELF_REL=yCONFIG_ARCH_HAS_ELF_RANDOMIZE=yCONFIG_CLONE_BACKWARDS=yCONFIG_OLD_SIGSUSPEND3=yCONFIG_OLD_SIGACTION=y
#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not setCONFIG_ARCH_HAS_GCOV_PROFILE_ALL=yCONFIG_HAVE_GENERIC_DMA_COHERENT=yCONFIG_SLABINFO=yCONFIG_RT_MUTEXES=yCONFIG_BASE_SMALL=0CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not setCONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not setCONFIG_STOP_MACHINE=yCONFIG_BLOCK=yCONFIG_LBDAF=yCONFIG_BLK_DEV_BSG=yCONFIG_BLK_DEV_BSGLIB=yCONFIG_BLK_DEV_INTEGRITY=yCONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_CMDLINE_PARSER is not set
#
# Partition Types
#CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not setCONFIG_AIX_PARTITION=yCONFIG_OSF_PARTITION=yCONFIG_AMIGA_PARTITION=y
# CONFIG_ATARI_PARTITION is not setCONFIG_MAC_PARTITION=yCONFIG_MSDOS_PARTITION=yCONFIG_BSD_DISKLABEL=yCONFIG_MINIX_SUBPARTITION=yCONFIG_SOLARIS_X86_PARTITION=yCONFIG_UNIXWARE_DISKLABEL=yCONFIG_LDM_PARTITION=y
# CONFIG_LDM_DEBUG is not setCONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not setCONFIG_SUN_PARTITION=yCONFIG_KARMA_PARTITION=yCONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not set
# CONFIG_CMDLINE_PARTITION is not set
#
# IO Schedulers
#CONFIG_IOSCHED_NOOP=yCONFIG_IOSCHED_DEADLINE=yCONFIG_IOSCHED_CFQ=yCONFIG_CFQ_GROUP_IOSCHED=y
# CONFIG_DEFAULT_DEADLINE is not setCONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not setCONFIG_DEFAULT_IOSCHED="cfq"CONFIG_PADATA=yCONFIG_INLINE_SPIN_UNLOCK_IRQ=yCONFIG_INLINE_READ_UNLOCK=yCONFIG_INLINE_READ_UNLOCK_IRQ=yCONFIG_INLINE_WRITE_UNLOCK=yCONFIG_INLINE_WRITE_UNLOCK_IRQ=yCONFIG_ARCH_SUPPORTS_ATOMIC_RMW=yCONFIG_MUTEX_SPIN_ON_OWNER=yCONFIG_RWSEM_SPIN_ON_OWNER=yCONFIG_LOCK_SPIN_ON_OWNER=yCONFIG_FREEZER=y
#
# System Type
#CONFIG_MMU=yCONFIG_ARCH_MULTIPLATFORM=y
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_VERSATILE is not set
# 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_MV78XX0 is not set
# CONFIG_ARCH_ORION5X is not set
# CONFIG_ARCH_MMP 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_SHMOBILE_LEGACY is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_S3C64XX 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 setCONFIG_ARCH_MULTI_V7=yCONFIG_ARCH_MULTI_V6_V7=y
# CONFIG_ARCH_MULTI_CPU_AUTO is not set
# CONFIG_ARCH_VIRT is not setCONFIG_ARCH_MVEBU=yCONFIG_MACH_MVEBU_ANY=yCONFIG_MACH_MVEBU_V7=yCONFIG_MACH_ARMADA_370=y
# CONFIG_MACH_ARMADA_375 is not set
# CONFIG_MACH_ARMADA_38X is not set
# CONFIG_MACH_ARMADA_39X is not setCONFIG_MACH_ARMADA_XP=y
# CONFIG_MACH_DOVE is not set
# CONFIG_ARCH_ALPINE is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_BCM is not set
# CONFIG_ARCH_BERLIN is not set
# CONFIG_ARCH_DIGICOLOR is not setCONFIG_ARCH_HIGHBANK=y
# CONFIG_ARCH_HISI is not set
# CONFIG_ARCH_KEYSTONE is not set
# CONFIG_ARCH_MESON is not setCONFIG_ARCH_MXC=yCONFIG_MXC_TZIC=yCONFIG_HAVE_IMX_ANATOP=yCONFIG_HAVE_IMX_GPC=yCONFIG_HAVE_IMX_MMDC=yCONFIG_HAVE_IMX_SRC=y
#
# Device tree only
#CONFIG_SOC_IMX5=yCONFIG_SOC_IMX50=yCONFIG_SOC_IMX51=yCONFIG_SOC_IMX53=yCONFIG_SOC_IMX6=yCONFIG_SOC_IMX6Q=yCONFIG_SOC_IMX6SL=yCONFIG_SOC_IMX6SX=y
# CONFIG_SOC_VF610 is not set
# CONFIG_SOC_LS1021A is not set
# CONFIG_ARCH_MEDIATEK is not setCONFIG_ARCH_OMAP=y
#
# TI OMAP Common Features
#
#
# OMAP Feature Selections
#CONFIG_POWER_AVS_OMAP=y CONFIG_POWER_AVS_OMAP_CLASS3=y CONFIG_OMAP_RESET_CLOCKS=yCONFIG_OMAP_MUX=y
# CONFIG_OMAP_MUX_DEBUG is not set CONFIG_OMAP_MUX_WARNINGS=y CONFIG_OMAP_32K_TIMER=y
# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set CONFIG_OMAP_DM_TIMER=yCONFIG_OMAP_PM_NOOP=y CONFIG_MACH_OMAP_GENERIC=y
#
# TI OMAP/AM/DM/DRA Family
#CONFIG_ARCH_OMAP3=yCONFIG_ARCH_OMAP4=yCONFIG_SOC_OMAP5=yCONFIG_SOC_AM33XX=yCONFIG_SOC_AM43XX=y
# CONFIG_SOC_DRA7XX is not setCONFIG_ARCH_OMAP2PLUS=y
#
# TI OMAP2/3/4 Specific Features
#CONFIG_ARCH_OMAP2PLUS_TYPICAL=yCONFIG_SOC_HAS_OMAP2_SDRC=yCONFIG_SOC_HAS_REALTIME_COUNTER=yCONFIG_SOC_OMAP3430=yCONFIG_SOC_TI81XX=yCONFIG_OMAP_PACKAGE_CBB=yCONFIG_OMAP_PACKAGE_CUS=y
#
# OMAP Legacy Platform Data Board Type
#CONFIG_MACH_OMAP3_BEAGLE=yCONFIG_MACH_OMAP_LDP=yCONFIG_MACH_OMAP3530_LV_SOM=yCONFIG_MACH_OMAP3_TORPEDO=yCONFIG_MACH_OVERO=yCONFIG_MACH_OMAP3517EVM=yCONFIG_MACH_OMAP3_PANDORA=y
# CONFIG_MACH_NOKIA_RX51 is not setCONFIG_MACH_CM_T35=yCONFIG_MACH_CM_T3730=y
# CONFIG_OMAP3_SDRC_AC_TIMING is not set
# CONFIG_ARCH_QCOM is not setCONFIG_ARCH_ROCKCHIP=yCONFIG_ARCH_SOCFPGA=y
# 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_SHMOBILE_MULTI is not setCONFIG_ARCH_SUNXI=yCONFIG_MACH_SUN4I=yCONFIG_MACH_SUN5I=yCONFIG_MACH_SUN6I=yCONFIG_MACH_SUN7I=yCONFIG_MACH_SUN8I=yCONFIG_MACH_SUN9I=y
# CONFIG_ARCH_SIRF is not setCONFIG_ARCH_TEGRA=y
CONFIG_ARCH_TEGRA_2x_SOC=y
CONFIG_ARCH_TEGRA_3x_SOC=y
# CONFIG_ARCH_TEGRA_114_SOC is not set
# CONFIG_ARCH_TEGRA_124_SOC is not set
# CONFIG_ARCH_U8500 is not setCONFIG_ARCH_VEXPRESS=yCONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
# CONFIG_ARCH_VEXPRESS_SPC is not set
# CONFIG_ARCH_WM8850 is not setCONFIG_ARCH_ZYNQ=yCONFIG_PLAT_ORION=yCONFIG_PLAT_VERSATILE=yCONFIG_ARM_TIMER_SP804=yCONFIG_ARCH_SUPPORTS_FIRMWARE=yCONFIG_ARCH_SUPPORTS_TRUSTED_FOUNDATIONS=y
#
# Firmware options
#
# CONFIG_TRUSTED_FOUNDATIONS is not set
#
# Processor Type
#CONFIG_CPU_PJ4B=yCONFIG_CPU_V7=y
CONFIG_CPU_32v6K=y
CONFIG_CPU_32v7=yCONFIG_CPU_ABRT_EV7=yCONFIG_CPU_PABRT_V7=yCONFIG_CPU_CACHE_V7=yCONFIG_CPU_CACHE_VIPT=yCONFIG_CPU_COPY_V6=yCONFIG_CPU_TLB_V7=yCONFIG_CPU_HAS_ASID=yCONFIG_CPU_CP15=yCONFIG_CPU_CP15_MMU=y
#
# Processor Features
#
# CONFIG_ARM_LPAE is not set
# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set CONFIG_ARM_THUMB=yCONFIG_ARM_THUMBEE=yCONFIG_ARM_VIRT_EXT=yCONFIG_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=yCONFIG_VDSO=yCONFIG_OUTER_CACHE=y CONFIG_OUTER_CACHE_SYNC=y CONFIG_CACHE_FEROCEON_L2=y
# CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set 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=y CONFIG_ARM_L1_CACHE_SHIFT_6=y CONFIG_ARM_L1_CACHE_SHIFT=6 CONFIG_ARM_DMA_MEM_BUFFERABLE=y CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
# CONFIG_ARM_KERNMEM_PERMS is not set
# CONFIG_IWMMXT is not set CONFIG_MULTI_IRQ_HANDLER=y CONFIG_PJ4B_ERRATA_4742=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=y CONFIG_ARM_ERRATA_764369=y CONFIG_ARM_ERRATA_775420=y CONFIG_ARM_ERRATA_798181=y CONFIG_ARM_ERRATA_773022=yCONFIG_ICST=yCONFIG_TI_PRIV_EDMA=y
#
# Bus support
#CONFIG_PCI=yCONFIG_PCI_DOMAINS=yCONFIG_PCI_DOMAINS_GENERIC=yCONFIG_PCI_SYSCALL=y
# CONFIG_PCI_MSI is not set
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not setCONFIG_PCI_STUB=yCONFIG_PCI_ATS=yCONFIG_PCI_IOV=yCONFIG_PCI_PRI=yCONFIG_PCI_PASID=y
#
# PCI host controller drivers
#CONFIG_PCI_MVEBU=y
# CONFIG_PCI_IMX6 is not set
# CONFIG_PCI_TEGRA is not set
# CONFIG_PCI_HOST_GENERIC is not set
# CONFIG_PCIE_XILINX is not set
# CONFIG_PCI_LAYERSCAPE is not set
# CONFIG_PCIE_IPROC is not set
# CONFIG_PCIEPORTBUS is not setCONFIG_PCCARD=yCONFIG_PCMCIA=yCONFIG_PCMCIA_LOAD_CIS=yCONFIG_CARDBUS=y
#
# PC-card bridges
#CONFIG_YENTA=mCONFIG_YENTA_O2=yCONFIG_YENTA_RICOH=yCONFIG_YENTA_TI=yCONFIG_YENTA_ENE_TUNE=yCONFIG_YENTA_TOSHIBA=yCONFIG_PD6729=mCONFIG_I82092=mCONFIG_PCCARD_NONSTATIC=y
#
# Kernel Features
#CONFIG_HAVE_SMP=yCONFIG_SMP=yCONFIG_SMP_ON_UP=yCONFIG_ARM_CPU_TOPOLOGY=yCONFIG_SCHED_MC=yCONFIG_SCHED_SMT=yCONFIG_HAVE_ARM_SCU=yCONFIG_HAVE_ARM_ARCH_TIMER=yCONFIG_HAVE_ARM_TWD=y
# CONFIG_MCPM is not set
# CONFIG_BIG_LITTLE is not setCONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not setCONFIG_PAGE_OFFSET=0xC0000000CONFIG_NR_CPUS=8CONFIG_HOTPLUG_CPU=yCONFIG_ARM_PSCI=yCONFIG_ARCH_NR_GPIO=1024
# CONFIG_PREEMPT_NONE is not setCONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not setCONFIG_HZ_FIXED=0CONFIG_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 setCONFIG_HZ=100CONFIG_SCHED_HRTICK=y
# CONFIG_THUMB2_KERNEL is not setCONFIG_AEABI=y
# CONFIG_OABI_COMPAT is not setCONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not setCONFIG_HAVE_ARCH_PFN_VALID=yCONFIG_HIGHMEM=yCONFIG_HIGHPTE=yCONFIG_HW_PERF_EVENTS=yCONFIG_ARCH_WANT_GENERAL_HUGETLB=yCONFIG_FLATMEM=yCONFIG_FLAT_NODE_MEM_MAP=yCONFIG_HAVE_MEMBLOCK=yCONFIG_NO_BOOTMEM=yCONFIG_MEMORY_ISOLATION=y
# CONFIG_HAVE_BOOTMEM_INFO_NODE is not setCONFIG_PAGEFLAGS_EXTENDED=yCONFIG_SPLIT_PTLOCK_CPUS=4CONFIG_MEMORY_BALLOON=yCONFIG_BALLOON_COMPACTION=yCONFIG_COMPACTION=yCONFIG_MIGRATION=y
# CONFIG_PHYS_ADDR_T_64BIT is not setCONFIG_ZONE_DMA_FLAG=1CONFIG_BOUNCE=yCONFIG_KSM=yCONFIG_DEFAULT_MMAP_MIN_ADDR=32768CONFIG_CLEANCACHE=yCONFIG_FRONTSWAP=yCONFIG_CMA=y
# CONFIG_CMA_DEBUG is not set
# CONFIG_CMA_DEBUGFS is not setCONFIG_CMA_AREAS=7CONFIG_ZSWAP=yCONFIG_ZPOOL=yCONFIG_ZBUD=y
# CONFIG_ZSMALLOC is not setCONFIG_FORCE_MAX_ZONEORDER=12CONFIG_ALIGNMENT_TRAP=yCONFIG_UACCESS_WITH_MEMCPY=yCONFIG_SECCOMP=yCONFIG_SWIOTLB=yCONFIG_IOMMU_HELPER=y
# CONFIG_XEN is not set
#
# Boot options
#CONFIG_USE_OF=yCONFIG_ATAGS=y
# CONFIG_DEPRECATED_PARAM_STRUCT is not set CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y # CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set CONFIG_CMDLINE=""CONFIG_KEXEC=yCONFIG_ATAGS_PROC=y
# CONFIG_CRASH_DUMP is not set CONFIG_AUTO_ZRELADDR=y
#
# CPU Power Management
#
#
# CPU Frequency scaling
#CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_STAT=m 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 is not setCONFIG_ARM_IMX6Q_CPUFREQ=m
# CONFIG_ARM_KIRKWOOD_CPUFREQ is not setCONFIG_ARM_OMAP2PLUS_CPUFREQ=yCONFIG_ARM_TEGRA_CPUFREQ=y
# CONFIG_QORIQ_CPUFREQ is not set
#
# CPU Idle
#
# CONFIG_CPU_IDLE is not setCONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED=y
#
# Floating point emulation
#
#
# At least one emulation must be selected
#CONFIG_VFP=y
CONFIG_VFPv3=yCONFIG_NEON=y
# CONFIG_KERNEL_MODE_NEON is not set
#
# Userspace binary formats
#CONFIG_BINFMT_ELF=yCONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=yCONFIG_BINFMT_SCRIPT=y
# CONFIG_HAVE_AOUT is not setCONFIG_BINFMT_MISC=mCONFIG_COREDUMP=y
#
# Power management options
#CONFIG_SUSPEND=yCONFIG_SUSPEND_FREEZER=y
# CONFIG_HIBERNATION is not setCONFIG_PM_SLEEP=yCONFIG_PM_SLEEP_SMP=y
# CONFIG_PM_AUTOSLEEP is not set
# CONFIG_PM_WAKELOCKS is not setCONFIG_PM=yCONFIG_PM_DEBUG=yCONFIG_PM_ADVANCED_DEBUG=y
# CONFIG_PM_TEST_SUSPEND is not setCONFIG_PM_SLEEP_DEBUG=y
# CONFIG_DPM_WATCHDOG is not set
# CONFIG_APM_EMULATION is not setCONFIG_PM_OPP=yCONFIG_PM_CLK=yCONFIG_PM_GENERIC_DOMAINS=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not setCONFIG_PM_GENERIC_DOMAINS_SLEEP=yCONFIG_PM_GENERIC_DOMAINS_OF=yCONFIG_CPU_PM=yCONFIG_ARCH_SUSPEND_POSSIBLE=yCONFIG_ARM_CPU_SUSPEND=yCONFIG_ARCH_HIBERNATION_POSSIBLE=yCONFIG_NET=y
#
# Networking options
#CONFIG_PACKET=yCONFIG_PACKET_DIAG=mCONFIG_UNIX=yCONFIG_UNIX_DIAG=mCONFIG_XFRM=yCONFIG_XFRM_ALGO=yCONFIG_XFRM_USER=yCONFIG_XFRM_SUB_POLICY=yCONFIG_XFRM_MIGRATE=yCONFIG_XFRM_STATISTICS=yCONFIG_XFRM_IPCOMP=mCONFIG_NET_KEY=mCONFIG_NET_KEY_MIGRATE=yCONFIG_INET=yCONFIG_IP_MULTICAST=yCONFIG_IP_ADVANCED_ROUTER=yCONFIG_IP_FIB_TRIE_STATS=yCONFIG_IP_MULTIPLE_TABLES=yCONFIG_IP_ROUTE_MULTIPATH=yCONFIG_IP_ROUTE_VERBOSE=yCONFIG_IP_ROUTE_CLASSID=yCONFIG_IP_PNP=yCONFIG_IP_PNP_DHCP=yCONFIG_IP_PNP_BOOTP=y
# CONFIG_IP_PNP_RARP is not setCONFIG_NET_IPIP=mCONFIG_NET_IPGRE_DEMUX=mCONFIG_NET_IP_TUNNEL=mCONFIG_NET_IPGRE=mCONFIG_NET_IPGRE_BROADCAST=yCONFIG_IP_MROUTE=yCONFIG_IP_MROUTE_MULTIPLE_TABLES=yCONFIG_IP_PIMSM_V1=yCONFIG_IP_PIMSM_V2=yCONFIG_SYN_COOKIES=yCONFIG_NET_IPVTI=mCONFIG_NET_UDP_TUNNEL=m
# CONFIG_NET_FOU is not set
# CONFIG_NET_FOU_IP_TUNNELS is not set
# CONFIG_GENEVE is not setCONFIG_INET_AH=mCONFIG_INET_ESP=mCONFIG_INET_IPCOMP=mCONFIG_INET_XFRM_TUNNEL=mCONFIG_INET_TUNNEL=mCONFIG_INET_XFRM_MODE_TRANSPORT=mCONFIG_INET_XFRM_MODE_TUNNEL=mCONFIG_INET_XFRM_MODE_BEET=mCONFIG_INET_LRO=yCONFIG_INET_DIAG=mCONFIG_INET_TCP_DIAG=mCONFIG_INET_UDP_DIAG=mCONFIG_TCP_CONG_ADVANCED=yCONFIG_TCP_CONG_BIC=mCONFIG_TCP_CONG_CUBIC=yCONFIG_TCP_CONG_WESTWOOD=mCONFIG_TCP_CONG_HTCP=mCONFIG_TCP_CONG_HSTCP=mCONFIG_TCP_CONG_HYBLA=mCONFIG_TCP_CONG_VEGAS=mCONFIG_TCP_CONG_SCALABLE=mCONFIG_TCP_CONG_LP=mCONFIG_TCP_CONG_VENO=mCONFIG_TCP_CONG_YEAH=mCONFIG_TCP_CONG_ILLINOIS=m
# CONFIG_TCP_CONG_DCTCP is not setCONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not setCONFIG_DEFAULT_TCP_CONG="cubic"CONFIG_TCP_MD5SIG=yCONFIG_IPV6=yCONFIG_IPV6_ROUTER_PREF=yCONFIG_IPV6_ROUTE_INFO=yCONFIG_IPV6_OPTIMISTIC_DAD=yCONFIG_INET6_AH=mCONFIG_INET6_ESP=mCONFIG_INET6_IPCOMP=mCONFIG_IPV6_MIP6=yCONFIG_INET6_XFRM_TUNNEL=mCONFIG_INET6_TUNNEL=mCONFIG_INET6_XFRM_MODE_TRANSPORT=mCONFIG_INET6_XFRM_MODE_TUNNEL=mCONFIG_INET6_XFRM_MODE_BEET=mCONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
# CONFIG_IPV6_VTI is not setCONFIG_IPV6_SIT=mCONFIG_IPV6_SIT_6RD=yCONFIG_IPV6_NDISC_NODETYPE=yCONFIG_IPV6_TUNNEL=m
# CONFIG_IPV6_GRE is not setCONFIG_IPV6_MULTIPLE_TABLES=yCONFIG_IPV6_SUBTREES=yCONFIG_IPV6_MROUTE=yCONFIG_IPV6_MROUTE_MULTIPLE_TABLES=yCONFIG_IPV6_PIMSM_V2=yCONFIG_NETLABEL=yCONFIG_NETWORK_SECMARK=yCONFIG_NET_PTP_CLASSIFY=yCONFIG_NETWORK_PHY_TIMESTAMPING=yCONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not setCONFIG_NETFILTER_ADVANCED=yCONFIG_BRIDGE_NETFILTER=m
#
# Core Netfilter Configuration
#CONFIG_NETFILTER_NETLINK=mCONFIG_NETFILTER_NETLINK_ACCT=mCONFIG_NETFILTER_NETLINK_QUEUE=mCONFIG_NETFILTER_NETLINK_LOG=mCONFIG_NF_CONNTRACK=mCONFIG_NF_LOG_COMMON=mCONFIG_NF_CONNTRACK_MARK=yCONFIG_NF_CONNTRACK_SECMARK=yCONFIG_NF_CONNTRACK_ZONES=yCONFIG_NF_CONNTRACK_PROCFS=yCONFIG_NF_CONNTRACK_EVENTS=y
# CONFIG_NF_CONNTRACK_TIMEOUT is not setCONFIG_NF_CONNTRACK_TIMESTAMP=yCONFIG_NF_CONNTRACK_LABELS=yCONFIG_NF_CT_PROTO_DCCP=mCONFIG_NF_CT_PROTO_GRE=mCONFIG_NF_CT_PROTO_SCTP=mCONFIG_NF_CT_PROTO_UDPLITE=mCONFIG_NF_CONNTRACK_AMANDA=mCONFIG_NF_CONNTRACK_FTP=mCONFIG_NF_CONNTRACK_H323=mCONFIG_NF_CONNTRACK_IRC=mCONFIG_NF_CONNTRACK_BROADCAST=mCONFIG_NF_CONNTRACK_NETBIOS_NS=mCONFIG_NF_CONNTRACK_SNMP=mCONFIG_NF_CONNTRACK_PPTP=mCONFIG_NF_CONNTRACK_SANE=mCONFIG_NF_CONNTRACK_SIP=mCONFIG_NF_CONNTRACK_TFTP=mCONFIG_NF_CT_NETLINK=m
# CONFIG_NF_CT_NETLINK_TIMEOUT is not setCONFIG_NF_CT_NETLINK_HELPER=mCONFIG_NETFILTER_NETLINK_QUEUE_CT=yCONFIG_NF_NAT=mCONFIG_NF_NAT_NEEDED=yCONFIG_NF_NAT_PROTO_DCCP=mCONFIG_NF_NAT_PROTO_UDPLITE=mCONFIG_NF_NAT_PROTO_SCTP=mCONFIG_NF_NAT_AMANDA=mCONFIG_NF_NAT_FTP=mCONFIG_NF_NAT_IRC=mCONFIG_NF_NAT_SIP=mCONFIG_NF_NAT_TFTP=mCONFIG_NF_NAT_REDIRECT=m
# CONFIG_NF_TABLES is not setCONFIG_NETFILTER_XTABLES=y
#
# Xtables combined modules
#CONFIG_NETFILTER_XT_MARK=mCONFIG_NETFILTER_XT_CONNMARK=mCONFIG_NETFILTER_XT_SET=m
#
# Xtables targets
#CONFIG_NETFILTER_XT_TARGET_AUDIT=mCONFIG_NETFILTER_XT_TARGET_CHECKSUM=mCONFIG_NETFILTER_XT_TARGET_CLASSIFY=mCONFIG_NETFILTER_XT_TARGET_CONNMARK=mCONFIG_NETFILTER_XT_TARGET_CONNSECMARK=mCONFIG_NETFILTER_XT_TARGET_CT=mCONFIG_NETFILTER_XT_TARGET_DSCP=mCONFIG_NETFILTER_XT_TARGET_HL=mCONFIG_NETFILTER_XT_TARGET_HMARK=mCONFIG_NETFILTER_XT_TARGET_IDLETIMER=mCONFIG_NETFILTER_XT_TARGET_LED=mCONFIG_NETFILTER_XT_TARGET_LOG=mCONFIG_NETFILTER_XT_TARGET_MARK=m
# CONFIG_NETFILTER_XT_NAT is not setCONFIG_NETFILTER_XT_TARGET_NETMAP=mCONFIG_NETFILTER_XT_TARGET_NFLOG=mCONFIG_NETFILTER_XT_TARGET_NFQUEUE=mCONFIG_NETFILTER_XT_TARGET_NOTRACK=mCONFIG_NETFILTER_XT_TARGET_RATEEST=mCONFIG_NETFILTER_XT_TARGET_REDIRECT=mCONFIG_NETFILTER_XT_TARGET_TEE=mCONFIG_NETFILTER_XT_TARGET_TPROXY=mCONFIG_NETFILTER_XT_TARGET_TRACE=mCONFIG_NETFILTER_XT_TARGET_SECMARK=mCONFIG_NETFILTER_XT_TARGET_TCPMSS=mCONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
#
# Xtables matches
#CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=mCONFIG_NETFILTER_XT_MATCH_BPF=m
# CONFIG_NETFILTER_XT_MATCH_CGROUP is not setCONFIG_NETFILTER_XT_MATCH_CLUSTER=mCONFIG_NETFILTER_XT_MATCH_COMMENT=mCONFIG_NETFILTER_XT_MATCH_CONNBYTES=mCONFIG_NETFILTER_XT_MATCH_CONNLABEL=mCONFIG_NETFILTER_XT_MATCH_CONNLIMIT=mCONFIG_NETFILTER_XT_MATCH_CONNMARK=mCONFIG_NETFILTER_XT_MATCH_CONNTRACK=mCONFIG_NETFILTER_XT_MATCH_CPU=mCONFIG_NETFILTER_XT_MATCH_DCCP=mCONFIG_NETFILTER_XT_MATCH_DEVGROUP=mCONFIG_NETFILTER_XT_MATCH_DSCP=mCONFIG_NETFILTER_XT_MATCH_ECN=mCONFIG_NETFILTER_XT_MATCH_ESP=mCONFIG_NETFILTER_XT_MATCH_HASHLIMIT=mCONFIG_NETFILTER_XT_MATCH_HELPER=mCONFIG_NETFILTER_XT_MATCH_HL=m
# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not setCONFIG_NETFILTER_XT_MATCH_IPRANGE=mCONFIG_NETFILTER_XT_MATCH_IPVS=mCONFIG_NETFILTER_XT_MATCH_L2TP=mCONFIG_NETFILTER_XT_MATCH_LENGTH=mCONFIG_NETFILTER_XT_MATCH_LIMIT=mCONFIG_NETFILTER_XT_MATCH_MAC=mCONFIG_NETFILTER_XT_MATCH_MARK=mCONFIG_NETFILTER_XT_MATCH_MULTIPORT=mCONFIG_NETFILTER_XT_MATCH_NFACCT=mCONFIG_NETFILTER_XT_MATCH_OSF=mCONFIG_NETFILTER_XT_MATCH_OWNER=mCONFIG_NETFILTER_XT_MATCH_POLICY=mCONFIG_NETFILTER_XT_MATCH_PHYSDEV=mCONFIG_NETFILTER_XT_MATCH_PKTTYPE=mCONFIG_NETFILTER_XT_MATCH_QUOTA=mCONFIG_NETFILTER_XT_MATCH_RATEEST=mCONFIG_NETFILTER_XT_MATCH_REALM=mCONFIG_NETFILTER_XT_MATCH_RECENT=mCONFIG_NETFILTER_XT_MATCH_SCTP=mCONFIG_NETFILTER_XT_MATCH_SOCKET=mCONFIG_NETFILTER_XT_MATCH_STATE=mCONFIG_NETFILTER_XT_MATCH_STATISTIC=mCONFIG_NETFILTER_XT_MATCH_STRING=mCONFIG_NETFILTER_XT_MATCH_TCPMSS=mCONFIG_NETFILTER_XT_MATCH_TIME=mCONFIG_NETFILTER_XT_MATCH_U32=mCONFIG_IP_SET=mCONFIG_IP_SET_MAX=256CONFIG_IP_SET_BITMAP_IP=mCONFIG_IP_SET_BITMAP_IPMAC=mCONFIG_IP_SET_BITMAP_PORT=mCONFIG_IP_SET_HASH_IP=m
# CONFIG_IP_SET_HASH_IPMARK is not setCONFIG_IP_SET_HASH_IPPORT=mCONFIG_IP_SET_HASH_IPPORTIP=mCONFIG_IP_SET_HASH_IPPORTNET=m
# CONFIG_IP_SET_HASH_MAC is not set
# CONFIG_IP_SET_HASH_NETPORTNET is not setCONFIG_IP_SET_HASH_NET=m
# CONFIG_IP_SET_HASH_NETNET is not setCONFIG_IP_SET_HASH_NETPORT=mCONFIG_IP_SET_HASH_NETIFACE=mCONFIG_IP_SET_LIST_SET=mCONFIG_IP_VS=mCONFIG_IP_VS_IPV6=y
# CONFIG_IP_VS_DEBUG is not setCONFIG_IP_VS_TAB_BITS=12
#
# IPVS transport protocol load balancing support
#CONFIG_IP_VS_PROTO_TCP=yCONFIG_IP_VS_PROTO_UDP=yCONFIG_IP_VS_PROTO_AH_ESP=yCONFIG_IP_VS_PROTO_ESP=yCONFIG_IP_VS_PROTO_AH=yCONFIG_IP_VS_PROTO_SCTP=y
#
# IPVS scheduler
#CONFIG_IP_VS_RR=mCONFIG_IP_VS_WRR=mCONFIG_IP_VS_LC=mCONFIG_IP_VS_WLC=m
# CONFIG_IP_VS_FO is not setCONFIG_IP_VS_LBLC=mCONFIG_IP_VS_LBLCR=mCONFIG_IP_VS_DH=mCONFIG_IP_VS_SH=mCONFIG_IP_VS_SED=mCONFIG_IP_VS_NQ=m
#
# IPVS SH scheduler
#CONFIG_IP_VS_SH_TAB_BITS=8
#
# IPVS application helper
#CONFIG_IP_VS_FTP=mCONFIG_IP_VS_NFCT=yCONFIG_IP_VS_PE_SIP=m
#
# IP: Netfilter Configuration
#CONFIG_NF_DEFRAG_IPV4=mCONFIG_NF_CONNTRACK_IPV4=m
# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
# CONFIG_NF_LOG_ARP is not setCONFIG_NF_LOG_IPV4=mCONFIG_NF_REJECT_IPV4=yCONFIG_NF_NAT_IPV4=m
# CONFIG_NF_NAT_MASQUERADE_IPV4 is not setCONFIG_NF_NAT_SNMP_BASIC=mCONFIG_NF_NAT_PROTO_GRE=mCONFIG_NF_NAT_PPTP=mCONFIG_NF_NAT_H323=mCONFIG_IP_NF_IPTABLES=yCONFIG_IP_NF_MATCH_AH=mCONFIG_IP_NF_MATCH_ECN=mCONFIG_IP_NF_MATCH_RPFILTER=mCONFIG_IP_NF_MATCH_TTL=mCONFIG_IP_NF_FILTER=yCONFIG_IP_NF_TARGET_REJECT=y
# CONFIG_IP_NF_TARGET_SYNPROXY is not set
# CONFIG_IP_NF_NAT is not setCONFIG_IP_NF_MANGLE=mCONFIG_IP_NF_TARGET_CLUSTERIP=mCONFIG_IP_NF_TARGET_ECN=mCONFIG_IP_NF_TARGET_TTL=mCONFIG_IP_NF_RAW=mCONFIG_IP_NF_SECURITY=mCONFIG_IP_NF_ARPTABLES=mCONFIG_IP_NF_ARPFILTER=mCONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration
#CONFIG_NF_DEFRAG_IPV6=mCONFIG_NF_CONNTRACK_IPV6=mCONFIG_NF_REJECT_IPV6=mCONFIG_NF_LOG_IPV6=mCONFIG_NF_NAT_IPV6=m
# CONFIG_NF_NAT_MASQUERADE_IPV6 is not setCONFIG_IP6_NF_IPTABLES=mCONFIG_IP6_NF_MATCH_AH=mCONFIG_IP6_NF_MATCH_EUI64=mCONFIG_IP6_NF_MATCH_FRAG=mCONFIG_IP6_NF_MATCH_OPTS=mCONFIG_IP6_NF_MATCH_HL=mCONFIG_IP6_NF_MATCH_IPV6HEADER=mCONFIG_IP6_NF_MATCH_MH=mCONFIG_IP6_NF_MATCH_RPFILTER=mCONFIG_IP6_NF_MATCH_RT=mCONFIG_IP6_NF_TARGET_HL=mCONFIG_IP6_NF_FILTER=mCONFIG_IP6_NF_TARGET_REJECT=m
# CONFIG_IP6_NF_TARGET_SYNPROXY is not setCONFIG_IP6_NF_MANGLE=mCONFIG_IP6_NF_RAW=mCONFIG_IP6_NF_SECURITY=m
# CONFIG_IP6_NF_NAT is not setCONFIG_BRIDGE_NF_EBTABLES=mCONFIG_BRIDGE_EBT_BROUTE=mCONFIG_BRIDGE_EBT_T_FILTER=mCONFIG_BRIDGE_EBT_T_NAT=mCONFIG_BRIDGE_EBT_802_3=mCONFIG_BRIDGE_EBT_AMONG=mCONFIG_BRIDGE_EBT_ARP=mCONFIG_BRIDGE_EBT_IP=mCONFIG_BRIDGE_EBT_IP6=mCONFIG_BRIDGE_EBT_LIMIT=mCONFIG_BRIDGE_EBT_MARK=mCONFIG_BRIDGE_EBT_PKTTYPE=mCONFIG_BRIDGE_EBT_STP=mCONFIG_BRIDGE_EBT_VLAN=mCONFIG_BRIDGE_EBT_ARPREPLY=mCONFIG_BRIDGE_EBT_DNAT=mCONFIG_BRIDGE_EBT_MARK_T=mCONFIG_BRIDGE_EBT_REDIRECT=mCONFIG_BRIDGE_EBT_SNAT=mCONFIG_BRIDGE_EBT_LOG=mCONFIG_BRIDGE_EBT_NFLOG=mCONFIG_IP_DCCP=mCONFIG_INET_DCCP_DIAG=m
#
# DCCP CCIDs Configuration
#
# CONFIG_IP_DCCP_CCID2_DEBUG is not setCONFIG_IP_DCCP_CCID3=y
# CONFIG_IP_DCCP_CCID3_DEBUG is not setCONFIG_IP_DCCP_TFRC_LIB=y
#
# DCCP Kernel Hacking
#
# CONFIG_IP_DCCP_DEBUG is not set
# CONFIG_NET_DCCPPROBE is not setCONFIG_IP_SCTP=mCONFIG_NET_SCTPPROBE=m
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not setCONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not setCONFIG_SCTP_COOKIE_HMAC_MD5=yCONFIG_SCTP_COOKIE_HMAC_SHA1=yCONFIG_RDS=mCONFIG_RDS_TCP=m
# CONFIG_RDS_DEBUG is not setCONFIG_TIPC=mCONFIG_TIPC_MEDIA_UDP=yCONFIG_ATM=mCONFIG_ATM_CLIP=m
# CONFIG_ATM_CLIP_NO_ICMP is not setCONFIG_ATM_LANE=m
# CONFIG_ATM_MPOA is not setCONFIG_ATM_BR2684=m
# CONFIG_ATM_BR2684_IPFILTER is not setCONFIG_L2TP=mCONFIG_L2TP_DEBUGFS=mCONFIG_L2TP_V3=yCONFIG_L2TP_IP=mCONFIG_L2TP_ETH=mCONFIG_STP=mCONFIG_GARP=mCONFIG_MRP=mCONFIG_BRIDGE=mCONFIG_BRIDGE_IGMP_SNOOPING=yCONFIG_BRIDGE_VLAN_FILTERING=yCONFIG_HAVE_NET_DSA=yCONFIG_VLAN_8021Q=mCONFIG_VLAN_8021Q_GVRP=yCONFIG_VLAN_8021Q_MVRP=y
# CONFIG_DECNET is not setCONFIG_LLC=m
# CONFIG_LLC2 is not setCONFIG_IPX=m
# CONFIG_IPX_INTERN is not setCONFIG_ATALK=mCONFIG_DEV_APPLETALK=mCONFIG_IPDDP=mCONFIG_IPDDP_ENCAP=y
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_PHONET is not set
# CONFIG_6LOWPAN is not setCONFIG_IEEE802154=mCONFIG_IEEE802154_SOCKET=mCONFIG_MAC802154=mCONFIG_NET_SCHED=y
#
# Queueing/Scheduling
#CONFIG_NET_SCH_CBQ=mCONFIG_NET_SCH_HTB=mCONFIG_NET_SCH_HFSC=mCONFIG_NET_SCH_ATM=mCONFIG_NET_SCH_PRIO=mCONFIG_NET_SCH_MULTIQ=mCONFIG_NET_SCH_RED=mCONFIG_NET_SCH_SFB=mCONFIG_NET_SCH_SFQ=mCONFIG_NET_SCH_TEQL=mCONFIG_NET_SCH_TBF=mCONFIG_NET_SCH_GRED=mCONFIG_NET_SCH_DSMARK=mCONFIG_NET_SCH_NETEM=mCONFIG_NET_SCH_DRR=mCONFIG_NET_SCH_MQPRIO=mCONFIG_NET_SCH_CHOKE=mCONFIG_NET_SCH_QFQ=mCONFIG_NET_SCH_CODEL=mCONFIG_NET_SCH_FQ_CODEL=m
# CONFIG_NET_SCH_FQ is not set
# CONFIG_NET_SCH_HHF is not set
# CONFIG_NET_SCH_PIE is not setCONFIG_NET_SCH_INGRESS=mCONFIG_NET_SCH_PLUG=m
#
# Classification
#CONFIG_NET_CLS=yCONFIG_NET_CLS_BASIC=mCONFIG_NET_CLS_TCINDEX=mCONFIG_NET_CLS_ROUTE4=mCONFIG_NET_CLS_FW=mCONFIG_NET_CLS_U32=mCONFIG_CLS_U32_PERF=yCONFIG_CLS_U32_MARK=yCONFIG_NET_CLS_RSVP=mCONFIG_NET_CLS_RSVP6=mCONFIG_NET_CLS_FLOW=mCONFIG_NET_CLS_CGROUP=y
# CONFIG_NET_CLS_BPF is not setCONFIG_NET_EMATCH=yCONFIG_NET_EMATCH_STACK=32CONFIG_NET_EMATCH_CMP=mCONFIG_NET_EMATCH_NBYTE=mCONFIG_NET_EMATCH_U32=mCONFIG_NET_EMATCH_META=mCONFIG_NET_EMATCH_TEXT=mCONFIG_NET_EMATCH_IPSET=mCONFIG_NET_CLS_ACT=yCONFIG_NET_ACT_POLICE=mCONFIG_NET_ACT_GACT=mCONFIG_GACT_PROB=yCONFIG_NET_ACT_MIRRED=mCONFIG_NET_ACT_IPT=mCONFIG_NET_ACT_NAT=mCONFIG_NET_ACT_PEDIT=mCONFIG_NET_ACT_SIMP=mCONFIG_NET_ACT_SKBEDIT=mCONFIG_NET_ACT_CSUM=m
# CONFIG_NET_ACT_VLAN is not set
# CONFIG_NET_ACT_BPF is not set
# CONFIG_NET_ACT_CONNMARK is not setCONFIG_NET_CLS_IND=yCONFIG_NET_SCH_FIFO=yCONFIG_DCB=yCONFIG_DNS_RESOLVER=yCONFIG_BATMAN_ADV=mCONFIG_BATMAN_ADV_BLA=yCONFIG_BATMAN_ADV_DAT=yCONFIG_BATMAN_ADV_NC=y
# CONFIG_BATMAN_ADV_MCAST is not set
# CONFIG_BATMAN_ADV_DEBUG is not setCONFIG_OPENVSWITCH=mCONFIG_OPENVSWITCH_GRE=m
# CONFIG_OPENVSWITCH_VXLAN is not setCONFIG_VSOCKETS=mCONFIG_NETLINK_MMAP=yCONFIG_NETLINK_DIAG=mCONFIG_MPLS=yCONFIG_NET_MPLS_GSO=m
# CONFIG_MPLS_ROUTING is not set
# CONFIG_HSR is not set
# CONFIG_NET_SWITCHDEV is not setCONFIG_RPS=yCONFIG_RFS_ACCEL=yCONFIG_XPS=y
# CONFIG_CGROUP_NET_PRIO is not setCONFIG_CGROUP_NET_CLASSID=yCONFIG_NET_RX_BUSY_POLL=yCONFIG_BQL=yCONFIG_BPF_JIT=yCONFIG_NET_FLOW_LIMIT=y
#
# Network testing
#CONFIG_NET_PKTGEN=m
# CONFIG_NET_TCPPROBE is not setCONFIG_NET_DROP_MONITOR=yCONFIG_HAMRADIO=y
#
# Packet Radio protocols
#CONFIG_AX25=mCONFIG_AX25_DAMA_SLAVE=yCONFIG_NETROM=mCONFIG_ROSE=m
#
# AX.25 network device drivers
#CONFIG_MKISS=mCONFIG_6PACK=mCONFIG_BPQETHER=mCONFIG_BAYCOM_SER_FDX=mCONFIG_BAYCOM_SER_HDX=mCONFIG_BAYCOM_PAR=mCONFIG_BAYCOM_EPP=mCONFIG_YAM=m
# CONFIG_CAN is not setCONFIG_IRDA=m
#
# IrDA protocols
#CONFIG_IRLAN=mCONFIG_IRNET=mCONFIG_IRCOMM=m
# CONFIG_IRDA_ULTRA is not set
#
# IrDA options
#CONFIG_IRDA_CACHE_LAST_LSAP=yCONFIG_IRDA_FAST_RR=y
# CONFIG_IRDA_DEBUG is not set
#
# Infrared-port device drivers
#
#
# SIR device drivers
#CONFIG_IRTTY_SIR=m
#
# Dongle support
#CONFIG_DONGLE=yCONFIG_ESI_DONGLE=mCONFIG_ACTISYS_DONGLE=mCONFIG_TEKRAM_DONGLE=mCONFIG_TOIM3232_DONGLE=mCONFIG_LITELINK_DONGLE=mCONFIG_MA600_DONGLE=mCONFIG_GIRBIL_DONGLE=mCONFIG_MCP2120_DONGLE=mCONFIG_OLD_BELKIN_DONGLE=mCONFIG_ACT200L_DONGLE=mCONFIG_KINGSUN_DONGLE=mCONFIG_KSDAZZLE_DONGLE=mCONFIG_KS959_DONGLE=m
#
# FIR device drivers
#CONFIG_USB_IRDA=mCONFIG_SIGMATEL_FIR=mCONFIG_VLSI_FIR=mCONFIG_MCS_FIR=mCONFIG_BT=mCONFIG_BT_BREDR=yCONFIG_BT_RFCOMM=mCONFIG_BT_RFCOMM_TTY=yCONFIG_BT_BNEP=mCONFIG_BT_BNEP_MC_FILTER=yCONFIG_BT_BNEP_PROTO_FILTER=yCONFIG_BT_HIDP=mCONFIG_BT_LE=y
# CONFIG_BT_SELFTEST is not setCONFIG_BT_DEBUGFS=y
#
# Bluetooth device drivers
#CONFIG_BT_INTEL=mCONFIG_BT_BCM=mCONFIG_BT_HCIBTUSB=mCONFIG_BT_HCIBTUSB_BCM=yCONFIG_BT_HCIBTSDIO=mCONFIG_BT_HCIUART=mCONFIG_BT_HCIUART_H4=yCONFIG_BT_HCIUART_BCSP=yCONFIG_BT_HCIUART_ATH3K=yCONFIG_BT_HCIUART_LL=yCONFIG_BT_HCIUART_3WIRE=y
# CONFIG_BT_HCIUART_INTEL is not setCONFIG_BT_HCIUART_BCM=yCONFIG_BT_HCIBCM203X=mCONFIG_BT_HCIBPA10X=mCONFIG_BT_HCIBFUSB=mCONFIG_BT_HCIDTL1=mCONFIG_BT_HCIBT3C=mCONFIG_BT_HCIBLUECARD=mCONFIG_BT_HCIBTUART=mCONFIG_BT_HCIVHCI=mCONFIG_BT_MRVL=mCONFIG_BT_MRVL_SDIO=mCONFIG_BT_ATH3K=mCONFIG_BT_WILINK=m
# CONFIG_AF_RXRPC is not setCONFIG_FIB_RULES=yCONFIG_WIRELESS=yCONFIG_WIRELESS_EXT=yCONFIG_WEXT_CORE=yCONFIG_WEXT_PROC=yCONFIG_WEXT_SPY=yCONFIG_WEXT_PRIV=yCONFIG_CFG80211=y
# CONFIG_NL80211_TESTMODE is not set
# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
# CONFIG_CFG80211_REG_DEBUG is not setCONFIG_CFG80211_DEFAULT_PS=yCONFIG_CFG80211_DEBUGFS=y
# CONFIG_CFG80211_INTERNAL_REGDB is not setCONFIG_CFG80211_WEXT=yCONFIG_LIB80211=m
# CONFIG_LIB80211_DEBUG is not setCONFIG_MAC80211=mCONFIG_MAC80211_HAS_RC=yCONFIG_MAC80211_RC_MINSTREL=yCONFIG_MAC80211_RC_MINSTREL_HT=y
# CONFIG_MAC80211_RC_MINSTREL_VHT is not setCONFIG_MAC80211_RC_DEFAULT_MINSTREL=yCONFIG_MAC80211_RC_DEFAULT="minstrel_ht"CONFIG_MAC80211_MESH=yCONFIG_MAC80211_LEDS=yCONFIG_MAC80211_DEBUGFS=y
# CONFIG_MAC80211_MESSAGE_TRACING is not set
# CONFIG_MAC80211_DEBUG_MENU is not set
# CONFIG_WIMAX is not setCONFIG_RFKILL=yCONFIG_RFKILL_LEDS=yCONFIG_RFKILL_INPUT=yCONFIG_RFKILL_REGULATOR=mCONFIG_RFKILL_GPIO=mCONFIG_NET_9P=mCONFIG_NET_9P_VIRTIO=m
# CONFIG_NET_9P_DEBUG is not set
# CONFIG_CAIF is not setCONFIG_CEPH_LIB=m
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not setCONFIG_NFC=m
# CONFIG_NFC_DIGITAL is not setCONFIG_NFC_NCI=mCONFIG_NFC_NCI_SPI=yCONFIG_NFC_HCI=mCONFIG_NFC_SHDLC=y
#
# Near Field Communication (NFC) devices
#CONFIG_NFC_PN533=mCONFIG_NFC_WILINK=mCONFIG_NFC_SIM=mCONFIG_NFC_PN544=mCONFIG_NFC_PN544_I2C=mCONFIG_NFC_MICROREAD=mCONFIG_NFC_MICROREAD_I2C=m
# CONFIG_NFC_MRVL is not set
# CONFIG_NFC_ST21NFCA is not set
# CONFIG_NFC_ST21NFCB is not set
# CONFIG_NFC_NXP_NCI is not setCONFIG_HAVE_BPF_JIT=y
#
# Device Drivers
#CONFIG_ARM_AMBA=yCONFIG_TEGRA_AHB=y
#
# Generic Driver Options
#CONFIG_UEVENT_HELPER=y CONFIG_UEVENT_HELPER_PATH="" CONFIG_DEVTMPFS=yCONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE=""
# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set CONFIG_WANT_DEV_COREDUMP=y CONFIG_ALLOW_DEV_COREDUMP=y CONFIG_DEV_COREDUMP=y
# CONFIG_DEBUG_DRIVER is not set CONFIG_DEBUG_DEVRES=y
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_SOC_BUS=yCONFIG_REGMAP=yCONFIG_REGMAP_I2C=yCONFIG_REGMAP_SPI=yCONFIG_REGMAP_MMIO=yCONFIG_REGMAP_IRQ=y CONFIG_DMA_SHARED_BUFFER=y
# CONFIG_FENCE_TRACE is not set
# CONFIG_DMA_CMA is not set
#
# Bus devices
#CONFIG_ARM_CCI=yCONFIG_ARM_CCI400_COMMON=yCONFIG_ARM_CCI400_PMU=y
# CONFIG_ARM_CCN is not set
# CONFIG_BRCMSTB_GISB_ARB is not setCONFIG_IMX_WEIM=yCONFIG_MVEBU_MBUS=yCONFIG_OMAP_INTERCONNECT=yCONFIG_OMAP_OCP2SCP=mCONFIG_VEXPRESS_CONFIG=yCONFIG_CONNECTOR=yCONFIG_PROC_EVENTS=yCONFIG_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 setCONFIG_MTD_OF_PARTS=y
# CONFIG_MTD_AR7_PARTS is not set
#
# User Modules And Translation Layers
#CONFIG_MTD_BLKDEVS=mCONFIG_MTD_BLOCK=m
# CONFIG_MTD_BLOCK_RO is not set
# 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=m
# CONFIG_MTD_JEDECPROBE is not setCONFIG_MTD_GEN_PROBE=m
# CONFIG_MTD_CFI_ADV_OPTIONS is not setCONFIG_MTD_MAP_BANK_WIDTH_1=yCONFIG_MTD_MAP_BANK_WIDTH_2=yCONFIG_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 setCONFIG_MTD_CFI_I1=yCONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not setCONFIG_MTD_CFI_INTELEXT=mCONFIG_MTD_CFI_AMDSTD=mCONFIG_MTD_CFI_STAA=mCONFIG_MTD_CFI_UTIL=m
# 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 setCONFIG_MTD_PHYSMAP=m
# CONFIG_MTD_PHYSMAP_COMPAT is not setCONFIG_MTD_PHYSMAP_OF=m
# CONFIG_MTD_INTEL_VR_NOR is not set
# CONFIG_MTD_PLATRAM is not set
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_PMC551 is not setCONFIG_MTD_DATAFLASH=mCONFIG_MTD_DATAFLASH_WRITE_VERIFY=yCONFIG_MTD_DATAFLASH_OTP=yCONFIG_MTD_SST25L=m
# 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 setCONFIG_MTD_NAND_ECC=y
# CONFIG_MTD_NAND_ECC_SMC is not setCONFIG_MTD_NAND=yCONFIG_MTD_OF_NAND_PARTS=y
# CONFIG_MTD_NAND_ECC_BCH is not set
# CONFIG_MTD_SM_COMMON is not set
# CONFIG_MTD_NAND_DENALI is not set
# CONFIG_MTD_NAND_GPIO is not set
# CONFIG_MTD_NAND_OMAP2 is not set
# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not setCONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_RICOH is not set
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_DOCG4 is not set
# CONFIG_MTD_NAND_CAFE is not set
# CONFIG_MTD_NAND_PXA3xx is not set
# CONFIG_MTD_NAND_TMIO is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_NAND_ORION is not set
# CONFIG_MTD_NAND_MXC is not setCONFIG_MTD_NAND_SUNXI=y
# 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 setCONFIG_MTD_UBI=yCONFIG_MTD_UBI_WL_THRESHOLD=4096CONFIG_MTD_UBI_BEB_LIMIT=20
# CONFIG_MTD_UBI_FASTMAP is not set
# CONFIG_MTD_UBI_GLUEBI is not set
# CONFIG_MTD_UBI_BLOCK is not setCONFIG_DTC=yCONFIG_OF=y
#
# Device Tree and Open Firmware support
#
# CONFIG_OF_UNITTEST is not setCONFIG_OF_FLATTREE=yCONFIG_OF_EARLY_FLATTREE=yCONFIG_OF_DYNAMIC=yCONFIG_OF_ADDRESS=yCONFIG_OF_ADDRESS_PCI=yCONFIG_OF_IRQ=yCONFIG_OF_NET=yCONFIG_OF_MDIO=yCONFIG_OF_PCI=yCONFIG_OF_PCI_IRQ=yCONFIG_OF_MTD=yCONFIG_OF_RESERVED_MEM=yCONFIG_OF_RESOLVE=yCONFIG_OF_OVERLAY=yCONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=yCONFIG_PARPORT=mCONFIG_PARPORT_PC=mCONFIG_PARPORT_SERIAL=m
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not setCONFIG_PARPORT_PC_PCMCIA=m
# CONFIG_PARPORT_GSC is not set
# CONFIG_PARPORT_AX88796 is not setCONFIG_PARPORT_1284=yCONFIG_PARPORT_NOT_PC=yCONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_NULL_BLK is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not setCONFIG_BLK_CPQ_CISS_DA=mCONFIG_CISS_SCSI_TAPE=yCONFIG_BLK_DEV_DAC960=mCONFIG_BLK_DEV_UMEM=m
# CONFIG_BLK_DEV_COW_COMMON is not setCONFIG_BLK_DEV_LOOP=mCONFIG_BLK_DEV_LOOP_MIN_COUNT=0
# CONFIG_BLK_DEV_CRYPTOLOOP is not setCONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not setCONFIG_BLK_DEV_NBD=mCONFIG_BLK_DEV_NVME=mCONFIG_BLK_DEV_OSD=mCONFIG_BLK_DEV_SX8=mCONFIG_BLK_DEV_RAM=mCONFIG_BLK_DEV_RAM_COUNT=16CONFIG_BLK_DEV_RAM_SIZE=16384
# CONFIG_BLK_DEV_PMEM is not setCONFIG_CDROM_PKTCDVD=mCONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not setCONFIG_ATA_OVER_ETH=m
# CONFIG_MG_DISK is not setCONFIG_VIRTIO_BLK=mCONFIG_BLK_DEV_RBD=m
# CONFIG_BLK_DEV_RSXX is not set
#
# Misc devices
#CONFIG_SENSORS_LIS3LV02D=m
# CONFIG_AD525X_DPOT is not set
# CONFIG_DUMMY_IRQ is not set
# CONFIG_PHANTOM is not set
# CONFIG_SGI_IOC4 is not setCONFIG_TIFM_CORE=mCONFIG_TIFM_7XX1=m
# CONFIG_ICS932S401 is not setCONFIG_ENCLOSURE_SERVICES=m
# CONFIG_HP_ILO is not setCONFIG_APDS9802ALS=mCONFIG_ISL29003=mCONFIG_ISL29020=mCONFIG_SENSORS_TSL2550=m
# CONFIG_SENSORS_BH1780 is not setCONFIG_SENSORS_BH1770=mCONFIG_SENSORS_APDS990X=m
# CONFIG_HMC6352 is not set
# CONFIG_DS1682 is not setCONFIG_TI_DAC7512=m
# CONFIG_ARM_CHARLCD is not setCONFIG_BMP085=y
# CONFIG_BMP085_I2C is not setCONFIG_BMP085_SPI=m
# CONFIG_USB_SWITCH_FSA9480 is not setCONFIG_LATTICE_ECP3_CONFIG=mCONFIG_SRAM=yCONFIG_VEXPRESS_SYSCFG=y
# CONFIG_C2PORT is not set
#
# EEPROM support
#CONFIG_EEPROM_AT24=mCONFIG_EEPROM_AT25=mCONFIG_EEPROM_LEGACY=mCONFIG_EEPROM_MAX6875=mCONFIG_EEPROM_93CX6=mCONFIG_EEPROM_93XX46=mCONFIG_EEPROM_SUNXI_SID=yCONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not setCONFIG_CB710_DEBUG_ASSUMPTIONS=y
#
# Texas Instruments shared transport line discipline #CONFIG_TI_ST=mCONFIG_SENSORS_LIS3_SPI=m CONFIG_SENSORS_LIS3_I2C=m
#
# Altera FPGA firmware download module
#CONFIG_ALTERA_STAPL=m
#
# Intel MIC Bus Driver
#
#
# Intel MIC Host Driver
#
#
# Intel MIC Card Driver
#
# CONFIG_ECHO is not set
# CONFIG_CXL_BASE is not setCONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
#
# SCSI device support
#CONFIG_SCSI_MOD=yCONFIG_RAID_ATTRS=mCONFIG_SCSI=yCONFIG_SCSI_DMA=yCONFIG_SCSI_NETLINK=y
# CONFIG_SCSI_MQ_DEFAULT is not setCONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#CONFIG_BLK_DEV_SD=yCONFIG_CHR_DEV_ST=mCONFIG_CHR_DEV_OSST=mCONFIG_BLK_DEV_SR=yCONFIG_BLK_DEV_SR_VENDOR=yCONFIG_CHR_DEV_SG=yCONFIG_CHR_DEV_SCH=mCONFIG_SCSI_ENCLOSURE=mCONFIG_SCSI_CONSTANTS=yCONFIG_SCSI_LOGGING=yCONFIG_SCSI_SCAN_ASYNC=y
#
# SCSI Transports
#CONFIG_SCSI_SPI_ATTRS=mCONFIG_SCSI_FC_ATTRS=mCONFIG_SCSI_ISCSI_ATTRS=mCONFIG_SCSI_SAS_ATTRS=mCONFIG_SCSI_SAS_LIBSAS=mCONFIG_SCSI_SAS_ATA=yCONFIG_SCSI_SAS_HOST_SMP=yCONFIG_SCSI_SRP_ATTRS=mCONFIG_SCSI_LOWLEVEL=yCONFIG_ISCSI_TCP=mCONFIG_ISCSI_BOOT_SYSFS=m
# CONFIG_SCSI_CXGB3_ISCSI is not set
# CONFIG_SCSI_CXGB4_ISCSI is not setCONFIG_SCSI_BNX2_ISCSI=mCONFIG_SCSI_BNX2X_FCOE=mCONFIG_BE2ISCSI=m
# CONFIG_BLK_DEV_3W_XXXX_RAID is not setCONFIG_SCSI_HPSA=mCONFIG_SCSI_3W_9XXX=m
# CONFIG_SCSI_3W_SAS is not set
# CONFIG_SCSI_ACARD is not setCONFIG_SCSI_AACRAID=mCONFIG_SCSI_AIC7XXX=mCONFIG_AIC7XXX_CMDS_PER_DEVICE=4CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not setCONFIG_AIC7XXX_DEBUG_MASK=0
# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not setCONFIG_SCSI_AIC79XX=mCONFIG_AIC79XX_CMDS_PER_DEVICE=4CONFIG_AIC79XX_RESET_DELAY_MS=15000
# CONFIG_AIC79XX_DEBUG_ENABLE is not setCONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not setCONFIG_SCSI_AIC94XX=m
# CONFIG_AIC94XX_DEBUG is not setCONFIG_SCSI_MVSAS=m
# CONFIG_SCSI_MVSAS_DEBUG is not setCONFIG_SCSI_MVSAS_TASKLET=yCONFIG_SCSI_MVUMI=mCONFIG_SCSI_ARCMSR=m
# CONFIG_SCSI_ESAS2R is not setCONFIG_MEGARAID_NEWGEN=yCONFIG_MEGARAID_MM=mCONFIG_MEGARAID_MAILBOX=mCONFIG_MEGARAID_LEGACY=mCONFIG_MEGARAID_SAS=mCONFIG_SCSI_MPT2SAS=mCONFIG_SCSI_MPT2SAS_MAX_SGE=128CONFIG_SCSI_MPT2SAS_LOGGING=yCONFIG_SCSI_MPT3SAS=mCONFIG_SCSI_MPT3SAS_MAX_SGE=128CONFIG_SCSI_MPT3SAS_LOGGING=yCONFIG_SCSI_UFSHCD=mCONFIG_SCSI_UFSHCD_PCI=m
# CONFIG_SCSI_UFSHCD_PLATFORM is not setCONFIG_SCSI_HPTIOP=mCONFIG_LIBFC=mCONFIG_LIBFCOE=mCONFIG_FCOE=mCONFIG_SCSI_DMX3191D=m
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_IPS is not setCONFIG_SCSI_INITIO=mCONFIG_SCSI_INIA100=m
# CONFIG_SCSI_PPA is not set
# CONFIG_SCSI_IMM is not setCONFIG_SCSI_STEX=mCONFIG_SCSI_SYM53C8XX_2=mCONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64CONFIG_SCSI_SYM53C8XX_MMIO=yCONFIG_SCSI_IPR=mCONFIG_SCSI_IPR_TRACE=yCONFIG_SCSI_IPR_DUMP=yCONFIG_SCSI_QLOGIC_1280=mCONFIG_SCSI_QLA_FC=mCONFIG_TCM_QLA2XXX=mCONFIG_SCSI_QLA_ISCSI=mCONFIG_SCSI_LPFC=m
# CONFIG_SCSI_LPFC_DEBUG_FS is not set
CONFIG_SCSI_DC395x=m
# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_WD719X is not setCONFIG_SCSI_DEBUG=mCONFIG_SCSI_PMCRAID=m
# CONFIG_SCSI_PM8001 is not setCONFIG_SCSI_BFA_FC=mCONFIG_SCSI_VIRTIO=mCONFIG_SCSI_CHELSIO_FCOE=m
# CONFIG_SCSI_LOWLEVEL_PCMCIA is not setCONFIG_SCSI_DH=yCONFIG_SCSI_DH_RDAC=mCONFIG_SCSI_DH_HP_SW=mCONFIG_SCSI_DH_EMC=mCONFIG_SCSI_DH_ALUA=mCONFIG_SCSI_OSD_INITIATOR=mCONFIG_SCSI_OSD_ULD=mCONFIG_SCSI_OSD_DPRINT_SENSE=1
# CONFIG_SCSI_OSD_DEBUG is not setCONFIG_HAVE_PATA_PLATFORM=yCONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not setCONFIG_ATA_VERBOSE_ERROR=yCONFIG_SATA_PMP=y
#
# Controllers with non-SFF native interface
#CONFIG_SATA_AHCI=yCONFIG_SATA_AHCI_PLATFORM=yCONFIG_AHCI_IMX=y
# CONFIG_AHCI_MVEBU is not setCONFIG_AHCI_SUNXI=y
# CONFIG_AHCI_TEGRA is not setCONFIG_SATA_INIC162X=mCONFIG_SATA_ACARD_AHCI=mCONFIG_SATA_SIL24=mCONFIG_ATA_SFF=y
#
# SFF controllers with custom DMA interface
#CONFIG_PDC_ADMA=mCONFIG_SATA_QSTOR=mCONFIG_SATA_SX4=mCONFIG_ATA_BMDMA=y
#
# SATA SFF controllers with BMDMA
#CONFIG_ATA_PIIX=yCONFIG_SATA_HIGHBANK=yCONFIG_SATA_MV=mCONFIG_SATA_NV=mCONFIG_SATA_PROMISE=mCONFIG_SATA_SIL=mCONFIG_SATA_SIS=mCONFIG_SATA_SVW=mCONFIG_SATA_ULI=mCONFIG_SATA_VIA=mCONFIG_SATA_VITESSE=m
#
# PATA SFF controllers with BMDMA
#CONFIG_PATA_ALI=mCONFIG_PATA_AMD=mCONFIG_PATA_ARTOP=mCONFIG_PATA_ATIIXP=mCONFIG_PATA_ATP867X=mCONFIG_PATA_CMD64X=mCONFIG_PATA_CYPRESS=mCONFIG_PATA_EFAR=mCONFIG_PATA_HPT366=mCONFIG_PATA_HPT37X=mCONFIG_PATA_HPT3X2N=mCONFIG_PATA_HPT3X3=m
# CONFIG_PATA_HPT3X3_DMA is not setCONFIG_PATA_IMX=mCONFIG_PATA_IT8213=mCONFIG_PATA_IT821X=mCONFIG_PATA_JMICRON=mCONFIG_PATA_MARVELL=mCONFIG_PATA_NETCELL=mCONFIG_PATA_NINJA32=mCONFIG_PATA_NS87415=mCONFIG_PATA_OLDPIIX=mCONFIG_PATA_OPTIDMA=mCONFIG_PATA_PDC2027X=mCONFIG_PATA_PDC_OLD=m
# CONFIG_PATA_RADISYS is not setCONFIG_PATA_RDC=mCONFIG_PATA_SCH=mCONFIG_PATA_SERVERWORKS=mCONFIG_PATA_SIL680=mCONFIG_PATA_SIS=mCONFIG_PATA_TOSHIBA=mCONFIG_PATA_TRIFLEX=mCONFIG_PATA_VIA=mCONFIG_PATA_WINBOND=m
#
# PIO-only SFF controllers
#CONFIG_PATA_CMD640_PCI=mCONFIG_PATA_MPIIX=mCONFIG_PATA_NS87410=mCONFIG_PATA_OPTI=mCONFIG_PATA_PCMCIA=m
# CONFIG_PATA_PLATFORM is not set
# CONFIG_PATA_RZ1000 is not set
#
# Generic fallback / legacy drivers
#CONFIG_ATA_GENERIC=m
# CONFIG_PATA_LEGACY is not setCONFIG_MD=yCONFIG_BLK_DEV_MD=yCONFIG_MD_AUTODETECT=yCONFIG_MD_LINEAR=mCONFIG_MD_RAID0=mCONFIG_MD_RAID1=mCONFIG_MD_RAID10=mCONFIG_MD_RAID456=mCONFIG_MD_MULTIPATH=mCONFIG_MD_FAULTY=m
# CONFIG_MD_CLUSTER is not setCONFIG_BCACHE=m
# CONFIG_BCACHE_DEBUG is not set
# CONFIG_BCACHE_CLOSURES_DEBUG is not setCONFIG_BLK_DEV_DM_BUILTIN=yCONFIG_BLK_DEV_DM=y
# CONFIG_DM_MQ_DEFAULT is not setCONFIG_DM_DEBUG=yCONFIG_DM_BUFIO=yCONFIG_DM_BIO_PRISON=mCONFIG_DM_PERSISTENT_DATA=m
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not setCONFIG_DM_CRYPT=mCONFIG_DM_SNAPSHOT=yCONFIG_DM_THIN_PROVISIONING=mCONFIG_DM_CACHE=mCONFIG_DM_CACHE_MQ=mCONFIG_DM_CACHE_CLEANER=m
# CONFIG_DM_ERA is not setCONFIG_DM_MIRROR=yCONFIG_DM_LOG_USERSPACE=mCONFIG_DM_RAID=mCONFIG_DM_ZERO=yCONFIG_DM_MULTIPATH=mCONFIG_DM_MULTIPATH_QL=mCONFIG_DM_MULTIPATH_ST=mCONFIG_DM_DELAY=mCONFIG_DM_UEVENT=yCONFIG_DM_FLAKEY=mCONFIG_DM_VERITY=mCONFIG_DM_SWITCH=m
# CONFIG_DM_LOG_WRITES is not setCONFIG_TARGET_CORE=mCONFIG_TCM_IBLOCK=mCONFIG_TCM_FILEIO=mCONFIG_TCM_PSCSI=m
# CONFIG_TCM_USER2 is not setCONFIG_LOOPBACK_TARGET=mCONFIG_TCM_FC=mCONFIG_ISCSI_TARGET=mCONFIG_SBP_TARGET=mCONFIG_FUSION=yCONFIG_FUSION_SPI=mCONFIG_FUSION_FC=mCONFIG_FUSION_SAS=mCONFIG_FUSION_MAX_SGE=40CONFIG_FUSION_CTL=mCONFIG_FUSION_LAN=mCONFIG_FUSION_LOGGING=y
#
# IEEE 1394 (FireWire) support
#CONFIG_FIREWIRE=mCONFIG_FIREWIRE_OHCI=mCONFIG_FIREWIRE_SBP2=mCONFIG_FIREWIRE_NET=mCONFIG_FIREWIRE_NOSY=mCONFIG_NETDEVICES=yCONFIG_MII=yCONFIG_NET_CORE=yCONFIG_BONDING=mCONFIG_DUMMY=mCONFIG_EQUALIZER=mCONFIG_NET_FC=yCONFIG_IFB=mCONFIG_NET_TEAM=mCONFIG_NET_TEAM_MODE_BROADCAST=mCONFIG_NET_TEAM_MODE_ROUNDROBIN=mCONFIG_NET_TEAM_MODE_RANDOM=mCONFIG_NET_TEAM_MODE_ACTIVEBACKUP=mCONFIG_NET_TEAM_MODE_LOADBALANCE=mCONFIG_MACVLAN=mCONFIG_MACVTAP=m
# CONFIG_IPVLAN is not setCONFIG_VXLAN=mCONFIG_NETCONSOLE=mCONFIG_NETCONSOLE_DYNAMIC=yCONFIG_NETPOLL=yCONFIG_NET_POLL_CONTROLLER=yCONFIG_TUN=mCONFIG_VETH=mCONFIG_VIRTIO_NET=mCONFIG_NLMON=m
# CONFIG_ARCNET is not setCONFIG_ATM_DRIVERS=y
# CONFIG_ATM_DUMMY is not setCONFIG_ATM_TCP=m
# CONFIG_ATM_LANAI is not setCONFIG_ATM_ENI=m
# CONFIG_ATM_ENI_DEBUG is not set
# CONFIG_ATM_ENI_TUNE_BURST is not setCONFIG_ATM_NICSTAR=m
# CONFIG_ATM_NICSTAR_USE_SUNI is not set
# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
# CONFIG_ATM_IDT77252 is not set
# CONFIG_ATM_IA is not set
# CONFIG_ATM_FORE200E is not set
# CONFIG_ATM_HE is not setCONFIG_ATM_SOLOS=m
#
# CAIF transport drivers
#
#
# Distributed Switch Architecture drivers
#
# CONFIG_NET_DSA_MV88E6XXX is not set
# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not setCONFIG_ETHERNET=yCONFIG_MDIO=mCONFIG_NET_VENDOR_3COM=yCONFIG_PCMCIA_3C574=mCONFIG_PCMCIA_3C589=mCONFIG_TYPHOON=mCONFIG_NET_VENDOR_ADAPTEC=yCONFIG_ADAPTEC_STARFIRE=mCONFIG_NET_VENDOR_AGERE=y
# CONFIG_ET131X is not setCONFIG_NET_VENDOR_ALLWINNER=yCONFIG_SUN4I_EMAC=yCONFIG_NET_VENDOR_ALTEON=yCONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
# CONFIG_ALTERA_TSE is not setCONFIG_NET_VENDOR_AMD=yCONFIG_AMD8111_ETH=mCONFIG_PCNET32=mCONFIG_PCMCIA_NMCLAN=m
# CONFIG_AMD_XGBE is not set
# CONFIG_NET_XGENE is not setCONFIG_NET_VENDOR_ARC=yCONFIG_ARC_EMAC_CORE=mCONFIG_ARC_EMAC=m
# CONFIG_EMAC_ROCKCHIP is not setCONFIG_NET_VENDOR_ATHEROS=yCONFIG_ATL2=mCONFIG_ATL1=mCONFIG_ATL1E=mCONFIG_ATL1C=mCONFIG_ALX=mCONFIG_NET_CADENCE=yCONFIG_MACB=mCONFIG_NET_VENDOR_BROADCOM=yCONFIG_B44=mCONFIG_B44_PCI_AUTOSELECT=yCONFIG_B44_PCICORE_AUTOSELECT=yCONFIG_B44_PCI=y
# CONFIG_BCMGENET is not setCONFIG_BNX2=mCONFIG_CNIC=mCONFIG_TIGON3=mCONFIG_BNX2X=mCONFIG_BNX2X_SRIOV=y
# CONFIG_SYSTEMPORT is not setCONFIG_NET_VENDOR_BROCADE=yCONFIG_BNA=mCONFIG_NET_CALXEDA_XGMAC=m
# CONFIG_NET_VENDOR_CHELSIO is not set
# CONFIG_NET_VENDOR_CIRRUS is not setCONFIG_NET_VENDOR_CISCO=yCONFIG_ENIC=m
# CONFIG_DM9000 is not setCONFIG_DNET=m
# CONFIG_NET_VENDOR_DEC is not setCONFIG_NET_VENDOR_DLINK=yCONFIG_DL2K=mCONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not setCONFIG_NET_VENDOR_EMULEX=yCONFIG_BE2NET=mCONFIG_BE2NET_VXLAN=y
# CONFIG_NET_VENDOR_EXAR is not set
# CONFIG_NET_VENDOR_FARADAY is not setCONFIG_NET_VENDOR_FREESCALE=yCONFIG_FEC=m
# CONFIG_FSL_PQ_MDIO is not set
# CONFIG_FSL_XGMAC_MDIO is not set
# CONFIG_NET_VENDOR_FUJITSU is not set
# CONFIG_NET_VENDOR_HISILICON is not set
# CONFIG_NET_VENDOR_HP is not set
# CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_IP1000 is not setCONFIG_JME=mCONFIG_NET_VENDOR_MARVELL=yCONFIG_MV643XX_ETH=mCONFIG_MVMDIO=mCONFIG_MVNETA=mCONFIG_SKGE=m
# CONFIG_SKGE_DEBUG is not setCONFIG_SKGE_GENESIS=yCONFIG_SKY2=m
# CONFIG_SKY2_DEBUG is not set
# CONFIG_NET_VENDOR_MELLANOX is not setCONFIG_NET_VENDOR_MICREL=y
# CONFIG_KS8842 is not setCONFIG_KS8851=m
# CONFIG_KS8851_MLL is not setCONFIG_KSZ884X_PCI=m
# CONFIG_NET_VENDOR_MICROCHIP is not setCONFIG_NET_VENDOR_MYRI=yCONFIG_MYRI10GE=mCONFIG_FEALNX=mCONFIG_NET_VENDOR_NATSEMI=yCONFIG_NATSEMI=mCONFIG_NS83820=mCONFIG_NET_VENDOR_8390=yCONFIG_PCMCIA_AXNET=mCONFIG_AX88796=mCONFIG_AX88796_93CX6=yCONFIG_NE2K_PCI=mCONFIG_PCMCIA_PCNET=mCONFIG_NET_VENDOR_NVIDIA=yCONFIG_FORCEDETH=mCONFIG_NET_VENDOR_OKI=yCONFIG_ETHOC=mCONFIG_NET_PACKET_ENGINE=yCONFIG_HAMACHI=mCONFIG_YELLOWFIN=mCONFIG_NET_VENDOR_QLOGIC=yCONFIG_QLA3XXX=mCONFIG_QLCNIC=mCONFIG_QLCNIC_SRIOV=y
# CONFIG_QLCNIC_DCB is not set
# CONFIG_QLCNIC_VXLAN is not setCONFIG_QLCNIC_HWMON=yCONFIG_QLGE=mCONFIG_NETXEN_NIC=mCONFIG_NET_VENDOR_QUALCOMM=y
# CONFIG_QCA7000 is not setCONFIG_NET_VENDOR_REALTEK=yCONFIG_8139CP=mCONFIG_8139TOO=m
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not setCONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not setCONFIG_R8169=mCONFIG_NET_VENDOR_RDC=yCONFIG_R6040=mCONFIG_NET_VENDOR_ROCKER=yCONFIG_NET_VENDOR_SAMSUNG=y
# CONFIG_SXGBE_ETH is not set
# CONFIG_NET_VENDOR_SEEQ is not setCONFIG_NET_VENDOR_SILAN=yCONFIG_SC92031=mCONFIG_NET_VENDOR_SIS=yCONFIG_SIS900=mCONFIG_SIS190=m
# CONFIG_SFC is not setCONFIG_NET_VENDOR_SMSC=yCONFIG_SMC91X=mCONFIG_PCMCIA_SMC91C92=mCONFIG_EPIC100=mCONFIG_SMC911X=mCONFIG_SMSC911X=m
# CONFIG_SMSC911X_ARCH_HOOKS is not setCONFIG_SMSC9420=mCONFIG_NET_VENDOR_STMICRO=yCONFIG_STMMAC_ETH=yCONFIG_STMMAC_PLATFORM=y
# CONFIG_STMMAC_PCI is not setCONFIG_NET_VENDOR_SUN=yCONFIG_HAPPYMEAL=m
# CONFIG_SUNGEM is not setCONFIG_CASSINI=mCONFIG_NIU=mCONFIG_NET_VENDOR_TEHUTI=yCONFIG_TEHUTI=mCONFIG_NET_VENDOR_TI=yCONFIG_TI_DAVINCI_EMAC=yCONFIG_TI_DAVINCI_MDIO=yCONFIG_TI_DAVINCI_CPDMA=yCONFIG_TI_CPSW_PHY_SEL=yCONFIG_TI_CPSW_ALE=yCONFIG_TI_CPSW=yCONFIG_TI_CPTS=yCONFIG_TLAN=mCONFIG_NET_VENDOR_VIA=yCONFIG_VIA_RHINE=mCONFIG_VIA_RHINE_MMIO=yCONFIG_VIA_VELOCITY=mCONFIG_NET_VENDOR_WIZNET=yCONFIG_WIZNET_W5100=mCONFIG_WIZNET_W5300=m
# CONFIG_WIZNET_BUS_DIRECT is not set
# CONFIG_WIZNET_BUS_INDIRECT is not setCONFIG_WIZNET_BUS_ANY=yCONFIG_NET_VENDOR_XILINX=yCONFIG_XILINX_EMACLITE=mCONFIG_NET_VENDOR_XIRCOM=yCONFIG_PCMCIA_XIRC2PS=m
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not setCONFIG_PHYLIB=y
#
# MII PHY device drivers
#CONFIG_AT803X_PHY=mCONFIG_AMD_PHY=m
# CONFIG_AMD_XGBE_PHY is not setCONFIG_MARVELL_PHY=mCONFIG_DAVICOM_PHY=mCONFIG_QSEMI_PHY=mCONFIG_LXT_PHY=mCONFIG_CICADA_PHY=mCONFIG_VITESSE_PHY=mCONFIG_SMSC_PHY=mCONFIG_BROADCOM_PHY=m
# CONFIG_BCM7XXX_PHY is not setCONFIG_BCM87XX_PHY=mCONFIG_ICPLUS_PHY=mCONFIG_REALTEK_PHY=mCONFIG_NATIONAL_PHY=mCONFIG_STE10XP=mCONFIG_LSI_ET1011C_PHY=mCONFIG_MICREL_PHY=mCONFIG_FIXED_PHY=yCONFIG_MDIO_BITBANG=mCONFIG_MDIO_GPIO=mCONFIG_MDIO_SUN4I=yCONFIG_MDIO_BUS_MUX=mCONFIG_MDIO_BUS_MUX_GPIO=mCONFIG_MDIO_BUS_MUX_MMIOREG=m
# CONFIG_MDIO_BCM_UNIMAC is not setCONFIG_MICREL_KS8995MA=m
# CONFIG_PLIP is not setCONFIG_PPP=mCONFIG_PPP_BSDCOMP=mCONFIG_PPP_DEFLATE=mCONFIG_PPP_FILTER=yCONFIG_PPP_MPPE=mCONFIG_PPP_MULTILINK=yCONFIG_PPPOATM=mCONFIG_PPPOE=mCONFIG_PPTP=mCONFIG_PPPOL2TP=mCONFIG_PPP_ASYNC=mCONFIG_PPP_SYNC_TTY=mCONFIG_SLIP=mCONFIG_SLHC=mCONFIG_SLIP_COMPRESSED=yCONFIG_SLIP_SMART=y
# CONFIG_SLIP_MODE_SLIP6 is not setCONFIG_USB_NET_DRIVERS=yCONFIG_USB_CATC=mCONFIG_USB_KAWETH=mCONFIG_USB_PEGASUS=mCONFIG_USB_RTL8150=mCONFIG_USB_RTL8152=mCONFIG_USB_USBNET=mCONFIG_USB_NET_AX8817X=mCONFIG_USB_NET_AX88179_178A=mCONFIG_USB_NET_CDCETHER=mCONFIG_USB_NET_CDC_EEM=mCONFIG_USB_NET_CDC_NCM=m
# CONFIG_USB_NET_HUAWEI_CDC_NCM is not setCONFIG_USB_NET_CDC_MBIM=mCONFIG_USB_NET_DM9601=mCONFIG_USB_NET_SR9700=mCONFIG_USB_NET_SR9800=mCONFIG_USB_NET_SMSC75XX=mCONFIG_USB_NET_SMSC95XX=mCONFIG_USB_NET_GL620A=mCONFIG_USB_NET_NET1080=mCONFIG_USB_NET_PLUSB=mCONFIG_USB_NET_MCS7830=mCONFIG_USB_NET_RNDIS_HOST=mCONFIG_USB_NET_CDC_SUBSET=mCONFIG_USB_ALI_M5632=yCONFIG_USB_AN2720=yCONFIG_USB_BELKIN=yCONFIG_USB_ARMLINUX=yCONFIG_USB_EPSON2888=yCONFIG_USB_KC2190=yCONFIG_USB_NET_ZAURUS=mCONFIG_USB_NET_CX82310_ETH=mCONFIG_USB_NET_KALMIA=mCONFIG_USB_NET_QMI_WWAN=mCONFIG_USB_HSO=mCONFIG_USB_NET_INT51X1=mCONFIG_USB_IPHETH=mCONFIG_USB_SIERRA_NET=mCONFIG_USB_VL600=mCONFIG_WLAN=y
# CONFIG_PCMCIA_RAYCS is not set
# CONFIG_LIBERTAS_THINFIRM is not set
# CONFIG_ATMEL is not setCONFIG_AT76C50X_USB=m
# CONFIG_AIRO_CS is not set
# CONFIG_PCMCIA_WL3501 is not set
# CONFIG_PRISM54 is not set
# CONFIG_USB_ZD1201 is not setCONFIG_USB_NET_RNDIS_WLAN=mCONFIG_RTL8180=mCONFIG_RTL8187=mCONFIG_RTL8187_LEDS=y
# CONFIG_ADM8211 is not setCONFIG_MAC80211_HWSIM=mCONFIG_MWL8K=mCONFIG_ATH_COMMON=mCONFIG_ATH_CARDS=m
# CONFIG_ATH_DEBUG is not setCONFIG_ATH5K=mCONFIG_ATH5K_DEBUG=y
# CONFIG_ATH5K_TRACER is not setCONFIG_ATH5K_PCI=yCONFIG_ATH9K_HW=mCONFIG_ATH9K_COMMON=mCONFIG_ATH9K_BTCOEX_SUPPORT=yCONFIG_ATH9K=mCONFIG_ATH9K_PCI=yCONFIG_ATH9K_AHB=yCONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_DYNACK is not set
# CONFIG_ATH9K_WOW is not setCONFIG_ATH9K_RFKILL=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not setCONFIG_ATH9K_PCOEM=yCONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HTC_DEBUGFS is not setCONFIG_CARL9170=mCONFIG_CARL9170_LEDS=y
# CONFIG_CARL9170_DEBUGFS is not setCONFIG_CARL9170_WPC=y
# CONFIG_CARL9170_HWRNG is not setCONFIG_ATH6KL=mCONFIG_ATH6KL_SDIO=mCONFIG_ATH6KL_USB=mCONFIG_ATH6KL_DEBUG=y
# CONFIG_ATH6KL_TRACING is not setCONFIG_AR5523=mCONFIG_WIL6210=mCONFIG_WIL6210_ISR_COR=y
# CONFIG_WIL6210_TRACING is not setCONFIG_ATH10K=mCONFIG_ATH10K_PCI=m
# CONFIG_ATH10K_DEBUG is not setCONFIG_ATH10K_DEBUGFS=y
# CONFIG_ATH10K_TRACING is not set
# CONFIG_WCN36XX is not setCONFIG_B43=mCONFIG_B43_BCMA=yCONFIG_B43_SSB=yCONFIG_B43_BUSES_BCMA_AND_SSB=y
# CONFIG_B43_BUSES_BCMA is not set
# CONFIG_B43_BUSES_SSB is not setCONFIG_B43_PCI_AUTOSELECT=yCONFIG_B43_PCICORE_AUTOSELECT=yCONFIG_B43_PCMCIA=yCONFIG_B43_SDIO=yCONFIG_B43_BCMA_PIO=yCONFIG_B43_PIO=yCONFIG_B43_PHY_G=yCONFIG_B43_PHY_N=yCONFIG_B43_PHY_LP=yCONFIG_B43_PHY_HT=yCONFIG_B43_LEDS=yCONFIG_B43_HWRNG=y
# CONFIG_B43_DEBUG is not setCONFIG_B43LEGACY=mCONFIG_B43LEGACY_PCI_AUTOSELECT=yCONFIG_B43LEGACY_PCICORE_AUTOSELECT=yCONFIG_B43LEGACY_LEDS=yCONFIG_B43LEGACY_HWRNG=y
# CONFIG_B43LEGACY_DEBUG is not setCONFIG_B43LEGACY_DMA=yCONFIG_B43LEGACY_PIO=yCONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
# CONFIG_B43LEGACY_DMA_MODE is not set
# CONFIG_B43LEGACY_PIO_MODE is not setCONFIG_BRCMUTIL=mCONFIG_BRCMSMAC=mCONFIG_BRCMFMAC=mCONFIG_BRCMFMAC_PROTO_BCDC=yCONFIG_BRCMFMAC_SDIO=yCONFIG_BRCMFMAC_USB=y
# CONFIG_BRCMFMAC_PCIE is not set
# CONFIG_BRCM_TRACING is not set
# CONFIG_BRCMDBG is not set
# CONFIG_HOSTAP is not set
# CONFIG_IPW2100 is not set
# CONFIG_IPW2200 is not setCONFIG_IWLWIFI=mCONFIG_IWLWIFI_LEDS=yCONFIG_IWLDVM=mCONFIG_IWLMVM=mCONFIG_IWLWIFI_OPMODE_MODULAR=y
# CONFIG_IWLWIFI_BCAST_FILTERING is not set
# CONFIG_IWLWIFI_UAPSD is not set
#
# Debugging Options
#CONFIG_IWLWIFI_DEBUG=y CONFIG_IWLWIFI_DEBUGFS=y
# CONFIG_IWLWIFI_DEBUG_EXPERIMENTAL_UCODE is not set # CONFIG_IWLWIFI_DEVICE_TRACING is not set CONFIG_IWLEGACY=mCONFIG_IWL4965=mCONFIG_IWL3945=m
#
# iwl3945 / iwl4965 Debugging Options # CONFIG_IWLEGACY_DEBUG=y CONFIG_IWLEGACY_DEBUGFS=y CONFIG_LIBERTAS=m CONFIG_LIBERTAS_USB=m CONFIG_LIBERTAS_SDIO=m CONFIG_LIBERTAS_SPI=m # CONFIG_LIBERTAS_DEBUG is not set CONFIG_LIBERTAS_MESH=y # CONFIG_HERMES is not set CONFIG_P54_COMMON=m CONFIG_P54_USB=m CONFIG_P54_PCI=m CONFIG_P54_SPI=m # CONFIG_P54_SPI_DEFAULT_EEPROM is not set CONFIG_P54_LEDS=y CONFIG_RT2X00=m CONFIG_RT2400PCI=m CONFIG_RT2500PCI=m CONFIG_RT61PCI=m CONFIG_RT2800PCI=m CONFIG_RT2800PCI_RT33XX=y CONFIG_RT2800PCI_RT35XX=y CONFIG_RT2800PCI_RT53XX=y CONFIG_RT2800PCI_RT3290=y CONFIG_RT2500USB=m CONFIG_RT73USB=m CONFIG_RT2800USB=m CONFIG_RT2800USB_RT33XX=y CONFIG_RT2800USB_RT35XX=y CONFIG_RT2800USB_RT3573=y CONFIG_RT2800USB_RT53XX=y CONFIG_RT2800USB_RT55XX=y CONFIG_RT2800USB_UNKNOWN=y CONFIG_RT2800_LIB=m CONFIG_RT2800_LIB_MMIO=m CONFIG_RT2X00_LIB_MMIO=m CONFIG_RT2X00_LIB_PCI=m CONFIG_RT2X00_LIB_USB=m CONFIG_RT2X00_LIB=m CONFIG_RT2X00_LIB_FIRMWARE=y CONFIG_RT2X00_LIB_CRYPTO=y CONFIG_RT2X00_LIB_LEDS=y CONFIG_RT2X00_LIB_DEBUGFS=y # CONFIG_RT2X00_DEBUG is not set CONFIG_RTL_CARDS=m CONFIG_RTL8192CE=m CONFIG_RTL8192SE=m CONFIG_RTL8192DE=m CONFIG_RTL8723AE=m # CONFIG_RTL8723BE is not set CONFIG_RTL8188EE=m # CONFIG_RTL8192EE is not set # CONFIG_RTL8821AE is not set CONFIG_RTL8192CU=m CONFIG_RTLWIFI=m CONFIG_RTLWIFI_PCI=m CONFIG_RTLWIFI_USB=m # CONFIG_RTLWIFI_DEBUG is not set CONFIG_RTL8192C_COMMON=m CONFIG_RTL8723_COMMON=m CONFIG_RTLBTCOEXIST=m CONFIG_WL_TI=y CONFIG_WL1251=m CONFIG_WL1251_SPI=m CONFIG_WL1251_SDIO=m CONFIG_WL12XX=m CONFIG_WL18XX=m CONFIG_WLCORE=m CONFIG_WLCORE_SPI=m CONFIG_WLCORE_SDIO=m CONFIG_WILINK_PLATFORM_DATA=y CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set CONFIG_MWIFIEX=m CONFIG_MWIFIEX_SDIO=m CONFIG_MWIFIEX_PCIE=m CONFIG_MWIFIEX_USB=m CONFIG_CW1200=m CONFIG_CW1200_WLAN_SDIO=m CONFIG_CW1200_WLAN_SPI=m # CONFIG_RSI_91X is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers #
# CONFIG_WAN is not set CONFIG_IEEE802154_DRIVERS=m CONFIG_IEEE802154_FAKELB=m CONFIG_IEEE802154_AT86RF230=m CONFIG_IEEE802154_MRF24J40=m
# CONFIG_IEEE802154_CC2520 is not set
# CONFIG_VMXNET3 is not set
# CONFIG_ISDN is not set
#
# Input device support
#CONFIG_INPUT=yCONFIG_INPUT_FF_MEMLESS=yCONFIG_INPUT_POLLDEV=mCONFIG_INPUT_SPARSEKMAP=mCONFIG_INPUT_MATRIXKMAP=m
#
# Userland interfaces
#CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not setCONFIG_INPUT_MOUSEDEV_SCREEN_X=1024CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768CONFIG_INPUT_JOYDEV=mCONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADP5588 is not set
# CONFIG_KEYBOARD_ADP5589 is not setCONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_QT1070 is not set
# CONFIG_KEYBOARD_QT2160 is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_KEYBOARD_GPIO_POLLED is not set
# CONFIG_KEYBOARD_TCA6416 is not set
# CONFIG_KEYBOARD_TCA8418 is not set
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_LM8323 is not set
# CONFIG_KEYBOARD_LM8333 is not set
# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_MCS is not set
# CONFIG_KEYBOARD_MPR121 is not setCONFIG_KEYBOARD_IMX=m
# CONFIG_KEYBOARD_NEWTON is not setCONFIG_KEYBOARD_TEGRA=m
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_SAMSUNG is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not setCONFIG_KEYBOARD_SUN4I_LRADC=yCONFIG_KEYBOARD_OMAP4=mCONFIG_KEYBOARD_TWL4030=m
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_CAP11XX is not set
# CONFIG_KEYBOARD_BCM is not setCONFIG_INPUT_MOUSE=yCONFIG_MOUSE_PS2=yCONFIG_MOUSE_PS2_ALPS=yCONFIG_MOUSE_PS2_LOGIPS2PP=yCONFIG_MOUSE_PS2_SYNAPTICS=yCONFIG_MOUSE_PS2_CYPRESS=yCONFIG_MOUSE_PS2_TRACKPOINT=yCONFIG_MOUSE_PS2_ELANTECH=yCONFIG_MOUSE_PS2_SENTELIC=y
# CONFIG_MOUSE_PS2_TOUCHKIT is not setCONFIG_MOUSE_PS2_FOCALTECH=yCONFIG_MOUSE_SERIAL=mCONFIG_MOUSE_APPLETOUCH=mCONFIG_MOUSE_BCM5974=mCONFIG_MOUSE_CYAPA=m
# CONFIG_MOUSE_ELAN_I2C is not setCONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOUSE_GPIO is not setCONFIG_MOUSE_SYNAPTICS_I2C=mCONFIG_MOUSE_SYNAPTICS_USB=mCONFIG_INPUT_JOYSTICK=yCONFIG_JOYSTICK_ANALOG=mCONFIG_JOYSTICK_A3D=mCONFIG_JOYSTICK_ADI=mCONFIG_JOYSTICK_COBRA=mCONFIG_JOYSTICK_GF2K=mCONFIG_JOYSTICK_GRIP=mCONFIG_JOYSTICK_GRIP_MP=mCONFIG_JOYSTICK_GUILLEMOT=mCONFIG_JOYSTICK_INTERACT=mCONFIG_JOYSTICK_SIDEWINDER=mCONFIG_JOYSTICK_TMDC=mCONFIG_JOYSTICK_IFORCE=mCONFIG_JOYSTICK_IFORCE_USB=yCONFIG_JOYSTICK_IFORCE_232=yCONFIG_JOYSTICK_WARRIOR=mCONFIG_JOYSTICK_MAGELLAN=mCONFIG_JOYSTICK_SPACEORB=mCONFIG_JOYSTICK_SPACEBALL=mCONFIG_JOYSTICK_STINGER=mCONFIG_JOYSTICK_TWIDJOY=mCONFIG_JOYSTICK_ZHENHUA=mCONFIG_JOYSTICK_DB9=mCONFIG_JOYSTICK_GAMECON=mCONFIG_JOYSTICK_TURBOGRAFX=m
# CONFIG_JOYSTICK_AS5011 is not setCONFIG_JOYSTICK_JOYDUMP=mCONFIG_JOYSTICK_XPAD=mCONFIG_JOYSTICK_XPAD_FF=yCONFIG_JOYSTICK_XPAD_LEDS=yCONFIG_JOYSTICK_WALKERA0701=mCONFIG_INPUT_TABLET=yCONFIG_TABLET_USB_ACECAD=mCONFIG_TABLET_USB_AIPTEK=mCONFIG_TABLET_USB_GTCO=mCONFIG_TABLET_USB_HANWANG=mCONFIG_TABLET_USB_KBTAB=m
# CONFIG_TABLET_SERIAL_WACOM4 is not setCONFIG_INPUT_TOUCHSCREEN=yCONFIG_OF_TOUCHSCREEN=yCONFIG_TOUCHSCREEN_ADS7846=mCONFIG_TOUCHSCREEN_AD7877=m
# CONFIG_TOUCHSCREEN_AD7879 is not set
# CONFIG_TOUCHSCREEN_AR1021_I2C is not setCONFIG_TOUCHSCREEN_ATMEL_MXT=m
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
# CONFIG_TOUCHSCREEN_BU21013 is not setCONFIG_TOUCHSCREEN_CHIPONE_ICN8318=y
# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not setCONFIG_TOUCHSCREEN_DA9052=mCONFIG_TOUCHSCREEN_DYNAPRO=m
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
# CONFIG_TOUCHSCREEN_EETI is not set
# CONFIG_TOUCHSCREEN_EGALAX is not setCONFIG_TOUCHSCREEN_FUJITSU=m
# CONFIG_TOUCHSCREEN_GOODIX is not setCONFIG_TOUCHSCREEN_ILI210X=mCONFIG_TOUCHSCREEN_GUNZE=m
# CONFIG_TOUCHSCREEN_ELAN is not setCONFIG_TOUCHSCREEN_ELO=mCONFIG_TOUCHSCREEN_WACOM_W8001=mCONFIG_TOUCHSCREEN_WACOM_I2C=m
# CONFIG_TOUCHSCREEN_MAX11801 is not setCONFIG_TOUCHSCREEN_MCS5000=mCONFIG_TOUCHSCREEN_MMS114=mCONFIG_TOUCHSCREEN_MTOUCH=mCONFIG_TOUCHSCREEN_INEXIO=mCONFIG_TOUCHSCREEN_MK712=mCONFIG_TOUCHSCREEN_PENMOUNT=mCONFIG_TOUCHSCREEN_EDT_FT5X06=mCONFIG_TOUCHSCREEN_TOUCHRIGHT=mCONFIG_TOUCHSCREEN_TOUCHWIN=mCONFIG_TOUCHSCREEN_TI_AM335X_TSC=mCONFIG_TOUCHSCREEN_PIXCIR=m
# CONFIG_TOUCHSCREEN_WM97XX is not setCONFIG_TOUCHSCREEN_USB_COMPOSITE=mCONFIG_TOUCHSCREEN_MC13783=mCONFIG_TOUCHSCREEN_USB_EGALAX=yCONFIG_TOUCHSCREEN_USB_PANJIT=yCONFIG_TOUCHSCREEN_USB_3M=yCONFIG_TOUCHSCREEN_USB_ITM=yCONFIG_TOUCHSCREEN_USB_ETURBO=yCONFIG_TOUCHSCREEN_USB_GUNZE=yCONFIG_TOUCHSCREEN_USB_DMC_TSC10=yCONFIG_TOUCHSCREEN_USB_IRTOUCH=yCONFIG_TOUCHSCREEN_USB_IDEALTEK=yCONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=yCONFIG_TOUCHSCREEN_USB_GOTOP=yCONFIG_TOUCHSCREEN_USB_JASTEC=yCONFIG_TOUCHSCREEN_USB_ELO=yCONFIG_TOUCHSCREEN_USB_E2I=yCONFIG_TOUCHSCREEN_USB_ZYTRONIC=yCONFIG_TOUCHSCREEN_USB_ETT_TC45USB=yCONFIG_TOUCHSCREEN_USB_NEXIO=yCONFIG_TOUCHSCREEN_USB_EASYTOUCH=yCONFIG_TOUCHSCREEN_TOUCHIT213=mCONFIG_TOUCHSCREEN_TSC_SERIO=mCONFIG_TOUCHSCREEN_TSC2005=mCONFIG_TOUCHSCREEN_TSC2007=mCONFIG_TOUCHSCREEN_ST1232=mCONFIG_TOUCHSCREEN_SUN4I=y
# CONFIG_TOUCHSCREEN_SUR40 is not set
# CONFIG_TOUCHSCREEN_SX8654 is not set
# CONFIG_TOUCHSCREEN_TPS6507X is not set
# CONFIG_TOUCHSCREEN_ZFORCE is not setCONFIG_INPUT_MISC=yCONFIG_INPUT_88PM80X_ONKEY=m
# CONFIG_INPUT_AD714X is not set
# CONFIG_INPUT_BMA150 is not set
# CONFIG_INPUT_E3X0_BUTTON is not setCONFIG_INPUT_MC13783_PWRBUTTON=mCONFIG_INPUT_MMA8450=mCONFIG_INPUT_MPU3050=mCONFIG_INPUT_GP2A=m
# CONFIG_INPUT_GPIO_BEEPER is not setCONFIG_INPUT_GPIO_TILT_POLLED=mCONFIG_INPUT_ATI_REMOTE2=mCONFIG_INPUT_KEYSPAN_REMOTE=mCONFIG_INPUT_KXTJ9=m
# CONFIG_INPUT_KXTJ9_POLLED_MODE is not setCONFIG_INPUT_POWERMATE=mCONFIG_INPUT_YEALINK=mCONFIG_INPUT_CM109=m
# CONFIG_INPUT_REGULATOR_HAPTIC is not setCONFIG_INPUT_AXP20X_PEK=yCONFIG_INPUT_TWL4030_PWRBUTTON=mCONFIG_INPUT_TWL4030_VIBRA=mCONFIG_INPUT_TWL6040_VIBRA=mCONFIG_INPUT_UINPUT=m
# CONFIG_INPUT_PALMAS_PWRBUTTON is not set
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_PWM_BEEPER is not setCONFIG_INPUT_GPIO_ROTARY_ENCODER=mCONFIG_INPUT_DA9052_ONKEY=mCONFIG_INPUT_DA9055_ONKEY=m
# CONFIG_INPUT_ADXL34X is not set
# CONFIG_INPUT_IMS_PCU is not setCONFIG_INPUT_CMA3000=mCONFIG_INPUT_CMA3000_I2C=m
# CONFIG_INPUT_DRV260X_HAPTICS is not set
# CONFIG_INPUT_DRV2667_HAPTICS is not set
#
# Hardware I/O ports
#CONFIG_SERIO=yCONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PARKBD is not setCONFIG_SERIO_AMBAKMI=m
# CONFIG_SERIO_PCIPS2 is not setCONFIG_SERIO_LIBPS2=yCONFIG_SERIO_RAW=mCONFIG_SERIO_ALTERA_PS2=m
# CONFIG_SERIO_PS2MULT is not setCONFIG_SERIO_ARC_PS2=m
# CONFIG_SERIO_APBPS2 is not setCONFIG_SERIO_SUN4I_PS2=yCONFIG_GAMEPORT=mCONFIG_GAMEPORT_NS558=mCONFIG_GAMEPORT_L4=mCONFIG_GAMEPORT_EMU10K1=mCONFIG_GAMEPORT_FM801=m
#
# Character devices
#CONFIG_TTY=yCONFIG_VT=yCONFIG_CONSOLE_TRANSLATIONS=yCONFIG_VT_CONSOLE=yCONFIG_VT_CONSOLE_SLEEP=yCONFIG_HW_CONSOLE=yCONFIG_VT_HW_CONSOLE_BINDING=yCONFIG_UNIX98_PTYS=yCONFIG_DEVPTS_MULTIPLE_INSTANCES=y
# CONFIG_LEGACY_PTYS is not setCONFIG_SERIAL_NONSTANDARD=yCONFIG_ROCKETPORT=mCONFIG_CYCLADES=m
# CONFIG_CYZ_INTR is not set
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not setCONFIG_SYNCLINKMP=mCONFIG_SYNCLINK_GT=mCONFIG_NOZOMI=m
# CONFIG_ISI is not setCONFIG_N_HDLC=mCONFIG_N_GSM=m
# CONFIG_TRACE_SINK is not setCONFIG_DEVMEM=y
# CONFIG_DEVKMEM is not set
#
# Serial drivers
#CONFIG_SERIAL_EARLYCON=y CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y CONFIG_SERIAL_8250_DW=y CONFIG_SERIAL_8250_EM=m
# CONFIG_SERIAL_8250_OMAP is not set
#
# Non-8250 serial port support
#CONFIG_SERIAL_AMBA_PL010=yCONFIG_SERIAL_AMBA_PL010_CONSOLE=yCONFIG_SERIAL_AMBA_PL011=yCONFIG_SERIAL_AMBA_PL011_CONSOLE=yCONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
# CONFIG_SERIAL_KGDB_NMI is not setCONFIG_SERIAL_TEGRA=y
# CONFIG_SERIAL_MAX3100 is not set
# CONFIG_SERIAL_MAX310X is not setCONFIG_SERIAL_IMX=yCONFIG_SERIAL_IMX_CONSOLE=yCONFIG_SERIAL_UARTLITE=yCONFIG_SERIAL_UARTLITE_CONSOLE=yCONFIG_SERIAL_CORE=yCONFIG_SERIAL_CORE_CONSOLE=yCONFIG_CONSOLE_POLL=yCONFIG_SERIAL_JSM=mCONFIG_SERIAL_OF_PLATFORM=yCONFIG_SERIAL_OMAP=yCONFIG_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 setCONFIG_SERIAL_XILINX_PS_UART=yCONFIG_SERIAL_XILINX_PS_UART_CONSOLE=yCONFIG_SERIAL_ARC=mCONFIG_SERIAL_ARC_NR_PORTS=1
# CONFIG_SERIAL_RP2 is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
# CONFIG_SERIAL_ST_ASC is not setCONFIG_PRINTER=mCONFIG_LP_CONSOLE=yCONFIG_PPDEV=mCONFIG_HVC_DRIVER=y
# CONFIG_HVC_DCC is not setCONFIG_VIRTIO_CONSOLE=mCONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not setCONFIG_IPMI_DEVICE_INTERFACE=mCONFIG_IPMI_SI=m
# CONFIG_IPMI_SI_PROBE_DEFAULTS is not set
# CONFIG_IPMI_SSIF is not setCONFIG_IPMI_WATCHDOG=mCONFIG_IPMI_POWEROFF=mCONFIG_HW_RANDOM=yCONFIG_HW_RANDOM_TIMERIOMEM=m
# CONFIG_HW_RANDOM_OMAP is not set
# CONFIG_HW_RANDOM_OMAP3_ROM is not setCONFIG_HW_RANDOM_VIRTIO=mCONFIG_HW_RANDOM_TPM=m
# CONFIG_NVRAM is not setCONFIG_R3964=m
# CONFIG_APPLICOM is not set
#
# PCMCIA character devices
#
# CONFIG_SYNCLINK_CS is not setCONFIG_CARDMAN_4000=mCONFIG_CARDMAN_4040=mCONFIG_IPWIRELESS=mCONFIG_RAW_DRIVER=yCONFIG_MAX_RAW_DEVS=8192CONFIG_TCG_TPM=m
# CONFIG_TCG_TIS_I2C_ATMEL is not set
# CONFIG_TCG_TIS_I2C_INFINEON is not set
# CONFIG_TCG_TIS_I2C_NUVOTON is not set
# CONFIG_TCG_TIS_ST33ZP24 is not setCONFIG_DEVPORT=y
# CONFIG_XILLYBUS is not set
#
# I2C support
#CONFIG_I2C=yCONFIG_I2C_BOARDINFO=yCONFIG_I2C_COMPAT=yCONFIG_I2C_CHARDEV=yCONFIG_I2C_MUX=y
#
# Multiplexer I2C Chip support
#
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
# CONFIG_I2C_MUX_GPIO is not set
# CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_PINCTRL is not setCONFIG_I2C_HELPER_AUTO=yCONFIG_I2C_SMBUS=mCONFIG_I2C_ALGOBIT=yCONFIG_I2C_ALGOPCA=m
#
# I2C Hardware Bus support
#
#
# PC SMBus host controller drivers
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_ISCH is not set
# CONFIG_I2C_PIIX4 is not setCONFIG_I2C_NFORCE2=m
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
#
# I2C system bus drivers (mostly embedded / system-on-chip) #
# CONFIG_I2C_CADENCE is not set
# CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_DESIGNWARE_CORE=m CONFIG_I2C_DESIGNWARE_PLATFORM=m
# CONFIG_I2C_DESIGNWARE_PCI is not set
# CONFIG_I2C_GPIO is not setCONFIG_I2C_IMX=mCONFIG_I2C_MV64XXX=yCONFIG_I2C_NOMADIK=m
# CONFIG_I2C_OCORES is not setCONFIG_I2C_OMAP=yCONFIG_I2C_PCA_PLATFORM=m
# CONFIG_I2C_PXA_PCI is not set
# CONFIG_I2C_RK3X is not setCONFIG_I2C_SIMTEC=mCONFIG_I2C_SUN6I_P2WI=yCONFIG_I2C_TEGRA=mCONFIG_I2C_VERSATILE=mCONFIG_I2C_XILINX=m
#
# External I2C/SMBus adapter drivers
#CONFIG_I2C_DIOLAN_U2C=mCONFIG_I2C_PARPORT=mCONFIG_I2C_PARPORT_LIGHT=m
# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
# CONFIG_I2C_TAOS_EVM is not setCONFIG_I2C_TINY_USB=mCONFIG_I2C_VIPERBOARD=m
#
# Other I2C/SMBus bus drivers
#CONFIG_I2C_STUB=m
# 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 setCONFIG_SPI=y
# CONFIG_SPI_DEBUG is not setCONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#CONFIG_SPI_ALTERA=mCONFIG_SPI_BITBANG=mCONFIG_SPI_BUTTERFLY=m
# CONFIG_SPI_CADENCE is not setCONFIG_SPI_GPIO=mCONFIG_SPI_IMX=mCONFIG_SPI_LM70_LLP=m
# CONFIG_SPI_FSL_SPI is not setCONFIG_SPI_OC_TINY=mCONFIG_SPI_OMAP24XX=m
# CONFIG_SPI_TI_QSPI is not setCONFIG_SPI_ORION=mCONFIG_SPI_PL022=m
# CONFIG_SPI_PXA2XX is not set
# CONFIG_SPI_PXA2XX_PCI is not set
# CONFIG_SPI_ROCKCHIP is not setCONFIG_SPI_SC18IS602=mCONFIG_SPI_SUN4I=yCONFIG_SPI_SUN6I=y
# CONFIG_SPI_TEGRA114 is not setCONFIG_SPI_TEGRA20_SFLASH=mCONFIG_SPI_TEGRA20_SLINK=mCONFIG_SPI_XCOMM=mCONFIG_SPI_XILINX=mCONFIG_SPI_DESIGNWARE=mCONFIG_SPI_DW_PCI=m
# CONFIG_SPI_DW_MID_DMA is not setCONFIG_SPI_DW_MMIO=m
#
# SPI Protocol Masters
#CONFIG_SPI_SPIDEV=mCONFIG_SPI_TLE62X0=m
# CONFIG_SPMI is not set
# CONFIG_HSI is not set
#
# PPS support
#CONFIG_PPS=y
# CONFIG_PPS_DEBUG is not set
#
# PPS clients support
#
# CONFIG_PPS_CLIENT_KTIMER is not setCONFIG_PPS_CLIENT_LDISC=mCONFIG_PPS_CLIENT_PARPORT=mCONFIG_PPS_CLIENT_GPIO=m
#
# PPS generators support
#
#
# PTP clock support
#CONFIG_PTP_1588_CLOCK=yCONFIG_DP83640_PHY=mCONFIG_PINCTRL=y
#
# Pin controllers
#CONFIG_PINMUX=yCONFIG_PINCONF=yCONFIG_GENERIC_PINCONF=y
# CONFIG_DEBUG_PINCTRL is not set
# CONFIG_PINCTRL_AMD is not setCONFIG_PINCTRL_ROCKCHIP=yCONFIG_PINCTRL_SINGLE=yCONFIG_PINCTRL_TEGRA=yCONFIG_PINCTRL_TEGRA20=yCONFIG_PINCTRL_TEGRA30=yCONFIG_PINCTRL_TEGRA_XUSB=y
# CONFIG_PINCTRL_PALMAS is not setCONFIG_PINCTRL_ZYNQ=yCONFIG_PINCTRL_IMX=yCONFIG_PINCTRL_IMX50=yCONFIG_PINCTRL_IMX51=yCONFIG_PINCTRL_IMX53=yCONFIG_PINCTRL_IMX6Q=yCONFIG_PINCTRL_IMX6SL=yCONFIG_PINCTRL_IMX6SX=yCONFIG_PINCTRL_MVEBU=yCONFIG_PINCTRL_ARMADA_370=yCONFIG_PINCTRL_ARMADA_XP=yCONFIG_PINCTRL_SUNXI_COMMON=yCONFIG_PINCTRL_SUN4I_A10=yCONFIG_PINCTRL_SUN5I_A10S=yCONFIG_PINCTRL_SUN5I_A13=yCONFIG_PINCTRL_SUN6I_A31=yCONFIG_PINCTRL_SUN6I_A31S=yCONFIG_PINCTRL_SUN6I_A31_R=yCONFIG_PINCTRL_SUN7I_A20=yCONFIG_PINCTRL_SUN8I_A23=yCONFIG_PINCTRL_SUN8I_A23_R=yCONFIG_PINCTRL_SUN9I_A80=yCONFIG_ARCH_HAVE_CUSTOM_GPIO_H=yCONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=yCONFIG_ARCH_REQUIRE_GPIOLIB=yCONFIG_GPIOLIB=yCONFIG_GPIO_DEVRES=yCONFIG_OF_GPIO=yCONFIG_GPIOLIB_IRQCHIP=y
# CONFIG_DEBUG_GPIO is not setCONFIG_GPIO_SYSFS=yCONFIG_GPIO_GENERIC=yCONFIG_GPIO_MAX730X=m
#
# 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 setCONFIG_GPIO_GENERIC_PLATFORM=y
# CONFIG_GPIO_GRGPIO is not setCONFIG_GPIO_MVEBU=yCONFIG_GPIO_MXC=yCONFIG_GPIO_OMAP=yCONFIG_GPIO_PL061=y
# CONFIG_GPIO_SCH311X is not set
# CONFIG_GPIO_SYSCON is not set
# CONFIG_GPIO_VX855 is not setCONFIG_GPIO_XILINX=y
# CONFIG_GPIO_ZEVIO is not set
# CONFIG_GPIO_ZYNQ is not set
#
# I2C GPIO expanders
#
# CONFIG_GPIO_ADP5588 is not setCONFIG_GPIO_ADNP=m
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not setCONFIG_GPIO_PCA953X=m
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_SX150X is not set
#
# MFD GPIO expanders
#CONFIG_GPIO_DA9052=mCONFIG_GPIO_DA9055=mCONFIG_GPIO_PALMAS=yCONFIG_GPIO_TPS6586X=yCONFIG_GPIO_TPS65910=yCONFIG_GPIO_TPS65912=mCONFIG_GPIO_TWL4030=mCONFIG_GPIO_TWL6040=m
#
# PCI GPIO expanders
#
# CONFIG_GPIO_AMD8111 is not set
# CONFIG_GPIO_ML_IOH is not set
# CONFIG_GPIO_RDC321X is not set
#
# SPI GPIO expanders
#CONFIG_GPIO_74X164=mCONFIG_GPIO_MAX7301=mCONFIG_GPIO_MCP23S08=mCONFIG_GPIO_MC33880=m
#
# USB GPIO expanders
#CONFIG_GPIO_VIPERBOARD=mCONFIG_W1=mCONFIG_W1_CON=y
#
# 1-wire Bus Masters
#
# CONFIG_W1_MASTER_MATROX is not setCONFIG_W1_MASTER_DS2490=mCONFIG_W1_MASTER_DS2482=mCONFIG_W1_MASTER_MXC=mCONFIG_W1_MASTER_DS1WM=mCONFIG_W1_MASTER_GPIO=mCONFIG_HDQ_MASTER_OMAP=m
#
# 1-wire Slaves
#CONFIG_W1_SLAVE_THERM=mCONFIG_W1_SLAVE_SMEM=mCONFIG_W1_SLAVE_DS2408=m
# CONFIG_W1_SLAVE_DS2408_READBACK is not setCONFIG_W1_SLAVE_DS2413=m
# CONFIG_W1_SLAVE_DS2406 is not setCONFIG_W1_SLAVE_DS2423=mCONFIG_W1_SLAVE_DS2431=mCONFIG_W1_SLAVE_DS2433=mCONFIG_W1_SLAVE_DS2433_CRC=yCONFIG_W1_SLAVE_DS2760=mCONFIG_W1_SLAVE_DS2780=mCONFIG_W1_SLAVE_DS2781=mCONFIG_W1_SLAVE_DS28E04=mCONFIG_W1_SLAVE_BQ27000=mCONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PDA_POWER is not set
# CONFIG_TEST_POWER is not set
# CONFIG_BATTERY_DS2760 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_BQ27x00 is not setCONFIG_BATTERY_DA9052=m
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_CHARGER_ISP1704 is not set
# CONFIG_CHARGER_MAX8903 is not setCONFIG_CHARGER_TWL4030=m
# CONFIG_CHARGER_LP8727 is not setCONFIG_CHARGER_GPIO=m
# CONFIG_CHARGER_MANAGER is not set
# CONFIG_CHARGER_BQ2415X is not set
# CONFIG_CHARGER_BQ24190 is not set
# CONFIG_CHARGER_BQ24735 is not setCONFIG_CHARGER_SMB347=mCONFIG_CHARGER_TPS65090=m
# CONFIG_BATTERY_GAUGE_LTC2941 is not setCONFIG_POWER_RESET=y
# CONFIG_POWER_RESET_BRCMSTB is not setCONFIG_POWER_RESET_GPIO=y
# CONFIG_POWER_RESET_GPIO_RESTART is not set
# CONFIG_POWER_RESET_IMX is not set
# CONFIG_POWER_RESET_LTC2952 is not set
# CONFIG_POWER_RESET_QNAP is not setCONFIG_POWER_RESET_RESTART=y
# CONFIG_POWER_RESET_VERSATILE is not setCONFIG_POWER_RESET_VEXPRESS=y
# CONFIG_POWER_RESET_SYSCON is not set
# CONFIG_POWER_RESET_SYSCON_POWEROFF is not setCONFIG_POWER_AVS=y
# CONFIG_ROCKCHIP_IODOMAIN is not setCONFIG_HWMON=yCONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set
#
# Native drivers
#CONFIG_SENSORS_AD7314=m CONFIG_SENSORS_AD7414=m CONFIG_SENSORS_AD7418=m CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ADM1025=m CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m CONFIG_SENSORS_ADT7X10=m CONFIG_SENSORS_ADT7310=m CONFIG_SENSORS_ADT7410=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m CONFIG_SENSORS_ADT7475=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ATXP1=m CONFIG_SENSORS_DS620=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_DA9052_ADC=m CONFIG_SENSORS_DA9055=m
# CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_F71805F=m CONFIG_SENSORS_F71882FG=m CONFIG_SENSORS_F75375S=m CONFIG_SENSORS_MC13783_ADC=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_G762=m CONFIG_SENSORS_GPIO_FAN=m
# CONFIG_SENSORS_HIH6130 is not set CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IT87=m
# CONFIG_SENSORS_JC42 is not set
# CONFIG_SENSORS_POWR1220 is not set CONFIG_SENSORS_LINEAGE=m
# CONFIG_SENSORS_LTC2945 is not set CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m
# CONFIG_SENSORS_LTC4222 is not set CONFIG_SENSORS_LTC4245=m
# CONFIG_SENSORS_LTC4260 is not set CONFIG_SENSORS_LTC4261=m CONFIG_SENSORS_MAX1111=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m CONFIG_SENSORS_MAX197=m CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m CONFIG_SENSORS_MAX6697=m
# CONFIG_SENSORS_HTU21 is not set CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_ADCXX=m CONFIG_SENSORS_LM63=m CONFIG_SENSORS_LM70=m CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m CONFIG_SENSORS_LM80=m CONFIG_SENSORS_LM83=m CONFIG_SENSORS_LM85=m CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m CONFIG_SENSORS_LM95234=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m
# CONFIG_SENSORS_NTC_THERMISTOR is not set # CONFIG_SENSORS_NCT6683 is not set CONFIG_SENSORS_NCT6775=m
# CONFIG_SENSORS_NCT7802 is not set
# CONFIG_SENSORS_NCT7904 is not set CONFIG_SENSORS_PCF8591=mCONFIG_PMBUS=mCONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LTC2978=m
# CONFIG_SENSORS_LTC2978_REGULATOR is not set CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m
# CONFIG_SENSORS_TPS40422 is not set CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m CONFIG_SENSORS_ZL6100=m
# CONFIG_SENSORS_PWM_FAN is not set CONFIG_SENSORS_SHT15=m CONFIG_SENSORS_SHT21=m
# CONFIG_SENSORS_SHTC1 is not set CONFIG_SENSORS_SIS5595=m CONFIG_SENSORS_DME1737=m CONFIG_SENSORS_EMC1403=m
# CONFIG_SENSORS_EMC2103 is not set CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m CONFIG_SENSORS_SCH56XX_COMMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m
# CONFIG_SENSORS_SMM665 is not set
# CONFIG_SENSORS_ADC128D818 is not set CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_INA209=m CONFIG_SENSORS_INA2XX=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m
# CONFIG_SENSORS_TMP103 is not set CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_VEXPRESS=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m CONFIG_SENSORS_W83795=m
# CONFIG_SENSORS_W83795_FANCTRL is not set CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m CONFIG_THERMAL=yCONFIG_THERMAL_HWMON=yCONFIG_THERMAL_OF=y CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set # CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set CONFIG_THERMAL_GOV_FAIR_SHARE=y CONFIG_THERMAL_GOV_STEP_WISE=y
# CONFIG_THERMAL_GOV_BANG_BANG is not set # CONFIG_THERMAL_GOV_USER_SPACE is not set # CONFIG_CPU_THERMAL is not set
# CONFIG_CLOCK_THERMAL is not set
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_ROCKCHIP_THERMAL is not set CONFIG_ARMADA_THERMAL=m
# CONFIG_TEGRA_SOCTHERM is not set
#
# Texas Instruments thermal drivers
#CONFIG_TI_SOC_THERMAL=mCONFIG_OMAP4_THERMAL=yCONFIG_OMAP5_THERMAL=yCONFIG_WATCHDOG=yCONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
#
# Watchdog Device Drivers
#CONFIG_SOFT_WATCHDOG=mCONFIG_DA9052_WATCHDOG=mCONFIG_DA9055_WATCHDOG=m
# CONFIG_GPIO_WATCHDOG is not set
# CONFIG_XILINX_WATCHDOG is not setCONFIG_ARM_SP805_WATCHDOG=m
# CONFIG_CADENCE_WATCHDOG is not setCONFIG_DW_WATCHDOG=mCONFIG_OMAP_WATCHDOG=m
# CONFIG_ORION_WATCHDOG is not setCONFIG_SUNXI_WATCHDOG=yCONFIG_TWL4030_WATCHDOG=m
# CONFIG_MAX63XX_WATCHDOG is not setCONFIG_IMX2_WDT=m
# CONFIG_TEGRA_WATCHDOG is not setCONFIG_ALIM7101_WDT=mCONFIG_I6300ESB_WDT=m
# CONFIG_MEN_A21_WDT is not set
#
# PCI-based Watchdog Cards
#CONFIG_PCIPCWATCHDOG=mCONFIG_WDTPCI=m
#
# USB-based Watchdog Cards
#CONFIG_USBPCWATCHDOG=mCONFIG_SSB_POSSIBLE=y
#
# Sonics Silicon Backplane
#CONFIG_SSB=mCONFIG_SSB_SPROM=yCONFIG_SSB_BLOCKIO=yCONFIG_SSB_PCIHOST_POSSIBLE=yCONFIG_SSB_PCIHOST=yCONFIG_SSB_B43_PCI_BRIDGE=yCONFIG_SSB_PCMCIAHOST_POSSIBLE=yCONFIG_SSB_PCMCIAHOST=yCONFIG_SSB_SDIOHOST_POSSIBLE=yCONFIG_SSB_SDIOHOST=y
# CONFIG_SSB_DEBUG is not setCONFIG_SSB_DRIVER_PCICORE_POSSIBLE=yCONFIG_SSB_DRIVER_PCICORE=yCONFIG_SSB_DRIVER_GPIO=yCONFIG_BCMA_POSSIBLE=y
#
# Broadcom specific AMBA
#CONFIG_BCMA=mCONFIG_BCMA_BLOCKIO=yCONFIG_BCMA_HOST_PCI_POSSIBLE=yCONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not setCONFIG_BCMA_DRIVER_PCI=yCONFIG_BCMA_DRIVER_GMAC_CMN=yCONFIG_BCMA_DRIVER_GPIO=y
# CONFIG_BCMA_DEBUG is not set
#
# Multifunction device drivers
#CONFIG_MFD_CORE=y
# 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_HLCDC is not set
# CONFIG_MFD_BCM590XX is not setCONFIG_MFD_AXP20X=y
# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_ASIC3 is not set
# CONFIG_PMIC_DA903X is not setCONFIG_PMIC_DA9052=yCONFIG_MFD_DA9052_SPI=yCONFIG_MFD_DA9052_I2C=yCONFIG_MFD_DA9055=y
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not setCONFIG_MFD_MC13XXX=mCONFIG_MFD_MC13XXX_SPI=m
# 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_LPC_ICH is not set
# CONFIG_LPC_SCH is not set
# CONFIG_INTEL_SOC_PMIC is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not setCONFIG_MFD_88PM800=mCONFIG_MFD_88PM805=m
# 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 setCONFIG_MFD_MAX8907=m
# 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 setCONFIG_MFD_VIPERBOARD=m
# CONFIG_MFD_RETU is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_UCB1400_CORE is not set
# CONFIG_MFD_PM8921_CORE is not set
# CONFIG_MFD_RDC321X is not setCONFIG_MFD_RTSX_PCI=m
# 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 setCONFIG_MFD_SM501=mCONFIG_MFD_SM501_GPIO=y
# CONFIG_MFD_SKY81452 is not set
# CONFIG_MFD_SMSC is not setCONFIG_ABX500_CORE=y
# CONFIG_AB3100_CORE is not set
# CONFIG_MFD_STMPE is not setCONFIG_MFD_SUN6I_PRCM=yCONFIG_MFD_SYSCON=yCONFIG_MFD_TI_AM335X_TSCADC=y
# CONFIG_MFD_LP3943 is not set
# CONFIG_MFD_LP8788 is not setCONFIG_MFD_OMAP_USB_HOST=yCONFIG_MFD_PALMAS=y
# CONFIG_TPS6105X is not set
# CONFIG_TPS65010 is not set
# CONFIG_TPS6507X is not setCONFIG_MFD_TPS65090=yCONFIG_MFD_TPS65217=y
# CONFIG_MFD_TPS65218 is not setCONFIG_MFD_TPS6586X=yCONFIG_MFD_TPS65910=yCONFIG_MFD_TPS65912=yCONFIG_MFD_TPS65912_I2C=yCONFIG_MFD_TPS65912_SPI=yCONFIG_MFD_TPS80031=yCONFIG_TWL4030_CORE=yCONFIG_TWL4030_POWER=yCONFIG_MFD_TWL4030_AUDIO=yCONFIG_TWL6040_CORE=yCONFIG_MFD_WL1273_CORE=m
# CONFIG_MFD_LM3533 is not set
# CONFIG_MFD_TC3589X is not setCONFIG_MFD_TMIO=yCONFIG_MFD_T7L66XB=yCONFIG_MFD_TC6387XB=y
# CONFIG_MFD_TC6393XB is not setCONFIG_MFD_VX855=m
# 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 setCONFIG_MFD_VEXPRESS_SYSREG=yCONFIG_REGULATOR=y
# CONFIG_REGULATOR_DEBUG is not setCONFIG_REGULATOR_FIXED_VOLTAGE=yCONFIG_REGULATOR_VIRTUAL_CONSUMER=mCONFIG_REGULATOR_USERSPACE_CONSUMER=m
# CONFIG_REGULATOR_88PM800 is not set
# CONFIG_REGULATOR_ACT8865 is not setCONFIG_REGULATOR_AD5398=mCONFIG_REGULATOR_ANATOP=mCONFIG_REGULATOR_AXP20X=yCONFIG_REGULATOR_DA9052=mCONFIG_REGULATOR_DA9055=m
# CONFIG_REGULATOR_DA9210 is not set
# CONFIG_REGULATOR_DA9211 is not setCONFIG_REGULATOR_FAN53555=mCONFIG_REGULATOR_GPIO=y
# CONFIG_REGULATOR_ISL9305 is not setCONFIG_REGULATOR_ISL6271A=mCONFIG_REGULATOR_LP3971=mCONFIG_REGULATOR_LP3972=mCONFIG_REGULATOR_LP872X=yCONFIG_REGULATOR_LP8755=m
# CONFIG_REGULATOR_LTC3589 is not setCONFIG_REGULATOR_MAX1586=mCONFIG_REGULATOR_MAX8649=mCONFIG_REGULATOR_MAX8660=mCONFIG_REGULATOR_MAX8907=mCONFIG_REGULATOR_MAX8952=mCONFIG_REGULATOR_MAX8973=mCONFIG_REGULATOR_MC13XXX_CORE=mCONFIG_REGULATOR_MC13783=mCONFIG_REGULATOR_MC13892=mCONFIG_REGULATOR_PALMAS=m
# CONFIG_REGULATOR_PBIAS is not set
# CONFIG_REGULATOR_PFUZE100 is not set
# CONFIG_REGULATOR_PWM is not setCONFIG_REGULATOR_TI_ABB=yCONFIG_REGULATOR_TPS51632=mCONFIG_REGULATOR_TPS62360=mCONFIG_REGULATOR_TPS65023=mCONFIG_REGULATOR_TPS6507X=mCONFIG_REGULATOR_TPS65090=mCONFIG_REGULATOR_TPS65217=mCONFIG_REGULATOR_TPS6524X=mCONFIG_REGULATOR_TPS6586X=mCONFIG_REGULATOR_TPS65910=mCONFIG_REGULATOR_TPS65912=mCONFIG_REGULATOR_TPS80031=mCONFIG_REGULATOR_TWL4030=yCONFIG_REGULATOR_VEXPRESS=mCONFIG_MEDIA_SUPPORT=y
#
# Multimedia core support
#CONFIG_MEDIA_CAMERA_SUPPORT=yCONFIG_MEDIA_ANALOG_TV_SUPPORT=yCONFIG_MEDIA_DIGITAL_TV_SUPPORT=yCONFIG_MEDIA_RADIO_SUPPORT=y
# CONFIG_MEDIA_SDR_SUPPORT is not setCONFIG_MEDIA_RC_SUPPORT=yCONFIG_MEDIA_CONTROLLER=y
# CONFIG_MEDIA_CONTROLLER_DVB is not setCONFIG_VIDEO_DEV=yCONFIG_VIDEO_V4L2_SUBDEV_API=yCONFIG_VIDEO_V4L2=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
# CONFIG_VIDEO_PCI_SKELETON is not setCONFIG_VIDEO_TUNER=mCONFIG_V4L2_MEM2MEM_DEV=mCONFIG_VIDEOBUF_GEN=mCONFIG_VIDEOBUF_DMA_SG=mCONFIG_VIDEOBUF_VMALLOC=mCONFIG_VIDEOBUF_DVB=mCONFIG_VIDEOBUF2_CORE=mCONFIG_VIDEOBUF2_MEMOPS=mCONFIG_VIDEOBUF2_DMA_CONTIG=mCONFIG_VIDEOBUF2_VMALLOC=mCONFIG_VIDEOBUF2_DMA_SG=mCONFIG_VIDEOBUF2_DVB=mCONFIG_DVB_CORE=yCONFIG_DVB_NET=yCONFIG_TTPCI_EEPROM=mCONFIG_DVB_MAX_ADAPTERS=8CONFIG_DVB_DYNAMIC_MINORS=y
#
# Media drivers
#CONFIG_RC_CORE=yCONFIG_RC_MAP=mCONFIG_RC_DECODERS=yCONFIG_LIRC=mCONFIG_IR_LIRC_CODEC=mCONFIG_IR_NEC_DECODER=yCONFIG_IR_RC5_DECODER=yCONFIG_IR_RC6_DECODER=mCONFIG_IR_JVC_DECODER=mCONFIG_IR_SONY_DECODER=mCONFIG_IR_SANYO_DECODER=mCONFIG_IR_SHARP_DECODER=mCONFIG_IR_MCE_KBD_DECODER=mCONFIG_IR_XMP_DECODER=mCONFIG_RC_DEVICES=yCONFIG_RC_ATI_REMOTE=m
# CONFIG_IR_HIX5HD2 is not setCONFIG_IR_IMON=mCONFIG_IR_MCEUSB=mCONFIG_IR_REDRAT3=mCONFIG_IR_STREAMZAP=m
# CONFIG_IR_IGORPLUGUSB is not setCONFIG_IR_IGUANA=mCONFIG_IR_TTUSBIR=mCONFIG_RC_LOOPBACK=mCONFIG_IR_GPIO_CIR=mCONFIG_IR_SUNXI=yCONFIG_MEDIA_USB_SUPPORT=y
#
# Webcam devices
#CONFIG_USB_VIDEO_CLASS=mCONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=yCONFIG_USB_GSPCA=mCONFIG_USB_M5602=mCONFIG_USB_STV06XX=mCONFIG_USB_GL860=mCONFIG_USB_GSPCA_BENQ=mCONFIG_USB_GSPCA_CONEX=mCONFIG_USB_GSPCA_CPIA1=mCONFIG_USB_GSPCA_DTCS033=mCONFIG_USB_GSPCA_ETOMS=mCONFIG_USB_GSPCA_FINEPIX=mCONFIG_USB_GSPCA_JEILINJ=mCONFIG_USB_GSPCA_JL2005BCD=mCONFIG_USB_GSPCA_KINECT=mCONFIG_USB_GSPCA_KONICA=mCONFIG_USB_GSPCA_MARS=mCONFIG_USB_GSPCA_MR97310A=mCONFIG_USB_GSPCA_NW80X=mCONFIG_USB_GSPCA_OV519=mCONFIG_USB_GSPCA_OV534=mCONFIG_USB_GSPCA_OV534_9=mCONFIG_USB_GSPCA_PAC207=mCONFIG_USB_GSPCA_PAC7302=mCONFIG_USB_GSPCA_PAC7311=mCONFIG_USB_GSPCA_SE401=mCONFIG_USB_GSPCA_SN9C2028=mCONFIG_USB_GSPCA_SN9C20X=mCONFIG_USB_GSPCA_SONIXB=mCONFIG_USB_GSPCA_SONIXJ=mCONFIG_USB_GSPCA_SPCA500=mCONFIG_USB_GSPCA_SPCA501=mCONFIG_USB_GSPCA_SPCA505=mCONFIG_USB_GSPCA_SPCA506=mCONFIG_USB_GSPCA_SPCA508=mCONFIG_USB_GSPCA_SPCA561=mCONFIG_USB_GSPCA_SPCA1528=mCONFIG_USB_GSPCA_SQ905=mCONFIG_USB_GSPCA_SQ905C=mCONFIG_USB_GSPCA_SQ930X=mCONFIG_USB_GSPCA_STK014=mCONFIG_USB_GSPCA_STK1135=mCONFIG_USB_GSPCA_STV0680=mCONFIG_USB_GSPCA_SUNPLUS=mCONFIG_USB_GSPCA_T613=mCONFIG_USB_GSPCA_TOPRO=mCONFIG_USB_GSPCA_TOUPTEK=mCONFIG_USB_GSPCA_TV8532=mCONFIG_USB_GSPCA_VC032X=mCONFIG_USB_GSPCA_VICAM=mCONFIG_USB_GSPCA_XIRLINK_CIT=mCONFIG_USB_GSPCA_ZC3XX=mCONFIG_USB_PWC=m
# CONFIG_USB_PWC_DEBUG is not setCONFIG_USB_PWC_INPUT_EVDEV=yCONFIG_VIDEO_CPIA2=mCONFIG_USB_ZR364XX=mCONFIG_USB_STKWEBCAM=mCONFIG_USB_S2255=mCONFIG_VIDEO_USBTV=m
#
# Analog TV USB devices
#CONFIG_VIDEO_PVRUSB2=mCONFIG_VIDEO_PVRUSB2_SYSFS=yCONFIG_VIDEO_PVRUSB2_DVB=y
# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not setCONFIG_VIDEO_HDPVR=mCONFIG_VIDEO_USBVISION=mCONFIG_VIDEO_STK1160_COMMON=mCONFIG_VIDEO_STK1160_AC97=yCONFIG_VIDEO_STK1160=m
# CONFIG_VIDEO_GO7007 is not set
#
# Analog/digital TV USB devices
#CONFIG_VIDEO_AU0828=mCONFIG_VIDEO_AU0828_V4L2=y
# CONFIG_VIDEO_AU0828_RC is not setCONFIG_VIDEO_CX231XX=mCONFIG_VIDEO_CX231XX_RC=yCONFIG_VIDEO_CX231XX_ALSA=mCONFIG_VIDEO_CX231XX_DVB=mCONFIG_VIDEO_TM6000=mCONFIG_VIDEO_TM6000_ALSA=mCONFIG_VIDEO_TM6000_DVB=m
#
# Digital TV USB devices
#CONFIG_DVB_USB=m
# CONFIG_DVB_USB_DEBUG is not setCONFIG_DVB_USB_A800=mCONFIG_DVB_USB_DIBUSB_MB=m
# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not setCONFIG_DVB_USB_DIBUSB_MC=mCONFIG_DVB_USB_DIB0700=mCONFIG_DVB_USB_UMT_010=mCONFIG_DVB_USB_CXUSB=mCONFIG_DVB_USB_M920X=mCONFIG_DVB_USB_DIGITV=mCONFIG_DVB_USB_VP7045=mCONFIG_DVB_USB_VP702X=mCONFIG_DVB_USB_GP8PSK=mCONFIG_DVB_USB_NOVA_T_USB2=mCONFIG_DVB_USB_TTUSB2=mCONFIG_DVB_USB_DTT200U=mCONFIG_DVB_USB_OPERA1=mCONFIG_DVB_USB_AF9005=mCONFIG_DVB_USB_AF9005_REMOTE=m
# CONFIG_DVB_USB_PCTV452E is not setCONFIG_DVB_USB_DW2102=mCONFIG_DVB_USB_CINERGY_T2=mCONFIG_DVB_USB_DTV5100=mCONFIG_DVB_USB_FRIIO=mCONFIG_DVB_USB_AZ6027=mCONFIG_DVB_USB_TECHNISAT_USB2=mCONFIG_DVB_USB_V2=mCONFIG_DVB_USB_AF9015=mCONFIG_DVB_USB_AF9035=mCONFIG_DVB_USB_ANYSEE=mCONFIG_DVB_USB_AU6610=mCONFIG_DVB_USB_AZ6007=mCONFIG_DVB_USB_CE6230=mCONFIG_DVB_USB_EC168=mCONFIG_DVB_USB_GL861=mCONFIG_DVB_USB_LME2510=mCONFIG_DVB_USB_MXL111SF=mCONFIG_DVB_USB_RTL28XXU=m
# CONFIG_DVB_USB_DVBSKY is not setCONFIG_DVB_TTUSB_BUDGET=mCONFIG_DVB_TTUSB_DEC=mCONFIG_SMS_USB_DRV=mCONFIG_DVB_B2C2_FLEXCOP_USB=m
# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
# CONFIG_DVB_AS102 is not set
#
# Webcam, TV (analog/digital) USB devices
#CONFIG_VIDEO_EM28XX=m
# CONFIG_VIDEO_EM28XX_V4L2 is not setCONFIG_VIDEO_EM28XX_ALSA=mCONFIG_VIDEO_EM28XX_DVB=mCONFIG_VIDEO_EM28XX_RC=mCONFIG_MEDIA_PCI_SUPPORT=y
#
# Media capture support
#
#
# Media capture/analog TV support
#CONFIG_VIDEO_IVTV=m
# CONFIG_VIDEO_IVTV_ALSA is not setCONFIG_VIDEO_FB_IVTV=mCONFIG_VIDEO_HEXIUM_GEMINI=mCONFIG_VIDEO_HEXIUM_ORION=mCONFIG_VIDEO_MXB=m
# CONFIG_VIDEO_SOLO6X10 is not set
# CONFIG_VIDEO_TW68 is not set
#
# Media capture/analog/hybrid TV support
#CONFIG_VIDEO_CX18=mCONFIG_VIDEO_CX18_ALSA=mCONFIG_VIDEO_CX23885=mCONFIG_MEDIA_ALTERA_CI=m
# CONFIG_VIDEO_CX25821 is not setCONFIG_VIDEO_CX88=mCONFIG_VIDEO_CX88_ALSA=mCONFIG_VIDEO_CX88_BLACKBIRD=mCONFIG_VIDEO_CX88_DVB=mCONFIG_VIDEO_CX88_ENABLE_VP3054=yCONFIG_VIDEO_CX88_VP3054=mCONFIG_VIDEO_CX88_MPEG=mCONFIG_VIDEO_BT848=mCONFIG_DVB_BT8XX=mCONFIG_VIDEO_SAA7134=mCONFIG_VIDEO_SAA7134_ALSA=mCONFIG_VIDEO_SAA7134_RC=yCONFIG_VIDEO_SAA7134_DVB=mCONFIG_VIDEO_SAA7164=m
#
# Media digital TV PCI Adapters
#CONFIG_DVB_AV7110_IR=yCONFIG_DVB_AV7110=mCONFIG_DVB_AV7110_OSD=yCONFIG_DVB_BUDGET_CORE=mCONFIG_DVB_BUDGET=mCONFIG_DVB_BUDGET_CI=mCONFIG_DVB_BUDGET_AV=mCONFIG_DVB_BUDGET_PATCH=mCONFIG_DVB_B2C2_FLEXCOP_PCI=m
# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not setCONFIG_DVB_PLUTO2=mCONFIG_DVB_DM1105=mCONFIG_DVB_PT1=m
# CONFIG_DVB_PT3 is not setCONFIG_MANTIS_CORE=mCONFIG_DVB_MANTIS=mCONFIG_DVB_HOPPER=mCONFIG_DVB_NGENE=mCONFIG_DVB_DDBRIDGE=m
# CONFIG_DVB_SMIPCIE is not setCONFIG_V4L_PLATFORM_DRIVERS=yCONFIG_VIDEO_CAFE_CCIC=m
# CONFIG_VIDEO_OMAP2_VOUT is not set
# CONFIG_VIDEO_OMAP3 is not set
# CONFIG_SOC_CAMERA is not set
# CONFIG_VIDEO_AM437X_VPFE is not set
# CONFIG_VIDEO_XILINX is not setCONFIG_V4L_MEM2MEM_DRIVERS=yCONFIG_VIDEO_CODA=m
# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
# CONFIG_VIDEO_SH_VEU is not setCONFIG_V4L_TEST_DRIVERS=y
# CONFIG_VIDEO_VIVID is not set
# CONFIG_VIDEO_VIM2M is not set
#
# Supported MMC/SDIO adapters
#CONFIG_SMS_SDIO_DRV=mCONFIG_RADIO_ADAPTERS=yCONFIG_RADIO_TEA575X=mCONFIG_RADIO_SI470X=yCONFIG_USB_SI470X=mCONFIG_I2C_SI470X=mCONFIG_RADIO_SI4713=m
# CONFIG_USB_SI4713 is not set
# CONFIG_PLATFORM_SI4713 is not setCONFIG_I2C_SI4713=mCONFIG_USB_MR800=mCONFIG_USB_DSBR=mCONFIG_RADIO_MAXIRADIO=mCONFIG_RADIO_SHARK=mCONFIG_RADIO_SHARK2=mCONFIG_USB_KEENE=m
# CONFIG_USB_RAREMONO is not setCONFIG_USB_MA901=mCONFIG_RADIO_TEA5764=mCONFIG_RADIO_SAA7706H=m
# CONFIG_RADIO_TEF6862 is not setCONFIG_RADIO_WL1273=m
#
# Texas Instruments WL128x FM driver (ST based)
#CONFIG_RADIO_WL128X=m
#
# Supported FireWire (IEEE 1394) Adapters
#CONFIG_DVB_FIREDTV=mCONFIG_DVB_FIREDTV_INPUT=yCONFIG_MEDIA_COMMON_OPTIONS=y
#
# common driver options # CONFIG_VIDEO_CX2341X=m CONFIG_VIDEO_TVEEPROM=m CONFIG_CYPRESS_FIRMWARE=m CONFIG_DVB_B2C2_FLEXCOP=m CONFIG_VIDEO_SAA7146=m CONFIG_VIDEO_SAA7146_VV=m CONFIG_SMS_SIANO_MDTV=m CONFIG_SMS_SIANO_RC=y # CONFIG_SMS_SIANO_DEBUGFS is not set
#
# Media ancillary drivers (tuners, sensors, i2c, frontends) #CONFIG_MEDIA_SUBDRV_AUTOSELECT=y CONFIG_MEDIA_ATTACH=yCONFIG_VIDEO_IR_I2C=y
#
# Audio decoders, processors and mixers
#CONFIG_VIDEO_TVAUDIO=mCONFIG_VIDEO_TDA7432=mCONFIG_VIDEO_TDA9840=mCONFIG_VIDEO_TEA6415C=mCONFIG_VIDEO_TEA6420=mCONFIG_VIDEO_MSP3400=mCONFIG_VIDEO_CS5345=mCONFIG_VIDEO_CS53L32A=mCONFIG_VIDEO_WM8775=mCONFIG_VIDEO_WM8739=mCONFIG_VIDEO_VP27SMPX=m
#
# RDS decoders
#CONFIG_VIDEO_SAA6588=m
#
# Video decoders
#CONFIG_VIDEO_SAA711X=m
#
# Video and audio decoders
#CONFIG_VIDEO_SAA717X=mCONFIG_VIDEO_CX25840=m
#
# Video encoders
#CONFIG_VIDEO_SAA7127=m
#
# Camera sensor devices
#CONFIG_VIDEO_OV7670=m
#
# Flash devices
#
#
# Video improvement chips
#CONFIG_VIDEO_UPD64031A=mCONFIG_VIDEO_UPD64083=m
#
# Audio/Video compression chips
#CONFIG_VIDEO_SAA6752HS=m
#
# Miscellaneous helper chips
#CONFIG_VIDEO_M52790=m
#
# Sensors used on soc_camera driver
#CONFIG_MEDIA_TUNER=yCONFIG_MEDIA_TUNER_SIMPLE=yCONFIG_MEDIA_TUNER_TDA8290=yCONFIG_MEDIA_TUNER_TDA827X=yCONFIG_MEDIA_TUNER_TDA18271=yCONFIG_MEDIA_TUNER_TDA9887=yCONFIG_MEDIA_TUNER_TEA5761=yCONFIG_MEDIA_TUNER_TEA5767=yCONFIG_MEDIA_TUNER_MT20XX=yCONFIG_MEDIA_TUNER_MT2060=mCONFIG_MEDIA_TUNER_MT2063=mCONFIG_MEDIA_TUNER_MT2266=mCONFIG_MEDIA_TUNER_MT2131=mCONFIG_MEDIA_TUNER_QT1010=mCONFIG_MEDIA_TUNER_XC2028=yCONFIG_MEDIA_TUNER_XC5000=yCONFIG_MEDIA_TUNER_XC4000=yCONFIG_MEDIA_TUNER_MXL5005S=mCONFIG_MEDIA_TUNER_MXL5007T=mCONFIG_MEDIA_TUNER_MC44S803=yCONFIG_MEDIA_TUNER_MAX2165=mCONFIG_MEDIA_TUNER_TDA18218=mCONFIG_MEDIA_TUNER_FC0011=mCONFIG_MEDIA_TUNER_FC0012=mCONFIG_MEDIA_TUNER_FC0013=mCONFIG_MEDIA_TUNER_TDA18212=mCONFIG_MEDIA_TUNER_E4000=mCONFIG_MEDIA_TUNER_FC2580=mCONFIG_MEDIA_TUNER_M88RS6000T=mCONFIG_MEDIA_TUNER_TUA9001=mCONFIG_MEDIA_TUNER_SI2157=mCONFIG_MEDIA_TUNER_IT913X=mCONFIG_MEDIA_TUNER_R820T=m
#
# Multistandard (satellite) frontends
#CONFIG_DVB_STB0899=mCONFIG_DVB_STB6100=m
CONFIG_DVB_STV090x=m
CONFIG_DVB_STV6110x=mCONFIG_DVB_M88DS3103=m
#
# Multistandard (cable + terrestrial) frontends
#CONFIG_DVB_DRXK=mCONFIG_DVB_TDA18271C2DD=mCONFIG_DVB_SI2165=m
#
# DVB-S (satellite) frontends
#CONFIG_DVB_CX24110=mCONFIG_DVB_CX24123=mCONFIG_DVB_MT312=mCONFIG_DVB_ZL10036=mCONFIG_DVB_ZL10039=mCONFIG_DVB_S5H1420=mCONFIG_DVB_STV0288=mCONFIG_DVB_STB6000=mCONFIG_DVB_STV0299=mCONFIG_DVB_STV6110=mCONFIG_DVB_STV0900=mCONFIG_DVB_TDA8083=mCONFIG_DVB_TDA10086=mCONFIG_DVB_TDA8261=mCONFIG_DVB_VES1X93=mCONFIG_DVB_TUNER_ITD1000=mCONFIG_DVB_TUNER_CX24113=mCONFIG_DVB_TDA826X=mCONFIG_DVB_TUA6100=mCONFIG_DVB_CX24116=mCONFIG_DVB_CX24117=mCONFIG_DVB_SI21XX=mCONFIG_DVB_TS2020=mCONFIG_DVB_DS3000=mCONFIG_DVB_MB86A16=mCONFIG_DVB_TDA10071=m
#
# DVB-T (terrestrial) frontends
#CONFIG_DVB_SP8870=mCONFIG_DVB_SP887X=mCONFIG_DVB_CX22700=mCONFIG_DVB_CX22702=mCONFIG_DVB_DRXD=mCONFIG_DVB_L64781=mCONFIG_DVB_TDA1004X=mCONFIG_DVB_NXT6000=mCONFIG_DVB_MT352=mCONFIG_DVB_ZL10353=mCONFIG_DVB_DIB3000MB=mCONFIG_DVB_DIB3000MC=mCONFIG_DVB_DIB7000M=mCONFIG_DVB_DIB7000P=mCONFIG_DVB_TDA10048=mCONFIG_DVB_AF9013=mCONFIG_DVB_EC100=mCONFIG_DVB_STV0367=mCONFIG_DVB_CXD2820R=mCONFIG_DVB_RTL2830=mCONFIG_DVB_RTL2832=mCONFIG_DVB_SI2168=m
# CONFIG_DVB_AS102_FE is not set
#
# DVB-C (cable) frontends
#CONFIG_DVB_VES1820=mCONFIG_DVB_TDA10021=mCONFIG_DVB_TDA10023=mCONFIG_DVB_STV0297=m
#
# ATSC (North American/Korean Terrestrial/Cable DTV) frontends #CONFIG_DVB_NXT200X=mCONFIG_DVB_OR51211=mCONFIG_DVB_OR51132=mCONFIG_DVB_BCM3510=mCONFIG_DVB_LGDT330X=mCONFIG_DVB_LGDT3305=mCONFIG_DVB_LGDT3306A=mCONFIG_DVB_LG2160=mCONFIG_DVB_S5H1409=mCONFIG_DVB_AU8522=mCONFIG_DVB_AU8522_DTV=mCONFIG_DVB_AU8522_V4L=mCONFIG_DVB_S5H1411=m
#
# ISDB-T (terrestrial) frontends
#CONFIG_DVB_S921=mCONFIG_DVB_DIB8000=mCONFIG_DVB_MB86A20S=m
#
# ISDB-S (satellite) & ISDB-T (terrestrial) frontends #
#
# Digital terrestrial only tuners/PLL
#CONFIG_DVB_PLL=mCONFIG_DVB_TUNER_DIB0070=mCONFIG_DVB_TUNER_DIB0090=m
#
# SEC control devices for DVB-S
#CONFIG_DVB_DRX39XYJ=mCONFIG_DVB_LNBP21=mCONFIG_DVB_ISL6405=mCONFIG_DVB_ISL6421=mCONFIG_DVB_ISL6423=mCONFIG_DVB_A8293=mCONFIG_DVB_LGS8GXX=mCONFIG_DVB_ATBM8830=m
CONFIG_DVB_TDA665x=mCONFIG_DVB_IX2505V=mCONFIG_DVB_M88RS2000=mCONFIG_DVB_AF9033=m
#
# Tools to develop new frontends
#
# CONFIG_DVB_DUMMY_FE is not set
#
# Graphics support
#CONFIG_VGA_ARB=yCONFIG_VGA_ARB_MAX_GPUS=16CONFIG_TEGRA_HOST1X=yCONFIG_TEGRA_HOST1X_FIREWALL=y
# CONFIG_IMX_IPUV3_CORE is not set
#
# Direct Rendering Manager
#CONFIG_DRM=yCONFIG_DRM_MIPI_DSI=yCONFIG_DRM_KMS_HELPER=yCONFIG_DRM_KMS_FB_HELPER=yCONFIG_DRM_LOAD_EDID_FIRMWARE=yCONFIG_DRM_TTM=mCONFIG_DRM_GEM_CMA_HELPER=yCONFIG_DRM_KMS_CMA_HELPER=y
#
# I2C encoder or helper chips
#
# CONFIG_DRM_I2C_ADV7511 is not setCONFIG_DRM_I2C_CH7006=mCONFIG_DRM_I2C_SIL164=mCONFIG_DRM_I2C_NXP_TDA998X=m
# CONFIG_DRM_PTN3460 is not set
# CONFIG_DRM_PS8622 is not set
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_NOUVEAU is not set
# CONFIG_DRM_MGA is not setCONFIG_DRM_VIA=m
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_VGEM is not set
# CONFIG_DRM_EXYNOS is not setCONFIG_DRM_VMWGFX=mCONFIG_DRM_VMWGFX_FBCON=yCONFIG_DRM_UDL=mCONFIG_DRM_AST=mCONFIG_DRM_MGAG200=mCONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_ARMADA is not setCONFIG_DRM_OMAP=mCONFIG_DRM_OMAP_NUM_CRTCS=2CONFIG_DRM_TILCDC=mCONFIG_DRM_QXL=m
# CONFIG_DRM_BOCHS is not setCONFIG_DRM_TEGRA=yCONFIG_DRM_TEGRA_FBDEV=y
# CONFIG_DRM_TEGRA_DEBUG is not set
# CONFIG_DRM_TEGRA_STAGING is not setCONFIG_DRM_PANEL=y
#
# Display Panels
#
# CONFIG_DRM_PANEL_SIMPLE is not set
# CONFIG_DRM_PANEL_LD9040 is not set
# CONFIG_DRM_PANEL_S6E8AA0 is not set
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
# CONFIG_DRM_STI is not set
#
# Frame buffer Devices
#CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not setCONFIG_FB_CMDLINE=y
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not setCONFIG_FB_CFB_FILLRECT=yCONFIG_FB_CFB_COPYAREA=yCONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not setCONFIG_FB_SYS_FILLRECT=yCONFIG_FB_SYS_COPYAREA=yCONFIG_FB_SYS_IMAGEBLIT=y
# CONFIG_FB_FOREIGN_ENDIAN is not setCONFIG_FB_SYS_FOPS=mCONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not setCONFIG_FB_MODE_HELPERS=yCONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not setCONFIG_FB_ARMCLCD=yCONFIG_PLAT_VERSATILE_CLCD=yCONFIG_FB_IMX=m
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_UVESA is not set
# CONFIG_FB_OPENCORES is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_I740 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_TMIO is not set
# CONFIG_FB_SM501 is not set
# CONFIG_FB_SMSCUFX is not set
# CONFIG_FB_UDL is not set
# CONFIG_FB_XILINX is not set
# CONFIG_FB_DA8XX is not setCONFIG_FB_VIRTUAL=m
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
# CONFIG_FB_AUO_K190X is not set
# CONFIG_FB_MXS is not setCONFIG_FB_SIMPLE=yCONFIG_OMAP2_DSS_INIT=yCONFIG_OMAP2_DSS=m
# CONFIG_OMAP2_DSS_DEBUG is not set
# CONFIG_OMAP2_DSS_DEBUGFS is not setCONFIG_OMAP2_DSS_DPI=yCONFIG_OMAP2_DSS_VENC=yCONFIG_OMAP2_DSS_HDMI_COMMON=yCONFIG_OMAP4_DSS_HDMI=y
# CONFIG_OMAP5_DSS_HDMI is not setCONFIG_OMAP2_DSS_SDI=yCONFIG_OMAP2_DSS_DSI=yCONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y
# CONFIG_FB_OMAP2 is not set
#
# OMAP Display Device Drivers (new device model)
#
# CONFIG_DISPLAY_ENCODER_OPA362 is not setCONFIG_DISPLAY_ENCODER_TFP410=mCONFIG_DISPLAY_ENCODER_TPD12S015=mCONFIG_DISPLAY_CONNECTOR_DVI=mCONFIG_DISPLAY_CONNECTOR_HDMI=mCONFIG_DISPLAY_CONNECTOR_ANALOG_TV=mCONFIG_DISPLAY_PANEL_DPI=mCONFIG_DISPLAY_PANEL_DSI_CM=mCONFIG_DISPLAY_PANEL_SONY_ACX565AKM=mCONFIG_DISPLAY_PANEL_LGPHILIPS_LB035Q02=mCONFIG_DISPLAY_PANEL_SHARP_LS037V7DW01=m
# CONFIG_DISPLAY_PANEL_TPO_TD028TTEC1 is not setCONFIG_DISPLAY_PANEL_TPO_TD043MTEA1=mCONFIG_DISPLAY_PANEL_NEC_NL8048HL11=mCONFIG_FB_SSD1307=mCONFIG_BACKLIGHT_LCD_SUPPORT=yCONFIG_LCD_CLASS_DEVICE=mCONFIG_LCD_L4F00242T03=mCONFIG_LCD_LMS283GF05=mCONFIG_LCD_LTV350QV=mCONFIG_LCD_ILI922X=mCONFIG_LCD_ILI9320=mCONFIG_LCD_TDO24M=mCONFIG_LCD_VGG2432A4=mCONFIG_LCD_PLATFORM=mCONFIG_LCD_S6E63M0=mCONFIG_LCD_LD9040=mCONFIG_LCD_AMS369FG06=mCONFIG_LCD_LMS501KF03=mCONFIG_LCD_HX8357=mCONFIG_BACKLIGHT_CLASS_DEVICE=m
# CONFIG_BACKLIGHT_GENERIC is not setCONFIG_BACKLIGHT_PWM=mCONFIG_BACKLIGHT_DA9052=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not setCONFIG_BACKLIGHT_LP855X=mCONFIG_BACKLIGHT_PANDORA=mCONFIG_BACKLIGHT_TPS65217=m
# CONFIG_BACKLIGHT_GPIO is not set
# CONFIG_BACKLIGHT_LV5207LP is not set
# CONFIG_BACKLIGHT_BD6107 is not set
# CONFIG_VGASTATE is not setCONFIG_VIDEOMODE_HELPERS=yCONFIG_HDMI=y
#
# Console display driver support
#CONFIG_DUMMY_CONSOLE=yCONFIG_FRAMEBUFFER_CONSOLE=yCONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=yCONFIG_FRAMEBUFFER_CONSOLE_ROTATION=yCONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not setCONFIG_LOGO_LINUX_CLUT224=yCONFIG_SOUND=yCONFIG_SOUND_OSS_CORE=yCONFIG_SOUND_OSS_CORE_PRECLAIM=yCONFIG_SND=yCONFIG_SND_TIMER=yCONFIG_SND_PCM=yCONFIG_SND_DMAENGINE_PCM=mCONFIG_SND_HWDEP=yCONFIG_SND_RAWMIDI=yCONFIG_SND_COMPRESS_OFFLOAD=mCONFIG_SND_JACK=yCONFIG_SND_SEQUENCER=mCONFIG_SND_SEQ_DUMMY=mCONFIG_SND_OSSEMUL=yCONFIG_SND_MIXER_OSS=mCONFIG_SND_PCM_OSS=mCONFIG_SND_PCM_OSS_PLUGINS=yCONFIG_SND_SEQUENCER_OSS=yCONFIG_SND_HRTIMER=mCONFIG_SND_SEQ_HRTIMER_DEFAULT=yCONFIG_SND_DYNAMIC_MINORS=yCONFIG_SND_MAX_CARDS=32
# CONFIG_SND_SUPPORT_OLD_API is not setCONFIG_SND_VERBOSE_PROCFS=yCONFIG_SND_VERBOSE_PRINTK=yCONFIG_SND_DEBUG=y
# CONFIG_SND_DEBUG_VERBOSE is not setCONFIG_SND_PCM_XRUN_DEBUG=yCONFIG_SND_VMASTER=yCONFIG_SND_KCTL_JACK=yCONFIG_SND_RAWMIDI_SEQ=mCONFIG_SND_OPL3_LIB_SEQ=m
# CONFIG_SND_OPL4_LIB_SEQ is not set
# CONFIG_SND_SBAWE_SEQ is not setCONFIG_SND_EMU10K1_SEQ=mCONFIG_SND_MPU401_UART=mCONFIG_SND_OPL3_LIB=mCONFIG_SND_VX_LIB=mCONFIG_SND_AC97_CODEC=mCONFIG_SND_DRIVERS=yCONFIG_SND_DUMMY=mCONFIG_SND_ALOOP=mCONFIG_SND_VIRMIDI=mCONFIG_SND_MTPAV=mCONFIG_SND_MTS64=mCONFIG_SND_SERIAL_U16550=mCONFIG_SND_MPU401=mCONFIG_SND_PORTMAN2X4=mCONFIG_SND_AC97_POWER_SAVE=yCONFIG_SND_AC97_POWER_SAVE_DEFAULT=0CONFIG_SND_PCI=yCONFIG_SND_AD1889=mCONFIG_SND_ALS300=m
# CONFIG_SND_ALI5451 is not setCONFIG_SND_ATIIXP=mCONFIG_SND_ATIIXP_MODEM=mCONFIG_SND_AU8810=mCONFIG_SND_AU8820=mCONFIG_SND_AU8830=m
# CONFIG_SND_AW2 is not setCONFIG_SND_AZT3328=mCONFIG_SND_BT87X=m
# CONFIG_SND_BT87X_OVERCLOCK is not setCONFIG_SND_CA0106=mCONFIG_SND_CMIPCI=mCONFIG_SND_OXYGEN_LIB=mCONFIG_SND_OXYGEN=mCONFIG_SND_CS4281=mCONFIG_SND_CS46XX=mCONFIG_SND_CS46XX_NEW_DSP=yCONFIG_SND_CTXFI=mCONFIG_SND_DARLA20=mCONFIG_SND_GINA20=mCONFIG_SND_LAYLA20=mCONFIG_SND_DARLA24=mCONFIG_SND_GINA24=mCONFIG_SND_LAYLA24=mCONFIG_SND_MONA=mCONFIG_SND_MIA=mCONFIG_SND_ECHO3G=mCONFIG_SND_INDIGO=mCONFIG_SND_INDIGOIO=mCONFIG_SND_INDIGODJ=mCONFIG_SND_INDIGOIOX=mCONFIG_SND_INDIGODJX=mCONFIG_SND_EMU10K1=mCONFIG_SND_EMU10K1X=mCONFIG_SND_ENS1370=mCONFIG_SND_ENS1371=mCONFIG_SND_ES1938=mCONFIG_SND_ES1968=mCONFIG_SND_ES1968_INPUT=yCONFIG_SND_ES1968_RADIO=yCONFIG_SND_FM801=mCONFIG_SND_FM801_TEA575X_BOOL=yCONFIG_SND_HDSP=mCONFIG_SND_HDSPM=mCONFIG_SND_ICE1712=mCONFIG_SND_ICE1724=mCONFIG_SND_INTEL8X0=mCONFIG_SND_INTEL8X0M=mCONFIG_SND_KORG1212=mCONFIG_SND_LOLA=mCONFIG_SND_MAESTRO3=mCONFIG_SND_MAESTRO3_INPUT=yCONFIG_SND_MIXART=mCONFIG_SND_NM256=mCONFIG_SND_PCXHR=mCONFIG_SND_RIPTIDE=mCONFIG_SND_RME32=mCONFIG_SND_RME96=mCONFIG_SND_RME9652=mCONFIG_SND_SONICVIBES=mCONFIG_SND_TRIDENT=mCONFIG_SND_VIA82XX=mCONFIG_SND_VIA82XX_MODEM=mCONFIG_SND_VIRTUOSO=mCONFIG_SND_VX222=mCONFIG_SND_YMFPCI=m
#
# HD-Audio
#CONFIG_SND_HDA=mCONFIG_SND_HDA_INTEL=m
# CONFIG_SND_HDA_TEGRA is not setCONFIG_SND_HDA_DSP_LOADER=yCONFIG_SND_HDA_PREALLOC_SIZE=4096CONFIG_SND_HDA_HWDEP=yCONFIG_SND_HDA_RECONFIG=yCONFIG_SND_HDA_INPUT_BEEP=yCONFIG_SND_HDA_INPUT_BEEP_MODE=0CONFIG_SND_HDA_INPUT_JACK=yCONFIG_SND_HDA_PATCH_LOADER=yCONFIG_SND_HDA_CODEC_REALTEK=mCONFIG_SND_HDA_CODEC_ANALOG=mCONFIG_SND_HDA_CODEC_SIGMATEL=mCONFIG_SND_HDA_CODEC_VIA=mCONFIG_SND_HDA_CODEC_HDMI=mCONFIG_SND_HDA_CODEC_CIRRUS=mCONFIG_SND_HDA_CODEC_CONEXANT=mCONFIG_SND_HDA_CODEC_CA0110=mCONFIG_SND_HDA_CODEC_CA0132=mCONFIG_SND_HDA_CODEC_CA0132_DSP=yCONFIG_SND_HDA_CODEC_CMEDIA=mCONFIG_SND_HDA_CODEC_SI3054=mCONFIG_SND_HDA_GENERIC=mCONFIG_SND_HDA_POWER_SAVE_DEFAULT=0CONFIG_SND_HDA_CORE=mCONFIG_SND_ARM=yCONFIG_SND_ARMAACI=mCONFIG_SND_SPI=yCONFIG_SND_USB=yCONFIG_SND_USB_AUDIO=yCONFIG_SND_USB_UA101=mCONFIG_SND_USB_CAIAQ=mCONFIG_SND_USB_CAIAQ_INPUT=yCONFIG_SND_USB_6FIRE=mCONFIG_SND_USB_HIFACE=m
# CONFIG_SND_BCD2000 is not set
# CONFIG_SND_USB_POD is not set
# CONFIG_SND_USB_PODHD is not set
# CONFIG_SND_USB_TONEPORT is not set
# CONFIG_SND_USB_VARIAX is not setCONFIG_SND_FIREWIRE=yCONFIG_SND_FIREWIRE_LIB=m
# CONFIG_SND_DICE is not set
# CONFIG_SND_OXFW is not setCONFIG_SND_ISIGHT=mCONFIG_SND_SCS1X=m
# CONFIG_SND_FIREWORKS is not set
# CONFIG_SND_BEBOB is not set
# CONFIG_SND_PCMCIA is not setCONFIG_SND_SOC=mCONFIG_SND_SOC_AC97_BUS=yCONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
# CONFIG_SND_SOC_ADI is not set
# CONFIG_SND_ATMEL_SOC is not set
# CONFIG_SND_EDMA_SOC is not set
# CONFIG_SND_DAVINCI_SOC_MCASP is not setCONFIG_SND_DESIGNWARE_I2S=m
#
# SoC Audio for Freescale CPUs
#
#
# Common SoC Audio options for Freescale CPUs:
#
# CONFIG_SND_SOC_FSL_ASRC is not set
# CONFIG_SND_SOC_FSL_SAI is not setCONFIG_SND_SOC_FSL_SSI=m
# CONFIG_SND_SOC_FSL_SPDIF is not set
# CONFIG_SND_SOC_FSL_ESAI is not setCONFIG_SND_SOC_FSL_UTILS=mCONFIG_SND_SOC_IMX_PCM_DMA=mCONFIG_SND_SOC_IMX_AUDMUX=mCONFIG_SND_IMX_SOC=mCONFIG_SND_SOC_IMX_SSI=mCONFIG_SND_SOC_IMX_PCM_FIQ=m
#
# SoC Audio support for Freescale i.MX boards:
#
# CONFIG_SND_SOC_EUKREA_TLV320 is not setCONFIG_SND_SOC_IMX_WM8962=m
# CONFIG_SND_SOC_IMX_ES8328 is not setCONFIG_SND_SOC_IMX_SGTL5000=m
# CONFIG_SND_SOC_IMX_SPDIF is not setCONFIG_SND_SOC_IMX_MC13783=m
# CONFIG_SND_SOC_FSL_ASOC_CARD is not setCONFIG_SND_OMAP_SOC=mCONFIG_SND_OMAP_SOC_DMIC=mCONFIG_SND_OMAP_SOC_MCBSP=mCONFIG_SND_OMAP_SOC_MCPDM=m
# CONFIG_SND_OMAP_SOC_HDMI_AUDIO is not set
# CONFIG_SND_OMAP_SOC_RX51 is not setCONFIG_SND_OMAP_SOC_AM3517EVM=mCONFIG_SND_OMAP_SOC_OMAP_TWL4030=mCONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=mCONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
# CONFIG_SND_KIRKWOOD_SOC is not set
# CONFIG_SND_SOC_QCOM is not set
# CONFIG_SND_SOC_ROCKCHIP is not set
#
# SoC Audio support for Allwinner SoCs
#
# CONFIG_SND_SUNXI_SOC_CODEC is not setCONFIG_SND_SOC_TEGRA=mCONFIG_SND_SOC_TEGRA20_AC97=mCONFIG_SND_SOC_TEGRA20_DAS=mCONFIG_SND_SOC_TEGRA20_I2S=mCONFIG_SND_SOC_TEGRA20_SPDIF=mCONFIG_SND_SOC_TEGRA30_AHUB=mCONFIG_SND_SOC_TEGRA30_I2S=mCONFIG_SND_SOC_TEGRA_RT5640=mCONFIG_SND_SOC_TEGRA_WM8753=mCONFIG_SND_SOC_TEGRA_WM8903=mCONFIG_SND_SOC_TEGRA_WM9712=mCONFIG_SND_SOC_TEGRA_TRIMSLICE=mCONFIG_SND_SOC_TEGRA_ALC5632=mCONFIG_SND_SOC_TEGRA_MAX98090=m
# CONFIG_SND_SOC_TEGRA_RT5677 is not set
# CONFIG_SND_SOC_XTFPGA_I2S is not setCONFIG_SND_SOC_I2C_AND_SPI=m
#
# CODEC drivers
#
# CONFIG_SND_SOC_ADAU1701 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
# CONFIG_SND_SOC_AK4642 is not set
# CONFIG_SND_SOC_AK5386 is not set
# CONFIG_SND_SOC_ALC5623 is not setCONFIG_SND_SOC_ALC5632=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS42L51_I2C is not set
# CONFIG_SND_SOC_CS42L52 is not set
# CONFIG_SND_SOC_CS42L56 is not set
# CONFIG_SND_SOC_CS42L73 is not set
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
# CONFIG_SND_SOC_CS4271_SPI is not set
# CONFIG_SND_SOC_CS42XX8_I2C is not setCONFIG_SND_SOC_DMIC=mCONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_ES8328 is not setCONFIG_SND_SOC_MAX98090=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM1792A is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
# CONFIG_SND_SOC_PCM512x_SPI is not setCONFIG_SND_SOC_RL6231=m
# CONFIG_SND_SOC_RT5631 is not setCONFIG_SND_SOC_RT5640=m
# CONFIG_SND_SOC_RT5677_SPI is not setCONFIG_SND_SOC_SGTL5000=m
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
# CONFIG_SND_SOC_SPDIF is not set
# CONFIG_SND_SOC_SSM2602_SPI is not set
# CONFIG_SND_SOC_SSM2602_I2C is not set
# CONFIG_SND_SOC_SSM4567 is not set
# CONFIG_SND_SOC_STA32X is not set
# CONFIG_SND_SOC_STA350 is not set
# CONFIG_SND_SOC_TAS2552 is not set
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TFA9879 is not setCONFIG_SND_SOC_TLV320AIC23=mCONFIG_SND_SOC_TLV320AIC23_I2C=m
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TS3A227E is not setCONFIG_SND_SOC_TWL4030=mCONFIG_SND_SOC_TWL6040=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
# CONFIG_SND_SOC_WM8580 is not set
# CONFIG_SND_SOC_WM8711 is not set
# CONFIG_SND_SOC_WM8728 is not set
# CONFIG_SND_SOC_WM8731 is not set
# CONFIG_SND_SOC_WM8737 is not set
# CONFIG_SND_SOC_WM8741 is not set
# CONFIG_SND_SOC_WM8750 is not setCONFIG_SND_SOC_WM8753=m
# CONFIG_SND_SOC_WM8770 is not set
# CONFIG_SND_SOC_WM8776 is not set
# CONFIG_SND_SOC_WM8804_I2C is not set
# CONFIG_SND_SOC_WM8804_SPI is not setCONFIG_SND_SOC_WM8903=mCONFIG_SND_SOC_WM8962=m
# CONFIG_SND_SOC_WM8978 is not setCONFIG_SND_SOC_WM9712=mCONFIG_SND_SOC_MC13783=m
# CONFIG_SND_SOC_TPA6130A2 is not setCONFIG_SND_SIMPLE_CARD=m
# CONFIG_SOUND_PRIME is not setCONFIG_AC97_BUS=m
#
# HID support
#CONFIG_HID=yCONFIG_HID_BATTERY_STRENGTH=yCONFIG_HIDRAW=yCONFIG_UHID=mCONFIG_HID_GENERIC=y
#
# Special HID drivers
#CONFIG_HID_A4TECH=yCONFIG_HID_ACRUX=mCONFIG_HID_ACRUX_FF=yCONFIG_HID_APPLE=yCONFIG_HID_APPLEIR=mCONFIG_HID_AUREAL=mCONFIG_HID_BELKIN=yCONFIG_HID_BETOP_FF=mCONFIG_HID_CHERRY=yCONFIG_HID_CHICONY=yCONFIG_HID_PRODIKEYS=m
# CONFIG_HID_CP2112 is not setCONFIG_HID_CYPRESS=yCONFIG_HID_DRAGONRISE=mCONFIG_DRAGONRISE_FF=yCONFIG_HID_EMS_FF=mCONFIG_HID_ELECOM=mCONFIG_HID_ELO=mCONFIG_HID_EZKEY=yCONFIG_HID_HOLTEK=mCONFIG_HOLTEK_FF=y
# CONFIG_HID_GT683R is not setCONFIG_HID_KEYTOUCH=mCONFIG_HID_KYE=mCONFIG_HID_UCLOGIC=mCONFIG_HID_WALTOP=mCONFIG_HID_GYRATION=mCONFIG_HID_ICADE=mCONFIG_HID_TWINHAN=mCONFIG_HID_KENSINGTON=yCONFIG_HID_LCPOWER=m
# CONFIG_HID_LENOVO is not setCONFIG_HID_LOGITECH=yCONFIG_HID_LOGITECH_DJ=mCONFIG_HID_LOGITECH_HIDPP=mCONFIG_LOGITECH_FF=yCONFIG_LOGIRUMBLEPAD2_FF=yCONFIG_LOGIG940_FF=yCONFIG_LOGIWHEELS_FF=yCONFIG_HID_MAGICMOUSE=yCONFIG_HID_MICROSOFT=yCONFIG_HID_MONTEREY=yCONFIG_HID_MULTITOUCH=mCONFIG_HID_NTRIG=yCONFIG_HID_ORTEK=mCONFIG_HID_PANTHERLORD=mCONFIG_PANTHERLORD_FF=y
# CONFIG_HID_PENMOUNT is not setCONFIG_HID_PETALYNX=mCONFIG_HID_PICOLCD=mCONFIG_HID_PICOLCD_FB=yCONFIG_HID_PICOLCD_BACKLIGHT=yCONFIG_HID_PICOLCD_LCD=yCONFIG_HID_PICOLCD_LEDS=yCONFIG_HID_PICOLCD_CIR=yCONFIG_HID_PLANTRONICS=yCONFIG_HID_PRIMAX=mCONFIG_HID_ROCCAT=mCONFIG_HID_SAITEK=mCONFIG_HID_SAMSUNG=mCONFIG_HID_SONY=m
# CONFIG_SONY_FF is not setCONFIG_HID_SPEEDLINK=mCONFIG_HID_STEELSERIES=mCONFIG_HID_SUNPLUS=m
# CONFIG_HID_RMI is not setCONFIG_HID_GREENASIA=mCONFIG_GREENASIA_FF=yCONFIG_HID_SMARTJOYPLUS=mCONFIG_SMARTJOYPLUS_FF=yCONFIG_HID_TIVO=mCONFIG_HID_TOPSEED=mCONFIG_HID_THINGM=mCONFIG_HID_THRUSTMASTER=mCONFIG_THRUSTMASTER_FF=yCONFIG_HID_WACOM=mCONFIG_HID_WIIMOTE=mCONFIG_HID_XINMO=mCONFIG_HID_ZEROPLUS=mCONFIG_ZEROPLUS_FF=yCONFIG_HID_ZYDACRON=mCONFIG_HID_SENSOR_HUB=m
# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set
#
# USB HID support
#CONFIG_USB_HID=yCONFIG_HID_PID=yCONFIG_USB_HIDDEV=y
#
# I2C HID support
#CONFIG_I2C_HID=mCONFIG_USB_OHCI_LITTLE_ENDIAN=yCONFIG_USB_SUPPORT=yCONFIG_USB_COMMON=yCONFIG_USB_ARCH_HAS_HCD=yCONFIG_USB=yCONFIG_USB_ANNOUNCE_NEW_DEVICES=y
#
# Miscellaneous USB options
#CONFIG_USB_DEFAULT_PERSIST=y
# CONFIG_USB_DYNAMIC_MINORS is not setCONFIG_USB_OTG=y
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
# CONFIG_USB_OTG_FSM is not setCONFIG_USB_MON=yCONFIG_USB_WUSB=mCONFIG_USB_WUSB_CBAF=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
#
# USB Host Controller Drivers
#
# CONFIG_USB_C67X00_HCD is not setCONFIG_USB_XHCI_HCD=yCONFIG_USB_XHCI_PCI=yCONFIG_USB_XHCI_PLATFORM=m
# CONFIG_USB_XHCI_MVEBU is not setCONFIG_USB_EHCI_HCD=yCONFIG_USB_EHCI_ROOT_HUB_TT=yCONFIG_USB_EHCI_TT_NEWSCHED=yCONFIG_USB_EHCI_PCI=yCONFIG_USB_EHCI_MXC=mCONFIG_USB_EHCI_HCD_OMAP=m
# CONFIG_USB_EHCI_HCD_ORION is not setCONFIG_USB_EHCI_TEGRA=mCONFIG_USB_EHCI_HCD_PLATFORM=y
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not setCONFIG_USB_ISP1362_HCD=mCONFIG_USB_FUSBH200_HCD=m
# CONFIG_USB_FOTG210_HCD is not set
# CONFIG_USB_MAX3421_HCD is not setCONFIG_USB_OHCI_HCD=yCONFIG_USB_OHCI_HCD_OMAP3=yCONFIG_USB_OHCI_HCD_PCI=yCONFIG_USB_OHCI_HCD_PLATFORM=yCONFIG_USB_UHCI_HCD=yCONFIG_USB_U132_HCD=mCONFIG_USB_SL811_HCD=mCONFIG_USB_SL811_HCD_ISO=y
# CONFIG_USB_SL811_CS is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_WHCI_HCD is not setCONFIG_USB_HWA_HCD=mCONFIG_USB_IMX21_HCD=m
# CONFIG_USB_HCD_BCMA is not set
# CONFIG_USB_HCD_SSB is not set
# CONFIG_USB_HCD_TEST_MODE is not set
#
# USB Device Class drivers
#CONFIG_USB_ACM=mCONFIG_USB_PRINTER=mCONFIG_USB_WDM=mCONFIG_USB_TMC=m
#
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may #
#
# also be needed; see USB_STORAGE Help for more info # CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_DATAFAB=m CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m CONFIG_USB_STORAGE_USBAT=m CONFIG_USB_STORAGE_SDDR09=m CONFIG_USB_STORAGE_SDDR55=m CONFIG_USB_STORAGE_JUMPSHOT=m CONFIG_USB_STORAGE_ALAUDA=m CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m CONFIG_USB_STORAGE_ENE_UB6250=m # CONFIG_USB_UAS is not set
#
# USB Imaging devices
#CONFIG_USB_MDC800=mCONFIG_USB_MICROTEK=m
# CONFIG_USBIP_CORE is not setCONFIG_USB_MUSB_HDRC=y
# CONFIG_USB_MUSB_HOST is not set
# CONFIG_USB_MUSB_GADGET is not setCONFIG_USB_MUSB_DUAL_ROLE=y
#
# Platform Glue Layer
#CONFIG_USB_MUSB_SUNXI=y
# CONFIG_USB_MUSB_TUSB6010 is not setCONFIG_USB_MUSB_OMAP2PLUS=mCONFIG_USB_MUSB_AM35X=m
# CONFIG_USB_MUSB_DSPS is not set
# CONFIG_USB_INVENTRA_DMA is not set
# CONFIG_USB_TI_CPPI41_DMA is not setCONFIG_MUSB_PIO_ONLY=yCONFIG_USB_DWC3=m
# CONFIG_USB_DWC3_HOST is not set
# CONFIG_USB_DWC3_GADGET is not setCONFIG_USB_DWC3_DUAL_ROLE=y
#
# Platform Glue Driver Support
#
# CONFIG_USB_DWC3_OMAP is not set
# CONFIG_USB_DWC3_PCI is not set
#
# Debugging features
#
# CONFIG_USB_DWC3_DEBUG is not set
# CONFIG_USB_DWC2 is not setCONFIG_USB_CHIPIDEA=mCONFIG_USB_CHIPIDEA_OF=mCONFIG_USB_CHIPIDEA_PCI=mCONFIG_USB_CHIPIDEA_UDC=yCONFIG_USB_CHIPIDEA_HOST=y
# CONFIG_USB_CHIPIDEA_DEBUG is not setCONFIG_USB_ISP1760=mCONFIG_USB_ISP1760_HCD=yCONFIG_USB_ISP1761_UDC=y
# CONFIG_USB_ISP1760_HOST_ROLE is not set
# CONFIG_USB_ISP1760_GADGET_ROLE is not setCONFIG_USB_ISP1760_DUAL_ROLE=y
#
# USB port drivers
#CONFIG_USB_USS720=mCONFIG_USB_SERIAL=yCONFIG_USB_SERIAL_CONSOLE=yCONFIG_USB_SERIAL_GENERIC=yCONFIG_USB_SERIAL_SIMPLE=mCONFIG_USB_SERIAL_AIRCABLE=mCONFIG_USB_SERIAL_ARK3116=mCONFIG_USB_SERIAL_BELKIN=mCONFIG_USB_SERIAL_CH341=mCONFIG_USB_SERIAL_WHITEHEAT=mCONFIG_USB_SERIAL_DIGI_ACCELEPORT=mCONFIG_USB_SERIAL_CP210X=mCONFIG_USB_SERIAL_CYPRESS_M8=mCONFIG_USB_SERIAL_EMPEG=mCONFIG_USB_SERIAL_FTDI_SIO=mCONFIG_USB_SERIAL_VISOR=mCONFIG_USB_SERIAL_IPAQ=mCONFIG_USB_SERIAL_IR=mCONFIG_USB_SERIAL_EDGEPORT=mCONFIG_USB_SERIAL_EDGEPORT_TI=m
# CONFIG_USB_SERIAL_F81232 is not setCONFIG_USB_SERIAL_GARMIN=mCONFIG_USB_SERIAL_IPW=mCONFIG_USB_SERIAL_IUU=mCONFIG_USB_SERIAL_KEYSPAN_PDA=mCONFIG_USB_SERIAL_KEYSPAN=mCONFIG_USB_SERIAL_KLSI=mCONFIG_USB_SERIAL_KOBIL_SCT=mCONFIG_USB_SERIAL_MCT_U232=m
# CONFIG_USB_SERIAL_METRO is not setCONFIG_USB_SERIAL_MOS7720=mCONFIG_USB_SERIAL_MOS7715_PARPORT=yCONFIG_USB_SERIAL_MOS7840=m
# CONFIG_USB_SERIAL_MXUPORT is not setCONFIG_USB_SERIAL_NAVMAN=mCONFIG_USB_SERIAL_PL2303=mCONFIG_USB_SERIAL_OTI6858=mCONFIG_USB_SERIAL_QCAUX=mCONFIG_USB_SERIAL_QUALCOMM=mCONFIG_USB_SERIAL_SPCP8X5=mCONFIG_USB_SERIAL_SAFE=mCONFIG_USB_SERIAL_SAFE_PADDED=yCONFIG_USB_SERIAL_SIERRAWIRELESS=mCONFIG_USB_SERIAL_SYMBOL=mCONFIG_USB_SERIAL_TI=mCONFIG_USB_SERIAL_CYBERJACK=mCONFIG_USB_SERIAL_XIRCOM=mCONFIG_USB_SERIAL_WWAN=mCONFIG_USB_SERIAL_OPTION=mCONFIG_USB_SERIAL_OMNINET=mCONFIG_USB_SERIAL_OPTICON=mCONFIG_USB_SERIAL_XSENS_MT=m
# CONFIG_USB_SERIAL_WISHBONE is not setCONFIG_USB_SERIAL_SSU100=mCONFIG_USB_SERIAL_QT2=mCONFIG_USB_SERIAL_DEBUG=m
#
# USB Miscellaneous drivers
#CONFIG_USB_EMI62=mCONFIG_USB_EMI26=mCONFIG_USB_ADUTUX=mCONFIG_USB_SEVSEG=m
# CONFIG_USB_RIO500 is not setCONFIG_USB_LEGOTOWER=mCONFIG_USB_LCD=mCONFIG_USB_LED=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not setCONFIG_USB_IDMOUSE=mCONFIG_USB_FTDI_ELAN=mCONFIG_USB_APPLEDISPLAY=mCONFIG_USB_SISUSBVGA=mCONFIG_USB_SISUSBVGA_CON=yCONFIG_USB_LD=mCONFIG_USB_TRANCEVIBRATOR=mCONFIG_USB_IOWARRIOR=m
# CONFIG_USB_TEST is not set
# CONFIG_USB_EHSET_TEST_FIXTURE is not setCONFIG_USB_ISIGHTFW=mCONFIG_USB_YUREX=mCONFIG_USB_EZUSB_FX2=mCONFIG_USB_HSIC_USB3503=m
# CONFIG_USB_LINK_LAYER_TEST is not set
# CONFIG_USB_CHAOSKEY is not setCONFIG_USB_ATM=mCONFIG_USB_SPEEDTOUCH=mCONFIG_USB_CXACRU=mCONFIG_USB_UEAGLEATM=mCONFIG_USB_XUSBATM=m
#
# USB Physical Layer drivers
#CONFIG_USB_PHY=yCONFIG_NOP_USB_XCEIV=y
# CONFIG_AM335X_PHY_USB is not setCONFIG_TWL6030_USB=m
# CONFIG_USB_GPIO_VBUS is not set
# CONFIG_USB_ISP1301 is not setCONFIG_USB_MXS_PHY=mCONFIG_USB_ULPI=yCONFIG_USB_ULPI_VIEWPORT=yCONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
# CONFIG_USB_GADGET_DEBUG_FS is not setCONFIG_USB_GADGET_VBUS_DRAW=100CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
#
# USB Peripheral Controller
#
# CONFIG_USB_FSL_USB2 is not set
# CONFIG_USB_FUSB300 is not set
# CONFIG_USB_FOTG210_UDC is not set
# CONFIG_USB_GR_UDC is not set
# CONFIG_USB_R8A66597 is not set
# CONFIG_USB_PXA27X is not setCONFIG_USB_MV_UDC=m
# CONFIG_USB_MV_U3D is not set
# CONFIG_USB_M66592 is not set
# CONFIG_USB_BDC_UDC is not set
# CONFIG_USB_AMD5536UDC is not set
# CONFIG_USB_NET2272 is not set
# CONFIG_USB_NET2280 is not set
# CONFIG_USB_GOKU is not set
# CONFIG_USB_EG20T is not set
# CONFIG_USB_GADGET_XILINX is not set
# CONFIG_USB_DUMMY_HCD is not setCONFIG_USB_LIBCOMPOSITE=mCONFIG_USB_F_ACM=mCONFIG_USB_F_SS_LB=mCONFIG_USB_U_SERIAL=mCONFIG_USB_U_ETHER=mCONFIG_USB_F_SERIAL=mCONFIG_USB_F_OBEX=mCONFIG_USB_F_ECM=mCONFIG_USB_F_SUBSET=m
# CONFIG_USB_CONFIGFS is not setCONFIG_USB_ZERO=m
# CONFIG_USB_ZERO_HNPTEST is not set
# CONFIG_USB_AUDIO is not setCONFIG_USB_ETH=m
# CONFIG_USB_ETH_RNDIS is not set
# CONFIG_USB_ETH_EEM is not set
# CONFIG_USB_G_NCM is not set
# CONFIG_USB_GADGETFS is not set
# CONFIG_USB_FUNCTIONFS is not set
# CONFIG_USB_MASS_STORAGE is not set
# CONFIG_USB_GADGET_TARGET is not setCONFIG_USB_G_SERIAL=m
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_G_PRINTER is not set
# CONFIG_USB_CDC_COMPOSITE is not set
# CONFIG_USB_G_ACM_MS is not set
# CONFIG_USB_G_MULTI is not set
# CONFIG_USB_G_HID is not set
# CONFIG_USB_G_DBGP is not set
# CONFIG_USB_G_WEBCAM is not set
# CONFIG_USB_LED_TRIG is not setCONFIG_UWB=mCONFIG_UWB_HWA=mCONFIG_UWB_WHCI=mCONFIG_UWB_I1480U=mCONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_CLKGATE is not set
#
# MMC/SD/SDIO Card Drivers
#CONFIG_MMC_BLOCK=yCONFIG_MMC_BLOCK_MINORS=8CONFIG_MMC_BLOCK_BOUNCE=yCONFIG_SDIO_UART=m
# CONFIG_MMC_TEST is not set
#
# MMC/SD/SDIO Host Controller Drivers
#CONFIG_MMC_ARMMMCI=yCONFIG_MMC_SDHCI=mCONFIG_MMC_SDHCI_IO_ACCESSORS=yCONFIG_MMC_SDHCI_PCI=mCONFIG_MMC_RICOH_MMC=yCONFIG_MMC_SDHCI_PLTFM=m
# CONFIG_MMC_SDHCI_OF_ARASAN is not setCONFIG_MMC_SDHCI_ESDHC_IMX=mCONFIG_MMC_SDHCI_TEGRA=m
# CONFIG_MMC_SDHCI_PXAV3 is not setCONFIG_MMC_SDHCI_F_SDH30=mCONFIG_MMC_OMAP=yCONFIG_MMC_OMAP_HS=yCONFIG_MMC_MXC=mCONFIG_MMC_TIFM_SD=mCONFIG_MMC_MVSDIO=mCONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_TMIO is not setCONFIG_MMC_CB710=mCONFIG_MMC_VIA_SDMMC=mCONFIG_MMC_DW=m
# CONFIG_MMC_DW_IDMAC is not setCONFIG_MMC_DW_PLTFM=m
# CONFIG_MMC_DW_EXYNOS is not set
# CONFIG_MMC_DW_K3 is not setCONFIG_MMC_DW_PCI=m
# CONFIG_MMC_DW_ROCKCHIP is not setCONFIG_MMC_VUB300=mCONFIG_MMC_USHC=m
# CONFIG_MMC_USDHI6ROL0 is not setCONFIG_MMC_REALTEK_PCI=mCONFIG_MMC_SUNXI=y
# CONFIG_MMC_TOSHIBA_PCI is not setCONFIG_MEMSTICK=m
# CONFIG_MEMSTICK_DEBUG is not set
#
# MemoryStick drivers
#
# CONFIG_MEMSTICK_UNSAFE_RESUME is not setCONFIG_MSPRO_BLOCK=m
# CONFIG_MS_BLOCK is not set
#
# MemoryStick Host Controller Drivers
#CONFIG_MEMSTICK_TIFM_MS=mCONFIG_MEMSTICK_JMICRON_38X=mCONFIG_MEMSTICK_R592=mCONFIG_MEMSTICK_REALTEK_PCI=mCONFIG_NEW_LEDS=yCONFIG_LEDS_CLASS=y
# CONFIG_LEDS_CLASS_FLASH is not set
#
# LED drivers
#CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM3642 is not set
# CONFIG_LEDS_PCA9532 is not setCONFIG_LEDS_GPIO=yCONFIG_LEDS_LP3944=mCONFIG_LEDS_LP55XX_COMMON=mCONFIG_LEDS_LP5521=mCONFIG_LEDS_LP5523=mCONFIG_LEDS_LP5562=m
# CONFIG_LEDS_LP8501 is not set
# CONFIG_LEDS_LP8860 is not set
# CONFIG_LEDS_PCA955X is not set
# CONFIG_LEDS_PCA963X is not setCONFIG_LEDS_DA9052=mCONFIG_LEDS_DAC124S085=mCONFIG_LEDS_PWM=mCONFIG_LEDS_REGULATOR=m
# CONFIG_LEDS_BD2802 is not setCONFIG_LEDS_LT3593=mCONFIG_LEDS_MC13783=m
# CONFIG_LEDS_TCA6507 is not set
# CONFIG_LEDS_LM355x is not set
#
# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) #CONFIG_LEDS_BLINKM=m
# CONFIG_LEDS_SYSCON is not set
# CONFIG_LEDS_PM8941_WLED is not set
#
# LED Triggers
#CONFIG_LEDS_TRIGGERS=yCONFIG_LEDS_TRIGGER_TIMER=mCONFIG_LEDS_TRIGGER_ONESHOT=mCONFIG_LEDS_TRIGGER_HEARTBEAT=mCONFIG_LEDS_TRIGGER_BACKLIGHT=m
# CONFIG_LEDS_TRIGGER_CPU is not setCONFIG_LEDS_TRIGGER_GPIO=mCONFIG_LEDS_TRIGGER_DEFAULT_ON=m
#
# iptables trigger is under Netfilter config (LED target) # CONFIG_LEDS_TRIGGER_TRANSIENT=m CONFIG_LEDS_TRIGGER_CAMERA=m CONFIG_ACCESSIBILITY=y CONFIG_A11Y_BRAILLE_CONSOLE=y # CONFIG_INFINIBAND is not set CONFIG_EDAC=y CONFIG_EDAC_LEGACY_SYSFS=y # CONFIG_EDAC_DEBUG is not set CONFIG_EDAC_MM_EDAC=m CONFIG_EDAC_HIGHBANK_MC=m CONFIG_EDAC_HIGHBANK_L2=m # CONFIG_EDAC_ALTERA_MC is not set # CONFIG_EDAC_SYNOPSYS is not set CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y # CONFIG_RTC_SYSTOHC is not set CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # CONFIG_RTC_DEBUG is not set
#
# RTC interfaces
#CONFIG_RTC_INTF_SYSFS=yCONFIG_RTC_INTF_PROC=yCONFIG_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_88PM80X=m
# CONFIG_RTC_DRV_ABB5ZES3 is not setCONFIG_RTC_DRV_DS1307=mCONFIG_RTC_DRV_DS1374=m
# CONFIG_RTC_DRV_DS1374_WDT is not setCONFIG_RTC_DRV_DS1672=mCONFIG_RTC_DRV_DS3232=m
# CONFIG_RTC_DRV_HYM8563 is not setCONFIG_RTC_DRV_MAX6900=mCONFIG_RTC_DRV_MAX8907=mCONFIG_RTC_DRV_RS5C372=mCONFIG_RTC_DRV_ISL1208=mCONFIG_RTC_DRV_ISL12022=m
# CONFIG_RTC_DRV_ISL12057 is not setCONFIG_RTC_DRV_X1205=mCONFIG_RTC_DRV_PALMAS=mCONFIG_RTC_DRV_PCF2127=mCONFIG_RTC_DRV_PCF8523=mCONFIG_RTC_DRV_PCF8563=m
# CONFIG_RTC_DRV_PCF85063 is not setCONFIG_RTC_DRV_PCF8583=mCONFIG_RTC_DRV_M41T80=mCONFIG_RTC_DRV_M41T80_WDT=yCONFIG_RTC_DRV_BQ32K=mCONFIG_RTC_DRV_TWL4030=yCONFIG_RTC_DRV_TPS6586X=mCONFIG_RTC_DRV_TPS65910=mCONFIG_RTC_DRV_TPS80031=mCONFIG_RTC_DRV_S35390A=mCONFIG_RTC_DRV_FM3130=mCONFIG_RTC_DRV_RX8581=mCONFIG_RTC_DRV_RX8025=mCONFIG_RTC_DRV_EM3027=mCONFIG_RTC_DRV_RV3029C2=m
#
# SPI RTC drivers
#CONFIG_RTC_DRV_M41T93=mCONFIG_RTC_DRV_M41T94=mCONFIG_RTC_DRV_DS1305=m
# CONFIG_RTC_DRV_DS1343 is not set
# CONFIG_RTC_DRV_DS1347 is not setCONFIG_RTC_DRV_DS1390=mCONFIG_RTC_DRV_MAX6902=mCONFIG_RTC_DRV_R9701=mCONFIG_RTC_DRV_RS5C348=mCONFIG_RTC_DRV_DS3234=mCONFIG_RTC_DRV_PCF2123=mCONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_MCP795 is not set
#
# Platform RTC drivers
#CONFIG_RTC_DRV_CMOS=yCONFIG_RTC_DRV_DS1286=mCONFIG_RTC_DRV_DS1511=mCONFIG_RTC_DRV_DS1553=m
# CONFIG_RTC_DRV_DS1685_FAMILY is not setCONFIG_RTC_DRV_DS1742=mCONFIG_RTC_DRV_DS2404=mCONFIG_RTC_DRV_DA9052=mCONFIG_RTC_DRV_DA9055=mCONFIG_RTC_DRV_STK17TA8=m
# CONFIG_RTC_DRV_M48T86 is not setCONFIG_RTC_DRV_M48T35=mCONFIG_RTC_DRV_M48T59=mCONFIG_RTC_DRV_MSM6242=mCONFIG_RTC_DRV_BQ4802=mCONFIG_RTC_DRV_RP5C01=mCONFIG_RTC_DRV_V3020=m
#
# on-CPU RTC drivers
#CONFIG_RTC_DRV_IMXDI=mCONFIG_RTC_DRV_OMAP=yCONFIG_RTC_DRV_PL030=yCONFIG_RTC_DRV_PL031=y
# CONFIG_RTC_DRV_SUN6I is not setCONFIG_RTC_DRV_SUNXI=yCONFIG_RTC_DRV_MV=m
# CONFIG_RTC_DRV_ARMADA38X is not setCONFIG_RTC_DRV_MC13XXX=mCONFIG_RTC_DRV_TEGRA=mCONFIG_RTC_DRV_MXC=m
# CONFIG_RTC_DRV_SNVS is not set
# CONFIG_RTC_DRV_XGENE is not set
#
# HID Sensor RTC drivers
#
# CONFIG_RTC_DRV_HID_SENSOR_TIME is not setCONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set
#
# DMA Devices
#CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=yCONFIG_AMBA_PL08X=yCONFIG_DW_DMAC_CORE=mCONFIG_DW_DMAC=mCONFIG_DW_DMAC_PCI=m
# CONFIG_HSU_DMA_PCI is not setCONFIG_MV_XOR=y
# CONFIG_MX3_IPU is not setCONFIG_TEGRA20_APB_DMA=yCONFIG_TI_EDMA=yCONFIG_PL330_DMA=mCONFIG_IMX_SDMA=mCONFIG_IMX_DMA=m
# CONFIG_MXS_DMA is not setCONFIG_DMA_OMAP=y
# CONFIG_TI_CPPI41 is not set
# CONFIG_FSL_EDMA is not set
# CONFIG_XILINX_VDMA is not setCONFIG_DMA_SUN6I=y
# CONFIG_NBPFAXI_DMA is not set
# CONFIG_XGENE_DMA is not set
# CONFIG_SUN4I_DMA is not setCONFIG_DMA_ENGINE=yCONFIG_DMA_VIRTUAL_CHANNELS=yCONFIG_DMA_OF=y
#
# DMA Clients
#CONFIG_ASYNC_TX_DMA=y
# CONFIG_DMATEST is not setCONFIG_DMA_ENGINE_RAID=yCONFIG_AUXDISPLAY=yCONFIG_KS0108=mCONFIG_KS0108_PORT=0x378CONFIG_KS0108_DELAY=2CONFIG_UIO=mCONFIG_UIO_CIF=m
# CONFIG_UIO_PDRV_GENIRQ is not set
# CONFIG_UIO_DMEM_GENIRQ is not setCONFIG_UIO_AEC=mCONFIG_UIO_SERCOS3=mCONFIG_UIO_PCI_GENERIC=m
# CONFIG_UIO_NETX is not set
# CONFIG_UIO_MF624 is not set
# CONFIG_VFIO_IOMMU_TYPE1 is not setCONFIG_VFIO_VIRQFD=mCONFIG_VFIO=mCONFIG_VFIO_PCI=mCONFIG_VFIO_PCI_MMAP=yCONFIG_VFIO_PCI_INTX=y
# CONFIG_VFIO_PLATFORM is not set
# CONFIG_VIRT_DRIVERS is not setCONFIG_VIRTIO=m
#
# Virtio drivers
#CONFIG_VIRTIO_PCI=mCONFIG_VIRTIO_PCI_LEGACY=yCONFIG_VIRTIO_BALLOON=m
# CONFIG_VIRTIO_INPUT is not setCONFIG_VIRTIO_MMIO=m
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
#
# Microsoft Hyper-V guest support
#CONFIG_STAGING=y
# CONFIG_PRISM2_USB is not set
# CONFIG_COMEDI is not set
# CONFIG_PANEL is not set
# CONFIG_RTL8192U is not setCONFIG_RTLLIB=mCONFIG_RTLLIB_CRYPTO_CCMP=mCONFIG_RTLLIB_CRYPTO_TKIP=mCONFIG_RTLLIB_CRYPTO_WEP=mCONFIG_RTL8192E=mCONFIG_R8712U=mCONFIG_R8188EU=m
# CONFIG_88EU_AP_MODE is not set
# CONFIG_R8723AU is not setCONFIG_RTS5208=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
# CONFIG_FB_SM7XX is not set
# CONFIG_FB_SM750 is not set
# CONFIG_FB_XGI is not set
# CONFIG_FT1000 is not set
#
# Speakup console speech
#
# CONFIG_SPEAKUP is not set
# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set CONFIG_MFD_NVEC=yCONFIG_KEYBOARD_NVEC=y CONFIG_SERIO_NVEC_PS2=y CONFIG_NVEC_POWER=yCONFIG_NVEC_PAZ00=yCONFIG_STAGING_MEDIA=y
# CONFIG_I2C_BCM2048 is not set
# CONFIG_DVB_CXD2099 is not set
# CONFIG_VIDEO_DT3155 is not set
# CONFIG_DVB_MN88472 is not set
# CONFIG_DVB_MN88473 is not set
# CONFIG_VIDEO_OMAP4 is not set CONFIG_LIRC_STAGING=yCONFIG_LIRC_BT829=mCONFIG_LIRC_IMON=mCONFIG_LIRC_PARALLEL=mCONFIG_LIRC_SASEM=mCONFIG_LIRC_SERIAL=m CONFIG_LIRC_SERIAL_TRANSMITTER=y CONFIG_LIRC_SIR=mCONFIG_LIRC_ZILOG=m
#
# Android
#
# CONFIG_USB_WPAN_HCD is not set
# CONFIG_WIMAX_GDM72XX is not set
# CONFIG_LTE_GDM724X is not setCONFIG_FIREWIRE_SERIAL=mCONFIG_FWTTY_MAX_TOTAL_PORTS=64CONFIG_FWTTY_MAX_CARD_PORTS=32
# CONFIG_MTD_SPINAND_MT29F is not set
# CONFIG_LUSTRE_FS is not set
# CONFIG_DGNC is not set
# CONFIG_DGAP is not set
# CONFIG_GS_FPGABOOT is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_FB_TFT is not set
# CONFIG_I2O is not set
# CONFIG_CHROME_PLATFORMS is not setCONFIG_CLKDEV_LOOKUP=yCONFIG_HAVE_CLK_PREPARE=yCONFIG_COMMON_CLK=y
#
# Common Clock Framework
#CONFIG_COMMON_CLK_VERSATILE=yCONFIG_CLK_SP810=yCONFIG_CLK_VEXPRESS_OSC=y
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI570 is not setCONFIG_CLK_TWL6040=mCONFIG_COMMON_CLK_AXI_CLKGEN=m
# CONFIG_CLK_QORIQ is not setCONFIG_COMMON_CLK_PALMAS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_PXA is not set
# CONFIG_COMMON_CLK_CDCE706 is not setCONFIG_MVEBU_CLK_COMMON=yCONFIG_MVEBU_CLK_CPU=yCONFIG_MVEBU_CLK_COREDIV=yCONFIG_ARMADA_370_CLK=yCONFIG_ARMADA_XP_CLK=yCONFIG_HWSPINLOCK=m
#
# Hardware Spinlock drivers
#CONFIG_HWSPINLOCK_OMAP=m
#
# Clock Source drivers
#CONFIG_CLKSRC_OF=yCONFIG_CLKSRC_MMIO=yCONFIG_DW_APB_TIMER=yCONFIG_DW_APB_TIMER_OF=yCONFIG_ROCKCHIP_TIMER=yCONFIG_ARMADA_370_XP_TIMER=yCONFIG_SUN4I_TIMER=yCONFIG_SUN5I_HSTIMER=yCONFIG_TEGRA_TIMER=yCONFIG_CADENCE_TTC_TIMER=yCONFIG_ARM_ARCH_TIMER=y
# CONFIG_ARM_ARCH_TIMER_EVTSTREAM is not setCONFIG_ARM_GLOBAL_TIMER=yCONFIG_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 setCONFIG_CLKSRC_VERSATILE=yCONFIG_MAILBOX=y
# CONFIG_ARM_MHU is not setCONFIG_PL320_MBOX=yCONFIG_OMAP2PLUS_MBOX=mCONFIG_OMAP_MBOX_KFIFO_SIZE=256
# CONFIG_ALTERA_MBOX is not setCONFIG_IOMMU_API=yCONFIG_IOMMU_SUPPORT=y
#
# Generic IOMMU Pagetable Support
#
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not setCONFIG_OF_IOMMU=yCONFIG_OMAP_IOMMU=y
# CONFIG_OMAP_IOMMU_DEBUG is not set
# CONFIG_ROCKCHIP_IOMMU is not setCONFIG_TEGRA_IOMMU_GART=yCONFIG_TEGRA_IOMMU_SMMU=y
# CONFIG_ARM_SMMU is not set
#
# Remoteproc drivers
#CONFIG_REMOTEPROC=mCONFIG_OMAP_REMOTEPROC=mCONFIG_STE_MODEM_RPROC=m
#
# Rpmsg drivers
#CONFIG_RPMSG=m
#
# SOC (System On Chip) specific Drivers
#CONFIG_SUNXI_SRAM=y
# CONFIG_SOC_TI is not setCONFIG_PM_DEVFREQ=y
#
# DEVFREQ Governors
#CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
# 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 setCONFIG_EXTCON=y
#
# Extcon Device Drivers
#CONFIG_EXTCON_GPIO=mCONFIG_EXTCON_PALMAS=m
# CONFIG_EXTCON_RT8973A is not set
# CONFIG_EXTCON_SM5502 is not set
# CONFIG_EXTCON_USB_GPIO is not setCONFIG_MEMORY=y
# CONFIG_TI_EMIF is not setCONFIG_OMAP_GPMC=yCONFIG_MVEBU_DEVBUS=yCONFIG_TEGRA20_MC=yCONFIG_TEGRA_MC=y
# CONFIG_IIO is not set
# CONFIG_VME_BUS is not setCONFIG_PWM=yCONFIG_PWM_SYSFS=y
# CONFIG_PWM_FSL_FTM is not setCONFIG_PWM_IMX=m
# CONFIG_PWM_PCA9685 is not set
# CONFIG_PWM_ROCKCHIP is not setCONFIG_PWM_SUN4I=yCONFIG_PWM_TEGRA=mCONFIG_PWM_TIECAP=mCONFIG_PWM_TIEHRPWM=mCONFIG_PWM_TIPWMSS=yCONFIG_PWM_TWL=mCONFIG_PWM_TWL_LED=mCONFIG_IRQCHIP=yCONFIG_ARM_GIC=yCONFIG_OMAP_IRQCHIP=y
# CONFIG_IPACK_BUS is not setCONFIG_ARCH_HAS_RESET_CONTROLLER=yCONFIG_RESET_CONTROLLER=yCONFIG_FMC=mCONFIG_FMC_FAKEDEV=mCONFIG_FMC_TRIVIAL=mCONFIG_FMC_WRITE_EEPROM=mCONFIG_FMC_CHARDEV=m
#
# PHY Subsystem
#CONFIG_GENERIC_PHY=y
# CONFIG_PHY_DM816X_USB is not setCONFIG_OMAP_CONTROL_PHY=mCONFIG_OMAP_USB2=m
# CONFIG_TI_PIPE3 is not setCONFIG_TWL4030_USB=m
# CONFIG_BCM_KONA_USB2_PHY is not setCONFIG_PHY_SUN4I_USB=yCONFIG_PHY_SUN9I_USB=y
# CONFIG_PHY_ROCKCHIP_USB is not set
# CONFIG_POWERCAP is not set
# CONFIG_MCB is not setCONFIG_RAS=y
# CONFIG_THUNDERBOLT is not set
#
# Android
#
# CONFIG_ANDROID is not set
#
# Firmware Drivers
#
# CONFIG_FIRMWARE_MEMMAP is not set
#
# File systems
#CONFIG_DCACHE_WORD_ACCESS=y
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not setCONFIG_EXT4_FS=yCONFIG_EXT4_USE_FOR_EXT23=yCONFIG_EXT4_FS_POSIX_ACL=yCONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_FS_ENCRYPTION is not set
# CONFIG_EXT4_DEBUG is not setCONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not setCONFIG_FS_MBCACHE=yCONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not setCONFIG_REISERFS_PROC_INFO=yCONFIG_REISERFS_FS_XATTR=yCONFIG_REISERFS_FS_POSIX_ACL=yCONFIG_REISERFS_FS_SECURITY=yCONFIG_JFS_FS=mCONFIG_JFS_POSIX_ACL=yCONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not setCONFIG_XFS_FS=mCONFIG_XFS_QUOTA=yCONFIG_XFS_POSIX_ACL=y
# CONFIG_XFS_RT is not set
# CONFIG_XFS_WARN is not set
# CONFIG_XFS_DEBUG is not setCONFIG_GFS2_FS=mCONFIG_GFS2_FS_LOCKING_DLM=yCONFIG_OCFS2_FS=mCONFIG_OCFS2_FS_O2CB=mCONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
# CONFIG_OCFS2_FS_STATS is not set
# CONFIG_OCFS2_DEBUG_MASKLOG is not set
# CONFIG_OCFS2_DEBUG_FS is not set
# CONFIG_BTRFS_FS is not setCONFIG_NILFS2_FS=m
# CONFIG_F2FS_FS is not setCONFIG_FS_POSIX_ACL=yCONFIG_EXPORTFS=yCONFIG_FILE_LOCKING=yCONFIG_FSNOTIFY=yCONFIG_DNOTIFY=yCONFIG_INOTIFY_USER=yCONFIG_FANOTIFY=yCONFIG_FANOTIFY_ACCESS_PERMISSIONS=yCONFIG_QUOTA=yCONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_PRINT_QUOTA_WARNING is not set
# CONFIG_QUOTA_DEBUG is not setCONFIG_QUOTA_TREE=y
# CONFIG_QFMT_V1 is not setCONFIG_QFMT_V2=yCONFIG_QUOTACTL=yCONFIG_AUTOFS4_FS=yCONFIG_FUSE_FS=mCONFIG_CUSE=m
# CONFIG_OVERLAY_FS is not set
#
# Caches
#CONFIG_FSCACHE=mCONFIG_FSCACHE_STATS=y
# CONFIG_FSCACHE_HISTOGRAM is not set
# CONFIG_FSCACHE_DEBUG is not setCONFIG_FSCACHE_OBJECT_LIST=yCONFIG_CACHEFILES=m
# CONFIG_CACHEFILES_DEBUG is not set
# CONFIG_CACHEFILES_HISTOGRAM is not set
#
# CD-ROM/DVD Filesystems
#CONFIG_ISO9660_FS=mCONFIG_JOLIET=yCONFIG_ZISOFS=yCONFIG_UDF_FS=mCONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
#CONFIG_FAT_FS=yCONFIG_MSDOS_FS=yCONFIG_VFAT_FS=yCONFIG_FAT_DEFAULT_CODEPAGE=437CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#CONFIG_PROC_FS=yCONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=yCONFIG_KERNFS=yCONFIG_SYSFS=yCONFIG_TMPFS=yCONFIG_TMPFS_POSIX_ACL=yCONFIG_TMPFS_XATTR=y
# CONFIG_HUGETLB_PAGE is not set CONFIG_CONFIGFS_FS=y CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ADFS_FS is not setCONFIG_AFFS_FS=mCONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set CONFIG_HFS_FS=mCONFIG_HFSPLUS_FS=m
# CONFIG_HFSPLUS_FS_POSIX_ACL is not set CONFIG_BEFS_FS=m
# CONFIG_BEFS_DEBUG is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not setCONFIG_JFFS2_FS=mCONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set CONFIG_JFFS2_SUMMARY=y CONFIG_JFFS2_FS_XATTR=y CONFIG_JFFS2_FS_POSIX_ACL=y CONFIG_JFFS2_FS_SECURITY=y
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set CONFIG_JFFS2_ZLIB=y
# CONFIG_JFFS2_LZO is not set CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set CONFIG_UBIFS_FS=y CONFIG_UBIFS_FS_ADVANCED_COMPR=y CONFIG_UBIFS_FS_LZO=yCONFIG_UBIFS_FS_ZLIB=y
# CONFIG_LOGFS is not setCONFIG_CRAMFS=mCONFIG_SQUASHFS=m CONFIG_SQUASHFS_FILE_CACHE=y
# CONFIG_SQUASHFS_FILE_DIRECT is not set CONFIG_SQUASHFS_DECOMP_SINGLE=y
# CONFIG_SQUASHFS_DECOMP_MULTI is not set
# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SQUASHFS_LZ4 is not set CONFIG_SQUASHFS_LZO=yCONFIG_SQUASHFS_XZ=y
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
# CONFIG_VXFS_FS is not setCONFIG_MINIX_FS=m
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set CONFIG_ROMFS_FS=m CONFIG_ROMFS_BACKED_BY_BLOCK=y
# CONFIG_ROMFS_BACKED_BY_MTD is not set
# CONFIG_ROMFS_BACKED_BY_BOTH is not set CONFIG_ROMFS_ON_BLOCK=yCONFIG_PSTORE=y
# CONFIG_PSTORE_CONSOLE is not set
# CONFIG_PSTORE_PMSG is not set
# CONFIG_PSTORE_FTRACE is not set CONFIG_PSTORE_RAM=mCONFIG_SYSV_FS=mCONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
# CONFIG_UFS_DEBUG is not set
# CONFIG_EXOFS_FS is not setCONFIG_ORE=mCONFIG_NETWORK_FILESYSTEMS=yCONFIG_NFS_FS=y
# CONFIG_NFS_V2 is not setCONFIG_NFS_V3=yCONFIG_NFS_V3_ACL=yCONFIG_NFS_V4=yCONFIG_NFS_SWAP=yCONFIG_NFS_V4_1=yCONFIG_NFS_V4_2=yCONFIG_PNFS_FILE_LAYOUT=yCONFIG_PNFS_BLOCK=yCONFIG_PNFS_OBJLAYOUT=m CONFIG_PNFS_FLEXFILE_LAYOUT=m CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" # CONFIG_NFS_V4_1_MIGRATION is not set CONFIG_NFS_V4_SECURITY_LABEL=y CONFIG_ROOT_NFS=y
# CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y CONFIG_NFS_DEBUG=yCONFIG_NFSD=mCONFIG_NFSD_V2_ACL=yCONFIG_NFSD_V3=yCONFIG_NFSD_V3_ACL=yCONFIG_NFSD_V4=y
# CONFIG_NFSD_PNFS is not set CONFIG_NFSD_V4_SECURITY_LABEL=y
# CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_GRACE_PERIOD=yCONFIG_LOCKD=yCONFIG_LOCKD_V4=yCONFIG_NFS_ACL_SUPPORT=yCONFIG_NFS_COMMON=yCONFIG_SUNRPC=yCONFIG_SUNRPC_GSS=y CONFIG_SUNRPC_BACKCHANNEL=y CONFIG_SUNRPC_SWAP=yCONFIG_RPCSEC_GSS_KRB5=m CONFIG_SUNRPC_DEBUG=yCONFIG_CEPH_FS=m
# CONFIG_CEPH_FSCACHE is not set
# CONFIG_CEPH_FS_POSIX_ACL is not set CONFIG_CIFS=mCONFIG_CIFS_STATS=y
# CONFIG_CIFS_STATS2 is not set CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_UPCALL=yCONFIG_CIFS_XATTR=yCONFIG_CIFS_POSIX=yCONFIG_CIFS_ACL=yCONFIG_CIFS_DEBUG=y
# CONFIG_CIFS_DEBUG2 is not set CONFIG_CIFS_DFS_UPCALL=yCONFIG_CIFS_SMB2=yCONFIG_CIFS_FSCACHE=yCONFIG_NCP_FS=mCONFIG_NCPFS_PACKET_SIGNING=y CONFIG_NCPFS_IOCTL_LOCKING=y CONFIG_NCPFS_STRONG=yCONFIG_NCPFS_NFS_NS=yCONFIG_NCPFS_OS2_NS=yCONFIG_NCPFS_SMALLDOS=yCONFIG_NCPFS_NLS=yCONFIG_NCPFS_EXTRAS=yCONFIG_CODA_FS=m
# CONFIG_AFS_FS is not setCONFIG_9P_FS=mCONFIG_9P_FSCACHE=yCONFIG_9P_FS_POSIX_ACL=y CONFIG_9P_FS_SECURITY=yCONFIG_NLS=yCONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_737=m CONFIG_NLS_CODEPAGE_775=m CONFIG_NLS_CODEPAGE_850=m CONFIG_NLS_CODEPAGE_852=m CONFIG_NLS_CODEPAGE_855=m CONFIG_NLS_CODEPAGE_857=m CONFIG_NLS_CODEPAGE_860=m CONFIG_NLS_CODEPAGE_861=m CONFIG_NLS_CODEPAGE_862=m CONFIG_NLS_CODEPAGE_863=m CONFIG_NLS_CODEPAGE_864=m CONFIG_NLS_CODEPAGE_865=m CONFIG_NLS_CODEPAGE_866=m CONFIG_NLS_CODEPAGE_869=m CONFIG_NLS_CODEPAGE_936=m CONFIG_NLS_CODEPAGE_950=m CONFIG_NLS_CODEPAGE_932=m CONFIG_NLS_CODEPAGE_949=m CONFIG_NLS_CODEPAGE_874=m CONFIG_NLS_ISO8859_8=m CONFIG_NLS_CODEPAGE_1250=m CONFIG_NLS_CODEPAGE_1251=mCONFIG_NLS_ASCII=yCONFIG_NLS_ISO8859_1=mCONFIG_NLS_ISO8859_2=mCONFIG_NLS_ISO8859_3=mCONFIG_NLS_ISO8859_4=mCONFIG_NLS_ISO8859_5=mCONFIG_NLS_ISO8859_6=mCONFIG_NLS_ISO8859_7=mCONFIG_NLS_ISO8859_9=m CONFIG_NLS_ISO8859_13=m CONFIG_NLS_ISO8859_14=m CONFIG_NLS_ISO8859_15=mCONFIG_NLS_KOI8_R=mCONFIG_NLS_KOI8_U=mCONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_CELTIC=m CONFIG_NLS_MAC_CENTEURO=m CONFIG_NLS_MAC_CROATIAN=m CONFIG_NLS_MAC_CYRILLIC=m CONFIG_NLS_MAC_GAELIC=m CONFIG_NLS_MAC_GREEK=m CONFIG_NLS_MAC_ICELAND=m CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_TURKISH=mCONFIG_NLS_UTF8=mCONFIG_DLM=mCONFIG_DLM_DEBUG=y
#
# Kernel hacking
#
#
# printk and dmesg options # CONFIG_PRINTK_TIME=y CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_BOOT_PRINTK_DELAY=y CONFIG_DYNAMIC_DEBUG=y
#
# 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 is not setCONFIG_ENABLE_MUST_CHECK=yCONFIG_FRAME_WARN=1024CONFIG_STRIP_ASM_SYMS=y
# CONFIG_READABLE_ASM is not setCONFIG_UNUSED_SYMBOLS=y
# CONFIG_PAGE_OWNER is not setCONFIG_DEBUG_FS=yCONFIG_HEADERS_CHECK=y
# CONFIG_DEBUG_SECTION_MISMATCH is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not setCONFIG_MAGIC_SYSRQ=yCONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1CONFIG_DEBUG_KERNEL=y
400 lines not shown · raw message
Part of this message is not shown here. View the raw message.
Quoted 11 lines · Hans de Goede
Hi Roy,
Quoted 8 lines · Roy Spliet
The following patches take the work by Daniel Kochm?nski, and make some heavy modifications for readability and functionality, based on Boris Brezillon's Linux driver. Tested on an Olimex Lime w/ A20. Patches are sent as RFC. Open questions:
- Config options added are partially NAND-chip specific. Some options can be autodetected based on the NAND ID, others require either brute-forcing or config options like these. Do they belong in sunxi-common? Should
I did not look at the u-boot patches but on the kernel side this is not completely solved I think.
AFAIK the BROM reads the nand in blocks and takes 1k from the start of block and discards the rest regardless of block size. On the other hand, the partition size in the DT is in bytes, not blocks. A person soldered an uncommon nand chip on an Olinuxino board without nand and the whole driver fell apart probably due to uncommon block size of the chip.
Quoted 8 lines
Quoted 6 lines
we make a
Kconfigoption for this? If bikeshedding is desired, are defines insunxi-common.hgood enough for now?
- Style is mostly kernel-like. Satisfied?
- Daniel: do you think we can work from here?Please comment away!
Quoted 8 lines
Cool stuff. Overall this looks good I'll reply with more detailed feedback to your individual patches, 2 questions:
1) Can you provide a quick howto (at developer level) on how to actually get the spl and u-boot into the nand, what I'm looking for is unstructions like this:
a) Take this git repo + branch, build a kernel from it
I have some extra nand patches here:
https://github.com/hramrach/linux-sunxi/commits/sunxi-nand-next
Unfortunately, this branch does not boot on a20 atm, at least from mmc. I suspect I picked a few too many clock patches but have to figure out what exactly breaks it.
However, you can cherry-pick
nand IDs
nand partitions on cubieboards
patch to ignore BBMs in case you have Allwinner formatted nand and it appears 90%+ bad.
with the bbrezillion sunxi-nand-next and these you should be able to access the cubieboard nand from Linux.
Quoted 4 lines
b) Look at this dts file for a nand settings example, adjust it for your board
c) Once booted into the kernel using an updated dts you should have these block devices, dd spl to this one, and u-boot to this one.
You will probably need mtd-utils mtd_debug/nandwrite/ubiformat/ubiattach/...
There are some tutorials on how to use these but I personally did not try booting from nand so have no definitive answer what to write where.
Thanks
Michal
Hello Hans,
Sorry for ignoring the second half of your question so far. Here's what's on my mind.
Op 21-05-15 om 20:08 schreef Hans de Goede:
Quoted 6 lines
Hi Roy,
2) What is the plan to add support for loading files from nand in u-boot proper,
so that we can get (e.g.) extlinux.conf + kernel +dtb from a /boot on nand ?
For the full U-boot I agree we want both MMC and NAND support, regardless of where it was loaded from. From what I can tell U-boot already has UBI support. It sounds like a logical step to try and construct a proper NAND driver for U-boot that either co-exists with this SPL driver or, even better, shares code. That way, I only assume that the UBI and UBIFS layers will take care of all the rest. The NAND framework in u-boot resembles Linux in many ways. I'm currently in doubt whether we should take Boris' driver as a starting point, or rather use something heavily reduced that re-uses this SPL code. Either way, in U-boot we can perform a clean NAND-chip detection, preferably based on DT definitions as we also use on Linux, and take care of everything proper like PLL settings and a bunch of parameters which are now hard-coded or a configuration option in sunxi-common.h.
SPL is a different story. I don't know the exact size restriction, but for A10 I've heard it might be as little as 30KB. Current SPL with my patches and without MMC is already 23KiB. I personally think we can reduce it slightly by taking out support for reading everything other than the bootloader partition from SPL (so remove non-syndrome mode, remove the random seeds table...), but it certainly doesn't leave any room for the full NAND framework to do ID-based NAND chip detection. I personally think it's acceptable if NAND-SPL does not have MMC support and vice-versa. For NAND, SPL is only loaded when there is no first-level bootloader found on the MMC, so I safely dare to assume U-boot isn't there. MMCs are generally not so tiny that SPL fits but U-boot doesn't.
Questions, comments?
Cheers,
Roy
Quoted 4 lines
Regards,
Hans
Signature · 6 lines
IMAGINE IT >> MAKE IT Meet us online at Twitter <http://twitter.com/ultimaker>, Facebook <http://facebook.com/ultimaker>, Google+ <http://google.com/+Ultimaker> www.ultimaker.com
Hello Roy,
Quoted 10 lines · Roy Spliet
Hello Hans,
Sorry for ignoring the second half of your question so far. Here's what's on my mind. Op 21-05-15 om 20:08 schreef Hans de Goede:
Quoted 4 lines
Hi Roy,
2) What is the plan to add support for loading files from nand in u-boot proper, so that we can get (e.g.) extlinux.conf + kernel +dtb from a /boot on nand ?
For the full U-boot I agree we want both MMC and NAND support, regardless of where it was loaded from. From what I can tell U-boot already has UBI support. It sounds like a logical step to try and construct a proper NAND driver for U-boot that either co-exists with this SPL driver or, even better, shares code. That way, I only assume that the UBI and UBIFS layers will take care of all the rest.
Ack.
Quoted 1 line
The NAND framework in u-boot resembles Linux in many ways. I'm currently in doubt whether we should take Boris' driver as a starting point, or rather use something heavily reduced that re-uses this SPL code. Either way, in U-boot we can perform a clean NAND-chip detection, preferably based on DT definitions as we also use on Linux, and take care of everything proper like PLL settings and a bunch of parameters which are now hard-coded or a configuration option in
sunxi-common.h.
Have you seen Yassin Jaffer's work porting Boris' code to u-boot ?
https://github.com/yassinjaffer/u-boot/commits/sunxi-nand
Last time I mailed with Yassin (added to the Cc) he was ok with someone else picking this up and continuing with it as the does not have time to work on it.
Quoted 2 lines
SPL is a different story. I don't know the exact size restriction, but for A10 I've heard it might be as little as 30KB. Current SPL with my patches and without MMC is already 23KiB.
The BROM loads the SPL to a 32K sram and the stack sits in that same SRAM. Note I've some patches which switch the SPL from using a fill blown malloc to using simple-malloc.c which saves a significant amount of space, and the mmc code is not really that big, so I think we should be able to cram this all into the SPL.
Quoted 1 line
I personally think we can reduce it slightly by taking out support for reading everything other than the bootloader partition from SPL (so remove non-syndrome mode, remove the random seeds table...),
I agree that removing (#if 0 it for now?) non boot partition support makes sense as a space saving measure.
Quoted 1 line
but it certainly doesn't leave any room for the full NAND framework to do ID-based NAND chip detection.
What info do we need when we're only reading ? If the BROM can get away with a fixed way of reading the nand for booting, we should be able to make the SPL get away with it too ... I do really believe that we should be able to deal with different nand chips from a single binaries, with cheap chinese devices like the mk802 the chances are simply to big that the nand will differ from one revision to the next.
Quoted 1 line
I personally think it's acceptable if NAND-SPL does not have MMC support and vice-versa.
Distros already need to build and distribute a u-boot-with-spl.bin per supported board. This doubles the number of builds they have to do and the number of files they need to distribute. If at all possible I would really like to have a unified SPL binary.
Quoted 1 line
For NAND, SPL is only loaded when there is no first-level bootloader found on the MMC, so I safely dare to assume U-boot isn't there. MMCs are generally not so tiny that SPL fits but U-boot doesn't.
Right, this is mostly for distro / end-user convenience (and also to avoid needing to build all boards twice when preparing a pull-req).
Regards,
hans
A message that is not in the archive (sent off-list or not yet received): [email protected]
Hi Roy,
It seems you've accidentally dropped the mailinglist from the Cc (I don't see anything private in here), so I've readded it.
Quoted 23 lines · Roy Spliet
Hello Hans,
Comments inline.
Op 22-05-15 om 15:51 schreef Hans de Goede:
Quoted 18 lines
Hello Roy,
Quoted 10 lines · Roy Spliet
Hello Hans,
Sorry for ignoring the second half of your question so far. Here's what's on my mind. Op 21-05-15 om 20:08 schreef Hans de Goede:
Quoted 4 lines
Hi Roy,
2) What is the plan to add support for loading files from nand in u-boot proper, so that we can get (e.g.) extlinux.conf + kernel +dtb from a /boot on nand ?
For the full U-boot I agree we want both MMC and NAND support, regardless of where it was loaded from. From what I can tell U-boot already has UBI support. It sounds like a logical step to try and construct a proper NAND driver for U-boot that either co-exists with this SPL driver or, even better, shares code. That way, I only assume that the UBI and UBIFS layers will take care of all the rest.
Ack.
Quoted 1 line
The NAND framework in u-boot resembles Linux in many ways. I'm currently in doubt whether we should take Boris' driver as a starting point, or rather use something heavily reduced that re-uses this SPL code. Either way, in U-boot we can perform a clean NAND-chip detection, preferably based on DT definitions as we also use on Linux, and take care of everything proper like PLL settings and a bunch of parameters which are now hard-coded or a configuration option in
sunxi-common.h.
Quoted 8 lines
Quoted 7 lines
Have you seen Yassin Jaffer's work porting Boris' code to u-boot ?
https://github.com/yassinjaffer/u-boot/commits/sunxi-nand
Last time I mailed with Yassin (added to the Cc) he was ok with someone else picking this up and continuing with it as the does not have time to work on it.
I have seen the pointer to it, but I have the "nasty" habit of preferring to look at simple work rather than complex. Hence I ended up with leveraging Daniel's patches. Considering space limitations, perhaps it would be best if this SPL driver co-exists with a full NAND driver.
Yes I think that given the space limitations that will be the way to go.
Quoted 1 line
Even if that means sacrificing code-sharing...?
Yes, as much as I dislike that I think dragging the entire mtd work into the SPL simply is not going to fly.
Quoted 1 line
I might have to get back to you on this once I understand the level of code sharing between the NAND framework for SPL and for U-boot.
Ok.
Quoted 1 line
If I were to pick up from Yassin's tree: are there strong reasons why this work hasn't been merged already?
Not that I can remember, the main problem was lack of time from both the reviewer and submitter side IIRC. ATM I'm quite interested in getting nand working, so the reviewer side should be covered and I've the feeling the same goes for the submitter side, so we should be able to make good progress here.
Quoted 18 lines
Quoted 9 lines
Quoted 3 lines
SPL is a different story. I don't know the exact size restriction, but for A10 I've heard it might be as little as 30KB. Current SPL with my patches and without MMC is already 23KiB.
The BROM loads the SPL to a 32K sram and the stack sits in that same SRAM. Note I've some patches which switch the SPL from using a fill blown malloc to using
simple-malloc.cwhich saves a significant amount of space, and the mmc code is not really that big, so I think we should be able to cram this all into the SPL.That sounds like a good plan, it's good enough for SPL.
Quoted 8 lines
Quoted 2 lines
I personally think we can reduce it slightly by taking out support for reading everything other than the bootloader partition from SPL (so remove non-syndrome mode, remove the random seeds table...),
I agree that removing (#if 0 it for now?) non boot partition support makes sense as a space saving measure.
Quoted 1 line
but it certainly doesn't leave any room for the full NAND framework to do ID-based NAND chip detection.
Quoted 7 lines
Quoted 6 lines
What info do we need when we're only reading ? If the BROM can get away with a fixed way of reading the nand for booting, we should be able to make the SPL get away with it too ... I do really believe that we should be able to deal with different nand chips from a single binaries, with cheap chinese devices like the mk802 the chances are simply to big that the nand will differ from one revision to the next.
If we look solely at functionality I agree. It doesn't even make sense giving SPL broader support than BROM. The technical half of me is complaining about their approach though, because as it stands it does not allow booting from <4GB SLC NAND chips. The parameters they try simply don't match what these chips have to offer in terms of page size and OOB area.
I do not think that support things which the BROM does not support makes sense for the FEL code. OTOH no need to cripple it explicitly if the same code can support more.
For the full u-boot.bin nand driver supporting more then the BROM does is fine.
Quoted 1 line
Maybe I should try and add an ID read function to at least obtain the page size and access method, this doesn't have to be a lot of code...
I've been looking into this on the kernel side so as to get ecc strength / size from the id rather then having to extend the in kernel fixed id table as was done for the cubietruck. I've this working now for samsung nands, but it is not simple as it differs per vendor and generation of nands, You're free to try and solve this anyway you want but getting info from the id may be harder then you think.
Quoted 1 line
I don't think it's wise to re-use the code in the full NAND framework though because it's simply too elaborate and integrated. We don't care about things like vendor strings in SPL, right?
Right, strings are way too expensive for in the SPL.
Quoted 1 line
Are there SPL helper functions to parse a chip ID into some of its parameters (page size, oob size, preferred ECC strength...)?
I'm not familiar with the u-boot (spl) nand code, maybe someone on the list reading along knows, if not try searching for them in include/* ?
Quoted 7 lines
Quoted 6 lines
Quoted 1 line
I personally think it's acceptable if NAND-SPL does not have MMC support and vice-versa.
Distros already need to build and distribute a u-boot-with-spl.bin per supported board. This doubles the number of builds they have to do and the number of files they need to distribute. If at all possible I would really like to have a unified SPL binary.
Granted. In this case I take it we should try and prioritise MMC0 over NAND always, matching BROM A10/A20s decisions. Agreed?
Agreed.
Quoted 1 line
Regarding MMC2... I'm not sure if we want a binary that supports both MMC2 and NAND given they share a set of pins.
Right some configs will automatically detect whether we are booting from MMC0 or NAND, and others if we're booting from MMC0 or MMC2, I was just pointing to the existing MMC0 / MMC2 decision code as an example of how this can be done.
Quoted 1 line
I don't know how well switching between the two is going to play out.
No need to worry about that, that is not something which we want to support.
Quoted 1 line
I'll see if I can free up some time to do this in a follow-up patch, although I hope it's not a blocker for the patches I sent to the ML last Friday.
As I already indicated in reply to your v1 series posting this is not a blocker.
BTW why is v2 an RFC and not simply a v2 of the series?
Regards,
Hans
Hello,
sorry for delay. Comments inline.
Quoted 50 lines · Hans de Goede
Hi Roy,
It seems you've accidentally dropped the mailinglist from the Cc (I don't see anything private in here), so I've readded it.
Quoted 23 lines · Roy Spliet
Hello Hans,
Comments inline.
Op 22-05-15 om 15:51 schreef Hans de Goede:
Quoted 18 lines
Hello Roy,
Quoted 10 lines · Roy Spliet
Hello Hans,
Sorry for ignoring the second half of your question so far. Here's what's on my mind. Op 21-05-15 om 20:08 schreef Hans de Goede:
Quoted 4 lines
Hi Roy,
2) What is the plan to add support for loading files from nand in u-boot proper, so that we can get (e.g.) extlinux.conf + kernel +dtb from a /boot on nand ?
For the full U-boot I agree we want both MMC and NAND support, regardless of where it was loaded from. From what I can tell U-boot already has UBI support. It sounds like a logical step to try and construct a proper NAND driver for U-boot that either co-exists with this SPL driver or, even better, shares code. That way, I only assume that the UBI and UBIFS layers will take care of all the rest.
Ack.
Quoted 1 line
The NAND framework in u-boot resembles Linux in many ways. I'm currently in doubt whether we should take Boris' driver as a starting point, or rather use something heavily reduced that re-uses this SPL code. Either way, in U-boot we can perform a clean NAND-chip detection, preferably based on DT definitions as we also use on Linux, and take care of everything proper like PLL settings and a bunch of parameters which are now hard-coded or a configuration option in
sunxi-common.h.Quoted 8 lines
Quoted 7 lines
Have you seen Yassin Jaffer's work porting Boris' code to u-boot ?
https://github.com/yassinjaffer/u-boot/commits/sunxi-nand
Last time I mailed with Yassin (added to the Cc) he was ok with someone else picking this up and continuing with it as the does not have time to work on it.
I have seen the pointer to it, but I have the "nasty" habit of preferring to look at simple work rather than complex. Hence I ended up with leveraging Daniel's patches. Considering space limitations, perhaps it would be best if this SPL driver co-exists with a full NAND driver.
Yes I think that given the space limitations that will be the way to go.
Quoted 1 line
Even if that means sacrificing code-sharing...?
Yes, as much as I dislike that I think dragging the entire mtd work into the SPL simply is not going to fly.
Quoted 1 line
I might have to get back to you on this once I understand the level of code sharing between the NAND framework for SPL and for U-boot.
Ok.
Quoted 23 lines
Quoted 1 line
If I were to pick up from Yassin's tree: are there strong reasons why this work hasn't been merged already?
Not that I can remember, the main problem was lack of time from both the reviewer and submitter side IIRC. ATM I'm quite interested in getting nand working, so the reviewer side should be covered and I've the feeling the same goes for the submitter side, so we should be able to make good progress here.
Quoted 15 lines
Quoted 9 lines
Quoted 3 lines
SPL is a different story. I don't know the exact size restriction, but for A10 I've heard it might be as little as 30KB. Current SPL with my patches and without MMC is already 23KiB.
The BROM loads the SPL to a 32K sram and the stack sits in that same SRAM. Note I've some patches which switch the SPL from using a fill blown malloc to using
simple-malloc.cwhich saves a significant amount of space, and the mmc code is not really that big, so I think we should be able to cram this all into the SPL.That sounds like a good plan, it's good enough for SPL.
Quoted 5 lines
Quoted 2 lines
I personally think we can reduce it slightly by taking out support for reading everything other than the bootloader partition from SPL (so remove non-syndrome mode, remove the random seeds table...),
I agree that removing (#if 0 it for now?) non boot partition support makes sense as a space saving measure.
That would disable possibility of preloading multiimage with packed boot script, kernel and devicetree, right? I think code which adds support for all partitions isn't that big. Or maybe rather loading anything else then u-boot from u-boot is undesirable?
Quoted 37 lines
Quoted 10 lines
Quoted 9 lines
Quoted 2 lines
but it certainly doesn't leave any room for the full NAND framework to do ID-based NAND chip detection.
What info do we need when we're only reading ? If the BROM can get away with a fixed way of reading the nand for booting, we should be able to make the SPL get away with it too ... I do really believe that we should be able to deal with different nand chips from a single binaries, with cheap chinese devices like the mk802 the chances are simply to big that the nand will differ from one revision to the next.
If we look solely at functionality I agree. It doesn't even make sense giving SPL broader support than BROM. The technical half of me is complaining about their approach though, because as it stands it does not allow booting from <4GB SLC NAND chips. The parameters they try simply don't match what these chips have to offer in terms of page size and OOB area.
I do not think that support things which the BROM does not support makes sense for the FEL code. OTOH no need to cripple it explicitly if the same code can support more.
For the full u-boot.bin nand driver supporting more then the BROM does is fine.
Quoted 1 line
Maybe I should try and add an ID read function to at least obtain the page size and access method, this doesn't have to be a lot of code...
I've been looking into this on the kernel side so as to get ecc strength / size from the id rather then having to extend the in kernel fixed id table as was done for the cubietruck. I've this working now for samsung nands, but it is not simple as it differs per vendor and generation of nands, You're free to try and solve this anyway you want but getting info from the id may be harder then you think.
Quoted 1 line
I don't think it's wise to re-use the code in the full NAND framework though because it's simply too elaborate and integrated. We don't care about things like vendor strings in SPL, right?
Right, strings are way too expensive for in the SPL.
Quoted 1 line
Are there SPL helper functions to parse a chip ID into some of its parameters (page size, oob size, preferred ECC strength...)?
I'm not familiar with the u-boot (spl) nand code, maybe someone on the list reading along knows, if not try searching for them in
include/*?Quoted 2 lines
Quoted 2 lines
Quoted 1 line
I personally think it's acceptable if NAND-SPL does not have MMC support and vice-versa.
Quoted 7 lines
Quoted 5 lines
Quoted 4 lines
Distros already need to build and distribute a u-boot-with-spl.bin per supported board. This doubles the number of builds they have to do and the number of files they need to distribute. If at all possible I would really like to have a unified SPL binary.
Granted. In this case I take it we should try and prioritise MMC0 over NAND always, matching BROM A10/A20s decisions. Agreed?
Agreed.
Unified binary would be great. I'll check this week if I can boot spl with MMC support (as I mentioned, it was hanging due to some hairy initialization error) and try to fix this.
Quoted 13 lines
Quoted 2 lines
Regarding MMC2... I'm not sure if we want a binary that supports both MMC2 and NAND given they share a set of pins.
Right some configs will automatically detect whether we are booting from MMC0 or NAND, and others if we're booting from MMC0 or MMC2, I was just pointing to the existing MMC0 / MMC2 decision code as an example of how this can be done.
Quoted 1 line
I don't know how well switching between the two is going to play out.
No need to worry about that, that is not something which we want to support.
Quoted 1 line
I'll see if I can free up some time to do this in a follow-up patch, although I hope it's not a blocker for the patches I sent to the ML last Friday.
Quoted 7 lines
As I already indicated in reply to your v1 series posting this is not a blocker.
BTW why is v2 an RFC and not simply a v2 of the series?
Regards,
Hans
Best regards,
Daniel
Signature · 4 lines
Daniel Kochma?ski | Pozna?, Poland ;; aka jackdaniel "Be the change that you wish to see in the world." - Mahatma Gandhi
Hi,
Quoted 77 lines · Daniel Kochma?ski
Hello,
sorry for delay. Comments inline.
Quoted 71 lines · Hans de Goede
Hi Roy,
It seems you've accidentally dropped the mailinglist from the Cc (I don't see anything private in here), so I've readded it.
Quoted 23 lines · Roy Spliet
Hello Hans,
Comments inline.
Op 22-05-15 om 15:51 schreef Hans de Goede:
Quoted 18 lines
Hello Roy,
Quoted 10 lines · Roy Spliet
Hello Hans,
Sorry for ignoring the second half of your question so far. Here's what's on my mind. Op 21-05-15 om 20:08 schreef Hans de Goede:
Quoted 4 lines
Hi Roy,
2) What is the plan to add support for loading files from nand in u-boot proper, so that we can get (e.g.) extlinux.conf + kernel +dtb from a /boot on nand ?
For the full U-boot I agree we want both MMC and NAND support, regardless of where it was loaded from. From what I can tell U-boot already has UBI support. It sounds like a logical step to try and construct a proper NAND driver for U-boot that either co-exists with this SPL driver or, even better, shares code. That way, I only assume that the UBI and UBIFS layers will take care of all the rest.
Ack.
Quoted 1 line
The NAND framework in u-boot resembles Linux in many ways. I'm currently in doubt whether we should take Boris' driver as a starting point, or rather use something heavily reduced that re-uses this SPL code. Either way, in U-boot we can perform a clean NAND-chip detection, preferably based on DT definitions as we also use on Linux, and take care of everything proper like PLL settings and a bunch of parameters which are now hard-coded or a configuration option in
sunxi-common.h.Quoted 8 lines
Quoted 7 lines
Have you seen Yassin Jaffer's work porting Boris' code to u-boot ?
https://github.com/yassinjaffer/u-boot/commits/sunxi-nand
Last time I mailed with Yassin (added to the Cc) he was ok with someone else picking this up and continuing with it as the does not have time to work on it.
I have seen the pointer to it, but I have the "nasty" habit of preferring to look at simple work rather than complex. Hence I ended up with leveraging Daniel's patches. Considering space limitations, perhaps it would be best if this SPL driver co-exists with a full NAND driver.
Yes I think that given the space limitations that will be the way to go.
Quoted 1 line
Even if that means sacrificing code-sharing...?
Yes, as much as I dislike that I think dragging the entire mtd work into the SPL simply is not going to fly.
Quoted 1 line
I might have to get back to you on this once I understand the level of code sharing between the NAND framework for SPL and for U-boot.
Ok.
Quoted 1 line
If I were to pick up from Yassin's tree: are there strong reasons why this work hasn't been merged already?
Not that I can remember, the main problem was lack of time from both the reviewer and submitter side IIRC. ATM I'm quite interested in getting nand working, so the reviewer side should be covered and I've the feeling the same goes for the submitter side, so we should be able to make good progress here.
Quoted 13 lines
Quoted 9 lines
Quoted 3 lines
SPL is a different story. I don't know the exact size restriction, but for A10 I've heard it might be as little as 30KB. Current SPL with my patches and without MMC is already 23KiB.
The BROM loads the SPL to a 32K sram and the stack sits in that same SRAM. Note I've some patches which switch the SPL from using a fill blown malloc to using
simple-malloc.cwhich saves a significant amount of space, and the mmc code is not really that big, so I think we should be able to cram this all into the SPL.That sounds like a good plan, it's good enough for SPL.
Quoted 3 lines
Quoted 2 lines
I personally think we can reduce it slightly by taking out support for reading everything other than the bootloader partition from SPL (so remove non-syndrome mode, remove the random seeds table...),
Quoted 7 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
I agree that removing (#if 0 it for now?) non boot partition support makes sense as a space saving measure.
That would disable possibility of preloading multiimage with packed boot script, kernel and devicetree, right? I think code which adds support for all partitions isn't that big. Or maybe rather loading anything else then u-boot from u-boot is undesirable?
I guess you mean "loading anything else then u-boot from the spl is undesirable?"
So what you're talking about using a multi-image directly from the SPL, is basically what is falcon mode, and given the restrictions we've in the SPL I do not think that supporting something like that for nand is a good idea, in order to access the non boot partitions we need to know some more nand parameters, and as said I would really like to avoid coding things like ecc size into Kconfig since different production runs of the same board (e.g. the famous mk802 boards) may very well use different nand chips, and I do not want users to need know which production run they exactly have ...
This means we need to get info like this from the nand id, and I'm not sure that that is doable from the spl.
So for starters I suggest we simply #if 0 the code, with a comment that this maybe useful for falcon mode, and then it the future we may replace the #if 0 with a #if falcon and enable this on select boards ?
Quoted 41 lines
Quoted 41 lines
Quoted 10 lines
Quoted 9 lines
Quoted 2 lines
but it certainly doesn't leave any room for the full NAND framework to do ID-based NAND chip detection.
What info do we need when we're only reading ? If the BROM can get away with a fixed way of reading the nand for booting, we should be able to make the SPL get away with it too ... I do really believe that we should be able to deal with different nand chips from a single binaries, with cheap chinese devices like the mk802 the chances are simply to big that the nand will differ from one revision to the next.
If we look solely at functionality I agree. It doesn't even make sense giving SPL broader support than BROM. The technical half of me is complaining about their approach though, because as it stands it does not allow booting from <4GB SLC NAND chips. The parameters they try simply don't match what these chips have to offer in terms of page size and OOB area.
I do not think that support things which the BROM does not support makes sense for the FEL code. OTOH no need to cripple it explicitly if the same code can support more.
For the full u-boot.bin nand driver supporting more then the BROM does is fine.
Quoted 1 line
Maybe I should try and add an ID read function to at least obtain the page size and access method, this doesn't have to be a lot of code...
I've been looking into this on the kernel side so as to get ecc strength / size from the id rather then having to extend the in kernel fixed id table as was done for the cubietruck. I've this working now for samsung nands, but it is not simple as it differs per vendor and generation of nands, You're free to try and solve this anyway you want but getting info from the id may be harder then you think.
Quoted 1 line
I don't think it's wise to re-use the code in the full NAND framework though because it's simply too elaborate and integrated. We don't care about things like vendor strings in SPL, right?
Right, strings are way too expensive for in the SPL.
Quoted 1 line
Are there SPL helper functions to parse a chip ID into some of its parameters (page size, oob size, preferred ECC strength...)?
I'm not familiar with the u-boot (spl) nand code, maybe someone on the list reading along knows, if not try searching for them in
include/*?Quoted 6 lines
Quoted 6 lines
Quoted 1 line
I personally think it's acceptable if NAND-SPL does not have MMC support and vice-versa.
Distros already need to build and distribute a u-boot-with-spl.bin per supported board. This doubles the number of builds they have to do and the number of files they need to distribute. If at all possible I would really like to have a unified SPL binary.
Quoted 7 lines
Quoted 3 lines
Quoted 1 line
Granted. In this case I take it we should try and prioritise MMC0 over NAND always, matching BROM A10/A20s decisions. Agreed?
Agreed.
Unified binary would be great. I'll check this week if I can boot spl with MMC support (as I mentioned, it was hanging due to some hairy initialization error) and try to fix this.
Ack.
Quoted 9 lines
Quoted 9 lines
Quoted 2 lines
Regarding MMC2... I'm not sure if we want a binary that supports both MMC2 and NAND given they share a set of pins.
Right some configs will automatically detect whether we are booting from MMC0 or NAND, and others if we're booting from MMC0 or MMC2, I was just pointing to the existing MMC0 / MMC2 decision code as an example of how this can be done.
Quoted 1 line
I don't know how well switching between the two is going to play out.
Quoted 7 lines
Quoted 7 lines
No need to worry about that, that is not something which we want to support.
Quoted 1 line
I'll see if I can free up some time to do this in a follow-up patch, although I hope it's not a blocker for the patches I sent to the ML last Friday.
As I already indicated in reply to your v1 series posting this is not a blocker.
BTW why is v2 an RFC and not simply a v2 of the series?
About this, I've just read the cover letters to what is exactly v3 of the series, and it is in there, so Roy, no need to answer this one.
Regards,
Hans
fre 2015-05-22 klockan 15:51 +0200 skrev Hans de Goede:
Quoted 3 lines
What info do we need when we're only reading ? If the BROM can get away with a fixed way of reading the nand for booting, we should be able to make the SPL get away with it too ...
BROM tries at least 4 different strategies in reading the NAND boot blocks. Two different NAND protocol strategies and two different format strategies have been observed (4 different access patterns). And ontop of this it tries both randomizer scrambled and plain access.
Quoted 4 lines
Distros already need to build and distribute a u-boot-with-spl.bin per supported board. This doubles the number of builds they have to do and the number of files they need to distribute. If at all possible I would really like to have a unified SPL binary.
The SPL shrinks considerably in size if built in thumbs mode.
What I envisioned for sunix u-boot SPL was board-agnostic SPL binaries with a little configuration header. This way you only need two (or three is SPI is added) binaries, a list of board configurations and tool for applying the config and write the resulting binary to the boot device (NAND/MMC/SPI)
There isn't really that many board specific parameters.
Regards
Henrik