yocto/meta-igkboard/COPYING.MIT
New file @@ -0,0 +1,17 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. yocto/meta-igkboard/README
New file @@ -0,0 +1,41 @@ This README file contains information on the contents of the meta-igkboard layer. Please see the corresponding sections below for details. Dependencies ============ URI: <first dependency> branch: <branch name> URI: <second dependency> branch: <branch name> . . . Patches ======= Please submit any patches against the meta-igkboard layer to the xxxx mailing list (xxxx@zzzz.org) and cc: the maintainer: Maintainer: XXX YYYYYY <xxx.yyyyyy@zzzzz.com> Table of Contents ================= I. Adding the meta-igkboard layer to your build II. Misc I. Adding the meta-igkboard layer to your build ================================================= Run 'bitbake-layers add-layer meta-igkboard' II. Misc ======== --- replace with specific information about the meta-igkboard layer --- yocto/meta-igkboard/conf/bblayers.conf
New file @@ -0,0 +1,36 @@ LCONF_VERSION = "6" BBPATH = "${TOPDIR}" BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../..')}" BBFILES ?= "" BBLAYERS = " \ ${BSPDIR}/sources/poky/meta \ ${BSPDIR}/sources/poky/meta-poky \ \ ${BSPDIR}/sources/meta-openembedded/meta-oe \ ${BSPDIR}/sources/meta-openembedded/meta-multimedia \ ${BSPDIR}/sources/meta-openembedded/meta-python \ \ ${BSPDIR}/sources/meta-freescale \ ${BSPDIR}/sources/meta-freescale-3rdparty \ ${BSPDIR}/sources/meta-freescale-distro \ " # i.MX Yocto Project Release layers BBLAYERS += "${BSPDIR}/sources/meta-imx/meta-bsp" BBLAYERS += "${BSPDIR}/sources/meta-imx/meta-sdk" BBLAYERS += "${BSPDIR}/sources/meta-imx/meta-ml" BBLAYERS += "${BSPDIR}/sources/meta-imx/meta-v2x" BBLAYERS += "${BSPDIR}/sources/meta-nxp-demo-experience" BBLAYERS += "${BSPDIR}/sources/meta-browser/meta-chromium" BBLAYERS += "${BSPDIR}/sources/meta-clang" BBLAYERS += "${BSPDIR}/sources/meta-openembedded/meta-gnome" BBLAYERS += "${BSPDIR}/sources/meta-openembedded/meta-networking" BBLAYERS += "${BSPDIR}/sources/meta-openembedded/meta-filesystems" BBLAYERS += "${BSPDIR}/sources/meta-qt5" BBLAYERS += "${BSPDIR}/sources/meta-python2" # Add IoT Gateway Kit Board Yocto Project Release layers BBLAYERS += "${BSPDIR}/sources/meta-igkboard" yocto/meta-igkboard/conf/layer.conf
New file @@ -0,0 +1,13 @@ # We have a conf and classes directory, add to BBPATH BBPATH .= ":${LAYERDIR}" # We have recipes-* directories, add to BBFILES BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ ${LAYERDIR}/recipes-*/*/*.bbappend" BBFILE_COLLECTIONS += "meta-igkboard" BBFILE_PATTERN_meta-igkboard = "^${LAYERDIR}/" BBFILE_PRIORITY_meta-igkboard = "9" LAYERDEPENDS_meta-igkboard = "core" LAYERSERIES_COMPAT_meta-igkboard = "hardknott" yocto/meta-igkboard/conf/local.conf
New file @@ -0,0 +1,24 @@ MACHINE ??= 'igkboard' DISTRO ?= 'fsl-imx-wayland' PACKAGE_CLASSES ?= 'package_rpm' EXTRA_IMAGE_FEATURES ?= "debug-tweaks" USER_CLASSES ?= "buildstats image-mklibs image-prelink" PATCHRESOLVE = "noop" BB_DISKMON_DIRS ??= "\ STOPTASKS,${TMPDIR},1G,100K \ STOPTASKS,${DL_DIR},1G,100K \ STOPTASKS,${SSTATE_DIR},1G,100K \ STOPTASKS,/tmp,100M,100K \ ABORT,${TMPDIR},100M,1K \ ABORT,${DL_DIR},100M,1K \ ABORT,${SSTATE_DIR},100M,1K \ ABORT,/tmp,10M,1K" PACKAGECONFIG_append_pn-qemu-system-native = " sdl" CONF_VERSION = "1" DL_DIR ?= "${BSPDIR}/../hardknott_packets/" ACCEPT_FSL_EULA = "1" # Switch to Debian packaging and include package-management in the image PACKAGE_CLASSES = "package_deb" EXTRA_IMAGE_FEATURES += "package-management" yocto/meta-igkboard/conf/machine/igkboard.conf
New file @@ -0,0 +1,30 @@ #@TYPE: Machine #@NAME: LingYun IoT Gateway Kit Board #@SOC: i.MX6ULL #@DESCRIPTION: Machine configuration for LingYun IoT Gateway Kit Board #@MAINTAINER: Guo Wenxue <guowenxue@gmail.com> # Add new machine igkboard MACHINEOVERRIDES =. "mx6:mx6ul:mx6ull:igkboard:" include conf/machine/include/imx-base.inc include conf/machine/include/tune-cortexa7.inc KERNEL_DEVICETREE = "igkboard-emmc.dtb" UBOOT_CONFIG ??= "sd" UBOOT_CONFIG[sd] = "igkboard_defconfig,sdcard" IMAGE_BOOT_FILES = " \ ${KERNEL_IMAGETYPE} \ ${KERNEL_DEVICETREE} \ " # Remove unused optee bcm4339 bcm43455 MACHINE_FEATURES += "wifi bluetooth" # /etc/hostname hostname_pn-base-files = "igkboard" # Refer to linux-imx/drivers/tty/serial/imx.c SERIAL_CONSOLES = "115200;ttymxc0" yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-imx-igkboard.patch
New file @@ -0,0 +1,402 @@ diff -Nuar uboot-imx/arch/arm/dts/imx6ul-14x14-evk.dtsi uboot-imx-igkboard/arch/arm/dts/imx6ul-14x14-evk.dtsi --- uboot-imx/arch/arm/dts/imx6ul-14x14-evk.dtsi 2021-09-06 16:48:23.000000000 +0800 +++ uboot-imx-igkboard/arch/arm/dts/imx6ul-14x14-evk.dtsi 2021-12-16 17:12:11.714490021 +0800 @@ -21,7 +21,6 @@ regulator-name = "VSD_3V3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; - gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>; off-on-delay-us = <20000>; enable-active-high; }; @@ -83,6 +82,9 @@ pinctrl-0 = <&pinctrl_enet1>; phy-mode = "rmii"; phy-handle = <ðphy0>; + phy-reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>; + phy-reset-duration = <50>; + phy-reset-post-delay = <15>; status = "okay"; }; @@ -91,14 +93,17 @@ pinctrl-0 = <&pinctrl_enet2>; phy-mode = "rmii"; phy-handle = <ðphy1>; + phy-reset-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>; + phy-reset-duration = <50>; + phy-reset-post-delay = <15>; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; - ethphy0: ethernet-phy@2 { - reg = <2>; + ethphy0: ethernet-phy@0 { + reg = <0>; micrel,led-mode = <1>; clocks = <&clks IMX6UL_CLK_ENET_REF>; clock-names = "rmii-ref"; @@ -151,21 +156,21 @@ status = "okay"; display0: display@0 { - bits-per-pixel = <24>; - bus-width = <24>; + bits-per-pixel = <16>; + bus-width = <16>; display-timings { native-mode = <&timing0>; timing0: timing0 { - clock-frequency = <9200000>; - hactive = <480>; - vactive = <272>; - hfront-porch = <8>; - hback-porch = <4>; - hsync-len = <41>; - vback-porch = <2>; - vfront-porch = <4>; - vsync-len = <10>; + clock-frequency = <30000000>; + hactive = <800>; + vactive = <480>; + hfront-porch = <40>; + hback-porch = <88>; + hsync-len = <48>; + vback-porch = <32>; + vfront-porch = <13>; + vsync-len = <3>; hsync-active = <0>; vsync-active = <0>; @@ -312,6 +317,7 @@ MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0 MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0 MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031 + MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x10B0 /* ENET1 RESET */ >; }; @@ -327,6 +333,7 @@ MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0 MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0 MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031 + MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x10B0 /* ENET2 RESET */ >; }; @@ -423,7 +430,6 @@ MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x11088 MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x11088 MX6UL_PAD_JTAG_TMS__SAI2_MCLK 0x17088 - MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x17059 >; }; @@ -448,7 +454,6 @@ fsl,pins = < MX6UL_PAD_BOOT_MODE0__GPIO5_IO10 0x70a1 MX6UL_PAD_BOOT_MODE1__GPIO5_IO11 0x70a1 - MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x70a1 MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x80000000 >; }; @@ -492,9 +497,7 @@ MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059 - MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 /* SD1 CD */ - MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT 0x17059 /* SD1 VSELECT */ - MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x17059 /* SD1 RESET */ + MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 /* SD1 CD */ >; }; diff -Nuar uboot-imx/configs/igkboard_defconfig uboot-imx-igkboard/configs/igkboard_defconfig --- uboot-imx/configs/igkboard_defconfig 1970-01-01 08:00:00.000000000 +0800 +++ uboot-imx-igkboard/configs/igkboard_defconfig 2021-12-16 17:25:11.551447847 +0800 @@ -0,0 +1,96 @@ +CONFIG_ARM=y +CONFIG_ARCH_MX6=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_SYS_MEMTEST_START=0x80000000 +CONFIG_SYS_MEMTEST_END=0x88000000 +CONFIG_ENV_SIZE=0x2000 +CONFIG_ENV_OFFSET=0xE0000 +CONFIG_MX6ULL=y +CONFIG_TARGET_MX6ULL_14X14_EVK=y +CONFIG_DM_GPIO=y +# CONFIG_CMD_QSPIHDR is not set +CONFIG_DEFAULT_DEVICE_TREE="imx6ull-14x14-evk" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SUPPORT_RAW_INITRD=y +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ullevk/imximage.cfg" +CONFIG_BOOTDELAY=3 +CONFIG_BOARD_EARLY_INIT_F=y +CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="[u-boot@igkboard]# " +CONFIG_CMD_BOOTZ=y +# CONFIG_BOOTM_NETBSD is not set +# CONFIG_BOOTM_PLAN9 is not set +# CONFIG_BOOTM_RTEMS is not set +# CONFIG_BOOTM_VXWORKS is not set +# CONFIG_CMD_BOOTEFI is not set +# CONFIG_CMD_ELF is not set +# CONFIG_CMD_XIMG is not set +# CONFIG_CMD_EDITENV is not set +CONFIG_CMD_MEMTEST=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_I2C=y +CONFIG_CMD_MMC=y +CONFIG_CMD_USB=y +CONFIG_CMD_USB_MASS_STORAGE=y +CONFIG_CMD_DHCP=y +CONFIG_CMD_PING=y +CONFIG_CMD_BMP=y +CONFIG_CMD_CACHE=y +CONFIG_CMD_EXT2=y +CONFIG_CMD_EXT4=y +CONFIG_CMD_EXT4_WRITE=y +CONFIG_CMD_FAT=y +CONFIG_CMD_FS_GENERIC=y +CONFIG_OF_CONTROL=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_MMC=y +CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_SYS_MMC_ENV_DEV=1 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_BOUNCE_BUFFER=y +CONFIG_USB_FUNCTION_FASTBOOT=y +CONFIG_FASTBOOT_BUF_ADDR=0x83800000 +CONFIG_FASTBOOT_BUF_SIZE=0x40000000 +CONFIG_FASTBOOT_FLASH=y +CONFIG_DM_74X164=y +CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +CONFIG_FSL_USDHC=y +CONFIG_MTD=y +CONFIG_DM_SPI_FLASH=y +CONFIG_SF_DEFAULT_MODE=0 +CONFIG_SF_DEFAULT_SPEED=40000000 +CONFIG_SPI_FLASH_STMICRO=y +CONFIG_PHYLIB=y +CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y +CONFIG_DM_ETH=y +CONFIG_DM_ETH_PHY=y +CONFIG_FEC_MXC=y +CONFIG_MII=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_IMX6=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y +CONFIG_MXC_UART=y +CONFIG_SPI=y +CONFIG_DM_SPI=y +CONFIG_FSL_QSPI=y +CONFIG_SOFT_SPI=y +CONFIG_IMX_THERMAL=y +CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_USB_STORAGE=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_MANUFACTURER="FSL" +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 +CONFIG_CI_UDC=y +CONFIG_USB_HOST_ETHER=y +CONFIG_USB_ETHER_ASIX=y +CONFIG_DM_VIDEO=y +CONFIG_SYS_WHITE_ON_BLACK=y +CONFIG_SPLASH_SCREEN=y +CONFIG_SPLASH_SCREEN_ALIGN=y diff -Nuar uboot-imx/drivers/net/phy/phy.c uboot-imx-igkboard/drivers/net/phy/phy.c --- uboot-imx/drivers/net/phy/phy.c 2021-09-06 16:48:23.000000000 +0800 +++ uboot-imx-igkboard/drivers/net/phy/phy.c 2021-12-16 17:12:11.714490021 +0800 @@ -182,6 +182,9 @@ { int result; + /* add Soft Reset the PHY by guowenxue, 2021.11.14 */ + phy_reset(phydev); + if (phydev->autoneg != AUTONEG_ENABLE) return genphy_setup_forced(phydev); diff -Nuar uboot-imx/include/configs/mx6ullevk.h uboot-imx-igkboard/include/configs/mx6ullevk.h --- uboot-imx/include/configs/mx6ullevk.h 2021-09-06 16:48:23.000000000 +0800 +++ uboot-imx-igkboard/include/configs/mx6ullevk.h 2021-12-16 17:12:11.714490021 +0800 @@ -100,124 +100,39 @@ #else #define CONFIG_EXTRA_ENV_SETTINGS \ - CONFIG_MFG_ENV_SETTINGS \ - TEE_ENV \ + "emmc_dev=1\0"\ + "emmc_ack=1\0"\ "script=boot.scr\0" \ "image=zImage\0" \ "console=ttymxc0\0" \ - "fdt_high=0xffffffff\0" \ - "initrd_high=0xffffffff\0" \ - "fdt_file=undefined\0" \ + "fdt_file=igkboard-emmc.dtb\0" \ "fdt_addr=0x83000000\0" \ - "tee_addr=0x84000000\0" \ - "tee_file=undefined\0" \ - "boot_fdt=try\0" \ - "ip_dyn=yes\0" \ "splashimage=0x8c000000\0" \ + "ipaddr=192.168.2.22\0" \ + "serverip=192.168.2.2\0" \ "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \ "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ - "mmcautodetect=yes\0" \ - "mmcargs=setenv bootargs console=${console},${baudrate} " \ - BOOTARGS_CMA_SIZE \ - "root=${mmcroot}\0" \ - "loadbootscript=" \ - "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ - "bootscript=echo Running bootscript from mmc ...; " \ - "source\0" \ + "mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot}\0" \ + "loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ + "bootscript=echo Running bootscript from mmc ...; source\0" \ "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ - "loadtee=fatload mmc ${mmcdev}:${mmcpart} ${tee_addr} ${tee_file}\0" \ + "bdtb=tftp $fdt_addr $fdt_file && fatwrite mmc 1:1 $fdt_addr $fdt_file $filesize\0" \ + "bker=tftp $loadaddr $image&& fatwrite mmc 1:1 $loadaddr $image $filesize\0" \ + "bsys=run bdtb && run bker\0" \ "mmcboot=echo Booting from mmc ...; " \ + "mmc dev ${mmcdev}; " \ + "run loadimage; run loadfdt; " \ "run mmcargs; " \ - "if test ${tee} = yes; then " \ - "run loadfdt; run loadtee; bootm ${tee_addr} - ${fdt_addr}; " \ - "else " \ - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ - "if run loadfdt; then " \ - "bootz ${loadaddr} - ${fdt_addr}; " \ - "else " \ - "if test ${boot_fdt} = try; then " \ - "bootz; " \ - "else " \ - "echo WARN: Cannot load the DT; " \ - "fi; " \ - "fi; " \ - "else " \ - "bootz; " \ - "fi; " \ - "fi;\0" \ - "netargs=setenv bootargs console=${console},${baudrate} " \ - BOOTARGS_CMA_SIZE \ - "root=/dev/nfs " \ - "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ - "netboot=echo Booting from net ...; " \ - "${usb_net_cmd}; " \ - "run netargs; " \ - "if test ${ip_dyn} = yes; then " \ - "setenv get_cmd dhcp; " \ - "else " \ - "setenv get_cmd tftp; " \ - "fi; " \ - "${get_cmd} ${image}; " \ - "if test ${tee} = yes; then " \ - "${get_cmd} ${tee_addr} ${tee_file}; " \ - "${get_cmd} ${fdt_addr} ${fdt_file}; " \ - "bootm ${tee_addr} - ${fdt_addr}; " \ - "else " \ - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ - "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ - "bootz ${loadaddr} - ${fdt_addr}; " \ - "else " \ - "if test ${boot_fdt} = try; then " \ - "bootz; " \ - "else " \ - "echo WARN: Cannot load the DT; " \ - "fi; " \ - "fi; " \ - "else " \ - "bootz; " \ - "fi; " \ - "fi;\0" \ - "findfdt="\ - "if test $fdt_file = undefined; then " \ - "if test $board_name = ULZ-EVK && test $board_rev = 14X14; then " \ - "setenv fdt_file imx6ulz-14x14-evk.dtb; fi; " \ - "if test $board_name = EVK && test $board_rev = 9X9; then " \ - "setenv fdt_file imx6ull-9x9-evk.dtb; fi; " \ - "if test $board_name = EVK && test $board_rev = 14X14; then " \ - "setenv fdt_file imx6ull-14x14-evk.dtb; fi; " \ - "if test $fdt_file = undefined; then " \ - "echo WARNING: Could not determine dtb to use; " \ - "fi; " \ - "fi;\0" \ - "findtee="\ - "if test $tee_file = undefined; then " \ - "if test $board_name = ULZ-EVK && test $board_rev = 14X14; then " \ - "setenv tee_file uTee-6ulzevk; fi; " \ - "if test $board_name = EVK && test $board_rev = 9X9; then " \ - "setenv tee_file uTee-6ullevk; fi; " \ - "if test $board_name = EVK && test $board_rev = 14X14; then " \ - "setenv tee_file uTee-6ullevk; fi; " \ - "if test $tee_file = undefined; then " \ - "echo WARNING: Could not determine tee to use; " \ - "fi; " \ - "fi;\0" \ - -#define CONFIG_BOOTCOMMAND \ - "run findfdt;" \ - "run findtee;" \ - "mmc dev ${mmcdev};" \ - "mmc dev ${mmcdev}; if mmc rescan; then " \ - "if run loadbootscript; then " \ - "run bootscript; " \ - "else " \ - "if run loadimage; then " \ - "run mmcboot; " \ - "else run netboot; " \ - "fi; " \ - "fi; " \ - "else run netboot; fi" + "run loadbootscript; run bootscript; " \ + "bootz ${loadaddr} - ${fdt_addr}\0" \ + "netboot=echo Booting from net ...; " \ + "tftp $loadaddr $image; tftp $fdt_addr ${fdt_file};" \ + "run mmcargs; " \ + "bootz ${loadaddr} - ${fdt_addr}\0" \ + "bootcmd=run mmcboot\0" \ + "bbl=tftp ${loadaddr} u-boot-igkboard-emmc.imx && mmc dev ${mmcdev} 1 && mmc write ${loadaddr} 2 0x500\0" #endif /* Miscellaneous configurable options */ @@ -238,7 +153,9 @@ (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) /* environment organization */ +#ifndef CONFIG_SYS_MMC_ENV_DEV #define CONFIG_SYS_MMC_ENV_DEV 1 /* USDHC2 */ +#endif #define CONFIG_MMCROOT "/dev/mmcblk1p2" /* USDHC2 */ #define CONFIG_IOMUX_LPSR diff -Nuar uboot-imx/Makefile uboot-imx-igkboard/Makefile --- uboot-imx/Makefile 2021-09-06 16:48:23.000000000 +0800 +++ uboot-imx-igkboard/Makefile 2021-12-16 17:23:36.221057260 +0800 @@ -263,6 +263,9 @@ CROSS_COMPILE ?= endif +ARCH=arm +CROSS_COMPILE?=/opt/buildroot/cortexA7/bin/arm-linux- + KCONFIG_CONFIG ?= .config export KCONFIG_CONFIG yocto/meta-igkboard/recipes-bsp/u-boot/u-boot-imx_2021.04.bbappend
New file @@ -0,0 +1,10 @@ COMPATIBLE_MACHINE = "(mx6)" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" LOCALVERSION = "_5.10.52_2.1.0" SRCREV = "1c0116f3da250c5a52858c53efb8b38c0963f477" FILESEXTRAPATHS_prepend := "${THISDIR}/files:" SRC_URI_append = " file://uboot-imx-igkboard.patch " yocto/meta-igkboard/recipes-core/base-files/base-files_3.0.14.bbappend
New file @@ -0,0 +1,17 @@ SUMMARY = "Update system configure files" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://licenses/GPL-2;md5=94d55d512a9ba36caa9b7df079bae19f" do_install_basefilesissue_append() { # Overwrite /etc/issue with a custom string printf "Welcome to LingYun IoT Gateway Kit Board GNU/Linux Yocto System, Default Password '12345'.\n" > ${D}${sysconfdir}/issue # Overwrite /etc/issue.net with a custom string printf "Welcome to LingYun IoT Gateway Kit Board GNU/Linux Yocto System, Default Password '12345'.\n" > ${D}${sysconfdir}/issue.net } do_install_append() { # add alias for ls with color display printf "alias ls='ls --color=auto'\n" >> ${D}${sysconfdir}/profile } yocto/meta-igkboard/recipes-drivers/drivers/drivers-mods_1.0.bb
New file @@ -0,0 +1,19 @@ SUMMARY = "Linux kernel hello module" DESCRIPTION = "${SUMMARY}" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" inherit module FILESEXTRAPATHS_prepend := "${THISDIR}/src:" SRC_URI = "file://Makefile \ file://hello.c \ " S = "${WORKDIR}" # The inherit of module.bbclass will automatically name module packages with # "kernel-module-" prefix as required by the oe-core build environment. EXTRA_OEMAKE += "-C ${STAGING_KERNEL_BUILDDIR} M=${S}" EXTRA_OEMAKE_append_task-install = "-C ${STAGING_KERNEL_DIR} M=${S}" yocto/meta-igkboard/recipes-drivers/drivers/src/Makefile
New file @@ -0,0 +1,25 @@ #********************************************************************************* # Copyright: (C) 2021 LingYun IoT System Studio # All rights reserved. # # Filename: Makefile # Description: This Makefile used to compile the hello module here # # Version: 1.0.0(18/12/2021~) # Author: Guo Wenxue <guowenxue@gmail.com> # ChangeLog: 1, Release initial version on "18/12/2021 01:29:33 PM" # #********************************************************************************/ SRC := $(shell pwd) obj-m += hello.o all: @$(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install: $(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install clean: @rm -f *.o *.mod* .*.cmd *.symvers *.order yocto/meta-igkboard/recipes-drivers/drivers/src/hello.c
New file @@ -0,0 +1,34 @@ /********************************************************************************* * Copyright: (C) 2021 LingYun IoT System Studio * All rights reserved. * * Filename: hello.c * Description: This file is the linux kernel sample hello module * * Version: 1.0.0(12/23/2021) * Author: Guo Wenxue <guowenxue@gmail.com> * ChangeLog: 1, Release initial version on "12/23/2021 04:36:57 PM" * ********************************************************************************/ #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> static __init int hello_init(void) { printk(KERN_ALERT "Hello, LingYun IoT System Studio!\n"); return 0; } static __exit void hello_exit(void) { printk(KERN_ALERT "Goodbye, I have found a good job!\n"); } module_init(hello_init); module_exit(hello_exit); MODULE_AUTHOR("GuoWenxue <guowenxue@gmail.com>"); MODULE_DESCRIPTION("Linux Kernel hello module"); MODULE_LICENSE("Dual BSD/GPL"); yocto/meta-igkboard/recipes-hello/hello/hello-apps_1.0.bb
New file @@ -0,0 +1,44 @@ SUMMARY = "A simple Hello application" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" python do_display_banner() { bb.plain("***********************************************"); bb.plain("* *"); bb.plain("* Example recipe for hello application *"); bb.plain("* *"); bb.plain("***********************************************"); } # An example to add a new task addtask display_banner before do_build # Source file list, will auto search in the subdir FILESEXTRAPATHS_prepend := "${THISDIR}/src:" SRC_URI = "file://hello.c \ file://Makefile \ " # Application version and reversion PV = "1" PR = "r0" # Must add this line, or throw error: No GNU_HASH TARGET_CC_ARCH += "${LDFLAGS}" S = "${WORKDIR}" do_compile() { make } # There is /usr/bin/hello in lmbench: dpkg-query -S hello do_install() { install -d ${D}${sbindir} install -m 0755 ${S}/hello ${D}${sbindir} } # Install application to image file FILES_${PN} = "${sbindir}/hello" yocto/meta-igkboard/recipes-hello/hello/src/Makefile
New file @@ -0,0 +1,9 @@ APP_NAME=hello ${APP_NAME}: ${CC} -o $@ $@.c .PHONY: clean clean: rm -rf ${APP_NAME} yocto/meta-igkboard/recipes-hello/hello/src/hello.c
New file @@ -0,0 +1,21 @@ /********************************************************************************* * Copyright: (C) 2021 LingYun IoT System Studio * All rights reserved. * * Filename: hello.c * Description: This file is a simple C programming language source file. * * Version: 1.0.0(12/23/2021) * Author: Guo Wenxue <guowenxue@gmail.com> * ChangeLog: 1, Release initial version on "12/23/2021 03:14:49 PM" * ********************************************************************************/ #include <stdio.h> int main (int argc, char **argv) { printf("Hello, LingYun IoT System Studio!\n"); return 0; } yocto/meta-igkboard/recipes-images/igkboard/linuxsys-image.bb
New file @@ -0,0 +1,50 @@ SUMMARY = "Yocto Linux System Image for LingYun IoT Kit Gateway Board" LICENSE = "MIT" inherit core-image # additional free disk space created in Kbytes IMAGE_OVERHEAD_FACTOR = "1.0" IMAGE_ROOTFS_EXTRA_SPACE = "512000" ## Select Image Features IMAGE_FEATURES += " \ ssh-server-openssh \ package-management \ " CORE_IMAGE_EXTRA_INSTALL += " \ packagegroup-core-full-cmdline \ packagegroup-tools-bluetooth \ packagegroup-fsl-tools-audio \ packagegroup-fsl-gstreamer1.0 \ packagegroup-fsl-gstreamer1.0-full \ packagegroup-qt5-imx \ packagegroup-misc-utils \ firmwared \ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'weston-init', '', d)} \ " CORE_IMAGE_EXTRA_INSTALL_append = " \ drivers-mods \ hello-apps \ gnupg \ e2fsprogs \ e2fsprogs-resize2fs \ parted \ v4l-utils \ sudo \ nano \ hostapd \ evtest \ mtd-utils \ i2c-tools \ spitools \ xz \ udev-extraconf \ " inherit extrausers EXTRA_USERS_PARAMS = "\ usermod -P 12345 root; \ " yocto/meta-igkboard/recipes-kernel/linux/files/linux-imx-igkboard.patch
New file @@ -0,0 +1,1237 @@ diff -Nuar -x include-prefixes -x logo_linux_clut224.ppm linux-imx/arch/arm/boot/dts/igkboard-emmc.dts linux-imx-igkboard/arch/arm/boot/dts/igkboard-emmc.dts --- linux-imx/arch/arm/boot/dts/igkboard-emmc.dts 1970-01-01 08:00:00.000000000 +0800 +++ linux-imx-igkboard/arch/arm/boot/dts/igkboard-emmc.dts 2021-12-22 19:31:56.922407534 +0800 @@ -0,0 +1,10 @@ +/* + * LingYun IoT System Studio IGK(IoT Gateway Kit) Board device tree + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + */ + +#include "imx6ul-14x14-evk-emmc.dts" diff -Nuar -x include-prefixes -x logo_linux_clut224.ppm linux-imx/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi linux-imx-igkboard/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi --- linux-imx/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi 2021-09-08 18:41:11.000000000 +0800 +++ linux-imx-igkboard/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi 2021-12-18 21:41:22.474200827 +0800 @@ -31,7 +31,41 @@ brightness-levels = <0 4 8 16 32 64 128 255>; default-brightness-level = <6>; status = "okay"; - }; + }; + + buzzer: pwm-buzzer { + compatible = "pwm-beeper"; + pwms = <&pwm2 0 500000>; + status = "okay"; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_leds>; + status = "okay"; + + sysled { + lable = "sysled"; + gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + }; + + keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_keys>; + autorepeat; + status = "okay"; + + key_user { + lable = "key_user"; + gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; + linux,code = <KEY_ENTER>; + }; + }; pxp_v4l2 { compatible = "fsl,imx6ul-pxp-v4l2", "fsl,imx6sx-pxp-v4l2", "fsl,imx6sl-pxp-v4l2"; @@ -43,19 +77,16 @@ regulator-name = "VSD_3V3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; - gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>; off-on-delay-us = <20000>; enable-active-high; }; reg_peri_3v3: regulator-peri-3v3 { compatible = "regulator-fixed"; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_peri_3v3>; regulator-name = "VPERI_3V3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; - gpio = <&gpio5 2 GPIO_ACTIVE_LOW>; + /* * If you want to want to make this dynamic please * check schematics and test all affected peripherals: @@ -78,6 +109,24 @@ gpios = <&gpio_spi 3 GPIO_ACTIVE_LOW>; }; + reg_3p3v: 3p3v { + compatible = "regulator-fixed"; + regulator-name = "3P3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + reg_1p8v: 1p8v { + compatible = "regulator-fixed"; + regulator-name = "1P8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + sound { compatible = "simple-audio-card"; simple-audio-card,name = "mx6ul-wm8960"; @@ -115,6 +164,15 @@ }; }; + sound-mqs { + compatible = "fsl,imx-audio-mqs"; + model = "mqs-audio"; + cpu-dai = <&sai1>; + asrc-controller = <&asrc>; + audio-codec = <&mqs>; + status = "okay"; + }; + sound-wm8960 { compatible = "fsl,imx6ul-evk-wm8960", "fsl,imx-audio-wm8960"; @@ -142,7 +200,7 @@ compatible = "spi-gpio"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_spi4>; - status = "okay"; + status = "disabled"; /* MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 conflict with fec1 reset pin */ pinctrl-assert-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; gpio-sck = <&gpio5 11 0>; gpio-mosi = <&gpio5 10 0>; @@ -169,7 +227,7 @@ }; &csi { - status = "disabled"; + status = "okay"; port { csi1_ep: endpoint { @@ -184,6 +242,26 @@ pinctrl-0 = <&pinctrl_i2c2>; status = "okay"; + gt9xx@5d { + compatible = "goodix,gt9147"; + reg = <0x5d>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ts_pins>; + + irq-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>; + reset-gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>; + interrupt-parent = <&gpio5>; + interrupts = <2 IRQ_TYPE_EDGE_FALLING>; + + status = "okay"; + }; + + rtc@6f { + compatible = "isil,isl1208"; + reg = <0x6f>; + status = "okay"; + }; + codec: wm8960@1a { #sound-dai-cells = <0>; compatible = "wlf,wm8960"; @@ -192,7 +270,8 @@ wlf,hp-cfg = <3 2 3>; wlf,gpio-cfg = <1 3>; clocks = <&clks IMX6UL_CLK_SAI2>; - clock-names = "mclk"; + clock-names = "mclk"; + status = "disabled"; }; ov5640: ov5640@3c { @@ -202,12 +281,19 @@ pinctrl-0 = <&pinctrl_csi1>; clocks = <&clks IMX6UL_CLK_CSI>; clock-names = "csi_mclk"; - pwn-gpios = <&gpio_spi 6 1>; - rst-gpios = <&gpio_spi 5 0>; + + DOVDD-supply = <®_3p3v>; + VDD-supply = <®_1p8v>; + AVDD-supply = <®_3p3v>; + DVDD-supply = <®_3p3v>; + + pwn-gpios = <&gpio5 6 GPIO_ACTIVE_HIGH>; + rst-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>; csi_id = <0>; mclk = <24000000>; mclk_source = <0>; - status = "disabled"; + /* rotation = <180>; */ + status = "okay"; port { ov5640_ep: endpoint { remote-endpoint = <&csi1_ep>; @@ -222,6 +308,9 @@ phy-mode = "rmii"; phy-handle = <ðphy0>; phy-supply = <®_peri_3v3>; + phy-reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>; /* MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 conflict with spi4 */ + phy-reset-duration = <50>; + phy-reset-post-delay = <15>; status = "okay"; }; @@ -231,14 +320,17 @@ phy-mode = "rmii"; phy-handle = <ðphy1>; phy-supply = <®_peri_3v3>; + phy-reset-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>; /* MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 conflict with sai2 */ + phy-reset-duration = <50>; + phy-reset-post-delay = <15>; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; - ethphy0: ethernet-phy@2 { - reg = <2>; + ethphy0: ethernet-phy@0 { + reg = <0>; micrel,led-mode = <1>; clocks = <&clks IMX6UL_CLK_ENET_REF>; clock-names = "rmii-ref"; @@ -301,21 +393,21 @@ display0: display@0 { bits-per-pixel = <16>; - bus-width = <24>; + bus-width = <16>; display-timings { native-mode = <&timing0>; timing0: timing0 { - clock-frequency = <9200000>; - hactive = <480>; - vactive = <272>; - hfront-porch = <8>; - hback-porch = <4>; - hsync-len = <41>; - vback-porch = <2>; - vfront-porch = <4>; - vsync-len = <10>; + clock-frequency = <30000000>; + hactive = <800>; + vactive = <480>; + hfront-porch = <40>; + hback-porch = <88>; + hsync-len = <48>; + vback-porch = <32>; + vfront-porch = <13>; + vsync-len = <3>; hsync-active = <0>; vsync-active = <0>; de-active = <1>; @@ -332,6 +424,13 @@ status = "okay"; }; +&pwm2 { + #pwm-cells = <2>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pwm2>; + status = "okay"; +}; + &pxp { status = "okay"; }; @@ -339,7 +438,7 @@ &qspi { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_qspi>; - status = "okay"; + status = "disabled"; /* disable it for the pins conflict with GPIO Led and Key */ flash0: n25q256a@0 { #address-cells = <1>; @@ -352,6 +451,24 @@ }; }; +&mqs { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_mqs>; + clocks = <&clks IMX6UL_CLK_SAI1>; + clock-names = "mclk"; + status = "okay"; +}; + + +&sai1 { + assigned-clocks = <&clks IMX6UL_CLK_SAI1_SEL>, + <&clks IMX6UL_CLK_SAI1>; + assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; + assigned-clock-rates = <0>, <24576000>; + fsl,sai-mclk-direction-output; + status = "okay"; +}; + &sai2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sai2>; @@ -360,7 +477,7 @@ assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; assigned-clock-rates = <0>, <12288000>; fsl,sai-mclk-direction-output; - status = "okay"; + status = "disabled"; /* MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 conflict with fec2 reset pin */ }; &snvs_poweroff { @@ -384,7 +501,7 @@ pinctrl-assert-gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>; port = <1>; sven_low_active; - status = "okay"; + status = "disabled"; }; &tsc { @@ -439,6 +556,7 @@ pinctrl-1 = <&pinctrl_usdhc1_100mhz>; pinctrl-2 = <&pinctrl_usdhc1_200mhz>; cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>; + no-1-8-v; keep-power-in-suspend; wakeup-source; vmmc-supply = <®_sd1_vmmc>; @@ -446,8 +564,8 @@ }; &usdhc2 { - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_usdhc2>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc2>; non-removable; keep-power-in-suspend; wakeup-source; @@ -463,6 +581,32 @@ &iomuxc { pinctrl-names = "default"; + pinctrl_gpio_leds: gpio-leds { + fsl,pins = < + MX6UL_PAD_NAND_DQS__GPIO4_IO16 0x17059 /* led run */ + >; + }; + + pinctrl_gpio_keys: gpio-keys { + fsl,pins = < + MX6UL_PAD_NAND_CE1_B__GPIO4_IO14 0x17059 /* gpio key */ + >; + }; + + pinctrl_mqs: pinctrl-mqs-pins { + fsl,pins = < + MX6UL_PAD_JTAG_TDI__MQS_LEFT 0x11088 /* MQS Left */ + MX6UL_PAD_JTAG_TDO__MQS_RIGHT 0x11088 /* MQS Right */ + >; + }; + + pinctrl_ts_pins: pinctrl-ts-pins { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x17059 /* TouchScreen IRQ */ + MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x17059 /* TouchScreen RST */ + >; + }; + pinctrl_csi1: csi1grp { fsl,pins = < MX6UL_PAD_CSI_MCLK__CSI_MCLK 0x1b088 @@ -490,6 +634,7 @@ MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0 MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0 MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031 + MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x10B0 /* ENET1 RESET conflict with pinctrl_spi4 */ >; }; @@ -505,6 +650,7 @@ MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0 MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0 MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031 + MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x10B0 /* ENET2 RESET conflict with pinctrl_sai2 */ >; }; @@ -594,19 +740,18 @@ MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x11088 MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x11088 MX6UL_PAD_JTAG_TMS__SAI2_MCLK 0x17088 - MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x17059 >; }; - pinctrl_peri_3v3: peri3v3grp { + pinctrl_pwm1: pwm1grp { fsl,pins = < - MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x1b0b0 + MX6UL_PAD_GPIO1_IO08__PWM1_OUT 0x110b0 >; }; - pinctrl_pwm1: pwm1grp { + pinctrl_pwm2: pwm2grp { fsl,pins = < - MX6UL_PAD_GPIO1_IO08__PWM1_OUT 0x110b0 + MX6UL_PAD_GPIO1_IO09__PWM2_OUT 0x110b0 >; }; @@ -625,7 +770,6 @@ fsl,pins = < MX6UL_PAD_BOOT_MODE0__GPIO5_IO10 0x70a1 MX6UL_PAD_BOOT_MODE1__GPIO5_IO11 0x70a1 - MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x70a1 MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x80000000 >; }; @@ -678,9 +822,7 @@ MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059 - MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 /* SD1 CD */ - MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT 0x17059 /* SD1 VSELECT */ - MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x17059 /* SD1 RESET */ + MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 /* SD1 CD */ >; }; diff -Nuar -x include-prefixes -x logo_linux_clut224.ppm linux-imx/arch/arm/boot/dts/imx6ul.dtsi linux-imx-igkboard/arch/arm/boot/dts/imx6ul.dtsi --- linux-imx/arch/arm/boot/dts/imx6ul.dtsi 2021-09-08 18:41:11.000000000 +0800 +++ linux-imx-igkboard/arch/arm/boot/dts/imx6ul.dtsi 2021-12-18 21:41:22.474200827 +0800 @@ -727,6 +727,7 @@ offset = <0x34>; interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; + status = "disabled"; /* disable CPU builtin RTC and will use ISL1208 */ }; snvs_poweroff: snvs-poweroff { @@ -791,6 +792,12 @@ reg = <0x020e4000 0x4000>; }; + mqs: mqs { + compatible = "fsl,imx6sx-mqs"; + gpr = <&gpr>; + status = "disabled"; + }; + gpt2: timer@20e8000 { compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt"; reg = <0x020e8000 0x4000>; diff -Nuar -x include-prefixes -x logo_linux_clut224.ppm linux-imx/arch/arm/boot/dts/Makefile linux-imx-igkboard/arch/arm/boot/dts/Makefile --- linux-imx/arch/arm/boot/dts/Makefile 2021-09-08 18:41:11.000000000 +0800 +++ linux-imx-igkboard/arch/arm/boot/dts/Makefile 2021-12-22 19:41:12.058569872 +0800 @@ -678,6 +678,7 @@ imx6ul-tx6ul-0010.dtb \ imx6ul-tx6ul-0011.dtb \ imx6ul-tx6ul-mainboard.dtb \ + igkboard-emmc.dtb \ imx6ull-14x14-evk.dtb \ imx6ull-14x14-evk-emmc.dtb \ imx6ull-14x14-evk-btwifi.dtb \ diff -Nuar -x include-prefixes -x logo_linux_clut224.ppm linux-imx/arch/arm/configs/igkboard_defconfig linux-imx-igkboard/arch/arm/configs/igkboard_defconfig --- linux-imx/arch/arm/configs/igkboard_defconfig 1970-01-01 08:00:00.000000000 +0800 +++ linux-imx-igkboard/arch/arm/configs/igkboard_defconfig 2021-12-22 19:45:31.209601680 +0800 @@ -0,0 +1,722 @@ +CONFIG_KERNEL_LZO=y +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_CGROUPS=y +CONFIG_MEMCG=y +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_NAMESPACES=y +CONFIG_USER_NS=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y +CONFIG_PERF_EVENTS=y +# CONFIG_SLUB_DEBUG is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_ARCH_MXC=y +CONFIG_SOC_IMX6Q=y +CONFIG_SOC_IMX6SL=y +CONFIG_SOC_IMX6SLL=y +CONFIG_SOC_IMX6SX=y +CONFIG_SOC_IMX6UL=y +CONFIG_SOC_IMX7D=y +CONFIG_SOC_IMX7ULP=y +CONFIG_SMP=y +CONFIG_VMSPLIT_2G=y +CONFIG_ARM_PSCI=y +CONFIG_HIGHMEM=y +CONFIG_FORCE_MAX_ZONEORDER=14 +CONFIG_CMDLINE="noinitrd console=ttymxc0,115200" +CONFIG_KEXEC=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPUFREQ_DT=y +CONFIG_ARM_IMX6Q_CPUFREQ=y +CONFIG_ARM_IMX_CPUFREQ_DT=y +CONFIG_CPU_IDLE=y +CONFIG_ARM_CPUIDLE=y +CONFIG_ARM_PSCI_CPUIDLE=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_PM_DEBUG=y +CONFIG_PM_TEST_SUSPEND=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_BLK_DEV_BSG is not set +CONFIG_CMA=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_NETFILTER=y +CONFIG_VLAN_8021Q=m +CONFIG_LLC2=y +CONFIG_CAN=y +CONFIG_CAN_FLEXCAN=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y +CONFIG_BT_HCIBTUSB=y +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y +CONFIG_BT_HCIUART_MRVL=y +CONFIG_BT_HCIVHCI=y +CONFIG_BT_MRVL=y +CONFIG_BT_MRVL_SDIO=y +CONFIG_CFG80211=y +CONFIG_NL80211_TESTMODE=y +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=y +CONFIG_PCI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_IMX6_HOST=y +CONFIG_PCI_IMX6_EP=y +CONFIG_PCI_ENDPOINT=y +CONFIG_PCI_ENDPOINT_CONFIGFS=y +CONFIG_PCI_EPF_TEST=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +CONFIG_FW_LOADER_USER_HELPER=y +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +CONFIG_IMX_WEIM=y +CONFIG_CONNECTOR=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_PHYSMAP_OF=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_SST25L=y +CONFIG_MTD_RAW_NAND=y +CONFIG_MTD_NAND_GPMI_NAND=y +CONFIG_MTD_NAND_MXC=y +CONFIG_MTD_SPI_NOR=y +# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_FASTMAP=y +CONFIG_MTD_UBI_BLOCK=y +CONFIG_OF_OVERLAY=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_SENSORS_FXOS8700=y +CONFIG_SENSORS_FXAS2100X=y +CONFIG_PCI_ENDPOINT_TEST=y +CONFIG_EEPROM_AT24=y +CONFIG_EEPROM_AT25=y +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +# CONFIG_SCSI_LOWLEVEL is not set +CONFIG_ATA=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_IMX=y +CONFIG_PATA_IMX=y +CONFIG_NETDEVICES=y +# CONFIG_NET_VENDOR_BROADCOM is not set +CONFIG_CS89x0=y +CONFIG_CS89x0_PLATFORM=y +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_SEEQ is not set +CONFIG_SMC91X=y +CONFIG_SMC911X=y +CONFIG_SMSC911X=y +# CONFIG_NET_VENDOR_STMICRO is not set +CONFIG_MICREL_PHY=y +CONFIG_AT803X_PHY=y +CONFIG_USB_RTL8150=y +CONFIG_USB_RTL8152=y +CONFIG_USB_LAN78XX=y +CONFIG_USB_USBNET=y +# CONFIG_USB_NET_AX8817X is not set +# CONFIG_USB_NET_AX88179_178A is not set +CONFIG_USB_NET_CDC_EEM=y +CONFIG_USB_NET_DM9601=y +CONFIG_USB_NET_SMSC75XX=y +CONFIG_USB_NET_SMSC95XX=y +# CONFIG_USB_NET_NET1080 is not set +CONFIG_USB_NET_MCS7830=y +# CONFIG_USB_NET_ZAURUS is not set +CONFIG_USB_IPHETH=y +# CONFIG_WLAN_VENDOR_ADMTEK is not set +# CONFIG_WLAN_VENDOR_ATH is not set +# CONFIG_WLAN_VENDOR_ATMEL is not set +# CONFIG_WLAN_VENDOR_BROADCOM is not set +# CONFIG_WLAN_VENDOR_CISCO is not set +# CONFIG_WLAN_VENDOR_INTEL is not set +# CONFIG_WLAN_VENDOR_INTERSIL is not set +# CONFIG_WLAN_VENDOR_MARVELL is not set +CONFIG_MT7601U=y +CONFIG_MT76x0U=y +CONFIG_MT76x2U=y +CONFIG_MT7663U=y +# CONFIG_WLAN_VENDOR_MICROCHIP is not set +# CONFIG_WLAN_VENDOR_RALINK is not set +CONFIG_RTL8187=y +CONFIG_RTL8192CE=y +CONFIG_RTL8188EE=y +CONFIG_RTL8192EE=y +CONFIG_RTL8821AE=y +CONFIG_RTL8192CU=y +CONFIG_RTL8XXXU=y +CONFIG_RTL8XXXU_UNTESTED=y +# CONFIG_WLAN_VENDOR_RSI is not set +# CONFIG_WLAN_VENDOR_ST is not set +# CONFIG_WLAN_VENDOR_TI is not set +# CONFIG_WLAN_VENDOR_ZYDAS is not set +# CONFIG_WLAN_VENDOR_QUANTENNA is not set +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_EVDEV=y +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_RPMSG=y +CONFIG_KEYBOARD_IMX=y +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_CT36X_WLD is not set +CONFIG_TOUCHSCREEN_GOODIX=y +# CONFIG_TOUCHSCREEN_SYNAPTICS_DSX is not set +# CONFIG_SERIO_SERPORT is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_FSL_LPUART=y +CONFIG_SERIAL_FSL_LPUART_CONSOLE=y +CONFIG_SERIAL_DEV_BUS=y +# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y +CONFIG_I2C_MUX_GPIO=y +# CONFIG_I2C_HELPER_AUTO is not set +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_GPIO=y +CONFIG_I2C_IMX=y +CONFIG_I2C_IMX_LPI2C=y +CONFIG_SPI=y +CONFIG_SPI_FSL_LPSPI=y +CONFIG_SPI_FSL_QUADSPI=y +CONFIG_SPI_GPIO=y +CONFIG_SPI_IMX=y +CONFIG_SPI_SPIDEV=y +CONFIG_SPI_SLAVE=y +CONFIG_SPI_SLAVE_TIME=y +CONFIG_SPI_SLAVE_SYSTEM_CONTROL=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_MXC=y +CONFIG_GPIO_SIOX=m +CONFIG_GPIO_IMX_RPMSG=y +CONFIG_GPIO_MAX732X=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_PCF857X=y +CONFIG_GPIO_STMPE=y +CONFIG_GPIO_74X164=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +CONFIG_POWER_SUPPLY=y +CONFIG_SENSORS_MC13783_ADC=y +CONFIG_SENSORS_GPIO_FAN=y +CONFIG_SENSORS_IIO_HWMON=y +CONFIG_SENSORS_MAX17135=y +CONFIG_SENSORS_MAG3110=y +CONFIG_THERMAL=y +CONFIG_THERMAL_STATISTICS=y +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_CPU_THERMAL=y +CONFIG_IMX_THERMAL=y +CONFIG_DEVICE_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_DA9062_WATCHDOG=y +CONFIG_RN5T618_WATCHDOG=y +CONFIG_IMX2_WDT=y +CONFIG_IMX7ULP_WDT=y +CONFIG_MFD_DA9052_I2C=y +CONFIG_MFD_DA9062=y +CONFIG_MFD_DA9063=y +CONFIG_MFD_MC13XXX_SPI=y +CONFIG_MFD_MC13XXX_I2C=y +CONFIG_MFD_MAX17135=y +CONFIG_MFD_RN5T618=y +CONFIG_MFD_SI476X_CORE=y +CONFIG_MFD_STMPE=y +CONFIG_MFD_WM8994=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_ANATOP=y +CONFIG_REGULATOR_DA9052=y +CONFIG_REGULATOR_DA9062=y +CONFIG_REGULATOR_DA9063=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_MAX17135=y +CONFIG_REGULATOR_MC13783=y +CONFIG_REGULATOR_MC13892=y +CONFIG_REGULATOR_PF1550_RPMSG=y +CONFIG_REGULATOR_PFUZE100=y +CONFIG_REGULATOR_RN5T618=y +CONFIG_RC_CORE=y +CONFIG_RC_DEVICES=y +CONFIG_IR_GPIO_CIR=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=y +CONFIG_USB_GSPCA=y +# CONFIG_RADIO_ADAPTERS is not set +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_MUX=y +CONFIG_VIDEO_MXC_CAPTURE=y +CONFIG_VIDEO_MXC_OUTPUT=y +CONFIG_VIDEO_MXC_CSI_CAMERA=y +CONFIG_MXC_VADC=y +CONFIG_MXC_MIPI_CSI=y +CONFIG_MXC_CAMERA_OV5640_V2=y +CONFIG_MXC_CAMERA_OV5640_MIPI_V2=y +CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=y +CONFIG_VIDEO_MXC_IPU_OUTPUT=y +CONFIG_VIDEO_MXC_PXP_V4L2=y +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_CODA=m +CONFIG_VIDEO_IMX_PXP=y +# CONFIG_VIDEO_IR_I2C is not set +# CONFIG_CXD2880_SPI_DRV is not set +# CONFIG_MEDIA_TUNER_SIMPLE is not set +# CONFIG_MEDIA_TUNER_TDA18250 is not set +# CONFIG_MEDIA_TUNER_TDA8290 is not set +# CONFIG_MEDIA_TUNER_TDA827X is not set +# CONFIG_MEDIA_TUNER_TDA18271 is not set +# CONFIG_MEDIA_TUNER_TDA9887 is not set +# CONFIG_MEDIA_TUNER_TEA5761 is not set +# CONFIG_MEDIA_TUNER_TEA5767 is not set +# CONFIG_MEDIA_TUNER_MSI001 is not set +# CONFIG_MEDIA_TUNER_MT20XX is not set +# CONFIG_MEDIA_TUNER_MT2060 is not set +# CONFIG_MEDIA_TUNER_MT2063 is not set +# CONFIG_MEDIA_TUNER_MT2266 is not set +# CONFIG_MEDIA_TUNER_MT2131 is not set +# CONFIG_MEDIA_TUNER_QT1010 is not set +# CONFIG_MEDIA_TUNER_XC2028 is not set +# CONFIG_MEDIA_TUNER_XC5000 is not set +# CONFIG_MEDIA_TUNER_XC4000 is not set +# CONFIG_MEDIA_TUNER_MXL5005S is not set +# CONFIG_MEDIA_TUNER_MXL5007T is not set +# CONFIG_MEDIA_TUNER_MC44S803 is not set +# CONFIG_MEDIA_TUNER_MAX2165 is not set +# CONFIG_MEDIA_TUNER_TDA18218 is not set +# CONFIG_MEDIA_TUNER_FC0011 is not set +# CONFIG_MEDIA_TUNER_FC0012 is not set +# CONFIG_MEDIA_TUNER_FC0013 is not set +# CONFIG_MEDIA_TUNER_TDA18212 is not set +# CONFIG_MEDIA_TUNER_E4000 is not set +# CONFIG_MEDIA_TUNER_FC2580 is not set +# CONFIG_MEDIA_TUNER_M88RS6000T is not set +# CONFIG_MEDIA_TUNER_TUA9001 is not set +# CONFIG_MEDIA_TUNER_SI2157 is not set +# CONFIG_MEDIA_TUNER_IT913X is not set +# CONFIG_MEDIA_TUNER_R820T is not set +# CONFIG_MEDIA_TUNER_MXL301RF is not set +# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set +# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set +# CONFIG_DVB_STB0899 is not set +# CONFIG_DVB_STB6100 is not set +# CONFIG_DVB_STV090x is not set +# CONFIG_DVB_STV0910 is not set +# CONFIG_DVB_STV6110x is not set +# CONFIG_DVB_STV6111 is not set +# CONFIG_DVB_MXL5XX is not set +# CONFIG_DVB_M88DS3103 is not set +# CONFIG_DVB_DRXK is not set +# CONFIG_DVB_TDA18271C2DD is not set +# CONFIG_DVB_SI2165 is not set +# CONFIG_DVB_MN88472 is not set +# CONFIG_DVB_MN88473 is not set +# CONFIG_DVB_CX24110 is not set +# CONFIG_DVB_CX24123 is not set +# CONFIG_DVB_MT312 is not set +# CONFIG_DVB_ZL10036 is not set +# CONFIG_DVB_ZL10039 is not set +# CONFIG_DVB_S5H1420 is not set +# CONFIG_DVB_STV0288 is not set +# CONFIG_DVB_STB6000 is not set +# CONFIG_DVB_STV0299 is not set +# CONFIG_DVB_STV6110 is not set +# CONFIG_DVB_STV0900 is not set +# CONFIG_DVB_TDA8083 is not set +# CONFIG_DVB_TDA10086 is not set +# CONFIG_DVB_TDA8261 is not set +# CONFIG_DVB_VES1X93 is not set +# CONFIG_DVB_TUNER_ITD1000 is not set +# CONFIG_DVB_TUNER_CX24113 is not set +# CONFIG_DVB_TDA826X is not set +# CONFIG_DVB_TUA6100 is not set +# CONFIG_DVB_CX24116 is not set +# CONFIG_DVB_CX24117 is not set +# CONFIG_DVB_CX24120 is not set +# CONFIG_DVB_SI21XX is not set +# CONFIG_DVB_TS2020 is not set +# CONFIG_DVB_DS3000 is not set +# CONFIG_DVB_MB86A16 is not set +# CONFIG_DVB_TDA10071 is not set +# CONFIG_DVB_SP8870 is not set +# CONFIG_DVB_SP887X is not set +# CONFIG_DVB_CX22700 is not set +# CONFIG_DVB_CX22702 is not set +# CONFIG_DVB_S5H1432 is not set +# CONFIG_DVB_DRXD is not set +# CONFIG_DVB_L64781 is not set +# CONFIG_DVB_TDA1004X is not set +# CONFIG_DVB_NXT6000 is not set +# CONFIG_DVB_MT352 is not set +# CONFIG_DVB_ZL10353 is not set +# CONFIG_DVB_DIB3000MB is not set +# CONFIG_DVB_DIB3000MC is not set +# CONFIG_DVB_DIB7000M is not set +# CONFIG_DVB_DIB7000P is not set +# CONFIG_DVB_DIB9000 is not set +# CONFIG_DVB_TDA10048 is not set +# CONFIG_DVB_AF9013 is not set +# CONFIG_DVB_EC100 is not set +# CONFIG_DVB_STV0367 is not set +# CONFIG_DVB_CXD2820R is not set +# CONFIG_DVB_CXD2841ER is not set +# CONFIG_DVB_RTL2830 is not set +# CONFIG_DVB_RTL2832 is not set +# CONFIG_DVB_RTL2832_SDR is not set +# CONFIG_DVB_SI2168 is not set +# CONFIG_DVB_ZD1301_DEMOD is not set +# CONFIG_DVB_CXD2880 is not set +# CONFIG_DVB_VES1820 is not set +# CONFIG_DVB_TDA10021 is not set +# CONFIG_DVB_TDA10023 is not set +# CONFIG_DVB_STV0297 is not set +# CONFIG_DVB_NXT200X is not set +# CONFIG_DVB_OR51211 is not set +# CONFIG_DVB_OR51132 is not set +# CONFIG_DVB_BCM3510 is not set +# CONFIG_DVB_LGDT330X is not set +# CONFIG_DVB_LGDT3305 is not set +# CONFIG_DVB_LGDT3306A is not set +# CONFIG_DVB_LG2160 is not set +# CONFIG_DVB_S5H1409 is not set +# CONFIG_DVB_AU8522_DTV is not set +# CONFIG_DVB_AU8522_V4L is not set +# CONFIG_DVB_S5H1411 is not set +# CONFIG_DVB_S921 is not set +# CONFIG_DVB_DIB8000 is not set +# CONFIG_DVB_MB86A20S is not set +# CONFIG_DVB_TC90522 is not set +# CONFIG_DVB_MN88443X is not set +# CONFIG_DVB_PLL is not set +# CONFIG_DVB_TUNER_DIB0070 is not set +# CONFIG_DVB_TUNER_DIB0090 is not set +# CONFIG_DVB_DRX39XYJ is not set +# CONFIG_DVB_LNBH25 is not set +# CONFIG_DVB_LNBH29 is not set +# CONFIG_DVB_LNBP21 is not set +# CONFIG_DVB_LNBP22 is not set +# CONFIG_DVB_ISL6405 is not set +# CONFIG_DVB_ISL6421 is not set +# CONFIG_DVB_ISL6423 is not set +# CONFIG_DVB_A8293 is not set +# CONFIG_DVB_LGS8GL5 is not set +# CONFIG_DVB_LGS8GXX is not set +# CONFIG_DVB_ATBM8830 is not set +# CONFIG_DVB_TDA665x is not set +# CONFIG_DVB_IX2505V is not set +# CONFIG_DVB_M88RS2000 is not set +# CONFIG_DVB_AF9033 is not set +# CONFIG_DVB_HORUS3A is not set +# CONFIG_DVB_ASCOT2E is not set +# CONFIG_DVB_HELENE is not set +# CONFIG_DVB_CXD2099 is not set +# CONFIG_DVB_SP2 is not set +CONFIG_DRM=y +CONFIG_DRM_PANEL_LVDS=y +CONFIG_DRM_PANEL_SIMPLE=y +CONFIG_DRM_PANEL_SEIKO_43WVF1G=y +CONFIG_DRM_TI_TFP410=y +CONFIG_FB_MXS=y +CONFIG_FB_MXC_SYNC_PANEL=y +CONFIG_FB_MXC_OVERLAY=y +CONFIG_FB_MXC_MIPI_DSI_NORTHWEST=y +CONFIG_FB_MXC_ADV7535=y +CONFIG_FB_MXC_TRULY_PANEL_TFT3P5581E=y +CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y +CONFIG_FB_MXC_RK_PANEL_RK055AHD042=y +CONFIG_FB_MXC_RK_PANEL_RK055IQH042=y +CONFIG_FB_MXC_MIPI_DSI_SAMSUNG=y +CONFIG_FB_MXC_MIPI_DSI=y +CONFIG_FB_MXC_LDB=y +CONFIG_FB_MXC_EINK_PANEL=y +CONFIG_FB_MXC_EINK_V2_PANEL=y +CONFIG_FB_MXC_HDMI=y +CONFIG_FB_MXS_SII902X=y +CONFIG_FB_MXC_DCIC=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_LCD_L4F00242T03=y +CONFIG_LCD_PLATFORM=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_BACKLIGHT_GPIO=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_LOGO=y +CONFIG_SOUND=y +CONFIG_SND=y +# CONFIG_SND_DRIVERS is not set +# CONFIG_SND_PCI is not set +# CONFIG_SND_ARM is not set +# CONFIG_SND_SPI is not set +# CONFIG_SND_USB is not set +CONFIG_SND_SOC=y +CONFIG_SND_SOC_FSL_ASRC=y +CONFIG_SND_SOC_FSL_SAI=y +CONFIG_SND_SOC_FSL_MQS=y +CONFIG_SND_SOC_FSL_RPMSG=y +CONFIG_SND_IMX_SOC=y +CONFIG_SND_SIMPLE_CARD=y +CONFIG_HID_MULTITOUCH=y +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MXC=y +CONFIG_USB_HCD_TEST_MODE=y +CONFIG_USB_ACM=m +CONFIG_USB_STORAGE=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_TEST=m +CONFIG_USB_EHSET_TEST_FIXTURE=m +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_MXS_PHY=y +CONFIG_USB_GADGET=y +CONFIG_USB_FSL_USB2=y +CONFIG_USB_CONFIGFS=y +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_LB_SS=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_CONFIGFS_F_UAC1=y +CONFIG_USB_CONFIGFS_F_UAC2=y +CONFIG_USB_CONFIGFS_F_MIDI=y +CONFIG_USB_CONFIGFS_F_HID=y +CONFIG_USB_CONFIGFS_F_UVC=y +CONFIG_USB_CONFIGFS_F_PRINTER=y +CONFIG_USB_ZERO=m +CONFIG_USB_AUDIO=m +CONFIG_USB_ETH=m +CONFIG_USB_G_NCM=m +CONFIG_USB_GADGETFS=m +CONFIG_USB_FUNCTIONFS=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_G_SERIAL=m +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PWM=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_DS1307=y +CONFIG_RTC_DRV_ISL1208=y +CONFIG_RTC_DRV_PCF8523=y +CONFIG_RTC_DRV_PCF8563=y +CONFIG_RTC_DRV_M41T80=y +CONFIG_RTC_DRV_RC5T619=y +CONFIG_RTC_DRV_DA9063=y +CONFIG_RTC_DRV_MC13XXX=y +CONFIG_RTC_DRV_MXC=y +CONFIG_RTC_DRV_MXC_V2=y +CONFIG_RTC_DRV_SNVS=y +CONFIG_RTC_DRV_IMX_RPMSG=y +CONFIG_DMADEVICES=y +CONFIG_FSL_EDMA=y +CONFIG_IMX_SDMA=y +CONFIG_MXS_DMA=y +CONFIG_MXC_PXP_V2=y +CONFIG_MXC_PXP_V3=y +CONFIG_DMATEST=m +CONFIG_STAGING=y +CONFIG_STAGING_MEDIA=y +CONFIG_COMMON_CLK_PWM=y +CONFIG_MAILBOX=y +CONFIG_REMOTEPROC=y +CONFIG_IMX_REMOTEPROC=y +CONFIG_EXTCON_USB_GPIO=y +CONFIG_IIO=y +CONFIG_IMX7D_ADC=y +CONFIG_RN5T618_ADC=y +CONFIG_VF610_ADC=y +CONFIG_PWM=y +CONFIG_PWM_FSL_FTM=y +CONFIG_PWM_IMX27=y +CONFIG_PWM_IMX_TPM=y +CONFIG_PHY_MIXEL_LVDS=y +CONFIG_PHY_MIXEL_LVDS_COMBO=y +CONFIG_NVMEM_IMX_OCOTP=y +CONFIG_NVMEM_SNVS_LPGPR=y +CONFIG_TEE=y +CONFIG_OPTEE=y +CONFIG_MUX_MMIO=y +CONFIG_SIOX=m +CONFIG_SIOX_BUS_GPIO=m +CONFIG_MXC_SIM=y +CONFIG_MXC_IPU=y +CONFIG_MXC_SIMv2=y +CONFIG_MXC_MLB150=y +CONFIG_MXC_IPU_V3_PRE=y +CONFIG_MXC_HDMI_CEC=y +CONFIG_MXC_MIPI_CSI2=y +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_OVERLAY_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_EXFAT_FS=y +CONFIG_NTFS_FS=y +CONFIG_NTFS_RW=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_UTF8=y +CONFIG_SECURITYFS=y +CONFIG_CRYPTO_USER=y +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_ECHAINIV=m +CONFIG_CRYPTO_TLS=m +CONFIG_CRYPTO_CFB=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_OFB=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_ESSIV=m +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_VMAC=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_SHA3=m +CONFIG_CRYPTO_SM3=m +CONFIG_CRYPTO_STREEBOG=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SM4=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_ZSTD=y +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_USER_API_RNG=m +CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=m +CONFIG_CRYPTO_DEV_FSL_CAAM=m +CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=m +CONFIG_CRYPTO_DEV_SAHARA=y +CONFIG_CRYPTO_DEV_MXS_DCP=y +CONFIG_CRC_CCITT=m +CONFIG_CRC_T10DIF=y +CONFIG_CRC_ITU_T=m +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_DMA_CMA=y +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_PRINTK_TIME=y +# CONFIG_DEBUG_BUGVERBOSE is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_FS=y +# CONFIG_SCHED_DEBUG is not set +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_FTRACE is not set diff -Nuar -x include-prefixes -x logo_linux_clut224.ppm linux-imx/Makefile linux-imx-igkboard/Makefile --- linux-imx/Makefile 2021-09-08 18:41:11.000000000 +0800 +++ linux-imx-igkboard/Makefile 2021-12-22 19:45:15.333652470 +0800 @@ -367,7 +367,8 @@ # Alternatively CROSS_COMPILE can be set in the environment. # Default value for CROSS_COMPILE is not to prefix executables # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile -ARCH ?= $(SUBARCH) +ARCH ?= arm +CROSS_COMPILE?=/opt/buildroot/cortexA7/bin/arm-linux- # Architecture as present in compile.h UTS_MACHINE := $(ARCH) diff -Nuar -x include-prefixes -x logo_linux_clut224.ppm linux-imx/sound/soc/fsl/fsl_mqs.c linux-imx-igkboard/sound/soc/fsl/fsl_mqs.c --- linux-imx/sound/soc/fsl/fsl_mqs.c 2021-09-08 18:41:11.000000000 +0800 +++ linux-imx-igkboard/sound/soc/fsl/fsl_mqs.c 2021-12-18 21:41:22.474200827 +0800 @@ -247,6 +247,8 @@ &fsl_mqs_dai, 1); if (ret) goto err_free_gpr_np; + + printk("NXP mqs sound card driver register ok\n"); return 0; err_free_gpr_np: diff -Nuar -x include-prefixes -x logo_linux_clut224.ppm linux-imx/sound/soc/fsl/fsl_sai.c linux-imx-igkboard/sound/soc/fsl/fsl_sai.c --- linux-imx/sound/soc/fsl/fsl_sai.c 2021-09-08 18:41:11.000000000 +0800 +++ linux-imx-igkboard/sound/soc/fsl/fsl_sai.c 2021-12-18 21:41:22.474200827 +0800 @@ -1349,7 +1349,7 @@ sai->bus_clk = NULL; } - for (i = 0; i < FSL_SAI_MCLK_MAX; i++) { + for (i = 1; i < FSL_SAI_MCLK_MAX; i++) { sprintf(tmp, "mclk%d", i); sai->mclk_clk[i] = devm_clk_get(&pdev->dev, tmp); if (IS_ERR(sai->mclk_clk[i])) { yocto/meta-igkboard/recipes-kernel/linux/linux-imx-headers_5.10.bbappend
New file @@ -0,0 +1,4 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" SRCREV = "a11753a89ec610768301d4070e10b8bd60fde8cd" yocto/meta-igkboard/recipes-kernel/linux/linux-imx_5.10.bbappend
New file @@ -0,0 +1,15 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" require recipes-kernel/linux/linux-yocto.inc SRCREV = "a11753a89ec610768301d4070e10b8bd60fde8cd" FILESEXTRAPATHS_prepend := "${THISDIR}/files:" SRC_URI += " file://linux-imx-igkboard.patch " PATCHTOOL = "patch" do_copy_defconfig_append() { cp ${S}/arch/arm/configs/igkboard_defconfig ${WORKDIR}/defconfig cp ${S}/arch/arm/configs/igkboard_defconfig ${B}/.config } yocto/meta-igkboard/recipes-misc/expand-rootfs/expand-rootfs_1.0.bb
New file @@ -0,0 +1,15 @@ DESCRIPTION = "Expand rootfs space on MMC" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" FILESEXTRAPATHS_prepend := "${THISDIR}/files:" SRC_URI += " file://expand_rootfs " FILES_${PN} += "${sbindir}/expand_rootfs" do_install() { install -d ${D}/${sbindir}/ install -m 0755 ${WORKDIR}/expand_rootfs ${D}/${sbindir}/ } RDEPENDS_expand-rootfs = "bash e2fsprogs util-linux" yocto/meta-igkboard/recipes-misc/expand-rootfs/files/expand_rootfs
New file @@ -0,0 +1,30 @@ #!/bin/bash set -e set -u # find the root partition information ROOT_PART="$(mount | sed -n 's|^/dev/\(.*\) on / .*|\1|p')" ROOT_DEV="/dev/$(lsblk -no pkname /dev/${ROOT_PART})" PART_NUM="$(echo $ROOT_PART | grep -o "[[:digit:]]*$")" # Get the starting offset of the root partition PART_START=$(fdisk -l $ROOT_DEV | grep $ROOT_PART | awk '{print $2}') [ "$PART_START" ] || return 1 ; fdisk "$ROOT_DEV" > /dev/null 2>&1 <<EOF p d $PART_NUM n p $PART_NUM $PART_START p w EOF resize2fs /dev/$ROOT_PART > /dev/null 2>&1 echo "Expand rootfs size successfully, it will be enlarged upon the next reboot." yocto/meta-igkboard/recipes-misc/packagegroups/packagegroup-misc-utils.bb
New file @@ -0,0 +1,6 @@ SUMMARY = "Useradd system service and system shell scripts tools package" PR = "r1" inherit packagegroup RDEPENDS_${PN} = "expand-rootfs sshswitch wpa-conf" yocto/meta-igkboard/recipes-misc/sshswitch/files/sshswitch.service
New file @@ -0,0 +1,11 @@ [Unit] Description=Turn on SSH if /run/media/mmcblk1p1/ssh is present ConditionPathExists=/run/media/mmcblk1p1/ssh After=weston.service [Service] Type=oneshot ExecStart=/bin/sh -c "/bin/sed -i 's/^#PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config && rm -f /run/media/mmcblk1p1/ssh" [Install] WantedBy=multi-user.target yocto/meta-igkboard/recipes-misc/sshswitch/sshswitch_1.0.bb
New file @@ -0,0 +1,17 @@ DESCRIPTION = "Turn on SSH if /boot/ssh is present" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" inherit systemd SYSTEMD_AUTO_ENABLE = "enable" SYSTEMD_SERVICE_${PN} = "sshswitch.service" SRC_URI += " file://sshswitch.service " FILES_${PN} += "${systemd_unitdir}/system/sshswitch.service" do_install() { install -d ${D}/${systemd_unitdir}/system install -m 0644 ${WORKDIR}/sshswitch.service ${D}/${systemd_unitdir}/system } yocto/meta-igkboard/recipes-misc/wpa-conf/files/wpa-conf.service
New file @@ -0,0 +1,15 @@ [Unit] Description=Copy user wpa_supplicant.conf ConditionPathExists=/run/media/mmcblk1p1/wpa_supplicant.conf After=weston.service [Service] Type=oneshot RemainAfterExit=yes ExecStartPre=/bin/mkdir -p /etc/wpa_supplicant/ ExecStart=/bin/mv /run/media/mmcblk1p1/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant-wlan0.conf ExecStartPost=/bin/chmod 600 /etc/wpa_supplicant/wpa_supplicant-wlan0.conf ExecStartPost=/bin/sh -c "systemctl enable --now wpa_supplicant@wlan0" [Install] WantedBy=multi-user.target yocto/meta-igkboard/recipes-misc/wpa-conf/wpa-conf_1.0.bb
New file @@ -0,0 +1,17 @@ DESCRIPTION = "Copy user wpa_supplicant.conf" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" inherit systemd SYSTEMD_AUTO_ENABLE = "enable" SYSTEMD_SERVICE_${PN} = "wpa-conf.service" SRC_URI += " file://wpa-conf.service " FILES_${PN} += "${systemd_unitdir}/system/wpa-conf.service" do_install() { install -d ${D}/${systemd_unitdir}/system install -m 0644 ${WORKDIR}/wpa-conf.service ${D}/${systemd_unitdir}/system } yocto/meta-igkboard/tools/igkboard-setup.sh
New file @@ -0,0 +1,178 @@ #!/bin/bash CWD=$(pwd) function log_error(){ echo -ne "\e[31m $1 \e[0m\n" } function usage(){ echo "Usage:" echo " MACHINE=<machine> source igkboard-setup.sh <build-dir>" echo "Options:" echo " <machine> machine name" echo " - igkboard" echo " * [-b build-dir]: Build directory, if unspecified script uses 'build' as output directory" echo " * [-h]: help" echo "Examples: " echo "$ MACHINE=igkboard source sources/meta-igkboard/tools/igkboard-setup.sh -b igkboard" echo } function cleanup_EULA(){ cd $CWD/sources/meta-freescale if [ -h EULA ]; then echo Cleanup meta-freescale/EULA... git checkout -- EULA fi if [ ! -f classes/fsl-eula-unpack.bbclass ]; then echo Cleanup meta-freescale/classes/fsl-eula-unpack.bbclass... git checkout -- classes/fsl-eula-unpack.bbclass fi cd - } function file_override() { source_path=$1 override_root=$2 if [ -f $source_path ]; then override_path=$override_root/`basename $source_path` if [ -f $override_path ]; then echo "\ WARNING: The file '$CWD/$source_path' is replacing the upstream file '$CWD/$override_path'. \ Overrides by file replacement are error-prone and discouraged. Please find an \ alternative override mechanism that uses meta-data only. " rm $override_path fi fi } function machine_overrides() { layer=$1 upstream_layer=$2 machines="../sources/$layer/conf/machine/*" machine_includes="../sources/$layer/conf/machine/include/*" for machine in $machines; do file_override $machine ../sources/$upstream_layer/conf/machine done for machine_include in $machine_includes; do file_override $machine_include ../sources/$upstream_layer/conf/machine/include done } function bbclass_overrides() { layer=$1 upstream_layer=$2 bbclasses="../sources/$layer/classes/*" for bbclass in $bbclasses; do file_override $bbclass ../sources/$upstream_layer/classes done } function hook_in_layer() { layer=$1 shift if [ "$1" = "" ]; then upstream_layers="meta-freescale" else upstream_layers="$@" fi # echo "BBLAYERS += \"\${BSPDIR}/sources/$layer\"" >> conf/bblayers.conf for upstream_layer in $upstream_layers; do machine_overrides $layer $upstream_layer bbclass_overrides $layer $upstream_layer done } function igkboard_conf_set(){ local build_dir=$1 if [ $MACHINE == "igkboard" ];then cp $CWD/sources/meta-igkboard/conf/local.conf $CWD/${build_dir}/conf/local.conf cp $CWD/sources/meta-igkboard/conf/bblayers.conf $CWD/${build_dir}/conf/bblayers.conf fi } function run(){ local build_dir=$1 local oeroot=$CWD/sources/poky if [ -e $CWD/sources/oe-core ]; then oeroot=$CWD/sources/oe-core fi . $oeroot/oe-init-build-env $CWD/$build_dir > /dev/null if [ ! -e conf/local.conf ]; then log_error "oe-init-build-env does not generated." exit -1 fi igkboard_conf_set $build_dir # Clean up PATH, because if it includes tokens to current directories somehow, # wrong binaries can be used instead of the expected ones during task execution export PATH="`echo $PATH | sed 's/\(:.\|:\)*:/:/g;s/^.\?://;s/:.\?$//'`" cat <<EOF Welcome LingYun IoT Gateway Kit Board Yocto BSP The Yocto Project has extensive documentation about OE including a reference manual which can be found at: http://yoctoproject.org/documentation You can now run 'bitbake <target>' Common targets are: linuxsys-image core-image-minimal imx-image-full EOF hook_in_layer meta-imx/meta-bsp hook_in_layer meta-imx/meta-sdk hook_in_layer meta-nxp-demo-experience } function start(){ if [ "$(whoami)" = "root" ]; then echo "ERROR: do not use the BSP as root. Exiting..." exit -1 fi local BUILD_DIR; local OLD_OPTIND=$OPTIND while getopts "b:h" fsl_setup_flag do case $fsl_setup_flag in b) BUILD_DIR="$OPTARG"; echo -e "\n Build directory is " $BUILD_DIR ;; h) usage exit -1 ;; \?) usage exit -1;; esac done shift $((OPTIND-1)) OPTIND=$OLD_OPTIND if [ -z "$BUILD_DIR" ]; then BUILD_DIR='build' fi if [ -z "$MACHINE" ]; then echo setting to default machine MACHINE='igkboard' fi cleanup_EULA; mkdir -p $BUILD_DIR run $BUILD_DIR } start $@