All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ARM: print FPGA info on plat-versatile variants
@ 2011-01-27 11:48 Linus Walleij
  2011-01-30 19:59 ` Russell King - ARM Linux
  0 siblings, 1 reply; 8+ messages in thread
From: Linus Walleij @ 2011-01-27 11:48 UTC (permalink / raw)
  To: linux-arm-kernel

This adds a small piece of code that displays some basic FPGA
characteristics for the Integrator, Versatile, RealView and
Versatile Express reference platforms. Tested on RealView
variants.

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
---
 arch/arm/plat-versatile/Makefile  |    2 +-
 arch/arm/plat-versatile/fpga-id.c |  173 +++++++++++++++++++++++++++++++++++++
 2 files changed, 174 insertions(+), 1 deletions(-)
 create mode 100644 arch/arm/plat-versatile/fpga-id.c

diff --git a/arch/arm/plat-versatile/Makefile b/arch/arm/plat-versatile/Makefile
index 16dde08..2d4f8aa 100644
--- a/arch/arm/plat-versatile/Makefile
+++ b/arch/arm/plat-versatile/Makefile
@@ -1,4 +1,4 @@
-obj-y	:= clock.o
+obj-y	:= clock.o fpga-id.o
 ifneq ($(CONFIG_ARCH_INTEGRATOR),y)
 obj-y	+= sched-clock.o
 endif
diff --git a/arch/arm/plat-versatile/fpga-id.c b/arch/arm/plat-versatile/fpga-id.c
new file mode 100644
index 0000000..e541715
--- /dev/null
+++ b/arch/arm/plat-versatile/fpga-id.c
@@ -0,0 +1,173 @@
+/*
+ * Some simple code to read out the FPGA ID of the Integrator,
+ * Versatile, RealView or RealView Express systems during boot
+ * and print it to the console.
+ *
+ * License terms: GNU General Public License (GPL) version 2
+ * Author: Linus Walleij <linus.walleij@stericsson.com>
+ */
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <asm/mach-types.h>
+#include <mach/hardware.h>
+#include <mach/platform.h>
+
+struct versatile_fpga_id {
+	u8 man:4;
+	u8 rev:4;
+	u16 board:12;
+	u8 var:4;
+	u8 arch:4;
+	u8 fpga_build;
+};
+
+static struct versatile_fpga_id fpga_id;
+
+static inline bool machine_is_versatile(void)
+{
+	return machine_is_versatile_pb() ||
+		machine_is_versatile_ab();
+
+}
+
+static inline bool machine_is_realview(void)
+{
+	return machine_is_realview_eb() ||
+		machine_is_realview_pb11mp() ||
+		machine_is_realview_pb1176() ||
+		machine_is_realview_pba8() ||
+		machine_is_realview_pbx();
+}
+
+static inline bool integrator_or_versatile(void)
+{
+	return machine_is_integrator() ||
+		machine_is_versatile();
+}
+
+void __init versatile_fpga_probe(void)
+{
+	u32 val;
+	void __iomem *sysid_reg;
+
+	/*
+	 * The #ifdef statements here are for supporting multiarch
+	 * builds gracefully.
+	 */
+	if (machine_is_integrator())
+#ifdef CONFIG_ARCH_INTEGRATOR
+		sysid_reg = __io_address(INTEGRATOR_SC_ID);
+#else
+		return;
+#endif
+	else if (machine_is_versatile())
+#ifdef CONFIG_ARCH_VERSATILE
+		sysid_reg = __io_address(VERSATILE_SYS_ID);
+#else
+		return;
+#endif
+	else if (machine_is_realview())
+#ifdef CONFIG_ARCH_REALVIEW
+		sysid_reg = __io_address(REALVIEW_SYS_ID);
+#else
+		return;
+#endif
+	else if (machine_is_vexpress())
+#ifdef CONFIG_ARCH_VEXPRESS
+		sysid_reg = MMIO_P2V(V2M_SYS_ID);
+#else
+		return;
+#endif
+	else
+		return;
+
+	val = readl(sysid_reg);
+	/* The Integrator and Versatile have an older register layout */
+	if (machine_is_integrator()) {
+		fpga_id.man = (val >> 24) & 0x0FU;
+		fpga_id.board = (val >> 12) & 0x0FU;
+		fpga_id.arch = (val >> 16) & 0x0FF;
+		fpga_id.fpga_build = (val >> 4) & 0xFFU;
+		fpga_id.rev = val & 0x0FU;
+	} else if (machine_is_versatile()) {
+		/* Versatile PB is for example 0x41007004 */
+		fpga_id.man = (val >> 24) & 0x0FU;
+		fpga_id.board = (val >> 12) & 0x0FU;
+		fpga_id.arch = val & 0x0FU;
+		fpga_id.fpga_build = (val >> 4) & 0xFFU;
+	} else {
+		/* RealView or Versatile Express */
+		fpga_id.rev = (val >> 28) & 0x0FU;
+		fpga_id.board = (val >> 16) & 0xFFFU;
+		fpga_id.var = (val >> 12) & 0x0FU;
+		fpga_id.arch = (val >> 8) & 0x0FU;
+		fpga_id.fpga_build = val & 0xFFU;
+	}
+
+	pr_info("RealView system FPGA\n");
+
+	/* Manufacturer */
+	if (integrator_or_versatile())
+		pr_info("    manufacturer: %02x\n", fpga_id.man);
+
+	/* Single letter revision */
+	if (fpga_id.rev == 0x0F)
+		pr_info("    revision: ALL\n");
+	else
+		pr_info("    revision: %c\n", 'A' + fpga_id.rev);
+
+	switch (fpga_id.board) {
+	case 1:
+		/* Integrator */
+		pr_info("    board: XC4062\n");
+		break;
+	case 2:
+		/* Integrator */
+		pr_info("    board: XC4085\n");
+		break;
+	case 7:
+		/* Versatile */
+		pr_info("    board: XC2V2000\n");
+		break;
+	default:
+		/*
+		 * This is BCD-coded according to the PBX-A9 manual
+		 * and examples, IDs used in RealView and Versatile
+		 * Express.
+		 */
+		pr_info("    board: HBI-%03x\n", fpga_id.board);
+		break;
+	}
+
+	/* Single letter variant */
+	if (!integrator_or_versatile()) {
+		if (fpga_id.var == 0x0F)
+			pr_info("    variant: ALL\n");
+		else
+			pr_info("    variant: %c\n", 'A' + fpga_id.rev);
+	}
+
+	switch (fpga_id.arch) {
+	case 0:
+		pr_info("    architecture: ASB LE\n");
+		break;
+	case 1:
+		pr_info("    architecture: AHB LE\n");
+		break;
+	case 4:
+		pr_info("    architecture: AHB\n");
+		break;
+	case 5:
+		pr_info("    architecture: AXI\n");
+		break;
+	default:
+		pr_info("    architecture: %01x (unknown)\n", fpga_id.arch);
+		break;
+	}
+
+	/* This is BCD-coded according to the PBX-A9 manual */
+	pr_info("    FPGA build %02x\n", fpga_id.fpga_build);
+}
+
+arch_initcall(versatile_fpga_probe);
-- 
1.7.3.2

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH] ARM: print FPGA info on plat-versatile variants
  2011-01-27 11:48 [PATCH] ARM: print FPGA info on plat-versatile variants Linus Walleij
@ 2011-01-30 19:59 ` Russell King - ARM Linux
  2011-01-31 10:26   ` Linus Walleij
  2011-01-31 18:13   ` Linus Walleij
  0 siblings, 2 replies; 8+ messages in thread
From: Russell King - ARM Linux @ 2011-01-30 19:59 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jan 27, 2011 at 12:48:10PM +0100, Linus Walleij wrote:
> This adds a small piece of code that displays some basic FPGA
> characteristics for the Integrator, Versatile, RealView and
> Versatile Express reference platforms. Tested on RealView
> variants.

I think it needs a few tweaks for Versatile Express:

arch/arm/plat-versatile/fpga-id.c:14:27: error: mach/platform.h: No such file or directory
arch/arm/plat-versatile/fpga-id.c: In function ?versatile_fpga_probe?:
arch/arm/plat-versatile/fpga-id.c:78: error: implicit declaration of function ?MMIO_P2V?
arch/arm/plat-versatile/fpga-id.c:78: error: ?V2M_SYS_ID? undeclared (first use in this function)
arch/arm/plat-versatile/fpga-id.c:78: error: (Each undeclared identifier is reported only once
arch/arm/plat-versatile/fpga-id.c:78: error: for each function it appears in.)
arch/arm/plat-versatile/fpga-id.c:78: warning: assignment makes pointer from integer without a cast
arch/arm/plat-versatile/fpga-id.c: At top level:
arch/arm/plat-versatile/fpga-id.c:173: warning: initialization from incompatible pointer type

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] ARM: print FPGA info on plat-versatile variants
  2011-01-30 19:59 ` Russell King - ARM Linux
@ 2011-01-31 10:26   ` Linus Walleij
  2011-01-31 10:58     ` Colin Tuckley
  2011-01-31 18:13   ` Linus Walleij
  1 sibling, 1 reply; 8+ messages in thread
From: Linus Walleij @ 2011-01-31 10:26 UTC (permalink / raw)
  To: linux-arm-kernel

2011/1/30 Russell King - ARM Linux <linux@arm.linux.org.uk>:

> On Thu, Jan 27, 2011 at 12:48:10PM +0100, Linus Walleij wrote:
>> This adds a small piece of code that displays some basic FPGA
>> characteristics for the Integrator, Versatile, RealView and
>> Versatile Express reference platforms. Tested on RealView
>> variants.
>
> I think it needs a few tweaks for Versatile Express:

I have a problem to do regression compilation on vexpress
since it lacks a defconfig, does anyone one at hand?

Or is there some other preferred way of testing vexpress?

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] ARM: print FPGA info on plat-versatile variants
  2011-01-31 10:26   ` Linus Walleij
@ 2011-01-31 10:58     ` Colin Tuckley
  0 siblings, 0 replies; 8+ messages in thread
From: Colin Tuckley @ 2011-01-31 10:58 UTC (permalink / raw)
  To: linux-arm-kernel

> -----Original Message-----
> kernel-bounces at lists.infradead.org] On Behalf Of Linus Walleij

> I have a problem to do regression compilation on vexpress
> since it lacks a defconfig, does anyone one at hand?

Linked from www.arm.com/linux (The linux OS Downloads tab)

http://www.linux-arm.org/git?p=ael.git;a=blob_plain;f=kernel/config/2.6.35-a
rm1/config-2.6.35-arm1-vexpress-v7-smp-thumb;hb=2010q4

Colin

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] ARM: print FPGA info on plat-versatile variants
  2011-01-30 19:59 ` Russell King - ARM Linux
  2011-01-31 10:26   ` Linus Walleij
@ 2011-01-31 18:13   ` Linus Walleij
  1 sibling, 0 replies; 8+ messages in thread
From: Linus Walleij @ 2011-01-31 18:13 UTC (permalink / raw)
  To: linux-arm-kernel

2011/1/30 Russell King - ARM Linux <linux@arm.linux.org.uk>:

> I think it needs a few tweaks for Versatile Express:
>
> arch/arm/plat-versatile/fpga-id.c:14:27: error: mach/platform.h: No such file or directory
> arch/arm/plat-versatile/fpga-id.c: In function ?versatile_fpga_probe?:
> arch/arm/plat-versatile/fpga-id.c:78: error: implicit declaration of function ?MMIO_P2V?

Aha, I figured out this is impossible to solve without falling
back to either:

- The old patch approach adding hooks to each platform calling
  here with the offset address or,
- Rework the driver supplying some platform data and a
  platform device for it feels like overkill.
- Rearchitecture vexpress to use same macros as RealView
  or so.

Because MMIO_P2V is local in mach-vexpress/core.h
and cannot be used outside the machine, e.g. in the platform.

This is not useful enough to keep hacking at, it was a little bit useful
but let's just drop it for now, I'll take the patch out of the tracker.

Linus Walleij

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] ARM: print FPGA info on plat-versatile variants
  2011-01-24 17:30 ` Russell King - ARM Linux
@ 2011-01-24 19:05   ` Linus Walleij
  0 siblings, 0 replies; 8+ messages in thread
From: Linus Walleij @ 2011-01-24 19:05 UTC (permalink / raw)
  To: linux-arm-kernel

2011/1/24 Russell King - ARM Linux <linux@arm.linux.org.uk>:
> On Mon, Oct 18, 2010 at 07:23:55PM +0200, Linus Walleij wrote:
>> This adds a small piece of code that displays some basic FPGA
>> characteristics for the Integrator, Versatile, RealView and
>> Versatile Express reference platforms, then hooks it into
>> respective platform startup code.
>
> Firstly, isn't this shown on the character LCD screen at boot, so I wonder
> what the value of this is.

Two things: the RealView EB, PB11MPCore, PBA8, PBA9 nor
the integrator board have the character LCD.

Then I've added a driver for the Char LCD so that you loose this
information if you use the LCD for anything, but yes, it is available
while booting.

> Secondly, with your revised patch, it could really do without adding more
> non-timer stuff back into the timer initialization function when I've just
> removed non-timer stuff from it. ?I don't see that there's anything
> particularly urgent about printing this information, so can't it be a
> normal initcall?

No problem, this was mainly to get it out as early as possible.
I'll fix it up.

Thanks,
Linus Walleij

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] ARM: print FPGA info on plat-versatile variants
  2010-10-18 17:23 Linus Walleij
@ 2011-01-24 17:30 ` Russell King - ARM Linux
  2011-01-24 19:05   ` Linus Walleij
  0 siblings, 1 reply; 8+ messages in thread
From: Russell King - ARM Linux @ 2011-01-24 17:30 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Oct 18, 2010 at 07:23:55PM +0200, Linus Walleij wrote:
> This adds a small piece of code that displays some basic FPGA
> characteristics for the Integrator, Versatile, RealView and
> Versatile Express reference platforms, then hooks it into
> respective platform startup code.

Firstly, isn't this shown on the character LCD screen at boot, so I wonder
what the value of this is.

Secondly, with your revised patch, it could really do without adding more
non-timer stuff back into the timer initialization function when I've just
removed non-timer stuff from it.  I don't see that there's anything
particularly urgent about printing this information, so can't it be a
normal initcall?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] ARM: print FPGA info on plat-versatile variants
@ 2010-10-18 17:23 Linus Walleij
  2011-01-24 17:30 ` Russell King - ARM Linux
  0 siblings, 1 reply; 8+ messages in thread
From: Linus Walleij @ 2010-10-18 17:23 UTC (permalink / raw)
  To: linux-arm-kernel

This adds a small piece of code that displays some basic FPGA
characteristics for the Integrator, Versatile, RealView and
Versatile Express reference platforms, then hooks it into
respective platform startup code.

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
---
 arch/arm/mach-integrator/core.c                |    2 +
 arch/arm/mach-realview/core.c                  |    2 +
 arch/arm/mach-versatile/core.c                 |    2 +
 arch/arm/mach-vexpress/v2m.c                   |    2 +
 arch/arm/plat-versatile/Makefile               |    2 +-
 arch/arm/plat-versatile/fpga-id.c              |  123 ++++++++++++++++++++++++
 arch/arm/plat-versatile/include/plat/fpga-id.h |    1 +
 7 files changed, 133 insertions(+), 1 deletions(-)
 create mode 100644 arch/arm/plat-versatile/fpga-id.c
 create mode 100644 arch/arm/plat-versatile/include/plat/fpga-id.h

diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c
index 8f4fb6d..4272bfd 100644
--- a/arch/arm/mach-integrator/core.c
+++ b/arch/arm/mach-integrator/core.c
@@ -32,6 +32,7 @@
 #include <asm/leds.h>
 #include <asm/mach/time.h>
 #include <asm/pgtable.h>
+#include <plat/fpga-id.h>
 
 static struct amba_pl010_data integrator_uart_data;
 
@@ -149,6 +150,7 @@ static int __init integrator_init(void)
 {
 	int i;
 
+	versatile_fpga_probe(IO_ADDRESS(INTEGRATOR_SC_ID));
 	clkdev_add_table(lookups, ARRAY_SIZE(lookups));
 
 	for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c
index 07c0815..87f3822 100644
--- a/arch/arm/mach-realview/core.c
+++ b/arch/arm/mach-realview/core.c
@@ -51,6 +51,7 @@
 #include <mach/platform.h>
 #include <mach/irqs.h>
 #include <plat/timer-sp.h>
+#include <plat/fpga-id.h>
 
 #include "core.h"
 
@@ -694,6 +695,7 @@ void __init realview_timer_init(unsigned int timer_irq)
 
 	sp804_clocksource_init(timer3_va_base);
 	sp804_clockevents_init(timer0_va_base, timer_irq);
+	versatile_fpga_probe(__io_address(REALVIEW_SYS_ID));
 }
 
 /*
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index e38acb0..8d62a57 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -50,6 +50,7 @@
 #include <mach/hardware.h>
 #include <mach/platform.h>
 #include <plat/timer-sp.h>
+#include <plat/fpga-id.h>
 
 #include "core.h"
 
@@ -922,6 +923,7 @@ static void __init versatile_timer_init(void)
 
 	sp804_clocksource_init(TIMER3_VA_BASE);
 	sp804_clockevents_init(TIMER0_VA_BASE, IRQ_TIMERINT0_1);
+	versatile_fpga_probe(__io_address(VERSATILE_SYS_ID));
 }
 
 struct sys_timer versatile_timer = {
diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c
index 7eaa232..26e206c 100644
--- a/arch/arm/mach-vexpress/v2m.c
+++ b/arch/arm/mach-vexpress/v2m.c
@@ -23,6 +23,7 @@
 #include <mach/motherboard.h>
 
 #include <plat/timer-sp.h>
+#include <plat/fpga-id.h>
 
 #include "core.h"
 
@@ -55,6 +56,7 @@ static void __init v2m_timer_init(void)
 
 	sp804_clocksource_init(MMIO_P2V(V2M_TIMER1));
 	sp804_clockevents_init(MMIO_P2V(V2M_TIMER0), IRQ_V2M_TIMER0);
+	versatile_fpga_probe(MMIO_P2V(V2M_SYS_ID));
 }
 
 struct sys_timer v2m_timer = {
diff --git a/arch/arm/plat-versatile/Makefile b/arch/arm/plat-versatile/Makefile
index 5cf88e8..8fe7b01 100644
--- a/arch/arm/plat-versatile/Makefile
+++ b/arch/arm/plat-versatile/Makefile
@@ -1,4 +1,4 @@
-obj-y	:= clock.o
+obj-y	:= clock.o fpga-id.o
 obj-$(CONFIG_ARM_TIMER_SP804) += timer-sp.o
 obj-$(CONFIG_ARCH_REALVIEW) += sched-clock.o
 obj-$(CONFIG_ARCH_VERSATILE) += sched-clock.o
diff --git a/arch/arm/plat-versatile/fpga-id.c b/arch/arm/plat-versatile/fpga-id.c
new file mode 100644
index 0000000..909f95d
--- /dev/null
+++ b/arch/arm/plat-versatile/fpga-id.c
@@ -0,0 +1,123 @@
+/*
+ * Some simple code to read out the FPGA ID of the Integrator,
+ * Versatile, RealView or RealView Express systems during boot
+ * and print it to the console.
+ *
+ * License terms: GNU General Public License (GPL) version 2
+ * Author: Linus Walleij <linus.walleij@stericsson.com>
+ */
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <asm/mach-types.h>
+
+struct versatile_fpga_id {
+	u8 man:4;
+	u8 rev:4;
+	u16 board:12;
+	u8 var:4;
+	u8 arch:4;
+	u8 fpga_build;
+};
+
+static struct versatile_fpga_id fpga_id;
+
+static inline bool integrator_or_versatile(void)
+{
+	return machine_is_integrator() ||
+		machine_is_versatile_pb() ||
+		machine_is_versatile_ab();
+}
+
+void __init versatile_fpga_probe(void __iomem *sysid_reg)
+{
+	u32 val;
+
+	val = readl(sysid_reg);
+	/* The Integrator and Versatile have an older register layout */
+	if (machine_is_integrator()) {
+		fpga_id.man = (val >> 24) & 0x0FU;
+		fpga_id.board = (val >> 12) & 0x0FU;
+		fpga_id.arch = (val >> 16) & 0x0FF;
+		fpga_id.fpga_build = (val >> 4) & 0xFFU;
+		fpga_id.rev = val & 0x0FU;
+	} else if (machine_is_versatile_pb() ||
+		   machine_is_versatile_ab()) {
+		/* Versatile PB is for example 0x41007004 */
+		fpga_id.man = (val >> 24) & 0x0FU;
+		fpga_id.board = (val >> 12) & 0x0FU;
+		fpga_id.arch = val & 0x0FU;
+		fpga_id.fpga_build = (val >> 4) & 0xFFU;
+	} else {
+		/* RealView or Versatile Express */
+		fpga_id.rev = (val >> 28) & 0x0FU;
+		fpga_id.board = (val >> 16) & 0xFFFU;
+		fpga_id.var = (val >> 12) & 0x0FU;
+		fpga_id.arch = (val >> 8) & 0x0FU;
+		fpga_id.fpga_build = val & 0xFFU;
+	}
+
+	pr_info("RealView system FPGA\n");
+
+	/* Manufacturer */
+	if (integrator_or_versatile())
+		pr_info("    manufacturer: %02x\n", fpga_id.man);
+		
+	/* Single letter revision */
+	if (fpga_id.rev == 0x0F)
+		pr_info("    revision: ALL\n");
+	else
+		pr_info("    revision: %c\n", 'A' + fpga_id.rev);
+
+	switch (fpga_id.board) {
+	case 1:
+		/* Integrator */
+		pr_info("    board: XC4062\n");
+		break;
+	case 2:
+		/* Integrator */
+		pr_info("    board: XC4085\n");
+		break;
+	case 7:
+		/* Versatile */
+		pr_info("    board: XC2V2000\n");
+		break;
+	default:
+		/*
+		 * This is BCD-coded according to the PBX-A9 manual
+		 * and examples, IDs used in RealView and Versatile
+		 * Express.
+		 */
+		pr_info("    board: HBI-%03x\n", fpga_id.board);
+		break;
+	}
+
+	/* Single letter variant */
+	if (!integrator_or_versatile()) {
+		if (fpga_id.var == 0x0F)
+			pr_info("    variant: ALL\n");
+		else
+			pr_info("    variant: %c\n", 'A' + fpga_id.rev);
+	}
+
+	switch (fpga_id.arch) {
+	case 0:
+		pr_info("    architecture: ASB LE\n");
+		break;
+	case 1:
+		pr_info("    architecture: AHB LE\n");
+		break;
+	case 4:
+		pr_info("    architecture: AHB\n");
+		break;
+	case 5:
+		pr_info("    architecture: AXI\n");
+		break;
+	default:
+		pr_info("    architecture: %01x (unknown)\n", fpga_id.arch);
+		break;
+	}
+
+	/* This is BCD-coded according to the PBX-A9 manual */
+	pr_info("    FPGA build %02x\n", fpga_id.fpga_build);
+}
diff --git a/arch/arm/plat-versatile/include/plat/fpga-id.h b/arch/arm/plat-versatile/include/plat/fpga-id.h
new file mode 100644
index 0000000..466a59c
--- /dev/null
+++ b/arch/arm/plat-versatile/include/plat/fpga-id.h
@@ -0,0 +1 @@
+void versatile_fpga_probe(void __iomem *sysid_reg);
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-01-31 18:13 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-27 11:48 [PATCH] ARM: print FPGA info on plat-versatile variants Linus Walleij
2011-01-30 19:59 ` Russell King - ARM Linux
2011-01-31 10:26   ` Linus Walleij
2011-01-31 10:58     ` Colin Tuckley
2011-01-31 18:13   ` Linus Walleij
  -- strict thread matches above, loose matches on Subject: below --
2010-10-18 17:23 Linus Walleij
2011-01-24 17:30 ` Russell King - ARM Linux
2011-01-24 19:05   ` Linus Walleij

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.