[OpenWrt-Devel] [PATCH v3] Add new target zynq

Jason Wu jason.wu.misc at gmail.com
Mon Feb 8 09:02:31 EST 2016


patch is resubmitted due to git am issue (corrupt patch at line 1245). I 
must have causing it while I added the version changes.

Patch applied with whitespace warning. The white space warning is coming 
from 0001-arm-dts-zynq-zc702.dts-Set-default-rdinit-to-sbin-in.patch (a 
kernel patch).

Tested on Xilinx ZC702 SD boot mode.

Best regards,

jason

On 8/02/2016 11:55 PM, Jason Wu wrote:
> Add support for Xilinx ZC702 Dev board
>
> Zynq target is using 4.4 kernel and mainline 2016.1 u-boot.
>
> Patch is tested with Xilinx ZC702 Dev board with SD boot mode.
>
> known issues:
>   - no QSPI driver in 4.4 kernel: no QSPI flash support
>   - USB is not working in 4.4 kernel
>
> Signed-off-by: Jason Wu <jason.wu.misc at gmail.com>
>
>   create mode 100644 package/boot/uboot-zynq/Makefile
>   create mode 100644 target/linux/zynq/Makefile
>   create mode 100644 target/linux/zynq/base-files.mk
>   create mode 100755 target/linux/zynq/base-files/etc/board.d/02_network
>   create mode 100644 target/linux/zynq/base-files/etc/config/network
>   create mode 100644 target/linux/zynq/base-files/etc/inittab
>   create mode 100644 target/linux/zynq/config-4.4
>   create mode 100644 target/linux/zynq/image/Makefile
>   create mode 100755 target/linux/zynq/image/mkits.sh
>   create mode 100644 target/linux/zynq/patches-4.4/0001-arm-dts-zynq-zc702.dts-Set-default-rdinit-to-sbin-in.patch
>   create mode 100644 target/linux/zynq/profiles/zc702.mk
>
> ---
> RFC v2: - use 4.4 kernel
>      - use 2016.1 U-Boot
>      - add fit.itb generation (default boot image format in 2016.1 U-Boot)
>      - use static ip of 192.168.1.1
>      - fix typo
>
> v3: Change base on Felix Fietkau's feedback
>      - adjust kconfig settings
>      - Use DTS to workaround the /sbin/init location
>      - use new image build code
>      - drop zynq.sh script and use default board.d
>      - use base-file.mk to remove etc/config/network file
>      - create proper Device/ZC702 section
>      - remove uEnv.txt as 2016.1 uboot does not load uEnv.txt anymore
>
> patch is resubmitted due to git am issue (corrupt patch at line 1245)
>
> diff --git a/package/boot/uboot-zynq/Makefile b/package/boot/uboot-zynq/Makefile
> new file mode 100644
> index 0000000..7e502b6
> --- /dev/null
> +++ b/package/boot/uboot-zynq/Makefile
> @@ -0,0 +1,115 @@
> +#
> +# Copyright (C) 2015 OpenWrt.org
> +#
> +# This is free software, licensed under the GNU General Public License v2.
> +# See /LICENSE for more information.
> +#
> +
> +include $(TOPDIR)/rules.mk
> +
> +PKG_NAME:=u-boot
> +PKG_VERSION:=2016.01
> +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
> +PKG_SOURCE_URL:= \
> +	http://mirror2.openwrt.org/sources \
> +	ftp://ftp.denx.de/pub/u-boot
> +
> +PKG_MD5SUM:=7d4f65fd43d4d706f5c5650e020d899d
> +
> +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
> +
> +PKG_LICENSE:=GPL-2.0 GPL-2.0+
> +PKG_LICENSE_FILES:=Licenses/README
> +
> +include $(INCLUDE_DIR)/package.mk
> +
> +define uboot/Default
> +	TITLE:=
> +	CONFIG:=
> +	IMAGE:=
> +endef
> +
> +define uboot/zc702
> +	TITLE:=U-Boot $(PKG_VERSION) for Xilinx ZC702 Dev Board
> +endef
> +
> +define uboot/zc706
> +	TITLE:=U-Boot $(PKG_VERSION) for Xilinx ZC706 Dev Board
> +endef
> +
> +UBOOTS := \
> +	zc702 \
> +
> +define Package/uboot/template
> +define Package/uboot-zynq-$(1)
> +	SECTION:=boot
> +	CATEGORY:=Boot Loaders
> +	DEPENDS:=@TARGET_zynq
> +	TITLE:=$(2)
> +	URL:=http://www.denx.de/wiki/U-Boot
> +	VARIANT:=$(1)
> +	MAINTAINER:=Jason Wu <jason.wu.misc at gmail.com>
> +endef
> +endef
> +
> +define BuildUBootPackage
> +	$(eval $(uboot/Default))
> +	$(eval $(uboot/$(1)))
> +	$(call Package/uboot/template,$(1),$(TITLE))
> +endef
> +
> +ifdef BUILD_VARIANT
> +$(eval $(call uboot/$(BUILD_VARIANT)))
> +UBOOT_CONFIG:=$(if $(CONFIG),$(CONFIG),$(BUILD_VARIANT))
> +UBOOT_IMAGE:=$(if $(IMAGE),$(IMAGE),openwrt-$(BOARD)-$(BUILD_VARIANT)-u-boot.bin)
> +endif
> +
> +define Build/Configure
> +	+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
> +		$(BOARD)_$(UBOOT_CONFIG)_config
> +endef
> +
> +define Build/Compile
> +	+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
> +		CROSS_COMPILE=$(TARGET_CROSS)
> +endef
> +
> +define Package/uboot/install/default
> +	$(INSTALL_DIR) $(BIN_DIR)/uboot-$(BOARD)-$(1)
> +
> +	$(CP) $(PKG_BUILD_DIR)/u-boot \
> +		$(BIN_DIR)/uboot-$(BOARD)-$(1)/u-boot.elf
> +
> +	$(CP) $(PKG_BUILD_DIR)/u-boot-dtb.bin \
> +		$(BIN_DIR)/uboot-$(BOARD)-$(1)/u-boot-dtb.bin
> +
> +	$(CP) $(PKG_BUILD_DIR)/u-boot.dtb \
> +		$(BIN_DIR)/uboot-$(BOARD)-$(1)/u-boot.dtb
> +
> +	$(CP) $(PKG_BUILD_DIR)/u-boot-dtb.img \
> +		$(BIN_DIR)/uboot-$(BOARD)-$(1)/u-boot-dtb.img
> +
> +	$(CP) $(PKG_BUILD_DIR)/spl/boot.bin \
> +		$(BIN_DIR)/uboot-$(BOARD)-$(1)/boot.bin
> +
> +	$(CP) $(PKG_BUILD_DIR)/spl/u-boot-spl \
> +		$(BIN_DIR)/uboot-$(BOARD)-$(1)/u-boot-spl
> +
> +	$(CP) $(PKG_BUILD_DIR)/spl/u-boot-spl-dtb.bin \
> +		$(BIN_DIR)/uboot-$(BOARD)-$(1)/u-boot-spl-dtb.bin
> +endef
> +
> +define Package/uboot/install/template
> +define Package/uboot-zynq-$(1)/install
> +	$(call Package/uboot/install/default,$(2))
> +endef
> +endef
> +
> +$(foreach u,$(UBOOTS), \
> +	$(eval $(call Package/uboot/install/template,$(u),$(u))) \
> +)
> +
> +$(foreach u,$(UBOOTS), \
> +	$(eval $(call BuildUBootPackage,$(u))) \
> +	$(eval $(call BuildPackage,uboot-zynq-$(u))) \
> +)
> diff --git a/target/linux/zynq/Makefile b/target/linux/zynq/Makefile
> new file mode 100644
> index 0000000..6495c59
> --- /dev/null
> +++ b/target/linux/zynq/Makefile
> @@ -0,0 +1,32 @@
> +#
> +# Copyright (C) 2015 OpenWrt.org
> +#
> +# This is free software, licensed under the GNU General Public License v2.
> +# See /LICENSE for more information.
> +#
> +include $(TOPDIR)/rules.mk
> +include $(INCLUDE_DIR)/host.mk
> +
> +ARCH:=arm
> +BOARD:=zynq
> +BOARDNAME:=Xilinx Zynq 7000 SoCs
> +FEATURES:=fpu gpio rtc usb usbgadget targz ubifs
> +CPU_TYPE:=cortex-a9
> +CPU_SUBTYPE:=neon
> +MAINTAINER:=Jason Wu <jason.wu.misc at gamil.com>
> +
> +# future support SUBTARGETS: for both zynq and zynqmp
> +
> +define Target/Description
> +	Build firmware image for Zynq 7000 SoC devices.
> +endef
> +
> +KERNEL_PATCHVER:=4.4
> +
> +include $(INCLUDE_DIR)/target.mk
> +
> +KERNELNAME:=zImage dtbs
> +
> +DEFAULT_PACKAGES += uboot-envtools
> +
> +$(eval $(call BuildTarget))
> diff --git a/target/linux/zynq/base-files.mk b/target/linux/zynq/base-files.mk
> new file mode 100644
> index 0000000..fdd2c71
> --- /dev/null
> +++ b/target/linux/zynq/base-files.mk
> @@ -0,0 +1,3 @@
> +define Package/base-files/install-target
> +	rm -f $(1)/etc/config/network
> +endef
> diff --git a/target/linux/zynq/base-files/etc/board.d/02_network b/target/linux/zynq/base-files/etc/board.d/02_network
> new file mode 100755
> index 0000000..71d6fd8
> --- /dev/null
> +++ b/target/linux/zynq/base-files/etc/board.d/02_network
> @@ -0,0 +1,16 @@
> +#!/bin/sh
> +# Copyright (C) 2015 OpenWrt.org
> +
> +. /lib/functions/uci-defaults.sh
> +
> +board_config_update
> +
> +case "$(cat /tmp/sysinfo/board_name)" in
> +	xlnx,zynq-zc702)
> +		ucidef_set_interface_lan 'eth0'
> +		;;
> +esac
> +
> +board_config_flush
> +
> +exit 0
> diff --git a/target/linux/zynq/base-files/etc/config/network b/target/linux/zynq/base-files/etc/config/network
> new file mode 100644
> index 0000000..0d74bda
> --- /dev/null
> +++ b/target/linux/zynq/base-files/etc/config/network
> @@ -0,0 +1,17 @@
> +# Copyright (C) 2015 OpenWrt.org
> +
> +config interface loopback
> +	option ifname	lo
> +	option proto	static
> +	option ipaddr	127.0.0.1
> +	option netmask	255.0.0.0
> +
> +config interface lan
> +	option ifname	eth0
> +	option proto	static
> +	option ipaddr	192.168.1.1
> +	option netmask	255.255.255.0
> +	option ip6assign 60
> +
> +config globals globals
> +	option ula_prefix auto
> diff --git a/target/linux/zynq/base-files/etc/inittab b/target/linux/zynq/base-files/etc/inittab
> new file mode 100644
> index 0000000..ecccc82
> --- /dev/null
> +++ b/target/linux/zynq/base-files/etc/inittab
> @@ -0,0 +1,3 @@
> +::sysinit:/etc/init.d/rcS S boot
> +::shutdown:/etc/init.d/rcS K shutdown
> +::askconsole:/bin/ash --login
> \ No newline at end of file
> diff --git a/target/linux/zynq/config-4.4 b/target/linux/zynq/config-4.4
> new file mode 100644
> index 0000000..719d4e8
> --- /dev/null
> +++ b/target/linux/zynq/config-4.4
> @@ -0,0 +1,766 @@
> +CONFIG_ADVISE_SYSCALLS=y
> +CONFIG_ALIGNMENT_TRAP=y
> +# CONFIG_AMBA_PL08X is not set
> +# CONFIG_APM_EMULATION is not set
> +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
> +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
> +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
> +CONFIG_ARCH_HAS_SG_CHAIN=y
> +CONFIG_ARCH_HAS_TICK_BROADCAST=y
> +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
> +CONFIG_ARCH_HIBERNATION_POSSIBLE=y
> +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
> +CONFIG_ARCH_MULTIPLATFORM=y
> +# CONFIG_ARCH_MULTI_CPU_AUTO is not set
> +CONFIG_ARCH_MULTI_V6_V7=y
> +CONFIG_ARCH_MULTI_V7=y
> +CONFIG_ARCH_NR_GPIO=1024
> +CONFIG_ARCH_REQUIRE_GPIOLIB=y
> +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
> +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
> +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
> +CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
> +CONFIG_ARCH_SUPPORTS_UPROBES=y
> +CONFIG_ARCH_SUSPEND_POSSIBLE=y
> +CONFIG_ARCH_USE_BUILTIN_BSWAP=y
> +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
> +CONFIG_ARCH_VEXPRESS=y
> +CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
> +# CONFIG_ARCH_VEXPRESS_SPC is not set
> +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
> +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
> +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
> +CONFIG_ARCH_ZYNQ=y
> +CONFIG_ARM=y
> +CONFIG_ARM_AMBA=y
> +CONFIG_ARM_CCI=y
> +CONFIG_ARM_CCI400_COMMON=y
> +CONFIG_ARM_CCI400_PMU=y
> +CONFIG_ARM_CCI_PMU=y
> +# CONFIG_ARM_CHARLCD is not set
> +CONFIG_ARM_CPU_SUSPEND=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_GIC=y
> +CONFIG_ARM_GLOBAL_TIMER=y
> +CONFIG_ARM_HAS_SG_CHAIN=y
> +CONFIG_ARM_HEAVY_MB=y
> +CONFIG_ARM_L1_CACHE_SHIFT=6
> +CONFIG_ARM_L1_CACHE_SHIFT_6=y
> +# CONFIG_ARM_LPAE is not set
> +CONFIG_ARM_PATCH_PHYS_VIRT=y
> +# CONFIG_ARM_PL172_MPMC is not set
> +CONFIG_ARM_PMU=y
> +# CONFIG_ARM_SMMU is not set
> +# CONFIG_ARM_SP805_WATCHDOG is not set
> +CONFIG_ARM_THUMB=y
> +# CONFIG_ARM_THUMBEE is not set
> +CONFIG_ARM_TIMER_SP804=y
> +CONFIG_ARM_UNWIND=y
> +CONFIG_ARM_VIRT_EXT=y
> +CONFIG_ARM_ZYNQ_CPUIDLE=y
> +CONFIG_ATAGS=y
> +CONFIG_AUTO_ZRELADDR=y
> +# CONFIG_AXI_DMAC is not set
> +# CONFIG_BLK_CGROUP is not set
> +CONFIG_BLK_DEV_LOOP=y
> +CONFIG_BLK_DEV_RAM=y
> +CONFIG_BLK_DEV_RAM_COUNT=16
> +CONFIG_BLK_DEV_RAM_SIZE=16384
> +CONFIG_BLK_DEV_SD=y
> +CONFIG_BOUNCE=y
> +CONFIG_BUILD_BIN2C=y
> +CONFIG_CACHE_L2X0=y
> +CONFIG_CADENCE_TTC_TIMER=y
> +CONFIG_CADENCE_WATCHDOG=y
> +CONFIG_CAN=y
> +# CONFIG_CAN_8DEV_USB is not set
> +CONFIG_CAN_BCM=y
> +CONFIG_CAN_CALC_BITTIMING=y
> +# CONFIG_CAN_CC770 is not set
> +# CONFIG_CAN_C_CAN is not set
> +CONFIG_CAN_DEV=y
> +# CONFIG_CAN_EMS_USB is not set
> +# CONFIG_CAN_ESD_USB2 is not set
> +# CONFIG_CAN_FLEXCAN is not set
> +# CONFIG_CAN_GRCAN is not set
> +CONFIG_CAN_GW=y
> +# CONFIG_CAN_KVASER_USB is not set
> +# CONFIG_CAN_LEDS is not set
> +# CONFIG_CAN_MCP251X is not set
> +# CONFIG_CAN_PEAK_USB is not set
> +CONFIG_CAN_RAW=y
> +# CONFIG_CAN_SJA1000 is not set
> +# CONFIG_CAN_SOFTING is not set
> +# CONFIG_CAN_TI_HECC is not set
> +CONFIG_CAN_XILINXCAN=y
> +CONFIG_CC_OPTIMIZE_FOR_SIZE=y
> +CONFIG_CHR_DEV_SG=y
> +CONFIG_CLKDEV_LOOKUP=y
> +CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
> +CONFIG_CLKSRC_MMIO=y
> +CONFIG_CLKSRC_OF=y
> +CONFIG_CLKSRC_PROBE=y
> +CONFIG_CLKSRC_VERSATILE=y
> +CONFIG_CLK_SP810=y
> +CONFIG_CLK_VEXPRESS_OSC=y
> +CONFIG_CLONE_BACKWARDS=y
> +CONFIG_CMA=y
> +CONFIG_CMA_ALIGNMENT=8
> +CONFIG_CMA_AREAS=7
> +# CONFIG_CMA_DEBUG is not set
> +# CONFIG_CMA_DEBUGFS is not set
> +CONFIG_CMA_SIZE_MBYTES=16
> +# CONFIG_CMA_SIZE_SEL_MAX is not set
> +CONFIG_CMA_SIZE_SEL_MBYTES=y
> +# CONFIG_CMA_SIZE_SEL_MIN is not set
> +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
> +CONFIG_CMDLINE="console=ttyPS0,115200n8 root=/dev/ram rw initrd=0x00800000,16M earlyprintk"
> +CONFIG_CMDLINE_FROM_BOOTLOADER=y
> +CONFIG_COMMON_CLK=y
> +# CONFIG_COMMON_CLK_AXI_CLKGEN is not set
> +CONFIG_COMMON_CLK_SI570=y
> +CONFIG_COMMON_CLK_VERSATILE=y
> +CONFIG_COMPAT_BRK=y
> +CONFIG_CONNECTOR=y
> +CONFIG_CONSOLE_TRANSLATIONS=y
> +CONFIG_COREDUMP=y
> +# CONFIG_CPUFREQ_DT is not set
> +# CONFIG_CPUSETS is not set
> +CONFIG_CPU_32v6K=y
> +CONFIG_CPU_32v7=y
> +CONFIG_CPU_ABRT_EV7=y
> +# CONFIG_CPU_BIG_ENDIAN is not set
> +# CONFIG_CPU_BPREDICT_DISABLE is not set
> +CONFIG_CPU_CACHE_V7=y
> +CONFIG_CPU_CACHE_VIPT=y
> +CONFIG_CPU_COPY_V6=y
> +CONFIG_CPU_CP15=y
> +CONFIG_CPU_CP15_MMU=y
> +CONFIG_CPU_FREQ=y
> +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
> +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
> +CONFIG_CPU_FREQ_GOV_COMMON=y
> +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
> +CONFIG_CPU_FREQ_GOV_ONDEMAND=y
> +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
> +CONFIG_CPU_FREQ_GOV_POWERSAVE=y
> +CONFIG_CPU_FREQ_GOV_USERSPACE=y
> +CONFIG_CPU_FREQ_STAT=y
> +CONFIG_CPU_FREQ_STAT_DETAILS=y
> +CONFIG_CPU_HAS_ASID=y
> +# CONFIG_CPU_ICACHE_DISABLE is not set
> +CONFIG_CPU_IDLE=y
> +CONFIG_CPU_IDLE_GOV_LADDER=y
> +CONFIG_CPU_IDLE_GOV_MENU=y
> +CONFIG_CPU_PABRT_V7=y
> +CONFIG_CPU_PM=y
> +CONFIG_CPU_RMAP=y
> +CONFIG_CPU_THERMAL=y
> +CONFIG_CPU_TLB_V7=y
> +CONFIG_CPU_V7=y
> +CONFIG_CRC16=y
> +# CONFIG_CRC32_SARWATE is not set
> +CONFIG_CRC32_SLICEBY8=y
> +CONFIG_CROSS_MEMORY_ATTACH=y
> +CONFIG_CRYPTO_CRC32C=y
> +CONFIG_CRYPTO_HASH=y
> +CONFIG_CRYPTO_HASH2=y
> +CONFIG_CRYPTO_HW=y
> +CONFIG_DCACHE_WORD_ACCESS=y
> +# CONFIG_DEBUG_FS is not set
> +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
> +# CONFIG_DEBUG_UART_8250 is not set
> +# CONFIG_DEBUG_USER is not set
> +CONFIG_DEFAULT_CFQ=y
> +# CONFIG_DEFAULT_DEADLINE is not set
> +CONFIG_DEFAULT_IOSCHED="cfq"
> +CONFIG_DEVMEM=y
> +CONFIG_DEVTMPFS=y
> +CONFIG_DEVTMPFS_MOUNT=y
> +CONFIG_DIRECT_IO=y
> +CONFIG_DMADEVICES=y
> +CONFIG_DMA_CMA=y
> +CONFIG_DMA_ENGINE=y
> +CONFIG_DMA_OF=y
> +CONFIG_DMA_SHARED_BUFFER=y
> +CONFIG_DRM=y
> +# CONFIG_DRM_AMDGPU is not set
> +# CONFIG_DRM_ARMADA is not set
> +# CONFIG_DRM_AST is not set
> +# CONFIG_DRM_BOCHS is not set
> +CONFIG_DRM_BRIDGE=y
> +# CONFIG_DRM_CIRRUS_QEMU is not set
> +# CONFIG_DRM_EXYNOS is not set
> +CONFIG_DRM_FBDEV_EMULATION=y
> +# CONFIG_DRM_FSL_DCU is not set
> +# CONFIG_DRM_I2C_ADV7511 is not set
> +# CONFIG_DRM_I2C_CH7006 is not set
> +# CONFIG_DRM_I2C_NXP_TDA998X is not set
> +# CONFIG_DRM_I2C_SIL164 is not set
> +CONFIG_DRM_KMS_FB_HELPER=y
> +CONFIG_DRM_KMS_HELPER=y
> +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
> +# CONFIG_DRM_MGA is not set
> +# CONFIG_DRM_MGAG200 is not set
> +# CONFIG_DRM_NOUVEAU is not set
> +# CONFIG_DRM_NXP_PTN3460 is not set
> +# CONFIG_DRM_PARADE_PS8622 is not set
> +# CONFIG_DRM_QXL is not set
> +# CONFIG_DRM_R128 is not set
> +# CONFIG_DRM_RADEON is not set
> +# CONFIG_DRM_SAVAGE is not set
> +# CONFIG_DRM_STI is not set
> +# CONFIG_DRM_TDFX is not set
> +# CONFIG_DRM_TILCDC is not set
> +# CONFIG_DRM_UDL is not set
> +# CONFIG_DRM_VGEM is not set
> +# CONFIG_DRM_VIA is not set
> +CONFIG_DTC=y
> +CONFIG_DUMMY_CONSOLE=y
> +# CONFIG_DW_DMAC_PCI is not set
> +CONFIG_E1000E=y
> +CONFIG_EDAC=y
> +CONFIG_EDAC_ATOMIC_SCRUB=y
> +# CONFIG_EDAC_DEBUG is not set
> +CONFIG_EDAC_LEGACY_SYSFS=y
> +CONFIG_EDAC_MM_EDAC=y
> +CONFIG_EDAC_SUPPORT=y
> +# CONFIG_EDAC_SYNOPSYS is not set
> +CONFIG_EEPROM_AT24=y
> +CONFIG_EEPROM_AT25=y
> +CONFIG_ELF_CORE=y
> +CONFIG_ENABLE_MUST_CHECK=y
> +CONFIG_EXPORTFS=y
> +CONFIG_EXT4_FS=y
> +CONFIG_EXTCON=y
> +# CONFIG_EXTCON_ADC_JACK is not set
> +CONFIG_FAT_FS=y
> +CONFIG_FB=y
> +CONFIG_FB_CFB_COPYAREA=y
> +CONFIG_FB_CFB_FILLRECT=y
> +CONFIG_FB_CFB_IMAGEBLIT=y
> +CONFIG_FB_CMDLINE=y
> +CONFIG_FB_SYS_COPYAREA=y
> +CONFIG_FB_SYS_FILLRECT=y
> +CONFIG_FB_SYS_FOPS=y
> +CONFIG_FB_SYS_IMAGEBLIT=y
> +# CONFIG_FB_XILINX is not set
> +CONFIG_FHANDLE=y
> +CONFIG_FIRMWARE_IN_KERNEL=y
> +CONFIG_FIX_EARLYCON_MEM=y
> +CONFIG_FREEZER=y
> +CONFIG_FS_MBCACHE=y
> +CONFIG_GENERIC_ALLOCATOR=y
> +CONFIG_GENERIC_CLOCKEVENTS=y
> +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
> +CONFIG_GENERIC_IDLE_POLL_SETUP=y
> +CONFIG_GENERIC_IO=y
> +CONFIG_GENERIC_IRQ_SHOW=y
> +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
> +CONFIG_GENERIC_MSI_IRQ=y
> +CONFIG_GENERIC_PCI_IOMAP=y
> +CONFIG_GENERIC_PINCONF=y
> +CONFIG_GENERIC_SCHED_CLOCK=y
> +CONFIG_GENERIC_SMP_IDLE_THREAD=y
> +CONFIG_GENERIC_STRNCPY_FROM_USER=y
> +CONFIG_GENERIC_STRNLEN_USER=y
> +CONFIG_GPIOLIB=y
> +CONFIG_GPIOLIB_IRQCHIP=y
> +CONFIG_GPIO_DEVRES=y
> +CONFIG_GPIO_GENERIC=y
> +CONFIG_GPIO_GENERIC_PLATFORM=y
> +CONFIG_GPIO_SYSFS=y
> +CONFIG_GPIO_ZYNQ=y
> +CONFIG_GRACE_PERIOD=y
> +CONFIG_HANDLE_DOMAIN_IRQ=y
> +CONFIG_HARDIRQS_SW_RESEND=y
> +CONFIG_HAS_DMA=y
> +CONFIG_HAS_IOMEM=y
> +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
> +CONFIG_HAVE_ARCH_AUDITSYSCALL=y
> +CONFIG_HAVE_ARCH_BITREVERSE=y
> +CONFIG_HAVE_ARCH_JUMP_LABEL=y
> +CONFIG_HAVE_ARCH_KGDB=y
> +CONFIG_HAVE_ARCH_PFN_VALID=y
> +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
> +CONFIG_HAVE_ARCH_TRACEHOOK=y
> +CONFIG_HAVE_ARM_SCU=y
> +CONFIG_HAVE_ARM_TWD=y
> +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
> +CONFIG_HAVE_BPF_JIT=y
> +CONFIG_HAVE_CC_STACKPROTECTOR=y
> +CONFIG_HAVE_CLK=y
> +CONFIG_HAVE_CLK_PREPARE=y
> +CONFIG_HAVE_CONTEXT_TRACKING=y
> +CONFIG_HAVE_C_RECORDMCOUNT=y
> +CONFIG_HAVE_DEBUG_KMEMLEAK=y
> +CONFIG_HAVE_DMA_API_DEBUG=y
> +CONFIG_HAVE_DMA_ATTRS=y
> +CONFIG_HAVE_DMA_CONTIGUOUS=y
> +CONFIG_HAVE_DYNAMIC_FTRACE=y
> +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
> +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
> +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
> +CONFIG_HAVE_FUNCTION_TRACER=y
> +CONFIG_HAVE_GENERIC_DMA_COHERENT=y
> +CONFIG_HAVE_HW_BREAKPOINT=y
> +CONFIG_HAVE_IDE=y
> +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
> +CONFIG_HAVE_KERNEL_GZIP=y
> +CONFIG_HAVE_KERNEL_LZ4=y
> +CONFIG_HAVE_KERNEL_LZMA=y
> +CONFIG_HAVE_KERNEL_LZO=y
> +CONFIG_HAVE_KERNEL_XZ=y
> +CONFIG_HAVE_MEMBLOCK=y
> +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
> +CONFIG_HAVE_NET_DSA=y
> +CONFIG_HAVE_OPROFILE=y
> +CONFIG_HAVE_OPTPROBES=y
> +CONFIG_HAVE_PATA_PLATFORM=y
> +CONFIG_HAVE_PERF_EVENTS=y
> +CONFIG_HAVE_PERF_REGS=y
> +CONFIG_HAVE_PERF_USER_STACK_DUMP=y
> +CONFIG_HAVE_PROC_CPU=y
> +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
> +CONFIG_HAVE_SMP=y
> +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
> +CONFIG_HAVE_UID16=y
> +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
> +CONFIG_HDMI=y
> +CONFIG_HID=y
> +CONFIG_HID_GENERIC=y
> +CONFIG_HID_MICROSOFT=y
> +CONFIG_HIGHMEM=y
> +# CONFIG_HIGHPTE is not set
> +CONFIG_HOTPLUG_CPU=y
> +CONFIG_HWMON=y
> +CONFIG_HW_CONSOLE=y
> +CONFIG_HZ_FIXED=0
> +CONFIG_I2C=y
> +CONFIG_I2C_ALGOBIT=y
> +CONFIG_I2C_BOARDINFO=y
> +CONFIG_I2C_CADENCE=y
> +CONFIG_I2C_CHARDEV=y
> +CONFIG_I2C_COMPAT=y
> +CONFIG_I2C_HELPER_AUTO=y
> +CONFIG_I2C_MUX=y
> +# CONFIG_I2C_MUX_GPIO is not set
> +# CONFIG_I2C_MUX_PCA9541 is not set
> +CONFIG_I2C_MUX_PCA954x=y
> +CONFIG_ICST=y
> +CONFIG_IIO=y
> +CONFIG_IIO_BUFFER=y
> +CONFIG_IIO_KFIFO_BUF=y
> +CONFIG_IIO_TRIGGER=y
> +CONFIG_IIO_TRIGGERED_BUFFER=y
> +CONFIG_IKCONFIG=y
> +CONFIG_IKCONFIG_PROC=y
> +CONFIG_INET_DIAG=y
> +CONFIG_INET_LRO=y
> +CONFIG_INET_TCP_DIAG=y
> +CONFIG_INET_XFRM_MODE_BEET=y
> +CONFIG_INET_XFRM_MODE_TRANSPORT=y
> +CONFIG_INET_XFRM_MODE_TUNNEL=y
> +CONFIG_INITRAMFS_SOURCE=""
> +CONFIG_INPUT=y
> +CONFIG_INPUT_EVDEV=y
> +CONFIG_INPUT_KEYBOARD=y
> +# CONFIG_INPUT_MISC is not set
> +CONFIG_INPUT_MOUSE=y
> +CONFIG_INPUT_MOUSEDEV=y
> +CONFIG_INPUT_MOUSEDEV_PSAUX=y
> +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
> +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
> +CONFIG_INPUT_POLLDEV=y
> +CONFIG_INPUT_SPARSEKMAP=y
> +CONFIG_IOMMU_HELPER=y
> +# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
> +CONFIG_IOMMU_SUPPORT=y
> +CONFIG_IOSCHED_CFQ=y
> +CONFIG_IP_PNP=y
> +CONFIG_IP_PNP_BOOTP=y
> +CONFIG_IP_PNP_DHCP=y
> +CONFIG_IP_PNP_RARP=y
> +CONFIG_IRQCHIP=y
> +CONFIG_IRQ_DOMAIN=y
> +CONFIG_IRQ_DOMAIN_HIERARCHY=y
> +CONFIG_IRQ_FORCED_THREADING=y
> +CONFIG_IRQ_WORK=y
> +# CONFIG_ISDN is not set
> +CONFIG_JBD2=y
> +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
> +# CONFIG_JFFS2_FS_XATTR is not set
> +# CONFIG_JFFS2_LZMA is not set
> +CONFIG_JFFS2_ZLIB=y
> +CONFIG_KERNEL_GZIP=y
> +# CONFIG_KERNEL_MODE_NEON is not set
> +# CONFIG_KERNEL_XZ is not set
> +CONFIG_KEYBOARD_ATKBD=y
> +CONFIG_KEYBOARD_GPIO=y
> +CONFIG_KEYBOARD_GPIO_POLLED=y
> +CONFIG_LEDS_GPIO=y
> +CONFIG_LEDS_TRIGGER_BACKLIGHT=y
> +CONFIG_LEDS_TRIGGER_CAMERA=y
> +CONFIG_LEDS_TRIGGER_CPU=y
> +CONFIG_LEDS_TRIGGER_GPIO=y
> +CONFIG_LEDS_TRIGGER_HEARTBEAT=y
> +# CONFIG_LEDS_TRIGGER_NETDEV is not set
> +CONFIG_LEDS_TRIGGER_ONESHOT=y
> +CONFIG_LEDS_TRIGGER_TRANSIENT=y
> +CONFIG_LIBFDT=y
> +CONFIG_LOCKD=y
> +CONFIG_LOCK_SPIN_ON_OWNER=y
> +CONFIG_LOG_BUF_SHIFT=14
> +CONFIG_MACB=y
> +CONFIG_MARVELL_PHY=y
> +CONFIG_MDIO_BITBANG=y
> +CONFIG_MDIO_BOARDINFO=y
> +# CONFIG_MDIO_GPIO is not set
> +CONFIG_MEDIA_CAMERA_SUPPORT=y
> +CONFIG_MEDIA_CONTROLLER=y
> +CONFIG_MEDIA_SUPPORT=y
> +# CONFIG_MEMCG is not set
> +CONFIG_MEMORY=y
> +CONFIG_MEMORY_ISOLATION=y
> +CONFIG_MFD_CORE=y
> +CONFIG_MFD_SYSCON=y
> +CONFIG_MFD_VEXPRESS_SYSREG=y
> +CONFIG_MIGHT_HAVE_CACHE_L2X0=y
> +CONFIG_MIGHT_HAVE_PCI=y
> +CONFIG_MIGRATION=y
> +CONFIG_MMC=y
> +CONFIG_MMC_BLOCK=y
> +CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_OF_ARASAN=y
> +# CONFIG_MMC_SDHCI_PCI is not set
> +CONFIG_MMC_SDHCI_PLTFM=y
> +# CONFIG_MMC_TIFM_SD is not set
> +CONFIG_MODULES_TREE_LOOKUP=y
> +CONFIG_MODULES_USE_ELF_REL=y
> +CONFIG_MODULE_FORCE_UNLOAD=y
> +# CONFIG_MODULE_STRIPPED is not set
> +# CONFIG_MOUSE_BCM5974 is not set
> +# CONFIG_MOUSE_CYAPA is not set
> +# CONFIG_MOUSE_ELAN_I2C is not set
> +CONFIG_MOUSE_PS2=y
> +CONFIG_MOUSE_PS2_ALPS=y
> +CONFIG_MOUSE_PS2_CYPRESS=y
> +# CONFIG_MOUSE_PS2_ELANTECH is not set
> +CONFIG_MOUSE_PS2_FOCALTECH=y
> +CONFIG_MOUSE_PS2_LOGIPS2PP=y
> +CONFIG_MOUSE_PS2_SYNAPTICS=y
> +# CONFIG_MOUSE_PS2_TOUCHKIT is not set
> +CONFIG_MOUSE_PS2_TRACKPOINT=y
> +# CONFIG_MOUSE_SERIAL is not set
> +# CONFIG_MOUSE_VSXXXAA is not set
> +CONFIG_MSDOS_FS=y
> +# CONFIG_MTD_CFI_INTELEXT is not set
> +CONFIG_MTD_CMDLINE_PARTS=y
> +# CONFIG_MTD_COMPLEX_MAPPINGS is not set
> +CONFIG_MTD_M25P80=y
> +CONFIG_MTD_NAND=y
> +CONFIG_MTD_NAND_ECC=y
> +CONFIG_MTD_PHYSMAP=y
> +CONFIG_MTD_SPI_NOR=y
> +CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
> +# CONFIG_MTD_SPLIT is not set
> +CONFIG_MTD_SPLIT_FIRMWARE=y
> +# CONFIG_MTD_SPLIT_SQUASHFS_ROOT is not set
> +CONFIG_MULTI_IRQ_HANDLER=y
> +CONFIG_MUTEX_SPIN_ON_OWNER=y
> +CONFIG_NEED_DMA_MAP_STATE=y
> +CONFIG_NEON=y
> +# CONFIG_NET_CLS_CGROUP is not set
> +CONFIG_NET_FLOW_LIMIT=y
> +CONFIG_NET_PACKET_ENGINE=y
> +CONFIG_NET_PTP_CLASSIFY=y
> +# CONFIG_NET_VENDOR_CIRRUS is not set
> +# CONFIG_NET_VENDOR_FARADAY is not set
> +# CONFIG_NET_VENDOR_MARVELL is not set
> +# CONFIG_NET_VENDOR_MICREL is not set
> +# CONFIG_NET_VENDOR_MICROCHIP is not set
> +# CONFIG_NET_VENDOR_NATSEMI is not set
> +# CONFIG_NET_VENDOR_SEEQ is not set
> +# CONFIG_NET_VENDOR_SMSC is not set
> +# CONFIG_NET_VENDOR_STMICRO is not set
> +# CONFIG_NET_VENDOR_VIA is not set
> +CONFIG_NFS_FS=y
> +CONFIG_NFS_V2=y
> +CONFIG_NLS=y
> +CONFIG_NLS_ASCII=y
> +CONFIG_NLS_CODEPAGE_437=y
> +CONFIG_NLS_ISO8859_1=y
> +CONFIG_NOP_USB_XCEIV=y
> +CONFIG_NO_BOOTMEM=y
> +CONFIG_NO_HZ=y
> +CONFIG_NO_HZ_COMMON=y
> +CONFIG_NO_HZ_IDLE=y
> +CONFIG_NO_IOPORT_MAP=y
> +CONFIG_NR_CPUS=4
> +CONFIG_OF=y
> +CONFIG_OF_ADDRESS=y
> +CONFIG_OF_ADDRESS_PCI=y
> +CONFIG_OF_EARLY_FLATTREE=y
> +CONFIG_OF_FLATTREE=y
> +CONFIG_OF_GPIO=y
> +CONFIG_OF_IRQ=y
> +CONFIG_OF_MDIO=y
> +CONFIG_OF_MTD=y
> +CONFIG_OF_NET=y
> +CONFIG_OF_PCI=y
> +CONFIG_OF_PCI_IRQ=y
> +CONFIG_OF_RESERVED_MEM=y
> +CONFIG_OLD_SIGACTION=y
> +CONFIG_OLD_SIGSUSPEND3=y
> +CONFIG_OUTER_CACHE=y
> +CONFIG_OUTER_CACHE_SYNC=y
> +# CONFIG_OVERLAY_FS is not set
> +CONFIG_PAGE_OFFSET=0xC0000000
> +# CONFIG_PARTITION_ADVANCED is not set
> +CONFIG_PCI=y
> +CONFIG_PCIE_XILINX=y
> +# CONFIG_PCI_DOMAINS_GENERIC is not set
> +CONFIG_PCI_MSI=y
> +CONFIG_PCI_REALLOC_ENABLE_AUTO=y
> +CONFIG_PERF_EVENTS=y
> +CONFIG_PERF_USE_VMALLOC=y
> +CONFIG_PGTABLE_LEVELS=2
> +CONFIG_PHYLIB=y
> +CONFIG_PINCTRL=y
> +# CONFIG_PINCTRL_SINGLE is not set
> +CONFIG_PINCTRL_ZYNQ=y
> +CONFIG_PL310_ERRATA_588369=y
> +CONFIG_PL310_ERRATA_727915=y
> +CONFIG_PL310_ERRATA_753970=y
> +CONFIG_PL310_ERRATA_769419=y
> +CONFIG_PL330_DMA=y
> +CONFIG_PLAT_VERSATILE=y
> +CONFIG_PM=y
> +CONFIG_PMBUS=y
> +CONFIG_PM_CLK=y
> +# CONFIG_PM_DEBUG is not set
> +CONFIG_PM_SLEEP=y
> +CONFIG_PM_SLEEP_SMP=y
> +CONFIG_POWER_RESET=y
> +CONFIG_POWER_RESET_VEXPRESS=y
> +CONFIG_POWER_SUPPLY=y
> +CONFIG_PPS=y
> +CONFIG_PREEMPT=y
> +CONFIG_PREEMPT_COUNT=y
> +# CONFIG_PREEMPT_NONE is not set
> +CONFIG_PREEMPT_RCU=y
> +CONFIG_PROC_EVENTS=y
> +CONFIG_PROC_PAGE_MONITOR=y
> +# CONFIG_PROC_STRIPPED is not set
> +CONFIG_PTP_1588_CLOCK=y
> +CONFIG_R8169=y
> +CONFIG_RAS=y
> +CONFIG_RATIONAL=y
> +# CONFIG_RCU_BOOST is not set
> +CONFIG_RCU_STALL_COMMON=y
> +CONFIG_RD_BZIP2=y
> +CONFIG_RD_GZIP=y
> +CONFIG_RD_LZ4=y
> +CONFIG_RD_LZMA=y
> +CONFIG_RD_LZO=y
> +CONFIG_RD_XZ=y
> +CONFIG_REGMAP=y
> +CONFIG_REGMAP_I2C=y
> +CONFIG_REGMAP_MMIO=y
> +CONFIG_REGMAP_SPI=y
> +CONFIG_REGULATOR=y
> +CONFIG_REGULATOR_FIXED_VOLTAGE=y
> +# CONFIG_REGULATOR_VEXPRESS is not set
> +CONFIG_RFS_ACCEL=y
> +CONFIG_ROOT_NFS=y
> +CONFIG_RPS=y
> +CONFIG_RTC_CLASS=y
> +# CONFIG_RTC_DRV_CMOS is not set
> +CONFIG_RTC_DRV_PCF8563=y
> +CONFIG_RWSEM_SPIN_ON_OWNER=y
> +CONFIG_RWSEM_XCHGADD_ALGORITHM=y
> +CONFIG_SCHED_HRTICK=y
> +# CONFIG_SCHED_INFO is not set
> +CONFIG_SCHED_MC=y
> +CONFIG_SCHED_SMT=y
> +CONFIG_SCSI=y
> +# CONFIG_SENSORS_ADM1275 is not set
> +# CONFIG_SENSORS_LM25066 is not set
> +# CONFIG_SENSORS_LTC2978 is not set
> +# CONFIG_SENSORS_MAX16064 is not set
> +# CONFIG_SENSORS_MAX20751 is not set
> +# CONFIG_SENSORS_MAX34440 is not set
> +# CONFIG_SENSORS_MAX8688 is not set
> +CONFIG_SENSORS_PMBUS=y
> +# CONFIG_SENSORS_TPS40422 is not set
> +CONFIG_SENSORS_UCD9000=y
> +CONFIG_SENSORS_UCD9200=y
> +# CONFIG_SENSORS_ZL6100 is not set
> +# CONFIG_SERIAL_8250 is not set
> +# CONFIG_SERIAL_AMBA_PL010 is not set
> +# CONFIG_SERIAL_AMBA_PL011 is not set
> +CONFIG_SERIAL_XILINX_PS_UART=y
> +CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
> +CONFIG_SERIO=y
> +CONFIG_SERIO_LIBPS2=y
> +CONFIG_SERIO_SERPORT=y
> +CONFIG_SMP=y
> +CONFIG_SMP_ON_UP=y
> +CONFIG_SND=y
> +CONFIG_SND_ARM=y
> +# CONFIG_SND_ARMAACI is not set
> +CONFIG_SND_COMPRESS_OFFLOAD=y
> +CONFIG_SND_DMAENGINE_PCM=y
> +CONFIG_SND_JACK=y
> +CONFIG_SND_PCM=y
> +CONFIG_SND_SOC=y
> +CONFIG_SND_SOC_ADI=y
> +CONFIG_SND_SOC_ADI_AXI_I2S=y
> +CONFIG_SND_SOC_ADI_AXI_SPDIF=y
> +CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
> +CONFIG_SND_SOC_I2C_AND_SPI=y
> +CONFIG_SND_SPI=y
> +CONFIG_SND_SUPPORT_OLD_API=y
> +CONFIG_SOCK_DIAG=y
> +CONFIG_SOC_BUS=y
> +CONFIG_SOUND=y
> +CONFIG_SPARSE_IRQ=y
> +CONFIG_SPI=y
> +CONFIG_SPI_BITBANG=y
> +CONFIG_SPI_CADENCE=y
> +CONFIG_SPI_MASTER=y
> +CONFIG_SPI_XILINX=y
> +CONFIG_SRAM=y
> +CONFIG_SRCU=y
> +# CONFIG_STAGING is not set
> +# CONFIG_STRIP_ASM_SYMS is not set
> +CONFIG_SUNRPC=y
> +# CONFIG_SUNXI_SRAM is not set
> +CONFIG_SUSPEND=y
> +CONFIG_SUSPEND_FREEZER=y
> +CONFIG_SWIOTLB=y
> +CONFIG_SWP_EMULATE=y
> +# CONFIG_SYN_COOKIES is not set
> +CONFIG_SYSCTL_SYSCALL=y
> +CONFIG_SYSFS_SYSCALL=y
> +CONFIG_SYS_SUPPORTS_APM_EMULATION=y
> +# CONFIG_TCP_CONG_ADVANCED is not set
> +# CONFIG_TEXTSEARCH is not set
> +CONFIG_THERMAL=y
> +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
> +CONFIG_THERMAL_GOV_STEP_WISE=y
> +CONFIG_THERMAL_HWMON=y
> +CONFIG_THERMAL_OF=y
> +# CONFIG_THUMB2_KERNEL is not set
> +CONFIG_TICK_CPU_ACCOUNTING=y
> +CONFIG_TIMER_STATS=y
> +# CONFIG_TMPFS_XATTR is not set
> +CONFIG_UIO=y
> +# CONFIG_UIO_AEC is not set
> +# CONFIG_UIO_CIF is not set
> +# CONFIG_UIO_DMEM_GENIRQ is not set
> +# CONFIG_UIO_MF624 is not set
> +# CONFIG_UIO_NETX is not set
> +# CONFIG_UIO_PCI_GENERIC is not set
> +CONFIG_UIO_PDRV_GENIRQ=y
> +# CONFIG_UIO_PRUSS is not set
> +# CONFIG_UIO_SERCOS3 is not set
> +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
> +CONFIG_UNINLINE_SPIN_UNLOCK=y
> +CONFIG_USB=y
> +# CONFIG_USB_AUDIO is not set
> +CONFIG_USB_CHIPIDEA=y
> +# CONFIG_USB_CHIPIDEA_DEBUG is not set
> +CONFIG_USB_CHIPIDEA_HOST=y
> +CONFIG_USB_CHIPIDEA_OF=y
> +CONFIG_USB_CHIPIDEA_PCI=y
> +CONFIG_USB_CHIPIDEA_UDC=y
> +CONFIG_USB_COMMON=y
> +# CONFIG_USB_CONFIGFS_ACM is not set
> +# CONFIG_USB_CONFIGFS_ECM is not set
> +# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set
> +# CONFIG_USB_CONFIGFS_EEM is not set
> +# CONFIG_USB_CONFIGFS_F_FS is not set
> +# CONFIG_USB_CONFIGFS_F_HID is not set
> +# CONFIG_USB_CONFIGFS_F_LB_SS is not set
> +# CONFIG_USB_CONFIGFS_F_MIDI is not set
> +# CONFIG_USB_CONFIGFS_F_PRINTER is not set
> +# CONFIG_USB_CONFIGFS_F_UAC1 is not set
> +# CONFIG_USB_CONFIGFS_F_UAC2 is not set
> +# CONFIG_USB_CONFIGFS_F_UVC is not set
> +CONFIG_USB_CONFIGFS_MASS_STORAGE=y
> +# CONFIG_USB_CONFIGFS_NCM is not set
> +# CONFIG_USB_CONFIGFS_OBEX is not set
> +# CONFIG_USB_CONFIGFS_RNDIS is not set
> +# CONFIG_USB_CONFIGFS_SERIAL is not set
> +CONFIG_USB_EHCI_HCD=y
> +# CONFIG_USB_EHCI_HCD_PLATFORM is not set
> +CONFIG_USB_EHCI_PCI=y
> +# CONFIG_USB_EHCI_TT_NEWSCHED is not set
> +# CONFIG_USB_ETH is not set
> +CONFIG_USB_GADGET=y
> +CONFIG_USB_GADGET_XILINX=y
> +CONFIG_USB_HID=y
> +CONFIG_USB_NET_DRIVERS=y
> +CONFIG_USB_OTG=y
> +CONFIG_USB_OTG_FSM=y
> +CONFIG_USB_PHY=y
> +CONFIG_USB_STORAGE=y
> +CONFIG_USB_SUPPORT=y
> +# CONFIG_USB_UHCI_HCD is not set
> +CONFIG_USB_ULPI=y
> +CONFIG_USB_ULPI_VIEWPORT=y
> +# CONFIG_USB_ZERO_HNPTEST is not set
> +CONFIG_USELIB=y
> +# CONFIG_USERIO is not set
> +CONFIG_USE_OF=y
> +# CONFIG_V4L_PLATFORM_DRIVERS is not set
> +CONFIG_VECTORS_BASE=0xffff0000
> +CONFIG_VEXPRESS_CONFIG=y
> +CONFIG_VEXPRESS_SYSCFG=y
> +CONFIG_VFAT_FS=y
> +CONFIG_VFP=y
> +CONFIG_VFPv3=y
> +CONFIG_VGA_ARB=y
> +CONFIG_VGA_ARB_MAX_GPUS=16
> +# CONFIG_VIDEO_ADP1653 is not set
> +# CONFIG_VIDEO_AS3645A is not set
> +CONFIG_VIDEO_DEV=y
> +# CONFIG_VIDEO_LM3560 is not set
> +# CONFIG_VIDEO_LM3646 is not set
> +CONFIG_VIDEO_V4L2=y
> +# CONFIG_VIDEO_V4L2_SUBDEV_API is not set
> +CONFIG_VITESSE_PHY=y
> +CONFIG_VM_EVENT_COUNTERS=y
> +CONFIG_VT=y
> +CONFIG_VT_CONSOLE=y
> +CONFIG_VT_CONSOLE_SLEEP=y
> +# CONFIG_VT_HW_CONSOLE_BINDING is not set
> +CONFIG_WATCHDOG_CORE=y
> +# CONFIG_WEXT_PRIV is not set
> +# CONFIG_WEXT_SPY is not set
> +# CONFIG_WIRELESS_EXT is not set
> +# CONFIG_WL_TI is not set
> +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
> +CONFIG_XILINX_EMACLITE=y
> +CONFIG_XILINX_VDMA=y
> +CONFIG_XILINX_WATCHDOG=y
> +CONFIG_XILINX_XADC=y
> +CONFIG_XPS=y
> +CONFIG_XZ_DEC_ARM=y
> +CONFIG_XZ_DEC_ARMTHUMB=y
> +CONFIG_XZ_DEC_BCJ=y
> +CONFIG_XZ_DEC_IA64=y
> +CONFIG_XZ_DEC_POWERPC=y
> +CONFIG_XZ_DEC_SPARC=y
> +CONFIG_XZ_DEC_X86=y
> +CONFIG_ZBOOT_ROM_BSS=0x0
> +CONFIG_ZBOOT_ROM_TEXT=0x0
> +CONFIG_ZLIB_DEFLATE=y
> +CONFIG_ZLIB_INFLATE=y
> +CONFIG_ZONE_DMA_FLAG=0
> diff --git a/target/linux/zynq/image/Makefile b/target/linux/zynq/image/Makefile
> new file mode 100644
> index 0000000..2924a5d
> --- /dev/null
> +++ b/target/linux/zynq/image/Makefile
> @@ -0,0 +1,75 @@
> +#
> +# Copyright (C) 2015 OpenWrt.org
> +#
> +# This is free software, licensed under the GNU General Public License v2.
> +# See /LICENSE for more information.
> +#
> +include $(TOPDIR)/rules.mk
> +include $(INCLUDE_DIR)/image.mk
> +
> +#################################################
> +# Images
> +#################################################
> +
> +define Image/boot-imgs
> +	# Copy zImage to BIN_DIR
> +	$(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage
> +
> +	$(call Image/BuildKernel/MkuImage, none, $(KERNEL_LOADADDR), \
> +		$(KERNEL_ENTRY_POINT), $(KDIR)/zImage, \
> +		$(BIN_DIR)/$(IMG_PREFIX)-uImage)
> +
> +	$(call Image/BuildDTB,$(DTS_DIR)/$(DEVICE_DTS).dts,\
> +		$(BIN_DIR)/$(IMG_PREFIX)-system.dtb)
> +
> +	$(call Image/mkfs/cpiogz)
> +	$(call Image/mkfs/targz)
> +
> +	# Create uboot cpio.gz
> +	mkimage -A arm -T ramdisk -C gzip -n "$(PROFILE) OpenWRT rootfs" \
> +		-d $(BIN_DIR)/$(IMG_PREFIX)-rootfs.cpio.gz \
> +		$(BIN_DIR)/$(IMG_PREFIX)-uramdisk.image.gz
> +
> +	# create FIT image with rootfs
> +	./mkits.sh \
> +		-D $(1) -o $(KDIR)/fit-$(1).its -k $(KDIR)/zImage \
> +		-d $(BIN_DIR)/$(IMG_PREFIX)-system.dtb \
> +		-C none -a $(KERNEL_LOADADDR) -e $(KERNEL_ENTRY_POINT) \
> +		-A $(ARCH) -v $(LINUX_VERSION) \
> +		-r $(BIN_DIR)/$(IMG_PREFIX)-rootfs.cpio.gz -z gzip
> +	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/fit-$(1).its $(KDIR)/fit-$(1).itb
> +	$(CP) $(KDIR)/fit-$(1).itb $(BIN_DIR)/$(IMG_PREFIX)-fit.itb
> +	ln -fs $(IMG_PREFIX)-fit.itb $(BIN_DIR)/fit.itb
> +
> +endef
> +
> +#################################################
> +# Devices
> +#################################################
> +
> +# default kernel load address
> +KERNEL_LOADADDR=0x8000
> +KERNEL_ENTRY_POINT=0x8000
> +
> +### Device macros ###
> +define Device/Default
> +	IMG_PREFIX := zynq
> +	DEVICE_DTS :=
> +	PROFILE_SANITIZED :=
> +endef
> +
> +DEVICE_VARS += DEVICE_DTS
> +
> +### ZC702 ###
> +define Device/ZC702
> +	DEVICE_DTS := zynq-zc702
> +endef
> +
> +Image/boot-imgs/ZC702=$(call Image/boot-imgs,zc702)
> +
> +define Image/BuildKernel
> +	$(eval $(call Device/$(PROFILE)))
> +	$(call Image/boot-imgs/$(PROFILE))
> +endef
> +
> +$(eval $(call BuildImage))
> diff --git a/target/linux/zynq/image/mkits.sh b/target/linux/zynq/image/mkits.sh
> new file mode 100755
> index 0000000..2b00d0f
> --- /dev/null
> +++ b/target/linux/zynq/image/mkits.sh
> @@ -0,0 +1,150 @@
> +#!/bin/bash
> +#
> +# Licensed under the terms of the GNU GPL License version 2 or later.
> +#
> +# Author: Peter Tyser <ptyser at xes-inc.com>
> +#
> +# U-Boot firmware supports the booting of images in the Flattened Image
> +# Tree (FIT) format.  The FIT format uses a device tree structure to
> +# describe a kernel image, device tree blob, ramdisk, etc.  This script
> +# creates an Image Tree Source (.its file) which can be passed to the
> +# 'mkimage' utility to generate an Image Tree Blob (.itb file).  The .itb
> +# file can then be booted by U-Boot (or other bootloaders which support
> +# FIT images).  See doc/uImage.FIT/howto.txt in U-Boot source code for
> +# additional information on FIT images.
> +#
> +
> +usage() {
> +	echo "Usage: `basename $0` -A arch -C comp -a addr -e entry" \
> +		"-v version -k kernel [-D name -d dtb] -o its_file"
> +	echo -e "\t-A ==> set architecture to 'arch'"
> +	echo -e "\t-C ==> set compression type 'comp'"
> +	echo -e "\t-a ==> set load address to 'addr' (hex)"
> +	echo -e "\t-e ==> set entry point to 'entry' (hex)"
> +	echo -e "\t-v ==> set kernel version to 'version'"
> +	echo -e "\t-k ==> include kernel image 'kernel'"
> +	echo -e "\t-D ==> human friendly Device Tree Blob 'name'"
> +	echo -e "\t-d ==> include Device Tree Blob 'dtb'"
> +	echo -e "\t-r ==> include ramdisk"
> +	echo -e "\t-z ==> ramdisk compression type"
> +	echo -e "\t-o ==> create output file 'its_file'"
> +	exit 1
> +}
> +
> +while getopts ":A:a:C:D:d:e:k:o:v:r:z:" OPTION
> +do
> +	case $OPTION in
> +		A ) ARCH=$OPTARG;;
> +		a ) LOAD_ADDR=$OPTARG;;
> +		C ) COMPRESS=$OPTARG;;
> +		D ) DEVICE=$OPTARG;;
> +		d ) DTB=$OPTARG;;
> +		e ) ENTRY_ADDR=$OPTARG;;
> +		k ) KERNEL=$OPTARG;;
> +		o ) OUTPUT=$OPTARG;;
> +		v ) VERSION=$OPTARG;;
> +		r ) RAMDISK=$OPTARG;;
> +		z ) RD_COMPRESS=$OPTARG;;
> +		* ) echo "Invalid option passed to '$0' (options:$@)"
> +		usage;;
> +	esac
> +done
> +
> +# Make sure user entered all required parameters
> +if [ -z "${ARCH}" ] || [ -z "${COMPRESS}" ] || [ -z "${LOAD_ADDR}" ] || \
> +	[ -z "${ENTRY_ADDR}" ] || [ -z "${VERSION}" ] || [ -z "${KERNEL}" ] || \
> +	[ -z "${OUTPUT}" ]; then
> +	usage
> +fi
> +
> +ARCH_UPPER=`echo $ARCH | tr '[:lower:]' '[:upper:]'`
> +
> +# Conditionally create fdt information
> +if [ -n "${DTB}" ]; then
> +	FDT="
> +		fdt at 1 {
> +			description = \"${ARCH_UPPER} OpenWrt ${DEVICE} device tree blob\";
> +			data = /incbin/(\"${DTB}\");
> +			type = \"flat_dt\";
> +			arch = \"${ARCH}\";
> +			compression = \"none\";
> +			hash at 1 {
> +				algo = \"crc32\";
> +			};
> +			hash at 2 {
> +				algo = \"sha1\";
> +			};
> +		};
> +"
> +		CONF="			fdt = \"fdt at 1\";"
> +fi
> +
> +# Conditionally create ramdisk node
> +if [ -n "${RAMDISK}" ]; then
> +	RD_COMPRESS=${RD_COMPRESS:-none}
> +	RD="
> +		ramdisk at 1 {
> +			description = \"${ARCH_UPPER} OpenWrt ${DEVICE} ramdisk\";
> +			data = /incbin/(\"${RAMDISK}\");
> +			type = \"ramdisk\";
> +			arch = \"${ARCH}\";
> +			os = \"linux\";
> +			compression = \"${RD_COMPRESS}\";
> +			hash at 1 {
> +				algo = \"crc32\";
> +			};
> +			hash at 2 {
> +				algo = \"sha1\";
> +			};
> +		};
> +"
> +	if [ -z "${CONF}" ]; then
> +		CONF="			ramdisk = \"ramdisk at 1\";"
> +	else
> +		CONF="$CONF
> +			ramdisk = \"ramdisk at 1\";"
> +	fi
> +fi
> +
> +# Create a default, fully populated DTS file
> +DATA="/dts-v1/;
> +
> +/ {
> +	description = \"${ARCH_UPPER} OpenWrt FIT (Flattened Image Tree)\";
> +	#address-cells = <1>;
> +
> +	images {
> +		kernel at 1 {
> +			description = \"${ARCH_UPPER} OpenWrt Linux-${VERSION}\";
> +			data = /incbin/(\"${KERNEL}\");
> +			type = \"kernel\";
> +			arch = \"${ARCH}\";
> +			os = \"linux\";
> +			compression = \"${COMPRESS}\";
> +			load = <${LOAD_ADDR}>;
> +			entry = <${ENTRY_ADDR}>;
> +			hash at 1 {
> +				algo = \"crc32\";
> +			};
> +			hash at 2 {
> +				algo = \"sha1\";
> +			};
> +		};
> +
> +${RD}
> +${FDT}
> +
> +	};
> +
> +	configurations {
> +		default = \"config at 1\";
> +		config at 1 {
> +			description = \"OpenWrt\";
> +			kernel = \"kernel at 1\";
> +${CONF}
> +		};
> +	};
> +};"
> +
> +# Write .its file to disk
> +echo "$DATA" > ${OUTPUT}
> diff --git a/target/linux/zynq/patches-4.4/0001-arm-dts-zynq-zc702.dts-Set-default-rdinit-to-sbin-in.patch b/target/linux/zynq/patches-4.4/0001-arm-dts-zynq-zc702.dts-Set-default-rdinit-to-sbin-in.patch
> new file mode 100644
> index 0000000..af603a1
> --- /dev/null
> +++ b/target/linux/zynq/patches-4.4/0001-arm-dts-zynq-zc702.dts-Set-default-rdinit-to-sbin-in.patch
> @@ -0,0 +1,23 @@
> +From 987b68a94c91b62c020869aec9d9a118259b1f3a Mon Sep 17 00:00:00 2001
> +From: Jason Wu <jason.wu.misc at gmail.com>
> +Date: Tue, 19 Jan 2016 14:24:16 +1000
> +Subject: [PATCH] arm: dts: zynq-zc702.dts: Set default rdinit to /sbin/init
> +
> +Signed-off-by: Jason Wu <jason.wu.misc at gmail.com>
> +
> +diff --git a/arch/arm/boot/dts/zynq-zc702.dts b/arch/arm/boot/dts/zynq-zc702.dts
> +index 68bd8c1..adf9a1d 100644
> +--- a/arch/arm/boot/dts/zynq-zc702.dts
> ++++ b/arch/arm/boot/dts/zynq-zc702.dts
> +@@ -31,7 +31,7 @@
> +	};
> +
> +	chosen {
> +-		bootargs = "earlyprintk";
> ++		bootargs = "earlyprintk rdinit=/sbin/init";
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +--
> +1.9.1
> +
> diff --git a/target/linux/zynq/profiles/zc702.mk b/target/linux/zynq/profiles/zc702.mk
> new file mode 100644
> index 0000000..9d3c972
> --- /dev/null
> +++ b/target/linux/zynq/profiles/zc702.mk
> @@ -0,0 +1,16 @@
> +#
> +# Copyright (C) 2015 OpenWrt.org
> +#
> +# This is free software, licensed under the GNU General Public License v2.
> +# See /LICENSE for more information.
> +#
> +
> +define Profile/ZC702
> +	NAME:=ZC702 development baord
> +endef
> +
> +define Profile/ZC702/Description
> +	Build firmware image for Xilinx Zynq ZC702 development board.
> +endef
> +
> +$(eval $(call Profile,ZC702))
>
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list