[Armadeus-commitlog] armadeus branch, master, updated. armadeus-5.3-441-g5457314
Brought to you by:
sszy
|
From: Sébastien S. <ss...@us...> - 2014-10-14 13:44:28
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 545731411ff15a89f63f4916af35408d4a06c9b8 (commit)
via babd34e2d51b65b4427d7f8b8ad6dc3d0dd2fdac (commit)
via 40bb49649c8859f9f638fafc7ff5c3b83e253bb8 (commit)
via 4475e238c00d2a3839781b8dfc38cb29bb1d0b0c (commit)
from 82447945f6d73190c4e866b8b27953f031f30ddf (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 545731411ff15a89f63f4916af35408d4a06c9b8
Author: Sébastien Szymanski <ss...@us...>
Date: Tue Oct 14 15:46:22 2014 +0200
[LINUX] 3.17: apf6: add patches to have a working pcie.
The patches come from linux-arm-kernel and linux-pcie mailing lists.
commit babd34e2d51b65b4427d7f8b8ad6dc3d0dd2fdac
Author: Sébastien Szymanski <ss...@us...>
Date: Tue Oct 14 14:45:51 2014 +0200
[UBOOT] 2014.07: apf6: useful commands, usb and usb gadget support
Commands to update U-Boot, the kernel and the device tree have been
added.
eMMC can be exposed via usb gadget using the following command:
- ums 0 mmc 0
commit 40bb49649c8859f9f638fafc7ff5c3b83e253bb8
Author: Sébastien Szymanski <ss...@us...>
Date: Tue Oct 14 13:43:41 2014 +0200
[LINUX] 3.17: move APF6 to linux 3.17
commit 4475e238c00d2a3839781b8dfc38cb29bb1d0b0c
Author: Sébastien Szymanski <ss...@us...>
Date: Tue Oct 14 13:31:58 2014 +0200
[LINUX] 3.17: copy patch 0506-armadeus-change_mmc_numbering.patch from linux 3.16
-----------------------------------------------------------------------
Summary of changes:
buildroot/configs/apf6_defconfig | 2 +-
...f6-linux-3.16.config => apf6-linux-3.17.config} | 0
.../device/armadeus/apf6/apf6-u-boot-2014.07.h | 269 +++++++++++---------
.../device/armadeus/rootfs/post_image_creation.sh | 6 +
.../0506-armadeus-change_mmc_numbering.patch | 0
...add-pci-config-space-as-platform-resource.patch | 30 +++
...0508-PCI-imx6-fix-occasional-link-failure.patch | 29 ++
...wait-the-clocks-to-stabilize-after-ref_en.patch | 30 +++
8 files changed, 242 insertions(+), 124 deletions(-)
copy buildroot/target/device/armadeus/apf6/{apf6-linux-3.16.config => apf6-linux-3.17.config} (100%)
copy patches/linux/{3.16 => 3.17}/0506-armadeus-change_mmc_numbering.patch (100%)
create mode 100644 patches/linux/3.17/0507-ARM-imx6-add-pci-config-space-as-platform-resource.patch
create mode 100644 patches/linux/3.17/0508-PCI-imx6-fix-occasional-link-failure.patch
create mode 100644 patches/linux/3.17/0509-v5-3-9-PCI-imx6-wait-the-clocks-to-stabilize-after-ref_en.patch
diff --git a/buildroot/configs/apf6_defconfig b/buildroot/configs/apf6_defconfig
index 0fb2947..8509eb7 100644
--- a/buildroot/configs/apf6_defconfig
+++ b/buildroot/configs/apf6_defconfig
@@ -22,7 +22,7 @@ BR2_TARGET_ARMADEUS_NR_SDRAM="2"
BR2_TARGET_ARMADEUS_SDRAM_SIZE="512"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.16"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.17"
BR2_LINUX_KERNEL_PATCH="../patches/linux/$(BR2_LINUX_KERNEL_VERSION)"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-linux-$(BR2_LINUX_KERNEL_VERSION).config"
diff --git a/buildroot/target/device/armadeus/apf6/apf6-linux-3.16.config b/buildroot/target/device/armadeus/apf6/apf6-linux-3.17.config
similarity index 100%
copy from buildroot/target/device/armadeus/apf6/apf6-linux-3.16.config
copy to buildroot/target/device/armadeus/apf6/apf6-linux-3.17.config
diff --git a/buildroot/target/device/armadeus/apf6/apf6-u-boot-2014.07.h b/buildroot/target/device/armadeus/apf6/apf6-u-boot-2014.07.h
index 7f21060..22add25 100644
--- a/buildroot/target/device/armadeus/apf6/apf6-u-boot-2014.07.h
+++ b/buildroot/target/device/armadeus/apf6/apf6-u-boot-2014.07.h
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2013 Armadeus Systems
*
- * Configuration settings for the apf6.
+ * Configuration settings for the APF6.
*
* SPDX-License-Identifier: GPL-2.0+
*/
@@ -15,6 +15,10 @@
#define CONFIG_SYS_GENERIC_BOARD
+#define CONFIG_VERSION_VARIABLE
+#define CONFIG_ENV_VERSION 1
+#define CONFIG_BOARD_NAME apf6
+
/* SPL */
#define CONFIG_SPL_MMC_SUPPORT
@@ -25,8 +29,7 @@
#define CONFIG_DISPLAY_CPUINFO
#define CONFIG_DISPLAY_BOARDINFO
-#define MACH_TYPE_APF6 4412 /* has to be changed !! */
-#define CONFIG_MACH_TYPE MACH_TYPE_APF6
+#define CONFIG_MACH_TYPE 4412 /* has to be changed !! */
#include <asm/arch/imx-regs.h>
#include <asm/imx-common/gpio.h>
@@ -52,20 +55,31 @@
#define CONFIG_CONS_INDEX 1
#define CONFIG_BAUDRATE 115200
-/* Command definition */
+/* U-boot commands */
#include <config_cmd_default.h>
-
#undef CONFIG_CMD_IMLS
-
#define CONFIG_CMD_BMODE
+#define CONFIG_CMD_BOOTZ
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_DNS
+#define CONFIG_CMD_EXT2
+#define CONFIG_CMD_EXT4
+#define CONFIG_CMD_EXT4_WRITE
+#define CONFIG_CMD_FAT
+#define CONFIG_CMD_FS_GENERIC
+#define CONFIG_CMD_MII
+#define CONFIG_CMD_MMC
+#define CONFIG_CMD_NET
+#define CONFIG_CMD_PING
#define CONFIG_CMD_SETEXPR
+#define CONFIG_CMD_USB
+#define CONFIG_CMD_USB_MASS_STORAGE
#define CONFIG_BOOTDELAY 5
#define CONFIG_SYS_MEMTEST_START 0x10000000
#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 500 * SZ_1M)
#define CONFIG_LOADADDR 0x12000000
-#define CONFIG_SYS_TEXT_BASE 0x17800000
/* MMC Configuration */
#define CONFIG_SUPPORT_EMMC_BOOT
@@ -75,20 +89,11 @@
#define CONFIG_SYS_FSL_ESDHC_ADDR USDHC2_BASE_ADDR
#define CONFIG_MMC
-#define CONFIG_CMD_MMC
#define CONFIG_GENERIC_MMC
#define CONFIG_BOUNCE_BUFFER
-#define CONFIG_CMD_EXT2
-#define CONFIG_CMD_FAT
-#define CONFIG_CMD_EXT4
-#define CONFIG_CMD_FS_GENERIC
#define CONFIG_DOS_PARTITION
/* Ethernet Configuration */
-#define CONFIG_CMD_PING
-#define CONFIG_CMD_DHCP
-#define CONFIG_CMD_MII
-#define CONFIG_CMD_NET
#define CONFIG_FEC_MXC
#define CONFIG_MII
#define IMX_FEC_BASE ENET_BASE_ADDR
@@ -114,114 +119,131 @@
#define CONFIG_IPUV3_CLK 260000000
#define CONFIG_IMX_HDMI
+/* USB Configs */
+#define CONFIG_USB_DEVICE
+#define CONFIG_USB_EHCI
+#define CONFIG_USB_EHCI_MX6
+#define CONFIG_USB_STORAGE
+#define CONFIG_USB_KEYBOARD
+#define CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP
+#define CONFIG_USB_HOST_ETHER
+#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
+#define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW)
+#define CONFIG_MXC_USB_FLAGS 0
+/* Gadget part */
+#define CONFIG_CI_UDC
+#define CONFIG_USB_GADGET
+#define CONFIG_USB_GADGET_DUALSPEED
+#define CONFIG_USB_GADGET_MASS_STORAGE
+#define CONFIG_USB_GADGET_VBUS_DRAW 2
+#define CONFIG_USBDOWNLOAD_GADGET
+#define CONFIG_G_DNL_VENDOR_NUM 0x0525
+#define CONFIG_G_DNL_PRODUCT_NUM 0xa4a5
+#define CONFIG_G_DNL_MANUFACTURER "ARMadeus Systems"
+
+/*
+ * BOOTP options
+ */
+#define CONFIG_BOOTP_SUBNETMASK
+#define CONFIG_BOOTP_GATEWAY
+#define CONFIG_BOOTP_HOSTNAME
+#define CONFIG_BOOTP_BOOTPATH
+#define CONFIG_BOOTP_BOOTFILESIZE
+#define CONFIG_BOOTP_DNS
+#define CONFIG_BOOTP_DNS2
+
+#define CONFIG_HOSTNAME CONFIG_BOARD_NAME
+#define CONFIG_ROOTPATH "/tftpboot/" __stringify(CONFIG_BOARD_NAME) "-root"
+
+#define CONFIG_PREBOOT "run check_env;"
+
+#define ACFG_CONSOLE_DEV ttymxc3
+#define CONFIG_SYS_AUTOLOAD "no"
+#define CONFIG_BOOTARGS "console=" __stringify(ACFG_CONSOLE_DEV) "," __stringify(CONFIG_BAUDRATE)
+#define CONFIG_BOOTCOMMAND "run emmcboot"
#define CONFIG_EXTRA_ENV_SETTINGS \
- "script=boot.scr\0" \
- "uimage=uImage\0" \
- "console=ttymxc3\0" \
- "splashpos=m,m\0" \
- "fdt_high=0xffffffff\0" \
- "initrd_high=0xffffffff\0" \
- "fdt_addr=0x18000000\0" \
- "boot_fdt=try\0" \
- "ip_dyn=yes\0" \
- "mmcdev=0\0" \
- "mmcpart=1\0" \
- "mmcroot=/dev/mmcblk2p2 ro\0" \
- "mmcrootfstype=ext4 rootwait\0" \
- "update_sd_firmware_filename=u-boot.imx\0" \
- "update_sd_firmware=" \
- "if test ${ip_dyn} = yes; then " \
- "setenv get_cmd dhcp; " \
- "else " \
- "setenv get_cmd tftp; " \
- "fi; " \
- "if mmc dev ${mmcdev}; then " \
- "if ${get_cmd} ${update_sd_firmware_filename}; then " \
- "setexpr fw_sz ${filesize} / 0x200; " \
- "setexpr fw_sz ${fw_sz} + 1; " \
- "mmc write ${loadaddr} 0x2 ${fw_sz}; " \
- "fi; " \
- "fi\0" \
- "mmcargs=setenv bootargs console=${console},${baudrate} " \
- "${optargs} " \
- "root=${mmcroot} " \
- "rootfstype=${mmcrootfstype} " \
- "video=${video}\0" \
- "loadbootenv=load mmc ${mmcdev}:${mmcpart} ${loadaddr} uEnv.txt\0" \
- "importbootenv=echo Importing environment from mmc (uEnv.txt)...; " \
- "env import -t $loadaddr $filesize\0" \
- "loadbootscript=" \
- "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
- "bootscript=echo Running bootscript from mmc ...; " \
- "source\0" \
- "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \
- "loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage\0" \
- "loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} /dtbs/${fdt_file}\0" \
- "mmcboot=echo Booting from mmc ...; " \
- "run mmcargs; " \
- "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 ${loadaddr}; " \
- "else " \
- "echo WARN: Cannot load the DT; " \
- "fi; " \
- "fi; " \
- "else " \
- "bootz ${loadaddr}; " \
- "fi;\0" \
- "netargs=setenv bootargs console=${console},${baudrate} " \
- "root=/dev/nfs " \
- "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
- "netboot=echo Booting from net ...; " \
- "run netargs; " \
- "if test ${ip_dyn} = yes; then " \
- "setenv get_cmd dhcp; " \
- "else " \
- "setenv get_cmd tftp; " \
- "fi; " \
- "${get_cmd} zImage; " \
- "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 ${loadaddr}; " \
- "else " \
- "echo WARN: Cannot load the DT; " \
- "fi; " \
- "fi; " \
- "else " \
- "bootz ${loadaddr}; " \
- "fi;"
-
-#define CONFIG_BOOTCOMMAND \
- "mmc dev ${mmcdev};" \
- "if mmc rescan; then " \
- "echo SD/MMC found on device ${mmcdev};" \
- "if run loadbootenv; then " \
- "run importbootenv;" \
- "fi;" \
- "echo Checking if uenvcmd is set ...;" \
- "if test -n $uenvcmd; then " \
- "echo Running uenvcmd ...;" \
- "run uenvcmd;" \
- "fi;" \
- "echo Running default loadzimage ...;" \
- "if run loadzimage; then " \
- "run mmcboot;" \
- "fi;" \
- "fi;"
+ "env_version=" __stringify(CONFIG_ENV_VERSION) "\0" \
+ "consoledev=" __stringify(ACFG_CONSOLE_DEV) "\0" \
+ "board_name=" __stringify(CONFIG_BOARD_NAME) "\0" \
+ "fdt_high=0xffffffff\0" \
+ "initrd_high=0xffffffff\0" \
+ "fdt_addr=0x18000000\0" \
+ "ip_dyn=yes\0" \
+ "mmcdev=0\0" \
+ "mmcpart=1\0" \
+ "mmcroot=/dev/mmcblk2p2 ro\0" \
+ "mmcrootfstype=ext4 rootwait\0" \
+ "check_env=if test -n ${flash_env_version}; " \
+ "then env default env_version; " \
+ "else env set flash_env_version ${env_version}; env save; " \
+ "fi; " \
+ "if itest ${flash_env_version} != ${env_version}; then " \
+ "echo \"*** Warning - Environment version" \
+ " change suggests: run flash_reset_env; reset\"; " \
+ "env default flash_reset_env; " \
+ "else exit; fi; \0" \
+ "flash_reset_env=env default -f -a && saveenv && " \
+ "echo Flash environment variables erased!\0" \
+ "download_uboot_spl=tftpboot ${loadaddr} ${board_name}-u-boot.spl\0" \
+ "flash_uboot_spl=" \
+ "if mmc dev ${mmcdev} 1; then " \
+ "setexpr sz ${filesize} / 0x200; " \
+ "if mmc write ${loadaddr} 0x2 ${sz}; then " \
+ "echo Flashing of U-boot SPL succeed; " \
+ "else echo Flashing of U-boot SPL failed; " \
+ "fi; " \
+ "fi;\0" \
+ "download_uboot_img=tftpboot ${loadaddr} ${board_name}-u-boot.img\0" \
+ "flash_uboot_img=" \
+ "if mmc dev ${mmcdev} 1; then " \
+ "setexpr sz ${filesize} / 0x200; " \
+ "if mmc write ${loadaddr} 0x8a ${sz}; then " \
+ "echo Flashing of U-boot image succeed; " \
+ "else echo Flashing of U-boot image failed; " \
+ "fi; " \
+ "fi;\0" \
+ "update_uboot=run download_uboot_spl flash_uboot_spl " \
+ "download_uboot_img flash_uboot_img\0" \
+ "download_kernel=tftpboot ${loadaddr} ${board_name}-linux.bin\0" \
+ "flash_kernel=" \
+ "if ext4write mmc 0:1 ${loadaddr} /${board_name}-linux.bin ${filesize}; then " \
+ "echo Flashing of kernel succeed; " \
+ "else echo Flashing of kernel failed; " \
+ "fi;\0" \
+ "update_kernel=run download_kernel flash_kernel\0" \
+ "download_dtb=tftpboot ${loadaddr} ${fdt_file}\0" \
+ "flash_dtb=" \
+ "if ext4write mmc 0:1 ${loadaddr} /dtbs/${fdt_file} ${filesize}; then " \
+ "echo Flashing of dtb succeed; " \
+ "else echo Flashing of dtb failed; " \
+ "fi;\0" \
+ "update_dtb=run download_dtb flash_dtb\0" \
+ "update_all=run update_kernel update_dtb update_uboot\0" \
+ "loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${board_name}-linux.bin\0" \
+ "loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} /dtbs/${fdt_file}\0" \
+ "addipargs=setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:" \
+ "${gatewayip}:${netmask}:${hostname}:eth0:off\0" \
+ "addmmcargs=setenv bootargs ${bootargs} root=${mmcroot} " \
+ "rootfstype=${mmcrootfstype}\0" \
+ "emmcboot=setenv bootargs console=${consoledev},${baudrate} ${extrabootargs}; " \
+ "run addmmcargs addipargs; " \
+ "run loadzimage && run loadfdt && bootz ${loadaddr} - ${fdt_addr};\0" \
+ "addnfsargs=setenv bootargs ${bootargs} root=/dev/nfs rw " \
+ "nfsroot=${serverip}:${rootpath}\0" \
+ "nfsboot=setenv bootargs console=${consoledev},${baudrate} ${extrabootargs}; " \
+ "run addnfsargs addipargs; " \
+ "nfs ${loadaddr} ${serverip}:${rootpath}/boot/${board_name}-linux.bin && " \
+ "nfs ${fdt_addr} ${serverip}:${rootpath}/boot/dtbs/${fdt_file} && " \
+ "bootz ${loadaddr} - ${fdt_addr};\0"
/* Miscellaneous configurable options */
-#define CONFIG_SYS_LONGHELP
-#define CONFIG_SYS_HUSH_PARSER
-#define CONFIG_SYS_PROMPT "BIOS> "
#define CONFIG_AUTO_COMPLETE
+#define CONFIG_CMDLINE_EDITING
#define CONFIG_SYS_CBSIZE 256
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_SYS_LONGHELP
+#define CONFIG_SYS_PROMPT "BIOS> "
/* Print Buffer Size */
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
@@ -231,8 +253,6 @@
#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
#define CONFIG_SYS_HZ 1000
-#define CONFIG_CMDLINE_EDITING
-
/* Physical Memory Map */
#define CONFIG_NR_DRAM_BANKS 1
#define PHYS_SDRAM MMDC0_ARB_BASE_ADDR
@@ -249,11 +269,14 @@
/* FLASH and environment organization */
#define CONFIG_SYS_NO_FLASH
-#define CONFIG_ENV_IS_NOWHERE
-#define CONFIG_ENV_SIZE (8 * 1024)
+#define CONFIG_ENV_IS_IN_MMC
+#define CONFIG_SYS_MMC_ENV_DEV 0
+#define CONFIG_SYS_MMC_ENV_PART 1
+#define CONFIG_ENV_SIZE (10 * 1024)
+#define CONFIG_ENV_OFFSET (1024 * 1024) /* 1 MB */
+#define CONFIG_ENV_OFFSET_REDUND (1536 * 1024) /* 512KB from CONFIG_ENV_OFFSET */
#define CONFIG_OF_LIBFDT
-#define CONFIG_CMD_BOOTZ
#define CONFIG_SUPPORT_RAW_INITRD
#ifndef CONFIG_SYS_DCACHE_OFF
diff --git a/buildroot/target/device/armadeus/rootfs/post_image_creation.sh b/buildroot/target/device/armadeus/rootfs/post_image_creation.sh
index ca64cb8..b7195f2 100755
--- a/buildroot/target/device/armadeus/rootfs/post_image_creation.sh
+++ b/buildroot/target/device/armadeus/rootfs/post_image_creation.sh
@@ -30,9 +30,15 @@ if [ "$2" != "" ]; then
for rootfstype in ubi ubifs tar jffs2; do
symlink_image $1 rootfs.$rootfstype $2-rootfs.$rootfstype
done
+
# linux
symlink_image $1 uImage $2-linux.bin
+ symlink_image $1 zImage $2-linux.bin
symlink_image $1 $3-$2dev.dtb $2.dtb
+
+ # APF6
+ symlink_image $1 SPL $2-u-boot.spl
+
else
# Old BR compat
BOARD_NAME=`grep 'BR2_BOARD_NAME=' $BUILDROOT_CONFIG | cut -d = -f 2 | sed s/\"//g`
diff --git a/patches/linux/3.16/0506-armadeus-change_mmc_numbering.patch b/patches/linux/3.17/0506-armadeus-change_mmc_numbering.patch
similarity index 100%
copy from patches/linux/3.16/0506-armadeus-change_mmc_numbering.patch
copy to patches/linux/3.17/0506-armadeus-change_mmc_numbering.patch
diff --git a/patches/linux/3.17/0507-ARM-imx6-add-pci-config-space-as-platform-resource.patch b/patches/linux/3.17/0507-ARM-imx6-add-pci-config-space-as-platform-resource.patch
new file mode 100644
index 0000000..90ce2f8
--- /dev/null
+++ b/patches/linux/3.17/0507-ARM-imx6-add-pci-config-space-as-platform-resource.patch
@@ -0,0 +1,30 @@
+diff --git a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
+index 9455fd0ec830..6fbba53a309b 100644
+--- a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
++++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
+@@ -17,7 +17,9 @@ Example:
+
+ pcie@0x01000000 {
+ compatible = "fsl,imx6q-pcie", "snps,dw-pcie";
+- reg = <0x01ffc000 0x4000>;
++ reg = <0x01ffc000 0x04000>,
++ <0x01f00000 0x80000>;
++ reg-names = "dbi", "config";
+ #address-cells = <3>;
+ #size-cells = <2>;
+ device_type = "pci";
+diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
+index ce0599134a69..6b5da2a98aaf 100644
+--- a/arch/arm/boot/dts/imx6qdl.dtsi
++++ b/arch/arm/boot/dts/imx6qdl.dtsi
+@@ -133,7 +133,9 @@
+
+ pcie: pcie@0x01000000 {
+ compatible = "fsl,imx6q-pcie", "snps,dw-pcie";
+- reg = <0x01ffc000 0x4000>; /* DBI */
++ reg = <0x01ffc000 0x04000>,
++ <0x01f00000 0x80000>;
++ reg-names = "dbi", "config";
+ #address-cells = <3>;
+ #size-cells = <2>;
+ device_type = "pci";
diff --git a/patches/linux/3.17/0508-PCI-imx6-fix-occasional-link-failure.patch b/patches/linux/3.17/0508-PCI-imx6-fix-occasional-link-failure.patch
new file mode 100644
index 0000000..2cec0e3
--- /dev/null
+++ b/patches/linux/3.17/0508-PCI-imx6-fix-occasional-link-failure.patch
@@ -0,0 +1,29 @@
+diff --git a/drivers/pci/host/pci-imx6.c b/drivers/pci/host/pci-imx6.c
+index 1be6073..9b6bab9 100644
+--- a/drivers/pci/host/pci-imx6.c
++++ b/drivers/pci/host/pci-imx6.c
+@@ -256,11 +256,6 @@ static int imx6_pcie_deassert_core_reset(struct pcie_port *pp)
+ struct imx6_pcie *imx6_pcie = to_imx6_pcie(pp);
+ int ret;
+
+- regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1,
+- IMX6Q_GPR1_PCIE_TEST_PD, 0 << 18);
+- regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1,
+- IMX6Q_GPR1_PCIE_REF_CLK_EN, 1 << 16);
+-
+ ret = clk_prepare_enable(imx6_pcie->pcie_phy);
+ if (ret) {
+ dev_err(pp->dev, "unable to enable pcie_phy clock\n");
+@@ -282,6 +277,12 @@ static int imx6_pcie_deassert_core_reset(struct pcie_port *pp)
+ /* allow the clocks to stabilize */
+ usleep_range(200, 500);
+
++ /* power up core phy and enable ref clock */
++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1,
++ IMX6Q_GPR1_PCIE_TEST_PD, 0 << 18);
++ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1,
++ IMX6Q_GPR1_PCIE_REF_CLK_EN, 1 << 16);
++
+ /* Some boards don't have PCIe reset GPIO. */
+ if (gpio_is_valid(imx6_pcie->reset_gpio)) {
+ gpio_set_value(imx6_pcie->reset_gpio, 0);
diff --git a/patches/linux/3.17/0509-v5-3-9-PCI-imx6-wait-the-clocks-to-stabilize-after-ref_en.patch b/patches/linux/3.17/0509-v5-3-9-PCI-imx6-wait-the-clocks-to-stabilize-after-ref_en.patch
new file mode 100644
index 0000000..0b2434b
--- /dev/null
+++ b/patches/linux/3.17/0509-v5-3-9-PCI-imx6-wait-the-clocks-to-stabilize-after-ref_en.patch
@@ -0,0 +1,30 @@
+diff --git a/drivers/pci/host/pci-imx6.c b/drivers/pci/host/pci-imx6.c
+index 233fe8a..eac96fb 100644
+--- a/drivers/pci/host/pci-imx6.c
++++ b/drivers/pci/host/pci-imx6.c
+@@ -275,15 +275,22 @@ static int imx6_pcie_deassert_core_reset(struct pcie_port *pp)
+ goto err_pcie;
+ }
+
+- /* allow the clocks to stabilize */
+- usleep_range(200, 500);
+-
+ /* power up core phy and enable ref clock */
+ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1,
+ IMX6Q_GPR1_PCIE_TEST_PD, 0 << 18);
++ /*
++ * the async reset input need ref clock to sync internally,
++ * when the ref clock comes after reset, internal synced
++ * reset time is too short , cannot meet the requirement.
++ * add one ~10us delay here.
++ */
++ udelay(10);
+ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1,
+ IMX6Q_GPR1_PCIE_REF_CLK_EN, 1 << 16);
+
++ /* allow the clocks to stabilize */
++ usleep_range(200, 500);
++
+ /* Some boards don't have PCIe reset GPIO. */
+ if (gpio_is_valid(imx6_pcie->reset_gpio)) {
+ gpio_set_value(imx6_pcie->reset_gpio, 0);
hooks/post-receive
--
armadeus
|