summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-09-07 15:25:18 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-09-07 15:25:18 -0300
commit5fa5c9f45f6f5262c966fce3af6bc3f5e45515f2 (patch)
treebc19139aa5906d55ffb3b8293c74ad3be3ce4ced
parentf7765cbfebc8de217c5f626c559f5943fb58d0cb (diff)
linux-libre-dtb: add new package to [libre], dtbs files will be built from it for all kernels like linux-libre-firmware
-rw-r--r--libre/linux-libre-dtb/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch50
-rw-r--r--libre/linux-libre-dtb/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch46
-rw-r--r--libre/linux-libre-dtb/0003-SMILE-Plug-device-tree-file.patch208
-rw-r--r--libre/linux-libre-dtb/0004-fix-mvsdio-eMMC-timing.patch37
-rw-r--r--libre/linux-libre-dtb/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch94
-rw-r--r--libre/linux-libre-dtb/0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch50
-rw-r--r--libre/linux-libre-dtb/0007-set-default-cubietruck-led-triggers.patch32
-rw-r--r--libre/linux-libre-dtb/0008-USB-armory-support.patch328
-rw-r--r--libre/linux-libre-dtb/PKGBUILD81
-rw-r--r--libre/linux-libre/PKGBUILD7
10 files changed, 930 insertions, 3 deletions
diff --git a/libre/linux-libre-dtb/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch b/libre/linux-libre-dtb/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch
new file mode 100644
index 000000000..2f1f0f02e
--- /dev/null
+++ b/libre/linux-libre-dtb/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch
@@ -0,0 +1,50 @@
+From c3378026429b3ff9f2236fe0700db7eb7e450a46 Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@xxxxxx>
+Date: Sun, 2 Dec 2012 19:59:28 +0100
+Subject: [PATCH 1/8] ARM: atags: add support for Marvell's u-boot
+
+Marvell uses a specific atag in its u-boot which includes among other
+information the MAC addresses for up to 4 network interfaces.
+
+Signed-off-by: Willy Tarreau <w@xxxxxx>
+---
+ arch/arm/include/uapi/asm/setup.h | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/arch/arm/include/uapi/asm/setup.h b/arch/arm/include/uapi/asm/setup.h
+index 979ff40..d1d0c19 100644
+--- a/arch/arm/include/uapi/asm/setup.h
++++ b/arch/arm/include/uapi/asm/setup.h
+@@ -143,6 +143,18 @@ struct tag_memclk {
+ __u32 fmemclk;
+ };
+
++/* Marvell uboot parameters */
++#define ATAG_MV_UBOOT 0x41000403
++struct tag_mv_uboot {
++ __u32 uboot_version;
++ __u32 tclk;
++ __u32 sysclk;
++ __u32 isUsbHost;
++ __u8 macAddr[4][6];
++ __u16 mtu[4];
++ __u32 nand_ecc;
++};
++
+ struct tag {
+ struct tag_header hdr;
+ union {
+@@ -165,6 +177,11 @@ struct tag {
+ * DC21285 specific
+ */
+ struct tag_memclk memclk;
++
++ /*
++ * Marvell specific
++ */
++ struct tag_mv_uboot mv_uboot;
+ } u;
+ };
+
+--
+2.4.4
diff --git a/libre/linux-libre-dtb/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch b/libre/linux-libre-dtb/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch
new file mode 100644
index 000000000..61d60c889
--- /dev/null
+++ b/libre/linux-libre-dtb/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch
@@ -0,0 +1,46 @@
+From 8e6e2743ebdc2f46f59190391db3d2f37290047f Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@xxxxxx>
+Date: Sun, 2 Dec 2012 19:56:58 +0100
+Subject: [PATCH 2/8] ARM: atags/fdt: retrieve MAC addresses from Marvell boot
+ loader
+
+The atags are parsed and if a Marvell atag is found, up to 4 MAC
+addresses are extracted there and assigned to node aliases eth0..3
+with the name "mac-address".
+
+This was tested on my Mirabox and the two NICs had their correct
+address set.
+
+Signed-off-by: Willy Tarreau <w@xxxxxx>
+---
+ arch/arm/boot/compressed/atags_to_fdt.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/boot/compressed/atags_to_fdt.c b/arch/arm/boot/compressed/atags_to_fdt.c
+index 9448aa0..ac7b6ae 100644
+--- a/arch/arm/boot/compressed/atags_to_fdt.c
++++ b/arch/arm/boot/compressed/atags_to_fdt.c
+@@ -18,7 +18,7 @@ static int node_offset(void *fdt, const char *node_path)
+ }
+
+ static int setprop(void *fdt, const char *node_path, const char *property,
+- uint32_t *val_array, int size)
++ void *val_array, int size)
+ {
+ int offset = node_offset(fdt, node_path);
+ if (offset < 0)
+@@ -179,6 +179,12 @@ int atags_to_fdt(void *atag_list, void *fdt, int total_space)
+ initrd_start);
+ setprop_cell(fdt, "/chosen", "linux,initrd-end",
+ initrd_start + initrd_size);
++ } else if (atag->hdr.tag == ATAG_MV_UBOOT) {
++ /* This ATAG provides up to 4 MAC addresses */
++ setprop(fdt, "eth0", "mac-address", atag->u.mv_uboot.macAddr[0], 6);
++ setprop(fdt, "eth1", "mac-address", atag->u.mv_uboot.macAddr[1], 6);
++ setprop(fdt, "eth2", "mac-address", atag->u.mv_uboot.macAddr[2], 6);
++ setprop(fdt, "eth3", "mac-address", atag->u.mv_uboot.macAddr[3], 6);
+ }
+ }
+
+--
+2.4.4
diff --git a/libre/linux-libre-dtb/0003-SMILE-Plug-device-tree-file.patch b/libre/linux-libre-dtb/0003-SMILE-Plug-device-tree-file.patch
new file mode 100644
index 000000000..3e5faf6b5
--- /dev/null
+++ b/libre/linux-libre-dtb/0003-SMILE-Plug-device-tree-file.patch
@@ -0,0 +1,208 @@
+From 67570590136361a2bb0ed62beef15151dc1a4572 Mon Sep 17 00:00:00 2001
+From: Kevin Mihelich <kevin@archlinuxarm.org>
+Date: Fri, 5 Sep 2014 15:41:19 -0600
+Subject: [PATCH 3/8] SMILE Plug device tree file
+
+This adds a dts file for the SMILE Plug, which only differs from the Mirabox
+dts with the LED definitions.
+
+Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org>
+---
+ arch/arm/boot/dts/Makefile | 1 +
+ arch/arm/boot/dts/armada-370-smileplug.dts | 173 +++++++++++++++++++++++++++++
+ 2 files changed, 174 insertions(+)
+ create mode 100644 arch/arm/boot/dts/armada-370-smileplug.dts
+
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index 992736b..2373ab3 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -625,6 +625,7 @@ dtb-$(CONFIG_ARCH_ZYNQ) += \
+ dtb-$(CONFIG_MACH_ARMADA_370) += \
+ armada-370-db.dtb \
+ armada-370-mirabox.dtb \
++ armada-370-smileplug.dtb \
+ armada-370-netgear-rn102.dtb \
+ armada-370-netgear-rn104.dtb \
+ armada-370-rd.dtb \
+diff --git a/arch/arm/boot/dts/armada-370-smileplug.dts b/arch/arm/boot/dts/armada-370-smileplug.dts
+new file mode 100644
+index 0000000..d01308a
+--- /dev/null
++++ b/arch/arm/boot/dts/armada-370-smileplug.dts
+@@ -0,0 +1,173 @@
++/*
++ * Device Tree file for Marvell SMILE Plug
++ *
++ * Kevin Mihelich <kevin@archlinuxarm.org>
++ * Gregory CLEMENT <gregory.clement@free-electrons.com>
++ *
++ * This file is licensed under the terms of the GNU General Public
++ * License version 2. This program is licensed "as is" without any
++ * warranty of any kind, whether express or implied.
++ */
++
++/dts-v1/;
++#include <dt-bindings/gpio/gpio.h>
++#include "armada-370.dtsi"
++
++/ {
++ model = "Marvell SMILE Plug";
++ compatible = "marvell,smileplug", "marvell,armada370", "marvell,armada-370-xp";
++
++ chosen {
++ bootargs = "console=ttyS0,115200 earlyprintk";
++ };
++
++ memory {
++ device_type = "memory";
++ reg = <0x00000000 0x20000000>; /* 512 MB */
++ };
++
++ soc {
++ ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
++ MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>;
++
++ pcie-controller {
++ status = "okay";
++
++ /* Internal mini-PCIe connector */
++ pcie@1,0 {
++ /* Port 0, Lane 0 */
++ status = "okay";
++ };
++
++ /* Connected on the PCB to a USB 3.0 XHCI controller */
++ pcie@2,0 {
++ /* Port 1, Lane 0 */
++ status = "okay";
++ };
++ };
++
++ internal-regs {
++ serial@12000 {
++ status = "okay";
++ };
++ timer@20300 {
++ clock-frequency = <600000000>;
++ status = "okay";
++ };
++
++ gpio_leds {
++ compatible = "gpio-leds";
++ pinctrl-names = "default";
++ pinctrl-0 = <&smile_led_pins>;
++
++ red_eyes_led {
++ label = "smileplug:red:eyes";
++ gpios = <&gpio1 31 0>;
++ default-state = "off";
++ };
++
++ green_eyes_led {
++ label = "smileplug:green:eyes";
++ gpios = <&gpio2 0 0>;
++ linux,default-trigger = "default-on";
++ };
++
++ red_smile_led {
++ label = "smileplug:red:smile";
++ gpios = <&gpio1 15 0>;
++ default-state = "off";
++ };
++
++ green_smile_led {
++ label = "smileplug:green:smile";
++ gpios = <&gpio1 27 0>;
++ linux,default-trigger = "default-on";
++ };
++ };
++
++ mdio {
++ pinctrl-0 = <&mdio_pins>;
++ pinctrl-names = "default";
++ phy0: ethernet-phy@0 {
++ reg = <0>;
++ };
++
++ phy1: ethernet-phy@1 {
++ reg = <1>;
++ };
++ };
++ ethernet@70000 {
++ pinctrl-0 = <&ge0_rgmii_pins>;
++ pinctrl-names = "default";
++ status = "okay";
++ phy = <&phy0>;
++ phy-mode = "rgmii-id";
++ };
++ ethernet@74000 {
++ pinctrl-0 = <&ge1_rgmii_pins>;
++ pinctrl-names = "default";
++ status = "okay";
++ phy = <&phy1>;
++ phy-mode = "rgmii-id";
++ };
++
++ mvsdio@d4000 {
++ pinctrl-0 = <&sdio_pins3>;
++ pinctrl-names = "default";
++ status = "okay";
++ /*
++ * No CD or WP GPIOs: SDIO interface used for
++ * Wifi/Bluetooth chip
++ */
++ broken-cd;
++ };
++
++ usb@50000 {
++ status = "okay";
++ };
++
++ usb@51000 {
++ status = "okay";
++ };
++
++ i2c@11000 {
++ status = "okay";
++ clock-frequency = <100000>;
++ pca9505: pca9505@25 {
++ compatible = "nxp,pca9505";
++ gpio-controller;
++ #gpio-cells = <2>;
++ reg = <0x25>;
++ };
++ };
++
++ nand@d0000 {
++ status = "okay";
++ num-cs = <1>;
++ marvell,nand-keep-config;
++ marvell,nand-enable-arbiter;
++ nand-on-flash-bbt;
++
++ partition@0 {
++ label = "U-Boot";
++ reg = <0 0x400000>;
++ };
++ partition@400000 {
++ label = "Linux";
++ reg = <0x400000 0x400000>;
++ };
++ partition@800000 {
++ label = "Filesystem";
++ reg = <0x800000 0x3f800000>;
++ };
++ };
++ };
++ };
++};
++
++&pinctrl {
++ smile_led_pins: smile-led-pins {
++ marvell,pins = "mpp63", "mpp64", "mpp47", "mpp59";
++ marvell,function = "gpio";
++ };
++};
+--
+2.4.4
diff --git a/libre/linux-libre-dtb/0004-fix-mvsdio-eMMC-timing.patch b/libre/linux-libre-dtb/0004-fix-mvsdio-eMMC-timing.patch
new file mode 100644
index 000000000..a147f3bc0
--- /dev/null
+++ b/libre/linux-libre-dtb/0004-fix-mvsdio-eMMC-timing.patch
@@ -0,0 +1,37 @@
+From 3fe82206833efc04b2625c60eb7f3ea6972d5a53 Mon Sep 17 00:00:00 2001
+From: Kevin Mihelich <kevin@archlinuxarm.org>
+Date: Fri, 5 Sep 2014 15:43:56 -0600
+Subject: [PATCH 4/8] fix mvsdio eMMC timing
+
+These changes from Globalscale change the MMC timing to allow the eMMC versions
+of the Mirabox and SMILE Plug to work.
+
+Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org>
+---
+ drivers/mmc/host/mvsdio.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
+index a448498..14441a6 100644
+--- a/drivers/mmc/host/mvsdio.c
++++ b/drivers/mmc/host/mvsdio.c
+@@ -96,7 +96,7 @@ static int mvsd_setup_data(struct mvsd_host *host, struct mmc_data *data)
+ tmout_index = fls(tmout - 1) - 12;
+ if (tmout_index < 0)
+ tmout_index = 0;
+- if (tmout_index > MVSD_HOST_CTRL_TMOUT_MAX)
++// if (tmout_index > MVSD_HOST_CTRL_TMOUT_MAX) //by steven, try to setup the timeout to maximum value
+ tmout_index = MVSD_HOST_CTRL_TMOUT_MAX;
+
+ dev_dbg(host->dev, "data %s at 0x%08x: blocks=%d blksz=%d tmout=%u (%d)\n",
+@@ -618,6 +618,8 @@ static void mvsd_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
+ u32 m = DIV_ROUND_UP(host->base_clock, ios->clock) - 1;
+ if (m > MVSD_BASE_DIV_MAX)
+ m = MVSD_BASE_DIV_MAX;
++ if(ios->clock==50000000 ) //by steven
++ m=1;
+ mvsd_write(MVSD_CLK_DIV, m);
+ host->clock = ios->clock;
+ host->ns_per_clk = 1000000000 / (host->base_clock / (m+1));
+--
+2.4.4
diff --git a/libre/linux-libre-dtb/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch b/libre/linux-libre-dtb/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch
new file mode 100644
index 000000000..961e49c51
--- /dev/null
+++ b/libre/linux-libre-dtb/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch
@@ -0,0 +1,94 @@
+From 0cca0b90853cd9e03a5c6d2018d1fb5c790dce59 Mon Sep 17 00:00:00 2001
+From: popcornmix <popcornmix@gmail.com>
+Date: Tue, 18 Feb 2014 01:43:50 -0300
+Subject: [PATCH 5/8] net/smsc95xx: Allow mac address to be set as a parameter
+
+---
+ drivers/net/usb/smsc95xx.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 56 insertions(+)
+
+diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
+index 26423ad..e29a323 100644
+--- a/drivers/net/usb/smsc95xx.c
++++ b/drivers/net/usb/smsc95xx.c
+@@ -59,6 +59,7 @@
+ #define SUSPEND_SUSPEND3 (0x08)
+ #define SUSPEND_ALLMODES (SUSPEND_SUSPEND0 | SUSPEND_SUSPEND1 | \
+ SUSPEND_SUSPEND2 | SUSPEND_SUSPEND3)
++#define MAC_ADDR_LEN (6)
+
+ struct smsc95xx_priv {
+ u32 mac_cr;
+@@ -74,6 +75,10 @@ static bool turbo_mode = true;
+ module_param(turbo_mode, bool, 0644);
+ MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction");
+
++static char *macaddr = ":";
++module_param(macaddr, charp, 0);
++MODULE_PARM_DESC(macaddr, "MAC address");
++
+ static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
+ u32 *data, int in_pm)
+ {
+@@ -763,8 +768,59 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
+ return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL);
+ }
+
++/* Check the macaddr module parameter for a MAC address */
++static int smsc95xx_is_macaddr_param(struct usbnet *dev, u8 *dev_mac)
++{
++ int i, j, got_num, num;
++ u8 mtbl[MAC_ADDR_LEN];
++
++ if (macaddr[0] == ':')
++ return 0;
++
++ i = 0;
++ j = 0;
++ num = 0;
++ got_num = 0;
++ while (j < MAC_ADDR_LEN) {
++ if (macaddr[i] && macaddr[i] != ':') {
++ got_num++;
++ if ('0' <= macaddr[i] && macaddr[i] <= '9')
++ num = num * 16 + macaddr[i] - '0';
++ else if ('A' <= macaddr[i] && macaddr[i] <= 'F')
++ num = num * 16 + 10 + macaddr[i] - 'A';
++ else if ('a' <= macaddr[i] && macaddr[i] <= 'f')
++ num = num * 16 + 10 + macaddr[i] - 'a';
++ else
++ break;
++ i++;
++ } else if (got_num == 2) {
++ mtbl[j++] = (u8) num;
++ num = 0;
++ got_num = 0;
++ i++;
++ } else {
++ break;
++ }
++ }
++
++ if (j == MAC_ADDR_LEN) {
++ netif_dbg(dev, ifup, dev->net, "Overriding MAC address with: "
++ "%02x:%02x:%02x:%02x:%02x:%02x\n", mtbl[0], mtbl[1], mtbl[2],
++ mtbl[3], mtbl[4], mtbl[5]);
++ for (i = 0; i < MAC_ADDR_LEN; i++)
++ dev_mac[i] = mtbl[i];
++ return 1;
++ } else {
++ return 0;
++ }
++}
++
+ static void smsc95xx_init_mac_address(struct usbnet *dev)
+ {
++ /* Check module parameters */
++ if (smsc95xx_is_macaddr_param(dev, dev->net->dev_addr))
++ return;
++
+ /* try reading mac address from EEPROM */
+ if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
+ dev->net->dev_addr) == 0) {
+--
+2.4.4
diff --git a/libre/linux-libre-dtb/0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch b/libre/linux-libre-dtb/0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch
new file mode 100644
index 000000000..6ca1f4b74
--- /dev/null
+++ b/libre/linux-libre-dtb/0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch
@@ -0,0 +1,50 @@
+From 493b50d16cd287231bbe11da07f82184d80ceba2 Mon Sep 17 00:00:00 2001
+From: dobatog <dobatog@gmail.com>
+Date: Thu, 26 Feb 2015 12:32:27 +0100
+Subject: [PATCH 6/8] ARM: TLV320AIC23 SoC Audio Codec: Fix errors reported
+ related to input routing signals.
+
+The following patch, based on stable v3.19, corrects the errors that are reported in the boot trace in reference to the Input Signals of the audio codec TLV320AIC23:
+
+tlv320aic23-codec 1-001a: Control not supported for path LLINEIN -> [NULL] -> Line Input
+tlv320aic23-codec 1-001a: ASoC: no dapm match for LLINEIN --> NULL --> Line Input
+tlv320aic23-codec 1-001a: ASoC: Failed to add route LLINEIN -> NULL -> Line Input
+tlv320aic23-codec 1-001a: Control not supported for path RLINEIN -> [NULL] -> Line Input
+tlv320aic23-codec 1-001a: ASoC: no dapm match for RLINEIN --> NULL --> Line Input
+tlv320aic23-codec 1-001a: ASoC: Failed to add route RLINEIN -> NULL -> Line Input
+tlv320aic23-codec 1-001a: Control not supported for path MICIN -> [NULL] -> Mic Input
+tlv320aic23-codec 1-001a: ASoC: no dapm match for MICIN --> NULL --> Mic Input
+tlv320aic23-codec 1-001a: ASoC: Failed to add route MICIN -> NULL -> Mic Input
+
+I am trying to set the sound system in a CM-510 (Compulab - SoM) based board with DT, using Simple-Card-Audio and the TLV320AIC23 audio codec included in the SoM . I faced this problem and thanks to the help of Sebastian Hesselbarth who noticed the possible error located in the structure snd_soc_dapm_route tlv320aic23_intercon[] , now errors are not reported.
+
+Tested on CM-510 (Compulab SoM Board).
+
+Signed-off-by: dobatog <dobatog@gmail.com>
+Tested-by: Max Filippov <jcmvbkbc@gmail.com>
+---
+ sound/soc/codecs/tlv320aic23.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/codecs/tlv320aic23.c b/sound/soc/codecs/tlv320aic23.c
+index cc17e7e..891f3aa 100644
+--- a/sound/soc/codecs/tlv320aic23.c
++++ b/sound/soc/codecs/tlv320aic23.c
+@@ -174,10 +174,10 @@ static const struct snd_soc_dapm_route tlv320aic23_intercon[] = {
+ {"ROUT", NULL, "Output Mixer"},
+
+ /* Inputs */
+- {"Line Input", "NULL", "LLINEIN"},
+- {"Line Input", "NULL", "RLINEIN"},
++ {"Line Input", NULL, "LLINEIN"},
++ {"Line Input", NULL, "RLINEIN"},
+
+- {"Mic Input", "NULL", "MICIN"},
++ {"Mic Input", NULL, "MICIN"},
+
+ /* input mux */
+ {"Capture Source", "Line", "Line Input"},
+--
+2.4.4
+
+
diff --git a/libre/linux-libre-dtb/0007-set-default-cubietruck-led-triggers.patch b/libre/linux-libre-dtb/0007-set-default-cubietruck-led-triggers.patch
new file mode 100644
index 000000000..38c0482a3
--- /dev/null
+++ b/libre/linux-libre-dtb/0007-set-default-cubietruck-led-triggers.patch
@@ -0,0 +1,32 @@
+From b9c28f3bd758d09374fe35e86d5d5d4aeb7c6a0a Mon Sep 17 00:00:00 2001
+From: Kevin Mihelich <kevin@archlinuxarm.org>
+Date: Sun, 14 Jun 2015 13:20:25 -0600
+Subject: [PATCH 7/8] set default cubietruck led triggers
+
+Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org>
+---
+ arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+index 8f74a64..1161296 100644
+--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
++++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+@@ -205,6 +205,7 @@
+ blue {
+ label = "cubietruck:blue:usr";
+ gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "heartbeat";
+ };
+
+ orange {
+@@ -220,6 +221,7 @@
+ green {
+ label = "cubietruck:green:usr";
+ gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "mmc0";
+ };
+ };
+
+--
+2.4.4
diff --git a/libre/linux-libre-dtb/0008-USB-armory-support.patch b/libre/linux-libre-dtb/0008-USB-armory-support.patch
new file mode 100644
index 000000000..eccf0bb62
--- /dev/null
+++ b/libre/linux-libre-dtb/0008-USB-armory-support.patch
@@ -0,0 +1,328 @@
+From 163421a4fef11bea6cf4bdb4ad9de67fb340bb90 Mon Sep 17 00:00:00 2001
+From: Kevin Mihelich <kevin@archlinuxarm.org>
+Date: Sat, 7 Mar 2015 16:51:15 -0700
+Subject: [PATCH 8/8] USB armory support
+
+---
+ arch/arm/boot/dts/Makefile | 3 +
+ arch/arm/boot/dts/imx53-usbarmory-common.dtsi | 209 ++++++++++++++++++++++++++
+ arch/arm/boot/dts/imx53-usbarmory-gpio.dts | 26 ++++
+ arch/arm/boot/dts/imx53-usbarmory-host.dts | 18 +++
+ arch/arm/boot/dts/imx53-usbarmory.dts | 18 +++
+ 5 files changed, 274 insertions(+)
+ create mode 100644 arch/arm/boot/dts/imx53-usbarmory-common.dtsi
+ create mode 100644 arch/arm/boot/dts/imx53-usbarmory-gpio.dts
+ create mode 100644 arch/arm/boot/dts/imx53-usbarmory-host.dts
+ create mode 100644 arch/arm/boot/dts/imx53-usbarmory.dts
+
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index 2373ab3..27728dd 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -252,6 +252,9 @@ dtb-$(CONFIG_SOC_IMX53) += \
+ imx53-smd.dtb \
+ imx53-tx53-x03x.dtb \
+ imx53-tx53-x13x.dtb \
++ imx53-usbarmory.dtb \
++ imx53-usbarmory-gpio.dtb \
++ imx53-usbarmory-host.dtb \
+ imx53-voipac-bsb.dtb
+ dtb-$(CONFIG_SOC_IMX6Q) += \
+ imx6dl-aristainetos_4.dtb \
+diff --git a/arch/arm/boot/dts/imx53-usbarmory-common.dtsi b/arch/arm/boot/dts/imx53-usbarmory-common.dtsi
+new file mode 100644
+index 0000000..c7cbd84
+--- /dev/null
++++ b/arch/arm/boot/dts/imx53-usbarmory-common.dtsi
+@@ -0,0 +1,209 @@
++/*
++ * USB armory MkI device tree include file
++ * http://inversepath.com/usbarmory
++ *
++ * Copyright (C) 2015, Inverse Path
++ * Andrej Rosano <andrej@inversepath.com>
++ *
++ * Licensed under GPLv2
++ */
++
++#include "imx53.dtsi"
++
++/ {
++ model = "Inverse Path USB armory";
++ compatible = "inversepath,imx53-usbarmory", "fsl,imx53";
++};
++
++/ {
++ chosen {
++ stdout-path = &uart1;
++ };
++
++ memory {
++ reg = <0x70000000 0x20000000>;
++ };
++
++ leds {
++ compatible = "gpio-leds";
++ pinctrl-names = "default";
++ pinctrl-0 = <&led_pin_gpio4_27>;
++
++ user {
++ label = "LED";
++ gpios = <&gpio4 27 0>;
++ linux,default-trigger = "heartbeat";
++ };
++ };
++
++ soc {
++ aips@60000000 {
++ sahara: crypto@63ff8000 {
++ compatible = "fsl,imx53-sahara";
++ reg = <0x63ff8000 0x4000>;
++ interrupts = <19 20>;
++ clocks = <&clks IMX5_CLK_SAHARA_IPG_GATE>,
++ <&clks IMX5_CLK_SAHARA_IPG_GATE>;
++ clock-names = "ipg", "ahb";
++ };
++ };
++ };
++};
++
++&cpu0 {
++ device_type = "cpu";
++ compatible = "arm,cortex-a8";
++ reg = <0x0>;
++ clocks = <&clks IMX5_CLK_ARM>;
++ clock-latency = <61036>;
++ voltage-tolerance = <5>;
++ operating-points = <
++ /* kHz */
++ 166666 850000
++ 400000 900000
++ 800000 1050000
++ >;
++};
++
++&esdhc1 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_esdhc1>;
++ status = "okay";
++};
++
++&iomuxc {
++ pinctrl-names = "default";
++
++ imx53-usbarmory {
++ pinctrl_pinheader: pinheadergrp {
++ fsl,pins = <
++ MX53_PAD_CSI0_DAT8__GPIO5_26 0xc0
++ MX53_PAD_CSI0_DAT9__GPIO5_27 0xc0
++ MX53_PAD_CSI0_DAT10__GPIO5_28 0xc0
++ MX53_PAD_CSI0_DAT11__GPIO5_29 0xc0
++ MX53_PAD_CSI0_DAT12__GPIO5_30 0xc0
++ >;
++ };
++
++ led_pin_gpio4_27: led_gpio4_27@0 {
++ fsl,pins = <
++ MX53_PAD_DISP0_DAT6__GPIO4_27 0x80000000
++ >;
++ };
++
++ pinctrl_esdhc1: esdhc1grp {
++ fsl,pins = <
++ MX53_PAD_SD1_DATA0__ESDHC1_DAT0 0x1d5
++ MX53_PAD_SD1_DATA1__ESDHC1_DAT1 0x1d5
++ MX53_PAD_SD1_DATA2__ESDHC1_DAT2 0x1d5
++ MX53_PAD_SD1_DATA3__ESDHC1_DAT3 0x1d5
++ MX53_PAD_SD1_CMD__ESDHC1_CMD 0x1d5
++ MX53_PAD_SD1_CLK__ESDHC1_CLK 0x1d5
++ >;
++ };
++
++ pinctrl_i2c1: i2c1grp {
++ fsl,pins = <
++ MX53_PAD_CSI0_DAT8__I2C1_SDA 0xc0000000
++ MX53_PAD_CSI0_DAT9__I2C1_SCL 0xc0000000
++ >;
++ };
++
++ pinctrl_uart1: uart1grp {
++ fsl,pins = <
++ MX53_PAD_CSI0_DAT10__UART1_TXD_MUX 0x1e4
++ MX53_PAD_CSI0_DAT11__UART1_RXD_MUX 0x1e4
++ >;
++ };
++ pinctrl_gpio5: gpio5grp {
++ fsl,pins = <
++ MX53_PAD_CSI0_DAT8__GPIO5_26 0xc0
++ MX53_PAD_CSI0_DAT9__GPIO5_27 0xc0
++ MX53_PAD_CSI0_DAT10__GPIO5_28 0xc0
++ MX53_PAD_CSI0_DAT11__GPIO5_29 0xc0
++ MX53_PAD_CSI0_DAT12__GPIO5_30 0xc0
++ >;
++ };
++ };
++};
++
++&uart1 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&pinctrl_uart1>;
++ status = "okay";
++};
++
++&vpu {
++ status = "okay";
++};
++
++&i2c1 {
++ ltc3589: pmic@34 {
++ compatible = "lltc,ltc3589-2";
++ reg = <0x34>;
++
++ regulators {
++ sw1_reg: sw1 {
++ regulator-min-microvolt = <591930>;
++ regulator-max-microvolt = <1224671>;
++ lltc,fb-voltage-divider = <100000 158000>;
++ regulator-ramp-delay = <7000>;
++ regulator-boot-on;
++ regulator-always-on;
++ };
++
++ sw2_reg: sw2 {
++ regulator-min-microvolt = <704123>;
++ regulator-max-microvolt = <1456803>;
++ lltc,fb-voltage-divider = <180000 191000>;
++ regulator-ramp-delay = <7000>;
++ regulator-boot-on;
++ regulator-always-on;
++ };
++
++ sw3_reg: sw3 {
++ regulator-min-microvolt = <1341250>;
++ regulator-max-microvolt = <2775000>;
++ lltc,fb-voltage-divider = <270000 100000>;
++ regulator-ramp-delay = <7000>;
++ regulator-boot-on;
++ regulator-always-on;
++ };
++
++ bb_out_reg: bb-out {
++ regulator-min-microvolt = <3387341>;
++ regulator-max-microvolt = <3387341>;
++ lltc,fb-voltage-divider = <511000 158000>;
++ regulator-boot-on;
++ regulator-always-on;
++ };
++ ldo1_reg: ldo1 {
++ regulator-min-microvolt = <1306329>;
++ regulator-max-microvolt = <1306329>;
++ lltc,fb-voltage-divider = <100000 158000>;
++ regulator-boot-on;
++ regulator-always-on;
++ };
++
++ ldo2_reg: ldo2 {
++ regulator-min-microvolt = <704123>;
++ regulator-max-microvolt = <1456806>;
++ lltc,fb-voltage-divider = <180000 191000>;
++ regulator-ramp-delay = <7000>;
++ regulator-boot-on;
++ regulator-always-on;
++ };
++
++ ldo3_reg: ldo3 {
++ regulator-min-microvolt = <2800000>;
++ regulator-max-microvolt = <2800000>;
++ regulator-boot-on;
++ };
++
++ ldo4_reg: ldo4 {
++ regulator-min-microvolt = <1200000>;
++ regulator-max-microvolt = <3200000>;
++ };
++ };
++ };
++};
+diff --git a/arch/arm/boot/dts/imx53-usbarmory-gpio.dts b/arch/arm/boot/dts/imx53-usbarmory-gpio.dts
+new file mode 100644
+index 0000000..bf85ffa
+--- /dev/null
++++ b/arch/arm/boot/dts/imx53-usbarmory-gpio.dts
+@@ -0,0 +1,26 @@
++/*
++ * USB armory MkI device mode device tree file
++ * http://inversepath.com/usbarmory
++ *
++ * Copyright (C) 2015, Inverse Path
++ * Andrej Rosano <andrej@inversepath.com>
++ *
++ * Licensed under GPLv2
++ */
++
++/dts-v1/;
++
++#include "imx53-usbarmory-common.dtsi"
++
++&usbotg {
++ dr_mode = "peripheral";
++ status = "okay";
++};
++
++&iomuxc {
++ pinctrl-0 = <&pinctrl_pinheader>;
++};
++
++&uart1 {
++ status = "disabled";
++};
+diff --git a/arch/arm/boot/dts/imx53-usbarmory-host.dts b/arch/arm/boot/dts/imx53-usbarmory-host.dts
+new file mode 100644
+index 0000000..ea2ea45
+--- /dev/null
++++ b/arch/arm/boot/dts/imx53-usbarmory-host.dts
+@@ -0,0 +1,18 @@
++/*
++ * USB armory MkI host mode device tree file
++ * http://inversepath.com/usbarmory
++ *
++ * Copyright (C) 2015, Inverse Path
++ * Andrej Rosano <andrej@inversepath.com>
++ *
++ * Licensed under GPLv2
++ */
++
++/dts-v1/;
++
++#include "imx53-usbarmory-common.dtsi"
++
++&usbotg {
++ dr_mode = "host";
++ status = "okay";
++};
+diff --git a/arch/arm/boot/dts/imx53-usbarmory.dts b/arch/arm/boot/dts/imx53-usbarmory.dts
+new file mode 100644
+index 0000000..902a73b
+--- /dev/null
++++ b/arch/arm/boot/dts/imx53-usbarmory.dts
+@@ -0,0 +1,18 @@
++/*
++ * USB armory MkI device mode device tree file
++ * http://inversepath.com/usbarmory
++ *
++ * Copyright (C) 2015, Inverse Path
++ * Andrej Rosano <andrej@inversepath.com>
++ *
++ * Licensed under GPLv2
++ */
++
++/dts-v1/;
++
++#include "imx53-usbarmory-common.dtsi"
++
++&usbotg {
++ dr_mode = "peripheral";
++ status = "okay";
++};
+--
+2.4.4
diff --git a/libre/linux-libre-dtb/PKGBUILD b/libre/linux-libre-dtb/PKGBUILD
new file mode 100644
index 000000000..d7af00bb6
--- /dev/null
+++ b/libre/linux-libre-dtb/PKGBUILD
@@ -0,0 +1,81 @@
+# Maintainer: André Silva <emulatorman@parabola.nu>
+
+pkgname=linux-libre-dtb
+_pkgbasever=4.1-gnu
+_pkgver=4.1.6-gnu
+
+_srcname=linux-${_pkgbasever%-*}
+pkgver=${_pkgver//-/_}
+pkgrel=1
+rcnrel=armv7-x2
+pkgdesc='dtb files for Linux-libre'
+arch=('armv7h')
+url=('http://linux-libre.fsfla.org/')
+license=('GPL2')
+source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.xz"
+ "http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.xz.sign"
+ "http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz"
+ "http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz.sign"
+ "https://repo.parabola.nu/other/rcn-libre/patches/${_pkgver%-*}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch"
+ "https://repo.parabola.nu/other/rcn-libre/patches/${_pkgver%-*}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch.sig"
+ '0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch'
+ '0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch'
+ '0003-SMILE-Plug-device-tree-file.patch'
+ '0004-fix-mvsdio-eMMC-timing.patch'
+ '0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch'
+ '0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch'
+ '0007-set-default-cubietruck-led-triggers.patch'
+ '0008-USB-armory-support.patch')
+sha256sums=('48b2e5ea077d0a0bdcb205e67178e8eb5b2867db3b2364b701dbc801d9755324'
+ 'SKIP'
+ '335d3e07319ddf393c69e047c27bc5d28ee9e6126282619e3364db56a4331d34'
+ 'SKIP'
+ 'b06ab02787e6a61227d91faeaa3f230a3807f6426c388129a1d89150374e8b5b'
+ 'SKIP'
+ '203b07cc241f2374d1e18583fc9940cc69da134f992bff65a8b376c717aa7ea7'
+ '28fb8c937c2a0dc824ea755efba26ac5a4555f9a97d79f4e31f24b23c5eae59c'
+ '39bfd7f6e2df0b87b52488462edb2fbcfaf9e3eb2a974fc7b3bc22147352fece'
+ '59444ed7dce62697f1c35be340b740899e1d71398b334c419ad07cea838c6ed6'
+ '90cff98e43322e79c8d8b1c6456a328650f6af3ebf018086a82ab690a688da5d'
+ 'ed6cf79434d3b1c10e0e141ab6bdc2aa9abfe7e7df6bbb24b2097c0e0d62ac17'
+ '2c3df3d9a3d8fe11fefc485167a81c6fc53635b04ba0312bef144505dc0a6ce4'
+ '0f6b0146096ee7a04938d39a013c23cfd8719f3bef0956b5c88a33e7d7ecafdc')
+validpgpkeys=(
+ '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva
+ 'C92BAA713B8D53D3CAE63FC9E6974752F9704456' # André Silva
+)
+
+prepare() {
+ cd "${srcdir}/${_srcname}"
+
+ # add upstream patch
+ if [ "${_pkgbasever}" != "${_pkgver}" ]; then
+ patch -p1 -i "${srcdir}/patch-${_pkgbasever}-${_pkgver}"
+ fi
+
+ # RCN patch (CM3 firmware deblobbed)
+ patch -p1 -i "${srcdir}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch"
+
+ # ALARM patches
+ patch -p1 -i "${srcdir}/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch"
+ patch -p1 -i "${srcdir}/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch"
+ patch -p1 -i "${srcdir}/0003-SMILE-Plug-device-tree-file.patch"
+ patch -p1 -i "${srcdir}/0004-fix-mvsdio-eMMC-timing.patch"
+ patch -p1 -i "${srcdir}/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch"
+ patch -p1 -i "${srcdir}/0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch"
+ patch -p1 -i "${srcdir}/0007-set-default-cubietruck-led-triggers.patch"
+ patch -p1 -i "${srcdir}/0008-USB-armory-support.patch"
+}
+
+build() {
+ cd "${srcdir}/${_srcname}"
+
+ make ${MAKEFLAGS} dtbs
+}
+
+package() {
+ cd "${srcdir}/${_srcname}"
+
+ mkdir -p "${pkgdir}"/boot/dtbs
+ cp arch/arm/boot/dts/*.dtb "${pkgdir}/boot/dtbs"
+}
diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD
index 655c8c651..b1665d2c7 100644
--- a/libre/linux-libre/PKGBUILD
+++ b/libre/linux-libre/PKGBUILD
@@ -107,7 +107,7 @@ prepare() {
patch -p1 -i "${srcdir}/patch-${_pkgbasever}-${_pkgver}"
fi
- if [ "${CARCH}" == "armv7h" ]; then
+ if [ "${CARCH}" = "armv7h" ]; then
# RCN patch (CM3 firmware deblobbed)
patch -p1 -i "${srcdir}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch"
@@ -170,7 +170,7 @@ build() {
if [ "${CARCH}" != "armv7h" ]; then
make ${MAKEFLAGS} LOCALVERSION= bzImage modules
else
- make ${MAKEFLAGS} LOCALVERSION= zImage modules dtbs
+ make ${MAKEFLAGS} LOCALVERSION= zImage modules
fi
}
@@ -180,6 +180,8 @@ _package() {
depends=('coreutils' 'linux-libre-firmware' 'kmod')
if [ "${CARCH}" != "armv7h" ]; then
depends+=('mkinitcpio>=0.7')
+ else
+ depends+=("linux-libre-dtb=${pkgver}")
fi
optdepends=('crda: to set the correct wireless channels of your country')
provides=("${_replacesarchkernel[@]/%/=${_archpkgver}}")
@@ -206,7 +208,6 @@ _package() {
cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
else
cp arch/$KARCH/boot/zImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
- cp arch/$KARCH/boot/dts/*.dtb "${pkgdir}/boot/dtbs"
for _arm in armada-{370-smileplug,370-mirabox,xp-openblocks-ax3-4} dove-{d3plug,cubox}; do
cat arch/$KARCH/boot/zImage arch/$KARCH/boot/dts/${_arm}.dtb > myimage-${_arm}