diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 1d2490537a..9f65746d25 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -45,6 +45,8 @@ fi if [ "$TARGET_ARCH" = "x86_64" ]; then PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET elfutils:host pciutils" PKG_DEPENDS_UNPACK+=" intel-ucode kernel-firmware" +elif [ "$TARGET_ARCH" = "arm" -a "$DEVICE" = "iMX6" ]; then + PKG_DEPENDS_UNPACK+=" firmware-imx" fi if [[ "$KERNEL_TARGET" = uImage* ]]; then @@ -153,6 +155,15 @@ pre_make_target() { FW_LIST="$(find $PKG_BUILD/external-firmware \( -type f -o -type l \) \( -iname '*.bin' -o -iname '*.fw' -o -path '*/intel-ucode/*' \) | sed 's|.*external-firmware/||' | sort | xargs)" sed -i "s|CONFIG_EXTRA_FIRMWARE=.*|CONFIG_EXTRA_FIRMWARE=\"${FW_LIST}\"|" $PKG_BUILD/.config + + elif [ "$TARGET_ARCH" = "arm" -a "$DEVICE" = "iMX6" ]; then + mkdir -p $PKG_BUILD/external-firmware/imx/sdma + cp -a $(get_build_dir firmware-imx)/firmware/sdma/*imx6*.bin $PKG_BUILD/external-firmware/imx/sdma + cp -a $(get_build_dir firmware-imx)/firmware/vpu/*imx6*.bin $PKG_BUILD/external-firmware + + FW_LIST="$(find $PKG_BUILD/external-firmware -type f | sed 's|.*external-firmware/||' | sort | xargs)" + sed -i -e "s|^CONFIG_EXTRA_FIRMWARE=.*$|CONFIG_EXTRA_FIRMWARE=\"${FW_LIST}\"|" $PKG_BUILD/.config + sed -i -e "/CONFIG_EXTRA_FIRMWARE_DIR/d" -e "/CONFIG_EXTRA_FIRMWARE=.../a CONFIG_EXTRA_FIRMWARE_DIR=\"external-firmware\"" $PKG_BUILD/.config fi kernel_make oldconfig diff --git a/projects/NXP/devices/iMX6/firmwares/brcmfmac_sdio-firmware.dat b/projects/NXP/devices/iMX6/firmwares/brcmfmac_sdio-firmware.dat new file mode 100644 index 0000000000..408be559fd --- /dev/null +++ b/projects/NXP/devices/iMX6/firmwares/brcmfmac_sdio-firmware.dat @@ -0,0 +1,12 @@ +BCM4329B1.hcd +BCM4330B1.hcd +BCM4339A0.hcd +brcmfmac4329-sdio.solidrun,cubox-i-dl.txt +brcmfmac4329-sdio.solidrun,cubox-i-q.txt +brcmfmac4329-sdio.wand,imx6dl-wandboard.txt +brcmfmac4329-sdio.wand,imx6q-wandboard.txt +brcmfmac4330-sdio.solidrun,cubox-i-dl.txt +brcmfmac4330-sdio.solidrun,cubox-i-q.txt +brcmfmac4330-sdio.wand,imx6dl-wandboard.txt +brcmfmac4330-sdio.wand,imx6q-wandboard.txt +brcmfmac4339-sdio.txt diff --git a/projects/NXP/devices/iMX6/linux/linux.arm.conf b/projects/NXP/devices/iMX6/linux/linux.arm.conf index ed9f5b7d82..47ae50e06c 100644 --- a/projects/NXP/devices/iMX6/linux/linux.arm.conf +++ b/projects/NXP/devices/iMX6/linux/linux.arm.conf @@ -1133,7 +1133,7 @@ CONFIG_WIRELESS_EXT=y CONFIG_WEXT_CORE=y CONFIG_WEXT_PROC=y CONFIG_WEXT_PRIV=y -CONFIG_CFG80211=y +CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_CERTIFICATION_ONUS is not set @@ -1143,7 +1143,7 @@ CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set CONFIG_CFG80211_CRDA_SUPPORT=y CONFIG_CFG80211_WEXT=y -CONFIG_MAC80211=y +CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y @@ -2005,15 +2005,15 @@ CONFIG_WLAN=y # CONFIG_WLAN_VENDOR_ADMTEK is not set # CONFIG_WLAN_VENDOR_ATH is not set CONFIG_WLAN_VENDOR_ATMEL=y -CONFIG_ATMEL=y +CONFIG_ATMEL=m # CONFIG_PCI_ATMEL is not set -CONFIG_AT76C50X_USB=y +CONFIG_AT76C50X_USB=m CONFIG_WLAN_VENDOR_BROADCOM=y # CONFIG_B43 is not set # CONFIG_B43LEGACY is not set -CONFIG_BRCMUTIL=y +CONFIG_BRCMUTIL=m # CONFIG_BRCMSMAC is not set -CONFIG_BRCMFMAC=y +CONFIG_BRCMFMAC=m CONFIG_BRCMFMAC_PROTO_BCDC=y CONFIG_BRCMFMAC_SDIO=y # CONFIG_BRCMFMAC_USB is not set @@ -3158,8 +3158,8 @@ CONFIG_VIDEO_V4L2=y CONFIG_VIDEO_V4L2_I2C=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -CONFIG_V4L2_JPEG_HELPER=m -CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_V4L2_JPEG_HELPER=y +CONFIG_V4L2_MEM2MEM_DEV=y # end of Video4Linux options # @@ -3296,7 +3296,7 @@ CONFIG_RADIO_ADAPTERS=y CONFIG_VIDEOBUF2_CORE=y CONFIG_VIDEOBUF2_V4L2=y CONFIG_VIDEOBUF2_MEMOPS=y -CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_DMA_CONTIG=y CONFIG_VIDEOBUF2_VMALLOC=y CONFIG_V4L_PLATFORM_DRIVERS=y # CONFIG_VIDEO_CAFE_CCIC is not set @@ -3305,8 +3305,8 @@ CONFIG_V4L_PLATFORM_DRIVERS=y # CONFIG_VIDEO_MUX is not set # CONFIG_VIDEO_XILINX is not set CONFIG_V4L_MEM2MEM_DRIVERS=y -CONFIG_VIDEO_CODA=m -CONFIG_VIDEO_IMX_VDOA=m +CONFIG_VIDEO_CODA=y +CONFIG_VIDEO_IMX_VDOA=y # CONFIG_VIDEO_IMX_PXP is not set CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m # CONFIG_DVB_PLATFORM_DRIVERS is not set diff --git a/projects/NXP/devices/iMX6/patches/linux/linux-001-imx6qdl-wandboard-revc1-dtsi-bluetooth.patch b/projects/NXP/devices/iMX6/patches/linux/linux-001-imx6qdl-wandboard-revc1-dtsi-bluetooth.patch new file mode 100644 index 0000000000..d881166f30 --- /dev/null +++ b/projects/NXP/devices/iMX6/patches/linux/linux-001-imx6qdl-wandboard-revc1-dtsi-bluetooth.patch @@ -0,0 +1,37 @@ +Add MMC power sequence for usdhc2. +Add bluetooth node to uart3. + +--- a/arch/arm/boot/dts/imx6qdl-wandboard-revc1.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-wandboard-revc1.dtsi +@@ -6,6 +6,15 @@ + + #include "imx6qdl-wandboard.dtsi" + ++/ { ++ pwrseq_usdhc2: usdhc2pwrseq { ++ compatible = "mmc-pwrseq-simple"; ++ reset-gpios = <&gpio1 26 GPIO_ACTIVE_LOW>, /* WL_REG_ON */ ++ <&gpio5 30 GPIO_ACTIVE_LOW>, /* BT_REG_ON */ ++ <&gpio5 21 GPIO_ACTIVE_LOW>; /* BT_RST_N */ ++ }; ++}; ++ + &iomuxc { + pinctrl-0 = <&pinctrl_hog>; + +@@ -28,8 +37,15 @@ + }; + }; + ++&uart3 { ++ bluetooth { ++ compatible = "brcm,bcm4330-bt"; ++ }; ++}; ++ + &usdhc2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc2>; ++ mmc-pwrseq = <&pwrseq_usdhc2>; + status = "okay"; + }; diff --git a/projects/NXP/devices/iMX6/patches/linux/linux-011-imx6qdl-sr-som-brcm-dtsi-bluetooth.patch b/projects/NXP/devices/iMX6/patches/linux/linux-011-imx6qdl-sr-som-brcm-dtsi-bluetooth.patch new file mode 100644 index 0000000000..91f62bc157 --- /dev/null +++ b/projects/NXP/devices/iMX6/patches/linux/linux-011-imx6qdl-sr-som-brcm-dtsi-bluetooth.patch @@ -0,0 +1,15 @@ +Add bluetooth node to uart4. + +--- a/arch/arm/boot/dts/imx6qdl-sr-som-brcm.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-sr-som-brcm.dtsi +@@ -128,6 +127,10 @@ + pinctrl-0 = <&pinctrl_microsom_brcm_bt &pinctrl_microsom_uart4>; + uart-has-rtscts; + status = "okay"; ++ ++ bluetooth { ++ compatible = "brcm,bcm4330-bt"; ++ }; + }; + + /* USDHC1 - Connected to optional BRCM Wifi/BT/FM */ diff --git a/projects/NXP/options b/projects/NXP/options index 46084bec8c..49399abf30 100644 --- a/projects/NXP/options +++ b/projects/NXP/options @@ -63,7 +63,7 @@ # additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware) # Space separated list is supported, # e.g. FIRMWARE="dvb-firmware misc-firmware wlan-firmware" - FIRMWARE="misc-firmware wlan-firmware dvb-firmware brcmfmac_sdio-firmware-imx firmware-imx" + FIRMWARE="misc-firmware wlan-firmware dvb-firmware brcmfmac_sdio-firmware" # build with installer (yes / no) INSTALLER_SUPPORT="no"