diff options
author | Jon Medhurst <tixy@linaro.org> | 2015-10-21 12:38:15 +0100 |
---|---|---|
committer | Jon Medhurst <tixy@linaro.org> | 2015-10-21 12:38:15 +0100 |
commit | 08ce61329b063d1ad0e96a19c4b4276b8e2abdfe (patch) | |
tree | 16567ec295d96cfe49ddfdbd532fffe59ae53c97 | |
parent | 1bbef56b890675daf7afa24bd04538d5f9d76083 (diff) | |
parent | 50d0303deedfd70dbf9e190c47ffb113078d26c1 (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.dts | 19 | ||||
-rw-r--r-- | drivers/net/ethernet/marvell/sky2.c | 14 | ||||
-rw-r--r-- | linaro/configs/vexpress64.conf | 15 |
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 |