Re: [linux-yocto] [linux-yocto-dev][PATCH] meta: Add kernel meta to support edgerouter

2014-03-18 Thread Bruce Ashfield

On 14-03-18 01:09 AM, wei.y...@windriver.com wrote:

From: Yang Wei wei.y...@windriver.com

Signed-off-by: Yang Wei wei.y...@windriver.com
---

Hi Bruce,

Just like what you knew, this BSP would be released in yocto 1.6, so
I added the kernel meta based on linux-yotco-dev.


I've created the standard/edgerouter branch, and merged the meta data.
We'll need to get a summary of what works on the board in a README, but
there's no need to hold this merge on it.

Bruce



Thanks
Wei

  .../bsp/edgerouter/edgerouter-standard.scc |   11 
  .../cfg/kernel-cache/bsp/edgerouter/edgerouter.cfg |   67 
  .../cfg/kernel-cache/bsp/edgerouter/edgerouter.scc |3 +
  3 files changed, 81 insertions(+)
  create mode 100644 
meta/cfg/kernel-cache/bsp/edgerouter/edgerouter-standard.scc
  create mode 100644 meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.cfg
  create mode 100644 meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.scc

diff --git a/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter-standard.scc 
b/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter-standard.scc
new file mode 100644
index 000..5d6c692
--- /dev/null
+++ b/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter-standard.scc
@@ -0,0 +1,11 @@
+define KMACHINE edgerouter
+define KTYPE standard
+define KARCH mips
+include ktypes/standard/standard.scc
+
+branch edgerouter
+
+include edgerouter.scc
+
+# default policy for standard kernels
+include features/profiling/profiling.scc
diff --git a/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.cfg 
b/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.cfg
new file mode 100644
index 000..7362468
--- /dev/null
+++ b/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.cfg
@@ -0,0 +1,67 @@
+#SOC
+CONFIG_CAVIUM_OCTEON_SOC=y
+CONFIG_CAVIUM_CN63XXP1=y
+CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE=2
+
+#Kernel
+CONFIG_SMP=y
+CONFIG_NR_CPUS=32
+#Executable file formats
+CONFIG_MIPS32_COMPAT=y
+CONFIG_MIPS32_O32=y
+CONFIG_MIPS32_N32=y
+
+
+#PCI
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+
+#I2C
+CONFIG_I2C=y
+CONFIG_I2C_OCTEON=y
+
+CONFIG_HW_RANDOM_OCTEON=y
+
+#SPI
+CONFIG_SPI=y
+CONFIG_SPI_OCTEON=y
+#RTC
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_DS1307=y
+
+#Misc
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=y
+CONFIG_OCTEON_WDT=y
+
+CONFIG_STAGING=y
+
+#Ethernet
+CONFIG_OCTEON_ETHERNET=y
+CONFIG_OCTEON_MGMT_ETHERNET=y
+CONFIG_MDIO_OCTEON=y
+
+#PHY
+CONFIG_MARVELL_PHY=y
+CONFIG_BROADCOM_PHY=y
+CONFIG_BCM87XX_PHY=y
+
+
+#USB
+CONFIG_USB=y
+CONFIG_OCTEON_USB=y
+CONFIG_USB_OCTEON_EHCI=y
+CONFIG_USB_OCTEON_OHCI=y
+CONFIG_USB_OCTEON2_COMMON=y
+
+CONFIG_MTD=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=2
+CONFIG_SERIAL_8250_RUNTIME_UARTS=2
+CONFIG_SERIAL_8250_DW=y
diff --git a/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.scc 
b/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.scc
new file mode 100644
index 000..33f26cc
--- /dev/null
+++ b/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.scc
@@ -0,0 +1,3 @@
+kconf hardware edgerouter.cfg
+include cfg/usb-mass-storage.scc
+include cfg/fs/vfat.scc



--
___
linux-yocto mailing list
linux-yo...@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[yocto] Losing Ethernet after reboot

2014-03-18 Thread Rick Bianchi
I losing Ethernet after every reboot. What is the process to have it come
up manually?

Image: Dylan gumstix-console

I have already added eth0 auto to my /etc/network/interfaces.


At the moment I need to run the following after every reboot:

ifconfig eth0 up
udhcpc eth0
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] Losing Ethernet after reboot

2014-03-18 Thread Rick Bianchi
Sorry typing on the fly. Here is what is in interfaces:
auto eth0
iface eth0 inet dhcp


On Tue, Mar 18, 2014 at 9:17 AM, Gary Thomas g...@mlbassoc.com wrote:

 On 2014-03-18 10:10, Rick Bianchi wrote:
 
  I losing Ethernet after every reboot. What is the process to have it
 come up manually?
 
  Image: Dylan gumstix-console
 
  I have already added eth0 auto to my /etc/network/interfaces.

 Shouldn't this line read
   auto eth0
 not the other way around?

  At the moment I need to run the following after every reboot:
 
  ifconfig eth0 up
  udhcpc eth0

 --
 
 Gary Thomas |  Consulting for the
 MLB Associates  |Embedded world
 
 --
 ___
 yocto mailing list
 yocto@yoctoproject.org
 https://lists.yoctoproject.org/listinfo/yocto

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] Losing Ethernet after reboot

2014-03-18 Thread Sandeep G.R
Rick,

   Check the interface using the command ifconfig -a, then add the
corresponding interface in /etc/network/interfaces and restart the network
services.


On Tue, Mar 18, 2014 at 10:42 AM, Rick Bianchi
bianchirickku...@gmail.comwrote:

 Sorry typing on the fly. Here is what is in interfaces:
 auto eth0
 iface eth0 inet dhcp


 On Tue, Mar 18, 2014 at 9:17 AM, Gary Thomas g...@mlbassoc.com wrote:

 On 2014-03-18 10:10, Rick Bianchi wrote:
 
  I losing Ethernet after every reboot. What is the process to have it
 come up manually?
 
  Image: Dylan gumstix-console
 
  I have already added eth0 auto to my /etc/network/interfaces.

 Shouldn't this line read
   auto eth0
 not the other way around?

  At the moment I need to run the following after every reboot:
 
  ifconfig eth0 up
  udhcpc eth0

 --
 
 Gary Thomas |  Consulting for the
 MLB Associates  |Embedded world
 
 --
 ___
 yocto mailing list
 yocto@yoctoproject.org
 https://lists.yoctoproject.org/listinfo/yocto



 --
 ___
 yocto mailing list
 yocto@yoctoproject.org
 https://lists.yoctoproject.org/listinfo/yocto




-- 
*Thanks  Regards,*
*Sandeep G R*
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[linux-yocto] [PATCH 00/57] LSI AXXIA updates to standard/axxia/base 3.10

2014-03-18 Thread Charlie Paul
 These patches are updates to the LSI standard/axxia/base for 3.10. 
 They are broken out into functional and code syntax changes.

Anders Berg (13):
  i2c-axxia: Fix broken smbus block read
  i2c-axxia: Adjust tLOW,tHIGH to match fast-mode requirements
  arm/axxia: Workaround for cross-cluster sev issue
  Revert LSI AXM55XX: Add GENERIC_LOCKBREAK
  Revert LSI AXM55XX: Disable use of wfe/sev in arch spinlock
  dma: lsi-dma32: DMA driver configuration update
  dma: lsi-dma32: Cleanup DMA driver
  mach-axxia: Split device tree into SoC/board parts
  arm/axxia: Configure changes to 'GPIO driver for SPI chip selects'
  arm/axxia: GPIO driver for SPI chip selects
  spi: Revert to mainline spi-pl022
  hwmon: Support new revision of LTC2974
  i2c-axxia: Use managed functions devm_*

Charlie Paul (16):
  i2c-axxia: code update kernel.org coding spec
  LSI powerpc/boot: added for rapidio
  LSI RAPIDIO: Updated as per checkpatch
  LSIAXM55xx: Checkpatch updates to patch 'Various performance fixes
for rapidio'
  LSI AXM55xx: Code syntax - checkpatch updates to Update RIO
interfaces
  LSI AXM55xx: Code syntax: Checkconfig updates to Rapidio bug fixes
  LSI AXM55xx: Checkpatch update 'Move datastream apis'
  arm/axxia: Checkpatch updates to 'Work around for cluster'
  LSI FEMAC: Chechpatch updates to 'Ethernet Driver'
  arm/mach-axxia: Checkpatch update to 'improved robustness for DDR'
  kernel/irq/manage.c: Checkpatch update to 'Fix irq_set_affinity'
patch
  spi: Checkpatch changes to 'Revert to mainline spi-pl022'
  i2c-axxia: Configure changes to 'Use managed functions devm_*'
  arm/mm: Checkpatch to 'Backport of 3159f372354e8e1f5dee714663d70'
  arch/arm/mach-axxia: Checkpatch to 'Work-Around for Event Problems'
  LSI drivers/tty/serial: Checkpatch 'Axxia Serial Driver Update'

David Mercado (3):
  LSI FEMAC Ethernet Driver
  kernel/irq/manage.c: Fix irq_set_affinity to allow use with buslocks
  LSI AXM55xx: Axxia GIC driver improvements (3rd gen)

Gary McGee (2):
  fixes for VP engine quiesce and DDR shutdown
  arm/axxia: improved robustness for DDR retention

John Jacques (10):
  arch/arm/mach-axxia: Updated Device Tree for Emulation
  arch/arm/mach-axxia: Accept the new lsi,axm5516-emu Machine
  arch/arm/mach-axxia: Disable DDR Retention Resets in Sim/Emu
  arch/arm/mach-axxia: Updates to the VMFS File System
  axxia: Updated Device Trees Signed-off-by: John Jacques
john.jacq...@lsi.com
  arch/arm/mach-axxia: Name Cleanup
  arch/arm/mach-axxia: Work-Around for Event Problems in v1.0 Silicon
  arch/powerpc: Update the Axxia Device Tree Files
  arch/powerpc: Clean up of Compatible Names in Axxia Device Trees
  LSI drivers/tty: Axxia Serial Driver Update

Jonas Svennebring (2):
  arm/mm: Backport of 3159f372354e8e1f5dee714663d70
  Basic perf support for axxia plaform block provided by LSI.

Michael Bringmann (8):
  LSI AXM55XX/rapidio: Add SRIO controller support for LSI.
  LSI RAPIDIO - changes to support
  LSI AXM55xx: Various performance and fixes for rapidio endpoint code.
  LSI AXM55xx/rionet: Update RIO interfaces with latest changes.
  LSI AXM55xx: Configuration updates
  LSI AXM55xx: Bug fixes for rapidio.
  LSI AXM55xx: Disable linkdown reset configuration.
  LSI AXM55xx: Move datastream APIs and symbols to public header file.

Paul Butler (2):
  i2c: comforming to changes introduced by move of_i2c to core
  gpio: repairs merge comflict

SangeethaRao (1):
  LSI powerpc/sysdev: Removing the power of 2 size restriction

 arch/arm/Kconfig|   25 +-
 arch/arm/boot/dts/Makefile  |5 +
 arch/arm/boot/dts/axm-sim.dts   |  403 
 arch/arm/boot/dts/axm-ve-tc1.dts|  363 ---
 arch/arm/boot/dts/axm-ve-tc2.dts|  174 --
 arch/arm/boot/dts/axm5504-cpus.dtsi |   49 +
 arch/arm/boot/dts/axm5504-emu.dts   |   44 +
 arch/arm/boot/dts/axm5504-sim.dts   |  127 ++
 arch/arm/boot/dts/axm5507-cpus.dtsi |   73 +
 arch/arm/boot/dts/axm5507-emu.dts   |   44 +
 arch/arm/boot/dts/axm5508-cpus.dtsi |   81 +
 arch/arm/boot/dts/axm5512-cpus.dtsi |  114 +
 arch/arm/boot/dts/axm5516-amarillo.dts  |  195 ++
 arch/arm/boot/dts/axm5516-cpus.dtsi |  145 ++
 arch/arm/boot/dts/axm5516-sim.dts   |  127 ++
 arch/arm/boot/dts/axm55xx.dts   |  464 
 arch/arm/boot/dts/axm55xx.dtsi  |  390 
 arch/arm/boot/dts/axm55xxemu.dts|  219 --
 arch/arm/boot/dts/axm55xxemu7.dts   |  226 ++
 arch/arm/boot/dts/axm55xxsim.dts|  363 ---
 arch/arm/boot/dts/axm55xxsim16.dts  |  459 
 arch/arm/boot/fmboot/Makefile   |   12 +-
 arch/arm/include/asm/axxia-rio.h|  141 ++
 arch/arm/include/asm/rio.h  |   37 +
 arch/arm/include/asm/spinlock.h |9 +-
 

[linux-yocto] [PATCH 03/57] LSI powerpc/boot: added for rapidio

2014-03-18 Thread Charlie Paul
---
 arch/arm/boot/dts/axm55xx.dts |   33 +++
 arch/powerpc/boot/dts/lsi_acp342x.dts |  317 +
 arch/powerpc/boot/dts/lsi_acp344x.dts |  355 +
 3 files changed, 705 insertions(+)
 create mode 100644 arch/powerpc/boot/dts/lsi_acp342x.dts
 create mode 100644 arch/powerpc/boot/dts/lsi_acp344x.dts

diff --git a/arch/arm/boot/dts/axm55xx.dts b/arch/arm/boot/dts/axm55xx.dts
index 1aabe31..230a305 100644
--- a/arch/arm/boot/dts/axm55xx.dts
+++ b/arch/arm/boot/dts/axm55xx.dts
@@ -35,6 +35,8 @@
serial0   = axxia_serial0;
timer = axxia_timers;
ethernet0 = axxia_femac0;
+   rapidio0  = rio0;
+   rapidio1  = rio1;
};
 
cpus {
@@ -455,6 +457,37 @@
reg = 0x20 0x10098000 0 0x3000;
interrupts = 0 45 4;
};
+
+rio0: rapidio@0x31 {
+index = 0;
+status = okay;
+#address-cells = 2;
+#size-cells = 2;
+compatible = axxia,rapidio-delta;
+device_type = rapidio;
+reg = 0x0020 0x20142000 0x0 0x1000; /* SRIO Conf 0 region */
+ranges = 0x0 0x0 0x0031 0x 0x0 0x4000;
+linkdown-reset = 0x0200 0x100 0x0020 0x1000 0x0 
0x1;
+interrupts = 0 89 4;
+outb-dmes = 2 0x0003 1 0x;
+   enable_ds = 1;
+};
+
+rio1: rapidio@0x314000 {
+index = 1;
+status = okay;
+#address-cells = 2;
+#size-cells = 2;
+compatible = axxia,rapidio-delta;
+device_type = rapidio;
+reg = 0x0020 0x20143000 0x0 0x1000; /* SRIO Conf 1 region */
+ranges = 0x0 0x0 0x0031 0x4000 0x0 0x4000;
+linkdown-reset = 0x0200 0x200 0x0020 0x1000 0x0 
0x1;
+interrupts = 0 90 4;
+outb-dmes = 2 0x0003 1 0x;
+   enable_ds = 1;
+};
+
 };
 
 /*
diff --git a/arch/powerpc/boot/dts/lsi_acp342x.dts 
b/arch/powerpc/boot/dts/lsi_acp342x.dts
new file mode 100644
index 000..da6066e
--- /dev/null
+++ b/arch/powerpc/boot/dts/lsi_acp342x.dts
@@ -0,0 +1,317 @@
+/*
+ * Device Tree Source for IBM Embedded PPC 476 Platform
+ *
+ * Copyright 2009 Torez Smith, IBM Corporation.
+ *
+ * Based on earlier code:
+ * Copyright (c) 2006, 2007 IBM Corp.
+ * Josh Boyer jwbo...@linux.vnet.ibm.com, David Gibson d...@au1.ibm.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/;
+
+/memreserve/ 0x 0x0040;
+
+/ {
+   #address-cells = 2;
+   #size-cells = 1;
+   model = ibm,acpx1-4xx;
+   compatible = ibm,acpx1-4xx,ibm,47x-AMP;
+   dcr-parent = {/cpus/cpu@0};
+
+   aliases {
+   serial0 = UART0;
+   serial1 = UART1;
+   rapidio0 = rio0;
+   ethernet0 = FEMAC;
+   };
+
+   cpus {
+   #address-cells = 1;
+   #size-cells = 0;
+
+   cpu@0 {
+   device_type = cpu;
+   model = PowerPC,4xx; // real CPU changed in sim
+   reg = 0;
+clock-frequency = 0x5f5e1000;
+timebase-frequency = 0x5f5e1000;
+   i-cache-line-size = 32;
+   d-cache-line-size = 32;
+   i-cache-size = 32768;
+   d-cache-size = 32768;
+   dcr-controller;
+   dcr-access-method = native;
+   status = ok;
+   reset-type = 3; // 1=core, 2=chip, 3=system (default)
+   };
+   cpu@1 {
+   device_type = cpu;
+   model = PowerPC,4xx; // real CPU changed in sim
+   reg = 1;
+clock-frequency = 0x5f5e1000;
+timebase-frequency = 0x5f5e1000;
+   i-cache-line-size = 32;
+   d-cache-line-size = 32;
+   i-cache-size = 32768;
+   d-cache-size = 32768;
+   dcr-controller;
+   dcr-access-method = native;
+   status = disabled;
+   enable-method = spin-table;
+   cpu-release-addr = 0 0x2040;
+   reset-type = 3; // 1=core, 2=chip, 3=system (default)
+   };
+   };
+
+memory@0 {
+device_type = memory;
+reg = 0x 0x 0x1000;
+};
+
+memory@8000 

[linux-yocto] [PATCH 07/57] arch/arm/mach-axxia: Updated Device Tree for Emulation

2014-03-18 Thread Charlie Paul
From: John Jacques john.jacq...@lsi.com

Added device tree support for the latest GIC driver.

In some cases, it is necessary to distinguish between simulation,
emulation, and hardware systems.  Simulation already had a different
name (lsi,axm5516-sim).  This patch gives emulation a different name
as well (lsi,axm5516-emu).

Signed-off-by: John Jacques john.jacq...@lsi.com
---
 arch/arm/boot/dts/axm55xxemu.dts   |   33 ++
 arch/arm/boot/dts/axm55xxemu7.dts  |  226 
 arch/arm/boot/dts/axm55xxsim16.dts |2 +-
 3 files changed, 235 insertions(+), 26 deletions(-)
 create mode 100644 arch/arm/boot/dts/axm55xxemu7.dts

diff --git a/arch/arm/boot/dts/axm55xxemu.dts b/arch/arm/boot/dts/axm55xxemu.dts
index d95af00..7c0802a 100644
--- a/arch/arm/boot/dts/axm55xxemu.dts
+++ b/arch/arm/boot/dts/axm55xxemu.dts
@@ -1,5 +1,5 @@
 /*
- * arch/arm/boot/dts/axm5500-sim.dts
+ * arch/arm/boot/dts/axm55xxemu.dts
  *
  * Copyright (C) 2012 LSI
  *
@@ -24,7 +24,7 @@
 
 / {
model = AXM5516;
-   compatible = arm, lsi,axm5516;
+   compatible = arm, lsi,axm5516-emu;
interrupt-parent = gic;
#address-cells = 2;
#size-cells = 2;
@@ -46,6 +46,7 @@
compatible = arm,cortex-a15;
reg = 0;
 cpu-release-addr = 0; // Fixed by the boot loader
+   clock-frequency= 0;   // Placeholder
};
 
cpu@1 {
@@ -53,6 +54,7 @@
compatible = arm,cortex-a15;
reg = 1;
 cpu-release-addr = 0; // Fixed by the boot loader
+   clock-frequency= 0;   // Placeholder
};
 
cpu@2 {
@@ -60,6 +62,7 @@
compatible = arm,cortex-a15;
reg = 2;
 cpu-release-addr = 0; // Fixed by the boot loader
+   clock-frequency= 0;   // Placeholder
};
 
cpu@3 {
@@ -67,30 +70,8 @@
compatible = arm,cortex-a15;
reg = 3;
 cpu-release-addr = 0; // Fixed by the boot loader
+   clock-frequency= 0;   // Placeholder
};
-
-   /*
-   cpu@4 {
-   device_type = cpu;
-   compatible = arm,cortex-a15;
-   reg = 4;
-cpu-release-addr = 0; // Fixed by the boot loader
-   };
-
-   cpu@5 {
-   device_type = cpu;
-   compatible = arm,cortex-a15;
-   reg = 5;
-cpu-release-addr = 0; // Fixed by the boot loader
-   };
-
-   cpu@6 {
-   device_type = cpu;
-   compatible = arm,cortex-a15;
-   reg = 6;
-cpu-release-addr = 0; // Fixed by the boot loader
-   };
-   */
};
 
clocks {
@@ -122,6 +103,8 @@
interrupt-controller;
reg = 0x20 0x01001000 0 0x1000,  /* gic dist base */
  0x20 0x01002000 0 0x100,   /* gic cpu base */
+ 0x20 0x01004000 0 0x2000,  /* vgic control */
+ 0x20 0x01006000 0 0x2000,  /* vgic cpu base */
  0x20 0x1003 0 0x100,   /* axm IPI mask reg base */
  0x20 0x1004 0 0x2; /* axm IPI send reg base */
};
diff --git a/arch/arm/boot/dts/axm55xxemu7.dts 
b/arch/arm/boot/dts/axm55xxemu7.dts
new file mode 100644
index 000..56375c1
--- /dev/null
+++ b/arch/arm/boot/dts/axm55xxemu7.dts
@@ -0,0 +1,226 @@
+/*
+ * arch/arm/boot/dts/axm55xxemu7.dts
+ *
+ * Copyright (C) 2012 LSI
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/dts-v1/;
+
+/memreserve/ 0x 0x0040;
+
+/ {
+   model = AXM5516;
+   compatible = arm, lsi,axm5516-emu;
+   interrupt-parent = gic;
+   #address-cells = 2;
+   #size-cells = 2;
+
+   chosen { };
+
+   aliases {
+   serial0   = axxia_serial0;
+   timer = axxia_timers;
+   

[linux-yocto] [PATCH 09/57] arch/arm/mach-axxia: Disable DDR Retention Resets in Sim/Emu

2014-03-18 Thread Charlie Paul
From: John Jacques john.jacq...@lsi.com

DDR retention reset only works on hardware systems, this patch
disables it in simulation and emulation.

Signed-off-by: John Jacques john.jacq...@lsi.com
---
 arch/arm/mach-axxia/ddr_retention.c |   56 +--
 1 file changed, 33 insertions(+), 23 deletions(-)

diff --git a/arch/arm/mach-axxia/ddr_retention.c 
b/arch/arm/mach-axxia/ddr_retention.c
index e409774..933ff6d 100644
--- a/arch/arm/mach-axxia/ddr_retention.c
+++ b/arch/arm/mach-axxia/ddr_retention.c
@@ -25,6 +25,7 @@
 #include linux/reboot.h
 #include linux/syscore_ops.h
 #include linux/proc_fs.h
+#include linux/prefetch.h
 #include linux/delay.h
 
 #include linux/of.h
@@ -35,8 +36,10 @@
 static void __iomem *nca;
 static void __iomem *apb;
 static void __iomem *dickens;
+static int ddr_retention_enabled;
 
-unsigned long ncp_caal_regions_acp55xx[] = {
+static unsigned long
+ncp_caal_regions_acp55xx[] = {
NCP_REGION_ID(0x0b, 0x05),  /* SPPV2   */
NCP_REGION_ID(0x0c, 0x05),  /* SED */
NCP_REGION_ID(0x0e, 0x05),  /* DPI_HFA */
@@ -120,7 +123,6 @@ flush_l3(void)
}
 
asm volatile (dsb : : : memory);
-   asm volatile (dmb : : : memory);
 
return;
 }
@@ -253,23 +255,22 @@ initiate_retention_reset(void)
 {
unsigned long ctl_244 = 0;
unsigned long value;
-   unsigned long delay;
+
+   if (0 == ddr_retention_enabled) {
+   pr_info(DDR Retention Reset is Not Enabled\n);
+   return;
+   }
 
if (NULL == nca || NULL == apb || NULL == dickens)
BUG();
 
-   system_state = SYSTEM_RESTART;
+   /* send stop message to other CPUs */
+   local_irq_disable();
asm volatile (dsb : : : memory);
asm volatile (dmb : : : memory);
-   usermodehelper_disable();
-   device_shutdown();
-   cpu_hotplug_disable();
-   syscore_shutdown();
+   system_state = SYSTEM_RESTART;
smp_send_stop();
 
-   for (delay = 0; delay  1; ++delay)
-   udelay(1000);
-
flush_cache_all();
flush_l3();
 
@@ -290,6 +291,7 @@ initiate_retention_reset(void)
ncr_read(NCP_REGION_ID(34, 0), 0x3d0, 4, ctl_244);
ctl_244 |= 0x000a;
 
+
/*
 * set up for CRBW operation
 */
@@ -309,7 +311,7 @@ initiate_retention_reset(void)
 * into cache
 */
asm volatile (dsb : : : memory);
-   prefetch(ncp_ddr_shutdown);
+   prefetch_range(ncp_ddr_shutdown, 0x1000);
 
ncp_ddr_shutdown();
 
@@ -325,25 +327,33 @@ axxia_ddr_retention_trigger(struct file *file, const char 
__user *buf,
return 0;
 }
 
-static const struct file_operations proc_ops = {
+static const struct file_operations axxia_ddr_retention_proc_ops = {
.write  = axxia_ddr_retention_trigger,
.llseek = noop_llseek,
 };
 
-#define PROC_PATH driver/axxia_ddr_retention_reset
-
 void
 axxia_ddr_retention_init(void)
 {
-   if (!of_find_compatible_node(NULL, NULL, lsi,axm5516))
-   return;
+   /*
+   * Only available on ASIC systems.
+   */
 
-   if (!proc_create(PROC_PATH, S_IWUSR, NULL, proc_ops)) {
-   pr_err(Failed to register DDR retention proc interface\n);
-   return;
+   if (of_find_compatible_node(NULL, NULL, lsi,axm5516)) {
+   /* Create /proc entry. */
+   if (!proc_create(driver/axxia_ddr_retention_reset,
+   S_IWUSR, NULL, axxia_ddr_retention_proc_ops)) {
+   pr_info(Failed to register DDR retention proc 
entry\n);
+   } else {
+   apb = ioremap(0x201000, 0x4);
+   nca = ioremap(0x00202010ULL, 0x2);
+   dickens = ioremap(0x20, 0x100);
+   ddr_retention_enabled = 1;
+   pr_info(DDR Retention Reset Initialized\n);
+   }
+   } else {
+   pr_info(DDR Retention Reset is Not Available\n);
}
 
-   apb = ioremap(0x201000, 0x4);
-   nca = ioremap(0x00202010ULL, 0x2);
-   dickens = ioremap(0x20, 0x100);
+   return;
 }
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yo...@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 08/57] arch/arm/mach-axxia: Accept the new lsi, axm5516-emu Machine

2014-03-18 Thread Charlie Paul
From: John Jacques john.jacq...@lsi.com

Add lsi,axm5516-emu to the list of matching machines.

Signed-off-by: John Jacques john.jacq...@lsi.com
---
 arch/arm/mach-axxia/axxia.c |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-axxia/axxia.c b/arch/arm/mach-axxia/axxia.c
index b227ca9..dcb6305 100644
--- a/arch/arm/mach-axxia/axxia.c
+++ b/arch/arm/mach-axxia/axxia.c
@@ -58,6 +58,7 @@
 static const char *axxia_dt_match[] __initconst = {
lsi,axm5516,
lsi,axm5516-sim,
+   lsi,axm5516-emu,
NULL
 };
 
@@ -296,6 +297,7 @@ void __init axxia_dt_init(void)
pm_power_off = NULL; /* TBD */
 
ncr_init();
+   axxia_ddr_retention_init();
 
spi_register_board_info(spi_devs, ARRAY_SIZE(spi_devs));
 
@@ -307,8 +309,6 @@ void __init axxia_dt_init(void)
 
axxia_pcie_init();
 
-   axxia_ddr_retention_init();
-
platform_device_register(pmu_device);
 }
 
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yo...@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 01/57] i2c-axxia: Fix broken smbus block read

2014-03-18 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

Changed the initial transfer size on block reads from 1 to I2C_SMBUS_BLOCK_MAX.
The size is adjusted when the first byte (block length) is received. Having the
initial size set to 1 could cause the controller to stop the transfter after
the block length byte, if the transfter length register wasn't updated in time.

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 drivers/i2c/busses/i2c-axxia.c |   20 +---
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/drivers/i2c/busses/i2c-axxia.c b/drivers/i2c/busses/i2c-axxia.c
index e0a4b24..a46d2d3 100644
--- a/drivers/i2c/busses/i2c-axxia.c
+++ b/drivers/i2c/busses/i2c-axxia.c
@@ -260,15 +260,18 @@ axxia_i2c_empty_rx_fifo(struct axxia_i2c_dev *idev)
while (0  bytes_to_transfer--) {
int c = readl(idev-regs-mst_data);
if (idev-msg_xfrd == 0  i2c_m_recv_len(msg)) {
-   if (c == 0 || c  I2C_SMBUS_BLOCK_MAX) {
+   /*
+* Check length byte for SMBus block read
+*/
+   if (c = 0) {
idev-msg_err = -EPROTO;
i2c_int_disable(idev, ~0);
-   dev_err(idev-dev,
-   invalid SMBus block size (%d)\n, c);
complete(idev-msg_complete);
break;
+   } else if (c  I2C_SMBUS_BLOCK_MAX) {
+   c = I2C_SMBUS_BLOCK_MAX;
}
-   msg-len += c;
+   msg-len = 1 + c;
writel(msg-len, idev-regs-mst_rx_xfer);
}
msg-buf[idev-msg_xfrd++] = c;
@@ -330,7 +333,7 @@ axxia_i2c_isr(int irq, void *_dev)
if (unlikely(status  MST_STATUS_ERR)) {
idev-msg_err = status  MST_STATUS_ERR;
i2c_int_disable(idev, ~0);
-   dev_err(idev-dev, error %s, rx=%u/%u tx=%u/%u\n,
+   dev_dbg(idev-dev, error %s, rx=%u/%u tx=%u/%u\n,
status_str(idev-msg_err),
readl(idev-regs-mst_rx_bytes_xfrd),
readl(idev-regs-mst_rx_xfer),
@@ -389,7 +392,10 @@ axxia_i2c_xfer_msg(struct axxia_i2c_dev *idev, struct 
i2c_msg *msg)
/* TX 0 bytes */
writel(0, idev-regs-mst_tx_xfer);
/* RX # bytes */
-   writel(msg-len, idev-regs-mst_rx_xfer);
+   if (i2c_m_recv_len(msg))
+   writel(I2C_SMBUS_BLOCK_MAX, idev-regs-mst_rx_xfer);
+   else
+   writel(msg-len, idev-regs-mst_rx_xfer);
/* Chip address for write */
writel(CHIP_READ(msg-addr), idev-regs-mst_addr_1);
} else {
@@ -421,7 +427,7 @@ axxia_i2c_xfer_msg(struct axxia_i2c_dev *idev, struct 
i2c_msg *msg)
 
WARN_ON(readl(idev-regs-mst_command)  0x8);
 
-   if (WARN_ON(ret == 0)) {
+   if (ret == 0) {
dev_warn(idev-dev, xfer timeout (%#x)\n, msg-addr);
axxia_i2c_init(idev);
return -ETIMEDOUT;
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yo...@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 15/57] LSI AXM55xx/rionet: Update RIO interfaces with latest changes.

2014-03-18 Thread Charlie Paul
From: Michael Bringmann michael.bringm...@lsi.com

Signed-off-by: Michael Bringmann michael.bringm...@lsi.com
---
 drivers/net/rionet.c |  112 --
 1 file changed, 71 insertions(+), 41 deletions(-)

diff --git a/drivers/net/rionet.c b/drivers/net/rionet.c
index f433b59..bf79034 100644
--- a/drivers/net/rionet.c
+++ b/drivers/net/rionet.c
@@ -44,6 +44,7 @@ MODULE_LICENSE(GPL);
 #define RIONET_DOORBELL_LEAVE  0x1001
 
 #define RIONET_MAILBOX 0
+#define RIONET_LETTER  0
 
 #define RIONET_TX_RING_SIZECONFIG_RIONET_TX_SIZE
 #define RIONET_RX_RING_SIZECONFIG_RIONET_RX_SIZE
@@ -98,10 +99,15 @@ static int rionet_rx_clean(struct net_device *ndev)
i = rnet-rx_slot;
 
do {
+   int sz, slot;
+   u16 destid;
+
if (!rnet-rx_skb[i])
continue;
 
-   if (!(data = rio_get_inb_message(rnet-mport, RIONET_MAILBOX)))
+   if (!(data = rio_get_inb_message(rnet-mport, RIONET_MAILBOX,
+RIONET_LETTER, sz, slot,
+destid)))
break;
 
rnet-rx_skb[i]-data = data;
@@ -145,8 +151,13 @@ static int rionet_queue_tx_msg(struct sk_buff *skb, struct 
net_device *ndev,
   struct rio_dev *rdev)
 {
struct rionet_private *rnet = netdev_priv(ndev);
+   intmbox_dest = 0;
+   intletter = 0;
+   intflags = 0;
+   void  *cookie = NULL;
 
-   rio_add_outb_message(rnet-mport, rdev, 0, skb-data, skb-len);
+   rio_add_outb_message(rnet-mport, rdev, mbox_dest, letter, flags,
+skb-data, skb-len, cookie);
rnet-tx_skb[rnet-tx_slot] = skb;
 
ndev-stats.tx_packets++;
@@ -174,11 +185,7 @@ static int rionet_start_xmit(struct sk_buff *skb, struct 
net_device *ndev)
unsigned long flags;
int add_num = 1;
 
-   local_irq_save(flags);
-   if (!spin_trylock(rnet-tx_lock)) {
-   local_irq_restore(flags);
-   return NETDEV_TX_LOCKED;
-   }
+   spin_lock_irqsave(rnet-tx_lock, flags);
 
if (is_multicast_ether_addr(eth-h_dest))
add_num = nets[rnet-mport-id].nact;
@@ -219,9 +226,14 @@ static void rionet_dbell_event(struct rio_mport *mport, 
void *dev_id, u16 sid, u
   u16 info)
 {
struct net_device *ndev = dev_id;
-   struct rionet_private *rnet = netdev_priv(ndev);
+   struct rionet_private *rnet;
struct rionet_peer *peer;
 
+   if (ndev == NULL)
+   return;
+
+   rnet = netdev_priv(ndev);
+
if (netif_msg_intr(rnet))
printk(KERN_INFO %s: doorbell sid %4.4x tid %4.4x info %4.4x,
   DRV_NAME, sid, tid, info);
@@ -252,22 +264,33 @@ static void rionet_inb_msg_event(struct rio_mport *mport, 
void *dev_id, int mbox
 {
int n;
struct net_device *ndev = dev_id;
-   struct rionet_private *rnet = netdev_priv(ndev);
+   struct rionet_private *rnet;
+
+   if (ndev == NULL)
+   return;
+
+   rnet = netdev_priv(ndev);
 
if (netif_msg_intr(rnet))
printk(KERN_INFO %s: inbound message event, mbox %d slot %d\n,
   DRV_NAME, mbox, slot);
 
spin_lock(rnet-lock);
-   if ((n = rionet_rx_clean(ndev)) != rnet-rx_slot)
+   n = rionet_rx_clean(ndev);
+   if (n != rnet-rx_slot)
rionet_rx_fill(ndev, n);
spin_unlock(rnet-lock);
 }
 
-static void rionet_outb_msg_event(struct rio_mport *mport, void *dev_id, int 
mbox, int slot)
+static void rionet_outb_msg_event(struct rio_mport *mport, void *dev_id, int 
mbox, int slot, void *cookie)
 {
struct net_device *ndev = dev_id;
-   struct rionet_private *rnet = netdev_priv(ndev);
+   struct rionet_private *rnet;
+
+   if (ndev == NULL)
+   return;
+
+   rnet = netdev_priv(ndev);
 
spin_lock(rnet-lock);
 
@@ -300,25 +323,29 @@ static int rionet_open(struct net_device *ndev)
if (netif_msg_ifup(rnet))
printk(KERN_INFO %s: open\n, DRV_NAME);
 
-   if ((rc = rio_request_inb_dbell(rnet-mport,
-   (void *)ndev,
-   RIONET_DOORBELL_JOIN,
-   RIONET_DOORBELL_LEAVE,
-   rionet_dbell_event))  0)
+   rc = rio_request_inb_dbell(rnet-mport,
+  (void *)ndev,
+  RIONET_DOORBELL_JOIN,
+  RIONET_DOORBELL_LEAVE,
+  rionet_dbell_event);
+   if (rc  0)
goto out;
 
-   if ((rc = 

[linux-yocto] [PATCH 02/57] i2c-axxia: code update kernel.org coding spec

2014-03-18 Thread Charlie Paul
This file was updated with the checkpatch and the appropriate
changes were made to support kernel.org syntax
---
 drivers/i2c/busses/i2c-axxia.c |   26 --
 1 file changed, 12 insertions(+), 14 deletions(-)

diff --git a/drivers/i2c/busses/i2c-axxia.c b/drivers/i2c/busses/i2c-axxia.c
index a46d2d3..f536dc4 100644
--- a/drivers/i2c/busses/i2c-axxia.c
+++ b/drivers/i2c/busses/i2c-axxia.c
@@ -207,14 +207,13 @@ axxia_i2c_init(struct axxia_i2c_dev *idev)
/*
   Find the prescaler value that makes tmo_clk fit in 15-bits counter.
 */
-   for (prescale=0; prescale  15; ++prescale) {
+   for (prescale = 0; prescale  15; ++prescale) {
if (tmo_clk = 0x7fff)
break;
tmo_clk = 1;
}
-   if (tmo_clk  0x7fff) {
+   if (tmo_clk  0x7fff)
tmo_clk = 0x7fff;
-   }
 
/* Prescale divider (log2) */
writel(prescale, idev-regs-timer_clock_div);
@@ -358,9 +357,8 @@ axxia_i2c_isr(int irq, void *_dev)
}
 
/* RX FIFO needs service? */
-   if (i2c_m_rd(idev-msg)  (status  MST_STATUS_RFL)) {
+   if (i2c_m_rd(idev-msg)  (status  MST_STATUS_RFL))
axxia_i2c_empty_rx_fifo(idev);
-   }
 
/* TX FIFO needs service? */
if (!i2c_m_rd(idev-msg)  (status  MST_STATUS_TFL)) {
@@ -421,7 +419,8 @@ axxia_i2c_xfer_msg(struct axxia_i2c_dev *idev, struct 
i2c_msg *msg)
 
i2c_int_enable(idev, int_mask);
 
-   ret = wait_for_completion_timeout(idev-msg_complete, 
I2C_XFER_TIMEOUT);
+   ret = wait_for_completion_timeout(idev-msg_complete,
+   I2C_XFER_TIMEOUT);
 
i2c_int_disable(idev, int_mask);
 
@@ -452,11 +451,11 @@ axxia_i2c_stop(struct axxia_i2c_dev *idev)
/* Issue stop */
writel(0xb, idev-regs-mst_command);
i2c_int_enable(idev, int_mask);
-   ret = wait_for_completion_timeout(idev-msg_complete, 
I2C_STOP_TIMEOUT);
+   ret = wait_for_completion_timeout(idev-msg_complete,
+   I2C_STOP_TIMEOUT);
i2c_int_disable(idev, int_mask);
-   if (ret == 0) {
+   if (ret == 0)
return -ETIMEDOUT;
-   }
 
WARN_ON(readl(idev-regs-mst_command)  0x8);
 
@@ -470,9 +469,8 @@ axxia_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg 
msgs[], int num)
int i;
int ret = 0;
 
-   for (i = 0; ret == 0  i  num; i++) {
+   for (i = 0; ret == 0  i  num; i++)
ret = axxia_i2c_xfer_msg(idev, msgs[i]);
-   }
 
axxia_i2c_stop(idev);
 
@@ -482,10 +480,10 @@ axxia_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg 
msgs[], int num)
 static u32
 axxia_i2c_func(struct i2c_adapter *adap)
 {
-   return (I2C_FUNC_I2C |
+   return I2C_FUNC_I2C |
I2C_FUNC_10BIT_ADDR |
I2C_FUNC_SMBUS_EMUL |
-   I2C_FUNC_SMBUS_BLOCK_DATA);
+   I2C_FUNC_SMBUS_BLOCK_DATA;
 
 }
 
@@ -533,7 +531,7 @@ axxia_i2c_probe(struct platform_device *pdev)
}
 
idev-base = base;
-   idev-regs = (struct __iomem i2c_regs *) base;
+   idev-regs = (struct __iomem i2c_regs*) base;
idev-i2c_clk  = i2c_clk;
idev-dev  = pdev-dev;
init_completion(idev-msg_complete);
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yo...@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


Re: [yocto] Losing Ethernet after reboot

2014-03-18 Thread Rick Bianchi
ls -l /etc/rc*/S*networking  only gives me the following:

lrwxrwxrwx 1 root root 20 Mar 14 2014 /etc/rcS.d/S40networking -
../init.d/networking




On Tue, Mar 18, 2014 at 9:56 AM, Gary Thomas g...@mlbassoc.com wrote:

 On 2014-03-18 10:42, Rick Bianchi wrote:
  Sorry typing on the fly. Here is what is in interfaces:
  auto eth0
  iface eth0 inet dhcp

 Are you using systemd or sysvinit?

 I use sysvinit and have these init script settings that start the network:
 root@everest-p36:~# ls -l /etc/rc*/S*networking
 lrwxrwxrwx 1 root root 20 Mar 18 15:58 /etc/rc2.d/S01networking -
 ../init.d/networking
 lrwxrwxrwx 1 root root 20 Mar 18 15:58 /etc/rc3.d/S01networking -
 ../init.d/networking
 lrwxrwxrwx 1 root root 20 Mar 18 15:58 /etc/rc4.d/S01networking -
 ../init.d/networking
 lrwxrwxrwx 1 root root 20 Mar 18 15:58 /etc/rc5.d/S01networking -
 ../init.d/networking

 
 
  On Tue, Mar 18, 2014 at 9:17 AM, Gary Thomas g...@mlbassoc.com mailto:
 g...@mlbassoc.com wrote:
 
  On 2014-03-18 10:10, Rick Bianchi wrote:
  
   I losing Ethernet after every reboot. What is the process to have
 it come up manually?
  
   Image: Dylan gumstix-console
  
   I have already added eth0 auto to my /etc/network/interfaces.
 
  Shouldn't this line read
auto eth0
  not the other way around?
 
   At the moment I need to run the following after every reboot:
  
   ifconfig eth0 up
   udhcpc eth0


 --
 
 Gary Thomas |  Consulting for the
 MLB Associates  |Embedded world
 
 --
 ___
 yocto mailing list
 yocto@yoctoproject.org
 https://lists.yoctoproject.org/listinfo/yocto

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] Losing Ethernet after reboot

2014-03-18 Thread Rick Bianchi
1. Yes, I do have init-ifupdown on the target.

2. No, I have not made any changes to the INITSCRIPT_PARAMS.


On Tue, Mar 18, 2014 at 10:11 AM, Gary Thomas g...@mlbassoc.com wrote:

 On 2014-03-18 10:58, Rick Bianchi wrote:
  ls -l /etc/rc*/S*networking  only gives me the following:
 
  lrwxrwxrwx 1 root root 20 Mar 14 2014 /etc/rcS.d/S40networking -
 ../init.d/networking

 Looks like something changed the init scripts settings.  These are in the
 file
   .../meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb:
 INITSCRIPT_NAME = networking
 INITSCRIPT_PARAMS = start 01 2 3 4 5 . stop 80 0 6 1 .

 I presume that you have a init-ifupdown_1.0.bbappend file for your target?
 Are you changing the INITSCRIPT_PARAMS perhaps?

  On Tue, Mar 18, 2014 at 9:56 AM, Gary Thomas g...@mlbassoc.com mailto:
 g...@mlbassoc.com wrote:
 
  On 2014-03-18 10:42, Rick Bianchi wrote:
   Sorry typing on the fly. Here is what is in interfaces:
   auto eth0
   iface eth0 inet dhcp
 
  Are you using systemd or sysvinit?
 
  I use sysvinit and have these init script settings that start the
 network:
  root@everest-p36:~# ls -l /etc/rc*/S*networking
  lrwxrwxrwx 1 root root 20 Mar 18 15:58 /etc/rc2.d/S01networking -
 ../init.d/networking
  lrwxrwxrwx 1 root root 20 Mar 18 15:58 /etc/rc3.d/S01networking -
 ../init.d/networking
  lrwxrwxrwx 1 root root 20 Mar 18 15:58 /etc/rc4.d/S01networking -
 ../init.d/networking
  lrwxrwxrwx 1 root root 20 Mar 18 15:58 /etc/rc5.d/S01networking -
 ../init.d/networking
 
  
  
   On Tue, Mar 18, 2014 at 9:17 AM, Gary Thomas 
  g...@mlbassoc.commailto:
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com
 wrote:
  
   On 2014-03-18 10:10, Rick Bianchi wrote:
   
I losing Ethernet after every reboot. What is the process to
 have it come up manually?
   
Image: Dylan gumstix-console
   
I have already added eth0 auto to my /etc/network/interfaces.
  
   Shouldn't this line read
 auto eth0
   not the other way around?
  
At the moment I need to run the following after every reboot:
   
ifconfig eth0 up
udhcpc eth0
 
 
  --
  
  Gary Thomas |  Consulting for the
  MLB Associates  |Embedded world
  
  --
  ___
  yocto mailing list
  yocto@yoctoproject.org mailto:yocto@yoctoproject.org
  https://lists.yoctoproject.org/listinfo/yocto
 
 

 --
 
 Gary Thomas |  Consulting for the
 MLB Associates  |Embedded world
 

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] Building on target

2014-03-18 Thread Rick Bianchi
Should have noted, that the date and time reset on every reboot?


On Tue, Mar 18, 2014 at 10:48 AM, Rick Bianchi
bianchirickku...@gmail.comwrote:

 Gary,
 I noticed during the make the it was complaining about the date being in
 the future; I checked and sure thing the date and time were bit off, about
 14 years. I set it to the correct time  with date --set=18 MARCH 2014
 10:32:00 and the build completed in under 10 mins.


 On Fri, Mar 14, 2014 at 3:16 PM, Gary Thomas g...@mlbassoc.com wrote:

 On 2014-03-14 08:49, Rick Bianchi wrote:
  If I have time today I will try to reproduce your results. If not, I
 will get to it first thing next week and post my result.

 One thing I forgot to point out is I used the identical kernel+modules for
 both setups.  I would be interested to see if that makes any difference
 for
 you.  I can't fully test it as my board doesn't have a Linaro kernel.

 So there are four combinations - I only tried the first two:
   Yocto kernel + Yocto rootfs
   Yocto kernel + Linaro rootfs
   Linaro kernel + Yocto rootfs
   Linaro kernel + Linaro rootfs

  On Fri, Mar 14, 2014 at 7:38 AM, Gary Thomas g...@mlbassoc.commailto:
 g...@mlbassoc.com wrote:
 
  On 2014-03-12 13:11, Rick Bianchi wrote:
   usbip from /usr/src/kernel/drivers/staging/usbip
 
  I finally managed to make this comparison.  I did this by taking my
 Poky/Yocto
  built system for a i.MX6 system (ARM Cortex-A9) and replaced the
 rootfs with
  one for the Gumstix Overo (linaro).  The results were nothing like
 yours, so
  it's a bit confusing.
 
  I actually built an entire Linux kernel - not just the one
 directory you mentioned.
 
  Poky/Yocto - 37 minutes
  Linaro - 48 minutes
 
  There is some flex in these numbers as they were on different
 [brand] SD cards, etc,
  but I sure did not see the 5 minutes for Linaro vs 24 hours on
 Yocto that you reported.
 
  Perhaps the only thing I did differently was I added the SDK tools
 to my Yocto system
  using these meta-packages instead of the list you used.
packagegroup-core-sdk packagegroup-core-standalone-sdk-target
 
  You might try that to see if it makes any difference.
 
  n.b. part of what took me so long to get these results is I was
 trying to run this test
  on something closer to your Overo board.  I have an older OMAP
 DM3730 board here that I
  tried to do these same steps, but it was unstable and I could not
 get the Linaro based
  file system to work at all.  Very strange.  In any case, I think
 the comparison I did get
  with the i.MX6 is valid.
 
   On Wed, Mar 12, 2014 at 11:44 AM, Gary Thomas 
  g...@mlbassoc.commailto:
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com
 wrote:
  
   On 2014-03-12 10:09, Rick Bianchi wrote:
I completely agree with regards to the comparison, but I
 have compiled the same exact source on the same target (arm) and it only
 took 5 minutes when running the Linaro image.
   
To clarify, the only difference is the build, one is Linaro
 (took 5 minutes to compile source on the target) and the other Yocto (took
 almost 24 hours to compile source on the target).
  
   Sorry, I missed that this was on the same hardware.
  
   What are you building?  I'm going to try and duplicate this
 here
   on hardware I have that's quite similar to your Gumstix board.
  
   
Is there something that I am missing?
   
   
On Wed, Mar 12, 2014 at 8:28 AM, Gary Thomas 
 g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.commailto:
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com
  mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com wrote:
   
On 2014-03-12 09:15, Rick Bianchi wrote:

 I have the gumstix-console-image with the added
 packages below. When I compile on the target is take a very long time for
 it to complete, over 24 hours. I have compiled the same
 code on the same target, but running Linaro image,
 and it only takes a few minutes. Is there another recipe that I need to add
 to the build to speed up compiling?
   
Doubtful.  The reason your build on the target takes so
 long is merely
one of horsepower - that little ARM processor just
 doesn't have it, especially
if you are comparing it to a typical desktop
 environment.
   
 EXTRA_IMAGE_FEATURES += dev-pkgs
 IMAGE_INSTALL_append = autoconf
 IMAGE_INSTALL_append = autofs
 IMAGE_INSTALL_append = automake
 IMAGE_INSTALL_append = ccache
 IMAGE_INSTALL_append = chkconfig
 IMAGE_INSTALL_append = dbus-glib
 IMAGE_INSTALL_append = gcc
 

Re: [yocto] Losing Ethernet after reboot

2014-03-18 Thread Gary Thomas
On 2014-03-18 11:14, Rick Bianchi wrote:
 1. Yes, I do have init-ifupdown on the target.
 
 2. No, I have not made any changes to the INITSCRIPT_PARAMS.
 

OK, you must be using an older release/branch as this was recently changed.

You can try tracing the bootup to see if/when the networking is started:
Make this change  reboot.
  root@everest-p36:~# sed -i s/VERBOSE=no/VERBOSE=very/ /etc/default/rcS
This will print a line indicating which init scripts are run, etc.

Also, what happens if you try to bring up your network using 'ifup eth0'
instead of 'ifconfig eth0 up;udhcpc eth0'?

 On Tue, Mar 18, 2014 at 10:11 AM, Gary Thomas g...@mlbassoc.com 
 mailto:g...@mlbassoc.com wrote:
 
 On 2014-03-18 10:58, Rick Bianchi wrote:
  ls -l /etc/rc*/S*networking  only gives me the following:
 
  lrwxrwxrwx 1 root root 20 Mar 14 2014 /etc/rcS.d/S40networking - 
 ../init.d/networking
 
 Looks like something changed the init scripts settings.  These are in the 
 file
   .../meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb 
 http://init-ifupdown_1.0.bb:
 INITSCRIPT_NAME = networking
 INITSCRIPT_PARAMS = start 01 2 3 4 5 . stop 80 0 6 1 .
 
 I presume that you have a init-ifupdown_1.0.bbappend file for your target?
 Are you changing the INITSCRIPT_PARAMS perhaps?
 
  On Tue, Mar 18, 2014 at 9:56 AM, Gary Thomas g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com wrote:
 
  On 2014-03-18 10:42, Rick Bianchi wrote:
   Sorry typing on the fly. Here is what is in interfaces:
   auto eth0
   iface eth0 inet dhcp
 
  Are you using systemd or sysvinit?
 
  I use sysvinit and have these init script settings that start the 
 network:
  root@everest-p36:~# ls -l /etc/rc*/S*networking
  lrwxrwxrwx 1 root root 20 Mar 18 15:58 /etc/rc2.d/S01networking - 
 ../init.d/networking
  lrwxrwxrwx 1 root root 20 Mar 18 15:58 /etc/rc3.d/S01networking - 
 ../init.d/networking
  lrwxrwxrwx 1 root root 20 Mar 18 15:58 /etc/rc4.d/S01networking - 
 ../init.d/networking
  lrwxrwxrwx 1 root root 20 Mar 18 15:58 /etc/rc5.d/S01networking - 
 ../init.d/networking
 
  
  
   On Tue, Mar 18, 2014 at 9:17 AM, Gary Thomas g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com wrote:
  
   On 2014-03-18 10:10, Rick Bianchi wrote:
   
I losing Ethernet after every reboot. What is the process 
 to have it come up manually?
   
Image: Dylan gumstix-console
   
I have already added eth0 auto to my 
 /etc/network/interfaces.
  
   Shouldn't this line read
 auto eth0
   not the other way around?
  
At the moment I need to run the following after every 
 reboot:
   
ifconfig eth0 up
udhcpc eth0

-- 

Gary Thomas |  Consulting for the
MLB Associates  |Embedded world

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] Building on target

2014-03-18 Thread Gary Thomas
On 2014-03-18 11:48, Rick Bianchi wrote:
 Gary,
 I noticed during the make the it was complaining about the date being in the 
 future; I checked and sure thing the date and time were bit off, about 14 
 years. I set it to the
 correct time  with date --set=18 MARCH 2014 10:32:00 and the build 
 completed in under 10 mins. 

So to clarify, your compile results on Yocto were not that different from those 
on Linaro?
Certainly not minutes vs days, correct?

 On Fri, Mar 14, 2014 at 3:16 PM, Gary Thomas g...@mlbassoc.com 
 mailto:g...@mlbassoc.com wrote:
 
 On 2014-03-14 08:49, Rick Bianchi wrote:
  If I have time today I will try to reproduce your results. If not, I 
 will get to it first thing next week and post my result.
 
 One thing I forgot to point out is I used the identical kernel+modules for
 both setups.  I would be interested to see if that makes any difference 
 for
 you.  I can't fully test it as my board doesn't have a Linaro kernel.
 
 So there are four combinations - I only tried the first two:
   Yocto kernel + Yocto rootfs
   Yocto kernel + Linaro rootfs
   Linaro kernel + Yocto rootfs
   Linaro kernel + Linaro rootfs
 
  On Fri, Mar 14, 2014 at 7:38 AM, Gary Thomas g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com wrote:
 
  On 2014-03-12 13:11, Rick Bianchi wrote:
   usbip from /usr/src/kernel/drivers/staging/usbip
 
  I finally managed to make this comparison.  I did this by taking my 
 Poky/Yocto
  built system for a i.MX6 system (ARM Cortex-A9) and replaced the 
 rootfs with
  one for the Gumstix Overo (linaro).  The results were nothing like 
 yours, so
  it's a bit confusing.
 
  I actually built an entire Linux kernel - not just the one 
 directory you mentioned.
 
  Poky/Yocto - 37 minutes
  Linaro - 48 minutes
 
  There is some flex in these numbers as they were on different 
 [brand] SD cards, etc,
  but I sure did not see the 5 minutes for Linaro vs 24 hours on 
 Yocto that you reported.
 
  Perhaps the only thing I did differently was I added the SDK tools 
 to my Yocto system
  using these meta-packages instead of the list you used.
packagegroup-core-sdk packagegroup-core-standalone-sdk-target
 
  You might try that to see if it makes any difference.
 
  n.b. part of what took me so long to get these results is I was 
 trying to run this test
  on something closer to your Overo board.  I have an older OMAP 
 DM3730 board here that I
  tried to do these same steps, but it was unstable and I could not 
 get the Linaro based
  file system to work at all.  Very strange.  In any case, I think 
 the comparison I did get
  with the i.MX6 is valid.
 
   On Wed, Mar 12, 2014 at 11:44 AM, Gary Thomas g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com wrote:
  
   On 2014-03-12 10:09, Rick Bianchi wrote:
I completely agree with regards to the comparison, but I 
 have compiled the same exact source on the same target (arm) and it only took 
 5 minutes when running the Linaro image.
   
To clarify, the only difference is the build, one is Linaro 
 (took 5 minutes to compile source on the target) and the other Yocto (took 
 almost 24 hours to compile source on the target).
  
   Sorry, I missed that this was on the same hardware.
  
   What are you building?  I'm going to try and duplicate this 
 here
   on hardware I have that's quite similar to your Gumstix board.
  
   
Is there something that I am missing?
   
   
On Wed, Mar 12, 2014 at 8:28 AM, Gary Thomas 
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com
  mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com wrote:
   
On 2014-03-12 09:15, Rick Bianchi wrote:

 I have the gumstix-console-image with the added 
 packages below. When I compile on the target is take a very long time for it 
 to complete, over 24 hours. I have compiled the same
 code on the same target, but running Linaro image, 
 and it only takes a few minutes. Is there another recipe that I need to add 
 to the build to speed up 

Re: [yocto] Building on target

2014-03-18 Thread Gary Thomas
On 2014-03-18 11:49, Rick Bianchi wrote:
 Should have noted, that the date and time reset on every reboot?

Unless you have a battery backed up clock device, e.g. Dallas RTC,
this will happen.  If you shut your Yocto system down properly, e.g.
using '# reboot', it will keep track of when you shut down and then
set the clock to that time when you reboot.  Without a true RTC, there's
little else that it can do unless you run NTP and get the time from some
external server.

 On Tue, Mar 18, 2014 at 10:48 AM, Rick Bianchi bianchirickku...@gmail.com 
 mailto:bianchirickku...@gmail.com wrote:
 
 Gary,
 I noticed during the make the it was complaining about the date being in 
 the future; I checked and sure thing the date and time were bit off, about 14 
 years. I set it to the
 correct time  with date --set=18 MARCH 2014 10:32:00 and the build 
 completed in under 10 mins. 
 
 
 On Fri, Mar 14, 2014 at 3:16 PM, Gary Thomas g...@mlbassoc.com 
 mailto:g...@mlbassoc.com wrote:
 
 On 2014-03-14 08:49, Rick Bianchi wrote:
  If I have time today I will try to reproduce your results. If not, 
 I will get to it first thing next week and post my result.
 
 One thing I forgot to point out is I used the identical 
 kernel+modules for
 both setups.  I would be interested to see if that makes any 
 difference for
 you.  I can't fully test it as my board doesn't have a Linaro kernel.
 
 So there are four combinations - I only tried the first two:
   Yocto kernel + Yocto rootfs
   Yocto kernel + Linaro rootfs
   Linaro kernel + Yocto rootfs
   Linaro kernel + Linaro rootfs
 
  On Fri, Mar 14, 2014 at 7:38 AM, Gary Thomas g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com wrote:
 
  On 2014-03-12 13:11, Rick Bianchi wrote:
   usbip from /usr/src/kernel/drivers/staging/usbip
 
  I finally managed to make this comparison.  I did this by 
 taking my Poky/Yocto
  built system for a i.MX6 system (ARM Cortex-A9) and replaced 
 the rootfs with
  one for the Gumstix Overo (linaro).  The results were nothing 
 like yours, so
  it's a bit confusing.
 
  I actually built an entire Linux kernel - not just the one 
 directory you mentioned.
 
  Poky/Yocto - 37 minutes
  Linaro - 48 minutes
 
  There is some flex in these numbers as they were on different 
 [brand] SD cards, etc,
  but I sure did not see the 5 minutes for Linaro vs 24 hours on 
 Yocto that you reported.
 
  Perhaps the only thing I did differently was I added the SDK 
 tools to my Yocto system
  using these meta-packages instead of the list you used.
packagegroup-core-sdk packagegroup-core-standalone-sdk-target
 
  You might try that to see if it makes any difference.
 
  n.b. part of what took me so long to get these results is I was 
 trying to run this test
  on something closer to your Overo board.  I have an older OMAP 
 DM3730 board here that I
  tried to do these same steps, but it was unstable and I could 
 not get the Linaro based
  file system to work at all.  Very strange.  In any case, I 
 think the comparison I did get
  with the i.MX6 is valid.
 
   On Wed, Mar 12, 2014 at 11:44 AM, Gary Thomas 
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com wrote:
  
   On 2014-03-12 10:09, Rick Bianchi wrote:
I completely agree with regards to the comparison, but 
 I have compiled the same exact source on the same target (arm) and it only 
 took 5 minutes when running the Linaro image.
   
To clarify, the only difference is the build, one is 
 Linaro (took 5 minutes to compile source on the target) and the other Yocto 
 (took almost 24 hours to compile source on the target).
  
   Sorry, I missed that this was on the same hardware.
  
   What are you building?  I'm going to try and duplicate 
 this here
   on hardware I have that's quite similar to your Gumstix 
 board.
  
   
Is there something that I am missing?
   
   
On Wed, Mar 12, 2014 at 8:28 AM, Gary Thomas 
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 

Re: [yocto] Building on target

2014-03-18 Thread Paul Eggleton
On Tuesday 18 March 2014 10:49:02 Rick Bianchi wrote:
 Should have noted, that the date and time reset on every reboot?

Hmm, could it be then that make was seeing more had changed and needed to be 
rebuilt simply because the date changed?

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] Building on target

2014-03-18 Thread Rick Bianchi
Got it.


On Tue, Mar 18, 2014 at 10:55 AM, Gary Thomas g...@mlbassoc.com wrote:

 On 2014-03-18 11:49, Rick Bianchi wrote:
  Should have noted, that the date and time reset on every reboot?

 Unless you have a battery backed up clock device, e.g. Dallas RTC,
 this will happen.  If you shut your Yocto system down properly, e.g.
 using '# reboot', it will keep track of when you shut down and then
 set the clock to that time when you reboot.  Without a true RTC, there's
 little else that it can do unless you run NTP and get the time from some
 external server.

  On Tue, Mar 18, 2014 at 10:48 AM, Rick Bianchi 
 bianchirickku...@gmail.com mailto:bianchirickku...@gmail.com wrote:
 
  Gary,
  I noticed during the make the it was complaining about the date
 being in the future; I checked and sure thing the date and time were bit
 off, about 14 years. I set it to the
  correct time  with date --set=18 MARCH 2014 10:32:00 and the
 build completed in under 10 mins.
 
 
  On Fri, Mar 14, 2014 at 3:16 PM, Gary Thomas g...@mlbassoc.commailto:
 g...@mlbassoc.com wrote:
 
  On 2014-03-14 08:49, Rick Bianchi wrote:
   If I have time today I will try to reproduce your results. If
 not, I will get to it first thing next week and post my result.
 
  One thing I forgot to point out is I used the identical
 kernel+modules for
  both setups.  I would be interested to see if that makes any
 difference for
  you.  I can't fully test it as my board doesn't have a Linaro
 kernel.
 
  So there are four combinations - I only tried the first two:
Yocto kernel + Yocto rootfs
Yocto kernel + Linaro rootfs
Linaro kernel + Yocto rootfs
Linaro kernel + Linaro rootfs
 
   On Fri, Mar 14, 2014 at 7:38 AM, Gary Thomas 
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.commailto:
 g...@mlbassoc.com wrote:
  
   On 2014-03-12 13:11, Rick Bianchi wrote:
usbip from /usr/src/kernel/drivers/staging/usbip
  
   I finally managed to make this comparison.  I did this by
 taking my Poky/Yocto
   built system for a i.MX6 system (ARM Cortex-A9) and
 replaced the rootfs with
   one for the Gumstix Overo (linaro).  The results were
 nothing like yours, so
   it's a bit confusing.
  
   I actually built an entire Linux kernel - not just the one
 directory you mentioned.
  
   Poky/Yocto - 37 minutes
   Linaro - 48 minutes
  
   There is some flex in these numbers as they were on
 different [brand] SD cards, etc,
   but I sure did not see the 5 minutes for Linaro vs 24
 hours on Yocto that you reported.
  
   Perhaps the only thing I did differently was I added the
 SDK tools to my Yocto system
   using these meta-packages instead of the list you used.
 packagegroup-core-sdk
 packagegroup-core-standalone-sdk-target
  
   You might try that to see if it makes any difference.
  
   n.b. part of what took me so long to get these results is
 I was trying to run this test
   on something closer to your Overo board.  I have an older
 OMAP DM3730 board here that I
   tried to do these same steps, but it was unstable and I
 could not get the Linaro based
   file system to work at all.  Very strange.  In any case, I
 think the comparison I did get
   with the i.MX6 is valid.
  
On Wed, Mar 12, 2014 at 11:44 AM, Gary Thomas 
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.commailto:
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com
  mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com wrote:
   
On 2014-03-12 10:09, Rick Bianchi wrote:
 I completely agree with regards to the comparison,
 but I have compiled the same exact source on the same target (arm) and it
 only took 5 minutes when running the Linaro image.

 To clarify, the only difference is the build, one
 is Linaro (took 5 minutes to compile source on the target) and the other
 Yocto (took almost 24 hours to compile source on the target).
   
Sorry, I missed that this was on the same hardware.
   
What are you building?  I'm going to try and
 duplicate this here
on hardware I have that's quite similar to your
 Gumstix board.
   

 Is there something that I am missing?


 On Wed, Mar 12, 2014 at 8:28 AM, Gary Thomas 
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.commailto:
 g...@mlbassoc.com 

Re: [yocto] Building on target

2014-03-18 Thread Rick Bianchi
I rebooted the system with the reboot command and then checked the date
and time with date, it did not hold the system time and date correctly
Sat Jan 1 02:28:44 UTC 2000.


On Tue, Mar 18, 2014 at 10:55 AM, Gary Thomas g...@mlbassoc.com wrote:

 On 2014-03-18 11:49, Rick Bianchi wrote:
  Should have noted, that the date and time reset on every reboot?

 Unless you have a battery backed up clock device, e.g. Dallas RTC,
 this will happen.  If you shut your Yocto system down properly, e.g.
 using '# reboot', it will keep track of when you shut down and then
 set the clock to that time when you reboot.  Without a true RTC, there's
 little else that it can do unless you run NTP and get the time from some
 external server.

  On Tue, Mar 18, 2014 at 10:48 AM, Rick Bianchi 
 bianchirickku...@gmail.com mailto:bianchirickku...@gmail.com wrote:
 
  Gary,
  I noticed during the make the it was complaining about the date
 being in the future; I checked and sure thing the date and time were bit
 off, about 14 years. I set it to the
  correct time  with date --set=18 MARCH 2014 10:32:00 and the
 build completed in under 10 mins.
 
 
  On Fri, Mar 14, 2014 at 3:16 PM, Gary Thomas g...@mlbassoc.commailto:
 g...@mlbassoc.com wrote:
 
  On 2014-03-14 08:49, Rick Bianchi wrote:
   If I have time today I will try to reproduce your results. If
 not, I will get to it first thing next week and post my result.
 
  One thing I forgot to point out is I used the identical
 kernel+modules for
  both setups.  I would be interested to see if that makes any
 difference for
  you.  I can't fully test it as my board doesn't have a Linaro
 kernel.
 
  So there are four combinations - I only tried the first two:
Yocto kernel + Yocto rootfs
Yocto kernel + Linaro rootfs
Linaro kernel + Yocto rootfs
Linaro kernel + Linaro rootfs
 
   On Fri, Mar 14, 2014 at 7:38 AM, Gary Thomas 
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.commailto:
 g...@mlbassoc.com wrote:
  
   On 2014-03-12 13:11, Rick Bianchi wrote:
usbip from /usr/src/kernel/drivers/staging/usbip
  
   I finally managed to make this comparison.  I did this by
 taking my Poky/Yocto
   built system for a i.MX6 system (ARM Cortex-A9) and
 replaced the rootfs with
   one for the Gumstix Overo (linaro).  The results were
 nothing like yours, so
   it's a bit confusing.
  
   I actually built an entire Linux kernel - not just the one
 directory you mentioned.
  
   Poky/Yocto - 37 minutes
   Linaro - 48 minutes
  
   There is some flex in these numbers as they were on
 different [brand] SD cards, etc,
   but I sure did not see the 5 minutes for Linaro vs 24
 hours on Yocto that you reported.
  
   Perhaps the only thing I did differently was I added the
 SDK tools to my Yocto system
   using these meta-packages instead of the list you used.
 packagegroup-core-sdk
 packagegroup-core-standalone-sdk-target
  
   You might try that to see if it makes any difference.
  
   n.b. part of what took me so long to get these results is
 I was trying to run this test
   on something closer to your Overo board.  I have an older
 OMAP DM3730 board here that I
   tried to do these same steps, but it was unstable and I
 could not get the Linaro based
   file system to work at all.  Very strange.  In any case, I
 think the comparison I did get
   with the i.MX6 is valid.
  
On Wed, Mar 12, 2014 at 11:44 AM, Gary Thomas 
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.commailto:
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com
  mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com wrote:
   
On 2014-03-12 10:09, Rick Bianchi wrote:
 I completely agree with regards to the comparison,
 but I have compiled the same exact source on the same target (arm) and it
 only took 5 minutes when running the Linaro image.

 To clarify, the only difference is the build, one
 is Linaro (took 5 minutes to compile source on the target) and the other
 Yocto (took almost 24 hours to compile source on the target).
   
Sorry, I missed that this was on the same hardware.
   
What are you building?  I'm going to try and
 duplicate this here
on hardware I have that's quite similar to your
 Gumstix board.
   

 Is there something that I am missing?


 

Re: [yocto] Losing Ethernet after reboot

2014-03-18 Thread Rick Bianchi
If I run, ifup eth0 it bring eth0 with dhcp, and I can the skip the
udhcpc eth0.


On Tue, Mar 18, 2014 at 10:51 AM, Gary Thomas g...@mlbassoc.com wrote:

 On 2014-03-18 11:14, Rick Bianchi wrote:
  1. Yes, I do have init-ifupdown on the target.
 
  2. No, I have not made any changes to the INITSCRIPT_PARAMS.
 

 OK, you must be using an older release/branch as this was recently changed.

 You can try tracing the bootup to see if/when the networking is started:
 Make this change  reboot.
   root@everest-p36:~# sed -i s/VERBOSE=no/VERBOSE=very/ /etc/default/rcS
 This will print a line indicating which init scripts are run, etc.

 Also, what happens if you try to bring up your network using 'ifup eth0'
 instead of 'ifconfig eth0 up;udhcpc eth0'?

  On Tue, Mar 18, 2014 at 10:11 AM, Gary Thomas g...@mlbassoc.commailto:
 g...@mlbassoc.com wrote:
 
  On 2014-03-18 10:58, Rick Bianchi wrote:
   ls -l /etc/rc*/S*networking  only gives me the following:
  
   lrwxrwxrwx 1 root root 20 Mar 14 2014 /etc/rcS.d/S40networking -
 ../init.d/networking
 
  Looks like something changed the init scripts settings.  These are
 in the file
.../meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb 
 http://init-ifupdown_1.0.bb:
  INITSCRIPT_NAME = networking
  INITSCRIPT_PARAMS = start 01 2 3 4 5 . stop 80 0 6 1 .
 
  I presume that you have a init-ifupdown_1.0.bbappend file for your
 target?
  Are you changing the INITSCRIPT_PARAMS perhaps?
 
   On Tue, Mar 18, 2014 at 9:56 AM, Gary Thomas 
  g...@mlbassoc.commailto:
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com
 wrote:
  
   On 2014-03-18 10:42, Rick Bianchi wrote:
Sorry typing on the fly. Here is what is in interfaces:
auto eth0
iface eth0 inet dhcp
  
   Are you using systemd or sysvinit?
  
   I use sysvinit and have these init script settings that start
 the network:
   root@everest-p36:~# ls -l /etc/rc*/S*networking
   lrwxrwxrwx 1 root root 20 Mar 18 15:58
 /etc/rc2.d/S01networking - ../init.d/networking
   lrwxrwxrwx 1 root root 20 Mar 18 15:58
 /etc/rc3.d/S01networking - ../init.d/networking
   lrwxrwxrwx 1 root root 20 Mar 18 15:58
 /etc/rc4.d/S01networking - ../init.d/networking
   lrwxrwxrwx 1 root root 20 Mar 18 15:58
 /etc/rc5.d/S01networking - ../init.d/networking
  
   
   
On Tue, Mar 18, 2014 at 9:17 AM, Gary Thomas 
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.commailto:
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com
  mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com wrote:
   
On 2014-03-18 10:10, Rick Bianchi wrote:

 I losing Ethernet after every reboot. What is the
 process to have it come up manually?

 Image: Dylan gumstix-console

 I have already added eth0 auto to my
 /etc/network/interfaces.
   
Shouldn't this line read
  auto eth0
not the other way around?
   
 At the moment I need to run the following after every
 reboot:

 ifconfig eth0 up
 udhcpc eth0

 --
 
 Gary Thomas |  Consulting for the
 MLB Associates  |Embedded world
 
 --
 ___
 yocto mailing list
 yocto@yoctoproject.org
 https://lists.yoctoproject.org/listinfo/yocto

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] Building on target

2014-03-18 Thread Gary Thomas
On 2014-03-18 12:30, Rick Bianchi wrote:
 I rebooted the system with the reboot command and then checked the date and 
 time with date, it did not hold the system time and date correctly Sat Jan 
 1 02:28:44 UTC 2000.

There seems to be something very wrong with your startup/shutdown scripts
as both this problem and the networking issue are handled by those scripts.

Did you try turning on the verbose mode?  If so, you should see a line like
this during shutdown:
  INIT: [2014-03-18 17:33:20.978789236] Running /etc/rc6.d/S25save-rtc.sh 
stop...
and another like these on reboot:
  INIT: [1970-01-01 00:00:05.079166199] Running /etc/rcS.d/S40networking 
start...
  INIT: [1970-01-01 00:00:05.103022145] Running /etc/rcS.d/S55bootmisc.sh 
start...

 On Tue, Mar 18, 2014 at 10:55 AM, Gary Thomas g...@mlbassoc.com 
 mailto:g...@mlbassoc.com wrote:
 
 On 2014-03-18 11:49, Rick Bianchi wrote:
  Should have noted, that the date and time reset on every reboot?
 
 Unless you have a battery backed up clock device, e.g. Dallas RTC,
 this will happen.  If you shut your Yocto system down properly, e.g.
 using '# reboot', it will keep track of when you shut down and then
 set the clock to that time when you reboot.  Without a true RTC, there's
 little else that it can do unless you run NTP and get the time from some
 external server.
 
  On Tue, Mar 18, 2014 at 10:48 AM, Rick Bianchi 
 bianchirickku...@gmail.com mailto:bianchirickku...@gmail.com 
 mailto:bianchirickku...@gmail.com mailto:bianchirickku...@gmail.com 
 wrote:
 
  Gary,
  I noticed during the make the it was complaining about the date 
 being in the future; I checked and sure thing the date and time were bit off, 
 about 14 years. I set it to the
  correct time  with date --set=18 MARCH 2014 10:32:00 and the 
 build completed in under 10 mins.
 
 
  On Fri, Mar 14, 2014 at 3:16 PM, Gary Thomas g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com wrote:
 
  On 2014-03-14 08:49, Rick Bianchi wrote:
   If I have time today I will try to reproduce your results. If 
 not, I will get to it first thing next week and post my result.
 
  One thing I forgot to point out is I used the identical 
 kernel+modules for
  both setups.  I would be interested to see if that makes any 
 difference for
  you.  I can't fully test it as my board doesn't have a Linaro 
 kernel.
 
  So there are four combinations - I only tried the first two:
Yocto kernel + Yocto rootfs
Yocto kernel + Linaro rootfs
Linaro kernel + Yocto rootfs
Linaro kernel + Linaro rootfs
 
   On Fri, Mar 14, 2014 at 7:38 AM, Gary Thomas 
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com 
 mailto:g...@mlbassoc.com
 mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com wrote:
  
   On 2014-03-12 13:11, Rick Bianchi wrote:
usbip from /usr/src/kernel/drivers/staging/usbip
  
   I finally managed to make this comparison.  I did this by 
 taking my Poky/Yocto
   built system for a i.MX6 system (ARM Cortex-A9) and 
 replaced the rootfs with
   one for the Gumstix Overo (linaro).  The results were 
 nothing like yours, so
   it's a bit confusing.
  
   I actually built an entire Linux kernel - not just the 
 one directory you mentioned.
  
   Poky/Yocto - 37 minutes
   Linaro - 48 minutes
  
   There is some flex in these numbers as they were on 
 different [brand] SD cards, etc,
   but I sure did not see the 5 minutes for Linaro vs 24 
 hours on Yocto that you reported.
  
   Perhaps the only thing I did differently was I added the 
 SDK tools to my Yocto system
   using these meta-packages instead of the list you used.
 packagegroup-core-sdk 
 packagegroup-core-standalone-sdk-target
  
   You might try that to see if it makes any difference.
  
   n.b. part of what took me so long to get these results is 
 I was trying to run this test
   on something closer to your Overo board.  I have an older 
 OMAP DM3730 board here that I
   tried to do these same steps, but it was unstable and I 
 could not get the Linaro based
   file system to work at all.  Very strange.  In any case, 
 I think the comparison I did get
   with the i.MX6 is valid.
  
On Wed, Mar 12, 2014 at 11:44 AM, Gary Thomas 
 g...@mlbassoc.com 

Re: [yocto] Building on target

2014-03-18 Thread Rick Bianchi
I am re-baking the gumstix-console-image; once I have it up and running I
will enable verbose mode and check scripts at shutdown.


On Tue, Mar 18, 2014 at 11:43 AM, Gary Thomas g...@mlbassoc.com wrote:

 On 2014-03-18 12:30, Rick Bianchi wrote:
  I rebooted the system with the reboot command and then checked the
 date and time with date, it did not hold the system time and date
 correctly Sat Jan 1 02:28:44 UTC 2000.

 There seems to be something very wrong with your startup/shutdown scripts
 as both this problem and the networking issue are handled by those scripts.

 Did you try turning on the verbose mode?  If so, you should see a line like
 this during shutdown:
   INIT: [2014-03-18 17:33:20.978789236] Running /etc/rc6.d/S25save-rtc.sh
 stop...
 and another like these on reboot:
   INIT: [1970-01-01 00:00:05.079166199] Running /etc/rcS.d/S40networking
 start...
   INIT: [1970-01-01 00:00:05.103022145] Running /etc/rcS.d/S55bootmisc.sh
 start...

  On Tue, Mar 18, 2014 at 10:55 AM, Gary Thomas g...@mlbassoc.commailto:
 g...@mlbassoc.com wrote:
 
  On 2014-03-18 11:49, Rick Bianchi wrote:
   Should have noted, that the date and time reset on every reboot?
 
  Unless you have a battery backed up clock device, e.g. Dallas RTC,
  this will happen.  If you shut your Yocto system down properly, e.g.
  using '# reboot', it will keep track of when you shut down and then
  set the clock to that time when you reboot.  Without a true RTC,
 there's
  little else that it can do unless you run NTP and get the time from
 some
  external server.
 
   On Tue, Mar 18, 2014 at 10:48 AM, Rick Bianchi 
 bianchirickku...@gmail.com mailto:bianchirickku...@gmail.com mailto:
 bianchirickku...@gmail.com mailto:bianchirickku...@gmail.com wrote:
  
   Gary,
   I noticed during the make the it was complaining about the
 date being in the future; I checked and sure thing the date and time were
 bit off, about 14 years. I set it to the
   correct time  with date --set=18 MARCH 2014 10:32:00 and
 the build completed in under 10 mins.
  
  
   On Fri, Mar 14, 2014 at 3:16 PM, Gary Thomas 
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.commailto:
 g...@mlbassoc.com wrote:
  
   On 2014-03-14 08:49, Rick Bianchi wrote:
If I have time today I will try to reproduce your
 results. If not, I will get to it first thing next week and post my result.
  
   One thing I forgot to point out is I used the identical
 kernel+modules for
   both setups.  I would be interested to see if that makes
 any difference for
   you.  I can't fully test it as my board doesn't have a
 Linaro kernel.
  
   So there are four combinations - I only tried the first
 two:
 Yocto kernel + Yocto rootfs
 Yocto kernel + Linaro rootfs
 Linaro kernel + Yocto rootfs
 Linaro kernel + Linaro rootfs
  
On Fri, Mar 14, 2014 at 7:38 AM, Gary Thomas 
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.commailto:
 g...@mlbassoc.com mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com
  mailto:g...@mlbassoc.com mailto:g...@mlbassoc.com wrote:
   
On 2014-03-12 13:11, Rick Bianchi wrote:
 usbip from /usr/src/kernel/drivers/staging/usbip
   
I finally managed to make this comparison.  I did
 this by taking my Poky/Yocto
built system for a i.MX6 system (ARM Cortex-A9) and
 replaced the rootfs with
one for the Gumstix Overo (linaro).  The results
 were nothing like yours, so
it's a bit confusing.
   
I actually built an entire Linux kernel - not just
 the one directory you mentioned.
   
Poky/Yocto - 37 minutes
Linaro - 48 minutes
   
There is some flex in these numbers as they were on
 different [brand] SD cards, etc,
but I sure did not see the 5 minutes for Linaro vs
 24 hours on Yocto that you reported.
   
Perhaps the only thing I did differently was I added
 the SDK tools to my Yocto system
using these meta-packages instead of the list you
 used.
  packagegroup-core-sdk
 packagegroup-core-standalone-sdk-target
   
You might try that to see if it makes any difference.
   
n.b. part of what took me so long to get these
 results is I was trying to run this test
on something closer to your Overo board.  I have an
 older OMAP DM3730 board here that I
tried to do these same steps, but it was unstable
 and I could not get the Linaro based
   

[yocto] Issues after pulling master - Failed to fetch test data from the network

2014-03-18 Thread Andrei Gherzan
I started a new build after pulling in the sources from poky/master. Things
ended quickly with:

ERROR:  OE-core's config sanity checker detected a potential
misconfiguration.
Either fix the cause of this error or at your own risk disable the
checker (see sanity.conf).
Following is the list of potential problems / advisories:
Failed to fetch test data from the network. Please ensure your network
is configured correctly.
ERROR: Execution of event handler 'check_sanity_eventhandler' faile

By default (poky distro conf):
CONNECTIVITY_CHECK_URIS= https://eula-downloads.yoctoproject.org/index.php
http://bugzilla.yoctoproject.org/report.cgi;

It seams like the last guy above responds with 505:
# wget http://bugzilla.yoctoproject.org/report.cgi
--2014-03-18 21:13:11--  http://bugzilla.yoctoproject.org/report.cgi
Resolving bugzilla.yoctoproject.org (bugzilla.yoctoproject.org)...
140.211.169.56
Connecting to bugzilla.yoctoproject.org
(bugzilla.yoctoproject.org)|140.211.169.56|:80...
connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://bugzilla.yoctoproject.org/report.cgi [following]
--2014-03-18 21:13:11--  https://bugzilla.yoctoproject.org/report.cgi
Connecting to bugzilla.yoctoproject.org
(bugzilla.yoctoproject.org)|140.211.169.56|:443...
connected.
HTTP request sent, awaiting response... 502 Bad Gateway
2014-03-18 21:13:12 ERROR 502: Bad Gateway.


Is this a known issue?
-- 
*Andrei Gherzan*
m: +40.744.478.414 |  f: +40.31.816.28.12
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] [AUTOBUILDER 1/4] nightly.conf: added package image triggers

2014-03-18 Thread Lynn Cyrin
Added triggers for nightly-rpm, nightly-deb, nightly-ipk into nightly.conf

reference #3140

Signed-off-by: Lynn Cyrin firemagel...@gmail.com
---
 buildset-config.master/nightly.conf |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/buildset-config.master/nightly.conf 
b/buildset-config.master/nightly.conf
index 085c25f..0bd68e3 100644
--- a/buildset-config.master/nightly.conf
+++ b/buildset-config.master/nightly.conf
@@ -78,7 +78,8 @@ steps: [{'SetDest':{}},
'nightly-multilib': {}, 'nightly-x32': {}, 
'nightly-ppc': {}, 'nightly-ppc-lsb': {},
'nightly-x86-64': {}, 'nightly-x86-64-lsb': {},
-   'nightly-x86': {}, 'nightly-x86-lsb': {}},
+   'nightly-x86': {}, 'nightly-x86-lsb': {},
+   'nightly-rpm': {}, 'nightly-deb': {}, 
'nightly-ipk': {}},
'schedulerNames_nowait' : {'build-appliance': {},
'eclipse-plugin-kepler': {}, 'eclipse-plugin-juno': 
{},
'nightly-non-gpl3': {}, 'nightly-oecore': {},
-- 
1.7.9.5

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] [AUTOBUILDER 4/4] nightly-ipk.conf: created conf file

2014-03-18 Thread Lynn Cyrin
Created configuration file for a ipk package build image

Signed-off-by: Lynn Cyrin firemagel...@gmail.com
---
 buildset-config.master/nightly-ipk.conf |   19 +++
 1 file changed, 19 insertions(+)
 create mode 100644 buildset-config.master/nightly-ipk.conf

diff --git a/buildset-config.master/nightly-ipk.conf 
b/buildset-config.master/nightly-ipk.conf
new file mode 100644
index 000..bf7c613
--- /dev/null
+++ b/buildset-config.master/nightly-ipk.conf
@@ -0,0 +1,19 @@
+[nightly-ipk]
+builders: 'builder1'
+repos: [{'poky':
+{'repourl':'git://git.yoctoproject.org/poky',
+ 'layerversion':{'core':'meta', 'yoctobsp':'meta-yocto-bsp'},
+ 'branch':'master'}},
+{'meta-qt3':
+{'repourl':'git://git.yoctoproject.org/meta-qt3',
+ 'branch':'master'}}]
+steps: [{'SetDest':{}},
+{'CheckOutLayers': {}},
+{'RunPreamble': {}},
+{'GetDistroVersion' : {'distro': 'poky'}},
+{'CreateAutoConf': {'machine': 'qemux86', 'SDKMACHINE' : 'i686', 
'distro': 'poky', 'buildhistory' : True, 'packages': 'ipk'}},
+{'CreateBBLayersConf': {'buildprovider' : 'yocto'}},
+{'SyncPersistDB' : {'distro' : 'poky'}},
+{'BuildImages': {'images': 'core-image-sato core-image-sato-dev 
core-image-sato-sdk core-image-minimal core-image-minimal-dev'}},
+{'RunSanityTests': {'images': 'core-image-minimal core-image-sato 
core-image-sato-sdk'}},
+{'SyncPersistDB' : {'commit' : True, 'distro':'poky'}}]
-- 
1.7.9.5

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[linux-yocto] [PATCH 23/57] arm/axxia: Workaround for cross-cluster sev issue

2014-03-18 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

In revision 1.0 of the AXM55xx device, the events signals across cluster can
get lost if multiple CPUs signals an event roughly at the same point in time.
This may lead to spin-lock deadlock as other clusters may be sitting in a wfe
instruction waiting for a lock to become free.

The workaround is to disable the wfe instruction (effectively turning it into a
NOP) by setting ACTLR[7]=1.

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 arch/arm/mach-axxia/platsmp.c |   54 ++---
 1 file changed, 45 insertions(+), 9 deletions(-)

diff --git a/arch/arm/mach-axxia/platsmp.c b/arch/arm/mach-axxia/platsmp.c
index 1922122..75ce9b05 100644
--- a/arch/arm/mach-axxia/platsmp.c
+++ b/arch/arm/mach-axxia/platsmp.c
@@ -26,8 +26,38 @@
 
 extern void axxia_secondary_startup(void);
 
-#define APB2_SER3_PHY_ADDR0x00201003ULL
-#define APB2_SER3_ADDR_SIZE   0x1
+#define SYSCON_PHYS_ADDR 0x00201003ULL
+
+static int __cpuinitdata wfe_fixup = 0;
+
+/*
+ * Check if we need to enable cross-cluster SEV workaround for a bug in
+ * revision 1.0 silicon (which could cause event signals (from SEV instruction)
+ * to get lost between clusters). As a workaround, we set the bit 7 in CP15
+ * ACTLR (enable WFE as a no-operation) for each core.
+ */
+static void __init check_fixup_sev(void __iomem *syscon)
+{
+   u32 pfuse = readl(syscon + 0x34);
+   u32 chip_type = pfuse  0x1f;
+   u32 chip_ver  = (pfuse  5)  0x3f;
+
+   /* Set flag for secondary cores */
+   wfe_fixup = (chip_type == 0 || chip_type == 9)  (chip_ver == 0);
+   pr_info(axxia: Cross-cluster SEV fixup: %s\n, wfe_fixup ? yes:no);
+}
+
+static void __init do_fixup_sev(void)
+{
+   u32 tmp;
+
+   if (wfe_fixup) {
+   asm volatile(mrc\tp15, 0, %0, c1, c0, 1 : =r(tmp));
+   tmp |= (17);
+   asm volatile(mcr\tp15, 0, %0, c1, c0, 1 :: r(tmp));
+   isb();
+   }
+}
 
 /*
  * Write pen_release in a way that is guaranteed to be visible to all
@@ -46,6 +76,9 @@ static DEFINE_RAW_SPINLOCK(boot_lock);
 
 void __cpuinit axxia_secondary_init(unsigned int cpu)
 {
+   /* Fixup for cross-cluster SEV */
+   do_fixup_sev();
+
/*
 * If this isn't the first physical core in a secondary cluster
 * then run the standard GIC secondary init routine. Otherwise,
@@ -144,14 +177,17 @@ static __init struct device_node *get_cpu_node(int cpu)
 
 static void __init axxia_smp_prepare_cpus(unsigned int max_cpus)
 {
-   void __iomem *apb2_ser3_base;
+   void __iomem *syscon;
int cpu_count = 0;
int cpu;
 
-   apb2_ser3_base = ioremap(APB2_SER3_PHY_ADDR, APB2_SER3_ADDR_SIZE);
-   if (WARN_ON(!apb2_ser3_base))
+   syscon = ioremap(SYSCON_PHYS_ADDR, SZ_64K);
+   if (WARN_ON(!syscon))
return;
 
+   check_fixup_sev(syscon);
+   do_fixup_sev();
+
/*
 * Initialise the present map, which describes the set of CPUs actually
 * populated at the present time.
@@ -178,10 +214,10 @@ static void __init axxia_smp_prepare_cpus(unsigned int 
max_cpus)
if (!is_hyp_mode_available()) {
u32 phys_cpu = cpu_logical_map(cpu);
if (phys_cpu != 0) {
-   u32 tmp = readl(apb2_ser3_base + 0x1010);
-   writel(0xab, apb2_ser3_base+0x1000);
+   u32 tmp = readl(syscon + 0x1010);
+   writel(0xab, syscon + 0x1000);
tmp = ~(1  phys_cpu);
-   writel(tmp, apb2_ser3_base+0x1010);
+   writel(tmp, syscon + 0x1010);
}
}
 
@@ -203,7 +239,7 @@ static void __init axxia_smp_prepare_cpus(unsigned int 
max_cpus)
}
}
 
-   iounmap(apb2_ser3_base);
+   iounmap(syscon);
 }
 
 struct smp_operations axxia_smp_ops __initdata = {
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 13/57] LSI AXM55xx: Various performance and fixes for rapidio endpoint code.

2014-03-18 Thread Charlie Paul
From: Michael Bringmann michael.bringm...@lsi.com

Fix lockup issue processing inbound message descriptor chains.
Revise processing code for inbound/outbound message descriptor
chains to reduce overhead / improve performance.

Signed-off-by: Michael Bringmann michael.bringm...@lsi.com
---
 drivers/rapidio/devices/lsi/axxia-rio-irq.c |  132 ++-
 drivers/rapidio/devices/lsi/axxia-rio-irq.h |3 +-
 drivers/rapidio/devices/lsi/axxia-rio.c |2 +-
 drivers/rapidio/devices/lsi/axxia-rio.h |1 +
 drivers/rapidio/rio.c   |   10 +-
 5 files changed, 100 insertions(+), 48 deletions(-)

diff --git a/drivers/rapidio/devices/lsi/axxia-rio-irq.c 
b/drivers/rapidio/devices/lsi/axxia-rio-irq.c
index d32c1c2..b26ed60 100644
--- a/drivers/rapidio/devices/lsi/axxia-rio-irq.c
+++ b/drivers/rapidio/devices/lsi/axxia-rio-irq.c
@@ -1010,7 +1010,7 @@ static inline int choose_ob_dme(
if (len  sz)
continue;
 
-   if (dme-entries = (dme-entries_in_use+1)) {
+   if (dme-entries  (dme-entries_in_use+1)) {
(*ob_dme) = dme;
(*buf_sz) = sz;
return ret + i;
@@ -1114,7 +1114,8 @@ static struct rio_msg_dme *alloc_message_engine(struct 
rio_mport *mport,
me-entries_in_use = 0;
me-write_idx = 0;
me-read_idx = 0;
-   atomic_set(me-pending, 0);
+   me-last_invalid_desc = 0;
+   me-last_compl_idx = 0;
me-tx_dme_tmo = 0;
me-dme_no = dme_no;
 
@@ -1221,6 +1222,9 @@ static void ob_dme_irq_handler(struct rio_irq_handler *h, 
u32 state)
for (i = 0; i  mbox-entries; i++) {
struct rio_msg_desc *desc = mbox-desc[i];
 
+   if (mbox-last_compl_idx != desc-desc_no)
+   continue;
+
if (!priv-internalDesc) {
dw0 = *((u32 *)DESC_TABLE_W0_MEM(mbox, desc-desc_no));
} else {
@@ -1240,7 +1244,7 @@ static void ob_dme_irq_handler(struct rio_irq_handler *h, 
u32 state)
}
__ob_dme_dw_dbg(priv, dw0);
 
-   mbox-entries_in_use--;
+   mbox-last_compl_idx = (mbox-last_compl_idx + 1) % 
mbox-entries;
 
/**
* UP-call to net device handler
@@ -1472,7 +1476,6 @@ static void ib_dme_irq_handler(struct rio_irq_handler *h, 
u32 state)
u32 dw0;
int dme_no = 31 - CNTLZW(dme_mask);
int num_new;
-   int nPending;
dme_mask ^= (1  dme_no);
 
while (mb-me[letter]-dme_no != dme_no)
@@ -1512,7 +1515,7 @@ static void ib_dme_irq_handler(struct rio_irq_handler *h, 
u32 state)
 #endif
/**
 * Set Valid flag to 0 on each desc with a new message.
-* Flag is reset when the message beloning to the desc
+* Flag is reset when the message belonging to the desc
 * is fetched in get_inb_message().
 * HW descriptor update and fetch is in order.
 */
@@ -1531,6 +1534,7 @@ static void ib_dme_irq_handler(struct rio_irq_handler *h, 
u32 state)
if ((dw0  DME_DESC_DW0_READY_MASK) 
(dw0  DME_DESC_DW0_VALID)) {
 
+#ifdef OBSOLETE_BZ47185
/* Some chips clear this bit, some don't.
** Make sure in any event. */
if (!priv-internalDesc) {
@@ -1542,6 +1546,13 @@ static void ib_dme_irq_handler(struct rio_irq_handler 
*h, u32 state)
DESC_TABLE_W0(desc-desc_no),
dw0  ~DME_DESC_DW0_VALID);
}
+#endif /* OBSOLETE_BZ47185 */
+
+   if (mport-inb_msg[mbox_no].mcback)
+   mport-inb_msg[mbox_no].mcback(mport,
+   me-dev_id,
+   mbox_no,
+   desc-desc_no);
 
__ib_dme_dw_dbg(priv, dw0);
__ib_dme_event_dbg(priv, dme_no,
@@ -1549,7 +1560,6 @@ static void ib_dme_irq_handler(struct rio_irq_handler *h, 
u32 state)
me-write_idx = (me-write_idx + 1) %
 me-entries;
num_new++;
-   atomic_inc(me-pending);
if (num_new == me-entries)
break;
}
@@ -1563,16 +1573,7 @@ static void 

[linux-yocto] [PATCH 27/57] dma: lsi-dma32: DMA driver configuration update

2014-03-18 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

Updating DMA with extra memory

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 arch/arm/boot/dts/axm55xx.dts |6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/axm55xx.dts b/arch/arm/boot/dts/axm55xx.dts
index 230a305..fa5b4b5 100644
--- a/arch/arm/boot/dts/axm55xx.dts
+++ b/arch/arm/boot/dts/axm55xx.dts
@@ -229,7 +229,8 @@
 
gpdma@202014 {
compatible = lsi,dma32;
-   reg = 0x20 0x2014 0x00 0x1000;
+   reg = 0x20 0x2014 0x00 0x1000,
+ 0x20 0x10094000 0x00 0x1000;
interrupts = 0 60 4, /* busy */
 0 61 4; /* error */
 
@@ -244,7 +245,8 @@
 
gpdma@2020141000 {
compatible = lsi,dma32;
-   reg = 0x20 0x20141000 0x00 0x1000;
+   reg = 0x20 0x20141000 0x00 0x1000,
+ 0x20 0x10094000 0x00 0x1000;
interrupts = 0 64 4, /* busy */
 0 65 4; /* error */
 
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 19/57] LSI AXM55xx: Code syntax: Checkconfig updates to Rapidio bug fixes

2014-03-18 Thread Charlie Paul
---
 drivers/rapidio/devices/lsi/axxia-rio-sysfs.c |   16 +++-
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/rapidio/devices/lsi/axxia-rio-sysfs.c 
b/drivers/rapidio/devices/lsi/axxia-rio-sysfs.c
index db47761..88c66b6 100644
--- a/drivers/rapidio/devices/lsi/axxia-rio-sysfs.c
+++ b/drivers/rapidio/devices/lsi/axxia-rio-sysfs.c
@@ -29,7 +29,7 @@
 
 #ifdef CONFIG_AXXIA_RIO_STAT
 
-static const char *event_str[] = {
+static const char const *event_str[] = {
TX Port Packet dropped ,
TX Port Error threshold exceeded   ,
Tx Port Degraded threshold exceeded,
@@ -41,7 +41,7 @@ static const char *event_str[] = {
RIO_EVENT_NUM
 };
 
-static const char *state_str[] = {
+static const char const *state_str[] = {
TX Port stopped due to retry condition,
TX Port stopped due to transmission err,
RX Port stopped due to retry condition,
@@ -51,7 +51,7 @@ static const char *state_str[] = {
RIO_STATE_NUM
 };
 
-static const char *irq_str[] = {
+static const char const *irq_str[] = {
/* Axxia Error Events - really bad! */
Axxia Master Write timouts   ,
Axxia Master Read timouts,
@@ -131,7 +131,7 @@ static const char *irq_str[] = {
RIO_IRQ_NUM
 };
 
-static const char *ib_dme_str[] = {
+static const char const *ib_dme_str[] = {
Inbound Message descriptors push to net stack,
Inbound Message descriptors ok pop by net stack  ,
Inbound Message descriptors err pop by net stack ,
@@ -143,7 +143,7 @@ static const char *ib_dme_str[] = {
RIO_IB_DME_NUM
 };
 
-static const char *ob_dme_str[] = {
+static const char const *ob_dme_str[] = {
Outbound Message descriptors push by net stack   ,
Outbound Message descriptors net push when ring full ,
Outbound Message descriptors ack to net stack,
@@ -711,8 +711,7 @@ retry:
stat-desc_done++;
for (i = 0; i  sz; i++) {
if (buf[i] != (i  0xff)) {
-   pr_err(--- %s --- unexpected data %hhx 
-   returned in byte %d\n,
+   pr_err(--- %s --- unexpected data %hhx 
returned in byte %d\n,
__func__, buf[i], i);
break;
}
@@ -784,8 +783,7 @@ static ssize_t open_ib_dme(struct device *dev,
mbox,
bufs[i*bsz]);
if (rc) {
-   pr_err(--- %s --- add inbound buffer
-rc %d\n, __func__, rc);
+   pr_err(--- %s --- add inbound buffer 
rc %d\n, __func__, rc);
rio_release_inb_mbox(mport, mbox);
goto err;
}
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 22/57] LSI AXM55xx: Checkpatch update 'Move datastream apis'

2014-03-18 Thread Charlie Paul
The changes are code syntax updates pointed out by checkpatch.

Signed-off-by: Charlie Paul charlie.p...@windriver.com
---
 drivers/rapidio/devices/lsi/axxia-rio-ds.c |   92 ++--
 1 file changed, 46 insertions(+), 46 deletions(-)

diff --git a/drivers/rapidio/devices/lsi/axxia-rio-ds.c 
b/drivers/rapidio/devices/lsi/axxia-rio-ds.c
index becca47..57ae565 100755
--- a/drivers/rapidio/devices/lsi/axxia-rio-ds.c
+++ b/drivers/rapidio/devices/lsi/axxia-rio-ds.c
@@ -233,7 +233,7 @@ EXPORT_SYMBOL(axxia_data_stream_global_cfg);
  * Returns %0 on success
  /
 int axxia_open_ob_data_stream(
-   struct rio_mport*mport,
+   struct rio_mport*mport,
void*dev_id,
int dse_id,
int num_header_entries,
@@ -271,8 +271,8 @@ EXPORT_SYMBOL(axxia_open_ob_data_stream);
  * Returns %0 on success
  /
 int open_ob_data_stream(
-   struct rio_mport*mport,
-   void*dev_id,
+   struct rio_mport*mport,
+   void*dev_id,
int dse_id,
int num_header_entries,
int num_data_entries)
@@ -429,24 +429,24 @@ int open_ob_data_stream(
  * @mport: Pointer to the master port
  * @dest_id:   Destination ID of the data stream
  * @stream_id: Data stream ID
- * @cos:   Class of service of the stream
+ * @cos:   Class of service of the stream
  * @priority:  Priority of the data stream
  * @is_hdr_desc:   Indicate if the descriptor a header descriptor
  * or data descriptor
  * @buffer:Pointer to where the data is stored
- * @data_len:  Data buffer length associated with the descriptor
+ * @data_len:  Data buffer length associated with the descriptor
  *
  * Returns %0 on success
  /
 int axxia_add_ob_data_stream(
struct rio_mport*mport,
-   int dest_id,
-   int stream_id,
-   int cos,
+   int dest_id,
+   int stream_id,
+   int cos,
int priority,
int is_hdr_desc,
-   void*buffer,
-   int data_len)
+   void*buffer,
+   int data_len)
 {
struct rio_priv *priv = mport-priv;
struct axxia_rio_ds_priv  *ptr_ds_priv;
@@ -753,7 +753,7 @@ void ob_dse_irq_handler(struct rio_irq_handler *h, u32 
state)
  * Returns %0 on success
  /
 int axxia_close_ob_data_stream(
-   struct rio_mport*mport,
+   struct rio_mport*mport,
int dse_id)
 {
struct rio_priv   *priv = mport-priv;
@@ -831,7 +831,7 @@ EXPORT_SYMBOL(axxia_close_ob_data_stream);
  * larger than or equal to the expected PDU.
  *
  * @mport: Pointer to the master port
- * @source_id: Source ID of the data stream
+ * @source_id: Source ID of the data stream
  * @cos:   Class of service of the stream
  * @desc_dbuf_size: Data buffer size the descriptor can handle
  * @num_entries:   Number of descriptors in this descriptor chain
@@ -839,10 +839,10 @@ EXPORT_SYMBOL(axxia_close_ob_data_stream);
  * Returns %0 on success
  /
 int axxia_open_ib_data_stream(
-   struct rio_mport*mport,
+   struct rio_mport*mport,
void*dev_id,
int source_id,
-   int cos,
+   int cos,
int desc_dbuf_size,
int num_entries)
 {
@@ -870,7 +870,7 @@ EXPORT_SYMBOL(axxia_open_ib_data_stream);
  *  It is called by axxia_open_ib_data_stream( ).
  *
  * @mport: Pointer to the master port
- * @source_id: Source ID of the data stream
+ * @source_id: Source ID of the data stream
  * @cos:   Class of service of the stream
  * @desc_dbuf_size: Data buffer size the descriptor can handle
  * @num_entries:   Number of descriptors in this descriptor chain
@@ -878,10 +878,10 @@ EXPORT_SYMBOL(axxia_open_ib_data_stream);
  * Returns %0 on success
  /
 int open_ib_data_stream(
-   struct rio_mport*mport,
+   struct rio_mport*mport,
void  

[linux-yocto] [PATCH 21/57] LSI AXM55xx: Move datastream APIs and symbols to public header file.

2014-03-18 Thread Charlie Paul
From: Michael Bringmann michael.bringm...@lsi.com

Signed-off-by: Michael Bringmann michael.bringm...@lsi.com
---
 drivers/rapidio/devices/lsi/axxia-rio-ds.c |  548 +++-
 drivers/rapidio/devices/lsi/axxia-rio-ds.h |  327 +
 drivers/rapidio/devices/lsi/axxia-rio.c|8 +-
 drivers/rapidio/devices/lsi/axxia-rio.h|3 +-
 include/linux/rio-axxia.h  |  322 
 5 files changed, 637 insertions(+), 571 deletions(-)
 create mode 100644 include/linux/rio-axxia.h

diff --git a/drivers/rapidio/devices/lsi/axxia-rio-ds.c 
b/drivers/rapidio/devices/lsi/axxia-rio-ds.c
index e9825da..becca47 100755
--- a/drivers/rapidio/devices/lsi/axxia-rio-ds.c
+++ b/drivers/rapidio/devices/lsi/axxia-rio-ds.c
@@ -44,24 +44,23 @@
 /* #define ALLOC_BUF_BY_KERNEL 1 */
 
 static inline void __ib_virt_m_dbg(
-   struct rio_ds_ibds_vsid_m_stats *ptr_ib_stats,
+   struct axxia_rio_ds_ibds_vsid_m_stats *ptr_ib_stats,
u32 virt_m_stat);
 
 static inline void __ob_dse_dbg(
-   struct rio_ds_obds_dse_stats *ptr_ob_stats,
+   struct axxia_rio_ds_obds_dse_stats *ptr_ob_stats,
u32 dse_stat);
 
 static inline void __ob_dse_dw_dbg(
-   struct rio_ds_obds_dse_stats *ptr_ob_stats,
+   struct axxia_rio_ds_obds_dse_stats *ptr_ob_stats,
u32 dw0);
 
 static inline void __ib_dse_dw_dbg(
-   struct rio_ds_ibds_vsid_m_stats *ptr_ib_stats,
+   struct axxia_rio_ds_ibds_vsid_m_stats *ptr_ib_stats,
u32 dw0);
 
-
 static inline void __ib_virt_m_dbg(
-   struct rio_ds_ibds_vsid_m_stats *ptr_ib_stats,
+   struct axxia_rio_ds_ibds_vsid_m_stats *ptr_ib_stats,
u32 virt_m_stat)
 {
if (virt_m_stat  IB_VIRT_M_STAT_ERROR_MASK) {
@@ -92,7 +91,7 @@ static inline void __ib_virt_m_dbg(
 }
 
 static inline void __ob_dse_dbg(
-   struct rio_ds_obds_dse_stats *ptr_ob_stats,
+   struct axxia_rio_ds_obds_dse_stats *ptr_ob_stats,
u32 dse_stat)
 {
if (dse_stat  OB_DSE_STAT_ERROR_MASK) {
@@ -111,7 +110,7 @@ static inline void __ob_dse_dbg(
 }
 
 static inline void __ob_dse_dw_dbg(
-   struct rio_ds_obds_dse_stats *ptr_ob_stats,
+   struct axxia_rio_ds_obds_dse_stats *ptr_ob_stats,
u32 dw0)
 {
if (dw0  OB_DSE_DESC_ERROR_MASK) {
@@ -123,7 +122,7 @@ static inline void __ob_dse_dw_dbg(
 }
 
 static inline void __ib_dse_dw_dbg(
-   struct rio_ds_ibds_vsid_m_stats *ptr_ib_stats,
+   struct axxia_rio_ds_ibds_vsid_m_stats *ptr_ib_stats,
u32 dw0)
 {
if (dw0  IB_DSE_DESC_ERROR_MASK) {
@@ -154,16 +153,16 @@ static inline void __ib_dse_dw_dbg(
  * Returns %0 on success
  /
 int axxia_data_stream_global_cfg(
-   struct rio_mport*mport,
+   struct rio_mport   *mport,
int mtu,
int ibds_avsid_mapping)
 {
-   struct rio_priv *priv = mport-priv;
-   struct rio_ds_priv  *ptr_ds_priv = (priv-ds_priv_data);
-   struct ibds_virt_m_cfg  *ptr_virt_m_cfg;
-   struct rio_obds_dse_cfg *ptr_dse_cfg;
-   int reg_val;
-   u32 mtu_value = 0;
+   struct rio_priv*priv = mport-priv;
+   struct axxia_rio_ds_cfg *ptr_ds_cfg = (priv-ds_cfg_data);
+   struct axxia_ibds_virt_m_cfg  *ptr_virt_m_cfg;
+   struct axxia_rio_obds_dse_cfg *ptr_dse_cfg;
+   int reg_val;
+   u32 mtu_value = 0;
int i;
 
/* sanity check */
@@ -176,13 +175,13 @@ int axxia_data_stream_global_cfg(
**  IBDS ALIAS M is used.
*/
for (i = 0; i  RIO_MAX_NUM_IBDS_VSID_M; i++) {
-   ptr_virt_m_cfg = (ptr_ds_priv-ibds_vsid_m_cfg[i]);
+   ptr_virt_m_cfg = (ptr_ds_cfg-ibds_vsid_m_cfg[i]);
if (ptr_virt_m_cfg-in_use == RIO_DS_TRUE)
return -EINVAL;
}
 
for (i = 0; i  RIO_MAX_NUM_OBDS_DSE; i++) {
-   ptr_dse_cfg = (ptr_ds_priv-obds_dse_cfg[i]);
+   ptr_dse_cfg = (ptr_ds_cfg-obds_dse_cfg[i]);
if (ptr_dse_cfg-in_use == RIO_DS_TRUE)
return -EINVAL;
}
@@ -203,8 +202,8 @@ int axxia_data_stream_global_cfg(
__rio_local_write_config_32(mport, RAB_IBDS_VSID_ALIAS, reg_val);
 
/* save information in the system */
-   ptr_ds_priv-mtu = mtu;
-   ptr_ds_priv-ibds_avsid_mapping = ibds_avsid_mapping;
+   ptr_ds_cfg-mtu = mtu;
+   ptr_ds_cfg-ibds_avsid_mapping = ibds_avsid_mapping;
 
return 0;
 }
@@ -279,19 +278,20 @@ int open_ob_data_stream(
int num_data_entries)
 {
struct rio_priv *priv = mport-priv;
-   struct rio_ds_priv  *ptr_ds_priv = (priv-ds_priv_data);
-   struct rio_obds_dse_cfg *ptr_dse_cfg;
-   u32 temp;
-   void*ptr;
+   struct axxia_rio_ds_priv  *ptr_ds_priv = (priv-ds_priv_data);
+   

[linux-yocto] [PATCH 30/57] LSI FEMAC: Chechpatch updates to 'Ethernet Driver'

2014-03-18 Thread Charlie Paul
These changes were made to satisfy checkpatch output.

Signed-off-by: Charlie Paul charlie.p...@windriver.com
---
 drivers/net/ethernet/lsi/lsi_acp_net.c |5 ++---
 drivers/net/ethernet/lsi/lsi_acp_net.h |2 +-
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/lsi/lsi_acp_net.c 
b/drivers/net/ethernet/lsi/lsi_acp_net.c
index 80154ef..78b7e79 100644
--- a/drivers/net/ethernet/lsi/lsi_acp_net.c
+++ b/drivers/net/ethernet/lsi/lsi_acp_net.c
@@ -1757,9 +1757,8 @@ static int appnic_probe_config_dt(struct net_device *dev,
pdata-phy_link_speed = 0;
pdata-phy_link_duplex = 0;
} else {
-   pr_err(Invalid phy-link value \%s\ 
-  in DTS. Defaulting to \auto\.\n,
-  macspeed);
+   pr_err(Invalid phy-link value \%s\ in DTS. 
Defaulting to \auto\.\n,
+   macspeed);
pdata-phy_link_auto = 1;
}
} else {
diff --git a/drivers/net/ethernet/lsi/lsi_acp_net.h 
b/drivers/net/ethernet/lsi/lsi_acp_net.h
index 867a4f1..c1f4311 100644
--- a/drivers/net/ethernet/lsi/lsi_acp_net.h
+++ b/drivers/net/ethernet/lsi/lsi_acp_net.h
@@ -357,7 +357,7 @@ struct appnic_device {
do {\
(tx_configuration) = ~APPNIC_TX_CONF_IFG;  \
(tx_configuration) |= ((ifg  0x1f)  4);  \
-   } while (0);
+   } while (0)
 
 /* Transmit Time Value Configuration  */
 
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 26/57] Revert LSI AXM55XX: Disable use of wfe/sev in arch spinlock

2014-03-18 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

This reverts commit ae0c53fc61475c63150beb6cddf8ef343b3903e1.

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 arch/arm/include/asm/spinlock.h |6 --
 1 file changed, 6 deletions(-)

diff --git a/arch/arm/include/asm/spinlock.h b/arch/arm/include/asm/spinlock.h
index 0c01e62..dd64cc6 100644
--- a/arch/arm/include/asm/spinlock.h
+++ b/arch/arm/include/asm/spinlock.h
@@ -37,10 +37,6 @@
\
nop.w \
 )
-#elif defined(CONFIG_ARCH_AXXIA)
-/* Disable use of wfe/sev in Axxia. */
-#define SEV
-#define WFE(cond)
 #else
 #define SEVALT_SMP(sev, nop)
 #define WFE(cond)  ALT_SMP(wfe cond, nop)
@@ -92,9 +88,7 @@ static inline void arch_spin_lock(arch_spinlock_t *lock)
: cc);
 
while (lockval.tickets.next != lockval.tickets.owner) {
-#if !defined(CONFIG_ARCH_AXXIA)
wfe();
-#endif
lockval.tickets.owner = ACCESS_ONCE(lock-tickets.owner);
}
 
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 31/57] arm/axxia: improved robustness for DDR retention

2014-03-18 Thread Charlie Paul
From: Gary McGee gary.mc...@lsi.com

Signed-off-by: Gary McGee gary.mc...@lsi.com
---
 arch/arm/mach-axxia/Makefile|2 +-
 arch/arm/mach-axxia/ddr_retention.c |   96 --
 arch/arm/mach-axxia/ddr_shutdown.c  |  331 +++
 3 files changed, 365 insertions(+), 64 deletions(-)
 create mode 100644 arch/arm/mach-axxia/ddr_shutdown.c

diff --git a/arch/arm/mach-axxia/Makefile b/arch/arm/mach-axxia/Makefile
index 4d41b15..b4b8dd2 100644
--- a/arch/arm/mach-axxia/Makefile
+++ b/arch/arm/mach-axxia/Makefile
@@ -7,7 +7,7 @@ obj-y   += io.o
 obj-y  += ncr.o
 obj-y  += timers.o
 obj-y  += pci.o
-obj-y  += ddr_retention.o
+obj-y  += ddr_retention.o ddr_shutdown.o
 obj-$(CONFIG_I2C)  += i2c.o
 obj-$(CONFIG_SMP)  += platsmp.o headsmp.o
 obj-$(CONFIG_ARCH_AXXIA_GIC)   += axxia-gic.o
diff --git a/arch/arm/mach-axxia/ddr_retention.c 
b/arch/arm/mach-axxia/ddr_retention.c
index bcedf33..35dbfcb 100644
--- a/arch/arm/mach-axxia/ddr_retention.c
+++ b/arch/arm/mach-axxia/ddr_retention.c
@@ -36,7 +36,6 @@
 static void __iomem *nca;
 static void __iomem *apb;
 static void __iomem *dickens;
-static void __iomem *femac;
 static int ddr_retention_enabled;
 
 enum {
@@ -229,60 +228,33 @@ static inline void cpu_disable_l2_prefetch(void)
 }
 
 static inline void
-ncp_ddr_shutdown(unsigned long ctl_244)
+reset_elm_trace(void)
 {
-   unsigned long value;
-
-   cpu_disable_l2_prefetch();
-
-   /*
-* put SDRAM in self-refresh mode
-*/
-   ncr_write(NCP_REGION_ID(34, 0), 0x3d0, 4, ctl_244);
-   ncr_write(NCP_REGION_ID(15, 0), 0x3d0, 4, ctl_244);
-
-   /* check interrupt status for completion */
-   /* CDR1 - word offset 0x104 (byte offset 0x410) */
-   do {
-   ncr_read(NCP_REGION_ID(34, 0), 0x410, 4, value);
-   } while ((value  0x0200) == 0);
+   /* reset and disable ELM trace */
+   ncr_register_write(htonl(0x000fff04), (unsigned *) (apb + 0x68000));
+   ncr_register_write(htonl(0x000fff04), (unsigned *) (apb + 0x78000));
 
-   do {
-   ncr_read(NCP_REGION_ID(15, 0), 0x410, 4, value);
-   } while ((value  0x0200) == 0);
-
-   /*
-Indicate DDR Retention Reset
-*/
-
-   /* set bit 0 of persist_scratch */
-   writel_relaxed(0x0001, apb + 0x300dc);
+   /* reset ELM statistics */
+   ncr_register_write(htonl(0x1), (unsigned *) (apb + 0x60230));
+   ncr_register_write(htonl(0x1), (unsigned *) (apb + 0x70230));
 
-   /*
-* Issue Chip Reset
-*/
+   /* enable ELM trace */
+   ncr_register_write(htonl(0x000fff01), (unsigned *) (apb + 0x68000));
+   ncr_register_write(htonl(0x000fff01), (unsigned *) (apb + 0x78000));
+}
 
-   /* Intrnl Boot, 0x Target */
-   writel_relaxed(0x0040, apb + 0x31004);
-   /* Set ResetReadDone */
-   writel_relaxed(0x8000, apb + 0x3180c);
-   /* Chip Reset */
-   writel_relaxed(0x00080802, apb + 0x31008);
 
-   wfi();
-   while (1)
-   ;
-   __asm__ __volatile__(nop\n\t);
+extern void ncp_ddr_shutdown(void *, void *,  unsigned long );
 
-   return;
-}
 
 void
 initiate_retention_reset(void)
 {
unsigned long ctl_244 = 0;
unsigned long value;
-   unsigned cpu_id;
+   unsigned cpu_id ;
+   volatile long tmp;
+   volatile long *ptmp;
 
if (0 == ddr_retention_enabled) {
pr_info(DDR Retention Reset is Not Enabled\n);
@@ -292,19 +264,17 @@ initiate_retention_reset(void)
if (NULL == nca || NULL == apb || NULL == dickens)
BUG();
 
-   /* kill the femac */
-   writel(0x8000, (femac+0x2000));
-   value = readl(femac + 0x2000);
-
preempt_disable();
cpu_id = smp_processor_id();
-   udelay(1000);
+
/* send stop message to other CPUs */
local_irq_disable();
+   local_fiq_disable();
asm volatile (dsb : : : memory);
asm volatile (dmb : : : memory);
system_state = SYSTEM_RESTART;
smp_send_stop();
+   udelay(1000);
 
flush_cache_all();
flush_l3();
@@ -314,11 +284,6 @@ initiate_retention_reset(void)
quiesce_vp_engine(AXXIA_ENGINE_CNAL);
 
 
-   /* disable sysmem interrupts */
-   value = 0;
-   ncr_write(NCP_REGION_ID(34, 0), 0x414, 4, value);
-   ncr_write(NCP_REGION_ID(15, 0), 0x414, 4, value);
-
/* unlock reset register for later */
writel(0x00ab, apb + 0x31000); /* Access Key */
 
@@ -327,21 +292,27 @@ initiate_retention_reset(void)
ncr_read(NCP_REGION_ID(34, 0), 0x3d0, 4, ctl_244);
ctl_244 |= 0x000a;
 
-
-   /* put secondary CPUs into reset */
+   /* belts 

[linux-yocto] [PATCH 28/57] dma: lsi-dma32: Cleanup DMA driver

2014-03-18 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

Use the devm_* helpers to avoid messy error recovery and make use of the
virt-dma interface to avoid duplicated code.

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 drivers/dma/Kconfig |1 +
 drivers/dma/lsi-dma32.c |  527 ---
 drivers/dma/lsi-dma32.h |   41 ++--
 3 files changed, 200 insertions(+), 369 deletions(-)

diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index 2ad1215..03eb991 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -91,6 +91,7 @@ config AT_HDMAC
 config LSI_DMA
tristate LSI General Purpose DMA support
select DMA_ENGINE
+   select DMA_VIRTUAL_CHANNELS
select ASYNC_TX_ENABLE_CHANNEL_SWITCH
help
  Enable support for the LSI General Purpose DMA controller found
diff --git a/drivers/dma/lsi-dma32.c b/drivers/dma/lsi-dma32.c
index b16df68..0c679bf 100644
--- a/drivers/dma/lsi-dma32.c
+++ b/drivers/dma/lsi-dma32.c
@@ -23,10 +23,10 @@
 #include linux/stat.h
 #include linux/module.h
 #include linux/init.h
-#include linux/kref.h
 #include linux/mm.h
 #include linux/interrupt.h
 #include linux/slab.h
+#include linux/io.h
 #include linux/platform_device.h
 #include linux/of_platform.h
 #include linux/of_address.h
@@ -36,11 +36,9 @@
 #include asm/page.h
 #include linux/bitops.h
 #include linux/atomic.h
+#include virt-dma.h
 #include lsi-dma32.h
 
-#define rd32(_addr) readl((_addr))
-#define wr32(_value, _addr) writel((_value), (_addr))
-
 #ifdef DEBUG
 #define engine_dbg(engine, fmt, ...) \
do { \
@@ -54,7 +52,7 @@
struct gpdma_channel *_c = dmac; \
(void)_c; \
pr_debug(dma0ch%d: [%s]  fmt, \
-   dmac-channel, __func__, ##__VA_ARGS__); \
+   dmac-id, __func__, ##__VA_ARGS__); \
} while (0)
 #else
 #define engine_dbg(engine, fmt, ...) do {} while (0)
@@ -62,29 +60,26 @@
 #endif
 
 
-static dma_cookie_t gpdma_tx_submit(struct dma_async_tx_descriptor *txd);
-
-
 static void reset_channel(struct gpdma_channel *dmac)
 {
const int WAIT = 1024;
int i;
 
/* Pause channel */
-   wr32(DMA_STATUS_CH_PAUS_WR_EN | DMA_STATUS_CH_PAUSE,
+   writel(DMA_STATUS_CH_PAUS_WR_EN | DMA_STATUS_CH_PAUSE,
 dmac-base+DMA_STATUS);
wmb();
 
/* Disable channel */
-   wr32(0, dmac-base+DMA_CHANNEL_CONFIG);
-   for (i = 0; rd32(dmac-base+DMA_CHANNEL_CONFIG)  i  WAIT; i++)
+   writel(0, dmac-base+DMA_CHANNEL_CONFIG);
+   for (i = 0; readl(dmac-base+DMA_CHANNEL_CONFIG)  i  WAIT; i++)
cpu_relax();
if (i == WAIT)
ch_dbg(dmac, Failed to DISABLE channel\n);
 
/* Clear FIFO */
-   wr32(DMA_CONFIG_CLEAR_FIFO, dmac-base+DMA_CHANNEL_CONFIG);
-   for (i = 0; rd32(dmac-base+DMA_CHANNEL_CONFIG)  i  WAIT; i++)
+   writel(DMA_CONFIG_CLEAR_FIFO, dmac-base+DMA_CHANNEL_CONFIG);
+   for (i = 0; readl(dmac-base+DMA_CHANNEL_CONFIG)  i  WAIT; i++)
cpu_relax();
if (i == WAIT)
ch_dbg(dmac, Failed to clear FIFO\n);
@@ -100,7 +95,7 @@ static void soft_reset(struct gpdma_engine *engine)
reset_channel(engine-channel[i]);
 
/* Reset GPDMA by writing Magic Number to reset reg */
-   wr32(GPDMA_MAGIC, engine-gbase + SOFT_RESET);
+   writel(GPDMA_MAGIC, engine-gbase + SOFT_RESET);
wmb();
 
cfg = (engine-pool.phys  0xfff0) | GEN_CONFIG_EXT_MEM;
@@ -110,7 +105,7 @@ static void soft_reset(struct gpdma_engine *engine)
cfg |= GEN_CONFIG_INT_EDGE(i);
engine_dbg(engine, Using edge-triggered interrupts\n);
}
-   wr32(cfg, engine-gbase + GEN_CONFIG);
+   writel(cfg, engine-gbase + GEN_CONFIG);
engine_dbg(engine, engine-desc.phys  0xfff0 == %llx\n,
   (engine-pool.phys  0xfff0));
 
@@ -164,28 +159,30 @@ static struct gpdma_desc *get_descriptor(struct 
gpdma_engine *engine)
unsigned long flags;
struct gpdma_desc *desc = NULL;
 
-   raw_spin_lock_irqsave(engine-lock, flags);
+   spin_lock_irqsave(engine-lock, flags);
if (engine-pool.next  GPDMA_MAX_DESCRIPTORS)
desc = engine-pool.free[engine-pool.next++];
-   raw_spin_unlock_irqrestore(engine-lock, flags);
+   spin_unlock_irqrestore(engine-lock, flags);
+   desc-engine = engine;
 
return desc;
 }
 
-static void
-free_descriptor(struct gpdma_engine *engine, struct gpdma_desc *desc)
+static void free_descriptor(struct virt_dma_desc *vd)
 {
+   struct gpdma_desc *desc = to_gpdma_desc(vd);
+   struct gpdma_engine *engine = desc-engine;
unsigned long flags;
 
-   raw_spin_lock_irqsave(engine-lock, flags);
+   spin_lock_irqsave(engine-lock, flags);
BUG_ON(engine-pool.next == 0);
engine-pool.free[--engine-pool.next] = desc;
-   

[linux-yocto] [PATCH 32/57] arm/mach-axxia: Checkpatch update to 'improved robustness for DDR'

2014-03-18 Thread Charlie Paul
---
 arch/arm/mach-axxia/ddr_retention.c |6 +-
 arch/arm/mach-axxia/ddr_shutdown.c  |  271 ++-
 2 files changed, 139 insertions(+), 138 deletions(-)

diff --git a/arch/arm/mach-axxia/ddr_retention.c 
b/arch/arm/mach-axxia/ddr_retention.c
index 35dbfcb..7dab78f 100644
--- a/arch/arm/mach-axxia/ddr_retention.c
+++ b/arch/arm/mach-axxia/ddr_retention.c
@@ -244,7 +244,7 @@ reset_elm_trace(void)
 }
 
 
-extern void ncp_ddr_shutdown(void *, void *,  unsigned long );
+extern void ncp_ddr_shutdown(void *, void *,  unsigned long);
 
 
 void
@@ -252,7 +252,7 @@ initiate_retention_reset(void)
 {
unsigned long ctl_244 = 0;
unsigned long value;
-   unsigned cpu_id ;
+   unsigned cpu_id;
volatile long tmp;
volatile long *ptmp;
 
@@ -301,7 +301,7 @@ initiate_retention_reset(void)
ptmp = (long *) ncp_ddr_shutdown;
do {
tmp += *ptmp++;
-   } while (ptmp  (long*) (ncp_ddr_shutdown + 0x1000));
+   } while (ptmp  (long *) (ncp_ddr_shutdown + 0x1000));
 
asm volatile (isb : : : memory);
 
diff --git a/arch/arm/mach-axxia/ddr_shutdown.c 
b/arch/arm/mach-axxia/ddr_shutdown.c
index 6c6c3bb..33b889a 100644
--- a/arch/arm/mach-axxia/ddr_shutdown.c
+++ b/arch/arm/mach-axxia/ddr_shutdown.c
@@ -8,14 +8,14 @@
  * of the normal barrier.
  */
 #define pvt_ioread32be(p)   ({ unsigned int __v = be32_to_cpu((__force 
__be32)__raw_readl(p)); dsb(); __v; })
-#define pvt_iowrite32be(v,p) ({ dsb(); __raw_writel((__force 
__u32)cpu_to_be32(v), p); })
+#define pvt_iowrite32be(v, p) ({ dsb(); __raw_writel((__force 
__u32)cpu_to_be32(v), p); })
 
 #define pvt_ioread32(p)   ({ unsigned int __v = (__raw_readl(p)); dsb(); __v; 
})
-#define pvt_iowrite32(v,p) ({ dsb(); __raw_writel((__force __u32)(v), p); })
+#define pvt_iowrite32(v, p) ({ dsb(); __raw_writel((__force __u32)(v), p); })
 
 /* #define DDR_SHUTDOWN_DEBUG  */
 #ifdef DDR_SHUTDOWN_DEBUG
-#define dbg_write(v, p) pvt_iowrite32be(v,p)
+#define dbg_write(v, p) pvt_iowrite32be(v, p)
 #else
 #define dbg_write(v, p)
 #endif
@@ -179,7 +179,7 @@ void ncp_ddr_shutdown(void *nca, void *apb, unsigned long 
ctl_244)
pvt_iowrite32(0x0001, apb + 0x300dc);
 
dbg_write(0x0006, (unsigned *)(nca + 0x1200));
-  do_reset:
+do_reset:
/*
 * Issue Chip reset
 */
@@ -190,72 +190,73 @@ void ncp_ddr_shutdown(void *nca, void *apb, unsigned long 
ctl_244)
/* Chip Reset */
pvt_iowrite32(0x00080802, apb + 0x31008);
 
-   while(1);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ __volatile__( nop \n\t);
-   __asm__ 

[linux-yocto] [PATCH 38/57] arm/axxia: GPIO driver for SPI chip selects

2014-03-18 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

Add gpiochip driver for the 5 chip select signals provided by the SSP block.
This makes it possible to use the device tree for all SPI configuration,
instead of having it in the platform specific code.

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 arch/arm/mach-axxia/Makefile   |1 +
 arch/arm/mach-axxia/axxia.c|   62 ---
 arch/arm/mach-axxia/clock.c|2 +-
 arch/arm/mach-axxia/ssp-gpio.c |  132 
 4 files changed, 134 insertions(+), 63 deletions(-)
 create mode 100644 arch/arm/mach-axxia/ssp-gpio.c

diff --git a/arch/arm/mach-axxia/Makefile b/arch/arm/mach-axxia/Makefile
index b4b8dd2..ae75ac7 100644
--- a/arch/arm/mach-axxia/Makefile
+++ b/arch/arm/mach-axxia/Makefile
@@ -4,6 +4,7 @@
 obj-y  += axxia.o
 obj-y  += clock.o
 obj-y   += io.o
+obj-y   += ssp-gpio.o
 obj-y  += ncr.o
 obj-y  += timers.o
 obj-y  += pci.o
diff --git a/arch/arm/mach-axxia/axxia.c b/arch/arm/mach-axxia/axxia.c
index dcb6305..d73e11b 100644
--- a/arch/arm/mach-axxia/axxia.c
+++ b/arch/arm/mach-axxia/axxia.c
@@ -34,7 +34,6 @@
 #include linux/init.h
 #include linux/delay.h
 #include linux/smsc911x.h
-#include linux/spi/spi.h
 #include linux/clk-provider.h
 #include linux/clkdev.h
 #ifdef CONFIG_ARM_ARCH_TIMER
@@ -62,8 +61,6 @@ static const char *axxia_dt_match[] __initconst = {
NULL
 };
 
-static void __iomem *ssp_base;
-
 static struct map_desc axxia_static_mappings[] __initdata = {
 #ifdef CONFIG_DEBUG_LL
{
@@ -151,17 +148,9 @@ struct pl061_platform_data gpio1_plat_data = {
.values = 0 /* startup values */
 };
 
-static struct pl022_ssp_controller ssp_plat_data = {
-   .bus_id = 0,
-   .num_chipselect = 5,
-   .enable_dma = 0
-};
-
 static struct of_dev_auxdata axxia_auxdata_lookup[] __initdata = {
OF_DEV_AUXDATA(arm,primecell, 0x20101EULL,
   mmci,  mmc_plat_data),
-   OF_DEV_AUXDATA(arm,primecell, 0x2010088000ULL,
-  ssp,   ssp_plat_data),
OF_DEV_AUXDATA(arm,primecell, 0x2010092000ULL,
   gpio0, gpio0_plat_data),
OF_DEV_AUXDATA(arm,primecell, 0x2010093000ULL,
@@ -220,49 +209,6 @@ static struct platform_device pmu_device = {
.dev.platform_data  = axxia_pmu_platdata,
 };
 
-static inline void
-spidev_chip_select(u32 control, unsigned n)
-{
-   if (control == SSP_CHIP_SELECT)
-   writel(~(1n)  0x1F, ssp_base + 0x30);
-   else
-   writel(0x1F, ssp_base + 0x30);
-}
-
-static void spi_cs_eeprom0(u32 control) { spidev_chip_select(control, 0); }
-static void spi_cs_eeprom1(u32 control) { spidev_chip_select(control, 1); }
-
-struct pl022_config_chip spi_eeprom0 = {
-   .iface  = SSP_INTERFACE_MOTOROLA_SPI,
-   .com_mode   = POLLING_TRANSFER,
-   .cs_control = spi_cs_eeprom0
-};
-
-struct pl022_config_chip spi_eeprom1 = {
-   .iface  = SSP_INTERFACE_MOTOROLA_SPI,
-   .com_mode   = POLLING_TRANSFER,
-   .cs_control = spi_cs_eeprom1
-};
-
-static struct spi_board_info spi_devs[] __initdata = {
-   {
-   .modalias   = s25fl129p1,
-   .controller_data= spi_eeprom0,
-   .bus_num= 0,
-   .chip_select= 0,
-   .max_speed_hz   = 2500,
-   .mode   = SPI_MODE_0,
-   },
-   {
-   .modalias   = s25fl129p1,
-   .controller_data= spi_eeprom1,
-   .bus_num= 0,
-   .chip_select= 1,
-   .max_speed_hz   = 2500,
-   .mode   = SPI_MODE_0,
-   }
-};
-
 static int
 axxia_bus_notifier(struct notifier_block *nb, unsigned long event, void *obj)
 {
@@ -299,14 +245,6 @@ void __init axxia_dt_init(void)
ncr_init();
axxia_ddr_retention_init();
 
-   spi_register_board_info(spi_devs, ARRAY_SIZE(spi_devs));
-
-   /*
-* Setup PL022 to handle chip-select signal automatically
-*/
-   ssp_base = of_iomap(of_find_compatible_node(NULL, NULL, arm,pl022),
-   0);
-
axxia_pcie_init();
 
platform_device_register(pmu_device);
diff --git a/arch/arm/mach-axxia/clock.c b/arch/arm/mach-axxia/clock.c
index c8c28cf..6295795 100644
--- a/arch/arm/mach-axxia/clock.c
+++ b/arch/arm/mach-axxia/clock.c
@@ -88,7 +88,7 @@ axxia_init_clocks(int is_sim)
clk_register_clkdev(clk[clk_per], NULL, 2010083000.uart);
 
/* PL022 SSP */
-   clk_register_clkdev(clk[clk_per], NULL, ssp);
+   clk_register_clkdev(clk[clk_per], NULL, 

[linux-yocto] [PATCH 42/57] i2c-axxia: Use managed functions devm_*

2014-03-18 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

Use the devm_ functions for resource allocation to simplify error handling.

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 drivers/i2c/busses/i2c-axxia.c |   98 +++-
 1 file changed, 36 insertions(+), 62 deletions(-)

diff --git a/drivers/i2c/busses/i2c-axxia.c b/drivers/i2c/busses/i2c-axxia.c
index 8cc972d..c2b84a4 100644
--- a/drivers/i2c/busses/i2c-axxia.c
+++ b/drivers/i2c/busses/i2c-axxia.c
@@ -116,12 +116,8 @@ struct axxia_i2c_dev {
struct i2c_adapter adapter;
/* clock reference for i2c input clock */
struct clk *i2c_clk;
-   /* ioremapped registers cookie */
-   void __iomem *base;
/* pointer to register struct */
struct i2c_regs __iomem *regs;
-   /* irq number */
-   int irq;
/* xfer completion object */
struct completion msg_complete;
/* pointer to current message */
@@ -488,11 +484,11 @@ axxia_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg 
msgs[], int num)
 static u32
 axxia_i2c_func(struct i2c_adapter *adap)
 {
-   return I2C_FUNC_I2C |
+   u32 caps = (I2C_FUNC_I2C |
I2C_FUNC_10BIT_ADDR |
I2C_FUNC_SMBUS_EMUL |
-   I2C_FUNC_SMBUS_BLOCK_DATA;
-
+   I2C_FUNC_SMBUS_BLOCK_DATA);
+   return caps;
 }
 
 static const struct i2c_algorithm axxia_i2c_algo = {
@@ -505,49 +501,42 @@ axxia_i2c_probe(struct platform_device *pdev)
 {
struct device_node *np = pdev-dev.of_node;
struct axxia_i2c_dev *idev = NULL;
-   struct clk *i2c_clk = NULL;
-   void __iomem *base = NULL;
-   u32 bus = pdev-id;
-   int irq = 0;
+   struct resource *res;
+   void __iomem *base;
+   int irq;
int ret = 0;
 
-   base = of_iomap(np, 0);
-   if (!base) {
-   dev_err(pdev-dev, failed to iomap registers\n);
-   ret = -ENOMEM;
-   goto err_cleanup;
-   }
+   idev = devm_kzalloc(pdev-dev, sizeof(*idev), GFP_KERNEL);
+   if (!idev)
+   return -ENOMEM;
 
-   irq = irq_of_parse_and_map(np, 0);
-   if (irq == 0) {
-   dev_err(pdev-dev, no irq property\n);
-   ret = -EINVAL;
-   goto err_cleanup;
+   res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+   if (!res) {
+   dev_err(pdev-dev, can't get device io-resource\n);
+   return -ENOENT;
}
 
-   i2c_clk = clk_get(pdev-dev, i2c);
-   if (IS_ERR(i2c_clk)) {
-   dev_err(pdev-dev, missing bus clock);
-   ret = PTR_ERR(i2c_clk);
-   goto err_cleanup;
+   irq = platform_get_irq(pdev, 0);
+   if (irq  0) {
+   dev_err(pdev-dev, can't get irq number\n);
+   return -ENOENT;
}
 
-   idev = kzalloc(sizeof(struct axxia_i2c_dev), GFP_KERNEL);
-   if (!idev) {
-   ret = -ENOMEM;
-   goto err_cleanup;
+   base = devm_ioremap_resource(pdev-dev, res);
+   if (IS_ERR(base))
+   return PTR_ERR(base);
+
+   idev-i2c_clk = devm_clk_get(pdev-dev, i2c);
+   if (IS_ERR(idev-i2c_clk)) {
+   dev_err(pdev-dev, missing I2C bus clock);
+   return PTR_ERR(idev-i2c_clk);
}
 
-   idev-base = base;
-   idev-regs = (struct __iomem i2c_regs*) base;
-   idev-i2c_clk  = i2c_clk;
+   idev-regs = (struct i2c_regs __iomem *) base;
idev-dev  = pdev-dev;
init_completion(idev-msg_complete);
 
-   of_property_read_u32(np, bus, bus);
-
of_property_read_u32(np, clock-frequency, idev-bus_clk_rate);
-
if (idev-bus_clk_rate == 0)
idev-bus_clk_rate = 10; /* default clock rate */
 
@@ -556,48 +545,37 @@ axxia_i2c_probe(struct platform_device *pdev)
ret = axxia_i2c_init(idev);
if (ret) {
dev_err(pdev-dev, Failed to initialize i2c controller);
-   goto err_cleanup;
+   return ret;
}
 
-   ret = request_irq(irq, axxia_i2c_isr, 0, pdev-name, idev);
+   ret = devm_request_irq(pdev-dev, irq, axxia_i2c_isr, 0,
+   pdev-name, idev);
if (ret) {
-   dev_err(pdev-dev, Failed to request irq %i\n, idev-irq);
-   goto err_cleanup;
+   dev_err(pdev-dev, can't claim irq %d\n, irq);
+   return ret;
}
-   idev-irq = irq;
 
clk_enable(idev-i2c_clk);
 
i2c_set_adapdata(idev-adapter, idev);
+   strlcpy(idev-adapter.name, pdev-name, sizeof(idev-adapter.name));
idev-adapter.owner = THIS_MODULE;
idev-adapter.class = I2C_CLASS_HWMON;
-   snprintf(idev-adapter.name, sizeof(idev-adapter.name),
-Axxia I2C%u, bus);
idev-adapter.algo = axxia_i2c_algo;
idev-adapter.dev.parent = pdev-dev;
-   idev-adapter.nr = bus;

[linux-yocto] [PATCH 35/57] LSI AXM55xx: Axxia GIC driver improvements (3rd gen)

2014-03-18 Thread Charlie Paul
From: David Mercado david.merc...@windriver.com

Introduce the use of slow bus locking to allow use of Linux RPC
mechanism, remove unnecessary memory barriers, etc.

Signed-off-by: David Mercado david.merc...@windriver.com
---
 arch/arm/mach-axxia/axxia-gic.c | 1138 ---
 1 file changed, 577 insertions(+), 561 deletions(-)

diff --git a/arch/arm/mach-axxia/axxia-gic.c b/arch/arm/mach-axxia/axxia-gic.c
index 5aefa42..32c7525 100644
--- a/arch/arm/mach-axxia/axxia-gic.c
+++ b/arch/arm/mach-axxia/axxia-gic.c
@@ -3,7 +3,7 @@
  *
  *  Cloned from linux/arch/arm/common/gic.c
  *
- *  Copyright (C) 2002 ARM Limited, All Rights Reserved.
+ *  Copyright (C) 2013 LSI Corporation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -33,28 +33,16 @@
  * registers are banked per-cpu for these sources.
  */
 
-#include linux/init.h
-#include linux/kernel.h
-#include linux/err.h
 #include linux/module.h
-#include linux/list.h
-#include linux/smp.h
-#include linux/cpu_pm.h
-#include linux/cpumask.h
 #include linux/io.h
-#include linux/of.h
 #include linux/of_address.h
-#include linux/of_irq.h
+#include linux/cpu_pm.h
 #include linux/irqdomain.h
-#include linux/interrupt.h
-#include linux/percpu.h
-#include linux/slab.h
+#include linux/irqchip/arm-gic.h
 
-#include asm/irq.h
 #include asm/exception.h
 #include asm/smp_plat.h
 #include asm/mach/irq.h
-#include linux/irqchip/arm-gic.h
 
 #include mach/axxia-gic.h
 
@@ -87,13 +75,7 @@ enum axxia_ext_ipi_num {
MAX_AXM_IPI_NUM
 };
 
-/*
- * Some big arbritary number that won't ever conflict with
- * the IPI numbers defined in arch/arm/kernel/smp.c
- */
-#define AXXIA_RPC 0xff
-
-/* RPC Message types. */
+/* MUX Message types. */
 enum axxia_mux_msg_type {
MUX_MSG_CALL_FUNC = 0,
MUX_MSG_CALL_FUNC_SINGLE,
@@ -113,11 +95,6 @@ static void muxed_ipi_message_pass(const struct cpumask 
*mask,
struct axxia_mux_msg *info;
int cpu;
 
-   /*
-* Order previous accesses before accesses in the IPI handler.
-*/
-   dmb();
-
for_each_cpu(cpu, mask) {
info = per_cpu(ipi_mux_msg, cpu_logical_map(cpu));
info-msg |= 1  ipi_num;
@@ -129,8 +106,6 @@ static void axxia_ipi_demux(struct pt_regs *regs)
struct axxia_mux_msg *info = __get_cpu_var(ipi_mux_msg);
u32 all;
 
-   mb();
-
do {
all = xchg(info-msg, 0);
if (all  (1  MUX_MSG_CALL_FUNC))
@@ -153,19 +128,54 @@ struct gic_chip_data {
union gic_base dist_base;
union gic_base cpu_base;
 #ifdef CONFIG_CPU_PM
-   u32 saved_spi_enable[DIV_ROUND_UP(MAX_GIC_INTERRUPTS, 32)];
-   u32 saved_spi_conf[DIV_ROUND_UP(MAX_GIC_INTERRUPTS, 16)];
-   u32 saved_spi_target[DIV_ROUND_UP(MAX_GIC_INTERRUPTS, 4)];
-   u32 __percpu *saved_ppi_enable;
-   u32 __percpu *saved_ppi_conf;
+   u32 saved_spi_enable[DIV_ROUND_UP(MAX_GIC_INTERRUPTS, 32)]
+   [MAX_NUM_CLUSTERS];
+   u32 saved_spi_conf[DIV_ROUND_UP(MAX_GIC_INTERRUPTS, 16)]
+ [MAX_NUM_CLUSTERS];
+   u32 saved_spi_target[DIV_ROUND_UP(MAX_GIC_INTERRUPTS, 4)]
+   [MAX_NUM_CLUSTERS];
+   u32 __percpu *saved_ppi_enable[MAX_NUM_CLUSTERS];
+   u32 __percpu *saved_ppi_conf[MAX_NUM_CLUSTERS];
 #endif
struct irq_domain *domain;
unsigned int gic_irqs;
 };
 
+enum gic_rpc_func_mask {
+   IRQ_MASK = 0x01,
+   IRQ_UNMASK = 0x02,
+   SET_TYPE = 0x04,
+   SET_AFFINITY = 0x08,
+   CLR_AFFINITY = 0x10,
+   GIC_NOTIFIER = 0x20,
+   MAX_GIC_FUNC_MASK
+};
+
+
+#ifdef CONFIG_CPU_PM
+struct gic_notifier_data {
+   struct notifier_block *self;
+   unsigned long cmd;
+   void *v;
+};
+#endif
+
+struct gic_rpc_data {
+   struct irq_data *d;
+   u32 func_mask;
+   u32 cpu, oldcpu;
+   u32 type;
+   const struct cpumask *mask_val;
+#ifdef CONFIG_CPU_PM
+   struct gic_notifier_data gn_data;
+#endif
+};
+
 static DEFINE_RAW_SPINLOCK(irq_controller_lock);
+static DEFINE_MUTEX(irq_bus_lock);
 
-static struct gic_chip_data gic_data[MAX_NUM_CLUSTERS] __read_mostly;
+static struct gic_chip_data gic_data __read_mostly;
+static struct gic_rpc_data gic_rpc_data = {NULL, 0, 0, 0, 0, NULL};
 
 #define gic_data_dist_base(d)  ((d)-dist_base.common_base)
 #define gic_data_cpu_base(d)   ((d)-cpu_base.common_base)
@@ -188,88 +198,88 @@ static inline unsigned int gic_irq(struct irq_data *d)
return d-hwirq;
 }
 
-typedef void axxia_call_func_t(void *info);
-
-struct axxia_gic_rpc {
-   int cpu;
-   axxia_call_func_t *func;
-   void *info;
-};
-
-static DEFINE_PER_CPU_SHARED_ALIGNED(struct axxia_gic_rpc, axxia_gic_rpc);
-
-void axxia_gic_handle_gic_rpc(void)
-{
-   u32 this_cpu = cpu_logical_map(smp_processor_id());
-   int cpu;
-
-   

[linux-yocto] [PATCH 53/57] arch/powerpc: Clean up of Compatible Names in Axxia Device Trees

2014-03-18 Thread Charlie Paul
From: John Jacques john.jacq...@lsi.com

The base compatible type for Axxia (PowerPC) is not lsi,acp.

Signed-off-by: John Jacques john.jacq...@lsi.com
---
 arch/powerpc/platforms/44x/acpx1.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/platforms/44x/acpx1.c 
b/arch/powerpc/platforms/44x/acpx1.c
index b903787..934ea0a 100644
--- a/arch/powerpc/platforms/44x/acpx1.c
+++ b/arch/powerpc/platforms/44x/acpx1.c
@@ -253,7 +253,7 @@ static int __init acpx14xx_probe(void)
 {
unsigned long root = of_get_flat_dt_root();
 
-   if (!of_flat_dt_is_compatible(root, ibm,acpx1-4xx))
+   if (!of_flat_dt_is_compatible(root, lsi,acp))
return 0;
 
return 1;
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 37/57] arm/axxia: Configure changes to 'GPIO driver for SPI chip selects'

2014-03-18 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

This patch was split off as configuration changes to
support the GPIO driver changes.

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 arch/arm/boot/dts/axm5504-sim.dts  |4 
 arch/arm/boot/dts/axm5516-amarillo.dts |4 
 arch/arm/boot/dts/axm55xx.dtsi |6 ++
 3 files changed, 14 insertions(+)

diff --git a/arch/arm/boot/dts/axm5504-sim.dts 
b/arch/arm/boot/dts/axm5504-sim.dts
index 2dd964b..7580ae5 100644
--- a/arch/arm/boot/dts/axm5504-sim.dts
+++ b/arch/arm/boot/dts/axm5504-sim.dts
@@ -106,6 +106,10 @@
status = okay;
 };
 
+spics {
+   status = okay;
+};
+
 spi0 {
status = okay;
 };
diff --git a/arch/arm/boot/dts/axm5516-amarillo.dts 
b/arch/arm/boot/dts/axm5516-amarillo.dts
index 85c4ede..a802b52 100644
--- a/arch/arm/boot/dts/axm5516-amarillo.dts
+++ b/arch/arm/boot/dts/axm5516-amarillo.dts
@@ -78,6 +78,10 @@
status = okay;
 };
 
+spics {
+   status = okay;
+};
+
 spi0 {
status = okay;
 
diff --git a/arch/arm/boot/dts/axm55xx.dtsi b/arch/arm/boot/dts/axm55xx.dtsi
index fc81a75..f774531 100644
--- a/arch/arm/boot/dts/axm55xx.dtsi
+++ b/arch/arm/boot/dts/axm55xx.dtsi
@@ -370,6 +370,12 @@
#size-cells = 0;
reg = 0x20 0x10088000 0x00 0x1000;
interrupts = 0 42 4;
+   num-cs = 5;
+   cs-gpios = spics 0 1,
+  spics 1 1,
+  spics 2 1,
+  spics 3 1,
+  spics 4 1;
status = disabled;
};
};
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 51/57] LSI powerpc/sysdev: Removing the power of 2 size restriction

2014-03-18 Thread Charlie Paul
From: SangeethaRao sangeetha@lsi.com

Removed the power of 2 size restriction for PCIe inbound
mapping in LSI PCIe driver

Signed-off-by: SangeethaRao sangeetha@lsi.com
---
 arch/powerpc/sysdev/lsi_pci.c |5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/sysdev/lsi_pci.c b/arch/powerpc/sysdev/lsi_pci.c
index ca1506d..e9beadc 100644
--- a/arch/powerpc/sysdev/lsi_pci.c
+++ b/arch/powerpc/sysdev/lsi_pci.c
@@ -152,9 +152,8 @@ static int __init acp_parse_dma_ranges(struct 
pci_controller *hose,
return -ENXIO;
}
 
-   /* Check we are a power of 2 size and that base is a multiple of size*/
-   if ((size  (size - 1)) != 0  ||
-   (res-start  (size - 1)) != 0) {
+   /* Check that base is a multiple of size*/
+   if ((res-start  (size - 1)) != 0) {
pr_err(%s: dma-ranges unaligned\n,
   hose-dn-full_name);
return -ENXIO;
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 52/57] arch/powerpc: Update the Axxia Device Tree Files

2014-03-18 Thread Charlie Paul
From: John Jacques john.jacq...@lsi.com

A new system, 3500, was added which required some changes
to the device trees.

Signed-off-by: John Jacques john.jacq...@lsi.com
---
 arch/powerpc/boot/dts/acp25xx.dts |  391 ++---
 arch/powerpc/boot/dts/acp342x.dts |  349 +
 arch/powerpc/boot/dts/acp344x.dts |  164 +++-
 arch/powerpc/boot/dts/acp35xx.dts |   99 ++
 4 files changed, 540 insertions(+), 463 deletions(-)

diff --git a/arch/powerpc/boot/dts/acp25xx.dts 
b/arch/powerpc/boot/dts/acp25xx.dts
index 9893cf9..ad9dfe8 100644
--- a/arch/powerpc/boot/dts/acp25xx.dts
+++ b/arch/powerpc/boot/dts/acp25xx.dts
@@ -1,10 +1,10 @@
 /*
- * Device Tree Source for IBM Embedded PPC 476 Platform
+ * Device Tree Source for LSI ACP25xx.
  *
- * Copyright 2009 Torez Smith, IBM Corporation.
+ * Copyright 2013, LSI Corporation
  *
  * Based on earlier code:
- * Copyright (c) 2006, 2007 IBM Corp.
+ * Copyright (c) 2009, 2006, 2007 IBM Corp.
  * Josh Boyer jwbo...@linux.vnet.ibm.com, David Gibson d...@au1.ibm.com
  *
  * This file is licensed under the terms of the GNU General Public
@@ -17,164 +17,198 @@
 /memreserve/ 0x 0x0040;
 
 / {
-#address-cells = 2;
-#size-cells = 1;
-model = ibm,acpx1-4xx;
-compatible = ibm,acpx1-4xx,ibm,47x-AMP;
-dcr-parent = {/cpus/cpu@0};
+   #address-cells = 2;
+   #size-cells = 1;
+   model = ibm,acpx1-4xx;
+   compatible = ibm,acpx1-4xx,ibm,47x-AMP;
+   dcr-parent = {/cpus/cpu@0};
 
-aliases {
-serial0 = UART0;
-serial1 = UART1;
-rapidio0 = rio0;
+   aliases {
+   serial0   = UART0;
+   serial1   = UART1;
ethernet0 = FEMAC;
-};
+   rapidio0  = SRIO0;
+   };
 
-cpus {
-#address-cells = 1;
-#size-cells = 0;
+   cpus {
+   #address-cells = 1;
+   #size-cells = 0;
 
-cpu@0 {
-device_type = cpu;
-model = PowerPC,4xx; // real CPU changed in sim
-reg = 0;
-clock-frequency = 0x5f5e1000;
-timebase-frequency = 0x5f5e1000;
-i-cache-line-size = 32;
-d-cache-line-size = 32;
-i-cache-size = 32768;
-d-cache-size = 32768;
-dcr-controller;
-dcr-access-method = native;
-status = ok;
-reset-type = 3; // 1=core, 2=chip, 3=system (default)
-};
-};
+   cpu@0 {
+   device_type = cpu;
+   model = PowerPC,4xx; // real CPU changed in sim
+   reg = 0;
+   clock-frequency = 0; // filled in by U-Boot
+   timebase-frequency = 0; // filled in by U-Boot
+   i-cache-line-size = 32;
+   d-cache-line-size = 32;
+   i-cache-size = 32768;
+   d-cache-size = 32768;
+   dcr-controller;
+   dcr-access-method = native;
+   status = ok;
+   reset-type = 3; // 1=core, 2=chip, 3=system (default)
+   };
+
+   cpu@1 {
+   device_type = cpu;
+   model = PowerPC,4xx; // real CPU changed in sim
+   reg = 1;
+   clock-frequency = 0; // filled in by U-Boot
+   timebase-frequency = 0; // filled in by U-Boot
+   i-cache-line-size = 32;
+   d-cache-line-size = 32;
+   i-cache-size = 32768;
+   d-cache-size = 32768;
+   dcr-controller;
+   dcr-access-method = native;
+   status = disabled;
+   enable-method = spin-table;
+   cpu-release-addr = 0 0; // Fixed by the boot loader
+   reset-type = 3; // 1=core, 2=chip, 3=system (default)
+   };
+   };
 
 memory@0 {
 device_type = memory;
-reg = 0x 0x 0x8000; // filled in by 
U-Boot
+reg = 0x 0x 0x; // filled in by 
U-Boot
 };
 
 memory@8000 {
 device_type = memory;
-reg = 0x 0x8000 0x8000; // filled in by 
U-Boot
+reg = 0x 0x 0x; // filled in by 
U-Boot
 };
 
-MPIC: interrupt-controller {
-compatible = chrp,open-pic;
-interrupt-controller;
-

[linux-yocto] [PATCH 45/57] arm/mm: Backport of 3159f372354e8e1f5dee714663d70

2014-03-18 Thread Charlie Paul
From: Jonas Svennebring jonas.svennebr...@lsi.com

ARM: 7840/1: LPAE: don't reject mapping /dev/mem above 4GB

With LPAE enabled, physical address space is larger than 4GB. Allow mapping any
part of it via /dev/mem by using PHYS_MASK to determine valid range.

PHYS_MASK covers 40 bits with LPAE enabled and 32 bits otherwise.

Signed-off-by: Jonas Svennebring jonas.svennebr...@lsi.com
---
 arch/arm/mm/mmap.c |8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
index f0ef2f7..2db5d2d 100644
--- a/arch/arm/mm/mmap.c
+++ b/arch/arm/mm/mmap.c
@@ -146,7 +146,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const 
unsigned long addr0,
 
info.flags = VM_UNMAPPED_AREA_TOPDOWN;
info.length = len;
-   info.low_limit = FIRST_USER_ADDRESS;
+   info.low_limit = PAGE_SIZE;
info.high_limit = mm-mmap_base;
info.align_mask = do_align ? (PAGE_MASK  (SHMLBA - 1)) : 0;
info.align_offset = pgoff  PAGE_SHIFT;
@@ -204,13 +204,11 @@ int valid_phys_addr_range(phys_addr_t addr, size_t size)
 }
 
 /*
- * We don't use supersection mappings for mmap() on /dev/mem, which
- * means that we can't map the memory area above the 4G barrier into
- * userspace.
+ * Do not allow /dev/mem mappings beyond the supported physical range.
  */
 int valid_mmap_phys_addr_range(unsigned long pfn, size_t size)
 {
-   return !(pfn + (size  PAGE_SHIFT)  0x0010);
+   return (pfn + (size  PAGE_SHIFT)) = (1 + (PHYS_MASK  PAGE_SHIFT));
 }
 
 #ifdef CONFIG_STRICT_DEVMEM
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 49/57] arch/arm/mach-axxia: Work-Around for Event Problems in v1.0 Silicon

2014-03-18 Thread Charlie Paul
From: John Jacques john.jacq...@lsi.com

SEV/WFE are unusable in v1.0 silicon.  The boot loader now sets bit 7
in the ACLTR register of each core, making wfe a nop.  At present,
bit 7 of the ACTLR does not work in simulation and emulaton.  Until
that is corrected, this work-around is necessary.

Signed-off-by: John Jacques john.jacq...@lsi.com
---
 arch/arm/include/asm/spinlock.h |5 
 arch/arm/mach-axxia/Makefile|5 ++--
 arch/arm/mach-axxia/ev.c|   55 +++
 3 files changed, 63 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/mach-axxia/ev.c

diff --git a/arch/arm/include/asm/spinlock.h b/arch/arm/include/asm/spinlock.h
index dd64cc6..6194795 100644
--- a/arch/arm/include/asm/spinlock.h
+++ b/arch/arm/include/asm/spinlock.h
@@ -88,7 +88,12 @@ static inline void arch_spin_lock(arch_spinlock_t *lock)
: cc);
 
while (lockval.tickets.next != lockval.tickets.owner) {
+#ifdef CONFIG_ARCH_AXXIA
+   extern void __axxia_arch_wfe(void);
+   __axxia_arch_wfe();
+#else
wfe();
+#endif
lockval.tickets.owner = ACCESS_ONCE(lock-tickets.owner);
}
 
diff --git a/arch/arm/mach-axxia/Makefile b/arch/arm/mach-axxia/Makefile
index ae75ac7..33f1309 100644
--- a/arch/arm/mach-axxia/Makefile
+++ b/arch/arm/mach-axxia/Makefile
@@ -3,8 +3,9 @@
 #
 obj-y  += axxia.o
 obj-y  += clock.o
-obj-y   += io.o
-obj-y   += ssp-gpio.o
+obj-y  += ev.o
+obj-y  += io.o
+obj-y  += ssp-gpio.o
 obj-y  += ncr.o
 obj-y  += timers.o
 obj-y  += pci.o
diff --git a/arch/arm/mach-axxia/ev.c b/arch/arm/mach-axxia/ev.c
new file mode 100644
index 000..1647bbe
--- /dev/null
+++ b/arch/arm/mach-axxia/ev.c
@@ -0,0 +1,55 @@
+/*
+ * arch/arm/mach-axxia/ev.c
+ *
+ * Support for the LSI Axxia boards based on ARM cores.
+ *
+ * Copyright (C) 2012 LSI
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include linux/module.h
+#include linux/types.h
+#include linux/of.h
+#include linux/of_fdt.h
+#include asm/page.h
+#include asm/io.h
+
+static int initialized = 0;
+static int wfe_available;
+
+inline void
+__axxia_arch_wfe(void)
+{
+   if (0 == initialized) {
+   if (of_find_compatible_node(NULL, NULL,
+   lsi,axm5516-sim) != NULL ||
+   of_find_compatible_node(NULL, NULL,
+   lsi,axm5516-emu) != NULL)
+   wfe_available = 0;
+   else
+   wfe_available = 1;
+
+   initialized = 1;
+   }
+
+   if (0 != wfe_available) {
+   wfe();
+   }
+
+   return;
+}
+
+EXPORT_SYMBOL(__axxia_arch_wfe);
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 40/57] spi: Checkpatch changes to 'Revert to mainline spi-pl022'

2014-03-18 Thread Charlie Paul
Code syntax changes as reported by checkpatch

Signed-off-by: Charlie Paul charlie.p...@windriver.com
---
 drivers/spi/spi-acp.c   |7 ++-
 drivers/spi/spi-pl022.c |   15 ++-
 2 files changed, 8 insertions(+), 14 deletions(-)

diff --git a/drivers/spi/spi-acp.c b/drivers/spi/spi-acp.c
index 7b56d98..db17db2 100644
--- a/drivers/spi/spi-acp.c
+++ b/drivers/spi/spi-acp.c
@@ -1245,9 +1245,7 @@ static irqreturn_t pl022_interrupt_handler(int irq, void 
*dev_id)
   SSP_IMSC(pl022-virtbase));
writew(CLEAR_ALL_INTERRUPTS, SSP_ICR(pl022-virtbase));
if (unlikely(pl022-rx  pl022-rx_end)) {
-   dev_warn(pl022-dev-dev, read %u surplus 
-bytes (did you request an odd 
-number of bytes on a 16bit bus?)\n,
+   dev_warn(pl022-dev-dev, read %u surplus bytes (did 
you request an odd number of bytes on a 16bit bus?)\n,
 (u32) (pl022-rx - pl022-rx_end));
}
/* Update total bytes transferred */
@@ -2365,8 +2363,7 @@ static void register_spi_device(struct pl022 *pl022)
/* Device speed */
prop = of_get_property(nc, spi-max-frequency, len);
if (!prop || len  sizeof(*prop)) {
-   dev_err(master-dev, %s has no 'spi-max-frequency'
-property\n,
+   dev_err(master-dev, %s has no 'spi-max-frequency' 
property\n,
nc-full_name);
spi_dev_put(spi);
continue;
diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c
index 74d03b1..36a33f6 100644
--- a/drivers/spi/spi-pl022.c
+++ b/drivers/spi/spi-pl022.c
@@ -50,15 +50,14 @@
  * val shifted sb steps to the left.
  */
 #define SSP_WRITE_BITS(reg, val, mask, sb) \
- ((reg) = (((reg)  ~(mask)) | (((val)(sb))  (mask
+   ((reg) = (((reg)  ~(mask)) | (((val)(sb))  (mask
 
 /*
  * This macro is also used to define some default values.
  * It will just shift val by sb steps to the left and mask
  * the result with mask.
  */
-#define GEN_MASK_BITS(val, mask, sb) \
- (((val)(sb))  (mask))
+#define GEN_MASK_BITS(val, mask, sb) (((val)(sb))  (mask))
 
 #define DRIVE_TX   0
 #define DO_NOT_DRIVE_TX1
@@ -1297,9 +1296,7 @@ static irqreturn_t pl022_interrupt_handler(int irq, void 
*dev_id)
   SSP_IMSC(pl022-virtbase));
writew(CLEAR_ALL_INTERRUPTS, SSP_ICR(pl022-virtbase));
if (unlikely(pl022-rx  pl022-rx_end)) {
-   dev_warn(pl022-adev-dev, read %u surplus 
-bytes (did you request an odd 
-number of bytes on a 16bit bus?)\n,
+   dev_warn(pl022-adev-dev, read %u surplus bytes (did 
you request an odd number of bytes on a 16bit bus?)\n,
 (u32) (pl022-rx - pl022-rx_end));
}
/* Update total bytes transferred */
@@ -1773,7 +1770,7 @@ static int calculate_effective_freq(struct pl022 *pl022, 
int freq, struct
scr = SCR_MIN;
}
 
-   WARN(!best_freq, pl022: Matching cpsdvsr and scr not found for %d Hz 
rate \n,
+   WARN(!best_freq, pl022: Matching cpsdvsr and scr not found for %d Hz 
rate\n,
freq);
 
clk_freq-cpsdvsr = (u8) (best_cpsdvsr  0xFF);
@@ -,8 +2219,8 @@ static int pl022_probe(struct amba_device *adev, const 
struct amba_id *id)
status = -ENOMEM;
goto err_no_ioremap;
}
-   printk(KERN_INFO pl022: mapped registers from 0x%08x to %p\n,
-  adev-res.start, pl022-virtbase);
+   pr_info(pl022: mapped registers from 0x%08x to %p\n,
+   adev-res.start, pl022-virtbase);
 
pl022-clk = devm_clk_get(adev-dev, NULL);
if (IS_ERR(pl022-clk)) {
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 54/57] LSI drivers/tty: Axxia Serial Driver Update

2014-03-18 Thread Charlie Paul
From: John Jacques john.jacq...@lsi.com

Updated to work with the 3500 variant.

Signed-off-by: John Jacques john.jacq...@lsi.com
---
 drivers/tty/serial/lsi_acp_serial.c |   99 ---
 1 file changed, 56 insertions(+), 43 deletions(-)

diff --git a/drivers/tty/serial/lsi_acp_serial.c 
b/drivers/tty/serial/lsi_acp_serial.c
index f9676ca..aa92920 100644
--- a/drivers/tty/serial/lsi_acp_serial.c
+++ b/drivers/tty/serial/lsi_acp_serial.c
@@ -81,9 +81,8 @@ struct uart_acp_port {
unsigned int interrupt_mask;
unsigned int old_status;
void *timer_base;
-   unsigned long divisor;
-   unsigned char ibrd;
-   unsigned char fbrd;
+   unsigned short ibrd;
+   unsigned short fbrd;
 };
 
 /*
@@ -119,25 +118,10 @@ struct uart_acp_port {
 static int
 get_clock_stuff(struct uart_acp_port *port, int baud_rate)
 {
-   unsigned long divisor;
unsigned long ibrd;
unsigned long fbrd;
 
-   /*
- Since the IBDR (integer part of the baud rate
- divisor) is a 16 bit quatity, find the minimum load
- value that will let the IBDR/FBDR result in the
- desired baud rate.
-   */
-
-   if (100  per_clock) {
-   divisor = per_clock / 2500;
-   ibrd = 2500 / (16 * baud_rate);
-   } else {
-   /* Emulation is much slower... */
-   divisor = per_clock / 325;
-   ibrd = 325 / (16 * baud_rate);
-   }
+   ibrd = per_clock / (16 * baud_rate);
 
/*
 * The following formula is from the ARM document (ARM DDI 0183E).
@@ -164,36 +148,15 @@ get_clock_stuff(struct uart_acp_port *port, int baud_rate)
 * 2 * (16 * baud_rate)
 */
 
-   port-port.uartclk = (per_clock / divisor);
+   port-port.uartclk = per_clock;
 
fbrd = port-port.uartclk % (16 * baud_rate);
fbrd *= 128;
fbrd += (16 * baud_rate);
fbrd /= (2 * (16 * baud_rate));
 
-   port-divisor = (divisor - 1);
-   port-ibrd = (unsigned char) ibrd;
-   port-fbrd = (unsigned char) fbrd;
-
-   if (port-divisor != in_le32(port-timer_base + TIMER_LOAD)) {
-   while (0 ==
-  (in_le32((const volatile unsigned *)
-   (port-port.membase + UART01x_FR)) 
-   UART011_FR_TXFE))
-   ;
-
-   while (0 !=
-  (in_le32((const volatile unsigned *)
-   (port-port.membase + UART01x_FR)) 
-   UART01x_FR_BUSY))
-   ;
-
-   out_le32((port-timer_base + TIMER_CONTROL), 0);
-   out_le32((port-timer_base + TIMER_LOAD), port-divisor);
-   out_le32((port-timer_base + TIMER_CONTROL),
-(TIMER_CONTROL_ENABLE |
- TIMER_CONTROL_MODE));
-   }
+   port-ibrd = (unsigned short) ibrd;
+   port-fbrd = (unsigned short) fbrd;
 
return 0;
 }
@@ -766,8 +729,13 @@ acp_serial_set_termios(struct uart_port *port, struct 
ktermios *termios,
out_le32((u32 *)(uap-port.membase + UART011_CR), 0);
 
/* Set baud rate */
+#if 1
out_le32((u32 *)(uap-port.membase + UART011_FBRD), uap-fbrd);
out_le32((u32 *)(uap-port.membase + UART011_IBRD), uap-ibrd);
+#else
+   out_le32((u32 *)(uap-port.membase + UART011_FBRD), 0x13);
+   out_le32((u32 *)(uap-port.membase + UART011_IBRD), 0x598);
+#endif
 
/*
 * --v--v--v--v-
@@ -1134,6 +1102,51 @@ acp_serial_add_ports(struct uart_driver *driver)
ret = -ENOMEM;
}
 
+   np = of_find_compatible_node(NULL, NULL, lsi,acp3500);
+
+   if (NULL == np) {
+   unsigned long divisor;
+
+   /*
+ In the 3500 case, the peripheral clock is connected
+ directly to the UART.  If this isn't 3500, set up
+ the second timer (which is in between the peripheral
+ clock and the UART) and adjust per_clock
+ accordingly.
+   */
+
+   if (100  per_clock) {
+   divisor = per_clock / 2500;
+   per_clock = 2500;
+   } else {
+   /* Emulation is much slower... */
+   divisor = per_clock / 325;
+   per_clock = 325;
+   }
+
+   --divisor;
+
+   if (divisor != in_le32(uap-timer_base + TIMER_LOAD)) {
+   while (0 ==
+  (in_le32((const volatile unsigned *)
+   (uap-port.membase + UART01x_FR)) 
+   UART011_FR_TXFE))
+   ;
+
+   while (0 !=
+  

[linux-yocto] [PATCH 48/57] arch/arm/mach-axxia: Name Cleanup

2014-03-18 Thread Charlie Paul
From: John Jacques john.jacq...@lsi.com

Change emulation to emu to match the other targets (sim for
simulation, etc.).

Signed-off-by: John Jacques john.jacq...@lsi.com
---
 arch/arm/boot/dts/axm5504-emu.dts |2 +-
 arch/arm/boot/dts/axm5507-emu.dts |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/axm5504-emu.dts 
b/arch/arm/boot/dts/axm5504-emu.dts
index 9ddce7d..0d7ca8f 100644
--- a/arch/arm/boot/dts/axm5504-emu.dts
+++ b/arch/arm/boot/dts/axm5504-emu.dts
@@ -18,7 +18,7 @@
 
 / {
model = Emulation Platform AXM55xx;
-   compatible = lsi,axm5516-emulation, lsi,axm5516;
+   compatible = lsi,axm5516-emu, lsi,axm5516;
 
memory {
device_type = memory;
diff --git a/arch/arm/boot/dts/axm5507-emu.dts 
b/arch/arm/boot/dts/axm5507-emu.dts
index 201f3af..8de0b23 100644
--- a/arch/arm/boot/dts/axm5507-emu.dts
+++ b/arch/arm/boot/dts/axm5507-emu.dts
@@ -18,7 +18,7 @@
 
 / {
model = Emulation Platform AXM55xx;
-   compatible = lsi,axm5516-emulation, lsi,axm5516;
+   compatible = lsi,axm5516-emu, lsi,axm5516;
 
memory {
device_type = memory;
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 55/57] LSI drivers/tty/serial: Checkpatch 'Axxia Serial Driver Update'

2014-03-18 Thread Charlie Paul
Code syntax updates as per checkpatch ouput

Signed-off-by: Charlie Paul cpaul.windri...@gmail.com
---
 drivers/tty/serial/lsi_acp_serial.c |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/serial/lsi_acp_serial.c 
b/drivers/tty/serial/lsi_acp_serial.c
index aa92920..c03f29b 100644
--- a/drivers/tty/serial/lsi_acp_serial.c
+++ b/drivers/tty/serial/lsi_acp_serial.c
@@ -424,7 +424,7 @@ unsigned int acp_serial_get_mctrl(struct uart_port *port)
 #define TIOCMBIT(uartbit, tiocmbit) do { \
if (status  (uartbit))  \
result |= (tiocmbit);\
-} while (0);
+} while (0)
TIOCMBIT(UART01x_FR_DCD, TIOCM_CAR);
TIOCMBIT(UART01x_FR_DSR, TIOCM_DSR);
TIOCMBIT(UART01x_FR_CTS, TIOCM_CTS);
@@ -445,7 +445,7 @@ void acp_serial_set_mctrl(struct uart_port *port, unsigned 
int mctrl)
cr |= uartbit;   \
else \
cr = ~uartbit;  \
-} while (0);
+} while (0)
 
TIOCMBIT(TIOCM_RTS, UART011_CR_RTS);
TIOCMBIT(TIOCM_DTR, UART011_CR_DTR);
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 47/57] Basic perf support for axxia plaform block provided by LSI.

2014-03-18 Thread Charlie Paul
From: Jonas Svennebring jonas.svennebr...@lsi.com

Signed-off-by: Jonas Svennebring jonas.svennebr...@lsi.com
---
 arch/arm/mach-axxia/perf_event_memc.c |  130 ++
 arch/arm/mach-axxia/perf_event_memc.h |   62 +++
 arch/arm/mach-axxia/perf_event_pcx.c  |   46 +
 arch/arm/mach-axxia/perf_event_platform.c |  270 +
 arch/arm/mach-axxia/perf_event_platform.h |   10 ++
 arch/arm/mach-axxia/perf_event_vp.c   |   51 ++
 arch/arm/mach-axxia/smon.c|  200 +
 arch/arm/mach-axxia/smon.h|   71 
 8 files changed, 840 insertions(+)
 create mode 100644 arch/arm/mach-axxia/perf_event_memc.c
 create mode 100644 arch/arm/mach-axxia/perf_event_memc.h
 create mode 100644 arch/arm/mach-axxia/perf_event_pcx.c
 create mode 100644 arch/arm/mach-axxia/perf_event_platform.c
 create mode 100644 arch/arm/mach-axxia/perf_event_platform.h
 create mode 100644 arch/arm/mach-axxia/perf_event_vp.c
 create mode 100644 arch/arm/mach-axxia/smon.c
 create mode 100644 arch/arm/mach-axxia/smon.h

diff --git a/arch/arm/mach-axxia/perf_event_memc.c 
b/arch/arm/mach-axxia/perf_event_memc.c
new file mode 100644
index 000..a20fc8a
--- /dev/null
+++ b/arch/arm/mach-axxia/perf_event_memc.c
@@ -0,0 +1,130 @@
+/*
+ * arch/arm/mach-axxia/perf_event_memc.c
+ * included from arch/arm/mach-axxia/perf_event_platform.c
+ *
+ * Support for the LSI Axxia boards based on ARM cores.
+ *
+ * Copyright (C) 2014 LSI
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include perf_event_memc.h
+
+static void memc_startup_init(void)
+{
+   smon_init_ncp(ddrc0_smon, DDRC0, DDRC_PERF, DDRC_SMON);
+   smon_init_ncp(ddrc1_smon, DDRC1, DDRC_PERF, DDRC_SMON);
+   smon_init_mem(elm0_smon, ELM0, ELM_SMON);
+   smon_init_mem(elm1_smon, ELM1, ELM_SMON);
+}
+
+static uint32_t memc_pmu_event_init(uint32_t event, struct perf_event *pevent)
+{
+   return 0;
+}
+
+static void memc_pmu_event_destroy(uint32_t event, struct perf_event *pevent)
+{
+   smon_stop_if_unassigned(ddrc0_smon);
+   smon_stop_if_unassigned(ddrc1_smon);
+   smon_stop_if_unassigned(elm0_smon);
+   smon_stop_if_unassigned(elm1_smon);
+}
+
+static uint32_t memc_pmu_event_add(uint32_t ev, struct perf_event *pevent)
+{
+   uint32_t ret;
+
+   if (ev = DDRC0_OFFSET  ev = DDRC0_SMON_MAX) {
+
+   ret = smon_allocate(ddrc0_smon, ev - DDRC0_OFFSET);
+   if (ret != 0)
+   return ret;
+
+   ret = smon_start(ddrc0_smon, ev - DDRC0_OFFSET);
+   if (ret != 0)
+   return ret;
+   } else if (ev = DDRC1_OFFSET  ev = DDRC1_SMON_MAX) {
+
+   ret = smon_allocate(ddrc1_smon, ev - DDRC1_OFFSET);
+   if (ret != 0)
+   return ret;
+
+   ret = smon_start(ddrc1_smon, ev - DDRC1_OFFSET);
+   if (ret != 0)
+   return ret;
+   } else if (ev = ELM0_OFFSET  ev = ELM0_SMON_MAX) {
+
+   ret = smon_allocate(elm0_smon, ev - ELM0_OFFSET);
+   if (ret != 0)
+   return ret;
+
+   ret = smon_start(elm0_smon, ev - ELM0_OFFSET);
+   if (ret != 0)
+   return ret;
+   } else if (ev = ELM1_OFFSET  ev = ELM1_SMON_MAX) {
+
+   ret = smon_allocate(elm1_smon, ev - ELM1_OFFSET);
+   if (ret != 0)
+   return ret;
+
+   ret = smon_start(elm1_smon, ev - ELM1_OFFSET);
+   if (ret != 0)
+   return ret;
+   }
+
+   return 0;
+}
+
+/*
+ * Remove event and return counter update.
+ */
+static uint32_t memc_pmu_event_del(uint32_t ev, struct perf_event *pevent,
+   int flags)
+{
+   uint32_t count = 0;
+
+   if (ev = DDRC0_OFFSET  ev = DDRC0_SMON_MAX) {
+
+   count = smon_read(ddrc0_smon, ev - DDRC0_OFFSET);
+   if (count == -ENOEVENT)
+   count = 0;
+
+   smon_deallocate(ddrc0_smon, ev - DDRC0_OFFSET);
+   } else if (ev = DDRC1_OFFSET  ev = DDRC1_SMON_MAX) {
+
+   count = smon_read(ddrc1_smon, ev - DDRC1_OFFSET);
+   if (count == -ENOEVENT)
+   

[linux-yocto] [PATCH 44/57] axxia: Updated Device Trees Signed-off-by: John Jacques john.jacq...@lsi.com

2014-03-18 Thread Charlie Paul
From: John Jacques john.jacq...@lsi.com

---
 arch/arm/boot/dts/Makefile  |5 +
 arch/arm/boot/dts/axm-sim.dts   |  403 ---
 arch/arm/boot/dts/axm-ve-tc1.dts|  363 
 arch/arm/boot/dts/axm-ve-tc2.dts|  174 -
 arch/arm/boot/dts/axm5504-emu.dts   |   44 
 arch/arm/boot/dts/axm5504-emulation.dts |   44 
 arch/arm/boot/dts/axm5507-cpus.dtsi |   73 ++
 arch/arm/boot/dts/axm5507-emu.dts   |   44 
 arch/arm/boot/dts/axm5516-sim.dts   |  127 ++
 arch/powerpc/boot/dts/acp25xx.dts   |2 +-
 arch/powerpc/boot/dts/acp342x.dts   |2 +-
 arch/powerpc/boot/dts/acp344x.dts   |2 +-
 arch/powerpc/boot/dts/acp35xx.dts   |2 +-
 13 files changed, 297 insertions(+), 988 deletions(-)
 delete mode 100644 arch/arm/boot/dts/axm-sim.dts
 delete mode 100644 arch/arm/boot/dts/axm-ve-tc1.dts
 delete mode 100644 arch/arm/boot/dts/axm-ve-tc2.dts
 create mode 100644 arch/arm/boot/dts/axm5504-emu.dts
 delete mode 100644 arch/arm/boot/dts/axm5504-emulation.dts
 create mode 100644 arch/arm/boot/dts/axm5507-cpus.dtsi
 create mode 100644 arch/arm/boot/dts/axm5507-emu.dts
 create mode 100644 arch/arm/boot/dts/axm5516-sim.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index dbd0158..5d73aba 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -220,6 +220,11 @@ dtb-$(CONFIG_ARCH_VT8500) += vt8500-bv07.dtb \
wm8505-ref.dtb \
wm8650-mid.dtb \
wm8850-w70v2.dtb
+dtb-$(CONFIG_ARCH_AXXIA) += axm5504-sim.dtb \
+   axm5516-sim.dtb \
+   axm5504-emu.dtb \
+   axm5507-emu.dtb \
+   axm5516-amarillo.dtb
 dtb-$(CONFIG_ARCH_ZYNQ) += zynq-zc702.dtb \
zynq-zc706.dtb
 
diff --git a/arch/arm/boot/dts/axm-sim.dts b/arch/arm/boot/dts/axm-sim.dts
deleted file mode 100644
index bb46808..000
--- a/arch/arm/boot/dts/axm-sim.dts
+++ /dev/null
@@ -1,403 +0,0 @@
-/*
- * arch/arm/boot/dts/axm-sim.dts
- *
- * Copyright (C) 2012 LSI
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-/dts-v1/;
-
-/ {
-   model = AXM5516;
-   compatible = arm, lsi,axm5516;
-   interrupt-parent = gic;
-   #address-cells = 2;
-   #size-cells = 2;
-
-   chosen { };
-
-   aliases {
-   serial0 = axxia_serial0;
-   serial1 = axxia_serial1;
-   serial2 = axxia_serial2;
-   serial3 = axxia_serial3;
-   timer   = axxia_timers;
-   };
-
-   cpus {
-   #address-cells = 1;
-   #size-cells = 0;
-
-   cpu@0 {
-   device_type = cpu;
-   compatible = arm,cortex-a15;
-   reg = 0;
-   };
-
-   cpu@1 {
-   device_type = cpu;
-   compatible = arm,cortex-a15;
-   reg = 1;
-   };
-
-   cpu@2 {
-   device_type = cpu;
-   compatible = arm,cortex-a15;
-   reg = 2;
-   };
-
-   cpu@3 {
-   device_type = cpu;
-   compatible = arm,cortex-a15;
-   reg = 3;
-   };
-
-   cpu@4 {
-   device_type = cpu;
-   compatible = arm,cortex-a15;
-   reg = 4;
-   };
-
-   cpu@5 {
-   device_type = cpu;
-   compatible = arm,cortex-a15;
-   reg = 5;
-   };
-
-   cpu@6 {
-   device_type = cpu;
-   compatible = arm,cortex-a15;
-   reg = 6;
-   };
-
-   cpu@7 {
-   device_type = cpu;
-   compatible = arm,cortex-a15;
-   reg = 7;
-   };
-
-   cpu@8 {
-   device_type = cpu;
-   compatible = arm,cortex-a15;
-   reg = 8;
-   };
-
-   cpu@9 {
-   device_type = cpu;
-   compatible = 

[linux-yocto] [PATCH 57/57] gpio: repairs merge comflict

2014-03-18 Thread Charlie Paul
From: Paul Butler paul.but...@windriver.com

Signed-off-by: Paul Butler paul.but...@windriver.com
---
 drivers/gpio/gpio-pl061.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpio/gpio-pl061.c b/drivers/gpio/gpio-pl061.c
index 0254470..c13f8d1 100644
--- a/drivers/gpio/gpio-pl061.c
+++ b/drivers/gpio/gpio-pl061.c
@@ -358,7 +358,7 @@ static int pl061_probe(struct device *dev,
irq_set_chained_handler(irq, pl061_irq_handler);
irq_set_handler_data(irq, chip);
 
-   chip-domain = irq_domain_add_simple(adev-dev.of_node, PL061_GPIO_NR,
+   chip-domain = irq_domain_add_simple(dev-of_node, PL061_GPIO_NR,
 irq_base, pl061_domain_ops, chip);
if (!chip-domain)
return -ENODEV;
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 56/57] i2c: comforming to changes introduced by move of_i2c to core

2014-03-18 Thread Charlie Paul
From: Paul Butler paul.but...@windriver.com

LSI driver updates to conform to changes introduced by:
commit f78f5da062c3e5991643664d2463adf1f2294e04
Author: Wolfram Sang w...@the-dreams.de
Date:   Thu Jul 11 12:56:15 2013 +0100

i2c: move OF helpers into the core

Signed-off-by: Paul Butler paul.but...@windriver.com
---
 drivers/i2c/busses/acp3400-i2c.c |3 ---
 drivers/i2c/busses/i2c-axxia.c   |3 ---
 2 files changed, 6 deletions(-)

diff --git a/drivers/i2c/busses/acp3400-i2c.c b/drivers/i2c/busses/acp3400-i2c.c
index de4eff6..b4febc0 100644
--- a/drivers/i2c/busses/acp3400-i2c.c
+++ b/drivers/i2c/busses/acp3400-i2c.c
@@ -19,7 +19,6 @@
 #include linux/sched.h
 #include linux/init.h
 #include linux/of_platform.h
-#include linux/of_i2c.h
 #include linux/slab.h
 
 #include linux/io.h
@@ -464,8 +463,6 @@ static int acp34xx_i2c_probe(struct platform_device *dev)
 
pr_info(%s: adapter has been added\n, np-full_name);
 
-   of_i2c_register_devices(i2c-adap);
-
dev_set_drvdata(dev-dev, i2c);
return 0;
 err:
diff --git a/drivers/i2c/busses/i2c-axxia.c b/drivers/i2c/busses/i2c-axxia.c
index c2b84a4..86fc695 100644
--- a/drivers/i2c/busses/i2c-axxia.c
+++ b/drivers/i2c/busses/i2c-axxia.c
@@ -23,7 +23,6 @@
 #include linux/slab.h
 #include linux/of_address.h
 #include linux/of_irq.h
-#include linux/of_i2c.h
 #include linux/module.h
 
 #define SCL_WAIT_TIMEOUT_NS 2500
@@ -573,8 +572,6 @@ axxia_i2c_probe(struct platform_device *pdev)
 
platform_set_drvdata(pdev, idev);
 
-   of_i2c_register_devices(idev-adapter);
-
return 0;
 }
 
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 09/26] axxia: Define arch_is_coherent()

2014-03-18 Thread Charlie Paul
From: Anders Berg anders.b...@lsi.com

By defining arch_is_coherent() == 1, we can avoid unnecessary cache maintenance
operations and the dma_alloc_coherent() will return normal memory.

Signed-off-by: Anders Berg anders.b...@lsi.com
---
 arch/arm/Kconfig  |1 +
 arch/arm/mach-axxia/include/mach/memory.h |   19 +++
 drivers/usb/host/ehci-ci13612.c   |   12 ++--
 3 files changed, 26 insertions(+), 6 deletions(-)
 create mode 100644 arch/arm/mach-axxia/include/mach/memory.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e7f2815..baa0b4d 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -341,6 +341,7 @@ config ARCH_AXXIA
select ARM_TIMER_SP804
select ICST
select NEED_MACH_IO_H
+   select NEED_MACH_MEMORY_H
select ZONE_DMA
select PCI
select PCI_DOMAINS if PCI
diff --git a/arch/arm/mach-axxia/include/mach/memory.h 
b/arch/arm/mach-axxia/include/mach/memory.h
new file mode 100644
index 000..9df2aaf
--- /dev/null
+++ b/arch/arm/mach-axxia/include/mach/memory.h
@@ -0,0 +1,19 @@
+/*
+ * arch/arm/mach-axxia/include/mach/memory.h
+ *
+ * Copyright (c) 2013 LSI Corporation
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ */
+
+#ifndef __ASM_ARCH_MEMORY_H
+#define __ASM_ARCH_MEMORY_H
+
+#include mach/hardware.h
+
+#define arch_is_coherent() 1
+
+#endif
diff --git a/drivers/usb/host/ehci-ci13612.c b/drivers/usb/host/ehci-ci13612.c
index 2a30dab..b995a32 100644
--- a/drivers/usb/host/ehci-ci13612.c
+++ b/drivers/usb/host/ehci-ci13612.c
@@ -138,8 +138,7 @@ ci13612_fixup_usbcmd_rs(struct ehci_hcd *ehci)
port_status = ehci_readl(ehci, ehci-regs-port_status[0]);
pr_info(ehci-ci13612: port_status = 0x%x\n, port_status);
if (port_status  0x100) {
-   pr_err(ehci-ci13612: USB port is in reset status, 
-  not able to change HC status to run\n);
+   pr_err(ehci-ci13612: USB port is in reset status, not able to 
change HC status to run\n);
return -EFAULT;
}
return 0;
@@ -171,7 +170,7 @@ ci13612_fixup_txpburst(struct ehci_hcd *ehci)
ehci_writel(ehci, burst_size, ehci-regs-reserved[1]);
 }
 #else
-#define ci13612_fixup_txpburst(ehci) do { (void)ehci; } while(0)
+#define ci13612_fixup_txpburst(ehci) do { (void)ehci; } while (0)
 #endif
 
 static int ci13612_ehci_run(struct usb_hcd *hcd)
@@ -260,7 +259,8 @@ static int ci13612_ehci_probe(struct platform_device *pdev)
pdev-dev.coherent_dma_mask = DMA_BIT_MASK(32);
pdev-dev.dma_mask = pdev-dev.coherent_dma_mask;
 
-   hcd = usb_create_hcd(ci13612_hc_driver, pdev-dev, 
dev_name(pdev-dev));
+   hcd = usb_create_hcd(ci13612_hc_driver, pdev-dev,
+   dev_name(pdev-dev));
if (!hcd) {
retval = -ENOMEM;
goto fail_create_hcd;
@@ -285,8 +285,8 @@ static int ci13612_ehci_probe(struct platform_device *pdev)
/* Set address bits [39:32] to zero */
writel(0x0, gpreg_base + 0x8);
 #ifndef CONFIG_LSI_USB_SW_WORKAROUND
-   /* hprot pass-through (let the controller drive hprot[0:3] */
-   writel(0x100, gpreg_base + 0x74);
+   /* hprot cachable and bufferable */
+   writel(0xc, gpreg_base + 0x74);
 #endif
iounmap(gpreg_base);
}
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 04/26] arm: rapidio updates

2014-03-18 Thread Charlie Paul
From: Paul Butler paul.but...@windriver.com

Signed-off-by: Paul Butler paul.but...@windriver.com
---
 arch/arm/Kconfig |   18 +
 arch/arm/boot/dts/axm55xx.dts|   16 
 arch/arm/include/asm/axxia-rio.h |   82 ++
 arch/arm/include/asm/rio.h   |   33 +++
 arch/arm/mach-axxia/Makefile |1 +
 arch/arm/mach-axxia/clock.c  |5 +++
 arch/arm/mach-axxia/rapidio.c|   44 
 7 files changed, 199 insertions(+)
 create mode 100644 arch/arm/include/asm/axxia-rio.h
 create mode 100644 arch/arm/include/asm/rio.h
 create mode 100644 arch/arm/mach-axxia/rapidio.c

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c796752..e7f2815 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -345,6 +345,7 @@ config ARCH_AXXIA
select PCI
select PCI_DOMAINS if PCI
select ARCH_SUPPORTS_MSI if PCI
+select HAS_RAPIDIO if (!PREEMPT_RTB)
help
  This enables support for the LSI Axxia boards.
 
@@ -2359,3 +2360,20 @@ source security/Kconfig
 source crypto/Kconfig
 
 source lib/Kconfig
+
+menu RapidIO management options
+
+config HAS_RAPIDIO
+   bool
+   default n
+
+config RAPIDIO
+   bool RapidIO support
+   depends on HAS_RAPIDIO || PCI
+   help
+ If you say Y here, the kernel will include drivers and
+ infrastructure code to support RapidIO interconnect devices.
+
+source drivers/rapidio/Kconfig
+
+endmenu
diff --git a/arch/arm/boot/dts/axm55xx.dts b/arch/arm/boot/dts/axm55xx.dts
index aac791d..7ecb177 100644
--- a/arch/arm/boot/dts/axm55xx.dts
+++ b/arch/arm/boot/dts/axm55xx.dts
@@ -35,6 +35,7 @@
serial0   = axxia_serial0;
timer = axxia_timers;
ethernet0 = axxia_femac0;
+   rapidio0  = rio0;
};
 
cpus {
@@ -423,6 +424,21 @@
reg = 0x20 0x10098000 0 0x3000;
interrupts = 0 45 4;
};
+
+rio0: rapidio {
+index = 0;
+status = disabled;
+#address-cells = 2;
+#size-cells = 2;
+compatible = axxia,rapidio-delta;
+device_type = rapidio;
+reg = 0x0020 0x20142000 0x0 0x1000; /* SRIO Conf 0 region */
+ranges = 0x0 0x0 0x0031 0x 0x0 0x4000;
+linkdown-reset = 0x0200 0x100 0x0020 0x1000 0x0 
0x1;
+interrupts = 0 89 4;
+outb-dmes = 2 0x0003 1 0x;
+};
+
 };
 
 /*
diff --git a/arch/arm/include/asm/axxia-rio.h b/arch/arm/include/asm/axxia-rio.h
new file mode 100644
index 000..08bfc3b
--- /dev/null
+++ b/arch/arm/include/asm/axxia-rio.h
@@ -0,0 +1,82 @@
+/*
+ * RapidIO support for LSI Axxia parts
+ *
+ */
+#ifndef __ASM_AXXIA_RIO_H__
+#define __ASM_AXXIA_RIO_H__
+
+/* Constants, Macros, etc. */
+
+#define AXXIA_RIO_SMALL_SYSTEM
+
+#define AXXIA_RIO_SYSMEM_BARRIER()
+
+#define AXXIA_RIO_DISABLE_MACHINE_CHECK()
+#define AXXIA_RIO_ENABLE_MACHINE_CHECK()
+#define AXXIA_RIO_IF_MACHINE_CHECK(mcsr)   (mcsr = 0)
+
+#define IN_SRIO8(a, v, ec) {v = inb((long unsigned int)a); ec = 0}
+#define IN_SRIO16(a, v, ec){v = inw((long unsigned int)a); ec = 0}
+#define IN_SRIO32(a, v, ec){v = inl((long unsigned int)a); ec = 0}
+
+#define OUT_SRIO8(a, v)outb_p(v, (long unsigned int) a)
+#define OUT_SRIO16(a, v)   outw_p(v, (long unsigned int) a)
+#define OUT_SRIO32(a, v)   outl_p(v, (long unsigned int) a)
+
+#define _SWAP32(x) x)  0x00FF)  24) | (((x)  0xFF00)   
8) | (((x)  0x00FF)  8) | (((x)  0xFF00)  24))
+#define CORRECT_GRIO(a)_SWAP32(a)
+#define CORRECT_RAB(a) (a)
+
+/* ACP RIO board-specific stuff */
+
+extern int axxia_rio_apio_enable(struct rio_mport *mport, u32 mask, u32 bits);
+extern int axxia_rio_apio_disable(struct rio_mport *mport);
+extern int axxia_rio_rpio_enable(struct rio_mport *mport, u32 mask, u32 bits);
+extern int axxia_rio_rpio_disable(struct rio_mport *mport);
+
+extern int axxia_rapidio_board_init(void);
+
+
+/*/
+/* ACP RIO operational stuff */
+/*/
+
+/**
+ * CNTLZW - Count leading zeros word
+ * @val: value from which count number of leading zeros
+ *
+ * Return: number of zeros
+ */
+static inline u32 CNTLZW(u32 val)
+{
+   int n = 0;
+   if (val == 0)
+   return 32;
+   if ((val  0x) == 0)
+   n += 16; val = val  16;
+   /*        
+   // 16 bits from left are zero! so we omit 16 left bits */
+   if ((val  0xFF00) == 0)
+   n = n + 8; val = val  8;
+   /* 8 left bits are 0 */
+   if ((val  0xF000) == 0)
+   n = n + 4; val = val  4;
+   /* 4 left bits are 0 */
+   if ((val  0xC000) 

[linux-yocto] [PATCH 05/26] powerpc: rapidio updates

2014-03-18 Thread Charlie Paul
From: Paul Butler paul.but...@windriver.com

Signed-off-by: Paul Butler paul.but...@windriver.com
---
 arch/powerpc/boot/dts/lsi_acp342x.dts |  317 +
 arch/powerpc/boot/dts/lsi_acp344x.dts |  355 +
 arch/powerpc/include/asm/axxia-rio.h  |  103 ++
 arch/powerpc/include/asm/rio.h|   41 
 arch/powerpc/platforms/44x/Makefile   |3 +-
 arch/powerpc/platforms/44x/acprio.c   |   65 ++
 arch/powerpc/platforms/44x/acpx1.c|1 +
 7 files changed, 884 insertions(+), 1 deletion(-)
 create mode 100644 arch/powerpc/boot/dts/lsi_acp342x.dts
 create mode 100644 arch/powerpc/boot/dts/lsi_acp344x.dts
 create mode 100644 arch/powerpc/include/asm/axxia-rio.h
 create mode 100644 arch/powerpc/platforms/44x/acprio.c

diff --git a/arch/powerpc/boot/dts/lsi_acp342x.dts 
b/arch/powerpc/boot/dts/lsi_acp342x.dts
new file mode 100644
index 000..da6066e
--- /dev/null
+++ b/arch/powerpc/boot/dts/lsi_acp342x.dts
@@ -0,0 +1,317 @@
+/*
+ * Device Tree Source for IBM Embedded PPC 476 Platform
+ *
+ * Copyright 2009 Torez Smith, IBM Corporation.
+ *
+ * Based on earlier code:
+ * Copyright (c) 2006, 2007 IBM Corp.
+ * Josh Boyer jwbo...@linux.vnet.ibm.com, David Gibson d...@au1.ibm.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/;
+
+/memreserve/ 0x 0x0040;
+
+/ {
+   #address-cells = 2;
+   #size-cells = 1;
+   model = ibm,acpx1-4xx;
+   compatible = ibm,acpx1-4xx,ibm,47x-AMP;
+   dcr-parent = {/cpus/cpu@0};
+
+   aliases {
+   serial0 = UART0;
+   serial1 = UART1;
+   rapidio0 = rio0;
+   ethernet0 = FEMAC;
+   };
+
+   cpus {
+   #address-cells = 1;
+   #size-cells = 0;
+
+   cpu@0 {
+   device_type = cpu;
+   model = PowerPC,4xx; // real CPU changed in sim
+   reg = 0;
+clock-frequency = 0x5f5e1000;
+timebase-frequency = 0x5f5e1000;
+   i-cache-line-size = 32;
+   d-cache-line-size = 32;
+   i-cache-size = 32768;
+   d-cache-size = 32768;
+   dcr-controller;
+   dcr-access-method = native;
+   status = ok;
+   reset-type = 3; // 1=core, 2=chip, 3=system (default)
+   };
+   cpu@1 {
+   device_type = cpu;
+   model = PowerPC,4xx; // real CPU changed in sim
+   reg = 1;
+clock-frequency = 0x5f5e1000;
+timebase-frequency = 0x5f5e1000;
+   i-cache-line-size = 32;
+   d-cache-line-size = 32;
+   i-cache-size = 32768;
+   d-cache-size = 32768;
+   dcr-controller;
+   dcr-access-method = native;
+   status = disabled;
+   enable-method = spin-table;
+   cpu-release-addr = 0 0x2040;
+   reset-type = 3; // 1=core, 2=chip, 3=system (default)
+   };
+   };
+
+memory@0 {
+device_type = memory;
+reg = 0x 0x 0x1000;
+};
+
+memory@8000 {
+device_type = memory;
+reg = 0x 0x 0x;
+};
+
+   MPIC: interrupt-controller {
+   compatible = chrp,open-pic;
+   interrupt-controller;
+   dcr-reg = 0xffc0 0x0003;
+   #address-cells = 0;
+   #size-cells = 0;
+   #interrupt-cells = 2;
+   pic-no-reset;
+   };
+
+   plb {
+   /* Could be PLB6, doesn't matter */
+   compatible = ibm,plb-4xx, ibm,plb4;
+   #address-cells = 2;
+   #size-cells = 1;
+   ranges;
+   clock-frequency = 0; // Filled in by zImage
+
+   POB0: opb {
+   compatible = ibm,opb-4xx, ibm,opb;
+   #address-cells = 1;
+   #size-cells = 1;
+   /* Wish there was a nicer way of specifying a full 
32-bit
+  range */
+   ranges = 0x 0x0020 0x 0x8000
+ 0x8000 0x0020 0x8000 0x8000;
+   clock-frequency = 0; // Filled in by zImage
+   UART0: serial@00404000 {
+   device_type = serial;
+   compatible = 

[linux-yocto] [PATCH 16/26] drivers/usb: USB driver/dts on PPC was broken.

2014-03-18 Thread Charlie Paul
From: SangeethaRao sangeetha@lsi.com

Fixed the DTS to have correct entries and updated USB driver
to exclude 55xx relevant code from PPC build

drivers/usb: added a new ehci halt function

New halt function halts the EHCI controller.
This is to be called during startup since spinlocks are not
initialized at that point.

Signed-off-by: SangeethaRao sangeetha@lsi.com
---
 arch/powerpc/boot/dts/acp342x.dts |7 ---
 drivers/usb/host/ehci-ci13612.c   |   30 +-
 2 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/boot/dts/acp342x.dts 
b/arch/powerpc/boot/dts/acp342x.dts
index 4db67df..8e400e3 100644
--- a/arch/powerpc/boot/dts/acp342x.dts
+++ b/arch/powerpc/boot/dts/acp342x.dts
@@ -112,9 +112,10 @@
 };
 USB0: usb@004a4000 {
 device_type = usb;
-compatible = acp-usb;
-enabled = 0;
-reg = 0x004a4000 0x0002;
+compatible = lsi,acp-usb;
+enabled = 1;
+   reg = 0x20 0x004A 0x0 002,
+   0x20 0x0040C000 0x0 0001000;
 interrupt-parent = MPIC;
 interrupts = 31;
 };
diff --git a/drivers/usb/host/ehci-ci13612.c b/drivers/usb/host/ehci-ci13612.c
index b995a32..3badbd8 100644
--- a/drivers/usb/host/ehci-ci13612.c
+++ b/drivers/usb/host/ehci-ci13612.c
@@ -32,6 +32,8 @@
 #include ehci-ci13612.h
 
 
+static int ci13612_ehci_halt(struct ehci_hcd *ehci);
+
 #ifdef CONFIG_LSI_USB_SW_WORKAROUND
 static void ci13612_usb_setup(struct usb_hcd *hcd)
 {
@@ -104,7 +106,7 @@ static int ci13612_ehci_init(struct usb_hcd *hcd)
ehci-sbrn = 0x20;
 
/* Reset is only allowed on a stopped controller */
-   ehci_halt(ehci);
+   ci13612_ehci_halt(ehci);
 
/* reset controller */
ehci_reset(ehci);
@@ -183,8 +185,11 @@ static int ci13612_ehci_run(struct usb_hcd *hcd)
if (retval)
return retval;
 
+
+#ifndef CONFIG_LSI_USB_SW_WORKAROUND
/* Setup AMBA interface to force INCR16 busts when possible */
writel(3, USB_SBUSCFG);
+#endif
 
retval = ehci_run(hcd);
if (retval)
@@ -192,10 +197,12 @@ static int ci13612_ehci_run(struct usb_hcd *hcd)
 
ci13612_fixup_txpburst(ehci);
 
+#ifndef CONFIG_LSI_USB_SW_WORKAROUND
/* Set ITC (bits [23:16]) to zero for interrupt on every micro-frame */
tmp = ehci_readl(ehci, ehci-regs-command);
tmp = 0x;
ehci_writel(ehci, tmp  0x, ehci-regs-command);
+#endif
 
return retval;
 }
@@ -238,6 +245,7 @@ static int ci13612_ehci_probe(struct platform_device *pdev)
 
irq = platform_get_irq(pdev, 0);
if (irq  0) {
+   dev_dbg(pdev-dev, error getting irq number\n);
retval = irq;
goto fail_create_hcd;
}
@@ -255,9 +263,12 @@ static int ci13612_ehci_probe(struct platform_device *pdev)
return -ENODEV;
}
 
+
+#ifndef CONFIG_LSI_USB_SW_WORKAROUND
/* Device using 32-bit addressing */
pdev-dev.coherent_dma_mask = DMA_BIT_MASK(32);
pdev-dev.dma_mask = pdev-dev.coherent_dma_mask;
+#endif
 
hcd = usb_create_hcd(ci13612_hc_driver, pdev-dev,
dev_name(pdev-dev));
@@ -316,6 +327,18 @@ static int ci13612_ehci_remove(struct platform_device 
*pdev)
return 0;
 }
 
+static int ci13612_ehci_halt(struct ehci_hcd *ehci)
+{
+   u32 temp;
+
+   temp = ehci_readl(ehci, ehci-regs-command);
+   temp = ~CMD_RUN;
+   ehci_writel(ehci, temp, ehci-regs-command);
+
+   return handshake(ehci, ehci-regs-status,
+   STS_HALT, STS_HALT, 16 * 125);
+}
+
 MODULE_ALIAS(platform:ci13612-ehci);
 
 static struct of_device_id ci13612_match[] = {
@@ -323,6 +346,10 @@ static struct of_device_id ci13612_match[] = {
.type   = usb,
.compatible = lsi,acp-usb,
},
+   {
+   .type   = usb,
+   .compatible = acp-usb,
+   },
{},
 };
 
@@ -333,4 +360,5 @@ static struct platform_driver ci13612_ehci_driver = {
.name = ci13612-ehci,
.of_match_table = ci13612_match,
},
+
 };
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 10/26] LSI AXM55xx: Enable multi-cluster wfe/sev

2014-03-18 Thread Charlie Paul
From: David Mercado david.merc...@windriver.com

By default, the system does not enable the use of ARM wfe/sev instructions
across clusters, which breaks things like arch_spin_lock. This patch enables
this feature.

LSI AXM55xx: Disable use of wfe/sev in arch_spin_lock

By default, the system does not enable the use of ARM wfe/sev instructions
across clusters, which breaks things like arch_spin_lock. The previous
solution to enable wfe/sev to work across clusters still resulted in CPU
stalls. This patch instead removes the use of wfe/sev in arch/arm/include/
asm/spinlock.h altogether.

Signed-off-by: David Mercado david.merc...@windriver.com
---
 arch/arm/include/asm/spinlock.h |4 
 arch/arm/mach-axxia/axxia.c |1 +
 2 files changed, 5 insertions(+)

diff --git a/arch/arm/include/asm/spinlock.h b/arch/arm/include/asm/spinlock.h
index 65fa3c8..022ef90 100644
--- a/arch/arm/include/asm/spinlock.h
+++ b/arch/arm/include/asm/spinlock.h
@@ -37,6 +37,10 @@
\
nop.w \
 )
+#elif CONFIG_ARCH_AXXIA || CONFIG_ARCH_AXXIA_SIM
+/* Disable use of wfe/sev in Axxia. */
+#define SEV
+#define WFE(cond)
 #else
 #define SEVALT_SMP(sev, nop)
 #define WFE(cond)  ALT_SMP(wfe cond, nop)
diff --git a/arch/arm/mach-axxia/axxia.c b/arch/arm/mach-axxia/axxia.c
index 7b725ef..d87bb61 100644
--- a/arch/arm/mach-axxia/axxia.c
+++ b/arch/arm/mach-axxia/axxia.c
@@ -253,6 +253,7 @@ l3_set_pstate(void __iomem *l3ctrl, unsigned int req, 
unsigned int act)
 void __init axxia_dt_init(void)
 {
void __iomem *l3ctrl;
+   void __iomem *apb2ser3_base;
int rc;
 
/* Enable L3-cache */
-- 
1.7.9.5

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 13/26] arch/arm/mach-axxi: Updated DDR Retention to Wokr from Interrupt Context

2014-03-18 Thread Charlie Paul
From: John Jacques john.jacq...@lsi.com

As procfs shouldn't be used as a module to user interface,
switch to sysfs.

Signed-off-by: John Jacques john.jacq...@lsi.com
---
 arch/arm/mach-axxia/Makefile   |1 +
 arch/arm/mach-axxia/axxia.c|3 +
 arch/arm/mach-axxia/ddr_retention.c|   13 +-
 arch/arm/mach-axxia/include/mach/ncr.h |   44 +++
 arch/arm/mach-axxia/ncr.c  |  488 
 drivers/misc/Kconfig   |2 +-
 drivers/misc/lsi-smmon.c   |  130 -
 drivers/net/ethernet/lsi/lsi_acp_net.c |9 +-
 8 files changed, 619 insertions(+), 71 deletions(-)
 create mode 100644 arch/arm/mach-axxia/include/mach/ncr.h
 create mode 100644 arch/arm/mach-axxia/ncr.c

diff --git a/arch/arm/mach-axxia/Makefile b/arch/arm/mach-axxia/Makefile
index 2e9ddf7..85cee8f 100644
--- a/arch/arm/mach-axxia/Makefile
+++ b/arch/arm/mach-axxia/Makefile
@@ -5,6 +5,7 @@ obj-y   += wrappers.o
 obj-y  += axxia.o
 obj-y  += clock.o
 obj-y   += io.o
+obj-y  += ncr.o
 obj-y  += timers.o
 obj-y  += pci.o
 obj-y  += ddr_retention.o
diff --git a/arch/arm/mach-axxia/axxia.c b/arch/arm/mach-axxia/axxia.c
index d87bb61..0e368a4 100644
--- a/arch/arm/mach-axxia/axxia.c
+++ b/arch/arm/mach-axxia/axxia.c
@@ -49,6 +49,7 @@
 #include mach/hardware.h
 #include mach/timers.h
 #include mach/axxia-gic.h
+#include mach/ncr.h
 #include axxia.h
 #include pci.h
 #include i2c.h
@@ -273,6 +274,8 @@ void __init axxia_dt_init(void)
 axxia_auxdata_lookup, NULL);
pm_power_off = NULL; /* TBD */
 
+   ncr_init();
+
spi_register_board_info(spi_devs, ARRAY_SIZE(spi_devs));
 
/*
diff --git a/arch/arm/mach-axxia/ddr_retention.c 
b/arch/arm/mach-axxia/ddr_retention.c
index 988d361..1e4ba34 100644
--- a/arch/arm/mach-axxia/ddr_retention.c
+++ b/arch/arm/mach-axxia/ddr_retention.c
@@ -32,7 +32,7 @@
 
 #include asm/io.h
 #include asm/cacheflush.h
-#include ../../../drivers/misc/lsi-ncr.h
++#include mach/ncr.h
 
 extern void flush_l3(void);
 static void __iomem *nca_address;
@@ -195,6 +195,7 @@ void initiate_retention_reset(void)
 
if (NULL == nca_address)
nca_address = ioremap(0x00202010ULL, 0x2);
+   BUG();
 
/* send stop message to other CPUs */
local_irq_disable();
@@ -215,8 +216,7 @@ void initiate_retention_reset(void)
ncr_write(NCP_REGION_ID(15, 0), 0x414, 4, value);
 
/* unlock reset register for later */
-   apb_base = ioremap(0x201000, 0x4);
-   writel(0x00ab, apb_base + 0x31000); /* Access Key */
+   writel(0x00ab, apb_base + 0x31000); /* Access Key */
 
/* prepare to put DDR in self refresh power-down mode */
/* first read the CTL_244 register and OR in the LP_CMD value */
@@ -246,6 +246,7 @@ void initiate_retention_reset(void)
ncp_ddr_shutdown();
 
 }
+EXPORT_SYMBOL(initiate_retention_reset);
 
 static ssize_t axxia_ddr_retention_trigger(struct file *file,
   const char __user *buf,
@@ -268,9 +269,13 @@ void axxia_ddr_retention_init(void)
printk(KERN_INFO
Failed to register DDR retention proc interface\n);
 #endif
+
+   apb_base = ioremap(0x201000, 0x4);
+   nca_address = ioremap(0x00202010ULL, 0x2);
+
+   printk(ddr_retention: ready\n);
 }
 
-EXPORT_SYMBOL(initiate_retention_reset);
 
 #else
 
diff --git a/arch/arm/mach-axxia/include/mach/ncr.h 
b/arch/arm/mach-axxia/include/mach/ncr.h
new file mode 100644
index 000..926d366
--- /dev/null
+++ b/arch/arm/mach-axxia/include/mach/ncr.h
@@ -0,0 +1,44 @@
+/*
+ * arch/arm/mach-axxia/include/mach/ncr.h
+ *
+ * Copyright (C) 2010 LSI
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
 USA
+ */
+
+#ifndef __ARCH_ARM_MACH_AXXIA_NCR_H
+#define __ARCH_ARM_MACH_AXXIA_NCR_H
+
+#ifndef NCP_REGION_ID
+#define NCP_REGION_ID(node, target) \
+((unsigned long) node)  0x)  16) | ((target)  0x)))
+#endif

Re: [linux-yocto] [PATCH 16/57] LSI AXM55xx: Code syntax - checkpatch updates to Update RIO interfaces

2014-03-18 Thread Bruce Ashfield

Another change that needs to be squashed. I'll stop making this comment, but
it should be applied to the whole series.

Bruce

On 14-03-18 12:56 AM, Charlie Paul wrote:

---
  drivers/net/rionet.c |   61 +++---
  1 file changed, 28 insertions(+), 33 deletions(-)

diff --git a/drivers/net/rionet.c b/drivers/net/rionet.c
index bf79034..fbea401 100644
--- a/drivers/net/rionet.c
+++ b/drivers/net/rionet.c
@@ -104,10 +104,9 @@ static int rionet_rx_clean(struct net_device *ndev)

if (!rnet-rx_skb[i])
continue;
-
-   if (!(data = rio_get_inb_message(rnet-mport, RIONET_MAILBOX,
-RIONET_LETTER, sz, slot,
-destid)))
+   data = rio_get_inb_message(rnet-mport, RIONET_MAILBOX,
+   RIONET_LETTER, sz, slot, destid);
+   if (!data)
break;

rnet-rx_skb[i]-data = data;
@@ -170,7 +169,7 @@ static int rionet_queue_tx_msg(struct sk_buff *skb, struct 
net_device *ndev,
rnet-tx_slot = (RIONET_TX_RING_SIZE - 1);

if (netif_msg_tx_queued(rnet))
-   printk(KERN_INFO %s: queued skb len %8.8x\n, DRV_NAME,
+   pr_info(%s: queued skb len %8.8x\n, DRV_NAME,
   skb-len);

return 0;
@@ -193,7 +192,7 @@ static int rionet_start_xmit(struct sk_buff *skb, struct 
net_device *ndev)
if ((rnet-tx_cnt + add_num)  RIONET_TX_RING_SIZE) {
netif_stop_queue(ndev);
spin_unlock_irqrestore(rnet-tx_lock, flags);
-   printk(KERN_ERR %s: BUG! Tx Ring full when queue awake!\n,
+   pr_err(%s: BUG! Tx Ring full when queue awake!\n,
   ndev-name);
return NETDEV_TX_BUSY;
}
@@ -235,7 +234,7 @@ static void rionet_dbell_event(struct rio_mport *mport, 
void *dev_id, u16 sid, u
rnet = netdev_priv(ndev);

if (netif_msg_intr(rnet))
-   printk(KERN_INFO %s: doorbell sid %4.4x tid %4.4x info %4.4x,
+   pr_info(%s: doorbell sid %4.4x tid %4.4x info %4.4x,
   DRV_NAME, sid, tid, info);
if (info == RIONET_DOORBELL_JOIN) {
if (!nets[rnet-mport-id].active[sid]) {
@@ -255,8 +254,7 @@ static void rionet_dbell_event(struct rio_mport *mport, 
void *dev_id, u16 sid, u
nets[rnet-mport-id].nact--;
} else {
if (netif_msg_intr(rnet))
-   printk(KERN_WARNING %s: unhandled doorbell\n,
-  DRV_NAME);
+   pr_warn(%s: unhandled doorbell\n, DRV_NAME);
}
  }

@@ -272,7 +270,7 @@ static void rionet_inb_msg_event(struct rio_mport *mport, 
void *dev_id, int mbox
rnet = netdev_priv(ndev);

if (netif_msg_intr(rnet))
-   printk(KERN_INFO %s: inbound message event, mbox %d slot %d\n,
+   pr_info(%s: inbound message event, mbox %d slot %d\n,
   DRV_NAME, mbox, slot);

spin_lock(rnet-lock);
@@ -295,9 +293,9 @@ static void rionet_outb_msg_event(struct rio_mport *mport, 
void *dev_id, int mbo
spin_lock(rnet-lock);

if (netif_msg_intr(rnet))
-   printk(KERN_INFO
-  %s: outbound message event, mbox %d slot %d\n,
-  DRV_NAME, mbox, slot);
+   pr_info(
+   %s: outbound message event, mbox %d slot %d\n,
+   DRV_NAME, mbox, slot);

while (rnet-tx_cnt  (rnet-ack_slot != slot)) {
/* dma unmap single */
@@ -321,7 +319,7 @@ static int rionet_open(struct net_device *ndev)
struct rionet_private *rnet = netdev_priv(ndev);

if (netif_msg_ifup(rnet))
-   printk(KERN_INFO %s: open\n, DRV_NAME);
+   pr_info(%s: open\n, DRV_NAME);

rc = rio_request_inb_dbell(rnet-mport,
   (void *)ndev,
@@ -332,10 +330,10 @@ static int rionet_open(struct net_device *ndev)
goto out;

rc = rio_request_inb_mbox(rnet-mport,
- (void *)ndev,
- RIONET_MAILBOX,
- RIONET_RX_RING_SIZE,
- rionet_inb_msg_event);
+   (void *)ndev,
+   RIONET_MAILBOX,
+   RIONET_RX_RING_SIZE,
+   rionet_inb_msg_event);
if (rc  0)
goto out;

@@ -366,9 +364,8 @@ static int rionet_open(struct net_device *ndev)
peer-res = rio_request_outb_dbell(peer-rdev,
 RIONET_DOORBELL_JOIN,
 RIONET_DOORBELL_LEAVE);
-   if (!peer || !peer-res)
-   {
-   

Re: [linux-yocto] [PATCH 15/57] LSI AXM55xx/rionet: Update RIO interfaces with latest changes.

2014-03-18 Thread Bruce Ashfield

Can we expand on 'latest changes' ? Reading this, we have no idea
what this adds ..

Bruce

On 14-03-18 12:56 AM, Charlie Paul wrote:

From: Michael Bringmann michael.bringm...@lsi.com

Signed-off-by: Michael Bringmann michael.bringm...@lsi.com
---
  drivers/net/rionet.c |  112 --
  1 file changed, 71 insertions(+), 41 deletions(-)

diff --git a/drivers/net/rionet.c b/drivers/net/rionet.c
index f433b59..bf79034 100644
--- a/drivers/net/rionet.c
+++ b/drivers/net/rionet.c
@@ -44,6 +44,7 @@ MODULE_LICENSE(GPL);
  #define RIONET_DOORBELL_LEAVE 0x1001

  #define RIONET_MAILBOX0
+#define RIONET_LETTER  0

  #define RIONET_TX_RING_SIZE   CONFIG_RIONET_TX_SIZE
  #define RIONET_RX_RING_SIZE   CONFIG_RIONET_RX_SIZE
@@ -98,10 +99,15 @@ static int rionet_rx_clean(struct net_device *ndev)
i = rnet-rx_slot;

do {
+   int sz, slot;
+   u16 destid;
+
if (!rnet-rx_skb[i])
continue;

-   if (!(data = rio_get_inb_message(rnet-mport, RIONET_MAILBOX)))
+   if (!(data = rio_get_inb_message(rnet-mport, RIONET_MAILBOX,
+RIONET_LETTER, sz, slot,
+destid)))
break;

rnet-rx_skb[i]-data = data;
@@ -145,8 +151,13 @@ static int rionet_queue_tx_msg(struct sk_buff *skb, struct 
net_device *ndev,
   struct rio_dev *rdev)
  {
struct rionet_private *rnet = netdev_priv(ndev);
+   intmbox_dest = 0;
+   intletter = 0;
+   intflags = 0;
+   void  *cookie = NULL;

-   rio_add_outb_message(rnet-mport, rdev, 0, skb-data, skb-len);
+   rio_add_outb_message(rnet-mport, rdev, mbox_dest, letter, flags,
+skb-data, skb-len, cookie);
rnet-tx_skb[rnet-tx_slot] = skb;

ndev-stats.tx_packets++;
@@ -174,11 +185,7 @@ static int rionet_start_xmit(struct sk_buff *skb, struct 
net_device *ndev)
unsigned long flags;
int add_num = 1;

-   local_irq_save(flags);
-   if (!spin_trylock(rnet-tx_lock)) {
-   local_irq_restore(flags);
-   return NETDEV_TX_LOCKED;
-   }
+   spin_lock_irqsave(rnet-tx_lock, flags);

if (is_multicast_ether_addr(eth-h_dest))
add_num = nets[rnet-mport-id].nact;
@@ -219,9 +226,14 @@ static void rionet_dbell_event(struct rio_mport *mport, 
void *dev_id, u16 sid, u
   u16 info)
  {
struct net_device *ndev = dev_id;
-   struct rionet_private *rnet = netdev_priv(ndev);
+   struct rionet_private *rnet;
struct rionet_peer *peer;

+   if (ndev == NULL)
+   return;
+
+   rnet = netdev_priv(ndev);
+
if (netif_msg_intr(rnet))
printk(KERN_INFO %s: doorbell sid %4.4x tid %4.4x info %4.4x,
   DRV_NAME, sid, tid, info);
@@ -252,22 +264,33 @@ static void rionet_inb_msg_event(struct rio_mport *mport, 
void *dev_id, int mbox
  {
int n;
struct net_device *ndev = dev_id;
-   struct rionet_private *rnet = netdev_priv(ndev);
+   struct rionet_private *rnet;
+
+   if (ndev == NULL)
+   return;
+
+   rnet = netdev_priv(ndev);

if (netif_msg_intr(rnet))
printk(KERN_INFO %s: inbound message event, mbox %d slot %d\n,
   DRV_NAME, mbox, slot);

spin_lock(rnet-lock);
-   if ((n = rionet_rx_clean(ndev)) != rnet-rx_slot)
+   n = rionet_rx_clean(ndev);
+   if (n != rnet-rx_slot)
rionet_rx_fill(ndev, n);
spin_unlock(rnet-lock);
  }

-static void rionet_outb_msg_event(struct rio_mport *mport, void *dev_id, int 
mbox, int slot)
+static void rionet_outb_msg_event(struct rio_mport *mport, void *dev_id, int 
mbox, int slot, void *cookie)
  {
struct net_device *ndev = dev_id;
-   struct rionet_private *rnet = netdev_priv(ndev);
+   struct rionet_private *rnet;
+
+   if (ndev == NULL)
+   return;
+
+   rnet = netdev_priv(ndev);

spin_lock(rnet-lock);

@@ -300,25 +323,29 @@ static int rionet_open(struct net_device *ndev)
if (netif_msg_ifup(rnet))
printk(KERN_INFO %s: open\n, DRV_NAME);

-   if ((rc = rio_request_inb_dbell(rnet-mport,
-   (void *)ndev,
-   RIONET_DOORBELL_JOIN,
-   RIONET_DOORBELL_LEAVE,
-   rionet_dbell_event))  0)
+   rc = rio_request_inb_dbell(rnet-mport,
+  (void *)ndev,
+  RIONET_DOORBELL_JOIN,
+  RIONET_DOORBELL_LEAVE,
+ 

Re: [linux-yocto] [PATCH 17/57] LSI AXM55xx: Configuration updates

2014-03-18 Thread Bruce Ashfield

Same comment, we can summarize what it adds to the device tree
in the commit log :)

Bruce

On 14-03-18 12:56 AM, Charlie Paul wrote:

From: Michael Bringmann michael.bringm...@lsi.com

Update the powerpc FDT settings for the latest AXXIA RIO code.

Signed-off-by: Michael Bringmann michael.bringm...@lsi.com
---
  arch/powerpc/boot/dts/acp25xx.dts |   49 +
  arch/powerpc/boot/dts/acp342x.dts |   37 ++
  arch/powerpc/boot/dts/acp344x.dts |   63 +
  arch/powerpc/boot/dts/acp35xx.dts |   25 +--
  4 files changed, 82 insertions(+), 92 deletions(-)

diff --git a/arch/powerpc/boot/dts/acp25xx.dts 
b/arch/powerpc/boot/dts/acp25xx.dts
index 4db67df..02f6a28 100644
--- a/arch/powerpc/boot/dts/acp25xx.dts
+++ b/arch/powerpc/boot/dts/acp25xx.dts
@@ -90,7 +90,7 @@
  clock-frequency = 0; // Filled in by zImage
  UART0: serial@00404000 {
  device_type = serial;
-compatible = acp-uart0;
+compatible = lsi,acp-uart0;
  enabled = 1;
  reg = 0x00404000 0x1000;
  clock-reg = 0x00408040 0x20;
@@ -101,7 +101,7 @@
  };
  UART1: serial@00405000 {
  device_type = serial;
-compatible = acp-uart1;
+compatible = lsi,acp-uart1;
  enabled = 0;
  reg = 0x00405000 0x1000;
  clock-reg = 0x00408060 0x20;
@@ -112,21 +112,21 @@
  };
  USB0: usb@004a4000 {
  device_type = usb;
-compatible = acp-usb;
+compatible = lsi,acp-usb;
  enabled = 0;
  reg = 0x004a4000 0x0002;
  interrupt-parent = MPIC;
  interrupts = 31;
  };
  I2C: i2c@00403000 {
-compatible = acp-i2c;
+compatible = lsi,acp-i2c;
  enabled = 0;
  reg = 0x00403000 0x1000;
  interrupt-parent = MPIC;
  interrupts = 21;
  };
  SSP: ssp@00402000 {
-compatible = acp-ssp;
+compatible = arm,acp-ssp;
  enabled = 0;
  reg = 0x00402000 0x1000;
  interrupt-parent = MPIC;
@@ -134,14 +134,14 @@
  };
  NAND: nand@0044 {
  device_type = nand;
-compatible = acp-nand;
+compatible = lsi,acp-nand;
  enabled = 1;
  reg = 0x0044 0x2
 0x0040c000 0x1000;
  };
  FEMAC: femac@0048 {
  device_type = network;
-compatible = acp-femac;
+compatible = lsi,acp-femac;
  enabled = 1;
  reg = 0x0048 0x1000
 0x00481000 0x1000
@@ -283,27 +283,20 @@
  ;
  };

-rio0: rapidio@f002 {
-compatible = acp,rapidio-delta;
+rio0: rapidio@0x21 {
+index = 0;
+status = okay;
+#address-cells = 2;
+#size-cells = 2;
+compatible = axxia,rapidio-delta;
  device_type = rapidio;
-enabled = 0;
-#size = 0;/* 0 = (256, small system)
- * 1 = (65536, large system) */
-/*
-#host-device-id = 1;
-*/
-/* =0 for enum;  0 for disc */
-/*
-num-dme = 1 0 1;
-*/
-/* (#outb-mseg, #outb-sseg, #inb */
-/*
-num-odme-mseg-desc = 2 128 128;
-num-odme-sseg-desc = 1 256;
-num-idme-desc = 1 512;
-*/
-reg = 0xf002 0x2 0x1000; /* SRIO Conf region */
-interrupt-parent = MPIC;
-interrupts = 30 0x2 /* NCP_INTR_MPIC_SRC_AXIS_SRIO */;
+reg = 

Re: [linux-yocto] [PATCH 31/57] arm/axxia: improved robustness for DDR retention

2014-03-18 Thread Bruce Ashfield

On 14-03-18 12:56 AM, Charlie Paul wrote:

From: Gary McGee gary.mc...@lsi.com


Again, we are missing the what we changed part of the commit log .. and
why it works!

Bruce



Signed-off-by: Gary McGee gary.mc...@lsi.com
---
  arch/arm/mach-axxia/Makefile|2 +-
  arch/arm/mach-axxia/ddr_retention.c |   96 --
  arch/arm/mach-axxia/ddr_shutdown.c  |  331 +++
  3 files changed, 365 insertions(+), 64 deletions(-)
  create mode 100644 arch/arm/mach-axxia/ddr_shutdown.c

diff --git a/arch/arm/mach-axxia/Makefile b/arch/arm/mach-axxia/Makefile
index 4d41b15..b4b8dd2 100644
--- a/arch/arm/mach-axxia/Makefile
+++ b/arch/arm/mach-axxia/Makefile
@@ -7,7 +7,7 @@ obj-y   += io.o
  obj-y += ncr.o
  obj-y += timers.o
  obj-y += pci.o
-obj-y  += ddr_retention.o
+obj-y  += ddr_retention.o ddr_shutdown.o
  obj-$(CONFIG_I2C) += i2c.o
  obj-$(CONFIG_SMP) += platsmp.o headsmp.o
  obj-$(CONFIG_ARCH_AXXIA_GIC)  += axxia-gic.o
diff --git a/arch/arm/mach-axxia/ddr_retention.c 
b/arch/arm/mach-axxia/ddr_retention.c
index bcedf33..35dbfcb 100644
--- a/arch/arm/mach-axxia/ddr_retention.c
+++ b/arch/arm/mach-axxia/ddr_retention.c
@@ -36,7 +36,6 @@
  static void __iomem *nca;
  static void __iomem *apb;
  static void __iomem *dickens;
-static void __iomem *femac;
  static int ddr_retention_enabled;

  enum {
@@ -229,60 +228,33 @@ static inline void cpu_disable_l2_prefetch(void)
  }

  static inline void
-ncp_ddr_shutdown(unsigned long ctl_244)
+reset_elm_trace(void)
  {
-   unsigned long value;
-
-   cpu_disable_l2_prefetch();
-
-   /*
-* put SDRAM in self-refresh mode
-*/
-   ncr_write(NCP_REGION_ID(34, 0), 0x3d0, 4, ctl_244);
-   ncr_write(NCP_REGION_ID(15, 0), 0x3d0, 4, ctl_244);
-
-   /* check interrupt status for completion */
-   /* CDR1 - word offset 0x104 (byte offset 0x410) */
-   do {
-   ncr_read(NCP_REGION_ID(34, 0), 0x410, 4, value);
-   } while ((value  0x0200) == 0);
+   /* reset and disable ELM trace */
+   ncr_register_write(htonl(0x000fff04), (unsigned *) (apb + 0x68000));
+   ncr_register_write(htonl(0x000fff04), (unsigned *) (apb + 0x78000));

-   do {
-   ncr_read(NCP_REGION_ID(15, 0), 0x410, 4, value);
-   } while ((value  0x0200) == 0);
-
-   /*
-Indicate DDR Retention Reset
-*/
-
-   /* set bit 0 of persist_scratch */
-   writel_relaxed(0x0001, apb + 0x300dc);
+   /* reset ELM statistics */
+   ncr_register_write(htonl(0x1), (unsigned *) (apb + 0x60230));
+   ncr_register_write(htonl(0x1), (unsigned *) (apb + 0x70230));

-   /*
-* Issue Chip Reset
-*/
+   /* enable ELM trace */
+   ncr_register_write(htonl(0x000fff01), (unsigned *) (apb + 0x68000));
+   ncr_register_write(htonl(0x000fff01), (unsigned *) (apb + 0x78000));
+}

-   /* Intrnl Boot, 0x Target */
-   writel_relaxed(0x0040, apb + 0x31004);
-   /* Set ResetReadDone */
-   writel_relaxed(0x8000, apb + 0x3180c);
-   /* Chip Reset */
-   writel_relaxed(0x00080802, apb + 0x31008);

-   wfi();
-   while (1)
-   ;
-   __asm__ __volatile__(nop\n\t);
+extern void ncp_ddr_shutdown(void *, void *,  unsigned long );

-   return;
-}

  void
  initiate_retention_reset(void)
  {
unsigned long ctl_244 = 0;
unsigned long value;
-   unsigned cpu_id;
+   unsigned cpu_id ;
+   volatile long tmp;
+   volatile long *ptmp;

if (0 == ddr_retention_enabled) {
pr_info(DDR Retention Reset is Not Enabled\n);
@@ -292,19 +264,17 @@ initiate_retention_reset(void)
if (NULL == nca || NULL == apb || NULL == dickens)
BUG();

-   /* kill the femac */
-   writel(0x8000, (femac+0x2000));
-   value = readl(femac + 0x2000);
-
preempt_disable();
cpu_id = smp_processor_id();
-   udelay(1000);
+
/* send stop message to other CPUs */
local_irq_disable();
+   local_fiq_disable();
asm volatile (dsb : : : memory);
asm volatile (dmb : : : memory);
system_state = SYSTEM_RESTART;
smp_send_stop();
+   udelay(1000);

flush_cache_all();
flush_l3();
@@ -314,11 +284,6 @@ initiate_retention_reset(void)
quiesce_vp_engine(AXXIA_ENGINE_CNAL);


-   /* disable sysmem interrupts */
-   value = 0;
-   ncr_write(NCP_REGION_ID(34, 0), 0x414, 4, value);
-   ncr_write(NCP_REGION_ID(15, 0), 0x414, 4, value);
-
/* unlock reset register for later */
writel(0x00ab, apb + 0x31000); /* Access Key */

@@ -327,21 +292,27 @@ initiate_retention_reset(void)

Re: [linux-yocto] [linux-yocto-dev][PATCH] meta: Add kernel meta to support edgerouter

2014-03-18 Thread Yang,Wei

On 03/18/2014 11:32 PM, Bruce Ashfield wrote:

On 14-03-18 01:09 AM, wei.y...@windriver.com wrote:

From: Yang Wei wei.y...@windriver.com

Signed-off-by: Yang Wei wei.y...@windriver.com
---

Hi Bruce,

Just like what you knew, this BSP would be released in yocto 1.6, so
I added the kernel meta based on linux-yotco-dev.


I've created the standard/edgerouter branch, and merged the meta data.
We'll need to get a summary of what works on the board in a README, but
there's no need to hold this merge on it.

Bruce


In fact, there is a warning call trace during boot stage, I already 
created a patch and sent MIPS linux ML, once
this review on my patch is done, I would send it to you. Additionally, I 
also would add this summary in README.hardware, and

then also send it to you.

Thanks
Wei




Thanks
Wei

  .../bsp/edgerouter/edgerouter-standard.scc |   11 
  .../cfg/kernel-cache/bsp/edgerouter/edgerouter.cfg |   67 


  .../cfg/kernel-cache/bsp/edgerouter/edgerouter.scc |3 +
  3 files changed, 81 insertions(+)
  create mode 100644 
meta/cfg/kernel-cache/bsp/edgerouter/edgerouter-standard.scc

  create mode 100644 meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.cfg
  create mode 100644 meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.scc

diff --git 
a/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter-standard.scc 
b/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter-standard.scc

new file mode 100644
index 000..5d6c692
--- /dev/null
+++ b/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter-standard.scc
@@ -0,0 +1,11 @@
+define KMACHINE edgerouter
+define KTYPE standard
+define KARCH mips
+include ktypes/standard/standard.scc
+
+branch edgerouter
+
+include edgerouter.scc
+
+# default policy for standard kernels
+include features/profiling/profiling.scc
diff --git a/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.cfg 
b/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.cfg

new file mode 100644
index 000..7362468
--- /dev/null
+++ b/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.cfg
@@ -0,0 +1,67 @@
+#SOC
+CONFIG_CAVIUM_OCTEON_SOC=y
+CONFIG_CAVIUM_CN63XXP1=y
+CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE=2
+
+#Kernel
+CONFIG_SMP=y
+CONFIG_NR_CPUS=32
+#Executable file formats
+CONFIG_MIPS32_COMPAT=y
+CONFIG_MIPS32_O32=y
+CONFIG_MIPS32_N32=y
+
+
+#PCI
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+
+#I2C
+CONFIG_I2C=y
+CONFIG_I2C_OCTEON=y
+
+CONFIG_HW_RANDOM_OCTEON=y
+
+#SPI
+CONFIG_SPI=y
+CONFIG_SPI_OCTEON=y
+#RTC
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_DS1307=y
+
+#Misc
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=y
+CONFIG_OCTEON_WDT=y
+
+CONFIG_STAGING=y
+
+#Ethernet
+CONFIG_OCTEON_ETHERNET=y
+CONFIG_OCTEON_MGMT_ETHERNET=y
+CONFIG_MDIO_OCTEON=y
+
+#PHY
+CONFIG_MARVELL_PHY=y
+CONFIG_BROADCOM_PHY=y
+CONFIG_BCM87XX_PHY=y
+
+
+#USB
+CONFIG_USB=y
+CONFIG_OCTEON_USB=y
+CONFIG_USB_OCTEON_EHCI=y
+CONFIG_USB_OCTEON_OHCI=y
+CONFIG_USB_OCTEON2_COMMON=y
+
+CONFIG_MTD=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=2
+CONFIG_SERIAL_8250_RUNTIME_UARTS=2
+CONFIG_SERIAL_8250_DW=y
diff --git a/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.scc 
b/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.scc

new file mode 100644
index 000..33f26cc
--- /dev/null
+++ b/meta/cfg/kernel-cache/bsp/edgerouter/edgerouter.scc
@@ -0,0 +1,3 @@
+kconf hardware edgerouter.cfg
+include cfg/usb-mass-storage.scc
+include cfg/fs/vfat.scc







--
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 0/2] [PATCH] linux-yocto-3.10: meta: new config layer for Valley Island BSP add request

2014-03-18 Thread rebecca . swee . fun . chang
From: Chang, Rebecca Swee Fun rebecca.swee.fun.ch...@intel.com

Hi all,

This is a pull request for Valley Island BSP in linux-yocto-3.10.
This pull request is to add configs and scc files for Valley Island BSP
and also configs for Valley Island LPSS I/O device drivers.

The PCI mode Valley Island I/O device drivers are in plan to host in a feature
branch resides in linux-yocto-3.10. The feature branch will be send out for
review in the near future.

Meanwhile, Valley Island BSP will only supports ACPI mode device drivers
that was being backported from LTSI kernel.

These patches were meant to pull into linux-yocto-3.10 meta branch.

Thanks.

Rebecca

The following changes since commit 284e9589436a5b199cf44b7261640c944558a35e:

  meta: efi.cfg/efi-ext.cfg: add EFIVAR_FS to default efi fragment (2014-03-13 
12:26:08 -0400)

are available in the git repository at:

  git://git.yoctoproject.org/linux-yocto-contrib rebeccas/meta-dev-1
  
http://git.yoctoproject.org/cgit.cgi/linux-yocto-contrib/log/?h=rebeccas/meta-dev-1

Chang, Rebecca Swee Fun (2):
  meta: add cfg and scc files for valleyisland io features
  meta: add new bsp config layer for valleyisland

 .../valleyisland/valleyisland-32-preempt-rt.scc|   16 ++
 .../bsp/valleyisland/valleyisland-32-standard.scc  |   15 +
 .../bsp/valleyisland/valleyisland-32.scc   |   22 
 .../bsp/valleyisland/valleyisland-preempt-rt.scc   |   16 ++
 .../bsp/valleyisland/valleyisland-standard.scc |   15 +
 .../kernel-cache/bsp/valleyisland/valleyisland.cfg |   58 
 .../kernel-cache/bsp/valleyisland/valleyisland.scc |   22 
 .../features/valleyisland-io/valleyisland-io.cfg   |   30 ++
 .../features/valleyisland-io/valleyisland-io.scc   |4 ++
 9 files changed, 198 insertions(+)
 create mode 100644 
meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32-preempt-rt.scc
 create mode 100644 
meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32-standard.scc
 create mode 100644 meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32.scc
 create mode 100644 
meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-preempt-rt.scc
 create mode 100644 
meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-standard.scc
 create mode 100644 meta/cfg/kernel-cache/bsp/valleyisland/valleyisland.cfg
 create mode 100644 meta/cfg/kernel-cache/bsp/valleyisland/valleyisland.scc
 create mode 100644 
meta/cfg/kernel-cache/features/valleyisland-io/valleyisland-io.cfg
 create mode 100644 
meta/cfg/kernel-cache/features/valleyisland-io/valleyisland-io.scc

-- 
1.7.10.4

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto


[linux-yocto] [PATCH 2/2] meta: add new bsp config layer for valleyisland

2014-03-18 Thread rebecca . swee . fun . chang
From: Chang, Rebecca Swee Fun rebecca.swee.fun.ch...@intel.com

Added configs and scc files for Valley Island BSP.

Signed-off-by: Chang, Rebecca Swee Fun rebecca.swee.fun.ch...@intel.com
---
 .../valleyisland/valleyisland-32-preempt-rt.scc|   16 ++
 .../bsp/valleyisland/valleyisland-32-standard.scc  |   15 +
 .../bsp/valleyisland/valleyisland-32.scc   |   22 
 .../bsp/valleyisland/valleyisland-preempt-rt.scc   |   16 ++
 .../bsp/valleyisland/valleyisland-standard.scc |   15 +
 .../kernel-cache/bsp/valleyisland/valleyisland.cfg |   58 
 .../kernel-cache/bsp/valleyisland/valleyisland.scc |   22 
 7 files changed, 164 insertions(+)
 create mode 100644 
meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32-preempt-rt.scc
 create mode 100644 
meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32-standard.scc
 create mode 100644 meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32.scc
 create mode 100644 
meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-preempt-rt.scc
 create mode 100644 
meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-standard.scc
 create mode 100644 meta/cfg/kernel-cache/bsp/valleyisland/valleyisland.cfg
 create mode 100644 meta/cfg/kernel-cache/bsp/valleyisland/valleyisland.scc

diff --git 
a/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32-preempt-rt.scc 
b/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32-preempt-rt.scc
new file mode 100644
index 000..a733773
--- /dev/null
+++ b/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32-preempt-rt.scc
@@ -0,0 +1,16 @@
+define KMACHINE valleyisland-32
+define KTYPE preempt-rt
+define KARCH i386
+
+# no new branch required, re-use the ktypes/preempt-rt/preempt-rt.scc branch
+include ktypes/preempt-rt/preempt-rt.scc
+
+include valleyisland-32.scc
+
+include cfg/efi-ext.scc
+
+# default policy for preempt-rt kernels
+include cfg/usb-mass-storage.scc
+include cfg/boot-live.scc
+include features/latencytop/latencytop.scc
+include features/profiling/profiling.scc
diff --git 
a/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32-standard.scc 
b/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32-standard.scc
new file mode 100644
index 000..3050bc7
--- /dev/null
+++ b/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32-standard.scc
@@ -0,0 +1,15 @@
+define KMACHINE valleyisland-32
+define KTYPE standard
+define KARCH i386
+
+include ktypes/standard/standard.scc
+
+include valleyisland-32.scc
+
+include cfg/efi-ext.scc
+
+# default policy for standard kernels
+include cfg/usb-mass-storage.scc
+include cfg/boot-live.scc
+include features/latencytop/latencytop.scc
+include features/profiling/profiling.scc
diff --git a/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32.scc 
b/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32.scc
new file mode 100644
index 000..3f71467
--- /dev/null
+++ b/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-32.scc
@@ -0,0 +1,22 @@
+kconf hardware valleyisland.cfg
+
+include cfg/x86.scc
+include cfg/efi.scc
+include cfg/dmaengine.scc
+include cfg/8250.scc
+
+include features/power/intel.scc
+
+include features/i2c/i2c.scc
+include features/i2c/i2cdev.scc
+
+include features/i915/i915.scc
+
+include features/intel-e1/intel-e100.scc
+include features/intel-e1/intel-e1.scc
+
+include features/spi/spi.scc
+include features/spi/spidev.scc
+
+include features/usb/ehci-hcd.scc
+include features/usb/xhci-hcd.scc
diff --git a/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-preempt-rt.scc 
b/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-preempt-rt.scc
new file mode 100644
index 000..ed11e0d
--- /dev/null
+++ b/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-preempt-rt.scc
@@ -0,0 +1,16 @@
+define KMACHINE valleyisland
+define KTYPE preempt-rt
+define KARCH x86_64
+
+# no new branch required, re-use the ktypes/preempt-rt/preempt-rt.scc branch
+include ktypes/preempt-rt/preempt-rt.scc
+
+include valleyisland.scc
+
+include cfg/efi-ext.scc
+
+# default policy for preempt-rt kernels
+include cfg/usb-mass-storage.scc
+include cfg/boot-live.scc
+include features/latencytop/latencytop.scc
+include features/profiling/profiling.scc
diff --git a/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-standard.scc 
b/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-standard.scc
new file mode 100644
index 000..1d946be
--- /dev/null
+++ b/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland-standard.scc
@@ -0,0 +1,15 @@
+define KMACHINE valleyisland
+define KTYPE standard
+define KARCH x86_64
+
+include ktypes/standard/standard.scc
+
+include valleyisland.scc
+
+include cfg/efi-ext.scc
+
+# default policy for standard kernels
+include cfg/usb-mass-storage.scc
+include cfg/boot-live.scc
+include features/latencytop/latencytop.scc
+include features/profiling/profiling.scc
diff --git a/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland.cfg 
b/meta/cfg/kernel-cache/bsp/valleyisland/valleyisland.cfg

Re: [linux-yocto] [PATCH 1/2] meta: add cfg and scc files for valleyisland io features

2014-03-18 Thread Darren Hart
On 3/19/14, 3:20, rebecca.swee.fun.ch...@intel.com
rebecca.swee.fun.ch...@intel.com wrote:

From: Chang, Rebecca Swee Fun rebecca.swee.fun.ch...@intel.com

Added Valley Island LPSS I/O device drivers configs.

The feature looks good, but we do need to include a more complete
description in the commit log. Specifics about what Valley Island is,
for example, would be welcome. Which CPU/SoC in particular. Some of what
you mentioned in your cover letter might better added to the two commit
messages themselves.

--
Darren


Signed-off-by: Chang, Rebecca Swee Fun rebecca.swee.fun.ch...@intel.com
---
 .../features/valleyisland-io/valleyisland-io.cfg   |   30

 .../features/valleyisland-io/valleyisland-io.scc   |4 +++
 2 files changed, 34 insertions(+)
 create mode 100644
meta/cfg/kernel-cache/features/valleyisland-io/valleyisland-io.cfg
 create mode 100644
meta/cfg/kernel-cache/features/valleyisland-io/valleyisland-io.scc

diff --git 
a/meta/cfg/kernel-cache/features/valleyisland-io/valleyisland-io.cfg
b/meta/cfg/kernel-cache/features/valleyisland-io/valleyisland-io.cfg
new file mode 100644
index 000..7aa630b
--- /dev/null
+++ b/meta/cfg/kernel-cache/features/valleyisland-io/valleyisland-io.cfg
@@ -0,0 +1,30 @@
+#GPIO Support
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_ACPI=y
+CONFIG_GPIO_BAYTRAIL=y
+
+# I2C Support
+CONFIG_I2C_DESIGNWARE_CORE=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+
+# SPI Support
+CONFIG_SPI_PXA2XX_DMA=y
+CONFIG_SPI_PXA2XX=y
+
+# UART Support
+CONFIG_SERIAL_8250_DW=y
+
+# DMA Support
+CONFIG_DW_DMAC=y
+
+# PWM Support
+CONFIG_PWM=y
+CONFIG_PWM_LPSS=y
+
+# PINCTRL Support
+CONFIG_PINCTRL=y
+CONFIG_PINMUX=y
+CONFIG_PINCONF=y
+CONFIG_PINCTRL_BAYTRAIL=y
+CONFIG_PINCTRL_BAYTRAIL_DEVICE=y
diff --git 
a/meta/cfg/kernel-cache/features/valleyisland-io/valleyisland-io.scc
b/meta/cfg/kernel-cache/features/valleyisland-io/valleyisland-io.scc
new file mode 100644
index 000..90c2646
--- /dev/null
+++ b/meta/cfg/kernel-cache/features/valleyisland-io/valleyisland-io.scc
@@ -0,0 +1,4 @@
+define KFEATURE_DESCRIPTION Enable Valley Island LPSS I/O Devices
+define KFEATURE_COMPATIBILITY arch
+
+kconf hardware valleyisland-io.cfg
-- 
1.7.10.4

-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto



-- 
Darren Hart
Yocto Project - Linux Kernel
Intel Open Source Technology Center




-- 
___
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto