summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Medhurst <tixy@linaro.org>2015-10-21 12:38:15 +0100
committerJon Medhurst <tixy@linaro.org>2015-10-21 12:38:15 +0100
commit08ce61329b063d1ad0e96a19c4b4276b8e2abdfe (patch)
tree16567ec295d96cfe49ddfdbd532fffe59ae53c97
parent1bbef56b890675daf7afa24bd04538d5f9d76083 (diff)
parent50d0303deedfd70dbf9e190c47ffb113078d26c1 (diff)
Merge branch 'tracking-armlt-juno-pci' into integration-linaro-vexpresstracking-integration-linaro-vexpress-ll-20151022.1tracking-integration-linaro-vexpress-ll-20151022.0
Conflicts: linaro/configs/vexpress64.conf
-rw-r--r--arch/arm64/boot/dts/arm/juno-r1.dts19
-rw-r--r--drivers/net/ethernet/marvell/sky2.c14
-rw-r--r--linaro/configs/vexpress64.conf15
3 files changed, 47 insertions, 1 deletions
diff --git a/arch/arm64/boot/dts/arm/juno-r1.dts b/arch/arm64/boot/dts/arm/juno-r1.dts
index 2a722d747d6b..da452d09cc1c 100644
--- a/arch/arm64/boot/dts/arm/juno-r1.dts
+++ b/arch/arm64/boot/dts/arm/juno-r1.dts
@@ -169,6 +169,25 @@
#include "juno-base.dtsi"
+ pcie-controller@30000000 {
+ compatible = "pci-host-ecam-generic";
+ device_type = "pci";
+ reg = <0x0 0x40000000 0x0 0x10000000>; /* ECAM config space */
+ bus-range = <0 255>;
+ linux,pci-domain = <0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges = <0x01000000 0x00 0x5f800000 0x00 0x5f800000 0x0 0x00800000
+ 0x02000000 0x00 0x50000000 0x00 0x50000000 0x0 0x08000000
+ 0x42000000 0x40 0x00000000 0x40 0x00000000 0x1 0x00000000>;
+ #interrupt-cells = <1>;
+ interrupt-map-mask = <0 0 0 7>;
+ interrupt-map = <0 0 0 1 &gic 0 0 0 136 4
+ 0 0 0 2 &gic 0 0 0 137 4
+ 0 0 0 3 &gic 0 0 0 138 4
+ 0 0 0 4 &gic 0 0 0 139 4>;
+ msi-parent = <&v2m_0>;
+ };
};
&memtimer {
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
index d9f4498832a1..a977d9574623 100644
--- a/drivers/net/ethernet/marvell/sky2.c
+++ b/drivers/net/ethernet/marvell/sky2.c
@@ -101,6 +101,10 @@ static int legacy_pme = 0;
module_param(legacy_pme, int, 0);
MODULE_PARM_DESC(legacy_pme, "Legacy power management");
+/* Ugh! Let the firmware tell us the hardware address */
+static int mac_address[ETH_ALEN] = { 0, };
+module_param_array(mac_address, int, NULL, 0);
+
static const struct pci_device_id sky2_id_table[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9000) }, /* SK-9Sxx */
{ PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9E00) }, /* SK-9Exx */
@@ -4811,13 +4815,21 @@ static struct net_device *sky2_init_netdev(struct sky2_hw *hw, unsigned port,
/* try to get mac address in the following order:
* 1) from device tree data
* 2) from internal registers set by bootloader
+ * 3) from the command line parameter
*/
iap = of_get_mac_address(hw->pdev->dev.of_node);
if (iap)
memcpy(dev->dev_addr, iap, ETH_ALEN);
- else
+ else {
memcpy_fromio(dev->dev_addr, hw->regs + B2_MAC_1 + port * 8,
ETH_ALEN);
+ if (!is_valid_ether_addr(&dev->dev_addr[0])) {
+ int i;
+
+ for (i = 0; i < ETH_ALEN; i++)
+ dev->dev_addr[i] = mac_address[i];
+ }
+ }
return dev;
}
diff --git a/linaro/configs/vexpress64.conf b/linaro/configs/vexpress64.conf
index 7dbfb7e5c8ed..4e476a53b9c3 100644
--- a/linaro/configs/vexpress64.conf
+++ b/linaro/configs/vexpress64.conf
@@ -91,3 +91,18 @@ CONFIG_MALI_PLATFORM_FAKE=y
CONFIG_MALI_PLATFORM_THIRDPARTY=y
CONFIG_MALI_PLATFORM_THIRDPARTY_NAME="juno_soc"
CONFIG_ION_DUMMY=y
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_REALLOC_ENABLE_AUTO=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_PCIEAER=y
+CONFIG_PCIE_ECRC=y
+CONFIG_CONNECTOR=y
+CONFIG_ATA=y
+CONFIG_SATA_SIL24=y
+CONFIG_SKY2=y