[OpenWrt-Devel] mpc85xx: revert enabling the crypto acceleration driver in the kernel config instead of packaging it
diff mbox series

Message ID dc229669-2c3f-948b-ffb1-f694d9328f6f@ag-web.biz
State Changes Requested
Delegated to: John Crispin
Headers show
Series
  • [OpenWrt-Devel] mpc85xx: revert enabling the crypto acceleration driver in the kernel config instead of packaging it
Related show

Commit Message

Achim Gottinger May 31, 2018, 5:12 p.m. UTC
Hello List,

Since the commit 
https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=c00e5a4f09115ec976fac7dc380f576ef6a24fab 
strongswan is broken on WDR4900v1.
An bug report can be seen here: 
https://bugs.openwrt.org/index.php?do=details&task_id=1262.
To get strongswan working again i made an patch which reverts the 
changes from above commit.
Now if the caam modules are loaded strongswan still fails but without 
the caam modules loades it works as expected.
With the caam modules build in caam can not be disabled by the openwrt user.

---------------------------
---------------------------

Comments

Achim Gottinger May 31, 2018, 6:12 p.m. UTC | #1
Am 31.05.2018 um 19:12 schrieb Achim Gottinger:
> Hello List,
>
> Since the commit 
> https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=c00e5a4f09115ec976fac7dc380f576ef6a24fab 
> strongswan is broken on WDR4900v1.
> An bug report can be seen here: 
> https://bugs.openwrt.org/index.php?do=details&task_id=1262.
> To get strongswan working again i made an patch which reverts the 
> changes from above commit.
> Now if the caam modules are loaded strongswan still fails but without 
> the caam modules loades it works as expected.
> With the caam modules build in caam can not be disabled by the openwrt 
> user.
>
> ---------------------------
> diff --git a/package/kernel/linux/modules/crypto.mk 
> b/package/kernel/linux/modules/crypto.mk
> index 2ea2d2c0e7..4074e2679a 100644
> --- a/package/kernel/linux/modules/crypto.mk
> +++ b/package/kernel/linux/modules/crypto.mk
> @@ -271,6 +271,31 @@ endef
>
>  $(eval $(call KernelPackage,crypto-hmac))
>
> +define KernelPackage/crypto-hw-caam
> +  TITLE:=Freescale CAAM driver (SEC4)
> +  DEPENDS:=@TARGET_mpc85xx +kmod-crypto-aead +kmod-crypto-authenc 
> +kmod-crypto-hash +kmod-random-core
> +  KCONFIG:= \
> +       CONFIG_CRYPTO_HW=y \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_JR \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_IMX=n \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=n \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG=n
> +  FILES:= \
> +       $(LINUX_DIR)/drivers/crypto/caam/caam.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caamalg.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caamhash.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caam_jr.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caamrng.ko
> +  AUTOLOAD:=$(call AutoLoad,09,caam caamalg caamhash caam_jr caamrng)
> +  $(call AddDepends/crypto)
> +endef
> +
> +$(eval $(call KernelPackage,crypto-hw-caam))
>
>  define KernelPackage/crypto-hw-ccp
>    TITLE:=AMD Cryptographic Coprocessor
> diff --git a/target/linux/mpc85xx/config-4.9 
> b/target/linux/mpc85xx/config-4.9
> index 68568c4a62..dc2e5a8820 100644
> --- a/target/linux/mpc85xx/config-4.9
> +++ b/target/linux/mpc85xx/config-4.9
> @@ -47,16 +47,16 @@ CONFIG_CRYPTO_AEAD2=y
>  CONFIG_CRYPTO_AKCIPHER=y
>  CONFIG_CRYPTO_AKCIPHER2=y
>  CONFIG_CRYPTO_AUTHENC=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
>  # CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
>  # CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
>  # CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
> -CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
> -CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
>  CONFIG_CRYPTO_HASH=y
>  CONFIG_CRYPTO_HASH2=y
>  CONFIG_CRYPTO_HW=y
> ---------------------------
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/listinfo/openwrt-devel

Had to modify the patch to include the caam_pkc.ko module. I also found 
that the caamrng.ko module does not load. In case this breaks things 
would it make sense to use two targets one with and one without build in 
caam support. I mainly use  openwrt  for vpn routers so I rely on 
working strongswan packages.

-----------------------------------------
diff --git a/package/kernel/linux/modules/crypto.mk 
b/package/kernel/linux/modules/crypto.mk
index 2ea2d2c0e7..dbb0d59012 100644
--- a/package/kernel/linux/modules/crypto.mk
+++ b/package/kernel/linux/modules/crypto.mk
@@ -271,6 +271,33 @@ endef

  $(eval $(call KernelPackage,crypto-hmac))

+define KernelPackage/crypto-hw-caam
+  TITLE:=Freescale CAAM driver (SEC4)
+  DEPENDS:=@TARGET_mpc85xx +kmod-crypto-aead +kmod-crypto-authenc 
+kmod-crypto-hash +kmod-random-core
+  KCONFIG:= \
+       CONFIG_CRYPTO_HW=y \
+       CONFIG_CRYPTO_DEV_FSL_CAAM \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_JR \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_IMX=n \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=n \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG=n
+  FILES:= \
+       $(LINUX_DIR)/drivers/crypto/caam/caam.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamalg.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamhash.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caam_pkc.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caam_jr.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamrng.ko
+  AUTOLOAD:=$(call AutoLoad,09,caam caamalg caamhash caam_jr caam_pkc 
caamrng)
+  $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-caam))

  define KernelPackage/crypto-hw-ccp
    TITLE:=AMD Cryptographic Coprocessor
diff --git a/target/linux/mpc85xx/config-4.9 
b/target/linux/mpc85xx/config-4.9
index 68568c4a62..dc2e5a8820 100644
--- a/target/linux/mpc85xx/config-4.9
+++ b/target/linux/mpc85xx/config-4.9
@@ -47,16 +47,16 @@ CONFIG_CRYPTO_AEAD2=y
  CONFIG_CRYPTO_AKCIPHER=y
  CONFIG_CRYPTO_AKCIPHER2=y
  CONFIG_CRYPTO_AUTHENC=y
-CONFIG_CRYPTO_DEV_FSL_CAAM=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
  # CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
  # CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
  # CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
-CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
  CONFIG_CRYPTO_HASH=y
  CONFIG_CRYPTO_HASH2=y
  CONFIG_CRYPTO_HW=y
-----------------------------------------
Achim Gottinger June 1, 2018, 12:04 a.m. UTC | #2
Am 31.05.2018 um 20:12 schrieb Achim Gottinger:
>
>
> Am 31.05.2018 um 19:12 schrieb Achim Gottinger:
>> Hello List,
>>
>> Since the commit 
>> https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=c00e5a4f09115ec976fac7dc380f576ef6a24fab 
>> strongswan is broken on WDR4900v1.
>> An bug report can be seen here: 
>> https://bugs.openwrt.org/index.php?do=details&task_id=1262.
>> To get strongswan working again i made an patch which reverts the 
>> changes from above commit.
>> Now if the caam modules are loaded strongswan still fails but without 
>> the caam modules loades it works as expected.
>> With the caam modules build in caam can not be disabled by the 
>> openwrt user.
>>
>> ---------------------------
>> diff --git a/package/kernel/linux/modules/crypto.mk 
>> b/package/kernel/linux/modules/crypto.mk
>> index 2ea2d2c0e7..4074e2679a 100644
>> --- a/package/kernel/linux/modules/crypto.mk
>> +++ b/package/kernel/linux/modules/crypto.mk
>> @@ -271,6 +271,31 @@ endef
>>
>>  $(eval $(call KernelPackage,crypto-hmac))
>>
>> +define KernelPackage/crypto-hw-caam
>> +  TITLE:=Freescale CAAM driver (SEC4)
>> +  DEPENDS:=@TARGET_mpc85xx +kmod-crypto-aead +kmod-crypto-authenc 
>> +kmod-crypto-hash +kmod-random-core
>> +  KCONFIG:= \
>> +       CONFIG_CRYPTO_HW=y \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_JR \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_IMX=n \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=n \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG=n
>> +  FILES:= \
>> +       $(LINUX_DIR)/drivers/crypto/caam/caam.ko \
>> +       $(LINUX_DIR)/drivers/crypto/caam/caamalg.ko \
>> +       $(LINUX_DIR)/drivers/crypto/caam/caamhash.ko \
>> +       $(LINUX_DIR)/drivers/crypto/caam/caam_jr.ko \
>> +       $(LINUX_DIR)/drivers/crypto/caam/caamrng.ko
>> +  AUTOLOAD:=$(call AutoLoad,09,caam caamalg caamhash caam_jr caamrng)
>> +  $(call AddDepends/crypto)
>> +endef
>> +
>> +$(eval $(call KernelPackage,crypto-hw-caam))
>>
>>  define KernelPackage/crypto-hw-ccp
>>    TITLE:=AMD Cryptographic Coprocessor
>> diff --git a/target/linux/mpc85xx/config-4.9 
>> b/target/linux/mpc85xx/config-4.9
>> index 68568c4a62..dc2e5a8820 100644
>> --- a/target/linux/mpc85xx/config-4.9
>> +++ b/target/linux/mpc85xx/config-4.9
>> @@ -47,16 +47,16 @@ CONFIG_CRYPTO_AEAD2=y
>>  CONFIG_CRYPTO_AKCIPHER=y
>>  CONFIG_CRYPTO_AKCIPHER2=y
>>  CONFIG_CRYPTO_AUTHENC=y
>> -CONFIG_CRYPTO_DEV_FSL_CAAM=y
>> -CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
>> -CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM=y
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
>>  # CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
>>  # CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
>>  # CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
>> -CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
>> -CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
>> -CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
>> -CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
>>  CONFIG_CRYPTO_HASH=y
>>  CONFIG_CRYPTO_HASH2=y
>>  CONFIG_CRYPTO_HW=y
>> ---------------------------
>>
>> _______________________________________________
>> openwrt-devel mailing list
>> openwrt-devel@lists.openwrt.org
>> https://lists.openwrt.org/listinfo/openwrt-devel
>
> Had to modify the patch to include the caam_pkc.ko module. I also 
> found that the caamrng.ko module does not load. In case this breaks 
> things would it make sense to use two targets one with and one without 
> build in caam support. I mainly use  openwrt  for vpn routers so I 
> rely on working strongswan packages.
>
> -----------------------------------------
> diff --git a/package/kernel/linux/modules/crypto.mk 
> b/package/kernel/linux/modules/crypto.mk
> index 2ea2d2c0e7..dbb0d59012 100644
> --- a/package/kernel/linux/modules/crypto.mk
> +++ b/package/kernel/linux/modules/crypto.mk
> @@ -271,6 +271,33 @@ endef
>
>  $(eval $(call KernelPackage,crypto-hmac))
>
> +define KernelPackage/crypto-hw-caam
> +  TITLE:=Freescale CAAM driver (SEC4)
> +  DEPENDS:=@TARGET_mpc85xx +kmod-crypto-aead +kmod-crypto-authenc 
> +kmod-crypto-hash +kmod-random-core
> +  KCONFIG:= \
> +       CONFIG_CRYPTO_HW=y \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_JR \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_IMX=n \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=n \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG=n
> +  FILES:= \
> +       $(LINUX_DIR)/drivers/crypto/caam/caam.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caamalg.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caamhash.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caam_pkc.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caam_jr.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caamrng.ko
> +  AUTOLOAD:=$(call AutoLoad,09,caam caamalg caamhash caam_jr caam_pkc 
> caamrng)
> +  $(call AddDepends/crypto)
> +endef
> +
> +$(eval $(call KernelPackage,crypto-hw-caam))
>
>  define KernelPackage/crypto-hw-ccp
>    TITLE:=AMD Cryptographic Coprocessor
> diff --git a/target/linux/mpc85xx/config-4.9 
> b/target/linux/mpc85xx/config-4.9
> index 68568c4a62..dc2e5a8820 100644
> --- a/target/linux/mpc85xx/config-4.9
> +++ b/target/linux/mpc85xx/config-4.9
> @@ -47,16 +47,16 @@ CONFIG_CRYPTO_AEAD2=y
>  CONFIG_CRYPTO_AKCIPHER=y
>  CONFIG_CRYPTO_AKCIPHER2=y
>  CONFIG_CRYPTO_AUTHENC=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
>  # CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
>  # CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
>  # CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
> -CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
> -CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
>  CONFIG_CRYPTO_HASH=y
>  CONFIG_CRYPTO_HASH2=y
>  CONFIG_CRYPTO_HW=y
> -----------------------------------------
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/listinfo/openwrt-devel

According to this thread https://community.nxp.com/thread/338432 there 
is no hw crypto extension on the  WDR4900, which explains the errors i 
get when i try to load the caamrng module. And why strongswan does not work.
So I assume above patch will not break anything on this router.

----------------------------------
Hi Lunmin,


according to AN4938 there exist several revisions of the P1010/P1014 
SoCs. Some with security features some without. I read out the SVR on 
the TP-Link WDR4900 and it gives 0x80f10110 => without security.

So I think that this is the reason that job rings cannot be initialized. 
Can you confirm that my assumption is right?


Markus
--------------------------------


Here is the kernel log from modprobe caamrng
--------------------------------
[20600.067141] caam ffe30000.crypto: device ID = 0x0a14010000000000 (Era 3)
[20600.073879] caam ffe30000.crypto: job rings = 4, qi = 0
[20600.081731] caam_jr ffe31000.jr: failed to flush job ring 0
[20600.087372] caam_jr: probe of ffe31000.jr failed with error -5
[20600.093304] caam_jr ffe32000.jr: failed to flush job ring 1
[20600.098908] caam_jr: probe of ffe32000.jr failed with error -5
[20600.104821] caam_jr ffe33000.jr: failed to flush job ring 2
[20600.110421] caam_jr: probe of ffe33000.jr failed with error -5
[20600.116334] caam_jr ffe34000.jr: failed to flush job ring 3
[20600.121935] caam_jr: probe of ffe34000.jr failed with error -5
[20600.129209] Job Ring Device allocation for transform failed
[20600.135992] Job Ring Device allocation for transform failed
---------------------------------
John Crispin June 1, 2018, 6:30 a.m. UTC | #3
On 01/06/18 02:04, Achim Gottinger wrote:
>
>
> Am 31.05.2018 um 20:12 schrieb Achim Gottinger:
>>
>>
>> Am 31.05.2018 um 19:12 schrieb Achim Gottinger:
>>> Hello List,
>>>
>>> Since the commit 
>>> https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=c00e5a4f09115ec976fac7dc380f576ef6a24fab 
>>> strongswan is broken on WDR4900v1.
>>> An bug report can be seen here: 
>>> https://bugs.openwrt.org/index.php?do=details&task_id=1262.
>>> To get strongswan working again i made an patch which reverts the 
>>> changes from above commit.
>>> Now if the caam modules are loaded strongswan still fails but 
>>> without the caam modules loades it works as expected.
>>> With the caam modules build in caam can not be disabled by the 
>>> openwrt user.
>>>


Hi Achim,
please resend the series adding your Signed-off-by: line right here
     John

>>> ---------------------------
>>> diff --git a/package/kernel/linux/modules/crypto.mk 
>>> b/package/kernel/linux/modules/crypto.mk
>>> index 2ea2d2c0e7..4074e2679a 100644
>>> --- a/package/kernel/linux/modules/crypto.mk
>>> +++ b/package/kernel/linux/modules/crypto.mk
>>> @@ -271,6 +271,31 @@ endef
>>>
>>>  $(eval $(call KernelPackage,crypto-hmac))
>>>
>>> +define KernelPackage/crypto-hw-caam
>>> +  TITLE:=Freescale CAAM driver (SEC4)
>>> +  DEPENDS:=@TARGET_mpc85xx +kmod-crypto-aead +kmod-crypto-authenc 
>>> +kmod-crypto-hash +kmod-random-core
>>> +  KCONFIG:= \
>>> +       CONFIG_CRYPTO_HW=y \
>>> +       CONFIG_CRYPTO_DEV_FSL_CAAM \
>>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_JR \
>>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API \
>>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API \
>>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API \
>>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 \
>>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_IMX=n \
>>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=n \
>>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG=n
>>> +  FILES:= \
>>> +       $(LINUX_DIR)/drivers/crypto/caam/caam.ko \
>>> +       $(LINUX_DIR)/drivers/crypto/caam/caamalg.ko \
>>> +       $(LINUX_DIR)/drivers/crypto/caam/caamhash.ko \
>>> +       $(LINUX_DIR)/drivers/crypto/caam/caam_jr.ko \
>>> +       $(LINUX_DIR)/drivers/crypto/caam/caamrng.ko
>>> +  AUTOLOAD:=$(call AutoLoad,09,caam caamalg caamhash caam_jr caamrng)
>>> +  $(call AddDepends/crypto)
>>> +endef
>>> +
>>> +$(eval $(call KernelPackage,crypto-hw-caam))
>>>
>>>  define KernelPackage/crypto-hw-ccp
>>>    TITLE:=AMD Cryptographic Coprocessor
>>> diff --git a/target/linux/mpc85xx/config-4.9 
>>> b/target/linux/mpc85xx/config-4.9
>>> index 68568c4a62..dc2e5a8820 100644
>>> --- a/target/linux/mpc85xx/config-4.9
>>> +++ b/target/linux/mpc85xx/config-4.9
>>> @@ -47,16 +47,16 @@ CONFIG_CRYPTO_AEAD2=y
>>>  CONFIG_CRYPTO_AKCIPHER=y
>>>  CONFIG_CRYPTO_AKCIPHER2=y
>>>  CONFIG_CRYPTO_AUTHENC=y
>>> -CONFIG_CRYPTO_DEV_FSL_CAAM=y
>>> -CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
>>> -CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
>>> +#CONFIG_CRYPTO_DEV_FSL_CAAM=y
>>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
>>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
>>>  # CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
>>>  # CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
>>>  # CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
>>> -CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
>>> -CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
>>> -CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
>>> -CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
>>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
>>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
>>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
>>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
>>>  CONFIG_CRYPTO_HASH=y
>>>  CONFIG_CRYPTO_HASH2=y
>>>  CONFIG_CRYPTO_HW=y
>>> ---------------------------
>>>
>>> _______________________________________________
>>> openwrt-devel mailing list
>>> openwrt-devel@lists.openwrt.org
>>> https://lists.openwrt.org/listinfo/openwrt-devel
>>
>> Had to modify the patch to include the caam_pkc.ko module. I also 
>> found that the caamrng.ko module does not load. In case this breaks 
>> things would it make sense to use two targets one with and one 
>> without build in caam support. I mainly use openwrt  for vpn routers 
>> so I rely on working strongswan packages.
>>
>> -----------------------------------------
>> diff --git a/package/kernel/linux/modules/crypto.mk 
>> b/package/kernel/linux/modules/crypto.mk
>> index 2ea2d2c0e7..dbb0d59012 100644
>> --- a/package/kernel/linux/modules/crypto.mk
>> +++ b/package/kernel/linux/modules/crypto.mk
>> @@ -271,6 +271,33 @@ endef
>>
>>  $(eval $(call KernelPackage,crypto-hmac))
>>
>> +define KernelPackage/crypto-hw-caam
>> +  TITLE:=Freescale CAAM driver (SEC4)
>> +  DEPENDS:=@TARGET_mpc85xx +kmod-crypto-aead +kmod-crypto-authenc 
>> +kmod-crypto-hash +kmod-random-core
>> +  KCONFIG:= \
>> +       CONFIG_CRYPTO_HW=y \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_JR \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_IMX=n \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=n \
>> +       CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG=n
>> +  FILES:= \
>> +       $(LINUX_DIR)/drivers/crypto/caam/caam.ko \
>> +       $(LINUX_DIR)/drivers/crypto/caam/caamalg.ko \
>> +       $(LINUX_DIR)/drivers/crypto/caam/caamhash.ko \
>> +       $(LINUX_DIR)/drivers/crypto/caam/caam_pkc.ko \
>> +       $(LINUX_DIR)/drivers/crypto/caam/caam_jr.ko \
>> +       $(LINUX_DIR)/drivers/crypto/caam/caamrng.ko
>> +  AUTOLOAD:=$(call AutoLoad,09,caam caamalg caamhash caam_jr 
>> caam_pkc caamrng)
>> +  $(call AddDepends/crypto)
>> +endef
>> +
>> +$(eval $(call KernelPackage,crypto-hw-caam))
>>
>>  define KernelPackage/crypto-hw-ccp
>>    TITLE:=AMD Cryptographic Coprocessor
>> diff --git a/target/linux/mpc85xx/config-4.9 
>> b/target/linux/mpc85xx/config-4.9
>> index 68568c4a62..dc2e5a8820 100644
>> --- a/target/linux/mpc85xx/config-4.9
>> +++ b/target/linux/mpc85xx/config-4.9
>> @@ -47,16 +47,16 @@ CONFIG_CRYPTO_AEAD2=y
>>  CONFIG_CRYPTO_AKCIPHER=y
>>  CONFIG_CRYPTO_AKCIPHER2=y
>>  CONFIG_CRYPTO_AUTHENC=y
>> -CONFIG_CRYPTO_DEV_FSL_CAAM=y
>> -CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
>> -CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM=y
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
>>  # CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
>>  # CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
>>  # CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
>> -CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
>> -CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
>> -CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
>> -CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
>> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
>>  CONFIG_CRYPTO_HASH=y
>>  CONFIG_CRYPTO_HASH2=y
>>  CONFIG_CRYPTO_HW=y
>> -----------------------------------------
>>
>> _______________________________________________
>> openwrt-devel mailing list
>> openwrt-devel@lists.openwrt.org
>> https://lists.openwrt.org/listinfo/openwrt-devel
>
> According to this thread https://community.nxp.com/thread/338432 there 
> is no hw crypto extension on the  WDR4900, which explains the errors i 
> get when i try to load the caamrng module. And why strongswan does not 
> work.
> So I assume above patch will not break anything on this router.
>
> ----------------------------------
> Hi Lunmin,
>
>
> according to AN4938 there exist several revisions of the P1010/P1014 
> SoCs. Some with security features some without. I read out the SVR on 
> the TP-Link WDR4900 and it gives 0x80f10110 => without security.
>
> So I think that this is the reason that job rings cannot be 
> initialized. Can you confirm that my assumption is right?
>
>
> Markus
> --------------------------------
>
>
> Here is the kernel log from modprobe caamrng
> --------------------------------
> [20600.067141] caam ffe30000.crypto: device ID = 0x0a14010000000000 
> (Era 3)
> [20600.073879] caam ffe30000.crypto: job rings = 4, qi = 0
> [20600.081731] caam_jr ffe31000.jr: failed to flush job ring 0
> [20600.087372] caam_jr: probe of ffe31000.jr failed with error -5
> [20600.093304] caam_jr ffe32000.jr: failed to flush job ring 1
> [20600.098908] caam_jr: probe of ffe32000.jr failed with error -5
> [20600.104821] caam_jr ffe33000.jr: failed to flush job ring 2
> [20600.110421] caam_jr: probe of ffe33000.jr failed with error -5
> [20600.116334] caam_jr ffe34000.jr: failed to flush job ring 3
> [20600.121935] caam_jr: probe of ffe34000.jr failed with error -5
> [20600.129209] Job Ring Device allocation for transform failed
> [20600.135992] Job Ring Device allocation for transform failed
> ---------------------------------
>
>
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/listinfo/openwrt-devel
Achim Gottinger June 1, 2018, 7:32 a.m. UTC | #4
Am 01.06.2018 um 08:30 schrieb John Crispin:
>
>
> On 01/06/18 02:04, Achim Gottinger wrote:
>>
>>
>> Am 31.05.2018 um 20:12 schrieb Achim Gottinger:
>>>
>>>
>>> Am 31.05.2018 um 19:12 schrieb Achim Gottinger:
>>>> Hello List,
>>>>
>>>> Since the commit 
>>>> https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=c00e5a4f09115ec976fac7dc380f576ef6a24fab 
>>>> strongswan is broken on WDR4900v1.
>>>> An bug report can be seen here: 
>>>> https://bugs.openwrt.org/index.php?do=details&task_id=1262.
>>>> To get strongswan working again i made an patch which reverts the 
>>>> changes from above commit.
>>>> Now if the caam modules are loaded strongswan still fails but 
>>>> without the caam modules loades it works as expected.
>>>> With the caam modules build in caam can not be disabled by the 
>>>> openwrt user.
>>>>
>
>
> Hi Achim,
> please resend the series adding your Signed-off-by: line right here
>     John
Hello John,


Signed-off-by: Achim Gottinger <achim@ag-web.biz>

diff --git a/package/kernel/linux/modules/crypto.mk 
b/package/kernel/linux/modules/crypto.mk
index 2ea2d2c0e7..dbb0d59012 100644
--- a/package/kernel/linux/modules/crypto.mk
+++ b/package/kernel/linux/modules/crypto.mk
@@ -271,6 +271,33 @@ endef

  $(eval $(call KernelPackage,crypto-hmac))

+define KernelPackage/crypto-hw-caam
+  TITLE:=Freescale CAAM driver (SEC4)
+  DEPENDS:=@TARGET_mpc85xx +kmod-crypto-aead +kmod-crypto-authenc 
+kmod-crypto-hash +kmod-random-core
+  KCONFIG:= \
+       CONFIG_CRYPTO_HW=y \
+       CONFIG_CRYPTO_DEV_FSL_CAAM \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_JR \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_IMX=n \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=n \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG=n
+  FILES:= \
+       $(LINUX_DIR)/drivers/crypto/caam/caam.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamalg.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamhash.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caam_pkc.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caam_jr.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamrng.ko
+  AUTOLOAD:=$(call AutoLoad,09,caam caamalg caamhash caam_jr caam_pkc 
caamrng)
+  $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-caam))

  define KernelPackage/crypto-hw-ccp
    TITLE:=AMD Cryptographic Coprocessor
diff --git a/target/linux/mpc85xx/config-4.9 
b/target/linux/mpc85xx/config-4.9
index 68568c4a62..dc2e5a8820 100644
--- a/target/linux/mpc85xx/config-4.9
+++ b/target/linux/mpc85xx/config-4.9
@@ -47,16 +47,16 @@ CONFIG_CRYPTO_AEAD2=y
  CONFIG_CRYPTO_AKCIPHER=y
  CONFIG_CRYPTO_AKCIPHER2=y
  CONFIG_CRYPTO_AUTHENC=y
-CONFIG_CRYPTO_DEV_FSL_CAAM=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
  # CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
  # CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
  # CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
-CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
  CONFIG_CRYPTO_HASH=y
  CONFIG_CRYPTO_HASH2=y
  CONFIG_CRYPTO_HW=y
Achim Gottinger June 1, 2018, 11:47 p.m. UTC | #5
Since the commit 
https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=c00e5a4f09115ec976fac7dc380f576ef6a24fab 
strongswan is broken on WDR4900v1.
An bug report can be seen here: 
https://bugs.openwrt.org/index.php?do=details&task_id=1262.
To get strongswan working again i made an patch which reverts the 
changes from above commit.
According to this thread https://community.nxp.com/thread/338432 there 
is no hardware crypto extension on the  WDR4900, which explains the 
errors i get when i try to load the caamrng module. And why strongswan 
does not work.
So I assume these patches will not break anything on this router.
I also added kernel 4-14 support to mpc85xx (patch 2/3) and updated the 
crypto-hw-caam module to work with kernel versions 4.9 and 4.14 (patch 
3/3).

Signed-off-by: Achim Gottinger <achim@ag-web.biz>
---
  target/linux/mpc85xx/config-4.9 | 14 +++++++-------
  1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/target/linux/mpc85xx/config-4.9 
b/target/linux/mpc85xx/config-4.9
index 68568c4a62..dc2e5a8820 100644
--- a/target/linux/mpc85xx/config-4.9
+++ b/target/linux/mpc85xx/config-4.9
@@ -47,16 +47,16 @@ CONFIG_CRYPTO_AEAD2=y
  CONFIG_CRYPTO_AKCIPHER=y
  CONFIG_CRYPTO_AKCIPHER2=y
  CONFIG_CRYPTO_AUTHENC=y
-CONFIG_CRYPTO_DEV_FSL_CAAM=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
  # CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
  # CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
  # CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
-CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
  CONFIG_CRYPTO_HASH=y
  CONFIG_CRYPTO_HASH2=y
  CONFIG_CRYPTO_HW=y
---
Achim Gottinger June 1, 2018, 11:54 p.m. UTC | #6
Added kernel version 4.14 to mpc85xx.
Rebased all patches
Added new kernel options with default values.
Caam support is not enabled in the kernel.

Signed-off-by: Achim Gottinger <achim@ag-web.biz>
---
  target/linux/mpc85xx/Makefile                      |   2 +-
  target/linux/mpc85xx/config-4.14                   | 365 +++++++++++++++++++++
  ...erpc-85xx-add-gpio-keys-to-of-match-table.patch |  10 +
  .../100-powerpc-85xx-tl-wdr4900-v1-support.patch   |  80 +++++
  .../101-powerpc-85xx-hiveap-330-support.patch      |  30 ++
  .../102-powerpc-add-cmdline-override.patch         |  37 +++
  6 files changed, 523 insertions(+), 1 deletion(-)

diff --git a/target/linux/mpc85xx/Makefile b/target/linux/mpc85xx/Makefile
index b181e67c0e..32987ebb50 100644
--- a/target/linux/mpc85xx/Makefile
+++ b/target/linux/mpc85xx/Makefile
@@ -14,7 +14,7 @@ FEATURES:=squashfs
  MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
  SUBTARGETS:=generic p1020
  
-KERNEL_PATCHVER:=4.9
+KERNEL_PATCHVER:=4.4
  
  KERNELNAME:=zImage
  
diff --git a/target/linux/mpc85xx/config-4.14 b/target/linux/mpc85xx/config-4.14
new file mode 100644
index 0000000000..0bdf7aa25d
--- /dev/null
+++ b/target/linux/mpc85xx/config-4.14
@@ -0,0 +1,365 @@
+# CONFIG_40x is not set
+# CONFIG_44x is not set
+# CONFIG_ADVANCED_OPTIONS is not set
+CONFIG_AR8216_PHY=y
+CONFIG_AR8216_PHY_LEDS=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_ARCH_HAS_DMA_SET_COHERENT_MASK=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_ARCH_HAS_ILOG2_U32=y
+CONFIG_ARCH_HAS_SG_CHAIN=y
+CONFIG_ARCH_HAS_WALK_MEMORY=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
+CONFIG_ARCH_MMAP_RND_BITS=11
+# CONFIG_ARCH_RANDOM is not set
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_ASN1=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BOOKE=y
+CONFIG_BOOKE_WDT=y
+CONFIG_BOUNCE=y
+# CONFIG_BSC9131_RDB is not set
+# CONFIG_BSC9132_QDS is not set
+# CONFIG_C293_PCIE is not set
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_CLZ_TAB=y
+CONFIG_CMDLINE="console=ttyS0,115200"
+CONFIG_CMDLINE_BOOL=y
+# CONFIG_CMDLINE_OVERRIDE is not set
+# CONFIG_CORENET_GENERIC is not set
+# CONFIG_CPM2 is not set
+CONFIG_CPU_BIG_ENDIAN=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+# CONFIG_CRYPTO_AES_PPC_SPE is not set
+CONFIG_CRYPTO_AKCIPHER=y
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_AUTHENC=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
+# CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
+# CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
+# CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
+#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+# CONFIG_CRYPTO_MD5_PPC is not set
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_NULL2=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RSA=y
+# CONFIG_CRYPTO_SHA1_PPC is not set
+# CONFIG_CRYPTO_SHA1_PPC_SPE is not set
+# CONFIG_CRYPTO_SHA256_PPC_SPE is not set
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEFAULT_UIMAGE is not set
+CONFIG_DNOTIFY=y
+CONFIG_DTC=y
+# CONFIG_E200 is not set
+CONFIG_E500=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_EDAC_ATOMIC_SCRUB=y
+CONFIG_EDAC_SUPPORT=y
+CONFIG_ENABLE_MUST_CHECK=y
+# CONFIG_EPAPR_BOOT is not set
+CONFIG_ETHERNET_PACKET_MANGLE=y
+# CONFIG_FHCI_DEBUG is not set
+CONFIG_FIXED_PHY=y
+CONFIG_FSL_BOOKE=y
+# CONFIG_FSL_DPAA is not set
+CONFIG_FSL_EMB_PERFMON=y
+# CONFIG_FSL_FMAN is not set
+CONFIG_FSL_GTM=y
+CONFIG_FSL_LBC=y
+CONFIG_FSL_PCI=y
+CONFIG_FSL_PQ_MDIO=y
+CONFIG_FSL_SOC=y
+CONFIG_FSL_SOC_BOOKE=y
+# CONFIG_FSL_ULI1575 is not set
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+# CONFIG_GENERIC_CSUM is not set
+CONFIG_GENERIC_IO=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_NVRAM=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+# CONFIG_GENERIC_TBSYNC is not set
+CONFIG_GENERIC_TIME_VSYSCALL_OLD=y
+CONFIG_GEN_RTC=y
+# CONFIG_GE_FPGA is not set
+# CONFIG_GE_IMP3A is not set
+CONFIG_GIANFAR=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_MPC8XXX=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+# CONFIG_HAS_RAPIDIO is not set
+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+# CONFIG_HAVE_ARCH_BITREVERSE is not set
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
+CONFIG_HAVE_CBPF_JIT=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_HAVE_GENERIC_RCU_GUP=y
+CONFIG_HAVE_IDE=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING=y
+# CONFIG_HIVEAP_330 is not set
+CONFIG_HW_RANDOM=y
+CONFIG_HZ=250
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+CONFIG_HZ_PERIODIC=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_MPC=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_IOMMU_HELPER=y
+# CONFIG_IPIC is not set
+CONFIG_IRQCHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_IRQ_WORK=y
+CONFIG_ISA_DMA_API=y
+CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_START=0xc0000000
+# CONFIG_KSI8560 is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+CONFIG_LIBFDT=y
+CONFIG_LOWMEM_CAM_NUM=3
+CONFIG_LOWMEM_SIZE=0x30000000
+CONFIG_LXT_PHY=y
+# CONFIG_MATH_EMULATION is not set
+CONFIG_MDIO_BOARDINFO=y
+CONFIG_MIGRATION=y
+# CONFIG_MMIO_NVRAM is not set
+CONFIG_MODULES_USE_ELF_RELA=y
+# CONFIG_MPC8536_DS is not set
+# CONFIG_MPC8540_ADS is not set
+# CONFIG_MPC8560_ADS is not set
+# CONFIG_MPC85xx_CDS is not set
+# CONFIG_MPC85xx_DS is not set
+# CONFIG_MPC85xx_MDS is not set
+# CONFIG_MPC85xx_RDB is not set
+CONFIG_MPIC=y
+# CONFIG_MPIC_MSGR is not set
+CONFIG_MPIC_TIMER=y
+# CONFIG_MPIC_U3_HT_IRQS is not set
+# CONFIG_MPIC_WEIRD is not set
+CONFIG_MPILIB=y
+# CONFIG_MTD_CFI is not set
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_SPI_NOR=y
+# CONFIG_MVME2500 is not set
+# CONFIG_NEED_DMA_MAP_STATE is not set
+# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
+CONFIG_NEED_PER_CPU_KM=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NLS=y
+# CONFIG_NONSTATIC_KERNEL is not set
+CONFIG_NO_BOOTMEM=y
+CONFIG_NR_IRQS=512
+CONFIG_OF=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_ADDRESS_PCI=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_NET=y
+CONFIG_OF_PCI=y
+CONFIG_OF_PCI_IRQ=y
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_OLD_SIGACTION=y
+CONFIG_OLD_SIGSUSPEND=y
+# CONFIG_P1010_RDB is not set
+# CONFIG_P1022_DS is not set
+# CONFIG_P1022_RDK is not set
+# CONFIG_P1023_RDB is not set
+CONFIG_PAGE_OFFSET=0xc0000000
+CONFIG_PCI=y
+CONFIG_PCIEAER=y
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PGTABLE_LEVELS=2
+CONFIG_PHYLIB=y
+CONFIG_PHYSICAL_ALIGN=0x04000000
+CONFIG_PHYSICAL_START=0x00000000
+# CONFIG_PHYS_64BIT is not set
+# CONFIG_PPA8548 is not set
+CONFIG_PPC=y
+CONFIG_PPC32=y
+# CONFIG_PPC64 is not set
+CONFIG_PPC_85xx=y
+# CONFIG_PPC_8xx is not set
+# CONFIG_PPC_970_NAP is not set
+CONFIG_PPC_ADV_DEBUG_DACS=2
+CONFIG_PPC_ADV_DEBUG_DVCS=0
+CONFIG_PPC_ADV_DEBUG_IACS=2
+CONFIG_PPC_ADV_DEBUG_REGS=y
+CONFIG_PPC_BOOK3E_MMU=y
+# CONFIG_PPC_BOOK3S_32 is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PPC_COPRO_BASE is not set
+# CONFIG_PPC_DCR_MMIO is not set
+# CONFIG_PPC_DCR_NATIVE is not set
+CONFIG_PPC_DOORBELL=y
+# CONFIG_PPC_E500MC is not set
+# CONFIG_PPC_EARLY_DEBUG is not set
+# CONFIG_PPC_EPAPR_HV_PIC is not set
+CONFIG_PPC_FSL_BOOK3E=y
+# CONFIG_PPC_I8259 is not set
+# CONFIG_PPC_ICP_HV is not set
+# CONFIG_PPC_ICP_NATIVE is not set
+# CONFIG_PPC_ICS_RTAS is not set
+CONFIG_PPC_INDIRECT_PCI=y
+CONFIG_PPC_MMU_NOHASH=y
+# CONFIG_PPC_MM_SLICES is not set
+# CONFIG_PPC_MPC106 is not set
+# CONFIG_PPC_P7_NAP is not set
+CONFIG_PPC_PCI_CHOICE=y
+# CONFIG_PPC_PTDUMP is not set
+# CONFIG_PPC_QEMU_E500 is not set
+# CONFIG_PPC_RTAS is not set
+CONFIG_PPC_SMP_MUXED_IPI=y
+CONFIG_PPC_UDBG_16550=y
+CONFIG_PPC_WERROR=y
+# CONFIG_PPC_XICS is not set
+# CONFIG_PQ2ADS is not set
+# CONFIG_PTP_1588_CLOCK_GIANFAR is not set
+CONFIG_QE_GPIO=y
+CONFIG_QE_USB=y
+CONFIG_QUICC_ENGINE=y
+CONFIG_RAS=y
+# CONFIG_RCU_STALL_COMMON is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_GENERIC=y
+CONFIG_RTC_I2C_AND_SPI=y
+CONFIG_RTC_MC146818_LIB=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+# CONFIG_SBC8548 is not set
+# CONFIG_SCHED_INFO is not set
+# CONFIG_SCSI_DMA is not set
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_FSL=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_OF_PLATFORM=y
+# CONFIG_SERIAL_QE is not set
+CONFIG_SIMPLE_GPIO=y
+# CONFIG_SOCRATES is not set
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPE=y
+CONFIG_SPE_POSSIBLE=y
+CONFIG_SPI=y
+CONFIG_SPI_FSL_ESPI=y
+CONFIG_SPI_FSL_LIB=y
+CONFIG_SPI_MASTER=y
+CONFIG_SRCU=y
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_STX_GP3 is not set
+CONFIG_SWCONFIG=y
+CONFIG_SWIOTLB=y
+CONFIG_SWPHY=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_TASK_SIZE=0xc0000000
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_THREAD_SHIFT=13
+# CONFIG_TL_WDR4900_V1 is not set
+# CONFIG_TQM8540 is not set
+# CONFIG_TQM8541 is not set
+# CONFIG_TQM8548 is not set
+# CONFIG_TQM8555 is not set
+# CONFIG_TQM8560 is not set
+# CONFIG_TWR_P102x is not set
+CONFIG_UCC=y
+CONFIG_UCC_FAST=y
+CONFIG_UCC_GETH=y
+# CONFIG_UGETH_TX_ON_DEMAND is not set
+CONFIG_USB=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_EHCI_FSL=y
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_EHCI_HCD_PLATFORM is not set
+CONFIG_USB_EHCI_HCD_PPC_OF=y
+CONFIG_USB_EHCI_PCI=y
+CONFIG_USB_FHCI_HCD=y
+CONFIG_USB_SUPPORT=y
+# CONFIG_USB_UHCI_HCD is not set
+CONFIG_VDSO32=y
+# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_XES_MPC85xx is not set
+# CONFIG_XPS_USB_HCD_XILINX is not set
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_XZ_DEC_POWERPC=y
diff --git a/target/linux/mpc85xx/patches-4.14/001-powerpc-85xx-add-gpio-keys-to-of-match-table.patch b/target/linux/mpc85xx/patches-4.14/001-powerpc-85xx-add-gpio-keys-to-of-match-table.patch
new file mode 100644
index 0000000000..58c4be6007
--- /dev/null
+++ b/target/linux/mpc85xx/patches-4.14/001-powerpc-85xx-add-gpio-keys-to-of-match-table.patch
@@ -0,0 +1,10 @@
+--- a/arch/powerpc/platforms/85xx/common.c
++++ b/arch/powerpc/platforms/85xx/common.c
+@@ -33,6 +33,7 @@ static const struct of_device_id mpc85xx
+ 	{ .compatible = "fsl,mpc8548-guts", },
+ 	/* Probably unnecessary? */
+ 	{ .compatible = "gpio-leds", },
++	{ .compatible = "gpio-keys", },
+ 	/* For all PCI controllers */
+ 	{ .compatible = "fsl,mpc8540-pci", },
+ 	{ .compatible = "fsl,mpc8548-pcie", },
diff --git a/target/linux/mpc85xx/patches-4.14/100-powerpc-85xx-tl-wdr4900-v1-support.patch b/target/linux/mpc85xx/patches-4.14/100-powerpc-85xx-tl-wdr4900-v1-support.patch
new file mode 100644
index 0000000000..7c82ba4d1f
--- /dev/null
+++ b/target/linux/mpc85xx/patches-4.14/100-powerpc-85xx-tl-wdr4900-v1-support.patch
@@ -0,0 +1,80 @@
+From 406d86e5990ac171f18ef6e2973672d8fbfe1556 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Wed, 20 Feb 2013 08:40:33 +0100
+Subject: [PATCH] powerpc: 85xx: add support for the TP-Link TL-WDR4900 v1
+ board
+
+This patch adds support for the TP-Link TL-WDR4900 v1
+concurrent dual-band wireless router. The devices uses
+the Freescale P1014 SoC.
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ arch/powerpc/boot/Makefile                  |   3 +
+ arch/powerpc/boot/wrapper                   |   4 +
+ arch/powerpc/platforms/85xx/Kconfig         |  11 ++
+ arch/powerpc/platforms/85xx/Makefile        |   1 +
+
+--- a/arch/powerpc/boot/Makefile
++++ b/arch/powerpc/boot/Makefile
+@@ -150,6 +150,7 @@
+ src-plat-$(CONFIG_PPC_POWERNV) += pseries-head.S
+ src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S
+ src-plat-$(CONFIG_MVME7100) += motload-head.S mvme7100.c
++src-plat-$(CONFIG_TL_WDR4900_V1) += cuboot-tl-wdr4900-v1.c
+
+ src-wlib := $(sort $(src-wlib-y))
+ src-plat := $(sort $(src-plat-y))
+@@ -329,6 +330,7 @@
+ image-$(CONFIG_TQM8560)			+= cuImage.tqm8560
+ image-$(CONFIG_SBC8548)			+= cuImage.sbc8548
+ image-$(CONFIG_KSI8560)			+= cuImage.ksi8560
++image-$(CONFIG_TL_WDR4900_V1)		+= cuImage.tl-wdr4900-v1
+
+ # Board ports in arch/powerpc/platform/86xx/Kconfig
+ image-$(CONFIG_MVME7100)                += dtbImage.mvme7100
+Nur in b/arch/powerpc/boot: Makefile.orig.
+--- a/arch/powerpc/boot/wrapper
++++ b/arch/powerpc/boot/wrapper
+@@ -277,6 +277,10 @@
+     *-mpc85*|*-tqm85*|*-sbc85*)
+         platformo=$object/cuboot-85xx.o
+         ;;
++    *-tl-wdr4900-v1)
++        platformo=$object/cuboot-tl-wdr4900-v1.o
++	link_address='0x1000000'
++        ;;
+     *-amigaone)
+         link_address='0x800000'
+         ;;
+--- a/arch/powerpc/platforms/85xx/Kconfig
++++ b/arch/powerpc/platforms/85xx/Kconfig
+@@ -170,6 +170,17 @@
+ 	select CPM2
+ 	select DEFAULT_UIMAGE
+
++config TL_WDR4900_V1
++	bool "TP-Link TL-WDR4900 v1"
++	select DEFAULT_UIMAGE
++	select ARCH_REQUIRE_GPIOLIB
++	select GPIO_MPC8XXX
++	help
++	  This option enables support for the TP-Link TL-WDR4900 v1 board.
++
++	  This board is a Concurrent Dual-Band wireless router with a
++	  Freescale P1014 SoC.
++
+ config TQM8540
+ 	bool "TQ Components TQM8540"
+ 	help
+Nur in b/arch/powerpc/platforms/85xx: Kconfig.orig.
+--- a/arch/powerpc/platforms/85xx/Makefile
++++ b/arch/powerpc/platforms/85xx/Makefile
+@@ -26,6 +26,7 @@
+ obj-$(CONFIG_FB_FSL_DIU)	+= t1042rdb_diu.o
+ obj-$(CONFIG_STX_GP3)	  += stx_gp3.o
+ obj-$(CONFIG_TQM85xx)	  += tqm85xx.o
++obj-$(CONFIG_TL_WDR4900_V1) += tl_wdr4900_v1.o
+ obj-$(CONFIG_SBC8548)     += sbc8548.o
+ obj-$(CONFIG_PPA8548)     += ppa8548.o
+ obj-$(CONFIG_SOCRATES)    += socrates.o socrates_fpga_pic.o
diff --git a/target/linux/mpc85xx/patches-4.14/101-powerpc-85xx-hiveap-330-support.patch b/target/linux/mpc85xx/patches-4.14/101-powerpc-85xx-hiveap-330-support.patch
new file mode 100644
index 0000000000..a5095f4abf
--- /dev/null
+++ b/target/linux/mpc85xx/patches-4.14/101-powerpc-85xx-hiveap-330-support.patch
@@ -0,0 +1,30 @@
+--- a/arch/powerpc/platforms/85xx/Kconfig
++++ b/arch/powerpc/platforms/85xx/Kconfig
+@@ -49,6 +49,17 @@
+ 	  and dual StarCore SC3850 DSP cores.
+ 	  Manufacturer : Freescale Semiconductor, Inc
+
++config HIVEAP_330
++	bool "Aerohive HiveAP-330"
++	select DEFAULT_UIMAGE
++	select ARCH_REQUIRE_GPIOLIB
++	select GPIO_MPC8XXX
++	help
++	  This option enables support for the Aerohive HiveAP-330 board.
++
++	  This board is a Concurrent Dual-Band wireless access point with a
++	  Freescale P1020 SoC.
++
+ config MPC8540_ADS
+ 	bool "Freescale MPC8540 ADS"
+ 	select DEFAULT_UIMAGE
+--- a/arch/powerpc/platforms/85xx/Makefile
++++ b/arch/powerpc/platforms/85xx/Makefile
+@@ -10,6 +10,7 @@
+ obj-$(CONFIG_BSC9131_RDB) += bsc913x_rdb.o
+ obj-$(CONFIG_BSC9132_QDS) += bsc913x_qds.o
+ obj-$(CONFIG_C293_PCIE)   += c293pcie.o
++obj-$(CONFIG_HIVEAP_330) += hiveap-330.o
+ obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o
+ obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o
+ obj-$(CONFIG_MPC85xx_CDS) += mpc85xx_cds.o
diff --git a/target/linux/mpc85xx/patches-4.14/102-powerpc-add-cmdline-override.patch b/target/linux/mpc85xx/patches-4.14/102-powerpc-add-cmdline-override.patch
new file mode 100644
index 0000000000..8294f4560c
--- /dev/null
+++ b/target/linux/mpc85xx/patches-4.14/102-powerpc-add-cmdline-override.patch
@@ -0,0 +1,37 @@
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
+@@ -830,6 +830,14 @@
+ 	  This is useful if you cannot or don't want to change the
+ 	  command-line options your boot loader passes to the kernel.
+
++config CMDLINE_OVERRIDE
++	bool "Use alternative cmdline from device tree"
++	help
++	  Some bootloaders may have uneditable bootargs. While CMDLINE_FORCE can
++	  be used, this is not a good option for kernels that are shared across
++	  devices. This setting enables using "chosen/cmdline-override" as the
++	  cmdline if it exists in the device tree.
++
+ config EXTRA_TARGETS
+ 	string "Additional default image types"
+ 	help
+--- a/drivers/of/fdt.c
++++ b/drivers/of/fdt.c
+@@ -1131,6 +1131,17 @@
+ 	if (p != NULL && l > 0)
+ 		strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
+
++	/* CONFIG_CMDLINE_OVERRIDE is used to fallback to a different
++	 * device tree option of chosen/bootargs-override. This is
++	 * helpful on boards where u-boot sets bootargs, and is unable
++	 * to be modified.
++	 */
++#ifdef CONFIG_CMDLINE_OVERRIDE
++	p = of_get_flat_dt_prop(node, "bootargs-override", &l);
++	if (p != NULL && l > 0)
++		strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
++#endif
++
+ 	/*
+ 	 * CONFIG_CMDLINE is meant to be a default in case nothing else
+ 	 * managed to set the command line, unless CONFIG_CMDLINE_FORCE
---
Achim Gottinger June 1, 2018, 11:57 p.m. UTC | #7
Added previous removed crypto-hw-caam module with support for kernel version 4.9 and 4.14.

Signed-off-by: Achim Gottinger <achim@ag-web.biz>
---
package/kernel/linux/modules/crypto.mk | 28 ++++++++++++++++++++++++++++
  1 file changed, 28 insertions(+)

diff --git a/package/kernel/linux/modules/crypto.mk b/package/kernel/linux/modules/crypto.mk
index 2ea2d2c0e7..8ea9282d42 100644
--- a/package/kernel/linux/modules/crypto.mk
+++ b/package/kernel/linux/modules/crypto.mk
@@ -271,6 +271,34 @@ endef
  
  $(eval $(call KernelPackage,crypto-hmac))
  
+define KernelPackage/crypto-hw-caam
+  TITLE:=Freescale CAAM driver (SEC4)
+  DEPENDS:=@TARGET_mpc85xx +kmod-crypto-aead +kmod-crypto-authenc +kmod-crypto-hash +kmod-random-core
+  KCONFIG:= \
+       CONFIG_CRYPTO_HW=y \
+       CONFIG_CRYPTO_DEV_FSL_CAAM \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_JR \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_IMX=n \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=n \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG=n
+  FILES:= \
+       $(LINUX_DIR)/drivers/crypto/caam/caam.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamalg.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamalg_desc.ko@ge4.14 \
+       $(LINUX_DIR)/drivers/crypto/caam/caamhash.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caam_pkc.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caam_jr.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamrng.ko
+  AUTOLOAD:=$(call AutoLoad,09,caam caamalg caamalg_desc@ge4.14 caamhash caam_jr caam_pkc caamrng)
+  $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-caam))
  
  define KernelPackage/crypto-hw-ccp
    TITLE:=AMD Cryptographic Coprocessor
---
Achim Gottinger June 2, 2018, 12:04 a.m. UTC | #8
Am 01.06.2018 um 09:32 schrieb Achim Gottinger:
>
>
> Am 01.06.2018 um 08:30 schrieb John Crispin:
>>
>>
>> On 01/06/18 02:04, Achim Gottinger wrote:
>>>
>>>
>>> Am 31.05.2018 um 20:12 schrieb Achim Gottinger:
>>>>
>>>>
>>>> Am 31.05.2018 um 19:12 schrieb Achim Gottinger:
>>>>> Hello List,
>>>>>
>>>>> Since the commit https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=c00e5a4f09115ec976fac7dc380f576ef6a24fab strongswan is broken on WDR4900v1.
>>>>> An bug report can be seen here: https://bugs.openwrt.org/index.php?do=details&task_id=1262.
>>>>> To get strongswan working again i made an patch which reverts the changes from above commit.
>>>>> Now if the caam modules are loaded strongswan still fails but without the caam modules loades it works as expected.
>>>>> With the caam modules build in caam can not be disabled by the openwrt user.
>>>>>
>>
>>
>> Hi Achim,
>> please resend the series adding your Signed-off-by: line right here
>>     John
> Hello John,
>
>
> Signed-off-by: Achim Gottinger <achim@ag-web.biz>
>
> diff --git a/package/kernel/linux/modules/crypto.mk b/package/kernel/linux/modules/crypto.mk
> index 2ea2d2c0e7..dbb0d59012 100644
> --- a/package/kernel/linux/modules/crypto.mk
> +++ b/package/kernel/linux/modules/crypto.mk
> @@ -271,6 +271,33 @@ endef
>
>  $(eval $(call KernelPackage,crypto-hmac))
>
> +define KernelPackage/crypto-hw-caam
> +  TITLE:=Freescale CAAM driver (SEC4)
> +  DEPENDS:=@TARGET_mpc85xx +kmod-crypto-aead +kmod-crypto-authenc +kmod-crypto-hash +kmod-random-core
> +  KCONFIG:= \
> +       CONFIG_CRYPTO_HW=y \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_JR \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_IMX=n \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=n \
> +       CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG=n
> +  FILES:= \
> +       $(LINUX_DIR)/drivers/crypto/caam/caam.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caamalg.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caamhash.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caam_pkc.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caam_jr.ko \
> +       $(LINUX_DIR)/drivers/crypto/caam/caamrng.ko
> +  AUTOLOAD:=$(call AutoLoad,09,caam caamalg caamhash caam_jr caam_pkc caamrng)
> +  $(call AddDepends/crypto)
> +endef
> +
> +$(eval $(call KernelPackage,crypto-hw-caam))
>
>  define KernelPackage/crypto-hw-ccp
>    TITLE:=AMD Cryptographic Coprocessor
> diff --git a/target/linux/mpc85xx/config-4.9 b/target/linux/mpc85xx/config-4.9
> index 68568c4a62..dc2e5a8820 100644
> --- a/target/linux/mpc85xx/config-4.9
> +++ b/target/linux/mpc85xx/config-4.9
> @@ -47,16 +47,16 @@ CONFIG_CRYPTO_AEAD2=y
>  CONFIG_CRYPTO_AKCIPHER=y
>  CONFIG_CRYPTO_AKCIPHER2=y
>  CONFIG_CRYPTO_AUTHENC=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
>  # CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
>  # CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
>  # CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
> -CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
> -CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
> -CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
>  CONFIG_CRYPTO_HASH=y
>  CONFIG_CRYPTO_HASH2=y
>  CONFIG_CRYPTO_HW=y
Implemented the changes as three different patches so this request can be ignored.
Martin Blumenstingl via openwrt-devel June 2, 2018, 8:39 a.m. UTC | #9
The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.
> Added kernel version 4.14 to mpc85xx.
> Rebased all patches
> Added new kernel options with default values.
> Caam support is not enabled in the kernel.
> 
> Signed-off-by: Achim Gottinger <achim@ag-web.biz>
> ---
>   target/linux/mpc85xx/Makefile                      |   2 +-
>   target/linux/mpc85xx/config-4.14                   | 365
> +++++++++++++++++++++ ...erpc-85xx-add-gpio-keys-to-of-match-table.patch
> |  10 + .../100-powerpc-85xx-tl-wdr4900-v1-support.patch   |  80 +++++
>   .../101-powerpc-85xx-hiveap-330-support.patch      |  30 ++
>   .../102-powerpc-add-cmdline-override.patch         |  37 +++
>   6 files changed, 523 insertions(+), 1 deletion(-)
> 
> diff --git a/target/linux/mpc85xx/Makefile
> b/target/linux/mpc85xx/Makefile index b181e67c0e..32987ebb50 100644
> --- a/target/linux/mpc85xx/Makefile
> +++ b/target/linux/mpc85xx/Makefile
> @@ -14,7 +14,7 @@ FEATURES:=squashfs
>   MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
>   SUBTARGETS:=generic p1020
>   
> -KERNEL_PATCHVER:=4.9
> +KERNEL_PATCHVER:=4.4
>   
>   KERNELNAME:=zImage
>   
> diff --git a/target/linux/mpc85xx/config-4.14
> b/target/linux/mpc85xx/config-4.14 new file mode 100644
> index 0000000000..0bdf7aa25d
> --- /dev/null
> +++ b/target/linux/mpc85xx/config-4.14
> @@ -0,0 +1,365 @@
> +# CONFIG_40x is not set
> +# CONFIG_44x is not set
> +# CONFIG_ADVANCED_OPTIONS is not set
> +CONFIG_AR8216_PHY=y
> +CONFIG_AR8216_PHY_LEDS=y
> +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
> +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
> +CONFIG_ARCH_HAS_DMA_SET_COHERENT_MASK=y
> +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
> +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
> +CONFIG_ARCH_HAS_ILOG2_U32=y
> +CONFIG_ARCH_HAS_SG_CHAIN=y
> +CONFIG_ARCH_HAS_WALK_MEMORY=y
> +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
> +CONFIG_ARCH_HIBERNATION_POSSIBLE=y
> +CONFIG_ARCH_MAY_HAVE_PC_FDC=y
> +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
> +CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
> +CONFIG_ARCH_MMAP_RND_BITS=11
> +# CONFIG_ARCH_RANDOM is not set
> +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
> +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
> +CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
> +CONFIG_ARCH_SUPPORTS_UPROBES=y
> +CONFIG_ARCH_SUSPEND_POSSIBLE=y
> +CONFIG_ARCH_USE_BUILTIN_BSWAP=y
> +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
> +CONFIG_ASN1=y
> +CONFIG_AUDIT_ARCH=y
> +CONFIG_BLK_MQ_PCI=y
> +CONFIG_BOOKE=y
> +CONFIG_BOOKE_WDT=y
> +CONFIG_BOUNCE=y
> +# CONFIG_BSC9131_RDB is not set
> +# CONFIG_BSC9132_QDS is not set
> +# CONFIG_C293_PCIE is not set
> +CONFIG_CLONE_BACKWARDS=y
> +CONFIG_CLZ_TAB=y
> +CONFIG_CMDLINE="console=ttyS0,115200"
> +CONFIG_CMDLINE_BOOL=y
> +# CONFIG_CMDLINE_OVERRIDE is not set
> +# CONFIG_CORENET_GENERIC is not set
> +# CONFIG_CPM2 is not set
> +CONFIG_CPU_BIG_ENDIAN=y
> +CONFIG_CRYPTO_AEAD=y
> +CONFIG_CRYPTO_AEAD2=y
> +# CONFIG_CRYPTO_AES_PPC_SPE is not set
> +CONFIG_CRYPTO_AKCIPHER=y
> +CONFIG_CRYPTO_AKCIPHER2=y
> +CONFIG_CRYPTO_AUTHENC=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
> +# CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
> +# CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
> +# CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
> +#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
> +CONFIG_CRYPTO_HASH=y
> +CONFIG_CRYPTO_HASH2=y
> +CONFIG_CRYPTO_HW=y
> +CONFIG_CRYPTO_MANAGER=y
> +CONFIG_CRYPTO_MANAGER2=y
> +# CONFIG_CRYPTO_MD5_PPC is not set
> +CONFIG_CRYPTO_NULL=y
> +CONFIG_CRYPTO_NULL2=y
> +CONFIG_CRYPTO_RNG=y
> +CONFIG_CRYPTO_RNG2=y
> +CONFIG_CRYPTO_RSA=y
> +# CONFIG_CRYPTO_SHA1_PPC is not set
> +# CONFIG_CRYPTO_SHA1_PPC_SPE is not set
> +# CONFIG_CRYPTO_SHA256_PPC_SPE is not set
> +CONFIG_CRYPTO_WORKQUEUE=y
> +CONFIG_DEBUG_BUGVERBOSE=y
> +# CONFIG_DEFAULT_UIMAGE is not set
> +CONFIG_DNOTIFY=y
> +CONFIG_DTC=y
> +# CONFIG_E200 is not set
> +CONFIG_E500=y
> +CONFIG_EARLY_PRINTK=y
> +CONFIG_EDAC_ATOMIC_SCRUB=y
> +CONFIG_EDAC_SUPPORT=y
> +CONFIG_ENABLE_MUST_CHECK=y
> +# CONFIG_EPAPR_BOOT is not set
> +CONFIG_ETHERNET_PACKET_MANGLE=y
> +# CONFIG_FHCI_DEBUG is not set
> +CONFIG_FIXED_PHY=y
> +CONFIG_FSL_BOOKE=y
> +# CONFIG_FSL_DPAA is not set
> +CONFIG_FSL_EMB_PERFMON=y
> +# CONFIG_FSL_FMAN is not set
> +CONFIG_FSL_GTM=y
> +CONFIG_FSL_LBC=y
> +CONFIG_FSL_PCI=y
> +CONFIG_FSL_PQ_MDIO=y
> +CONFIG_FSL_SOC=y
> +CONFIG_FSL_SOC_BOOKE=y
> +# CONFIG_FSL_ULI1575 is not set
> +CONFIG_GENERIC_ALLOCATOR=y
> +CONFIG_GENERIC_ATOMIC64=y
> +CONFIG_GENERIC_BUG=y
> +CONFIG_GENERIC_CLOCKEVENTS=y
> +CONFIG_GENERIC_CMOS_UPDATE=y
> +CONFIG_GENERIC_CPU_AUTOPROBE=y
> +# CONFIG_GENERIC_CSUM is not set
> +CONFIG_GENERIC_IO=y
> +CONFIG_GENERIC_IRQ_SHOW=y
> +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
> +CONFIG_GENERIC_ISA_DMA=y
> +CONFIG_GENERIC_NVRAM=y
> +CONFIG_GENERIC_PCI_IOMAP=y
> +CONFIG_GENERIC_SMP_IDLE_THREAD=y
> +CONFIG_GENERIC_STRNCPY_FROM_USER=y
> +CONFIG_GENERIC_STRNLEN_USER=y
> +# CONFIG_GENERIC_TBSYNC is not set
> +CONFIG_GENERIC_TIME_VSYSCALL_OLD=y
> +CONFIG_GEN_RTC=y
> +# CONFIG_GE_FPGA is not set
> +# CONFIG_GE_IMP3A is not set
> +CONFIG_GIANFAR=y
> +CONFIG_GPIOLIB=y
> +CONFIG_GPIO_GENERIC=y
> +CONFIG_GPIO_MPC8XXX=y
> +CONFIG_GPIO_SYSFS=y
> +CONFIG_HAS_DMA=y
> +CONFIG_HAS_IOMEM=y
> +CONFIG_HAS_IOPORT_MAP=y
> +# CONFIG_HAS_RAPIDIO is not set
> +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
> +CONFIG_HAVE_ARCH_AUDITSYSCALL=y
> +# CONFIG_HAVE_ARCH_BITREVERSE is not set
> +CONFIG_HAVE_ARCH_JUMP_LABEL=y
> +CONFIG_HAVE_ARCH_KGDB=y
> +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
> +CONFIG_HAVE_ARCH_TRACEHOOK=y
> +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
> +CONFIG_HAVE_CBPF_JIT=y
> +CONFIG_HAVE_DEBUG_KMEMLEAK=y
> +CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
> +CONFIG_HAVE_DMA_API_DEBUG=y
> +CONFIG_HAVE_DYNAMIC_FTRACE=y
> +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
> +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
> +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
> +CONFIG_HAVE_FUNCTION_TRACER=y
> +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
> +CONFIG_HAVE_GENERIC_RCU_GUP=y
> +CONFIG_HAVE_IDE=y
> +CONFIG_HAVE_IOREMAP_PROT=y
> +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
> +CONFIG_HAVE_MEMBLOCK=y
> +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
> +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
> +CONFIG_HAVE_NET_DSA=y
> +CONFIG_HAVE_OPROFILE=y
> +CONFIG_HAVE_PERF_EVENTS=y
> +CONFIG_HAVE_PERF_REGS=y
> +CONFIG_HAVE_PERF_USER_STACK_DUMP=y
> +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
> +# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
> +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
> +CONFIG_HAVE_VIRT_CPU_ACCOUNTING=y
> +# CONFIG_HIVEAP_330 is not set
> +CONFIG_HW_RANDOM=y
> +CONFIG_HZ=250
> +# CONFIG_HZ_100 is not set
> +CONFIG_HZ_250=y
> +CONFIG_HZ_PERIODIC=y
> +CONFIG_I2C=y
> +CONFIG_I2C_BOARDINFO=y
> +CONFIG_I2C_MPC=y
> +CONFIG_INITRAMFS_SOURCE=""
> +CONFIG_IOMMU_HELPER=y
> +# CONFIG_IPIC is not set
> +CONFIG_IRQCHIP=y
> +CONFIG_IRQ_DOMAIN=y
> +CONFIG_IRQ_FORCED_THREADING=y
> +CONFIG_IRQ_WORK=y
> +CONFIG_ISA_DMA_API=y
> +CONFIG_KERNEL_GZIP=y
> +CONFIG_KERNEL_START=0xc0000000
> +# CONFIG_KSI8560 is not set
> +CONFIG_LEGACY_PTYS=y
> +CONFIG_LEGACY_PTY_COUNT=256
> +CONFIG_LIBFDT=y
> +CONFIG_LOWMEM_CAM_NUM=3
> +CONFIG_LOWMEM_SIZE=0x30000000
> +CONFIG_LXT_PHY=y
> +# CONFIG_MATH_EMULATION is not set
> +CONFIG_MDIO_BOARDINFO=y
> +CONFIG_MIGRATION=y
> +# CONFIG_MMIO_NVRAM is not set
> +CONFIG_MODULES_USE_ELF_RELA=y
> +# CONFIG_MPC8536_DS is not set
> +# CONFIG_MPC8540_ADS is not set
> +# CONFIG_MPC8560_ADS is not set
> +# CONFIG_MPC85xx_CDS is not set
> +# CONFIG_MPC85xx_DS is not set
> +# CONFIG_MPC85xx_MDS is not set
> +# CONFIG_MPC85xx_RDB is not set
> +CONFIG_MPIC=y
> +# CONFIG_MPIC_MSGR is not set
> +CONFIG_MPIC_TIMER=y
> +# CONFIG_MPIC_U3_HT_IRQS is not set
> +# CONFIG_MPIC_WEIRD is not set
> +CONFIG_MPILIB=y
> +# CONFIG_MTD_CFI is not set
> +CONFIG_MTD_M25P80=y
> +CONFIG_MTD_SPI_NOR=y
> +# CONFIG_MVME2500 is not set
> +# CONFIG_NEED_DMA_MAP_STATE is not set
> +# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
> +CONFIG_NEED_PER_CPU_KM=y
> +CONFIG_NEED_SG_DMA_LENGTH=y
> +CONFIG_NLS=y
> +# CONFIG_NONSTATIC_KERNEL is not set
> +CONFIG_NO_BOOTMEM=y
> +CONFIG_NR_IRQS=512
> +CONFIG_OF=y
> +CONFIG_OF_ADDRESS=y
> +CONFIG_OF_ADDRESS_PCI=y
> +CONFIG_OF_EARLY_FLATTREE=y
> +CONFIG_OF_FLATTREE=y
> +CONFIG_OF_GPIO=y
> +CONFIG_OF_IRQ=y
> +CONFIG_OF_MDIO=y
> +CONFIG_OF_NET=y
> +CONFIG_OF_PCI=y
> +CONFIG_OF_PCI_IRQ=y
> +CONFIG_OF_RESERVED_MEM=y
> +CONFIG_OLD_SIGACTION=y
> +CONFIG_OLD_SIGSUSPEND=y
> +# CONFIG_P1010_RDB is not set
> +# CONFIG_P1022_DS is not set
> +# CONFIG_P1022_RDK is not set
> +# CONFIG_P1023_RDB is not set
> +CONFIG_PAGE_OFFSET=0xc0000000
> +CONFIG_PCI=y
> +CONFIG_PCIEAER=y
> +CONFIG_PCIEASPM=y
> +# CONFIG_PCIEASPM_DEBUG is not set
> +CONFIG_PCIEASPM_DEFAULT=y
> +# CONFIG_PCIEASPM_PERFORMANCE is not set
> +# CONFIG_PCIEASPM_POWERSAVE is not set
> +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
> +CONFIG_PCIEPORTBUS=y
> +CONFIG_PCI_DOMAINS=y
> +CONFIG_PGTABLE_LEVELS=2
> +CONFIG_PHYLIB=y
> +CONFIG_PHYSICAL_ALIGN=0x04000000
> +CONFIG_PHYSICAL_START=0x00000000
> +# CONFIG_PHYS_64BIT is not set
> +# CONFIG_PPA8548 is not set
> +CONFIG_PPC=y
> +CONFIG_PPC32=y
> +# CONFIG_PPC64 is not set
> +CONFIG_PPC_85xx=y
> +# CONFIG_PPC_8xx is not set
> +# CONFIG_PPC_970_NAP is not set
> +CONFIG_PPC_ADV_DEBUG_DACS=2
> +CONFIG_PPC_ADV_DEBUG_DVCS=0
> +CONFIG_PPC_ADV_DEBUG_IACS=2
> +CONFIG_PPC_ADV_DEBUG_REGS=y
> +CONFIG_PPC_BOOK3E_MMU=y
> +# CONFIG_PPC_BOOK3S_32 is not set
> +# CONFIG_PPC_CELL is not set
> +# CONFIG_PPC_CELL_NATIVE is not set
> +# CONFIG_PPC_COPRO_BASE is not set
> +# CONFIG_PPC_DCR_MMIO is not set
> +# CONFIG_PPC_DCR_NATIVE is not set
> +CONFIG_PPC_DOORBELL=y
> +# CONFIG_PPC_E500MC is not set
> +# CONFIG_PPC_EARLY_DEBUG is not set
> +# CONFIG_PPC_EPAPR_HV_PIC is not set
> +CONFIG_PPC_FSL_BOOK3E=y
> +# CONFIG_PPC_I8259 is not set
> +# CONFIG_PPC_ICP_HV is not set
> +# CONFIG_PPC_ICP_NATIVE is not set
> +# CONFIG_PPC_ICS_RTAS is not set
> +CONFIG_PPC_INDIRECT_PCI=y
> +CONFIG_PPC_MMU_NOHASH=y
> +# CONFIG_PPC_MM_SLICES is not set
> +# CONFIG_PPC_MPC106 is not set
> +# CONFIG_PPC_P7_NAP is not set
> +CONFIG_PPC_PCI_CHOICE=y
> +# CONFIG_PPC_PTDUMP is not set
> +# CONFIG_PPC_QEMU_E500 is not set
> +# CONFIG_PPC_RTAS is not set
> +CONFIG_PPC_SMP_MUXED_IPI=y
> +CONFIG_PPC_UDBG_16550=y
> +CONFIG_PPC_WERROR=y
> +# CONFIG_PPC_XICS is not set
> +# CONFIG_PQ2ADS is not set
> +# CONFIG_PTP_1588_CLOCK_GIANFAR is not set
> +CONFIG_QE_GPIO=y
> +CONFIG_QE_USB=y
> +CONFIG_QUICC_ENGINE=y
> +CONFIG_RAS=y
> +# CONFIG_RCU_STALL_COMMON is not set
> +CONFIG_REGMAP=y
> +CONFIG_REGMAP_I2C=y
> +CONFIG_REGMAP_SPI=y
> +CONFIG_RTC_CLASS=y
> +CONFIG_RTC_DRV_GENERIC=y
> +CONFIG_RTC_I2C_AND_SPI=y
> +CONFIG_RTC_MC146818_LIB=y
> +CONFIG_RWSEM_XCHGADD_ALGORITHM=y
> +# CONFIG_SBC8548 is not set
> +# CONFIG_SCHED_INFO is not set
> +# CONFIG_SCSI_DMA is not set
> +CONFIG_SERIAL_8250_EXTENDED=y
> +CONFIG_SERIAL_8250_FSL=y
> +CONFIG_SERIAL_8250_SHARE_IRQ=y
> +CONFIG_SERIAL_OF_PLATFORM=y
> +# CONFIG_SERIAL_QE is not set
> +CONFIG_SIMPLE_GPIO=y
> +# CONFIG_SOCRATES is not set
> +CONFIG_SPARSE_IRQ=y
> +CONFIG_SPE=y
> +CONFIG_SPE_POSSIBLE=y
> +CONFIG_SPI=y
> +CONFIG_SPI_FSL_ESPI=y
> +CONFIG_SPI_FSL_LIB=y
> +CONFIG_SPI_MASTER=y
> +CONFIG_SRCU=y
> +# CONFIG_STRIP_ASM_SYMS is not set
> +# CONFIG_STX_GP3 is not set
> +CONFIG_SWCONFIG=y
> +CONFIG_SWIOTLB=y
> +CONFIG_SWPHY=y
> +CONFIG_SYSCTL_EXCEPTION_TRACE=y
> +CONFIG_TASK_SIZE=0xc0000000
> +CONFIG_TICK_CPU_ACCOUNTING=y
> +CONFIG_THREAD_SHIFT=13
> +# CONFIG_TL_WDR4900_V1 is not set
> +# CONFIG_TQM8540 is not set
> +# CONFIG_TQM8541 is not set
> +# CONFIG_TQM8548 is not set
> +# CONFIG_TQM8555 is not set
> +# CONFIG_TQM8560 is not set
> +# CONFIG_TWR_P102x is not set
> +CONFIG_UCC=y
> +CONFIG_UCC_FAST=y
> +CONFIG_UCC_GETH=y
> +# CONFIG_UGETH_TX_ON_DEMAND is not set
> +CONFIG_USB=y
> +CONFIG_USB_COMMON=y
> +CONFIG_USB_EHCI_FSL=y
> +CONFIG_USB_EHCI_HCD=y
> +# CONFIG_USB_EHCI_HCD_PLATFORM is not set
> +CONFIG_USB_EHCI_HCD_PPC_OF=y
> +CONFIG_USB_EHCI_PCI=y
> +CONFIG_USB_FHCI_HCD=y
> +CONFIG_USB_SUPPORT=y
> +# CONFIG_USB_UHCI_HCD is not set
> +CONFIG_VDSO32=y
> +# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
> +CONFIG_VM_EVENT_COUNTERS=y
> +CONFIG_WATCHDOG_CORE=y
> +# CONFIG_XES_MPC85xx is not set
> +# CONFIG_XPS_USB_HCD_XILINX is not set
> +CONFIG_XZ_DEC_BCJ=y
> +CONFIG_XZ_DEC_POWERPC=y
> diff --git
> a/target/linux/mpc85xx/patches-4.14/001-powerpc-85xx-add-gpio-keys-to-of-match-table.patch
> b/target/linux/mpc85xx/patches-4.14/001-powerpc-85xx-add-gpio-keys-to-of-match-table.patch
> new file mode 100644 index 0000000000..58c4be6007 --- /dev/null
> +++
> b/target/linux/mpc85xx/patches-4.14/001-powerpc-85xx-add-gpio-keys-to-of-match-table.patch
> @@ -0,0 +1,10 @@ +--- a/arch/powerpc/platforms/85xx/common.c
> ++++ b/arch/powerpc/platforms/85xx/common.c
> +@@ -33,6 +33,7 @@ static const struct of_device_id mpc85xx
> + 	{ .compatible = "fsl,mpc8548-guts", },
> + 	/* Probably unnecessary? */
> + 	{ .compatible = "gpio-leds", },
> ++	{ .compatible = "gpio-keys", },
> + 	/* For all PCI controllers */
> + 	{ .compatible = "fsl,mpc8540-pci", },
> + 	{ .compatible = "fsl,mpc8548-pcie", },
> diff --git
> a/target/linux/mpc85xx/patches-4.14/100-powerpc-85xx-tl-wdr4900-v1-support.patch
> b/target/linux/mpc85xx/patches-4.14/100-powerpc-85xx-tl-wdr4900-v1-support.patch
> new file mode 100644 index 0000000000..7c82ba4d1f --- /dev/null
> +++
> b/target/linux/mpc85xx/patches-4.14/100-powerpc-85xx-tl-wdr4900-v1-support.patch
> @@ -0,0 +1,80 @@ +From 406d86e5990ac171f18ef6e2973672d8fbfe1556 Mon
> Sep 17 00:00:00 2001 +From: Gabor Juhos <juhosg@openwrt.org>
> +Date: Wed, 20 Feb 2013 08:40:33 +0100
> +Subject: [PATCH] powerpc: 85xx: add support for the TP-Link
> TL-WDR4900 v1
> + board
> +
> +This patch adds support for the TP-Link TL-WDR4900 v1
> +concurrent dual-band wireless router. The devices uses
> +the Freescale P1014 SoC.
> +
> +Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
> +---
> + arch/powerpc/boot/Makefile                  |   3 +
> + arch/powerpc/boot/wrapper                   |   4 +
> + arch/powerpc/platforms/85xx/Kconfig         |  11 ++
> + arch/powerpc/platforms/85xx/Makefile        |   1 +
> +
> +--- a/arch/powerpc/boot/Makefile
> ++++ b/arch/powerpc/boot/Makefile
> +@@ -150,6 +150,7 @@
> + src-plat-$(CONFIG_PPC_POWERNV) += pseries-head.S
> + src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S
> + src-plat-$(CONFIG_MVME7100) += motload-head.S mvme7100.c
> ++src-plat-$(CONFIG_TL_WDR4900_V1) += cuboot-tl-wdr4900-v1.c
> +
> + src-wlib := $(sort $(src-wlib-y))
> + src-plat := $(sort $(src-plat-y))
> +@@ -329,6 +330,7 @@
> + image-$(CONFIG_TQM8560)			+= cuImage.tqm8560
> + image-$(CONFIG_SBC8548)			+= cuImage.sbc8548
> + image-$(CONFIG_KSI8560)			+= cuImage.ksi8560
> ++image-$(CONFIG_TL_WDR4900_V1)		+=
> cuImage.tl-wdr4900-v1 +
> + # Board ports in arch/powerpc/platform/86xx/Kconfig
> + image-$(CONFIG_MVME7100)                += dtbImage.mvme7100
> +Nur in b/arch/powerpc/boot: Makefile.orig.
> +--- a/arch/powerpc/boot/wrapper
> ++++ b/arch/powerpc/boot/wrapper
> +@@ -277,6 +277,10 @@
> +     *-mpc85*|*-tqm85*|*-sbc85*)
> +         platformo=$object/cuboot-85xx.o
> +         ;;
> ++    *-tl-wdr4900-v1)
> ++        platformo=$object/cuboot-tl-wdr4900-v1.o
> ++	link_address='0x1000000'
> ++        ;;
> +     *-amigaone)
> +         link_address='0x800000'
> +         ;;
> +--- a/arch/powerpc/platforms/85xx/Kconfig
> ++++ b/arch/powerpc/platforms/85xx/Kconfig
> +@@ -170,6 +170,17 @@
> + 	select CPM2
> + 	select DEFAULT_UIMAGE
> +
> ++config TL_WDR4900_V1
> ++	bool "TP-Link TL-WDR4900 v1"
> ++	select DEFAULT_UIMAGE
> ++	select ARCH_REQUIRE_GPIOLIB
> ++	select GPIO_MPC8XXX
> ++	help
> ++	  This option enables support for the TP-Link TL-WDR4900 v1
> board. ++
> ++	  This board is a Concurrent Dual-Band wireless router with
> a ++	  Freescale P1014 SoC.
> ++
> + config TQM8540
> + 	bool "TQ Components TQM8540"
> + 	help
> +Nur in b/arch/powerpc/platforms/85xx: Kconfig.orig.
> +--- a/arch/powerpc/platforms/85xx/Makefile
> ++++ b/arch/powerpc/platforms/85xx/Makefile
> +@@ -26,6 +26,7 @@
> + obj-$(CONFIG_FB_FSL_DIU)	+= t1042rdb_diu.o
> + obj-$(CONFIG_STX_GP3)	  += stx_gp3.o
> + obj-$(CONFIG_TQM85xx)	  += tqm85xx.o
> ++obj-$(CONFIG_TL_WDR4900_V1) += tl_wdr4900_v1.o
> + obj-$(CONFIG_SBC8548)     += sbc8548.o
> + obj-$(CONFIG_PPA8548)     += ppa8548.o
> + obj-$(CONFIG_SOCRATES)    += socrates.o socrates_fpga_pic.o
> diff --git
> a/target/linux/mpc85xx/patches-4.14/101-powerpc-85xx-hiveap-330-support.patch
> b/target/linux/mpc85xx/patches-4.14/101-powerpc-85xx-hiveap-330-support.patch
> new file mode 100644 index 0000000000..a5095f4abf --- /dev/null
> +++
> b/target/linux/mpc85xx/patches-4.14/101-powerpc-85xx-hiveap-330-support.patch
> @@ -0,0 +1,30 @@ +--- a/arch/powerpc/platforms/85xx/Kconfig
> ++++ b/arch/powerpc/platforms/85xx/Kconfig
> +@@ -49,6 +49,17 @@
> + 	  and dual StarCore SC3850 DSP cores.
> + 	  Manufacturer : Freescale Semiconductor, Inc
> +
> ++config HIVEAP_330
> ++	bool "Aerohive HiveAP-330"
> ++	select DEFAULT_UIMAGE
> ++	select ARCH_REQUIRE_GPIOLIB
> ++	select GPIO_MPC8XXX
> ++	help
> ++	  This option enables support for the Aerohive HiveAP-330
> board. ++
> ++	  This board is a Concurrent Dual-Band wireless access
> point with a ++	  Freescale P1020 SoC.
> ++
> + config MPC8540_ADS
> + 	bool "Freescale MPC8540 ADS"
> + 	select DEFAULT_UIMAGE
> +--- a/arch/powerpc/platforms/85xx/Makefile
> ++++ b/arch/powerpc/platforms/85xx/Makefile
> +@@ -10,6 +10,7 @@
> + obj-$(CONFIG_BSC9131_RDB) += bsc913x_rdb.o
> + obj-$(CONFIG_BSC9132_QDS) += bsc913x_qds.o
> + obj-$(CONFIG_C293_PCIE)   += c293pcie.o
> ++obj-$(CONFIG_HIVEAP_330) += hiveap-330.o
> + obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o
> + obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o
> + obj-$(CONFIG_MPC85xx_CDS) += mpc85xx_cds.o
> diff --git
> a/target/linux/mpc85xx/patches-4.14/102-powerpc-add-cmdline-override.patch
> b/target/linux/mpc85xx/patches-4.14/102-powerpc-add-cmdline-override.patch
> new file mode 100644 index 0000000000..8294f4560c --- /dev/null
> +++
> b/target/linux/mpc85xx/patches-4.14/102-powerpc-add-cmdline-override.patch
> @@ -0,0 +1,37 @@ +--- a/arch/powerpc/Kconfig
> ++++ b/arch/powerpc/Kconfig
> +@@ -830,6 +830,14 @@
> + 	  This is useful if you cannot or don't want to change the
> + 	  command-line options your boot loader passes to the
> kernel. +
> ++config CMDLINE_OVERRIDE
> ++	bool "Use alternative cmdline from device tree"
> ++	help
> ++	  Some bootloaders may have uneditable bootargs. While
> CMDLINE_FORCE can ++	  be used, this is not a good option for
> kernels that are shared across ++	  devices. This setting
> enables using "chosen/cmdline-override" as the ++	  cmdline if
> it exists in the device tree. ++
> + config EXTRA_TARGETS
> + 	string "Additional default image types"
> + 	help
> +--- a/drivers/of/fdt.c
> ++++ b/drivers/of/fdt.c
> +@@ -1131,6 +1131,17 @@
> + 	if (p != NULL && l > 0)
> + 		strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
> +
> ++	/* CONFIG_CMDLINE_OVERRIDE is used to fallback to a
> different ++	 * device tree option of
> chosen/bootargs-override. This is ++	 * helpful on boards
> where u-boot sets bootargs, and is unable ++	 * to be modified.
> ++	 */
> ++#ifdef CONFIG_CMDLINE_OVERRIDE
> ++	p = of_get_flat_dt_prop(node, "bootargs-override", &l);
> ++	if (p != NULL && l > 0)
> ++		strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
> ++#endif
> ++
> + 	/*
> + 	 * CONFIG_CMDLINE is meant to be a default in case nothing
> else
> + 	 * managed to set the command line, unless
> CONFIG_CMDLINE_FORCE ---
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/listinfo/openwrt-devel

Hi,

your patch for target/linux/mpc85xx/Makefile contains a typo.

+KERNEL_PATCHVER:=4.4
should be
+KERNEL_PATCHVER:=4.14


Regards

Martin
Achim Gottinger June 2, 2018, 10:37 a.m. UTC | #10
Added kernel version 4.14 to mpc85xx.
Rebased all patches
Added new kernel options with default values.
Caam support is not enabled in the kernel.

Fixed typo in Makefile KERNEL_PATCHVER is now 4.14 instead of 4.4. Thank you Martin Strobel.
Fixed typo in subject sould be patch 2/3 and not 1/3.

Signed-off-by: Achim Gottinger <achim@ag-web.biz>
---
  target/linux/mpc85xx/Makefile                      |   2 +-
  target/linux/mpc85xx/config-4.14                   | 365 +++++++++++++++++++++
  ...erpc-85xx-add-gpio-keys-to-of-match-table.patch |  10 +
  .../100-powerpc-85xx-tl-wdr4900-v1-support.patch   |  80 +++++
  .../101-powerpc-85xx-hiveap-330-support.patch      |  30 ++
  .../102-powerpc-add-cmdline-override.patch         |  37 +++
  6 files changed, 523 insertions(+), 1 deletion(-)

diff --git a/target/linux/mpc85xx/Makefile b/target/linux/mpc85xx/Makefile
index b181e67c0e..32987ebb50 100644
--- a/target/linux/mpc85xx/Makefile
+++ b/target/linux/mpc85xx/Makefile
@@ -14,7 +14,7 @@ FEATURES:=squashfs
  MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
  SUBTARGETS:=generic p1020
  
-KERNEL_PATCHVER:=4.9
+KERNEL_PATCHVER:=4.14
  
  KERNELNAME:=zImage
  
diff --git a/target/linux/mpc85xx/config-4.14 b/target/linux/mpc85xx/config-4.14
new file mode 100644
index 0000000000..0bdf7aa25d
--- /dev/null
+++ b/target/linux/mpc85xx/config-4.14
@@ -0,0 +1,365 @@
+# CONFIG_40x is not set
+# CONFIG_44x is not set
+# CONFIG_ADVANCED_OPTIONS is not set
+CONFIG_AR8216_PHY=y
+CONFIG_AR8216_PHY_LEDS=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_ARCH_HAS_DMA_SET_COHERENT_MASK=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_ARCH_HAS_ILOG2_U32=y
+CONFIG_ARCH_HAS_SG_CHAIN=y
+CONFIG_ARCH_HAS_WALK_MEMORY=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
+CONFIG_ARCH_MMAP_RND_BITS=11
+# CONFIG_ARCH_RANDOM is not set
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_ASN1=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BOOKE=y
+CONFIG_BOOKE_WDT=y
+CONFIG_BOUNCE=y
+# CONFIG_BSC9131_RDB is not set
+# CONFIG_BSC9132_QDS is not set
+# CONFIG_C293_PCIE is not set
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_CLZ_TAB=y
+CONFIG_CMDLINE="console=ttyS0,115200"
+CONFIG_CMDLINE_BOOL=y
+# CONFIG_CMDLINE_OVERRIDE is not set
+# CONFIG_CORENET_GENERIC is not set
+# CONFIG_CPM2 is not set
+CONFIG_CPU_BIG_ENDIAN=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+# CONFIG_CRYPTO_AES_PPC_SPE is not set
+CONFIG_CRYPTO_AKCIPHER=y
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_AUTHENC=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
+# CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
+# CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
+# CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
+#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+# CONFIG_CRYPTO_MD5_PPC is not set
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_NULL2=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RSA=y
+# CONFIG_CRYPTO_SHA1_PPC is not set
+# CONFIG_CRYPTO_SHA1_PPC_SPE is not set
+# CONFIG_CRYPTO_SHA256_PPC_SPE is not set
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEFAULT_UIMAGE is not set
+CONFIG_DNOTIFY=y
+CONFIG_DTC=y
+# CONFIG_E200 is not set
+CONFIG_E500=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_EDAC_ATOMIC_SCRUB=y
+CONFIG_EDAC_SUPPORT=y
+CONFIG_ENABLE_MUST_CHECK=y
+# CONFIG_EPAPR_BOOT is not set
+CONFIG_ETHERNET_PACKET_MANGLE=y
+# CONFIG_FHCI_DEBUG is not set
+CONFIG_FIXED_PHY=y
+CONFIG_FSL_BOOKE=y
+# CONFIG_FSL_DPAA is not set
+CONFIG_FSL_EMB_PERFMON=y
+# CONFIG_FSL_FMAN is not set
+CONFIG_FSL_GTM=y
+CONFIG_FSL_LBC=y
+CONFIG_FSL_PCI=y
+CONFIG_FSL_PQ_MDIO=y
+CONFIG_FSL_SOC=y
+CONFIG_FSL_SOC_BOOKE=y
+# CONFIG_FSL_ULI1575 is not set
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+# CONFIG_GENERIC_CSUM is not set
+CONFIG_GENERIC_IO=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_NVRAM=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+# CONFIG_GENERIC_TBSYNC is not set
+CONFIG_GENERIC_TIME_VSYSCALL_OLD=y
+CONFIG_GEN_RTC=y
+# CONFIG_GE_FPGA is not set
+# CONFIG_GE_IMP3A is not set
+CONFIG_GIANFAR=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_MPC8XXX=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+# CONFIG_HAS_RAPIDIO is not set
+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+# CONFIG_HAVE_ARCH_BITREVERSE is not set
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
+CONFIG_HAVE_CBPF_JIT=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_HAVE_GENERIC_RCU_GUP=y
+CONFIG_HAVE_IDE=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING=y
+# CONFIG_HIVEAP_330 is not set
+CONFIG_HW_RANDOM=y
+CONFIG_HZ=250
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+CONFIG_HZ_PERIODIC=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_MPC=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_IOMMU_HELPER=y
+# CONFIG_IPIC is not set
+CONFIG_IRQCHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_IRQ_WORK=y
+CONFIG_ISA_DMA_API=y
+CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_START=0xc0000000
+# CONFIG_KSI8560 is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+CONFIG_LIBFDT=y
+CONFIG_LOWMEM_CAM_NUM=3
+CONFIG_LOWMEM_SIZE=0x30000000
+CONFIG_LXT_PHY=y
+# CONFIG_MATH_EMULATION is not set
+CONFIG_MDIO_BOARDINFO=y
+CONFIG_MIGRATION=y
+# CONFIG_MMIO_NVRAM is not set
+CONFIG_MODULES_USE_ELF_RELA=y
+# CONFIG_MPC8536_DS is not set
+# CONFIG_MPC8540_ADS is not set
+# CONFIG_MPC8560_ADS is not set
+# CONFIG_MPC85xx_CDS is not set
+# CONFIG_MPC85xx_DS is not set
+# CONFIG_MPC85xx_MDS is not set
+# CONFIG_MPC85xx_RDB is not set
+CONFIG_MPIC=y
+# CONFIG_MPIC_MSGR is not set
+CONFIG_MPIC_TIMER=y
+# CONFIG_MPIC_U3_HT_IRQS is not set
+# CONFIG_MPIC_WEIRD is not set
+CONFIG_MPILIB=y
+# CONFIG_MTD_CFI is not set
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_SPI_NOR=y
+# CONFIG_MVME2500 is not set
+# CONFIG_NEED_DMA_MAP_STATE is not set
+# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
+CONFIG_NEED_PER_CPU_KM=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NLS=y
+# CONFIG_NONSTATIC_KERNEL is not set
+CONFIG_NO_BOOTMEM=y
+CONFIG_NR_IRQS=512
+CONFIG_OF=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_ADDRESS_PCI=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_NET=y
+CONFIG_OF_PCI=y
+CONFIG_OF_PCI_IRQ=y
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_OLD_SIGACTION=y
+CONFIG_OLD_SIGSUSPEND=y
+# CONFIG_P1010_RDB is not set
+# CONFIG_P1022_DS is not set
+# CONFIG_P1022_RDK is not set
+# CONFIG_P1023_RDB is not set
+CONFIG_PAGE_OFFSET=0xc0000000
+CONFIG_PCI=y
+CONFIG_PCIEAER=y
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PGTABLE_LEVELS=2
+CONFIG_PHYLIB=y
+CONFIG_PHYSICAL_ALIGN=0x04000000
+CONFIG_PHYSICAL_START=0x00000000
+# CONFIG_PHYS_64BIT is not set
+# CONFIG_PPA8548 is not set
+CONFIG_PPC=y
+CONFIG_PPC32=y
+# CONFIG_PPC64 is not set
+CONFIG_PPC_85xx=y
+# CONFIG_PPC_8xx is not set
+# CONFIG_PPC_970_NAP is not set
+CONFIG_PPC_ADV_DEBUG_DACS=2
+CONFIG_PPC_ADV_DEBUG_DVCS=0
+CONFIG_PPC_ADV_DEBUG_IACS=2
+CONFIG_PPC_ADV_DEBUG_REGS=y
+CONFIG_PPC_BOOK3E_MMU=y
+# CONFIG_PPC_BOOK3S_32 is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PPC_COPRO_BASE is not set
+# CONFIG_PPC_DCR_MMIO is not set
+# CONFIG_PPC_DCR_NATIVE is not set
+CONFIG_PPC_DOORBELL=y
+# CONFIG_PPC_E500MC is not set
+# CONFIG_PPC_EARLY_DEBUG is not set
+# CONFIG_PPC_EPAPR_HV_PIC is not set
+CONFIG_PPC_FSL_BOOK3E=y
+# CONFIG_PPC_I8259 is not set
+# CONFIG_PPC_ICP_HV is not set
+# CONFIG_PPC_ICP_NATIVE is not set
+# CONFIG_PPC_ICS_RTAS is not set
+CONFIG_PPC_INDIRECT_PCI=y
+CONFIG_PPC_MMU_NOHASH=y
+# CONFIG_PPC_MM_SLICES is not set
+# CONFIG_PPC_MPC106 is not set
+# CONFIG_PPC_P7_NAP is not set
+CONFIG_PPC_PCI_CHOICE=y
+# CONFIG_PPC_PTDUMP is not set
+# CONFIG_PPC_QEMU_E500 is not set
+# CONFIG_PPC_RTAS is not set
+CONFIG_PPC_SMP_MUXED_IPI=y
+CONFIG_PPC_UDBG_16550=y
+CONFIG_PPC_WERROR=y
+# CONFIG_PPC_XICS is not set
+# CONFIG_PQ2ADS is not set
+# CONFIG_PTP_1588_CLOCK_GIANFAR is not set
+CONFIG_QE_GPIO=y
+CONFIG_QE_USB=y
+CONFIG_QUICC_ENGINE=y
+CONFIG_RAS=y
+# CONFIG_RCU_STALL_COMMON is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_GENERIC=y
+CONFIG_RTC_I2C_AND_SPI=y
+CONFIG_RTC_MC146818_LIB=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+# CONFIG_SBC8548 is not set
+# CONFIG_SCHED_INFO is not set
+# CONFIG_SCSI_DMA is not set
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_FSL=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_OF_PLATFORM=y
+# CONFIG_SERIAL_QE is not set
+CONFIG_SIMPLE_GPIO=y
+# CONFIG_SOCRATES is not set
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPE=y
+CONFIG_SPE_POSSIBLE=y
+CONFIG_SPI=y
+CONFIG_SPI_FSL_ESPI=y
+CONFIG_SPI_FSL_LIB=y
+CONFIG_SPI_MASTER=y
+CONFIG_SRCU=y
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_STX_GP3 is not set
+CONFIG_SWCONFIG=y
+CONFIG_SWIOTLB=y
+CONFIG_SWPHY=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_TASK_SIZE=0xc0000000
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_THREAD_SHIFT=13
+# CONFIG_TL_WDR4900_V1 is not set
+# CONFIG_TQM8540 is not set
+# CONFIG_TQM8541 is not set
+# CONFIG_TQM8548 is not set
+# CONFIG_TQM8555 is not set
+# CONFIG_TQM8560 is not set
+# CONFIG_TWR_P102x is not set
+CONFIG_UCC=y
+CONFIG_UCC_FAST=y
+CONFIG_UCC_GETH=y
+# CONFIG_UGETH_TX_ON_DEMAND is not set
+CONFIG_USB=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_EHCI_FSL=y
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_EHCI_HCD_PLATFORM is not set
+CONFIG_USB_EHCI_HCD_PPC_OF=y
+CONFIG_USB_EHCI_PCI=y
+CONFIG_USB_FHCI_HCD=y
+CONFIG_USB_SUPPORT=y
+# CONFIG_USB_UHCI_HCD is not set
+CONFIG_VDSO32=y
+# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_XES_MPC85xx is not set
+# CONFIG_XPS_USB_HCD_XILINX is not set
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_XZ_DEC_POWERPC=y
diff --git a/target/linux/mpc85xx/patches-4.14/001-powerpc-85xx-add-gpio-keys-to-of-match-table.patch b/target/linux/mpc85xx/patches-4.14/001-powerpc-85xx-add-gpio-keys-to-of-match-table.patch
new file mode 100644
index 0000000000..58c4be6007
--- /dev/null
+++ b/target/linux/mpc85xx/patches-4.14/001-powerpc-85xx-add-gpio-keys-to-of-match-table.patch
@@ -0,0 +1,10 @@
+--- a/arch/powerpc/platforms/85xx/common.c
++++ b/arch/powerpc/platforms/85xx/common.c
+@@ -33,6 +33,7 @@ static const struct of_device_id mpc85xx
+ 	{ .compatible = "fsl,mpc8548-guts", },
+ 	/* Probably unnecessary? */
+ 	{ .compatible = "gpio-leds", },
++	{ .compatible = "gpio-keys", },
+ 	/* For all PCI controllers */
+ 	{ .compatible = "fsl,mpc8540-pci", },
+ 	{ .compatible = "fsl,mpc8548-pcie", },
diff --git a/target/linux/mpc85xx/patches-4.14/100-powerpc-85xx-tl-wdr4900-v1-support.patch b/target/linux/mpc85xx/patches-4.14/100-powerpc-85xx-tl-wdr4900-v1-support.patch
new file mode 100644
index 0000000000..7c82ba4d1f
--- /dev/null
+++ b/target/linux/mpc85xx/patches-4.14/100-powerpc-85xx-tl-wdr4900-v1-support.patch
@@ -0,0 +1,80 @@
+From 406d86e5990ac171f18ef6e2973672d8fbfe1556 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Wed, 20 Feb 2013 08:40:33 +0100
+Subject: [PATCH] powerpc: 85xx: add support for the TP-Link TL-WDR4900 v1
+ board
+
+This patch adds support for the TP-Link TL-WDR4900 v1
+concurrent dual-band wireless router. The devices uses
+the Freescale P1014 SoC.
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ arch/powerpc/boot/Makefile                  |   3 +
+ arch/powerpc/boot/wrapper                   |   4 +
+ arch/powerpc/platforms/85xx/Kconfig         |  11 ++
+ arch/powerpc/platforms/85xx/Makefile        |   1 +
+
+--- a/arch/powerpc/boot/Makefile
++++ b/arch/powerpc/boot/Makefile
+@@ -150,6 +150,7 @@
+ src-plat-$(CONFIG_PPC_POWERNV) += pseries-head.S
+ src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S
+ src-plat-$(CONFIG_MVME7100) += motload-head.S mvme7100.c
++src-plat-$(CONFIG_TL_WDR4900_V1) += cuboot-tl-wdr4900-v1.c
+
+ src-wlib := $(sort $(src-wlib-y))
+ src-plat := $(sort $(src-plat-y))
+@@ -329,6 +330,7 @@
+ image-$(CONFIG_TQM8560)			+= cuImage.tqm8560
+ image-$(CONFIG_SBC8548)			+= cuImage.sbc8548
+ image-$(CONFIG_KSI8560)			+= cuImage.ksi8560
++image-$(CONFIG_TL_WDR4900_V1)		+= cuImage.tl-wdr4900-v1
+
+ # Board ports in arch/powerpc/platform/86xx/Kconfig
+ image-$(CONFIG_MVME7100)                += dtbImage.mvme7100
+Nur in b/arch/powerpc/boot: Makefile.orig.
+--- a/arch/powerpc/boot/wrapper
++++ b/arch/powerpc/boot/wrapper
+@@ -277,6 +277,10 @@
+     *-mpc85*|*-tqm85*|*-sbc85*)
+         platformo=$object/cuboot-85xx.o
+         ;;
++    *-tl-wdr4900-v1)
++        platformo=$object/cuboot-tl-wdr4900-v1.o
++	link_address='0x1000000'
++        ;;
+     *-amigaone)
+         link_address='0x800000'
+         ;;
+--- a/arch/powerpc/platforms/85xx/Kconfig
++++ b/arch/powerpc/platforms/85xx/Kconfig
+@@ -170,6 +170,17 @@
+ 	select CPM2
+ 	select DEFAULT_UIMAGE
+
++config TL_WDR4900_V1
++	bool "TP-Link TL-WDR4900 v1"
++	select DEFAULT_UIMAGE
++	select ARCH_REQUIRE_GPIOLIB
++	select GPIO_MPC8XXX
++	help
++	  This option enables support for the TP-Link TL-WDR4900 v1 board.
++
++	  This board is a Concurrent Dual-Band wireless router with a
++	  Freescale P1014 SoC.
++
+ config TQM8540
+ 	bool "TQ Components TQM8540"
+ 	help
+Nur in b/arch/powerpc/platforms/85xx: Kconfig.orig.
+--- a/arch/powerpc/platforms/85xx/Makefile
++++ b/arch/powerpc/platforms/85xx/Makefile
+@@ -26,6 +26,7 @@
+ obj-$(CONFIG_FB_FSL_DIU)	+= t1042rdb_diu.o
+ obj-$(CONFIG_STX_GP3)	  += stx_gp3.o
+ obj-$(CONFIG_TQM85xx)	  += tqm85xx.o
++obj-$(CONFIG_TL_WDR4900_V1) += tl_wdr4900_v1.o
+ obj-$(CONFIG_SBC8548)     += sbc8548.o
+ obj-$(CONFIG_PPA8548)     += ppa8548.o
+ obj-$(CONFIG_SOCRATES)    += socrates.o socrates_fpga_pic.o
diff --git a/target/linux/mpc85xx/patches-4.14/101-powerpc-85xx-hiveap-330-support.patch b/target/linux/mpc85xx/patches-4.14/101-powerpc-85xx-hiveap-330-support.patch
new file mode 100644
index 0000000000..a5095f4abf
--- /dev/null
+++ b/target/linux/mpc85xx/patches-4.14/101-powerpc-85xx-hiveap-330-support.patch
@@ -0,0 +1,30 @@
+--- a/arch/powerpc/platforms/85xx/Kconfig
++++ b/arch/powerpc/platforms/85xx/Kconfig
+@@ -49,6 +49,17 @@
+ 	  and dual StarCore SC3850 DSP cores.
+ 	  Manufacturer : Freescale Semiconductor, Inc
+
++config HIVEAP_330
++	bool "Aerohive HiveAP-330"
++	select DEFAULT_UIMAGE
++	select ARCH_REQUIRE_GPIOLIB
++	select GPIO_MPC8XXX
++	help
++	  This option enables support for the Aerohive HiveAP-330 board.
++
++	  This board is a Concurrent Dual-Band wireless access point with a
++	  Freescale P1020 SoC.
++
+ config MPC8540_ADS
+ 	bool "Freescale MPC8540 ADS"
+ 	select DEFAULT_UIMAGE
+--- a/arch/powerpc/platforms/85xx/Makefile
++++ b/arch/powerpc/platforms/85xx/Makefile
+@@ -10,6 +10,7 @@
+ obj-$(CONFIG_BSC9131_RDB) += bsc913x_rdb.o
+ obj-$(CONFIG_BSC9132_QDS) += bsc913x_qds.o
+ obj-$(CONFIG_C293_PCIE)   += c293pcie.o
++obj-$(CONFIG_HIVEAP_330) += hiveap-330.o
+ obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o
+ obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o
+ obj-$(CONFIG_MPC85xx_CDS) += mpc85xx_cds.o
diff --git a/target/linux/mpc85xx/patches-4.14/102-powerpc-add-cmdline-override.patch b/target/linux/mpc85xx/patches-4.14/102-powerpc-add-cmdline-override.patch
new file mode 100644
index 0000000000..8294f4560c
--- /dev/null
+++ b/target/linux/mpc85xx/patches-4.14/102-powerpc-add-cmdline-override.patch
@@ -0,0 +1,37 @@
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
+@@ -830,6 +830,14 @@
+ 	  This is useful if you cannot or don't want to change the
+ 	  command-line options your boot loader passes to the kernel.
+
++config CMDLINE_OVERRIDE
++	bool "Use alternative cmdline from device tree"
++	help
++	  Some bootloaders may have uneditable bootargs. While CMDLINE_FORCE can
++	  be used, this is not a good option for kernels that are shared across
++	  devices. This setting enables using "chosen/cmdline-override" as the
++	  cmdline if it exists in the device tree.
++
+ config EXTRA_TARGETS
+ 	string "Additional default image types"
+ 	help
+--- a/drivers/of/fdt.c
++++ b/drivers/of/fdt.c
+@@ -1131,6 +1131,17 @@
+ 	if (p != NULL && l > 0)
+ 		strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
+
++	/* CONFIG_CMDLINE_OVERRIDE is used to fallback to a different
++	 * device tree option of chosen/bootargs-override. This is
++	 * helpful on boards where u-boot sets bootargs, and is unable
++	 * to be modified.
++	 */
++#ifdef CONFIG_CMDLINE_OVERRIDE
++	p = of_get_flat_dt_prop(node, "bootargs-override", &l);
++	if (p != NULL && l > 0)
++		strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
++#endif
++
+ 	/*
+ 	 * CONFIG_CMDLINE is meant to be a default in case nothing else
+ 	 * managed to set the command line, unless CONFIG_CMDLINE_FORCE
---
Magnus Kroken June 4, 2018, 10:09 p.m. UTC | #11
Hi Achim

On 02.06.2018 12:37, Achim Gottinger wrote:
> Added kernel version 4.14 to mpc85xx.
> Rebased all patches
> Added new kernel options with default values.
> Caam support is not enabled in the kernel.
> 
> Fixed typo in Makefile KERNEL_PATCHVER is now 4.14 instead of 4.4. Thank 
> you Martin Strobel.
> Fixed typo in subject sould be patch 2/3 and not 1/3.
> 
> Signed-off-by: Achim Gottinger <achim@ag-web.biz>
> ---

Tested-by: Magnus Kroken <mkroken@gmail.com>

Works well on my WDR4900v1. I don't use the crypto driver, so can't 
respond to those changes, but the Wi-Fi radios, ethernet and the basic 
hardware works fine.

Most of your patches haven't shown up in Patchwork though [1]. Not sure 
if there was an issue with Patchwork when you sent your series, it could 
also be caused by your mail client malforming the e-mails. You may want 
to resubmit the series to ensure they are kept track of, with 
git-send-email if possible.

1: 
http://patchwork.ozlabs.org/project/openwrt/list/?series=&submitter=74207&state=*&q=&archive=both&delegate=

Regards
/Magnus
Achim Gottinger June 6, 2018, 9:42 p.m. UTC | #12
Hello Magnus,

Am 05.06.2018 um 00:09 schrieb Magnus Kroken:
> Hi Achim
>
> On 02.06.2018 12:37, Achim Gottinger wrote:
>> Added kernel version 4.14 to mpc85xx.
>> Rebased all patches
>> Added new kernel options with default values.
>> Caam support is not enabled in the kernel.
>>
>> Fixed typo in Makefile KERNEL_PATCHVER is now 4.14 instead of 4.4. 
>> Thank you Martin Strobel.
>> Fixed typo in subject sould be patch 2/3 and not 1/3.
>>
>> Signed-off-by: Achim Gottinger <achim@ag-web.biz>
>> ---
>
> Tested-by: Magnus Kroken <mkroken@gmail.com>
>
> Works well on my WDR4900v1. I don't use the crypto driver, so can't 
> respond to those changes, but the Wi-Fi radios, ethernet and the basic 
> hardware works fine.
>
> Most of your patches haven't shown up in Patchwork though [1]. Not 
> sure if there was an issue with Patchwork when you sent your series, 
> it could also be caused by your mail client malforming the e-mails. 
> You may want to resubmit the series to ensure they are kept track of, 
> with git-send-email if possible.
>
> 1: 
> http://patchwork.ozlabs.org/project/openwrt/list/?series=&submitter=74207&state=*&q=&archive=both&delegate=
>
> Regards
> /Magnus
>
> __
Thank you for thes tests and the tips about patchwork. Can be I used the 
wron numbering for the series because i did not start with 0/3. But I 
plan to modify the patches in an way that the caam modules are build in 
for generic/p1020 targets and are disabled only on wdr4900v1 which has 
no hardware crypto enabled. This way the additional caam module package 
is not required and the change does not interfere with other subtargets.

achim~
Martin Blumenstingl via openwrt-devel July 7, 2018, 12:41 p.m. UTC | #13
The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.
Hello,

> Hello Magnus,
> 
> Am 05.06.2018 um 00:09 schrieb Magnus Kroken:
> > Hi Achim
> >
> > On 02.06.2018 12:37, Achim Gottinger wrote:  
> >> Added kernel version 4.14 to mpc85xx.
> >> Rebased all patches
> >> Added new kernel options with default values.
> >> Caam support is not enabled in the kernel.
> >>
> >> Fixed typo in Makefile KERNEL_PATCHVER is now 4.14 instead of 4.4. 
> >> Thank you Martin Strobel.
> >> Fixed typo in subject sould be patch 2/3 and not 1/3.
> >>
> >> Signed-off-by: Achim Gottinger <achim@ag-web.biz>
> >> ---  
> >
> > Tested-by: Magnus Kroken <mkroken@gmail.com>
> >
> > Works well on my WDR4900v1. I don't use the crypto driver, so can't 
> > respond to those changes, but the Wi-Fi radios, ethernet and the
> > basic hardware works fine.
> >
> > Most of your patches haven't shown up in Patchwork though [1]. Not 
> > sure if there was an issue with Patchwork when you sent your
> > series, it could also be caused by your mail client malforming the
> > e-mails. You may want to resubmit the series to ensure they are
> > kept track of, with git-send-email if possible.
> >
> > 1: 
> > http://patchwork.ozlabs.org/project/openwrt/list/?series=&submitter=74207&state=*&q=&archive=both&delegate=
> >
> > Regards
> > /Magnus
> >
> > __  
> Thank you for thes tests and the tips about patchwork. Can be I used
> the wron numbering for the series because i did not start with 0/3.
> But I plan to modify the patches in an way that the caam modules are
> build in for generic/p1020 targets and are disabled only on wdr4900v1
> which has no hardware crypto enabled. This way the additional caam
> module package is not required and the change does not interfere with
> other subtargets.
> 
> achim~

What is the current status of porting mpc85xx to 4.14?
It doesn't show up in patchwork or github.

Regards

Martin
Magnus Kroken Sept. 30, 2018, 7:45 p.m. UTC | #14
Hi Achim

On 06.06.2018 23:42, Achim Gottinger wrote:
> Am 05.06.2018 um 00:09 schrieb Magnus Kroken:
>> Tested-by: Magnus Kroken <mkroken@gmail.com>
>>
>> Works well on my WDR4900v1. I don't use the crypto driver, so can't 
>> respond to those changes, but the Wi-Fi radios, ethernet and the basic 
>> hardware works fine.
>>
>> Most of your patches haven't shown up in Patchwork though [1]. Not 
>> sure if there was an issue with Patchwork when you sent your series, 
>> it could also be caused by your mail client malforming the e-mails. 
>> You may want to resubmit the series to ensure they are kept track of, 
>> with git-send-email if possible.
>>
>> 1: 
>> http://patchwork.ozlabs.org/project/openwrt/list/?series=&submitter=74207&state=*&q=&archive=both&delegate= 
>>
>> Regards
>> /Magnus
>>
> Thank you for thes tests and the tips about patchwork. Can be I used the 
> wron numbering for the series because i did not start with 0/3. But I 
> plan to modify the patches in an way that the caam modules are build in 
> for generic/p1020 targets and are disabled only on wdr4900v1 which has 
> no hardware crypto enabled. This way the additional caam module package 
> is not required and the change does not interfere with other subtargets.
> 
> achim~
> 

Do you have any plans to move forward with your mpc85xx 4.14 patch 
series? I am still using your patches on top of current master, 
presently running kernel 4.14.73 on my WDR4900v1, and they work perfectly.

Keep in mind that most of your patches did not end up in Patchwork for 
some reason, so they are not kept track of by anyone. If you find it 
easier to submit a pull request on Github you can do so here: 
https://github.com/openwrt/openwrt/pulls

/Magnus
Achim Gottinger Sept. 30, 2018, 9:47 p.m. UTC | #15
Am 30.09.18 um 21:45 schrieb Magnus Kroken:
> Hi Achim
>
> On 06.06.2018 23:42, Achim Gottinger wrote:
>> Am 05.06.2018 um 00:09 schrieb Magnus Kroken:
>>> Tested-by: Magnus Kroken <mkroken@gmail.com>
>>>
>>> Works well on my WDR4900v1. I don't use the crypto driver, so can't respond to those changes, but the Wi-Fi radios, ethernet and the basic hardware works fine.
>>>
>>> Most of your patches haven't shown up in Patchwork though [1]. Not sure if there was an issue with Patchwork when you sent your series, it could also be caused by your mail client malforming the e-mails. You may want to resubmit the series to ensure they are kept track of, with git-send-email if possible.
>>>
>>> 1: http://patchwork.ozlabs.org/project/openwrt/list/?series=&submitter=74207&state=*&q=&archive=both&delegate=
>>> Regards
>>> /Magnus
>>>
>> Thank you for thes tests and the tips about patchwork. Can be I used the wron numbering for the series because i did not start with 0/3. But I plan to modify the patches in an way that the caam modules are build in for generic/p1020 targets and are disabled only on wdr4900v1 which has no hardware crypto enabled. This way the additional caam module package is not required and the change does not interfere with other subtargets.
>>
>> achim~
>>
>
> Do you have any plans to move forward with your mpc85xx 4.14 patch series? I am still using your patches on top of current master, presently running kernel 4.14.73 on my WDR4900v1, and they work perfectly.
>
> Keep in mind that most of your patches did not end up in Patchwork for some reason, so they are not kept track of by anyone. If you find it easier to submit a pull request on Github you can do so here: https://github.com/openwrt/openwrt/pulls
>
> /Magnus


Hello Magnus,

I'm abit short in time this month and may look into it in november again. The caam crypto issues are already fixed upstream, so my modifcations on these are no longer necessary. If you want to push things meanwhile, feel free to do so. :-)

Achim~

Patch
diff mbox series

diff --git a/package/kernel/linux/modules/crypto.mk 
b/package/kernel/linux/modules/crypto.mk
index 2ea2d2c0e7..4074e2679a 100644
--- a/package/kernel/linux/modules/crypto.mk
+++ b/package/kernel/linux/modules/crypto.mk
@@ -271,6 +271,31 @@  endef

  $(eval $(call KernelPackage,crypto-hmac))

+define KernelPackage/crypto-hw-caam
+  TITLE:=Freescale CAAM driver (SEC4)
+  DEPENDS:=@TARGET_mpc85xx +kmod-crypto-aead +kmod-crypto-authenc 
+kmod-crypto-hash +kmod-random-core
+  KCONFIG:= \
+       CONFIG_CRYPTO_HW=y \
+       CONFIG_CRYPTO_DEV_FSL_CAAM \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_JR \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_IMX=n \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=n \
+       CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG=n
+  FILES:= \
+       $(LINUX_DIR)/drivers/crypto/caam/caam.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamalg.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamhash.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caam_jr.ko \
+       $(LINUX_DIR)/drivers/crypto/caam/caamrng.ko
+  AUTOLOAD:=$(call AutoLoad,09,caam caamalg caamhash caam_jr caamrng)
+  $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-hw-caam))

  define KernelPackage/crypto-hw-ccp
    TITLE:=AMD Cryptographic Coprocessor
diff --git a/target/linux/mpc85xx/config-4.9 
b/target/linux/mpc85xx/config-4.9
index 68568c4a62..dc2e5a8820 100644
--- a/target/linux/mpc85xx/config-4.9
+++ b/target/linux/mpc85xx/config-4.9
@@ -47,16 +47,16 @@  CONFIG_CRYPTO_AEAD2=y
  CONFIG_CRYPTO_AKCIPHER=y
  CONFIG_CRYPTO_AKCIPHER2=y
  CONFIG_CRYPTO_AUTHENC=y
-CONFIG_CRYPTO_DEV_FSL_CAAM=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
  # CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
  # CONFIG_CRYPTO_DEV_FSL_CAAM_IMX is not set
  # CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
-CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
+#CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
  CONFIG_CRYPTO_HASH=y
  CONFIG_CRYPTO_HASH2=y
  CONFIG_CRYPTO_HW=y