LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH v3] powerpc/usb: fix bug of CPU hang when missing USB PHY clock
From: Greg KH @ 2012-09-21 16:43 UTC (permalink / raw)
  To: Shengzhou Liu; +Cc: linux-usb, linuxppc-dev
In-Reply-To: <1347958359-20153-1-git-send-email-Shengzhou.Liu@freescale.com>

On Tue, Sep 18, 2012 at 04:52:39PM +0800, Shengzhou Liu wrote:
> when missing USB PHY clock, kernel booting up will hang during USB
> initialization. We should check USBGP[PHY_CLK_VALID] bit to avoid
> CPU hanging in this case.
> 
> Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
> ---
> v3 change: no check for UTMI PHY.
> v2 change: use spin_event_timeout() instead.
> 
>  drivers/usb/host/ehci-fsl.c |   57 +++++++++++++++++++++++++++++-------------
>  drivers/usb/host/ehci-fsl.h |    1 +
>  include/linux/fsl_devices.h |    1 +
>  3 files changed, 41 insertions(+), 18 deletions(-)

This is already applied, right?

greg k-h

^ permalink raw reply

* Probing for native availability of isel from userspace
From: malc @ 2012-09-21 20:05 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: hollis

Hello,

Is it possible to determine if _native_ isel is available from userspace 
somehow? So far my searches on the web and within kernel (headers)/glibc
were fruitless (aux vectors, cpu_user_features), few people people (Hollis
Blanchard, Richard Henderson) suggested PPC_FEATURE_ARCH_2_06, but
PowerISA_V2.06B_V2_PUBLIC.pdf says - "3.3.11 Fixed-Point Select [Category: 
Phased-In (sV2.06)]" about isel, the sV2.06 (s part) means something i
suppose, furthermore Hollis mentioned that some pre 2.06 cores came with
isel.

Thanks.

-- 
mailto:av1474@comtv.ru

^ permalink raw reply

* Re: linux-next: build failure after merge of the final tree (net-next tree related)
From: Benjamin Herrenschmidt @ 2012-09-21 21:46 UTC (permalink / raw)
  To: David Miller
  Cc: sfr, mika.westerberg, netdev, linux-kernel, linux-next, paulus,
	linuxppc-dev
In-Reply-To: <20120920.185315.576326460331670020.davem@davemloft.net>

On Thu, 2012-09-20 at 18:53 -0400, David Miller wrote:
> From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Date: Fri, 21 Sep 2012 08:22:44 +1000
> 
> > Hrm, that's ancient gunk, I'll have to dig. We potentially can support
> > ISA devices DMA'ing from an ISA bridge... but via the iommu, which means
> > isa_virt_to_bus is a non-starter.
> > 
> > But then, do we really care ? IE. Is there single device that actually
> > requires ISA_DMA_API and that is expected to work on any currently
> > supported powerpc hw ? :-)
> > 
> > We don't even support PReP anymore, so that leaves us with what ?
> 
> ISA_DMA_API implies a fixed window of addresses which are <= 32-bits
> on the bus, which is a hardware requirement of these devices.
>
> isa_virt_to_bus() goes to that physical address, and the expection is
> that you use GFP_DMA and thus the physical addresses fit inside of
> an unsigned int.

Right, but on ppc, GFP_DMA is a nop (no separate ZONE_DMA, or rather all
of memory is ZONE_DMA). It's always been like that afaik.

We could support ISA device limited addressability using the iommu but
that would involve a map/unmap type API (which I remember we did support
in the old days by passing NULL to pci_map_*, but we dropped that along
the way).

> isa_virt_to_bus() basically amounts to a virt-->phys plus a cast.
> 
> > Anybody has an objection to turning ISA_DMA_API off ?
> 
> Then you can remove all of the DMA api stuff in powerpc's asm/dma.h
> but some of it looks like it might be in use.

I will dig a bit. I think there might be some users of the ISA DMA
engine for legacy floppies and parport on some early pSeries and CHRP
machines (including Pegasos).

Cheers,
Ben.

^ permalink raw reply

* Re: Probing for native availability of isel from userspace
From: Segher Boessenkool @ 2012-09-22  7:26 UTC (permalink / raw)
  To: malc; +Cc: linuxppc-dev, hollis
In-Reply-To: <alpine.LNX.2.00.1209212355050.8539@linmac>

> Is it possible to determine if _native_ isel is available from  
> userspace
> somehow?

Just try to execute one and catch the SIGILL?


Segher

^ permalink raw reply

* Re: Probing for native availability of isel from userspace
From: malc @ 2012-09-22 10:12 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: linuxppc-dev, hollis
In-Reply-To: <50EE7AAC-3080-4B1B-B741-E3F7F5A57A73@kernel.crashing.org>

On Sat, 22 Sep 2012, Segher Boessenkool wrote:

> > Is it possible to determine if _native_ isel is available from userspace
> > somehow?
> 
> Just try to execute one and catch the SIGILL?
> 

Unfortunately my kernel emulates ISEL for me in this case, so i don't
get any SIGILLs.

-- 
mailto:av1474@comtv.ru

^ permalink raw reply

* Re: Probing for native availability of isel from userspace
From: Gabriel Paubert @ 2012-09-22 10:21 UTC (permalink / raw)
  To: malc; +Cc: linuxppc-dev, hollis
In-Reply-To: <alpine.LNX.2.00.1209221412010.1468@linmac>

On Sat, Sep 22, 2012 at 02:12:42PM +0400, malc wrote:
> On Sat, 22 Sep 2012, Segher Boessenkool wrote:
> 
> > > Is it possible to determine if _native_ isel is available from userspace
> > > somehow?
> > 
> > Just try to execute one and catch the SIGILL?
> > 
> 
> Unfortunately my kernel emulates ISEL for me in this case, so i don't
> get any SIGILLs.

Perform a few isels in a loop between a couple of mftb and measure the 
shortest time it takes. Any emulation will take tens of timebase ticks,
hardware implementation will return very small values, perhaps even
0 depending on the relationship between core and timebase frequencies.

I don't remember whether it's necessary inserting an isync between the
two mftb. I believe that even on the most OOO machines, two mftb in
a row will not be reordered to the point that the second executes before 
the first.

	Gabriel

^ permalink raw reply

* Re: [PATCH v3] powerpc/usb: fix bug of CPU hang when missing USB PHY clock
From: Kumar Gala @ 2012-09-22 14:39 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-usb, linuxppc-dev, Shengzhou Liu
In-Reply-To: <20120921164342.GA31272@kroah.com>


On Sep 21, 2012, at 11:43 AM, Greg KH wrote:

> On Tue, Sep 18, 2012 at 04:52:39PM +0800, Shengzhou Liu wrote:
>> when missing USB PHY clock, kernel booting up will hang during USB
>> initialization. We should check USBGP[PHY_CLK_VALID] bit to avoid
>> CPU hanging in this case.
>>=20
>> Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
>> ---
>> v3 change: no check for UTMI PHY.
>> v2 change: use spin_event_timeout() instead.
>>=20
>> drivers/usb/host/ehci-fsl.c |   57 =
+++++++++++++++++++++++++++++-------------
>> drivers/usb/host/ehci-fsl.h |    1 +
>> include/linux/fsl_devices.h |    1 +
>> 3 files changed, 41 insertions(+), 18 deletions(-)
>=20
> This is already applied, right?
>=20
> greg k-h

It appears that v2 of the patch is applied to your usb-next branch.

in drivers/usb/host/ehci-fsl.c

V2:
@@ -262,23 +266,34 @@ static void ehci_fsl_setup_phy(struct usb_hcd =
*hcd,
        case FSL_USB2_PHY_NONE:
                break;
        }
+
+       if ((pdata->controller_ver) && ((phy_mode =3D=3D =
FSL_USB2_PHY_ULPI) ||
+                       (phy_mode =3D=3D FSL_USB2_PHY_UTMI))) {

V3:

@@ -262,23 +266,33 @@  static void ehci_fsl_setup_phy(struct usb_hcd =
*hcd,

 	case FSL_USB2_PHY_NONE:
 		break;
 	}

+
+	if (pdata->controller_ver && (phy_mode =3D=3D =
FSL_USB2_PHY_ULPI)) {
+		/* check PHY_CLK_VALID to get phy clk valid */


- k=

^ permalink raw reply

* Re: [PATCH v3] powerpc/usb: fix bug of CPU hang when missing USB PHY clock
From: Greg KH @ 2012-09-22 14:48 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linux-usb, linuxppc-dev, Shengzhou Liu
In-Reply-To: <E182B82C-A53B-4013-9D3B-0271268A6A96@kernel.crashing.org>

On Sat, Sep 22, 2012 at 09:39:15AM -0500, Kumar Gala wrote:
> 
> On Sep 21, 2012, at 11:43 AM, Greg KH wrote:
> 
> > On Tue, Sep 18, 2012 at 04:52:39PM +0800, Shengzhou Liu wrote:
> >> when missing USB PHY clock, kernel booting up will hang during USB
> >> initialization. We should check USBGP[PHY_CLK_VALID] bit to avoid
> >> CPU hanging in this case.
> >> 
> >> Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
> >> ---
> >> v3 change: no check for UTMI PHY.
> >> v2 change: use spin_event_timeout() instead.
> >> 
> >> drivers/usb/host/ehci-fsl.c |   57 +++++++++++++++++++++++++++++-------------
> >> drivers/usb/host/ehci-fsl.h |    1 +
> >> include/linux/fsl_devices.h |    1 +
> >> 3 files changed, 41 insertions(+), 18 deletions(-)
> > 
> > This is already applied, right?
> > 
> > greg k-h
> 
> It appears that v2 of the patch is applied to your usb-next branch.
> 
> in drivers/usb/host/ehci-fsl.c
> 
> V2:
> @@ -262,23 +266,34 @@ static void ehci_fsl_setup_phy(struct usb_hcd *hcd,
>         case FSL_USB2_PHY_NONE:
>                 break;
>         }
> +
> +       if ((pdata->controller_ver) && ((phy_mode == FSL_USB2_PHY_ULPI) ||
> +                       (phy_mode == FSL_USB2_PHY_UTMI))) {
> 
> V3:
> 
> @@ -262,23 +266,33 @@  static void ehci_fsl_setup_phy(struct usb_hcd *hcd,
> 
>  	case FSL_USB2_PHY_NONE:
>  		break;
>  	}
> 
> +
> +	if (pdata->controller_ver && (phy_mode == FSL_USB2_PHY_ULPI)) {
> +		/* check PHY_CLK_VALID to get phy clk valid */

Ok, can someone please make the incremental patch that I need to apply
here and send it to me?

thanks,

greg k-h

^ permalink raw reply

* Re: [PATCH v2 1/3] ASoC: fsl: add PPC_MPC52xx dependency to SND_POWERPC_SOC
From: Mark Brown @ 2012-09-22 15:01 UTC (permalink / raw)
  To: Eric Millbrandt; +Cc: alsa-devel, linuxppc-dev, Liam Girdwood
In-Reply-To: <1348151805-93991-1-git-send-email-emillbrandt@dekaresearch.com>

On Thu, Sep 20, 2012 at 10:36:43AM -0400, Eric Millbrandt wrote:
> mpc52xx socs do not define FSL_SOC but need SND_POWERPC_SOC defined to build
> ASoC drivers.

Applied, thanks.

^ permalink raw reply

* Re: [PATCH 2/3] ASoC: fsl: pcm030-audio-fabric use snd_soc_register_card
From: Mark Brown @ 2012-09-22 15:01 UTC (permalink / raw)
  To: Eric Millbrandt; +Cc: alsa-devel, linuxppc-dev, Liam Girdwood
In-Reply-To: <1348151805-93991-2-git-send-email-emillbrandt@dekaresearch.com>

On Thu, Sep 20, 2012 at 10:36:44AM -0400, Eric Millbrandt wrote:
> Convert pcm030-audio-fabric to use the new snd_soc_register_card api
> instead of the older method of registering a separate platform device.
> Create the dai_link to the mpc5200_psc_ac97 platform using the device tree.
> Convert the pcm030-audio-fabric driver to a platform-driver and add a
> remove function.

Applied, thanks.

^ permalink raw reply

* Re: [PATCH 3/3] ASoC: fsl: register the wm9712-codec
From: Mark Brown @ 2012-09-22 15:02 UTC (permalink / raw)
  To: Eric Millbrandt; +Cc: alsa-devel, linuxppc-dev, Liam Girdwood
In-Reply-To: <1348151805-93991-3-git-send-email-emillbrandt@dekaresearch.com>

On Thu, Sep 20, 2012 at 10:36:45AM -0400, Eric Millbrandt wrote:
> The mpc5200-psc-ac97 driver does not enumerate attached ac97 devices, so
> register the device here.

Applied, thanks.

^ permalink raw reply

* Re: Probing for native availability of isel from userspace
From: malc @ 2012-09-22 15:37 UTC (permalink / raw)
  To: Gabriel Paubert; +Cc: linuxppc-dev, hollis
In-Reply-To: <20120922102151.GA31314@visitor2.iram.es>

On Sat, 22 Sep 2012, Gabriel Paubert wrote:

> On Sat, Sep 22, 2012 at 02:12:42PM +0400, malc wrote:
> > On Sat, 22 Sep 2012, Segher Boessenkool wrote:
> > 
> > > > Is it possible to determine if _native_ isel is available from userspace
> > > > somehow?
> > > 
> > > Just try to execute one and catch the SIGILL?
> > > 
> > 
> > Unfortunately my kernel emulates ISEL for me in this case, so i don't
> > get any SIGILLs.
> 
> Perform a few isels in a loop between a couple of mftb and measure the 
> shortest time it takes. Any emulation will take tens of timebase ticks,
> hardware implementation will return very small values, perhaps even
> 0 depending on the relationship between core and timebase frequencies.
> 
> I don't remember whether it's necessary inserting an isync between the
> two mftb. I believe that even on the most OOO machines, two mftb in
> a row will not be reordered to the point that the second executes before 
> the first.
> 

Thanks for suggestion, but i'd rather not play with heuristics.

-- 
mailto:av1474@comtv.ru

^ permalink raw reply

* Re: Probing for native availability of isel from userspace
From: David Gibson @ 2012-09-22 16:13 UTC (permalink / raw)
  To: malc; +Cc: linuxppc-dev, hollis
In-Reply-To: <alpine.LNX.2.00.1209221936330.3878@linmac>

On Sat, Sep 22, 2012 at 07:37:03PM +0400, malc wrote:
> On Sat, 22 Sep 2012, Gabriel Paubert wrote:
> 
> > On Sat, Sep 22, 2012 at 02:12:42PM +0400, malc wrote:
> > > On Sat, 22 Sep 2012, Segher Boessenkool wrote:
> > > 
> > > > > Is it possible to determine if _native_ isel is available from userspace
> > > > > somehow?
> > > > 
> > > > Just try to execute one and catch the SIGILL?
> > > > 
> > > 
> > > Unfortunately my kernel emulates ISEL for me in this case, so i don't
> > > get any SIGILLs.
> > 
> > Perform a few isels in a loop between a couple of mftb and measure the 
> > shortest time it takes. Any emulation will take tens of timebase ticks,
> > hardware implementation will return very small values, perhaps even
> > 0 depending on the relationship between core and timebase frequencies.
> > 
> > I don't remember whether it's necessary inserting an isync between the
> > two mftb. I believe that even on the most OOO machines, two mftb in
> > a row will not be reordered to the point that the second executes before 
> > the first.
> 
> Thanks for suggestion, but i'd rather not play with heuristics.

It sounds like the sort of thing that ought to be in the ELF aux
vector, but I don't know if it actually is.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

^ permalink raw reply

* Re: Probing for native availability of isel from userspace
From: Segher Boessenkool @ 2012-09-22 19:08 UTC (permalink / raw)
  To: malc; +Cc: linuxppc-dev, hollis
In-Reply-To: <alpine.LNX.2.00.1209221936330.3878@linmac>

> Thanks for suggestion, but i'd rather not play with heuristics.

Have a look at /sys/kernel/debug/powerpc/emulated_instructions/ then?


Segher

^ permalink raw reply

* Re: Probing for native availability of isel from userspace
From: Benjamin Herrenschmidt @ 2012-09-22 19:55 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: linuxppc-dev, malc, hollis
In-Reply-To: <BB86F53C-6C09-41DB-9FF3-38E3027BCC82@kernel.crashing.org>

On Sat, 2012-09-22 at 21:08 +0200, Segher Boessenkool wrote:
> > Thanks for suggestion, but i'd rather not play with heuristics.
> 
> Have a look at /sys/kernel/debug/powerpc/emulated_instructions/ then?

Userspace should *NEVER* rely on the content of debugfs, it will change
with time, it is not a guaranteed ABI, it's purely for people to look
at... for debugging.

Unfortunately we don't expose ISEL support via features (maybe we
should, this is reasonably easy to fix, except that we are running short
on feature bits and adding a new set of bits isn't totally trivial).

At this stage I would recommend using arch 2.06 as your key/trigger and
either add a handful of known PVR values (mfpvr is emulated) for other
CPUs you know support it (there shouldn't be that many), or just do the
heuristic :-(

Cheers,
Ben.

^ permalink raw reply

* Re: linux-next: build failure after merge of the final tree (net-next tree related)
From: David Miller @ 2012-09-22 20:00 UTC (permalink / raw)
  To: benh
  Cc: sfr, mika.westerberg, netdev, linux-kernel, linux-next, paulus,
	linuxppc-dev
In-Reply-To: <1348264000.1132.63.camel@pasglop>

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Sat, 22 Sep 2012 07:46:40 +1000

> Right, but on ppc, GFP_DMA is a nop (no separate ZONE_DMA, or rather all
> of memory is ZONE_DMA). It's always been like that afaik.
> 
> We could support ISA device limited addressability using the iommu but
> that would involve a map/unmap type API (which I remember we did support
> in the old days by passing NULL to pci_map_*, but we dropped that along
> the way).

I think I'm going to just end up restricting this driver to X86
as was originally suggested.

There seems to be no real consistent Kconfig protection for users
of isa_virt_to_bus() and friends.

We know that ISA_DMA_API doesn't do it, and ISA doesn't do it either
as powerpc also allows that to bet set for CHRP and friends.

Thanks.

^ permalink raw reply

* Re: Probing for native availability of isel from userspace
From: malc @ 2012-09-22 20:17 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev, hollis
In-Reply-To: <1348343737.1132.74.camel@pasglop>

On Sun, 23 Sep 2012, Benjamin Herrenschmidt wrote:

> On Sat, 2012-09-22 at 21:08 +0200, Segher Boessenkool wrote:
> > > Thanks for suggestion, but i'd rather not play with heuristics.
> > 
> > Have a look at /sys/kernel/debug/powerpc/emulated_instructions/ then?
> 
> Userspace should *NEVER* rely on the content of debugfs, it will change
> with time, it is not a guaranteed ABI, it's purely for people to look
> at... for debugging.

Furthermore this box simply doesn't have it built-in...

> 
> Unfortunately we don't expose ISEL support via features (maybe we
> should, this is reasonably easy to fix, except that we are running short
> on feature bits and adding a new set of bits isn't totally trivial).
> 
> At this stage I would recommend using arch 2.06 as your key/trigger and
> either add a handful of known PVR values (mfpvr is emulated) for other
> CPUs you know support it (there shouldn't be that many), or just do the
> heuristic :-(
> 

Thank you.

-- 
mailto:av1474@comtv.ru

^ permalink raw reply

* [PATCH 1/1] drivers/char/mem.c
From: Teodori Serge @ 2012-09-22 21:20 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Arnd Bergmann, linuxppc-dev; +Cc: Teodori Serge
In-Reply-To: <Teodori Serge <teodori.serge@hotmail.com>

replace 'arch_has_dev_port()' to 'CONFIG_DEVPORT'

modified:   arch/powerpc/include/asm/io.h
modified:   drivers/char/mem.c
modified:   include/linux/io.h

why do we need 'arch_has_dev_port()' if we have a 'CONFIG_DEVPORT'?

Signed-off-by: Teodori Serge <teodori.serge@hotmail.com>
---
 arch/powerpc/include/asm/io.h |    2 +-
 drivers/char/mem.c            |    6 ------
 include/linux/io.h            |    9 ---------
 3 files changed, 1 insertion(+), 16 deletions(-)

diff --git a/arch/powerpc/include/asm/io.h b/arch/powerpc/include/asm/io.h
index f94ef42..cb8b663 100644
--- a/arch/powerpc/include/asm/io.h
+++ b/arch/powerpc/include/asm/io.h
@@ -25,7 +25,7 @@ extern struct pci_dev *isa_bridge_pcidev;
 /*
  * has legacy ISA devices ?
  */
-#define arch_has_dev_port()	(isa_bridge_pcidev != NULL)
+#define CONFIG_DEVPORT	(isa_bridge_pcidev != NULL)
 #endif
 
 #include <linux/device.h>
diff --git a/drivers/char/mem.c b/drivers/char/mem.c
index e5eedfa..7251a67 100644
--- a/drivers/char/mem.c
+++ b/drivers/char/mem.c
@@ -897,12 +897,6 @@ static int __init chr_dev_init(void)
 		if (!devlist[minor].name)
 			continue;
 
-		/*
-		 * Create /dev/port? 
-		 */
-		if ((minor == DEVPORT_MINOR) && !arch_has_dev_port())
-			continue;
-
 		device_create(mem_class, NULL, MKDEV(MEM_MAJOR, minor),
 			      NULL, devlist[minor].name);
 	}
diff --git a/include/linux/io.h b/include/linux/io.h
index 069e407..7fd2d21 100644
--- a/include/linux/io.h
+++ b/include/linux/io.h
@@ -67,13 +67,4 @@ int check_signature(const volatile void __iomem *io_addr,
 			const unsigned char *signature, int length);
 void devm_ioremap_release(struct device *dev, void *res);
 
-/*
- * Some systems do not have legacy ISA devices.
- * /dev/port is not a valid interface on these systems.
- * So for those archs, <asm/io.h> should define the following symbol.
- */
-#ifndef arch_has_dev_port
-#define arch_has_dev_port()     (1)
-#endif
-
 #endif /* _LINUX_IO_H */
-- 
1.7.9.5

^ permalink raw reply related

* Re: linux-next: build failure after merge of the final tree (net-next tree related)
From: Benjamin Herrenschmidt @ 2012-09-22 21:20 UTC (permalink / raw)
  To: David Miller
  Cc: sfr, mika.westerberg, netdev, linux-kernel, linux-next, paulus,
	linuxppc-dev
In-Reply-To: <20120922.160027.1528491047223302539.davem@davemloft.net>

On Sat, 2012-09-22 at 16:00 -0400, David Miller wrote:
> 
> I think I'm going to just end up restricting this driver to X86
> as was originally suggested.

Probably the easiest fix indeed.

> There seems to be no real consistent Kconfig protection for users
> of isa_virt_to_bus() and friends.
> 
> We know that ISA_DMA_API doesn't do it, and ISA doesn't do it either
> as powerpc also allows that to bet set for CHRP and friends.

It's a old mess :-( And not an easy one to untangle...

Cheers,
Ben.

^ permalink raw reply

* POWER7: Question on speculative rollback
From: Sukadev Bhattiprolu @ 2012-09-22 22:41 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Anton Blanchard, paulus


Is there a way to reliably check if a speculative roll back has occured in
the CPU ?

Normally we consider that an overflow has occured if the number of events
in a PMC reaches the overflow mark (0x80000000).

With speculative rollback, we assume that the overflow has occured if the
number of events is short of the overflow mark by 256 or less. pmc_overflow()
and check_compute_delta() use this assumption.

The problem with this assumption is that it is not always valid which is
why perf_event_interrupt() uses two different checks for overflow.

In the first pass it uses '(int)val < 0' and in the second pass the
pmc_overflow() helper.

The reason for falling back to 'val < 0' check is that the sampling period
could be very low and the number of events could truly be less than 256
even if no speculative roll back had occured.

But the problem with the 'val < 0' check is that if speculative rollback did
occur, we would not detect the rollback. We simply go ahead and reset the
counters and THROW AWAY all the events that occured until that point.

Over time and possibly with larger sampling periods, the number of events
thrown away can lead to very inaccurate results.

So, is there a better way to detect if a speculative rollback has occured
when we get a perf_event_interrupt() ?

Sukadev

^ permalink raw reply

* Re: Probing for native availability of isel from userspace
From: Segher Boessenkool @ 2012-09-23  1:46 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev, malc, hollis
In-Reply-To: <1348343737.1132.74.camel@pasglop>

>> Have a look at /sys/kernel/debug/powerpc/emulated_instructions/ then?
>
> Userspace should *NEVER* rely on the content of debugfs, it will  
> change
> with time, it is not a guaranteed ABI, it's purely for people to look
> at... for debugging.

malc didn't say what he wants it for...  People are in userspace as
well ;-)

> At this stage I would recommend using arch 2.06 as your key/trigger  
> and
> either add a handful of known PVR values (mfpvr is emulated) for other
> CPUs you know support it (there shouldn't be that many), or just do  
> the
> heuristic :-(

That's for 64-bit; another good option for 64-bit is to just never use
isel, it hardly ever buys you anything.  It is much more useful on the
(older) 32-bit cores that support it.

Why does the kernel emulate this, btw?  I can see emulation is useful
for running older binaries, for instructions that have been removed
from the architecture; but for newly added instructions, or optional
instructions, it hurts more than it helps?


Segher

^ permalink raw reply

* Re: [PATCH 1/1] drivers/char/mem.c
From: Arnd Bergmann @ 2012-09-23 14:16 UTC (permalink / raw)
  To: Teodori Serge; +Cc: Teodori Serge, Greg Kroah-Hartman, linuxppc-dev
In-Reply-To: <1348348812-17201-1-git-send-email-teodori.serge@hotmail.com>

On Saturday 22 September 2012, Teodori Serge wrote:
> replace 'arch_has_dev_port()' to 'CONFIG_DEVPORT'
> 
> modified:   arch/powerpc/include/asm/io.h
> modified:   drivers/char/mem.c
> modified:   include/linux/io.h
> 
> why do we need 'arch_has_dev_port()' if we have a 'CONFIG_DEVPORT'?
> 
> Signed-off-by: Teodori Serge <teodori.serge@hotmail.com>
> ---
>  arch/powerpc/include/asm/io.h |    2 +-
>  drivers/char/mem.c            |    6 ------
>  include/linux/io.h            |    9 ---------
>  3 files changed, 1 insertion(+), 16 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/io.h b/arch/powerpc/include/asm/io.h
> index f94ef42..cb8b663 100644
> --- a/arch/powerpc/include/asm/io.h
> +++ b/arch/powerpc/include/asm/io.h
> @@ -25,7 +25,7 @@ extern struct pci_dev *isa_bridge_pcidev;
>  /*
>   * has legacy ISA devices ?
>   */
> -#define arch_has_dev_port()	(isa_bridge_pcidev != NULL)
> +#define CONFIG_DEVPORT	(isa_bridge_pcidev != NULL)
>  #endif
>  
>  #include <linux/device.h>

By convention, CONFIG_* symbols should only be set by Kconfig and not used
for runtime checks.

Also, the existing checks for those symbols check for whether it is
defined, not for the actual value. With what you have there,
the driver will always enable /dev/ports because CONFIG_DEVPORT
is defined.

What are you actually trying to achieve?

	Arnd

^ permalink raw reply

* Re: [PATCH] powerpc: Remove tlb batching hack for nighthawk
From: Anton Blanchard @ 2012-09-23 21:04 UTC (permalink / raw)
  To: Michael Ellerman; +Cc: linuxppc-dev
In-Reply-To: <1348214908-32605-1-git-send-email-michael@ellerman.id.au>

On Fri, 21 Sep 2012 18:08:28 +1000
Michael Ellerman <michael@ellerman.id.au> wrote:

> In hpte_init_native() we call tlb_batching_enabled() to decide if we
> should setup ppc_md.flush_hash_range.
> 
> tlb_batching_enabled() checks the _unflattened_ device tree, to see
> if we are running on a nighthawk.
> 
> Since commit a223535 ("dont allow pSeries_probe to succeed without
> initialising MMU", Dec 2006), hpte_init_native() has been called from
> pSeries_probe() - at which point we have not yet unflattened the
> device tree.
> 
> This means tlb_batching_enabled() will always return true, so the hack
> has effectively been disabled since Dec 2006. Ergo, I think we can
> drop it.

Ouch. We probably had the last nighthawk in existence and we crushed it
years ago. So:

Acked-by: Anton Blanchard <anton@samba.org>

Anton

^ permalink raw reply

* Re: [PATCH 1/1] drivers/char/tpm: remove tasklet and cleanup
From: James Morris @ 2012-09-24  2:26 UTC (permalink / raw)
  To: Ashley Lai
  Cc: key, linux-kernel, linux-security-module, tpmdd-devel, adlai, rcj,
	linuxppc-dev
In-Reply-To: <1347472190.27058.5.camel@footlong>

On Wed, 12 Sep 2012, Ashley Lai wrote:

> This patch removed the tasklet and moved the wait queue into the
> private structure.  It also cleaned up the response CRQ path.
> 
> Signed-off-by: Ashley Lai <adlai@us.ibm.com>


Kent: any comment on this?  You should probably push this to me via your 
tree.


> ---
> James,
> 
> This patch is based on your "next" branch.
> git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security.git
> 
> Thanks,
> Ashley Lai
> ---
>  drivers/char/tpm/tpm_ibmvtpm.c | 81 +++++++++++++++---------------------------
>  drivers/char/tpm/tpm_ibmvtpm.h |  5 ++-
>  2 files changed, 30 insertions(+), 56 deletions(-)
> 
> diff --git a/drivers/char/tpm/tpm_ibmvtpm.c b/drivers/char/tpm/tpm_ibmvtpm.c
> index efc4ab3..88a95ea 100644
> --- a/drivers/char/tpm/tpm_ibmvtpm.c
> +++ b/drivers/char/tpm/tpm_ibmvtpm.c
> @@ -38,8 +38,6 @@ static struct vio_device_id tpm_ibmvtpm_device_table[] __devinitdata = {
>  };
>  MODULE_DEVICE_TABLE(vio, tpm_ibmvtpm_device_table);
>  
> -DECLARE_WAIT_QUEUE_HEAD(wq);
> -
>  /**
>   * ibmvtpm_send_crq - Send a CRQ request
>   * @vdev:	vio device struct
> @@ -83,6 +81,7 @@ static int tpm_ibmvtpm_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  {
>  	struct ibmvtpm_dev *ibmvtpm;
>  	u16 len;
> +	int sig;
>  
>  	ibmvtpm = (struct ibmvtpm_dev *)chip->vendor.data;
>  
> @@ -91,22 +90,23 @@ static int tpm_ibmvtpm_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  		return 0;
>  	}
>  
> -	wait_event_interruptible(wq, ibmvtpm->crq_res.len != 0);
> +	sig = wait_event_interruptible(ibmvtpm->wq, ibmvtpm->res_len != 0);
> +	if (sig)
> +		return -EINTR;
> +
> +	len = ibmvtpm->res_len;
>  
> -	if (count < ibmvtpm->crq_res.len) {
> +	if (count < len) {
>  		dev_err(ibmvtpm->dev,
>  			"Invalid size in recv: count=%ld, crq_size=%d\n",
> -			count, ibmvtpm->crq_res.len);
> +			count, len);
>  		return -EIO;
>  	}
>  
>  	spin_lock(&ibmvtpm->rtce_lock);
> -	memcpy((void *)buf, (void *)ibmvtpm->rtce_buf, ibmvtpm->crq_res.len);
> -	memset(ibmvtpm->rtce_buf, 0, ibmvtpm->crq_res.len);
> -	ibmvtpm->crq_res.valid = 0;
> -	ibmvtpm->crq_res.msg = 0;
> -	len = ibmvtpm->crq_res.len;
> -	ibmvtpm->crq_res.len = 0;
> +	memcpy((void *)buf, (void *)ibmvtpm->rtce_buf, len);
> +	memset(ibmvtpm->rtce_buf, 0, len);
> +	ibmvtpm->res_len = 0;
>  	spin_unlock(&ibmvtpm->rtce_lock);
>  	return len;
>  }
> @@ -273,7 +273,6 @@ static int __devexit tpm_ibmvtpm_remove(struct vio_dev *vdev)
>  	int rc = 0;
>  
>  	free_irq(vdev->irq, ibmvtpm);
> -	tasklet_kill(&ibmvtpm->tasklet);
>  
>  	do {
>  		if (rc)
> @@ -372,7 +371,6 @@ static int ibmvtpm_reset_crq(struct ibmvtpm_dev *ibmvtpm)
>  static int tpm_ibmvtpm_resume(struct device *dev)
>  {
>  	struct ibmvtpm_dev *ibmvtpm = ibmvtpm_get_data(dev);
> -	unsigned long flags;
>  	int rc = 0;
>  
>  	do {
> @@ -387,10 +385,11 @@ static int tpm_ibmvtpm_resume(struct device *dev)
>  		return rc;
>  	}
>  
> -	spin_lock_irqsave(&ibmvtpm->lock, flags);
> -	vio_disable_interrupts(ibmvtpm->vdev);
> -	tasklet_schedule(&ibmvtpm->tasklet);
> -	spin_unlock_irqrestore(&ibmvtpm->lock, flags);
> +	rc = vio_enable_interrupts(ibmvtpm->vdev);
> +	if (rc) {
> +		dev_err(dev, "Error vio_enable_interrupts rc=%d\n", rc);
> +		return rc;
> +	}
>  
>  	rc = ibmvtpm_crq_send_init(ibmvtpm);
>  	if (rc)
> @@ -467,7 +466,7 @@ static struct ibmvtpm_crq *ibmvtpm_crq_get_next(struct ibmvtpm_dev *ibmvtpm)
>  	if (crq->valid & VTPM_MSG_RES) {
>  		if (++crq_q->index == crq_q->num_entry)
>  			crq_q->index = 0;
> -		rmb();
> +		smp_rmb();
>  	} else
>  		crq = NULL;
>  	return crq;
> @@ -535,11 +534,9 @@ static void ibmvtpm_crq_process(struct ibmvtpm_crq *crq,
>  			ibmvtpm->vtpm_version = crq->data;
>  			return;
>  		case VTPM_TPM_COMMAND_RES:
> -			ibmvtpm->crq_res.valid = crq->valid;
> -			ibmvtpm->crq_res.msg = crq->msg;
> -			ibmvtpm->crq_res.len = crq->len;
> -			ibmvtpm->crq_res.data = crq->data;
> -			wake_up_interruptible(&wq);
> +			/* len of the data in rtce buffer */
> +			ibmvtpm->res_len = crq->len;
> +			wake_up_interruptible(&ibmvtpm->wq);
>  			return;
>  		default:
>  			return;
> @@ -559,38 +556,19 @@ static void ibmvtpm_crq_process(struct ibmvtpm_crq *crq,
>  static irqreturn_t ibmvtpm_interrupt(int irq, void *vtpm_instance)
>  {
>  	struct ibmvtpm_dev *ibmvtpm = (struct ibmvtpm_dev *) vtpm_instance;
> -	unsigned long flags;
> -
> -	spin_lock_irqsave(&ibmvtpm->lock, flags);
> -	vio_disable_interrupts(ibmvtpm->vdev);
> -	tasklet_schedule(&ibmvtpm->tasklet);
> -	spin_unlock_irqrestore(&ibmvtpm->lock, flags);
> -
> -	return IRQ_HANDLED;
> -}
> -
> -/**
> - * ibmvtpm_tasklet - Interrupt handler tasklet
> - * @data:	ibm vtpm device struct
> - *
> - * Returns:
> - *	Nothing
> - **/
> -static void ibmvtpm_tasklet(void *data)
> -{
> -	struct ibmvtpm_dev *ibmvtpm = data;
>  	struct ibmvtpm_crq *crq;
> -	unsigned long flags;
>  
> -	spin_lock_irqsave(&ibmvtpm->lock, flags);
> +	/* while loop is needed for initial setup (get version and
> +	 * get rtce_size). There should be only one tpm request at any
> +	 * given time.
> +	 */
>  	while ((crq = ibmvtpm_crq_get_next(ibmvtpm)) != NULL) {
>  		ibmvtpm_crq_process(crq, ibmvtpm);
>  		crq->valid = 0;
> -		wmb();
> +		smp_wmb();
>  	}
>  
> -	vio_enable_interrupts(ibmvtpm->vdev);
> -	spin_unlock_irqrestore(&ibmvtpm->lock, flags);
> +	return IRQ_HANDLED;
>  }
>  
>  /**
> @@ -650,9 +628,6 @@ static int __devinit tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
>  		goto reg_crq_cleanup;
>  	}
>  
> -	tasklet_init(&ibmvtpm->tasklet, (void *)ibmvtpm_tasklet,
> -		     (unsigned long)ibmvtpm);
> -
>  	rc = request_irq(vio_dev->irq, ibmvtpm_interrupt, 0,
>  			 tpm_ibmvtpm_driver_name, ibmvtpm);
>  	if (rc) {
> @@ -666,13 +641,14 @@ static int __devinit tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
>  		goto init_irq_cleanup;
>  	}
>  
> +	init_waitqueue_head(&ibmvtpm->wq);
> +
>  	crq_q->index = 0;
>  
>  	ibmvtpm->dev = dev;
>  	ibmvtpm->vdev = vio_dev;
>  	chip->vendor.data = (void *)ibmvtpm;
>  
> -	spin_lock_init(&ibmvtpm->lock);
>  	spin_lock_init(&ibmvtpm->rtce_lock);
>  
>  	rc = ibmvtpm_crq_send_init(ibmvtpm);
> @@ -689,7 +665,6 @@ static int __devinit tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
>  
>  	return rc;
>  init_irq_cleanup:
> -	tasklet_kill(&ibmvtpm->tasklet);
>  	do {
>  		rc1 = plpar_hcall_norets(H_FREE_CRQ, vio_dev->unit_address);
>  	} while (rc1 == H_BUSY || H_IS_LONG_BUSY(rc1));
> diff --git a/drivers/char/tpm/tpm_ibmvtpm.h b/drivers/char/tpm/tpm_ibmvtpm.h
> index 4296eb4..bd82a79 100644
> --- a/drivers/char/tpm/tpm_ibmvtpm.h
> +++ b/drivers/char/tpm/tpm_ibmvtpm.h
> @@ -38,13 +38,12 @@ struct ibmvtpm_dev {
>  	struct vio_dev *vdev;
>  	struct ibmvtpm_crq_queue crq_queue;
>  	dma_addr_t crq_dma_handle;
> -	spinlock_t lock;
> -	struct tasklet_struct tasklet;
>  	u32 rtce_size;
>  	void __iomem *rtce_buf;
>  	dma_addr_t rtce_dma_handle;
>  	spinlock_t rtce_lock;
> -	struct ibmvtpm_crq crq_res;
> +	wait_queue_head_t wq;
> +	u16 res_len;
>  	u32 vtpm_version;
>  };
>  
> -- 
> 1.7.11.2
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 

-- 
James Morris
<jmorris@namei.org>

^ permalink raw reply

* RE: [PATCH][V4] powerpc/fsl-pci: Add pci inbound/outbound PM support
From: Jia Hongtao-B38951 @ 2012-09-24  2:47 UTC (permalink / raw)
  To: Kumar Gala
  Cc: Wood Scott-B07421, linuxppc-dev@lists.ozlabs.org, Li Yang-R58472
In-Reply-To: <95B12FA1-EC53-4632-8DFB-64109668BA9C@kernel.crashing.org>

[-- Attachment #1: Type: text/plain, Size: 4972 bytes --]



> -----Original Message-----
> From: Kumar Gala [mailto:galak@kernel.crashing.org]
> Sent: Friday, September 21, 2012 9:16 PM
> To: Jia Hongtao-B38951
> Cc: Li Yang-R58472; linuxppc-dev@lists.ozlabs.org; Wood Scott-B07421
> Subject: Re: [PATCH][V4] powerpc/fsl-pci: Add pci inbound/outbound PM
> support
> 
> >>>>>>>
> >>>>>>> On Sep 17, 2012, at 9:10 PM, Jia Hongtao wrote:
> >>>>>>>
> >>>>>>>> Power supply for PCI inbound/outbound window registers is off
> >>>>>>>> when system go to deep-sleep state. We save the values of
> >>>>>>>> registers
> >>>> before
> >>>>>>>> suspend and restore to registers after resume.
> >>>>>>>>
> >>>>>>>> Signed-off-by: Jiang Yutang <b14898@freescale.com>
> >>>>>>>> Signed-off-by: Jia Hongtao <B38951@freescale.com>
> >>>>>>>> Signed-off-by: Li Yang <leoli@freescale.com>
> >>>>>>>> ---
> >>>>>>>> Changes for V4:
> >>>>>>>> We just rebase the patch upon following patch:
> >>>>>>>> powerpc/fsl-pci: Unify pci/pcie initialization code
> >>>>>>>>
> >>>>>>>> arch/powerpc/include/asm/pci-bridge.h |    2 +-
> >>>>>>>> arch/powerpc/sysdev/fsl_pci.c         |  121
> >>>>>>> +++++++++++++++++++++++++++++++++
> >>>>>>>> 2 files changed, 122 insertions(+), 1 deletions(-)
> >>>>>>>
> >>>>>>> Did you ever compare this to just re-parsing device tree method?
> >>>>>>>
> >>>>>>> - k
> >>>>>>
> >>>>>> I tested the re-parsing way by using setup_pci_atmu() when resume.
> >>>>>> And I found out that re-parsing will *change* outbound IO
> >>>>>> translation address regitster.
> >>>>>>
> >>>>>> It seems that in the first bootup, after setup_atmu()
> >>>>>> pcibios_setup_phb_resources() may update hose->io_resource, but
> >>>>>> atmu is not updated according to the new hose->io_resource value.
> >>>>>> In resume from sleep setup_atmu() will reset atmu according to
> >>>>>> the new hose->io_resource value. So the setup_atmu() will cause
> >>>>>> different result on outbound IO register between first bootup and
> >>>>>> resume from sleep.
> >>>>>>
> >>>>>> So... There's a possibility that in the first bootup atmu is not
> >>>>>> setup properly.
> >>>>>
> >>>>> [Are you seeing this happen in your testing?  If so its a bug we
> >>>>> need
> >>>> to look at fixing.]
> >>>>>
> >>>>> Yes, I see this in my testing.
> >>>>> Also PCIe ethernet card works well after resuming from sleep in
> >>>>> both
> >>>> save/restore
> >>>>> and re-parsing way. (Maybe PCIe ethernet card don't need outbound
> >>>>> IO
> >>>> resource)
> >>>>> So, I guess the result of re-parsing (actually it's re-setup) is
> >>>>> right
> >>>> and ATMU is not setup
> >>>>> properly at the first bootup.
> >>>>
> >>>> Are you seeing the following message - "PCI: I/O resource not set
> >>>> for host bridge" ?
> >>>
> >>> No.
> >>>
> >>>>
> >>>> Trying to understand why you'd hit the reassignment of io_resource.
> >>>>
> >>>> - k
> >>>>
> >>>
> >>> I did some investigations and the conclusion is:
> >>>
> >>> io_resource.flags & IORESOURCE_IO are both positive but
> >>> io_resource.start is 0 before pcibios_setup_phb_io_space() is done.
> >>>
> >>> The sequence of related process listed below:
> >>> fsl_add_bridge() -> setup_pci_atmu()
> >>> pcibios_init() -> pcibios_scan_phb() -> pcibios_setup_phb_io_space()
> >>>
> >>> Because fsl_add_bridge() must be finished before pcibios_init() so
> >>> ATMU is set when io_resource.start is 0. That means outbound IO regs
> >>> are not set.
> >>>
> >>> If system re-setup ATMU the io_resource.start has already updated so
> >>> outbound IO regs are set.
> >>>
> >>> My question is:
> >>> Is there any problem if outbound IO regs are not set in first bootup?
> 
> Yes, it means that IO transactions would not work.

I agree.

> 
> >> Please also provide the IO resource address range before and after the
> >> pci scan.  Then we can evaluate if the range is needed to be mapped
> via
> >> ATMU.
> >>
> >> Leo
> >
> > Since potar is set by out_be32(&pci->pow[j].potar, (hose-
> >io_resource.start >> 12);
> > I provide the result of hose->io_resource.start >> 12 as follows:
> >
> > pcie@ffe09000:
> > before pci scan: io_resource.start >> 12: 0
> > after pci scan : io_resource.start >> 12: ff7ed
> >
> > pcie@ffe0a000:
> > before pci scan: io_resource.start >> 12: 0
> > after pci scan : io_resource.start >> 12: ff7db
> >
> > pcie@ffe0b000:
> > before pci scan: io_resource.start >> 12: 0
> > after pci scan : io_resource.start >> 12: ff7c9
> >
> > Note that I tested on P1022DS.
> >
> > - Hongtao.
> 
> 1. What's the device tree nodes for PCIe look like?
> 2. Can you get the pr_debug() in setup_pci_atmu() to print and report
> results (as well as full boot log)

Please refer to the attached file.
In the log file I also print the device tree.

- Hongtao.

> 
> However, I think the change of the io_resource.start is normal and
> correct behavior.
> 
> - k
> 



[-- Attachment #2: pci_pm_setup_pci_atmu_debug.log --]
[-- Type: application/octet-stream, Size: 55671 bytes --]

U-Boot 2009.11-00132-gd404dfa (Sep 26 2010 - 14:57:28)

CPU0:  P1022E, Version: 1.0, (0x80ee0010)
Core:  E500, Version: 5.0, (0x80211050)
Clock Configuration:
       CPU0:1199.988 MHz, CPU1:1199.988 MHz,
       CCB:599.994 MHz,
       DDR:399.996 MHz (799.992 MT/s data rate) (Asynchronous), LBC:37.500 MHz
L1:    D-cache 32 kB enabled
       I-cache 32 kB enabled
Board: P1022DS Sys ID: 0x19, Sys Ver: 0x03, FPGA Ver: 0x09, vBank: 0
I2C:   ready
SPI:   ready
DRAM:  Initializing....    DDR:  2 GB (DDR3, 64-bit, CL=6, ECC off)
Now running in RAM - U-Boot at: 7ff30000
FLASH: 128 MB
L2:    256 KB enabled
NAND:  1024 MiB
MMC:  FSL_ESDHC: 0
EEPROM: NXID v0

    PCIE1 connected to Slot 1 as Root Complex (base addr ffe0a000)
    PCIE1 on bus 00 - 00


    PCIE2 connected to Slot 3 as Root Complex (base addr ffe09000)
    PCIE2 on bus 01 - 01

    PCIE3 connected to Slot 2 as Root Complex (base addr ffe0b000)
    PCIE3 on bus 02 - 02

In:    serial
Out:   serial
Err:   serial
Net:   eTSEC1, eTSEC2
Hit any key to stop autoboot:  0
=> setenv fdtprint "tftp $fdtaddr $fdtfile;fdt addr $fdtaddr;fdt boardsetup;fdt print"
=> sav
Saving Environment to Flash...
Un-Protected 1 sectors
Erasing Flash...
. done
Erased 1 sectors
Writing to Flash... 9....8....7....6....5....4....3....2....1....done
Protected 1 sectors
=> run fdtprint
Speed: 1000, full duplex
Using eTSEC1 device
TFTP from server 10.193.20.106; our IP address is 10.193.20.176
Filename 'jiaht/p1022ds_32b.dtb'.
Load address: 0xc00000
Loading: ###
done
Bytes transferred = 14645 (3935 hex)
/ {
        compatible = "fsl,P1022DS";
        #address-cells = <0x2>;
        #size-cells = <0x2>;
        interrupt-parent = <0x1>;
        model = "fsl,P1022DS";
        cpus {
                power-isa-version = "2.03";
                power-isa-b;
                power-isa-e;
                power-isa-atb;
                power-isa-cs;
                power-isa-e.le;
                power-isa-e.pm;
                power-isa-ecl;
                power-isa-mmc;
                power-isa-sp;
                power-isa-sp.fd;
                power-isa-sp.fs;
                power-isa-sp.fv;
                mmu-type = "power-embedded";
                #address-cells = <0x1>;
                #size-cells = <0x0>;
                PowerPC,P1022@0 {
                        i-cache-sets = <0x80>;
                        i-cache-size = <0x8000>;
                        i-cache-block-size = <0x20>;
                        d-cache-sets = <0x80>;
                        d-cache-size = <0x8000>;
                        d-cache-block-size = <0x20>;
                        status = "okay";
                        clock-frequency = <0x47865d2c>;
                        bus-frequency = <0x23c32e96>;
                        timebase-frequency = <0x47865d3>;
                        device_type = "cpu";
                        reg = <0x0>;
                        next-level-cache = <0x2>;
                };
                PowerPC,P1022@1 {
                        i-cache-sets = <0x80>;
                        i-cache-size = <0x8000>;
                        i-cache-block-size = <0x20>;
                        d-cache-sets = <0x80>;
                        d-cache-size = <0x8000>;
                        d-cache-block-size = <0x20>;
                        cpu-release-addr = <0x0 0x7ffff2a0>;
                        enable-method = "spin-table";
                        status = "disabled";
                        clock-frequency = <0x47865d2c>;
                        bus-frequency = <0x23c32e96>;
                        timebase-frequency = <0x47865d3>;
                        device_type = "cpu";
                        reg = <0x1>;
                        next-level-cache = <0x2>;
                };
        };
        aliases {
                serial0 = "/soc@ffe00000/serial@4500";
                serial1 = "/soc@ffe00000/serial@4600";
                ethernet0 = "/soc@ffe00000/ethernet@b0000";
                ethernet1 = "/soc@ffe00000/ethernet@b1000";
                pci0 = "/pcie@ffe09000";
                pci1 = "/pcie@ffe0a000";
                pci2 = "/pcie@ffe0b000";
        };
        memory {
                reg = <0x0 0x0 0x0 0x80000000>;
                device_type = "memory";
        };
        localbus@ffe05000 {
                bus-frequency = <0x23c32e9>;
                reg = <0x0 0xffe05000 0x0 0x1000>;
                ranges = <0x0 0x0 0x0 0xe8000000 0x8000000 0x1 0x0 0x0 0xe0000000 0x8000000 0x2 0x0 0x0 0xff800000 0x40000 0x3 0x0 0x0 0xffdf0000 0x8000>;
                #address-cells = <0x2>;
                #size-cells = <0x1>;
                compatible = "fsl,p1022-elbc", "fsl,elbc";
                interrupts = <0x13 0x2 0x0 0x0>;
                board-control@0,0 {
                        compatible = "fsl,p1022ds-indirect-pixis";
                        reg = <0x0 0x0 0x1 0x1 0x0 0x1>;
                        interrupt-parent = <0x1>;
                        interrupts = <0x8 0x0 0x0 0x0>;
                };
                nor@0,0 {
                        #address-cells = <0x1>;
                        #size-cells = <0x1>;
                        compatible = "cfi-flash";
                        reg = <0x0 0x0 0x8000000>;
                        bank-width = <0x2>;
                        device-width = <0x1>;
                        partition@0 {
                                reg = <0x0 0x3000000>;
                                label = "ramdisk-nor";
                                read-only;
                        };
                        partition@3000000 {
                                reg = <0x3000000 0xe00000>;
                                label = "diagnostic-nor";
                                read-only;
                        };
                        partition@3e00000 {
                                reg = <0x3e00000 0x200000>;
                                label = "dink-nor";
                                read-only;
                        };
                        partition@4000000 {
                                reg = <0x4000000 0x400000>;
                                label = "kernel-nor";
                                read-only;
                        };
                        partition@4400000 {
                                reg = <0x4400000 0x3b00000>;
                                label = "jffs2-nor";
                        };
                        partition@7f00000 {
                                reg = <0x7f00000 0x80000>;
                                label = "dtb-nor";
                                read-only;
                        };
                        partition@7f80000 {
                                reg = <0x7f80000 0x80000>;
                                label = "u-boot-nor";
                                read-only;
                        };
                };
                nand@2,0 {
                        #address-cells = <0x1>;
                        #size-cells = <0x1>;
                        compatible = "fsl,elbc-fcm-nand";
                        reg = <0x2 0x0 0x40000>;
                        partition@0 {
                                reg = <0x0 0x2000000>;
                                label = "u-boot-nand";
                                read-only;
                        };
                        partition@2000000 {
                                reg = <0x2000000 0x10000000>;
                                label = "jffs2-nand";
                        };
                        partition@12000000 {
                                reg = <0x12000000 0x10000000>;
                                label = "ramdisk-nand";
                                read-only;
                        };
                        partition@22000000 {
                                reg = <0x22000000 0x4000000>;
                                label = "kernel-nand";
                        };
                        partition@26000000 {
                                reg = <0x26000000 0x1000000>;
                                label = "dtb-nand";
                                read-only;
                        };
                        partition@27000000 {
                                reg = <0x27000000 0x19000000>;
                                label = "reserved-nand";
                        };
                };
                board-control@3,0 {
                        compatible = "fsl,p1022ds-fpga", "fsl,fpga-ngpixis";
                        reg = <0x3 0x0 0x30>;
                        interrupt-parent = <0x1>;
                        interrupts = <0x8 0x0 0x0 0x0>;
                };
        };
        soc@ffe00000 {
                ranges = <0x0 0x0 0xffe00000 0x100000>;
                #address-cells = <0x1>;
                #size-cells = <0x1>;
                device_type = "soc";
                compatible = "fsl,p1022-immr", "simple-bus";
                bus-frequency = <0x23c32e96>;
                ecm-law@0 {
                        compatible = "fsl,ecm-law";
                        reg = <0x0 0x1000>;
                        fsl,num-laws = <0xc>;
                };
                ecm@1000 {
                        compatible = "fsl,p1022-ecm", "fsl,ecm";
                        reg = <0x1000 0x1000>;
                        interrupts = <0x10 0x2 0x0 0x0>;
                };
                memory-controller@2000 {
                        compatible = "fsl,p1022-memory-controller";
                        reg = <0x2000 0x1000>;
                        interrupts = <0x10 0x2 0x0 0x0>;
                };
                i2c@3000 {
                        #address-cells = <0x1>;
                        #size-cells = <0x0>;
                        cell-index = <0x0>;
                        compatible = "fsl-i2c";
                        reg = <0x3000 0x100>;
                        interrupts = <0x2b 0x2 0x0 0x0>;
                        dfsrr;
                };
                i2c@3100 {
                        #address-cells = <0x1>;
                        #size-cells = <0x0>;
                        cell-index = <0x1>;
                        compatible = "fsl-i2c";
                        reg = <0x3100 0x100>;
                        interrupts = <0x2b 0x2 0x0 0x0>;
                        dfsrr;
                        codec@1a {
                                compatible = "wlf,wm8776";
                                reg = <0x1a>;
                                linux,phandle = <0x5>;
                                phandle = <0x5>;
                        };
                        rtc@68 {
                                compatible = "dallas,ds1339";
                                reg = <0x68>;
                        };
                        adt7461@4c {
                                compatible = "adi,adt7461";
                                reg = <0x4c>;
                        };
                };
                serial@4500 {
                        cell-index = <0x0>;
                        device_type = "serial";
                        compatible = "fsl,ns16550", "ns16550";
                        reg = <0x4500 0x100>;
                        clock-frequency = <0x23c32e96>;
                        interrupts = <0x2a 0x2 0x0 0x0>;
                };
                serial@4600 {
                        cell-index = <0x1>;
                        device_type = "serial";
                        compatible = "fsl,ns16550", "ns16550";
                        reg = <0x4600 0x100>;
                        clock-frequency = <0x23c32e96>;
                        interrupts = <0x2a 0x2 0x0 0x0>;
                };
                spi@7000 {
                        #address-cells = <0x1>;
                        #size-cells = <0x0>;
                        compatible = "fsl,mpc8536-espi";
                        reg = <0x7000 0x1000>;
                        interrupts = <0x3b 0x2 0x0 0x0>;
                        fsl,espi-num-chipselects = <0x4>;
                        flash@0 {
                                #address-cells = <0x1>;
                                #size-cells = <0x1>;
                                compatible = "spansion,s25sl12801";
                                reg = <0x0>;
                                spi-max-frequency = <0x2625a00>;
                                partition@0 {
                                        label = "u-boot-spi";
                                        reg = <0x0 0x100000>;
                                        read-only;
                                };
                                partition@100000 {
                                        label = "kernel-spi";
                                        reg = <0x100000 0x500000>;
                                        read-only;
                                };
                                partition@600000 {
                                        label = "dtb-spi";
                                        reg = <0x600000 0x100000>;
                                        read-only;
                                };
                                partition@700000 {
                                        label = "file system-spi";
                                        reg = <0x700000 0x900000>;
                                };
                        };
                        slic@0 {
                                compatible = "zarlink,le88266";
                                reg = <0x1>;
                                spi-max-frequency = <0x7a1200>;
                        };
                        slic@1 {
                                compatible = "zarlink,le88266";
                                reg = <0x2>;
                                spi-max-frequency = <0x7a1200>;
                        };
                };
                dma@c300 {
                        #address-cells = <0x1>;
                        #size-cells = <0x1>;
                        compatible = "fsl,eloplus-dma";
                        reg = <0xc300 0x4>;
                        ranges = <0x0 0xc100 0x200>;
                        cell-index = <0x1>;
                        dma-channel@0 {
                                compatible = "fsl,ssi-dma-channel";
                                reg = <0x0 0x80>;
                                cell-index = <0x0>;
                                interrupts = <0x4c 0x2 0x0 0x0>;
                                linux,phandle = <0x3>;
                                phandle = <0x3>;
                        };
                        dma-channel@80 {
                                compatible = "fsl,ssi-dma-channel";
                                reg = <0x80 0x80>;
                                cell-index = <0x1>;
                                interrupts = <0x4d 0x2 0x0 0x0>;
                                linux,phandle = <0x4>;
                                phandle = <0x4>;
                        };
                        dma-channel@100 {
                                compatible = "fsl,eloplus-dma-channel";
                                reg = <0x100 0x80>;
                                cell-index = <0x2>;
                                interrupts = <0x4e 0x2 0x0 0x0>;
                        };
                        dma-channel@180 {
                                compatible = "fsl,eloplus-dma-channel";
                                reg = <0x180 0x80>;
                                cell-index = <0x3>;
                                interrupts = <0x4f 0x2 0x0 0x0>;
                        };
                };
                gpio-controller@f000 {
                        #gpio-cells = <0x2>;
                        compatible = "fsl,pq3-gpio";
                        reg = <0xf000 0x100>;
                        interrupts = <0x2f 0x2 0x0 0x0>;
                        gpio-controller;
                };
                display@10000 {
                        compatible = "fsl,diu", "fsl,p1022-diu";
                        reg = <0x10000 0x3e8>;
                        interrupts = <0x40 0x2 0x0 0x0>;
                };
                ssi@15000 {
                        compatible = "fsl,mpc8610-ssi";
                        cell-index = <0x0>;
                        reg = <0x15000 0x100>;
                        interrupts = <0x4b 0x2 0x0 0x0>;
                        fsl,playback-dma = <0x3>;
                        fsl,capture-dma = <0x4>;
                        fsl,fifo-depth = <0xf>;
                        fsl,mode = "i2s-slave";
                        codec-handle = <0x5>;
                        fsl,ssi-asynchronous;
                };
                tdm@16000 {
                        compatible = "fsl,tdm1.0";
                        reg = <0x16000 0x200 0x2c000 0x2000>;
                        clock-frequency = <0x0>;
                        interrupts = <0x3e 0x8 0x0 0x0>;
                        fsl,max-time-slots = <0x80>;
                };
                sata@18000 {
                        compatible = "fsl,pq-sata-v2";
                        reg = <0x18000 0x1000>;
                        cell-index = <0x1>;
                        interrupts = <0x4a 0x2 0x0 0x0>;
                };
                sata@19000 {
                        compatible = "fsl,pq-sata-v2";
                        reg = <0x19000 0x1000>;
                        cell-index = <0x2>;
                        interrupts = <0x29 0x2 0x0 0x0>;
                };
                l2-cache-controller@20000 {
                        cache-level = <0x2>;
                        cache-sets = <0x400>;
                        cache-block-size = <0x20>;
                        cache-unified;
                        compatible = [66 73 6c 2c 70 31 30 32 32 2d 6c 32 2d 63 61 63 68 65 2d 63 6f 6e 74 72 6f 6c 6c 65 72 00 63 61 63 68 65 00 7f fa];
                        reg = <0x20000 0x1000>;
                        cache-line-size = <0x20>;
                        cache-size = <0x40000>;
                        interrupts = <0x10 0x2 0x0 0x0>;
                        linux,phandle = <0x2>;
                        phandle = <0x2>;
                };
                dma@21300 {
                        #address-cells = <0x1>;
                        #size-cells = <0x1>;
                        compatible = "fsl,eloplus-dma";
                        reg = <0x21300 0x4>;
                        ranges = <0x0 0x21100 0x200>;
                        cell-index = <0x0>;
                        dma-channel@0 {
                                compatible = "fsl,eloplus-dma-channel";
                                reg = <0x0 0x80>;
                                cell-index = <0x0>;
                                interrupts = <0x14 0x2 0x0 0x0>;
                        };
                        dma-channel@80 {
                                compatible = "fsl,eloplus-dma-channel";
                                reg = <0x80 0x80>;
                                cell-index = <0x1>;
                                interrupts = <0x15 0x2 0x0 0x0>;
                        };
                        dma-channel@100 {
                                compatible = "fsl,eloplus-dma-channel";
                                reg = <0x100 0x80>;
                                cell-index = <0x2>;
                                interrupts = <0x16 0x2 0x0 0x0>;
                        };
                        dma-channel@180 {
                                compatible = "fsl,eloplus-dma-channel";
                                reg = <0x180 0x80>;
                                cell-index = <0x3>;
                                interrupts = <0x17 0x2 0x0 0x0>;
                        };
                };
                usb@22000 {
                        compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr";
                        reg = <0x22000 0x1000>;
                        #address-cells = <0x1>;
                        #size-cells = <0x0>;
                        interrupts = <0x1c 0x2 0x0 0x0>;
                        phy_type = "ulpi";
                };
                usb@23000 {
                        compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr";
                        reg = <0x23000 0x1000>;
                        #address-cells = <0x1>;
                        #size-cells = <0x0>;
                        interrupts = <0x2e 0x2 0x0 0x0>;
                        status = "disabled";
                };
                sdhc@2e000 {
                        status = "disabled";
                        compatible = "fsl,p1022-esdhc", "fsl,esdhc";
                        reg = <0x2e000 0x1000>;
                        interrupts = <0x48 0x2 0x0 0x0>;
                        clock-frequency = <0x0>;
                        sdhci,auto-cmd12;
                };
                crypto@30000 {
                        compatible = "fsl,sec3.3", "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0";
                        reg = <0x30000 0x10000>;
                        interrupts = <0x2d 0x2 0x0 0x0 0x3a 0x2 0x0 0x0>;
                        fsl,num-channels = <0x4>;
                        fsl,channel-fifo-len = <0x18>;
                        fsl,exec-units-mask = <0x97c>;
                        fsl,descriptor-types-mask = <0x3a30abf>;
                };
                pic@40000 {
                        interrupt-controller;
                        #address-cells = <0x0>;
                        #interrupt-cells = <0x4>;
                        reg = <0x40000 0x40000>;
                        compatible = "fsl,mpic";
                        device_type = "open-pic";
                        linux,phandle = <0x1>;
                        phandle = <0x1>;
                };
                timer@41100 {
                        compatible = "fsl,mpic-global-timer";
                        reg = <0x41100 0x100 0x41300 0x4>;
                        interrupts = <0x0 0x0 0x3 0x0 0x1 0x0 0x3 0x0 0x2 0x0 0x3 0x0 0x3 0x0 0x3 0x0>;
                };
                msi@41600 {
                        compatible = "fsl,mpic-msi";
                        reg = <0x41600 0x80>;
                        msi-available-ranges = <0x0 0x100>;
                        interrupts = <0xe0 0x0 0x0 0x0 0xe1 0x0 0x0 0x0 0xe2 0x0 0x0 0x0 0xe3 0x0 0x0 0x0 0xe4 0x0 0x0 0x0 0xe5 0x0 0x0 0x0 0xe6 0x0 0x0 0x0 0xe7 0x0 0x0 0x0>;
                };
                timer@42100 {
                        compatible = "fsl,mpic-global-timer";
                        reg = <0x42100 0x100 0x42300 0x4>;
                        interrupts = <0x4 0x0 0x3 0x0 0x5 0x0 0x3 0x0 0x6 0x0 0x3 0x0 0x7 0x0 0x3 0x0>;
                };
                mdio@24000 {
                        #address-cells = <0x1>;
                        #size-cells = <0x0>;
                        compatible = "fsl,etsec2-mdio";
                        reg = <0x24000 0x1000 0xb0030 0x4>;
                        ethernet-phy@0 {
                                interrupts = <0x3 0x1 0x0 0x0>;
                                reg = <0x1>;
                                linux,phandle = <0x7>;
                                phandle = <0x7>;
                        };
                        ethernet-phy@1 {
                                interrupts = <0x9 0x1 0x0 0x0>;
                                reg = <0x2>;
                                linux,phandle = <0xa>;
                                phandle = <0xa>;
                        };
                        tbi-phy@2 {
                                device_type = "tbi-phy";
                                reg = <0x2>;
                        };
                };
                ethernet@b0000 {
                        rx-stash-idx = <0x0>;
                        rx-stash-len = <0x60>;
                        bd-stash;
                        #address-cells = <0x1>;
                        #size-cells = <0x1>;
                        device_type = "network";
                        model = "eTSEC";
                        compatible = "fsl,etsec2";
                        fsl,num_rx_queues = <0x8>;
                        fsl,num_tx_queues = <0x8>;
                        fsl,magic-packet;
                        local-mac-address = [00 e0 0c 02 00 fd];
                        fsl,wake-on-filer;
                        fsl,pmc-handle = <0x6>;
                        phy-handle = <0x7>;
                        phy-connection-type = "rgmii-id";
                        ptimer-handle = <0x8>;
                        queue-group@b0000 {
                                #address-cells = <0x1>;
                                #size-cells = <0x1>;
                                reg = <0xb0000 0x1000>;
                                interrupts = <0x1d 0x2 0x0 0x0 0x1e 0x2 0x0 0x0 0x22 0x2 0x0 0x0>;
                        };
                        queue-group@b4000 {
                                #address-cells = <0x1>;
                                #size-cells = <0x1>;
                                reg = <0xb4000 0x1000>;
                                interrupts = <0x11 0x2 0x0 0x0 0x12 0x2 0x0 0x0 0x18 0x2 0x0 0x0>;
                        };
                };
                mdio@25000 {
                        #address-cells = <0x1>;
                        #size-cells = <0x0>;
                        compatible = "fsl,etsec2-tbi";
                        reg = <0x25000 0x1000 0xb1030 0x4>;
                };
                ethernet@b1000 {
                        rx-stash-idx = <0x0>;
                        rx-stash-len = <0x60>;
                        bd-stash;
                        #address-cells = <0x1>;
                        #size-cells = <0x1>;
                        device_type = "network";
                        model = "eTSEC";
                        compatible = "fsl,etsec2";
                        fsl,num_rx_queues = <0x8>;
                        fsl,num_tx_queues = <0x8>;
                        fsl,magic-packet;
                        local-mac-address = [00 e0 0c 02 01 fd];
                        fsl,wake-on-filer;
                        fsl,pmc-handle = <0x9>;
                        phy-handle = <0xa>;
                        phy-connection-type = "rgmii-id";
                        ptimer-handle = <0x8>;
                        queue-group@b1000 {
                                #address-cells = <0x1>;
                                #size-cells = <0x1>;
                                reg = <0xb1000 0x1000>;
                                interrupts = <0x23 0x2 0x0 0x0 0x24 0x2 0x0 0x0 0x28 0x2 0x0 0x0>;
                        };
                        queue-group@b5000 {
                                #address-cells = <0x1>;
                                #size-cells = <0x1>;
                                reg = <0xb5000 0x1000>;
                                interrupts = <0x33 0x2 0x0 0x0 0x34 0x2 0x0 0x0 0x43 0x2 0x0 0x0>;
                        };
                };
                global-utilities@e0000 {
                        compatible = "fsl,p1022-guts";
                        reg = <0xe0000 0x1000>;
                        fsl,has-rstcr;
                };
                power@e0070 {
                        compatible = "fsl,p1022-pmc", "fsl,mpc8536-pmc", "fsl,mpc8548-pmc";
                        reg = <0xe0070 0x20>;
                        soc-clk@24 {
                                fsl,pmcdr-mask = <0x80>;
                                linux,phandle = <0x6>;
                                phandle = <0x6>;
                        };
                        soc-clk@25 {
                                fsl,pmcdr-mask = <0x40>;
                                linux,phandle = <0x9>;
                                phandle = <0x9>;
                        };
                        soc-clk@26 {
                                fsl,pmcdr-mask = <0x20>;
                        };
                };
                ptimer@b0e00 {
                        compatible = "fsl,gianfar-ptp-timer";
                        reg = <0xb0e00 0xb0>;
                        fsl,ts-to-buffer;
                        fsl,tmr-prsc = <0x2>;
                        fsl,clock-source-select = <0x1>;
                        linux,phandle = <0x8>;
                        phandle = <0x8>;
                };
        };
        pcie@ffe09000 {
                dma-ranges = <0x2000000 0x0 0xfff00000 0x0 0xffe00000 0x0 0x100000 0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
                reg = <0x0 0xffe09000 0x0 0x1000>;
                ranges = <0x2000000 0x0 0xe0000000 0x0 0xa0000000 0x0 0x20000000 0x1000000 0x0 0x0 0x0 0xffc10000 0x0 0x10000>;
                compatible = "fsl,p1022-pcie";
                device_type = "pci";
                #size-cells = <0x2>;
                #address-cells = <0x3>;
                bus-range = <0x0 0x0>;
                clock-frequency = <0x1fca055>;
                interrupts = <0x10 0x2 0x0 0x0>;
                pcie@0 {
                        ranges = <0x2000000 0x0 0xe0000000 0x2000000 0x0 0xe0000000 0x0 0x20000000 0x1000000 0x0 0x0 0x1000000 0x0 0x0 0x0 0x100000>;
                        reg = <0x0 0x0 0x0 0x0 0x0>;
                        #interrupt-cells = <0x1>;
                        #size-cells = <0x2>;
                        #address-cells = <0x3>;
                        device_type = "pci";
                        interrupts = <0x10 0x2 0x0 0x0>;
                        interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
                        interrupt-map = <0x0 0x0 0x0 0x1 0x1 0x4 0x1 0x0 0x0 0x0 0x0 0x0 0x2 0x1 0x5 0x1 0x0 0x0 0x0 0x0 0x0 0x3 0x1 0x6 0x1 0x0 0x0 0x0 0x0 0x0 0x4 0x1 0x7 0x1 0x0 0x0>;
                };
        };
        pcie@ffe0a000 {
                reg = <0x0 0xffe0a000 0x0 0x1000>;
                ranges = <0x2000000 0x0 0xe0000000 0x0 0xc0000000 0x0 0x20000000 0x1000000 0x0 0x0 0x0 0xffc20000 0x0 0x10000>;
                compatible = "fsl,p1022-pcie";
                device_type = "pci";
                #size-cells = <0x2>;
                #address-cells = <0x3>;
                bus-range = <0x0 0x0>;
                clock-frequency = <0x1fca055>;
                interrupts = <0x10 0x2 0x0 0x0>;
                pcie@0 {
                        ranges = <0x2000000 0x0 0xe0000000 0x2000000 0x0 0xe0000000 0x0 0x20000000 0x1000000 0x0 0x0 0x1000000 0x0 0x0 0x0 0x100000>;
                        reg = <0x0 0x0 0x0 0x0 0x0>;
                        #interrupt-cells = <0x1>;
                        #size-cells = <0x2>;
                        #address-cells = <0x3>;
                        device_type = "pci";
                        interrupts = <0x10 0x2 0x0 0x0>;
                        interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
                        interrupt-map = <0x0 0x0 0x0 0x1 0x1 0x0 0x1 0x0 0x0 0x0 0x0 0x0 0x2 0x1 0x1 0x1 0x0 0x0 0x0 0x0 0x0 0x3 0x1 0x2 0x1 0x0 0x0 0x0 0x0 0x0 0x4 0x1 0x3 0x1 0x0 0x0>;
                };
        };
        pcie@ffe0b000 {
                dma-ranges = <0x2000000 0x0 0xfff00000 0x0 0xffe00000 0x0 0x100000 0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
                reg = <0x0 0xffe0b000 0x0 0x1000>;
                ranges = <0x2000000 0x0 0xe0000000 0x0 0x80000000 0x0 0x20000000 0x1000000 0x0 0x0 0x0 0xffc00000 0x0 0x10000>;
                compatible = "fsl,p1022-pcie";
                device_type = "pci";
                #size-cells = <0x2>;
                #address-cells = <0x3>;
                bus-range = <0x0 0x0>;
                clock-frequency = <0x1fca055>;
                interrupts = <0x10 0x2 0x0 0x0>;
                pcie@0 {
                        ranges = <0x2000000 0x0 0xe0000000 0x2000000 0x0 0xe0000000 0x0 0x20000000 0x1000000 0x0 0x0 0x1000000 0x0 0x0 0x0 0x100000>;
                        reg = <0x0 0x0 0x0 0x0 0x0>;
                        #interrupt-cells = <0x1>;
                        #size-cells = <0x2>;
                        #address-cells = <0x3>;
                        device_type = "pci";
                        interrupts = <0x10 0x2 0x0 0x0>;
                        interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
                        interrupt-map = <0x0 0x0 0x0 0x1 0x1 0x8 0x1 0x0 0x0 0x0 0x0 0x0 0x2 0x1 0x9 0x1 0x0 0x0 0x0 0x0 0x0 0x3 0x1 0xa 0x1 0x0 0x0 0x0 0x0 0x0 0x4 0x1 0xb 0x1 0x0 0x0>;
                };
        };
};
=>
=>
=>
=> run ramboot
Speed: 1000, full duplex
Using eTSEC1 device
TFTP from server 10.193.20.106; our IP address is 10.193.20.176
Filename 'jiaht/ramdisk.small'.
Load address: 0x2000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##############################################################
done
Bytes transferred = 4306189 (41b50d hex)
Speed: 1000, full duplex
Using eTSEC1 device
TFTP from server 10.193.20.106; our IP address is 10.193.20.176
Filename 'jiaht/uImage_1022_pm_re_parse_debug'.
Load address: 0x1000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #######
done
Bytes transferred = 3695062 (3861d6 hex)
Speed: 1000, full duplex
Using eTSEC1 device
TFTP from server 10.193.20.106; our IP address is 10.193.20.176
Filename 'jiaht/p1022ds_32b.dtb'.
Load address: 0xc00000
Loading: ###
done
Bytes transferred = 14645 (3935 hex)
WARNING: adjusting available memory to 30000000
## Booting kernel from Legacy Image at 01000000 ...
   Image Name:   Linux-3.0.43-rt64-01350-g826673b
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    3694998 Bytes =  3.5 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02000000 ...
   Image Name:   uboot ext2 ramdisk rootfs
   Image Type:   PowerPC Linux RAMDisk Image (gzip compressed)
   Data Size:    4306125 Bytes =  4.1 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 00c00000
   Booting using the fdt blob at 0xc00000
   Uncompressing Kernel Image ... OK
   Loading Ramdisk to 2fbe4000, end 2ffff4cd ... OK
debug: ignoring loglevel setting.
Using P1022 DS machine description
Memory CAM mapping: 256/256/256 Mb, residual: 1280Mb
Linux version 3.0.43-rt64-01350-g826673b-dirty (jiaht@rock) (gcc version 4.5.2 (Sourcery G++ Lite 2011.03-38) ) #67 SMP Mon Sep 24 10:01:40 CST 2012
Found initrd at 0xefbe4000:0xeffff4cd
Found legacy serial port 0 for /soc@ffe00000/serial@4500
  mem=ffe04500, taddr=ffe04500, irq=0, clk=599994006, speed=0
Found legacy serial port 1 for /soc@ffe00000/serial@4600
  mem=ffe04600, taddr=ffe04600, irq=0, clk=599994006, speed=0
CPU maps initialized for 1 thread per core
 (thread shift is 0)
bootconsole [udbg0] enabled
setup_arch: bootmem
p1022_ds_setup_arch()
Adding PCI host bridge /pcie@ffe09000
Found FSL PCI host bridge at 0x00000000ffe09000. Firmware bus number: 0->0
 ->Hose at 0xc0765000, cfg_addr=0xff7fd000,cfg_data=0xff7fd004
PCI host bridge /pcie@ffe09000  ranges:
 MEM 0x00000000a0000000..0x00000000bfffffff -> 0x00000000e0000000
  IO 0x00000000ffc10000..0x00000000ffc1ffff -> 0x0000000000000000
PCI memory map start 0x00000000ffe09000, size 0x0000000000001000
PCI MEM resource start 0x00000000a0000000, size 0x0000000020000000.
PCI IO resource start 0x0000000000000000, size 0x0000000000010000, phy base 0x00000000ffc10000.
/pcie@ffe09000: PCICSRBAR @ 0xfff00000
Adding PCI host bridge /pcie@ffe0a000
Found FSL PCI host bridge at 0x00000000ffe0a000. Firmware bus number: 0->0
 ->Hose at 0xc07650e0, cfg_addr=0xff7eb000,cfg_data=0xff7eb004
PCI host bridge /pcie@ffe0a000  ranges:
 MEM 0x00000000c0000000..0x00000000dfffffff -> 0x00000000e0000000
  IO 0x00000000ffc20000..0x00000000ffc2ffff -> 0x0000000000000000
PCI memory map start 0x00000000ffe0a000, size 0x0000000000001000
PCI MEM resource start 0x00000000c0000000, size 0x0000000020000000.
PCI IO resource start 0x0000000000000000, size 0x0000000000010000, phy base 0x00000000ffc20000.
/pcie@ffe0a000: PCICSRBAR @ 0xfff00000
Adding PCI host bridge /pcie@ffe0b000
Found FSL PCI host bridge at 0x00000000ffe0b000. Firmware bus number: 0->0
 ->Hose at 0xc07651c0, cfg_addr=0xff7d9000,cfg_data=0xff7d9004
PCI host bridge /pcie@ffe0b000  ranges:
 MEM 0x0000000080000000..0x000000009fffffff -> 0x00000000e0000000
  IO 0x00000000ffc00000..0x00000000ffc0ffff -> 0x0000000000000000
PCI memory map start 0x00000000ffe0b000, size 0x0000000000001000
PCI MEM resource start 0x0000000080000000, size 0x0000000020000000.
PCI IO resource start 0x0000000000000000, size 0x0000000000010000, phy base 0x00000000ffc00000.
/pcie@ffe0b000: PCICSRBAR @ 0xfff00000
Freescale P1022 DS reference board
arch: exit
Top of RAM: 0x80000000, Total RAM: 0x80000000
Memory hole size: 0MB
Zone PFN ranges:
  DMA      0x00000000 -> 0x00030000
  Normal   empty
  HighMem  0x00030000 -> 0x00080000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0: 0x00000000 -> 0x00080000
On node 0 totalpages: 524288
free_area_init_node: node 0, pgdat c072e380, node_mem_map c0c04000
  DMA zone: 1536 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 195072 pages, LIFO batch:31
  HighMem zone: 2560 pages used for memmap
  HighMem zone: 325120 pages, LIFO batch:31
MMU: Allocated 1088 bytes of context maps for 255 contexts
PERCPU: Embedded 7 pages/cpu @c1c10000 s4768 r8192 d15712 u32768
pcpu-alloc: s4768 r8192 d15712 u32768 alloc=8*4096
pcpu-alloc: [0] 0 [0] 1
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 520192
Kernel command line: root=/dev/ram rw console=ttyS0,115200 ramdisk_size=400000 cache-sram-size=0x8000 cache-sram-offset=0xfff00000 no_console_suspend ignore_loglevel
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
High memory: 1310716k
Memory: 2067952k/2097152k available (7160k kernel code, 29200k reserved, 236k data, 174k bss, 268k init)
Kernel virtual memory layout:
  * 0xfff5f000..0xfffff000  : fixmap
  * 0xff800000..0xffc00000  : highmem PTEs
  * 0xff7c7000..0xff800000  : early ioremap
  * 0xf1000000..0xff7c7000  : vmalloc & ioremap
SLUB: Genslabs=15, HWalign=32, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
Hierarchical RCU implementation.
NR_IRQS:512 nr_irqs:512 16
mpic: Resetting
mpic: Setting up MPIC " OpenPIC  " version 1.2 at ffe40000, max 2 CPUs
mpic: ISU size: 256, shift: 8, mask: ff
mpic: Initializing for 256 sources
time_init: decrementer frequency = 74.999251 MHz
time_init: processor frequency   = 1199.988012 MHz
clocksource: timebase mult[3555784] shift[22] registered
clockevent: decrementer mult[133326a2] shift[32] cpu[0]
Console: colour dummy device 80x25
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
mpic: requesting IPIs...
Brought up 2 CPUs
NET: Registered protocol family 16

PCI: Probing PCI hardware
pci 0000:00:00.0: [1957:0110] type 1 class 0x000b20
pci 0000:00:00.0: ignoring class b20 (doesn't match header type 01)
pci 0000:00:00.0: supports D1 D2
pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:00:00.0: PME# disabled
pci 0000:00:00.0: PCI bridge to [bus 01-ff]
pci 0000:00:00.0:   bridge window [io  0x0000-0x0000] (disabled)
pci 0000:00:00.0:   bridge window [mem 0x00000000-0x000fffff] (disabled)
pci 0000:00:00.0:   bridge window [mem 0x00000000-0x000fffff pref] (disabled)
pci 0001:02:00.0: [1957:0110] type 1 class 0x000b20
pci 0001:02:00.0: ignoring class b20 (doesn't match header type 01)
pci 0001:02:00.0: supports D1 D2
pci 0001:02:00.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0001:02:00.0: PME# disabled
pci 0001:02:00.0: PCI bridge to [bus 03-ff]
pci 0001:02:00.0:   bridge window [io  0x0000-0x0000] (disabled)
pci 0001:02:00.0:   bridge window [mem 0x00000000-0x000fffff] (disabled)
pci 0001:02:00.0:   bridge window [mem 0x00000000-0x000fffff pref] (disabled)
pci 0002:04:00.0: [1957:0110] type 1 class 0x000b20
pci 0002:04:00.0: ignoring class b20 (doesn't match header type 01)
pci 0002:04:00.0: supports D1 D2
pci 0002:04:00.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0002:04:00.0: PME# disabled
pci 0002:04:00.0: PCI bridge to [bus 05-ff]
pci 0002:04:00.0:   bridge window [io  0x0000-0x0000] (disabled)
pci 0002:04:00.0:   bridge window [mem 0x00000000-0x000fffff] (disabled)
pci 0002:04:00.0:   bridge window [mem 0x00000000-0x000fffff pref] (disabled)
PCI 0000:00 Cannot reserve Legacy IO [io  0xff7ed000-0xff7edfff]
PCI 0001:02 Cannot reserve Legacy IO [io  0xff7db000-0xff7dbfff]
PCI 0002:04 Cannot reserve Legacy IO [io  0xff7c9000-0xff7c9fff]
PCI: max bus depth: 1 pci_try_num: 2
pci 0000:00:00.0: PCI bridge to [bus 01-01]
pci 0000:00:00.0:   bridge window [io  0xff7ed000-0xff7fcfff]
pci 0000:00:00.0:   bridge window [mem 0xa0000000-0xbfffffff]
pci 0000:00:00.0:   bridge window [mem pref disabled]
pci 0001:02:00.0: PCI bridge to [bus 03-03]
pci 0001:02:00.0:   bridge window [io  0xff7db000-0xff7eafff]
pci 0001:02:00.0:   bridge window [mem 0xc0000000-0xdfffffff]
pci 0001:02:00.0:   bridge window [mem pref disabled]
pci 0002:04:00.0: PCI bridge to [bus 05-05]
pci 0002:04:00.0:   bridge window [io  0xff7c9000-0xff7d8fff]
pci 0002:04:00.0:   bridge window [mem 0x80000000-0x9fffffff]
pci 0002:04:00.0:   bridge window [mem pref disabled]
pci 0000:00:00.0: enabling device (0106 -> 0107)
pci 0001:02:00.0: enabling device (0106 -> 0107)
pci 0002:04:00.0: enabling device (0106 -> 0107)
pci_bus 0000:00: resource 0 [io  0xff7ed000-0xff7fcfff]
pci_bus 0000:00: resource 1 [mem 0xa0000000-0xbfffffff]
pci_bus 0000:01: resource 0 [io  0xff7ed000-0xff7fcfff]
pci_bus 0000:01: resource 1 [mem 0xa0000000-0xbfffffff]
pci_bus 0001:02: resource 0 [io  0xff7db000-0xff7eafff]
pci_bus 0001:02: resource 1 [mem 0xc0000000-0xdfffffff]
pci_bus 0001:03: resource 0 [io  0xff7db000-0xff7eafff]
pci_bus 0001:03: resource 1 [mem 0xc0000000-0xdfffffff]
pci_bus 0002:04: resource 0 [io  0xff7c9000-0xff7d8fff]
pci_bus 0002:04: resource 1 [mem 0x80000000-0x9fffffff]
pci_bus 0002:05: resource 0 [io  0xff7c9000-0xff7d8fff]
pci_bus 0002:05: resource 1 [mem 0x80000000-0x9fffffff]
Registering qe_ic with sysfs...
bio: create slab <bio-0> at 0
raid6: int32x1    172 MB/s
raid6: int32x2    301 MB/s
raid6: int32x4    427 MB/s
raid6: int32x8    358 MB/s
raid6: using algorithm int32x4 (427 MB/s)
Freescale Elo / Elo Plus DMA driver
vgaarb: loaded
SCSI subsystem initialized
libata version 3.00 loaded.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Advanced Linux Sound Architecture Driver Version 1.0.24.
Switching to clocksource timebase
Switched to NOHz mode on CPU #0
Switched to NOHz mode on CPU #1
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
TCP bind hash table entries: 65536 (order: 7, 524288 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
UDP hash table entries: 512 (order: 2, 16384 bytes)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
PCI: CLS 0 bytes, default 32
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (no cpio magic); looks like an initrd
Freeing initrd memory: 4208k freed
fsl-elo-dma ffe0c300.dma: #2 (fsl,eloplus-dma-channel), irq 78
fsl-elo-dma ffe0c300.dma: #3 (fsl,eloplus-dma-channel), irq 79
fsl-l2ctlr ffe20000.l2-cache-controller: Entire L2 as cache, provide valid sram address and size
fsl-l2ctlr: probe of ffe20000.l2-cache-controller failed with error -22
fsl-elo-dma ffe21300.dma: #0 (fsl,eloplus-dma-channel), irq 20
fsl-elo-dma ffe21300.dma: #1 (fsl,eloplus-dma-channel), irq 21
fsl-elo-dma ffe21300.dma: #2 (fsl,eloplus-dma-channel), irq 22
fsl-elo-dma ffe21300.dma: #3 (fsl,eloplus-dma-channel), irq 23
Setting up Freescale MSI support
Freescale PowerQUICC MII Bus: probed
fsl-pq_mdio: probe of ffe25000.mdio failed with error -16
Freescale PMC driver
audit: initializing netlink socket (disabled)
type=2000 audit(0.704:1): initialized
highmem bounce pool size: 64 pages
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
NTFS driver 2.1.30 [Flags: R/O].
JFFS2 version 2.2. (NAND) ?? 2001-2006 Red Hat, Inc.
Allocated 267980 bytes for deflate workspace
Allocated 42284 bytes for inflate workspace
Registering JFFS2 compressor "zlib"
Registering JFFS2 compressor "rtime"
JFFS2: default compression mode: priority
msgmni has been set to 1487
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
Freescale DIU driver
Console: switching to colour frame buffer device 128x48
fb0: Panel0 fb device registered successfully.
fb1:  fb device registered successfully.
fb2:  fb device registered successfully.
fb3:  fb device registered successfully.
fb4:  fb device registered successfully.
Serial: 8250/16550 driver, 2 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO 0xffe04500 (irq = 42) is a 16550A
console [ttyS0] enabled, bootconsole disabled
console [ttyS0] enabled, bootconsole disabled
serial8250.0: ttyS1 at MMIO 0xffe04600 (irq = 42) is a 16550A
Generic non-volatile memory driver v1.1
brd: module loaded
loop: module loaded
nbd: registered device at major 43
st: Version 20101219, fixed bufsize 32768, s/g segs 256
fsl-sata ffe18000.sata: Sata FSL Platform/CSB Driver init
scsi0 : sata_fsl
ata1: SATA max UDMA/133 irq 74
fsl-sata ffe19000.sata: Sata FSL Platform/CSB Driver init
scsi1 : sata_fsl
ata2: SATA max UDMA/133 irq 41
e8000000.nor: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000001 Chip ID 0x002801
Amd/Fujitsu Extended Query Table at 0x0040
  Amd/Fujitsu Extended Query version 1.3.
number of CFI chips: 1
Creating 7 MTD partitions on "e8000000.nor":
0x000000000000-0x000003000000 : "ramdisk-nor"
ftl_cs: FTL header not found.
0x000003000000-0x000003e00000 : "diagnostic-nor"
ftl_cs: FTL header not found.
0x000003e00000-0x000004000000 : "dink-nor"
ftl_cs: FTL header not found.
0x000004000000-0x000004400000 : "kernel-nor"
ftl_cs: FTL header not found.
0x000004400000-0x000007f00000 : "jffs2-nor"
ftl_cs: FTL header not found.
0x000007f00000-0x000007f80000 : "dtb-nor"
ftl_cs: FTL header not found.
0x000007f80000-0x000008000000 : "u-boot-nor"
ftl_cs: FTL header not found.
fsl-lbc ffe05000.localbus: address did not match any chip selects
m25p80 spi32766.0: s25sl12801 (16384 Kbytes)
Creating 4 MTD partitions on "spi32766.0":
0x000000000000-0x000000100000 : "u-boot-spi"
ftl_cs: FTL header not found.
0x000000100000-0x000000600000 : "kernel-spi"
ftl_cs: FTL header not found.
0x000000600000-0x000000700000 : "dtb-spi"
ftl_cs: FTL header not found.
0x000000700000-0x000001000000 : "file system-spi"
ftl_cs: FTL header not found.
fsl_espi ffe07000.spi: at 0xf1064000 (irq = 59)
Fixed MDIO Bus: probed
e1000e: Intel(R) PRO/1000 Network Driver - 1.3.10-k2
e1000e: Copyright(c) 1999 - 2011 Intel Corporation.
fsl-gianfar ethernet.4: eth0: mac: 00:e0:0c:02:00:fd
fsl-gianfar ethernet.4: eth0: Running with NAPI enabled
fsl-gianfar ethernet.4: eth0: RX BD ring size for Q[0]: 256
fsl-gianfar ethernet.4: eth0: RX BD ring size for Q[1]: 256
fsl-gianfar ethernet.4: eth0: RX BD ring size for Q[2]: 256
fsl-gianfar ethernet.4: eth0: RX BD ring size for Q[3]: 256
fsl-gianfar ethernet.4: eth0: RX BD ring size for Q[4]: 256
fsl-gianfar ethernet.4: eth0: RX BD ring size for Q[5]: 256
fsl-gianfar ethernet.4: eth0: RX BD ring size for Q[6]: 256
fsl-gianfar ethernet.4: eth0: RX BD ring size for Q[7]: 256
fsl-gianfar ethernet.4: eth0: TX BD ring size for Q[0]: 256
fsl-gianfar ethernet.4: eth0: TX BD ring size for Q[1]: 256
fsl-gianfar ethernet.4: eth0: TX BD ring size for Q[2]: 256
fsl-gianfar ethernet.4: eth0: TX BD ring size for Q[3]: 256
fsl-gianfar ethernet.4: eth0: TX BD ring size for Q[4]: 256
fsl-gianfar ethernet.4: eth0: TX BD ring size for Q[5]: 256
fsl-gianfar ethernet.4: eth0: TX BD ring size for Q[6]: 256
fsl-gianfar ethernet.4: eth0: TX BD ring size for Q[7]: 256
fsl-gianfar ethernet.5: eth1: mac: 00:e0:0c:02:01:fd
fsl-gianfar ethernet.5: eth1: Running with NAPI enabled
fsl-gianfar ethernet.5: eth1: RX BD ring size for Q[0]: 256
fsl-gianfar ethernet.5: eth1: RX BD ring size for Q[1]: 256
fsl-gianfar ethernet.5: eth1: RX BD ring size for Q[2]: 256
fsl-gianfar ethernet.5: eth1: RX BD ring size for Q[3]: 256
fsl-gianfar ethernet.5: eth1: RX BD ring size for Q[4]: 256
fsl-gianfar ethernet.5: eth1: RX BD ring size for Q[5]: 256
fsl-gianfar ethernet.5: eth1: RX BD ring size for Q[6]: 256
fsl-gianfar ethernet.5: eth1: RX BD ring size for Q[7]: 256
fsl-gianfar ethernet.5: eth1: TX BD ring size for Q[0]: 256
fsl-gianfar ethernet.5: eth1: TX BD ring size for Q[1]: 256
fsl-gianfar ethernet.5: eth1: TX BD ring size for Q[2]: 256
fsl-gianfar ethernet.5: eth1: TX BD ring size for Q[3]: 256
fsl-gianfar ethernet.5: eth1: TX BD ring size for Q[4]: 256
fsl-gianfar ethernet.5: eth1: TX BD ring size for Q[5]: 256
fsl-gianfar ethernet.5: eth1: TX BD ring size for Q[6]: 256
fsl-gianfar ethernet.5: eth1: TX BD ring size for Q[7]: 256
ucc_geth: QE UCC Gigabit Ethernet Controller
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
/soc@ffe00000/usb@22000: Invalid 'dr_mode' property, fallback to host mode
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
fsl-ehci fsl-ehci.0: irq 28, io mem 0xffe22000
fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
mpc-i2c ffe03000.i2c: timeout 1000000 us
mpc-i2c ffe03100.i2c: timeout 1000000 us
EDAC MC: Ver: 2.1.0
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
talitos ffe30000.crypto: hwrng
talitos ffe30000.crypto: fsl,sec3.3 algorithms registered in /proc/crypto
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
Freescale Synchronous Serial Interface (SSI) ASoC Driver
snd-soc-p1022ds snd-soc-p1022ds.0: codec bus-frequency property is missing or invalid
snd-soc-p1022ds: probe of snd-soc-p1022ds.0 failed with error -22
ata1: No Device OR PHYRDY change,Hstatus = 0xa0000000
ata1: SATA link down (SStatus 0 SControl 300)
Freescale Elo DMA ASoC PCM Driver
ALSA device list:
  No soundcards found.
ata2: No Device OR PHYRDY change,Hstatus = 0xa0000000
ata2: SATA link down (SStatus 0 SControl 300)
IPv4 over IPv4 tunneling driver
TCP cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
NET: Registered protocol family 15
Registering the dns_resolver key type
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
RAMDISK: gzip image found at block 0
VFS: Mounted root (ext2 filesystem) on device 1:0.
Freeing unused kernel memory: 268k freed
Mounting /proc and /sys
Setting the hostname to mpc8572ds
Running depmod
WARNING: Couldn't open directory /lib/modules/3.0.43-rt64-01350-g826673b-dirty: No such file or directory
FATAL: Could not open /lib/modules/3.0.43-rt64-01350-g826673b-dirty/modules.dep.temp for writing: No such file or directory
Mounting filesystems
Starting syslogd and klogd
Running sysctl
Setting up networking on loopback device:
Setting up networking on eth0:
ADDRCONF(NETDEV_UP): eth0: link is not ready
Adding static route for default gateway to 192.168.1.1:
Setting nameserver to 192.168.1.1 in /etc/resolv.conf:
Setting up networking on eth1:
ADDRCONF(NETDEV_UP): eth1: link is not ready
Adding static route for default gateway to 192.168.1.1:
Setting nameserver to 192.168.1.1 in /etc/resolv.conf:
Starting inetd:
Please set the system time using
    date <mmddhhmnyyyy>
    /sbin/hwclock -w


        Welcome to Freescale Semiconductor Embedded Linux Environment

!!!!! WARNING !!!!!!!

The default password for the root account is: root
please change this password using the 'passwd' command
and then edit this message (/etc/issue) to remove this message

mpc8572ds login: PHY: mdio@ffe24000:01 - Link is Up - 1000/Full
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth0: no IPv6 routers present


        Welcome to Freescale Semiconductor Embedded Linux Environment

!!!!! WARNING !!!!!!!

The default password for the root account is: root
please change this password using the 'passwd' command
and then edit this message (/etc/issue) to remove this message

mpc8572ds login:

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox