LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: Ping does not work on my MPC8544 board, using linux2.6.23
From: Scott Wood @ 2009-12-07 18:05 UTC (permalink / raw)
  To: 林志平; +Cc: linuxppc-dev
In-Reply-To: <8148211e0912061953n59dfbe4fsea033494ad8b6fcc@mail.gmail.com>

On Mon, Dec 07, 2009 at 11:53:22AM +0800, 林志平 wrote:
> Does dtc1.2.0 can compile dts files under linux2.6.23?

Probably not -- 2.6.23 is very old, and I think newer dtcs only support the
newer dts syntax.

> Another question is that I found linux2.6.31 does not support
> board mpc8544ds, 

It should.  What problems do you see?

> And I never boot linux-2.6.31 on my board, why linux-2.6.31 doesnot
> provide a config file like mpc8544_ds_defconfig?

Does mpc85xx_defconfig not work?

-Scott

^ permalink raw reply

* Re: [PATCH] powerpc: mpc8xxx_gpio: Add ability to mask off unused GPIO pins
From: Peter Tyser @ 2009-12-07 16:23 UTC (permalink / raw)
  To: avorontsov; +Cc: linuxppc-dev, devicetree-discuss
In-Reply-To: <20091205205149.GA26030@oksana.dev.rtsoft.ru>

Hi Anton,
I've CC-ed devicetree-discuss.  The original patch is at
http://patchwork.ozlabs.org/patch/40361/ for reference.

On Sat, 2009-12-05 at 23:51 +0300, Anton Vorontsov wrote:
> On Sat, Dec 05, 2009 at 01:32:32PM -0600, Peter Tyser wrote:
> [...]
> > > > Adding a new "fsl,gpio-mask" device tree property allows a dts file to
> > > > accurately describe what GPIO pins are available for use on a given
> > > > board.
> > > 
> > > I don't see any real usage for this. If device tree specifies a wrong
> > > gpio in the gpios = <> property, then it's a bug in the device tree
> > > and should be fixed (or workarounded in the platform code).
> > > 
> > > If a user fiddles with unknown gpios via sysfs interface, then it's
> > > user's problem.
> > 
> > Its the sysfs case that I'm concerned about.  Primarily because:
> > 1. Users scratch their head when they see that the "ngpio" sysfs value
> > doesn't match their CPU manual or board vendor's manual, and
> > subsequently ask their board vendor's engineers (ie me:) what's up.
> 
> I don't think that adding code and device tree entries just for
> documentation purposes is a good idea.

Its not just for documentation purposes.  Right now, the sysfs "ngpio"
value is flat out wrong for some processors, regardless of
documentation.  Granted its not a critical bug, but I'd still consider
it a bug.

> > 2. Improperly using GPIO pins could damage hardware for some boards.
> 
> Well, your initial patch tried to solve a different problem: to not
> let users to request non-existent GPIOs, which is usually safe.

I can update the commit message with this rational if it makes a
difference.

> [...]
> > #2 could be worked around by exporting GPIO pins in platform code so
> > that they are not available via sysfs.
> 
> Yes, badly designed hardware deserves ugly hacks in the platform
> code. ;-) So for this problem, just request these gpios in the
> platform code.

I'd wager lots of boards have GPIO pins that a user shouldn't play
around with once Linux boots up.  Like GPIO pins used to program an
FPGA, or control a PLL, etc.  1 device tree property is nicer than
hacking up lots of platform code...

> > Would it be any more acceptable to instead add
> > a "fsl,num-gpio" property so that "ngpio" actually reported an accurate
> > value and non-existent GPIO pins couldn't be used/exported?
> 
> I'd think it's actually less acceptable. fsl,gpio-mask is more generic,
> since from gpio-mask you can deduce ngpio. But it's still ugly.
> 
> What would be OK to do is to describe in the device tree every
> device that is using some GPIO, and then let the userspace request
> *only* gpios that are described in the device-tree. That way you
> can automatically exclude not-existent gpios.
> And if some gpios are just headers on the board, you can still
> describe them in the device tree via "gpio-header" nodes.
> 
> Still, a lot of efforts for no real gain...

Agreed.  Seems like a clean solution, but is a chunk of work.

In any case, my high-level thought process is:
1. Currently, the "ngpio" value is wrong for some processors and should
be fixed.
2. Adding a new "fsl,gpio-mask" gpio solves #1, and has the benefit of
allowing the device tree to easily reserve GPIO pins which should not be
used in Linux.

I guess I'm not seeing the big downside of a new "fsl,gpio-mask"
property.  Its the device tree's job to describe the hardware.  The
change is pretty minimal (~15 lines), and the property can be made
optional.

Or is there another suggestion on how to resolve #1 above?  I consider
it a bug and would like to fix it.

Best,
Peter

^ permalink raw reply

* Re: MACE DMA problem on Powermac 7300
From: Risto Suominen @ 2009-12-07 16:22 UTC (permalink / raw)
  To: LinuxPPC-dev
In-Reply-To: <1260151424.2249.1.camel@pasglop>

Hi, Ben,

2009/12/7, Benjamin Herrenschmidt <benh@kernel.crashing.org>:
>
> Cache coherency bugs in the chipset or HW bugs in DBDMA, we've been
> seeing those on/off on those old apple chipsets...
>
> Try forcing a 32 bytes alignment ?
>
You're thinking of placing the DMA descriptors on different cache lines?

That's excactly what I did with de2104x. But it was easier, I think.
The chip handled its own DMA, and by writing a skip value to a
register... I don't know this GC DMA controller well enough and
haven't found the documentation either...

But I tried the de21041 board with unmodified driver on this 7300, and
it works. The problem was on a 5500.

Risto

^ permalink raw reply

* Re: [v10 PATCH 2/9]: cpuidle: cleanup drivers/cpuidle/cpuidle.c
From: Arun R Bharadwaj @ 2009-12-07 10:56 UTC (permalink / raw)
  To: Torsten Duwe; +Cc: Arun Bharadwaj, linuxppc-dev, Peter Zijlstra, linux-kernel
In-Reply-To: <200912071117.58163.duwe@lst.de>

* Torsten Duwe <duwe@lst.de> [2009-12-07 11:17:57]:

> On Sunday 06 December 2009, Arun R Bharadwaj wrote:
> 
> > Peter objected to the idea of integrating this with the old pm_idle
> > because it has already caused a lot of problems on x86 and we wouldn't
> > want to be doing the same mistake on POWER. The discussion related to
> > that could be found here http://lkml.org/lkml/2009/8/26/233
> 
> And BenH has sketched how it should be done on ppc, in that thread:
> http://lkml.org/lkml/2009/8/26/624 AFAIS this comment is still valid for v10.
> 
> Not only I would like to understand what is the conceptual idea behind the 
> other changes. Nothing wrong with cleanups, but there's got to be a purpose 
> and benefits.
> 
> 	Torsten

The reason for the cleanups is that we should have just one idle
function manager instead of having one for each arch, which needs to
be exported and hence really ugly. So thats why we
decided to do away with pm_idle and make cpuidle as _the_ idle
function manager. So in case of POWER, we have the ppc_md.power_save
which is the pm_idle equivalent. We discussed that in this thread
http://lkml.org/lkml/2009/9/2/20

thanks
arun

^ permalink raw reply

* Re: [v10 PATCH 2/9]: cpuidle: cleanup drivers/cpuidle/cpuidle.c
From: Torsten Duwe @ 2009-12-07 10:17 UTC (permalink / raw)
  To: arun; +Cc: linuxppc-dev, Peter Zijlstra, linux-kernel
In-Reply-To: <20091206051928.GA18300@linux.vnet.ibm.com>

On Sunday 06 December 2009, Arun R Bharadwaj wrote:

> Peter objected to the idea of integrating this with the old pm_idle
> because it has already caused a lot of problems on x86 and we wouldn't
> want to be doing the same mistake on POWER. The discussion related to
> that could be found here http://lkml.org/lkml/2009/8/26/233

And BenH has sketched how it should be done on ppc, in that thread:
http://lkml.org/lkml/2009/8/26/624 AFAIS this comment is still valid for v10.

Not only I would like to understand what is the conceptual idea behind the 
other changes. Nothing wrong with cleanups, but there's got to be a purpose 
and benefits.

	Torsten

^ permalink raw reply

* RE: Ping does not work on my MPC8544 board, using linux2.6.23
From: Li Yang-R58472 @ 2009-12-07  8:40 UTC (permalink / raw)
  To: 林志平, linuxppc-dev
In-Reply-To: <8148211e0912061953n59dfbe4fsea033494ad8b6fcc@mail.gmail.com>

PlN1YmplY3Q6IFBpbmcgZG9lcyBub3Qgd29yayBvbiBteSBNUEM4NTQ0IGJvYXJkLCB1c2luZyBs
aW51eDIuNi4yMw0KPg0KPndoeSBsaW51eC0yLjYuMzEgZG9lc25vdCBwcm92aWRlIGEgY29uZmln
IGZpbGUgbGlrZSANCj5tcGM4NTQ0X2RzX2RlZmNvbmZpZz8NCg0KQmVjYXVzZSBpdCBpcyBjb3Zl
cmVkIGJ5IGNvbW1vbiBkZWZjb25maWcgbXBjODV4eF9kZWZjb25maWcuDQoNCi0gTGVvDQo=

^ permalink raw reply

* Re: [PATCH 06/11] of/flattree: merge early_init_devtree() and early_init_move_devtree()
From: Jeremy Kerr @ 2009-12-07  7:08 UTC (permalink / raw)
  To: devicetree-discuss
  Cc: sfr, monstr, microblaze-uclinux, sparclinux, linuxppc-dev, davem
In-Reply-To: <20091124081853.6216.68105.stgit@angua>

Hi Grant,

> +	/* Scan memory nodes and rebuild LMBs */
> +	lmb_init();
> +	of_scan_flat_dt(early_init_dt_scan_root, NULL);
> +	of_scan_flat_dt(early_init_dt_scan_memory, NULL);
> +
> +	/* Save command line for /proc/cmdline and then parse parameters */
> +	strlcpy(boot_command_line, cmd_line, COMMAND_LINE_SIZE);
> +	parse_early_param();
> +
> +	/* This is in an arbitrary spot, but it is temporary.  After all
> +	 * the common code is merged, the structure of the early init
> +	 * code will be reevaluated and refactored */
> +	early_init_devtree_arch();
> +
> +	lmb_analyze();
> +	lmb_dump_all();

So we're assuming that the arch has lmb support, or should we make this 
conditional on CONFIG_HAVE_LMB?

Looks like ARM has its own lmb implementation (struct membank), so for the 
former case, I'd need to convert that to use lmb instead (which may not be a 
bad thing overall...)

Cheers,


Jeremy 

^ permalink raw reply

* dts file for MPC8343EA
From: ajijuni @ 2009-12-07  6:41 UTC (permalink / raw)
  To: Linuxppc-dev

Hi 

We have an MPC8343EA based custom board. 

I am not able to get Linux up and running in this. No serial output to debug further. 
 U-boot shows correct 'bdinfo' & 'clocks' output. 
inux hangs at machine_probe.

I doubt the DTS file in Linux. anyone has DTS file for MPC8343?? 

u-boot version - 1.3.2
linux-2.6.27
The board base files are drived from MPC8349Imtx-GP since we have the reference board in which we tested the linux image.

My current DTS file 
/dts-v1/; 

/ { 
        model = "MPC8343"; 
        compatible = "MPC8349EMDS", "MPC834xMDS", "MPC83xxMDS"; 
        linux,phandle = <0x100>; 
        #size-cells = <0x1>; 
        #address-cells = <0x1>; 

        aliases { 
                ethernet0 = &enet0; 
                ethernet1 = &enet1; 
                serial0 = &serial0; 
                serial1 = &serial1; 
                pci0 = &pci0; 
                pci1 = &pci1; 
        }; 
         cpus { 
                linux,phandle = <0x200>; 
                #cpus = <0x1>; 
                #address-cells = <1>; 
                #size-cells = <0>; 

 PowerPC,8343EA@0 { 
                        device_type = "cpu"; 
                        reg = <0x0>; 
                        d-cache-line-size = <20>; 
                        i-cache-line-size = <20>; 
                        d-cache-size = <8000>; 
                        i-cache-size = <8000>; 
                        timebase-frequency = <0>;       // from bootloader 
                        bus-frequency = <0>;            // from bootloader 
                        clock-frequency = <0>;          // from bootloader 
                        32-bit; 
                }; 
        }; 


        memory { 
                device_type = "memory"; 
                reg = <0x00000000 0x10000000>;  // 256MB at 0 
        }; 

        bcsr@e2400000 { 
                device_type = "board-control"; 
                reg = <0xe2400000 0x8000>; 
        }; 
        soc8343@e0000000 { 
                bus-frequency = <0x1>; 
                reg = <0xe0000000 0x200>; 
                ranges = <0x0 0xe0000000 0x100000>; 
                device_type = "soc"; 
                #interrupt-cells = <0x2>; 
                #size-cells = <0x1>; 
                #address-cells = <0x1>; 

                wdt@200 { 
                        device_type = "watchdog"; 
                        compatible = "mpc83xx_wdt"; 
                        reg = <0x200 0x100>; 
                }; 

i2c@3000 { 
                        #address-cells = <1>; 
                        #size-cells = <0>; 
                        cell-index = <0>; 
                        compatible = "fsl-i2c"; 
                        reg = <0x3000 0x100>; 
                        interrupts = <14 0x8>; 
                        interrupt-parent = <&ipic>; 
                        dfsrr; 

                        rtc@68 { 
                                compatible = "dallas,ds1374"; 
                                reg = <0x68>; 
                        }; 
                }; 

                i2c@3100 { 
                        #address-cells = <1>; 
                        #size-cells = <0>; 
                        cell-index = <1>; 
                        compatible = "fsl-i2c"; 
                        reg = <0x3100 0x100>; 
                        interrupts = <15 0x8>; 
                        interrupt-parent = <&ipic>; 
                        dfsrr; 
                }; 

                spi@7000 { 
                        cell-index = <0>; 
                        compatible = "fsl,spi"; 
                        reg = <0x7000 0x1000>; 
                        interrupts = <16 0x8>; 
                        interrupt-parent = <&ipic>; 
                        mode = "cpu"; 
                }; 

dma@82a8 { 
                        #address-cells = <1>; 
                        #size-cells = <1>; 
                        compatible = "fsl,mpc8349-dma", "fsl,elo-dma"; 
                        reg = <0x82a8 4>; 
                        ranges = <0 0x8100 0x1a8>; 
                        interrupt-parent = <&ipic>; 
                        interrupts = <71 8>; 
                        cell-index = <0>; 
                        dma-channel@0 { 
                                compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; 
                                reg = <0 0x80>; 
                                interrupt-parent = <&ipic>; 
                                interrupts = <71 8>; 
                        }; 
                        dma-channel@80 { 
                                compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; 
                                reg = <0x80 0x80>; 
                                interrupt-parent = <&ipic>; 
                                interrupts = <71 8>; 
                        }; 
                        dma-channel@100 { 
                                compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; 
                                reg = <0x100 0x80>; 
                                interrupt-parent = <&ipic>; 
                                interrupts = <71 8>; 
                        }; 
                        dma-channel@180 { 
                                compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; 
                                reg = <0x180 0x28>; 
                                interrupt-parent = <&ipic>; 
                                interrupts = <71 8>; 
                        }; 
                }; 
/* phy type (ULPI or SERIAL) are only types supported for MPH */ 
                /* port = 0 or 1 */ 
                usb@22000 { 
                        compatible = "fsl-usb2-mph"; 
                        reg = <0x22000 0x1000>; 
                        #address-cells = <1>; 
                        #size-cells = <0>; 
                        interrupt-parent = <&ipic>; 
                        interrupts = <39 0x8>; 
                        phy_type = "ulpi"; 
                        port1; 
                }; 
                /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ 
                usb@23000 { 
                        compatible = "fsl-usb2-dr"; 
                        reg = <0x23000 0x1000>; 
                        #address-cells = <1>; 
                        #size-cells = <0>; 
                        interrupt-parent = <&ipic>; 
                        interrupts = <38 0x8>; 
                        dr_mode = "otg"; 
                        phy_type = "ulpi"; 
                }; 

                mdio@24520 { 
                        #address-cells = <1>; 
                        #size-cells = <0>; 
                        compatible = "fsl,gianfar-mdio"; 
                        reg = <0x24520 0x20>; 

                        phy0: ethernet-phy@0 { 
                                interrupt-parent = <&ipic>; 
                                interrupts = <17 0x8>; 
                                reg = <0x0>; 
                                device_type = "ethernet-phy"; 
                        }; 
                        phy1: ethernet-phy@1 { 
                                interrupt-parent = <&ipic>; 
                                interrupts = <18 0x8>; 
                                reg = <0x1>; 
                                device_type = "ethernet-phy"; 
                        }; 
enet0: ethernet@24000 { 
                        cell-index = <0>; 
                        device_type = "network"; 
                        model = "TSEC"; 
                        compatible = "gianfar"; 
                        reg = <0x24000 0x1000>; 
                        local-mac-address = [ 00 00 00 00 00 00 ]; 
                        interrupts = <32 0x8 33 0x8 34 0x8>; 
                        interrupt-parent = <&ipic>; 
                        phy-handle = <&phy0>; 
                        linux,network-index = <0>; 
                }; 

                enet1: ethernet@25000 { 
                        cell-index = <1>; 
                        device_type = "network"; 
                        model = "TSEC"; 
                        compatible = "gianfar"; 
                        reg = <0x25000 0x1000>; 
                        local-mac-address = [ 00 00 00 00 00 00 ]; 
                        interrupts = <35 0x8 36 0x8 37 0x8>; 
                        interrupt-parent = <&ipic>; 
                        phy-handle = <&phy1>; 
                        linux,network-index = <1>; 
                }; 

serial0: serial@4500 { 
                        cell-index = <0>; 
                        device_type = "serial"; 
                        compatible = "ns16550"; 
                        reg = <0x4500 0x100>; 
                        clock-frequency = <0>; 
                        interrupts = <9 0x8>; 
                        interrupt-parent = <&ipic>; 
                }; 

                serial1: serial@4600 { 
                        cell-index = <1>; 
                        device_type = "serial"; 
                        compatible = "ns16550"; 
                        reg = <0x4600 0x100>; 
                        clock-frequency = <0>; 
                        interrupts = <10 0x8>; 
                        interrupt-parent = <&ipic>; 
                }; 

                crypto@30000 { 
                        compatible = "fsl,sec2.0"; 
                        reg = <0x30000 0x10000>; 
                        interrupts = <11 0x8>; 
                        interrupt-parent = <&ipic>; 
                        fsl,num-channels = <4>; 
                        fsl,channel-fifo-len = <24>; 
                        fsl,exec-units-mask = <0x7e>; 
                        fsl,descriptor-types-mask = <0x01010ebf>; 
                }; 

Thanks, 
agnel 

^ permalink raw reply

* [PATCH] offb: add support for framebuffer handoff to offb.
From: Dave Airlie @ 2009-12-07  6:01 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Dave Airlie

From: Dave Airlie <airlied@ppcg5.localdomain>

This allows offb to be used for initial framebuffer,
and a kms driver to take over later in the boot sequence.

Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/video/offb.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/drivers/video/offb.c b/drivers/video/offb.c
index 4d8c54c..b043ac8 100644
--- a/drivers/video/offb.c
+++ b/drivers/video/offb.c
@@ -282,8 +282,17 @@ static int offb_set_par(struct fb_info *info)
 	return 0;
 }
 
+static void offb_destroy(struct fb_info *info)
+{
+	if (info->screen_base)
+		iounmap(info->screen_base);
+	release_mem_region(info->aperture_base, info->aperture_size);
+	framebuffer_release(info);
+}
+
 static struct fb_ops offb_ops = {
 	.owner		= THIS_MODULE,
+	.fb_destroy	= offb_destroy,
 	.fb_setcolreg	= offb_setcolreg,
 	.fb_set_par	= offb_set_par,
 	.fb_blank	= offb_blank,
@@ -482,10 +491,14 @@ static void __init offb_init_fb(const char *name, const char *full_name,
 	var->sync = 0;
 	var->vmode = FB_VMODE_NONINTERLACED;
 
+	/* set offb aperture size for generic probing */
+	info->aperture_base = address;
+	info->aperture_size = fix->smem_len;
+
 	info->fbops = &offb_ops;
 	info->screen_base = ioremap(address, fix->smem_len);
 	info->pseudo_palette = (void *) (info + 1);
-	info->flags = FBINFO_DEFAULT | foreign_endian;
+	info->flags = FBINFO_DEFAULT | FBINFO_MISC_FIRMWARE | foreign_endian;
 
 	fb_alloc_cmap(&info->cmap, 256, 0);
 
-- 
1.6.5.rc2

^ permalink raw reply related

* Ping does not work on my MPC8544 board, using linux2.6.23
From: 林志平 @ 2009-12-07  3:53 UTC (permalink / raw)
  To: linuxppc-dev

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

Hi,all:
This is my first time to post on this maillist,I got a problem that ping can
not work and I am wondering if it is because of my mismatch of linux kernel
and DTC compiler version.
I am using mpc8544ds_bsp provided by freescale.
I used uboot2009.08 to boot my board successfully.
At first, I using the dtc compiler in this bsp which is version 1.1.0 along
with linux2.6.23 which is also provided by this bsp.
But I failded to boot the linux kernel.
And later, I tried out using dtc1.2.0 and the mpc8544ds.dts in linux-2.6.23,
there are some systax errors like hex to dec. And I modified the
mpc8544ds.dts to to fit dtc1.2.0.
And I boot linux successfully, but PING doesnot work now.
I am sure I set the ipaddr netmask ,and  default gateway correctly.
Does dtc1.2.0 can compile dts files under linux2.6.23?
Another question is that I found linux2.6.31 does not support
board mpc8544ds, And I never boot linux-2.6.31 on my board, why linux-2.6.31
doesnot provide a config file like mpc8544_ds_defconfig?
Thanks!

[-- Attachment #2: Type: text/html, Size: 1160 bytes --]

^ permalink raw reply

* [PATCH 4/4] powerpc: Set HZ=100 on pseries and ppc64 defconfigs
From: Anton Blanchard @ 2009-12-07  3:48 UTC (permalink / raw)
  To: benh; +Cc: linuxppc-dev
In-Reply-To: <20091207034714.GC3421@kryten>


Now we have high res timers there is less of a reason for a high HZ value.
Furthermore I think there a few reasons we should reduce HZ to 100:

- Timer interrupt overhead. While this overhead is small, there are
  applications that are very sensitive to jitter (eg some HPC apps).

- Issues with the timer wheel code. When coming out of NO_HZ idle we work our
  way through the timer code one tick at a time.  If we have been idle a long
  time, this adds up - I sometimes see milliseconds of time spent in that
  loop.

  Long term we should fix the timer wheel algorithm, but for now if we reduce
  HZ then we reduce the amount of work the timer code has to do when coming
  out of idle.

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

Index: linux.trees.git/arch/powerpc/configs/ppc64_defconfig
===================================================================
--- linux.trees.git.orig/arch/powerpc/configs/ppc64_defconfig	2009-11-27 11:58:09.000000000 +1100
+++ linux.trees.git/arch/powerpc/configs/ppc64_defconfig	2009-11-27 11:58:43.000000000 +1100
@@ -306,11 +306,11 @@ CONFIG_TICK_ONESHOT=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-# CONFIG_HZ_100 is not set
-CONFIG_HZ_250=y
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
 # CONFIG_HZ_300 is not set
 # CONFIG_HZ_1000 is not set
-CONFIG_HZ=250
+CONFIG_HZ=100
 CONFIG_SCHED_HRTICK=y
 CONFIG_PREEMPT_NONE=y
 # CONFIG_PREEMPT_VOLUNTARY is not set
Index: linux.trees.git/arch/powerpc/configs/pseries_defconfig
===================================================================
--- linux.trees.git.orig/arch/powerpc/configs/pseries_defconfig	2009-11-27 11:58:11.000000000 +1100
+++ linux.trees.git/arch/powerpc/configs/pseries_defconfig	2009-11-27 11:58:31.000000000 +1100
@@ -231,11 +231,11 @@ CONFIG_TICK_ONESHOT=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-# CONFIG_HZ_100 is not set
-CONFIG_HZ_250=y
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
 # CONFIG_HZ_300 is not set
 # CONFIG_HZ_1000 is not set
-CONFIG_HZ=250
+CONFIG_HZ=100
 CONFIG_SCHED_HRTICK=y
 CONFIG_PREEMPT_NONE=y
 # CONFIG_PREEMPT_VOLUNTARY is not set

^ permalink raw reply

* [PATCH 3/4] powerpc: Reduce differences between pseries and ppc64 defconfigs
From: Anton Blanchard @ 2009-12-07  3:47 UTC (permalink / raw)
  To: benh; +Cc: linuxppc-dev
In-Reply-To: <20091207034555.GB3421@kryten>


The pseries and ppc64 defconfigs have drifted apart over the years. Reduce
some of the differences while still keeping the idea that the ppc64 defconfig
is cross platform but enables fewer features than pseries, eg:

- NR_CPUS is lower
- No NUMA support

Also enable a number of common adapters as modules.

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

Index: linux.trees.git/arch/powerpc/configs/ppc64_defconfig
===================================================================
--- linux.trees.git.orig/arch/powerpc/configs/ppc64_defconfig	2009-11-26 12:38:30.000000000 +1100
+++ linux.trees.git/arch/powerpc/configs/ppc64_defconfig	2009-11-26 15:33:30.000000000 +1100
@@ -137,8 +137,9 @@ CONFIG_TRACEPOINTS=y
 CONFIG_MARKERS=y
 CONFIG_OPROFILE=y
 CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
+CONFIG_KPROBES=y
 CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_KRETPROBES=y
 CONFIG_HAVE_IOREMAP_PROT=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
@@ -191,6 +192,7 @@ CONFIG_SCANLOG=m
 CONFIG_LPARCFG=y
 CONFIG_PPC_SMLPAR=y
 CONFIG_CMM=y
+CONFIG_DTL=y
 CONFIG_PPC_ISERIES=y
 
 #
@@ -358,7 +360,7 @@ CONFIG_ARCH_MEMORY_PROBE=y
 CONFIG_PPC_HAS_HASH_64K=y
 # CONFIG_PPC_64K_PAGES is not set
 CONFIG_FORCE_MAX_ZONEORDER=13
-# CONFIG_SCHED_SMT is not set
+CONFIG_SCHED_SMT=y
 CONFIG_PROC_DEVICETREE=y
 # CONFIG_CMDLINE_BOOL is not set
 CONFIG_EXTRA_TARGETS=""
@@ -790,12 +792,12 @@ CONFIG_SCSI_IPR=y
 CONFIG_SCSI_IPR_TRACE=y
 CONFIG_SCSI_IPR_DUMP=y
 # CONFIG_SCSI_QLOGIC_1280 is not set
-# CONFIG_SCSI_QLA_FC is not set
+CONFIG_SCSI_QLA_FC=m
 # CONFIG_SCSI_QLA_ISCSI is not set
 CONFIG_SCSI_LPFC=m
 # CONFIG_SCSI_DC395x is not set
 # CONFIG_SCSI_DC390T is not set
-CONFIG_SCSI_DEBUG=m
+# CONFIG_SCSI_DEBUG is not set
 # CONFIG_SCSI_SRP is not set
 # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
 # CONFIG_SCSI_DH is not set
@@ -867,9 +869,8 @@ CONFIG_MD_AUTODETECT=y
 CONFIG_MD_LINEAR=y
 CONFIG_MD_RAID0=y
 CONFIG_MD_RAID1=y
-CONFIG_MD_RAID10=y
-CONFIG_MD_RAID456=y
-CONFIG_MD_RAID5_RESHAPE=y
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
 CONFIG_MD_MULTIPATH=m
 CONFIG_MD_FAULTY=m
 CONFIG_BLK_DEV_DM=y
@@ -984,7 +985,7 @@ CONFIG_ACENIC=m
 CONFIG_ACENIC_OMIT_TIGON_I=y
 # CONFIG_DL2K is not set
 CONFIG_E1000=y
-# CONFIG_E1000E is not set
+CONFIG_E1000E=m
 # CONFIG_IP1000 is not set
 # CONFIG_IGB is not set
 # CONFIG_NS83820 is not set
@@ -1006,19 +1007,19 @@ CONFIG_GELIC_WIRELESS=y
 # CONFIG_ATL1E is not set
 # CONFIG_JME is not set
 CONFIG_NETDEV_10000=y
-# CONFIG_CHELSIO_T1 is not set
-# CONFIG_CHELSIO_T3 is not set
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T3=m
 CONFIG_EHEA=m
 # CONFIG_ENIC is not set
-# CONFIG_IXGBE is not set
+CONFIG_IXGBE=m
 CONFIG_IXGB=m
-# CONFIG_S2IO is not set
-# CONFIG_MYRI10GE is not set
-# CONFIG_NETXEN_NIC is not set
+CONFIG_S2IO=m
+CONFIG_MYRI10GE=m
+CONFIG_NETXEN_NIC=m
 # CONFIG_NIU is not set
 CONFIG_PASEMI_MAC=y
-# CONFIG_MLX4_EN is not set
-# CONFIG_MLX4_CORE is not set
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
 # CONFIG_TEHUTI is not set
 # CONFIG_BNX2X is not set
 # CONFIG_QLGE is not set
@@ -1169,7 +1170,7 @@ CONFIG_SERIAL_TXX9=y
 CONFIG_HAS_TXX9_SERIAL=y
 CONFIG_SERIAL_TXX9_NR_UARTS=6
 CONFIG_SERIAL_TXX9_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
+CONFIG_SERIAL_JSM=m
 # CONFIG_SERIAL_OF_PLATFORM is not set
 CONFIG_UNIX98_PTYS=y
 CONFIG_LEGACY_PTYS=y
@@ -1586,7 +1587,7 @@ CONFIG_USB_DEVICEFS=y
 CONFIG_USB_DEVICE_CLASS=y
 # CONFIG_USB_DYNAMIC_MINORS is not set
 # CONFIG_USB_OTG is not set
-# CONFIG_USB_MON is not set
+CONFIG_USB_MON=m
 # CONFIG_USB_WUSB is not set
 # CONFIG_USB_WUSB_CBAF is not set
 
@@ -1686,21 +1687,22 @@ CONFIG_USB_APPLEDISPLAY=m
 # CONFIG_NEW_LEDS is not set
 # CONFIG_ACCESSIBILITY is not set
 CONFIG_INFINIBAND=m
-# CONFIG_INFINIBAND_USER_MAD is not set
-# CONFIG_INFINIBAND_USER_ACCESS is not set
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MEM=y
 CONFIG_INFINIBAND_ADDR_TRANS=y
 CONFIG_INFINIBAND_MTHCA=m
 CONFIG_INFINIBAND_MTHCA_DEBUG=y
-# CONFIG_INFINIBAND_IPATH is not set
+CONFIG_INFINIBAND_IPATH=m
 CONFIG_INFINIBAND_EHCA=m
 # CONFIG_INFINIBAND_AMSO1100 is not set
-# CONFIG_MLX4_INFINIBAND is not set
+CONFIG_MLX4_INFINIBAND=m
 # CONFIG_INFINIBAND_NES is not set
 CONFIG_INFINIBAND_IPOIB=m
-# CONFIG_INFINIBAND_IPOIB_CM is not set
+CONFIG_INFINIBAND_IPOIB_CM=y
 CONFIG_INFINIBAND_IPOIB_DEBUG=y
 # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
-# CONFIG_INFINIBAND_SRP is not set
+CONFIG_INFINIBAND_SRP=m
 CONFIG_INFINIBAND_ISER=m
 CONFIG_EDAC=y
 
@@ -1798,7 +1800,7 @@ CONFIG_REISERFS_FS=y
 CONFIG_REISERFS_FS_XATTR=y
 CONFIG_REISERFS_FS_POSIX_ACL=y
 CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=y
+CONFIG_JFS_FS=m
 CONFIG_JFS_POSIX_ACL=y
 CONFIG_JFS_SECURITY=y
 # CONFIG_JFS_DEBUG is not set
@@ -1811,14 +1813,22 @@ CONFIG_XFS_POSIX_ACL=y
 # CONFIG_XFS_RT is not set
 # CONFIG_XFS_DEBUG is not set
 # CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_STATS=y
+CONFIG_OCFS2_DEBUG_MASKLOG=y
+# CONFIG_OCFS2_DEBUG_FS is not set
+# CONFIG_OCFS2_COMPAT_JBD is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
 CONFIG_DNOTIFY=y
 CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
 # CONFIG_QUOTA is not set
 # CONFIG_AUTOFS_FS is not set
 CONFIG_AUTOFS4_FS=m
-# CONFIG_FUSE_FS is not set
+CONFIG_FUSE_FS=m
 
 #
 # CD-ROM/DVD Filesystems
@@ -1851,7 +1861,7 @@ CONFIG_TMPFS=y
 # CONFIG_TMPFS_POSIX_ACL is not set
 CONFIG_HUGETLBFS=y
 CONFIG_HUGETLB_PAGE=y
-# CONFIG_CONFIGFS_FS is not set
+CONFIG_CONFIGFS_FS=m
 
 #
 # Miscellaneous filesystems
@@ -2075,7 +2085,7 @@ CONFIG_XMON=y
 CONFIG_XMON_DISASSEMBLY=y
 CONFIG_DEBUGGER=y
 CONFIG_IRQSTACKS=y
-# CONFIG_VIRQ_DEBUG is not set
+CONFIG_VIRQ_DEBUG=y
 CONFIG_BOOTX_TEXT=y
 # CONFIG_PPC_EARLY_DEBUG is not set
 
Index: linux.trees.git/arch/powerpc/configs/pseries_defconfig
===================================================================
--- linux.trees.git.orig/arch/powerpc/configs/pseries_defconfig	2009-11-26 12:38:29.000000000 +1100
+++ linux.trees.git/arch/powerpc/configs/pseries_defconfig	2009-11-26 15:43:20.000000000 +1100
@@ -159,7 +159,7 @@ CONFIG_MODULE_SRCVERSION_ALL=y
 CONFIG_KMOD=y
 CONFIG_STOP_MACHINE=y
 CONFIG_BLOCK=y
-# CONFIG_BLK_DEV_IO_TRACE is not set
+CONFIG_BLK_DEV_IO_TRACE=y
 CONFIG_BLK_DEV_BSG=y
 # CONFIG_BLK_DEV_INTEGRITY is not set
 CONFIG_BLOCK_COMPAT=y
@@ -191,6 +191,7 @@ CONFIG_SCANLOG=m
 CONFIG_LPARCFG=y
 CONFIG_PPC_SMLPAR=y
 CONFIG_CMM=y
+CONFIG_DTL=y
 # CONFIG_PPC_ISERIES is not set
 # CONFIG_PPC_PMAC is not set
 # CONFIG_PPC_MAPLE is not set
@@ -270,7 +271,9 @@ CONFIG_HAVE_MEMORY_PRESENT=y
 CONFIG_SPARSEMEM_EXTREME=y
 CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
 CONFIG_SPARSEMEM_VMEMMAP=y
-# CONFIG_MEMORY_HOTPLUG is not set
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
 CONFIG_PAGEFLAGS_EXTENDED=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
 CONFIG_MIGRATION=y
@@ -705,7 +708,7 @@ CONFIG_MD_LINEAR=y
 CONFIG_MD_RAID0=y
 CONFIG_MD_RAID1=y
 CONFIG_MD_RAID10=m
-# CONFIG_MD_RAID456 is not set
+CONFIG_MD_RAID456=m
 CONFIG_MD_MULTIPATH=m
 CONFIG_MD_FAULTY=m
 CONFIG_BLK_DEV_DM=y
@@ -800,7 +803,7 @@ CONFIG_ACENIC=m
 CONFIG_ACENIC_OMIT_TIGON_I=y
 # CONFIG_DL2K is not set
 CONFIG_E1000=y
-# CONFIG_E1000E is not set
+CONFIG_E1000E=m
 # CONFIG_IP1000 is not set
 # CONFIG_IGB is not set
 # CONFIG_NS83820 is not set
@@ -818,18 +821,18 @@ CONFIG_TIGON3=y
 # CONFIG_ATL1E is not set
 # CONFIG_JME is not set
 CONFIG_NETDEV_10000=y
-# CONFIG_CHELSIO_T1 is not set
-# CONFIG_CHELSIO_T3 is not set
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T3=m
 CONFIG_EHEA=y
 # CONFIG_ENIC is not set
-# CONFIG_IXGBE is not set
+CONFIG_IXGBE=m
 CONFIG_IXGB=m
 CONFIG_S2IO=m
-# CONFIG_MYRI10GE is not set
-# CONFIG_NETXEN_NIC is not set
+CONFIG_MYRI10GE=m
+CONFIG_NETXEN_NIC=m
 # CONFIG_NIU is not set
-# CONFIG_MLX4_EN is not set
-# CONFIG_MLX4_CORE is not set
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
 # CONFIG_TEHUTI is not set
 # CONFIG_BNX2X is not set
 # CONFIG_QLGE is not set
@@ -894,7 +897,7 @@ CONFIG_INPUT_MOUSEDEV=y
 CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
 # CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
+CONFIG_INPUT_EVDEV=m
 # CONFIG_INPUT_EVBUG is not set
 
 #
@@ -1271,7 +1274,7 @@ CONFIG_USB_DEVICEFS=y
 CONFIG_USB_DEVICE_CLASS=y
 # CONFIG_USB_DYNAMIC_MINORS is not set
 # CONFIG_USB_OTG is not set
-CONFIG_USB_MON=y
+CONFIG_USB_MON=m
 # CONFIG_USB_WUSB is not set
 # CONFIG_USB_WUSB_CBAF is not set
 
@@ -1311,7 +1314,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
 #
 # may also be needed; see USB_STORAGE Help for more information
 #
-CONFIG_USB_STORAGE=y
+CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_DEBUG is not set
 # CONFIG_USB_STORAGE_DATAFAB is not set
 # CONFIG_USB_STORAGE_FREECOM is not set
@@ -1322,7 +1325,7 @@ CONFIG_USB_STORAGE=y
 # CONFIG_USB_STORAGE_SDDR55 is not set
 # CONFIG_USB_STORAGE_JUMPSHOT is not set
 # CONFIG_USB_STORAGE_ALAUDA is not set
-CONFIG_USB_STORAGE_ONETOUCH=y
+# CONFIG_USB_STORAGE_ONETOUCH is not set
 # CONFIG_USB_STORAGE_KARMA is not set
 # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
 # CONFIG_USB_LIBUSUAL is not set
@@ -1377,17 +1380,17 @@ CONFIG_INFINIBAND_USER_MEM=y
 CONFIG_INFINIBAND_ADDR_TRANS=y
 CONFIG_INFINIBAND_MTHCA=m
 CONFIG_INFINIBAND_MTHCA_DEBUG=y
-# CONFIG_INFINIBAND_IPATH is not set
+CONFIG_INFINIBAND_IPATH=m
 CONFIG_INFINIBAND_EHCA=m
 # CONFIG_INFINIBAND_AMSO1100 is not set
-# CONFIG_MLX4_INFINIBAND is not set
+CONFIG_MLX4_INFINIBAND=m
 # CONFIG_INFINIBAND_NES is not set
 CONFIG_INFINIBAND_IPOIB=m
-# CONFIG_INFINIBAND_IPOIB_CM is not set
+CONFIG_INFINIBAND_IPOIB_CM=y
 CONFIG_INFINIBAND_IPOIB_DEBUG=y
 # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
 CONFIG_INFINIBAND_SRP=m
-# CONFIG_INFINIBAND_ISER is not set
+CONFIG_INFINIBAND_ISER=m
 # CONFIG_EDAC is not set
 # CONFIG_RTC_CLASS is not set
 # CONFIG_DMADEVICES is not set
@@ -1443,6 +1446,9 @@ CONFIG_OCFS2_FS_STATS=y
 CONFIG_OCFS2_DEBUG_MASKLOG=y
 # CONFIG_OCFS2_DEBUG_FS is not set
 # CONFIG_OCFS2_COMPAT_JBD is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
 CONFIG_DNOTIFY=y
 CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
@@ -1455,8 +1461,8 @@ CONFIG_FUSE_FS=m
 # CD-ROM/DVD Filesystems
 #
 CONFIG_ISO9660_FS=y
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
 CONFIG_UDF_FS=m
 CONFIG_UDF_NLS=y
 
@@ -1508,14 +1514,14 @@ CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
 CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
-CONFIG_NFSD=y
+CONFIG_NFSD=m
 CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
 CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
 CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=y
+CONFIG_EXPORTFS=m
 CONFIG_NFS_ACL_SUPPORT=y
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=y
@@ -1681,12 +1687,12 @@ CONFIG_DYNAMIC_PRINTK_DEBUG=y
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
 CONFIG_DEBUG_STACKOVERFLOW=y
-# CONFIG_DEBUG_STACK_USAGE is not set
+CONFIG_DEBUG_STACK_USAGE=y
 # CONFIG_DEBUG_PAGEALLOC is not set
 # CONFIG_HCALL_STATS is not set
-# CONFIG_CODE_PATCHING_SELFTEST is not set
-# CONFIG_FTR_FIXUP_SELFTEST is not set
-# CONFIG_MSI_BITMAP_SELFTEST is not set
+CONFIG_CODE_PATCHING_SELFTEST=y
+CONFIG_FTR_FIXUP_SELFTEST=y
+CONFIG_MSI_BITMAP_SELFTEST=y
 CONFIG_XMON=y
 CONFIG_XMON_DEFAULT=y
 CONFIG_XMON_DISASSEMBLY=y

^ permalink raw reply

* [PATCH 2/4] powerpc: Disable token ring in powerpc defconfigs
From: Anton Blanchard @ 2009-12-07  3:45 UTC (permalink / raw)
  To: benh; +Cc: linuxppc-dev
In-Reply-To: <20091207034509.GA3421@kryten>


Token what? Lets save some space in our powerpc kernels and remove token
ring support.

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

Index: linux.trees.git/arch/powerpc/configs/g5_defconfig
===================================================================
--- linux.trees.git.orig/arch/powerpc/configs/g5_defconfig	2009-11-26 12:35:15.000000000 +1100
+++ linux.trees.git/arch/powerpc/configs/g5_defconfig	2009-11-26 12:35:59.000000000 +1100
@@ -794,8 +794,8 @@ CONFIG_NETDEV_10000=y
 # CONFIG_BNX2X is not set
 # CONFIG_QLGE is not set
 # CONFIG_SFC is not set
-CONFIG_TR=y
-CONFIG_IBMOL=y
+# CONFIG_TR is not set
+# CONFIG_IBMOL is not set
 # CONFIG_3C359 is not set
 # CONFIG_TMS380TR is not set
 
Index: linux.trees.git/arch/powerpc/configs/iseries_defconfig
===================================================================
--- linux.trees.git.orig/arch/powerpc/configs/iseries_defconfig	2009-11-26 12:35:15.000000000 +1100
+++ linux.trees.git/arch/powerpc/configs/iseries_defconfig	2009-11-26 12:35:55.000000000 +1100
@@ -714,8 +714,8 @@ CONFIG_NETDEV_10000=y
 # CONFIG_BNX2X is not set
 # CONFIG_QLGE is not set
 # CONFIG_SFC is not set
-CONFIG_TR=y
-CONFIG_IBMOL=y
+# CONFIG_TR is not set
+# CONFIG_IBMOL is not set
 # CONFIG_3C359 is not set
 # CONFIG_TMS380TR is not set
 
Index: linux.trees.git/arch/powerpc/configs/ppc64_defconfig
===================================================================
--- linux.trees.git.orig/arch/powerpc/configs/ppc64_defconfig	2009-11-26 12:35:15.000000000 +1100
+++ linux.trees.git/arch/powerpc/configs/ppc64_defconfig	2009-11-26 12:35:51.000000000 +1100
@@ -1023,8 +1023,8 @@ CONFIG_PASEMI_MAC=y
 # CONFIG_BNX2X is not set
 # CONFIG_QLGE is not set
 # CONFIG_SFC is not set
-CONFIG_TR=y
-CONFIG_IBMOL=y
+# CONFIG_TR is not set
+# CONFIG_IBMOL is not set
 # CONFIG_3C359 is not set
 # CONFIG_TMS380TR is not set
 
Index: linux.trees.git/arch/powerpc/configs/ppc64e_defconfig
===================================================================
--- linux.trees.git.orig/arch/powerpc/configs/ppc64e_defconfig	2009-11-26 12:35:15.000000000 +1100
+++ linux.trees.git/arch/powerpc/configs/ppc64e_defconfig	2009-11-26 12:35:41.000000000 +1100
@@ -1008,8 +1008,8 @@ CONFIG_IXGB=m
 # CONFIG_QLGE is not set
 # CONFIG_SFC is not set
 # CONFIG_BE2NET is not set
-CONFIG_TR=y
-CONFIG_IBMOL=y
+# CONFIG_TR is not set
+# CONFIG_IBMOL is not set
 # CONFIG_3C359 is not set
 # CONFIG_TMS380TR is not set
 CONFIG_WLAN=y
Index: linux.trees.git/arch/powerpc/configs/pseries_defconfig
===================================================================
--- linux.trees.git.orig/arch/powerpc/configs/pseries_defconfig	2009-11-26 12:35:15.000000000 +1100
+++ linux.trees.git/arch/powerpc/configs/pseries_defconfig	2009-11-26 12:36:04.000000000 +1100
@@ -834,8 +834,8 @@ CONFIG_S2IO=m
 # CONFIG_BNX2X is not set
 # CONFIG_QLGE is not set
 # CONFIG_SFC is not set
-CONFIG_TR=y
-CONFIG_IBMOL=y
+# CONFIG_TR is not set
+# CONFIG_IBMOL is not set
 # CONFIG_3C359 is not set
 # CONFIG_TMS380TR is not set
 

^ permalink raw reply

* [PATCH 1/4] powerpc: Reduce 64bit vmlinux by making acenic and cramfs modules
From: Anton Blanchard @ 2009-12-07  3:45 UTC (permalink / raw)
  To: benh; +Cc: linuxppc-dev


Machines with acenic adapters are rare these days, so we may as well make it
a module. Cramfs is also very rarely used so we can make it a module.

Together this saves 143kB on a 64bit compile:

   text	   data	    bss	    dec	    hex	filename
8247176	1729404	1221988	11198568	 aae068	vmlinux~
8134997	1727588	1188836	11051421	 a8a19d	vmlinux

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

Index: linux.trees.git/arch/powerpc/configs/g5_defconfig
===================================================================
--- linux.trees.git.orig/arch/powerpc/configs/g5_defconfig	2009-11-25 12:47:15.000000000 +1100
+++ linux.trees.git/arch/powerpc/configs/g5_defconfig	2009-11-25 12:47:41.000000000 +1100
@@ -757,7 +757,7 @@ CONFIG_SUNGEM=y
 # CONFIG_B44 is not set
 # CONFIG_ATL2 is not set
 CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=y
+CONFIG_ACENIC=m
 CONFIG_ACENIC_OMIT_TIGON_I=y
 # CONFIG_DL2K is not set
 CONFIG_E1000=y
Index: linux.trees.git/arch/powerpc/configs/ppc64_defconfig
===================================================================
--- linux.trees.git.orig/arch/powerpc/configs/ppc64_defconfig	2009-11-25 12:47:15.000000000 +1100
+++ linux.trees.git/arch/powerpc/configs/ppc64_defconfig	2009-11-25 12:47:41.000000000 +1100
@@ -980,7 +980,7 @@ CONFIG_E100=y
 # CONFIG_SC92031 is not set
 # CONFIG_ATL2 is not set
 CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=y
+CONFIG_ACENIC=m
 CONFIG_ACENIC_OMIT_TIGON_I=y
 # CONFIG_DL2K is not set
 CONFIG_E1000=y
@@ -1863,7 +1863,7 @@ CONFIG_HFSPLUS_FS=m
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
-CONFIG_CRAMFS=y
+CONFIG_CRAMFS=m
 # CONFIG_VXFS_FS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_OMFS_FS is not set
Index: linux.trees.git/arch/powerpc/configs/pseries_defconfig
===================================================================
--- linux.trees.git.orig/arch/powerpc/configs/pseries_defconfig	2009-11-25 12:47:15.000000000 +1100
+++ linux.trees.git/arch/powerpc/configs/pseries_defconfig	2009-11-25 12:47:41.000000000 +1100
@@ -796,7 +796,7 @@ CONFIG_E100=y
 # CONFIG_NET_POCKET is not set
 # CONFIG_ATL2 is not set
 CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=y
+CONFIG_ACENIC=m
 CONFIG_ACENIC_OMIT_TIGON_I=y
 # CONFIG_DL2K is not set
 CONFIG_E1000=y
@@ -1494,7 +1494,7 @@ CONFIG_CONFIGFS_FS=m
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
-CONFIG_CRAMFS=y
+CONFIG_CRAMFS=m
 # CONFIG_VXFS_FS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_OMFS_FS is not set

^ permalink raw reply

* Re: MACE DMA problem on Powermac 7300
From: Benjamin Herrenschmidt @ 2009-12-07  2:03 UTC (permalink / raw)
  To: Risto Suominen; +Cc: LinuxPPC-dev
In-Reply-To: <46e1c7760912061436l76b895ebvf27407a08d41aa45@mail.gmail.com>

On Mon, 2009-12-07 at 00:36 +0200, Risto Suominen wrote:
> I post this in hope that somebody could shed some light on how should
> the DMA work in conjunction with the MACE ethernet controller. I find
> difficult to understand why it does not work in my case:
> 
> What happens? First two bytes of a received frame are not what they
> should be in more than 50% of frames. This can be avoided by receiving
> the frame on a word boundary, but with the usual skb_reserve(..., 2)
> (to make the IP header land on word boundary), it won't work.
> 
> So, I can make the driver work by receiving at 0 offset, and then
> moving the data 2 bytes up, before handing it over to upper layers.
> 
> This used to work with a 2.4.27 kernel, obviously the Grand Central
> DBDMA controller can receive on non-word boundaries. Now I have
> 2.6.15.7.
> 
> Any ideas, what could cause this kind of behaviour (and regression)?

Cache coherency bugs in the chipset or HW bugs in DBDMA, we've been
seeing those on/off on those old apple chipsets...

Try forcing a 32 bytes alignment ?

Cheers,
Ben.

^ permalink raw reply

* Re: ZILOG serial port broken in 2.6.32
From: Benjamin Herrenschmidt @ 2009-12-07  1:10 UTC (permalink / raw)
  To: Rob Landley; +Cc: paulus, linuxppc-dev
In-Reply-To: <200912060101.22515.rob@landley.net>

On Sun, 2009-12-06 at 01:01 -0600, Rob Landley wrote:
> Trying again with a few likely-looking cc's from the MAINTAINERS file:
> 
> Summary: 
> 
> The PMACZILOG serial driver last worked in 2.6.28.  It was broken by commit 
> f751928e0ddf54ea4fe5546f35e99efc5b5d9938 by Alan Cox making bits of the tty 
> layer dynamically allocated.  The PMACZILOG driver wasn't properly converted, 
> it works with interrupts disabled (for boot messages), but as soon as 
> interrupts are enabled (PID 1 spawns) the next write to the serial console 
> panics the kernel.

Ah looks like I missed that... I'll dig. Thanks for the report.

Cheers,
Ben.

^ permalink raw reply

* Re: using different format for hugetlbfs
From: Benjamin Herrenschmidt @ 2009-12-07  1:04 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linux-ppc list, David Gibson
In-Reply-To: <5034AAE3-CCF9-446D-AC4B-B3F59C81D507@kernel.crashing.org>


> 
> Even than, does that preclude the format I suggested?  I'm assuming  
> that pgd_t/pud_t/pmd_t are always a double word so the low order 4- 
> bits should be 0 (on 64-bit), so using the lsb as the flag between  
> hugetlb and normal pointer should still work.

Might do, depends if David has enough bits ...  David ?

Cheers,
Ben.

^ permalink raw reply

* MACE DMA problem on Powermac 7300
From: Risto Suominen @ 2009-12-06 22:36 UTC (permalink / raw)
  To: LinuxPPC-dev

Hi, everybody,

I post this in hope that somebody could shed some light on how should
the DMA work in conjunction with the MACE ethernet controller. I find
difficult to understand why it does not work in my case:

What happens? First two bytes of a received frame are not what they
should be in more than 50% of frames. This can be avoided by receiving
the frame on a word boundary, but with the usual skb_reserve(..., 2)
(to make the IP header land on word boundary), it won't work.

So, I can make the driver work by receiving at 0 offset, and then
moving the data 2 bytes up, before handing it over to upper layers.

This used to work with a 2.4.27 kernel, obviously the Grand Central
DBDMA controller can receive on non-word boundaries. Now I have
2.6.15.7.

Any ideas, what could cause this kind of behaviour (and regression)?

Best regards,
Risto Suominen

^ permalink raw reply

* [PATCH 2/2] agp/uninorth: Unify U3 and pre-U3 insert_memory and remove_memory hooks.
From: Michel Dänzer @ 2009-12-06 12:15 UTC (permalink / raw)
  To: David Airlie; +Cc: linuxppc-dev
In-Reply-To: <1260101756-22645-1-git-send-email-michel@daenzer.net>

From: Michel Dänzer <daenzer@vmware.com>

Signed-off-by: Michel Dänzer <daenzer@vmware.com>
---
 drivers/char/agp/uninorth-agp.c |   64 +++++++--------------------------------
 1 files changed, 11 insertions(+), 53 deletions(-)

diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c
index 4e05021..d89da4a 100644
--- a/drivers/char/agp/uninorth-agp.c
+++ b/drivers/char/agp/uninorth-agp.c
@@ -144,53 +144,7 @@ static int uninorth_configure(void)
 	return 0;
 }
 
-static int uninorth_insert_memory(struct agp_memory *mem, off_t pg_start,
-				int type)
-{
-	int i, j, num_entries;
-	void *temp;
-	int mask_type;
-
-	if (type != mem->type)
-		return -EINVAL;
-
-	mask_type = agp_bridge->driver->agp_type_to_mask_type(agp_bridge, type);
-	if (mask_type != 0) {
-		/* We know nothing of memory types */
-		return -EINVAL;
-	}
-
-	if (mem->page_count == 0)
-		return 0;
-
-	temp = agp_bridge->current_size;
-	num_entries = A_SIZE_32(temp)->num_entries;
-
-	if ((pg_start + mem->page_count) > num_entries)
-		return -EINVAL;
-
-	j = pg_start;
-
-	while (j < (pg_start + mem->page_count)) {
-		if (agp_bridge->gatt_table[j])
-			return -EBUSY;
-		j++;
-	}
-
-	for (i = 0, j = pg_start; i < mem->page_count; i++, j++) {
-		agp_bridge->gatt_table[j] =
-			cpu_to_le32((page_to_phys(mem->pages[i]) & 0xFFFFF000UL) | 0x1UL);
-		flush_dcache_range((unsigned long)__va(page_to_phys(mem->pages[i])),
-				   (unsigned long)__va(page_to_phys(mem->pages[i]))+0x1000);
-	}
-	(void)in_le32((volatile u32*)&agp_bridge->gatt_table[pg_start]);
-	mb();
-
-	uninorth_tlbflush(mem);
-	return 0;
-}
-
-static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
+static int uninorth_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
 {
 	int i, num_entries;
 	void *temp;
@@ -219,14 +173,18 @@ static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
 	for (i = 0; i < mem->page_count; ++i) {
 		if (gp[i]) {
 			dev_info(&agp_bridge->dev->dev,
-				 "u3_insert_memory: entry 0x%x occupied (%x)\n",
+				 "uninorth_insert_memory: entry 0x%x occupied (%x)\n",
 				 i, gp[i]);
 			return -EBUSY;
 		}
 	}
 
 	for (i = 0; i < mem->page_count; i++) {
-		gp[i] = (page_to_phys(mem->pages[i]) >> PAGE_SHIFT) | 0x80000000UL;
+		if (is_u3)
+			gp[i] = (page_to_phys(mem->pages[i]) >> PAGE_SHIFT) | 0x80000000UL;
+		else
+			gp[i] =	cpu_to_le32((page_to_phys(mem->pages[i]) & 0xFFFFF000UL) |
+					    0x1UL);
 		flush_dcache_range((unsigned long)__va(page_to_phys(mem->pages[i])),
 				   (unsigned long)__va(page_to_phys(mem->pages[i]))+0x1000);
 	}
@@ -236,7 +194,7 @@ static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
 	return 0;
 }
 
-int u3_remove_memory(struct agp_memory *mem, off_t pg_start, int type)
+int uninorth_remove_memory(struct agp_memory *mem, off_t pg_start, int type)
 {
 	size_t i;
 	u32 *gp;
@@ -551,7 +509,7 @@ const struct agp_bridge_driver uninorth_agp_driver = {
 	.create_gatt_table	= uninorth_create_gatt_table,
 	.free_gatt_table	= uninorth_free_gatt_table,
 	.insert_memory		= uninorth_insert_memory,
-	.remove_memory		= agp_generic_remove_memory,
+	.remove_memory		= uninorth_remove_memory,
 	.alloc_by_type		= agp_generic_alloc_by_type,
 	.free_by_type		= agp_generic_free_by_type,
 	.agp_alloc_page		= agp_generic_alloc_page,
@@ -577,8 +535,8 @@ const struct agp_bridge_driver u3_agp_driver = {
 	.agp_enable		= uninorth_agp_enable,
 	.create_gatt_table	= uninorth_create_gatt_table,
 	.free_gatt_table	= uninorth_free_gatt_table,
-	.insert_memory		= u3_insert_memory,
-	.remove_memory		= u3_remove_memory,
+	.insert_memory		= uninorth_insert_memory,
+	.remove_memory		= uninorth_remove_memory,
 	.alloc_by_type		= agp_generic_alloc_by_type,
 	.free_by_type		= agp_generic_free_by_type,
 	.agp_alloc_page		= agp_generic_alloc_page,
-- 
1.6.5.3

^ permalink raw reply related

* [PATCH 1/2] agp/uninorth: Also handle user memory types in u3_remove_memory().
From: Michel Dänzer @ 2009-12-06 12:15 UTC (permalink / raw)
  To: David Airlie; +Cc: linuxppc-dev
In-Reply-To: <1260101756-22645-1-git-send-email-michel@daenzer.net>

From: Michel Dänzer <daenzer@vmware.com>

Also short-circuit empty updates.

Signed-off-by: Michel Dänzer <daenzer@vmware.com>
---
 drivers/char/agp/uninorth-agp.c |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c
index 703959e..4e05021 100644
--- a/drivers/char/agp/uninorth-agp.c
+++ b/drivers/char/agp/uninorth-agp.c
@@ -151,9 +151,6 @@ static int uninorth_insert_memory(struct agp_memory *mem, off_t pg_start,
 	void *temp;
 	int mask_type;
 
-	temp = agp_bridge->current_size;
-	num_entries = A_SIZE_32(temp)->num_entries;
-
 	if (type != mem->type)
 		return -EINVAL;
 
@@ -163,6 +160,12 @@ static int uninorth_insert_memory(struct agp_memory *mem, off_t pg_start,
 		return -EINVAL;
 	}
 
+	if (mem->page_count == 0)
+		return 0;
+
+	temp = agp_bridge->current_size;
+	num_entries = A_SIZE_32(temp)->num_entries;
+
 	if ((pg_start + mem->page_count) > num_entries)
 		return -EINVAL;
 
@@ -194,9 +197,6 @@ static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
 	u32 *gp;
 	int mask_type;
 
-	temp = agp_bridge->current_size;
-	num_entries = A_SIZE_32(temp)->num_entries;
-
 	if (type != mem->type)
 		return -EINVAL;
 
@@ -206,6 +206,12 @@ static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
 		return -EINVAL;
 	}
 
+	if (mem->page_count == 0)
+		return 0;
+
+	temp = agp_bridge->current_size;
+	num_entries = A_SIZE_32(temp)->num_entries;
+
 	if ((pg_start + mem->page_count) > num_entries)
 		return -EINVAL;
 
@@ -234,10 +240,19 @@ int u3_remove_memory(struct agp_memory *mem, off_t pg_start, int type)
 {
 	size_t i;
 	u32 *gp;
+	int mask_type;
+
+	if (type != mem->type)
+		return -EINVAL;
 
-	if (type != 0 || mem->type != 0)
+	mask_type = agp_bridge->driver->agp_type_to_mask_type(agp_bridge, type);
+	if (mask_type != 0) {
 		/* We know nothing of memory types */
 		return -EINVAL;
+	}
+
+	if (mem->page_count == 0)
+		return 0;
 
 	gp = (u32 *) &agp_bridge->gatt_table[pg_start];
 	for (i = 0; i < mem->page_count; ++i)
-- 
1.6.5.3

^ permalink raw reply related

* [RESEND][PATCH 0/2] Uninorth AGP fix / cleanup
From: Michel Dänzer @ 2009-12-06 12:15 UTC (permalink / raw)
  To: David Airlie; +Cc: linuxppc-dev

Looks like these got lost somewhere last time, so trying again...

These patches should allow KMS environments to work with U3 AGP bridges as
well.

[PATCH 1/2] agp/uninorth: Also handle user memory types in u3_remove_memory().
[PATCH 2/2] agp/uninorth: Unify U3 and pre-U3 insert_memory and remove_memory hooks.

^ permalink raw reply

* [RFC] doc/powerpc: try to explain why the interrupt numbers are off by 16
From: Sebastian Andrzej Siewior @ 2009-12-06 11:32 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev, Sebastian Andrzej Siewior, Alemao, linux-kernel
In-Reply-To: <4AA97D50.40209@freescale.com>

Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
---
 Documentation/powerpc/dts-bindings/fsl/mpic.txt |   42 +++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/powerpc/dts-bindings/fsl/mpic.txt

diff --git a/Documentation/powerpc/dts-bindings/fsl/mpic.txt b/Documentation/powerpc/dts-bindings/fsl/mpic.txt
new file mode 100644
index 0000000..71e39cf
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/fsl/mpic.txt
@@ -0,0 +1,42 @@
+* OpenPIC and its interrupt numbers on Freescale's e500/e600 cores
+
+The OpenPIC specification does not specify which interrupt source has to
+become which interrupt number. This is up to the software implementation
+of the interrupt controller. The only requirement is that every
+interrupt source has to have an unique interrupt number / vector number.
+To accomplish this the current implementation assigns the number zero to
+the first source, the number one to the second source and so on until
+all interrupt sources have their unique number.
+Usually the assigned vector number equals the interrupt number mentioned
+in the documentation for a given core / CPU. This is however not true
+for the e500 cores (MPC85XX CPUs) where the documentation distinguishes
+between internal and external interrupt sources and starts counting at
+zero for both of them.
+
+So what to write for external interrupt source X or internal interrupt
+source Y into the device tree? Here is an example:
+
+The memory map for the interrupt controller in the MPC8544[0] shows,
+that the first interrupt source starts at 0x5_0000 (PIC Register Address
+Map-Interrupt Source Configuration Registers). This source becomes the
+number zero therefore:
+ External interrupt 0 = interrupt number 0
+ External interrupt 1 = interrupt number 1
+ External interrupt 2 = interrupt number 2
+ ...
+Every interrupt number allocates 0x20 bytes register space. So to get
+its number it is sufficient to shift the lower 16bits to right by five.
+So for the external interrupt 10 we have:
+  0x0140 >> 5 = 10
+
+After the external sources, the internal sources follow. The in core I2C
+controller on the MPC8544 for instance has the internal source number
+27. Oo obtain its interrupt number we take the lower 16bits of its memory
+address (0x5_0560) and shift it right:
+ 0x0560 >> 5 = 43
+
+Therefore the I2C device node for the MPC8544 CPU has to have the
+interrupt number 43 specified in the device tree.
+
+[0] MPC8544E PowerQUICCTM III, Integrated Host Processor Family Reference Manual
+    MPC8544ERM Rev. 1 10/2007
-- 
1.6.5.3

^ permalink raw reply related

* Re: TQM5200 + SM501 FB
From: Wolfgang Denk @ 2009-12-06  9:17 UTC (permalink / raw)
  To: Rolf Offermanns; +Cc: linuxppc-dev
In-Reply-To: <F5B2E7AE-A0C5-4D9B-AF8F-3158B94D6236@sysgo.com>

Dear Rolf Offermanns,

In message <F5B2E7AE-A0C5-4D9B-AF8F-3158B94D6236@sysgo.com> you wrote:
> 
> Thanks Wolfgang, I will try it on monday. What needs to be done to get
> this into mainline?
> 
> Modify the sm501 stuff for fdt and extend the tqm5200.dts file with the
> sm501 resources?

Right, especially the OF bindings in the SM501 driver and the device
tree entries are still missing.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
He'd been wrong, there _was_ a light at the end of the tunnel, and it
was a flamethrower.                         - Terry Pratchett, _Mort_

^ permalink raw reply

* Re: TQM5200 + SM501 FB
From: Rolf Offermanns @ 2009-12-06  8:30 UTC (permalink / raw)
  To: Wolfgang Denk; +Cc: linuxppc-dev
In-Reply-To: <20091204220426.ADD063F6E3@gemini.denx.de>

Am 04.12.2009 um 23:04 schrieb Wolfgang Denk:

> Please find attached below a patch which fixes some issues (but we
> don't consider it clean enough for inclusion into mainline yet), and a
> known to be working config file. [Kudos to Anatolij for providing
> this.]
>=20

Thanks Wolfgang, I will try it on monday. What needs to be done to get =
this into mainline?

Modify the sm501 stuff for fdt and extend the tqm5200.dts file with the =
sm501 resources?

-Rolf=

^ permalink raw reply

* ZILOG serial port broken in 2.6.32
From: Rob Landley @ 2009-12-06  7:01 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: paulus

Trying again with a few likely-looking cc's from the MAINTAINERS file:

Summary: 

The PMACZILOG serial driver last worked in 2.6.28.  It was broken by commit 
f751928e0ddf54ea4fe5546f35e99efc5b5d9938 by Alan Cox making bits of the tty 
layer dynamically allocated.  The PMACZILOG driver wasn't properly converted, 
it works with interrupts disabled (for boot messages), but as soon as 
interrupts are enabled (PID 1 spawns) the next write to the serial console 
panics the kernel.

Up through 2.6.31 I could fix it by reverting that patch (which isn't a proper 
fix but it made it work).  In 2.6.32 the patch no longer cleanly reverts.

I reported the issue here (with a cut and paste of the panic trace):

  http://lists.ozlabs.org/pipermail/linuxppc-dev/2009-October/076727.html

And reported the results of bisecting the issue here:

  http://lists.ozlabs.org/pipermail/linuxppc-dev/2009-October/077059.html

I noted that 2.6.32-pre had broken my workaround here:

  http://lists.ozlabs.org/pipermail/linuxppc-dev/2009-December/078498.html

Background:

I have a project that builds the same native Linux development environment for 
multiple hardware targets.  It aims to support all the targets QEMU system 
emulation can boot Linux under, although I'm still a few short.  It creates a 
cross compiler and uses it to build a root filesystem from uClibc and busybox, 
adds a native toolchain, and packages it up into a system image (squashfs, 
ext2, or initramfs depending on the config you selected).

Anyone can then boot the resulting system image under qemu and use it to wet 
source and compile stuff natively.   (If the cross compiler is in the $PATH on 
the host, it will even configure distcc to call out to that cross compiler to 
speed up the builds to merely "painfully slow", with some pretense of SMP 
scalability).

Prebuilt binaries of all the targets I had working last release are at 
http://impactlinux.com/fwl/downloads/binaries (with obligatory screenshots at 
http://impactlinux.com/fwl/screenshots/ even).  They use the 2.6.31 kernel.

It supports powerpc.  If you look at system-image-powerpc.tar.bz2 you'll see 
that the run-emulator.sh script has been using qemu's "g3beige" target board 
emulation, which provides all the hardware I need for a development 
environment (hard drive, network card, at least 256 megs of memory, working 
clock chip, and of course a serial console).  Userspace doesn't care what I 
use, it's the same processor instruction set and same C library either way, 
the board emulation's just something to boot it on, only the kernel .config 
really cares as long as the appropriate resources are there.

Unfortunately, g3beige seems to have bit-rotted, and thus the serial console 
is now panicing.  This is a regression, and thus blocking a release of my 
project using the 2.6.32 kernel.  Is this of interest to anyone other than me?

Rob
-- 
Latency is more important than throughput. It's that simple. - Linus Torvalds

^ 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