* Re: [RFC/PATCH] powerpc: Rewrite IO allocation & mapping on powerpc64
From: Segher Boessenkool @ 2007-05-14 13:50 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: linuxppc-dev, Paul Mackerras, Anton Blanchard
In-Reply-To: <20070514075415.7999BDDEC8@ozlabs.org>
> - Cleanup and separate tracking of the ISA space in the reserved
> low 64K of IO space. No ISA -> Nothing mapped there.
> I now always reserve the first 64K of IO space for the bridge with
> the ISA bus on it.
This is wrong -- there are systems with ISA that
also have PCI devices that require 16-bit legacy
I/O windows (e.g., systems with the AMD8111 chip,
like Maple).
Or do you mean you reserve the low 64k for the PHB?
That would work in this case, but still not in
general. Not sure if we care though.
Segher
^ permalink raw reply
* Re: [PATCH 1/2] kbuild: Add "Section mismatch" warning whitelist for powerpc
From: Kumar Gala @ 2007-05-14 13:56 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: Andrew Morton, linuxppc-dev, Li Yang, Linus, Linux Kernel
In-Reply-To: <20070514110636.GB10143@uranus.ravnborg.org>
On May 14, 2007, at 6:06 AM, Sam Ravnborg wrote:
> On Mon, May 14, 2007 at 06:53:32PM +0800, Li Yang wrote:
>> This patch fixes the following "Section mismatch" warnings when
>> build powerpc platforms.
>>
>> -------------
>> WARNING: arch/powerpc/mm/built-in.o - Section mismatch: reference to
>> .init.text:early_get_page from .text between
>> 'pte_alloc_one_kernel' (at
>> offset 0xc68) and 'pte_alloc_one'
>> WARNING: mm/built-in.o - Section mismatch: reference to
>> .init.text:set_up_list3s from .text between
>> 'kmem_cache_create' (at offset
>> 0x20300) and 'cache_reap'
>> -------------
This warnings should be handled by __init_refok instead.
- k
>> Massive warnings represented by:
>> -------------
>> WARNING: arch/powerpc/kernel/built-in.o - Section mismatch:
>> reference to
>> .init.data:.got2 from prom_entry (offset 0x0)
>> WARNING: arch/powerpc/platforms/built-in.o - Section mismatch:
>> reference to
>> .init.text:mpc8313_rdb_probe from .machine.desc after
>> 'mach_mpc8313_rdb'
>> (at offset 0x4)
>> -------------
>>
>> Signed-off-by: Li Yang <leoli@freescale.com>
> Acked-by: Sam Ravnborg <sam@ravnborg.org>
>> ---
>> scripts/mod/modpost.c | 16 ++++++++++++----
>> 1 files changed, 12 insertions(+), 4 deletions(-)
>>
>> diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
>> index c89cb71..aa3a881 100644
>> --- a/scripts/mod/modpost.c
>> +++ b/scripts/mod/modpost.c
>> @@ -649,9 +649,10 @@ static int strrcmp(const char *s, const char
>> *sub)
>> * tosec = .init.text
>> *
>> * Pattern 10:
>> - * ia64 has machvec table for each platform. It is mixture of
>> function
>> - * pointer of .init.text and .text.
>> - * fromsec = .machvec
>> + * ia64 has machvec table and powerpc has machine desc table for
>> each
>> + * platform. It is mixture of function pointer of .init.text
>> and .text.
>> + * fromsec = .machvec | .machine.desc
>> + *
>> **/
>> static int secref_whitelist(const char *modname, const char *tosec,
>> const char *fromsec, const char *atsym,
>> @@ -681,6 +682,8 @@ static int secref_whitelist(const char
>> *modname, const
>> char *tosec,
>> const char *pat4sym[] = {
>> "sparse_index_alloc",
>> "zone_wait_table_init",
>> + "pte_alloc_one_kernel",
>> + "kmem_cache_create",
>> NULL
>> };
>>
>> @@ -750,7 +753,8 @@ static int secref_whitelist(const char
>> *modname, const
>> char *tosec,
>> return 1;
>>
>> /* Check for pattern 10 */
>> - if (strcmp(fromsec, ".machvec") == 0)
>> + if ((strcmp(fromsec, ".machvec") == 0) ||
>> + (strcmp(fromsec, ".machine.desc") == 0))
>> return 1;
>>
>> return 0;
>> @@ -883,6 +887,10 @@ static void warn_sec_mismatch(const char
>> *modname,
>> const char *fromsec,
>> secref_whitelist(modname, secname, fromsec,
>> elf->strtab + before->st_name, refsymname))
>> return;
>> + /* fromsec whitelist - without a valid 'before' */
>> + /* powerpc has a GOT table in .got2 section */
>> + if (strcmp(fromsec, ".got2") == 0)
>> + return;
>>
>> if (before && after) {
>> warn("%s - Section mismatch: reference to %s:%s from %s "
>>
> -
> 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/
^ permalink raw reply
* Re: [PATCH] [POWERPC] Wire up some more syscalls
From: Kumar Gala @ 2007-05-14 13:58 UTC (permalink / raw)
To: David Woodhouse
Cc: Stephen Rothwell, Andrew Morton, paulus, Arnd Bergmann, ppc-dev
In-Reply-To: <1179116138.18580.2.camel@shinybook.infradead.org>
On May 13, 2007, at 11:15 PM, David Woodhouse wrote:
> On Sun, 2007-05-13 at 22:55 -0500, Kumar Gala wrote:
>> Just out of interest, what makes a syscall COMPAT_SYS_SPU vs
>> SYSCALL_SPU?
>
> It's the same as the difference between COMPAT_SYS and SYSCALL.
>
> The _SPU suffix just means that the SPU can use the (native) syscall.
>
> The COMPAT_ prefix means that there's a compat function to call
> instead
> of calling the native one directly for 32-bit code.
The COMPAT I get, but what does it mean to be able to use a syscall
on SPU natively? When wouldn't you be able to do this?
- k
^ permalink raw reply
* Re: [PATCH 2/2] powerpc: Fix Section mismatch warnings
From: Kumar Gala @ 2007-05-14 14:02 UTC (permalink / raw)
To: Li Yang; +Cc: linuxppc-dev, Paul, Linux Kernel
In-Reply-To: <46484110.5020607@freescale.com>
On May 14, 2007, at 5:59 AM, Li Yang wrote:
> This patch fix the following Section mismatch warnings
> in powerpc code.
>
> WARNING: arch/powerpc/platforms/built-in.o - Section mismatch:
> reference to .init.data:mv643xx_eth_pd_devs from .text between
> 'mv643xx_eth_add_pds' (at offset 0x9ed2) and 'gg2_read_config'
> WARNING: arch/powerpc/platforms/built-in.o - Section mismatch:
> reference to .init.data:mv643xx_eth_pd_devs from .text between
> 'mv643xx_eth_add_pds' (at offset 0x9ed6) and 'gg2_read_config'
> WARNING: arch/powerpc/platforms/built-in.o - Section mismatch:
> reference to .init.text:note_scsi_host from __ksymtab between
> '__ksymtab_note_scsi_host' (at offset 0x8) and '__ksymtab_sys_ctrler'
>
> Signed-off-by: Li Yang <leoli@freescale.com>
> ---
> arch/powerpc/platforms/chrp/pegasos_eth.c | 2 +-
> arch/powerpc/platforms/powermac/setup.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/platforms/chrp/pegasos_eth.c b/arch/
> powerpc/platforms/chrp/pegasos_eth.c
> index 7104567..5c9f135 100644
> --- a/arch/powerpc/platforms/chrp/pegasos_eth.c
> +++ b/arch/powerpc/platforms/chrp/pegasos_eth.c
> @@ -169,7 +169,7 @@ static int Enable_SRAM(void)
> /***********/
> /***********/
> -int mv643xx_eth_add_pds(void)
> +int __init mv643xx_eth_add_pds(void)
it should probably be static as well.
> {
> int ret = 0;
> static struct pci_device_id pci_marvell_mv64360[] = {
> diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/
> platforms/powermac/setup.c
> index a410bc7..07b1c4e 100644
> --- a/arch/powerpc/platforms/powermac/setup.c
> +++ b/arch/powerpc/platforms/powermac/setup.c
> @@ -384,7 +384,7 @@ int boot_part;
> static dev_t boot_dev;
> #ifdef CONFIG_SCSI
> -void __init note_scsi_host(struct device_node *node, void *host)
> +void note_scsi_host(struct device_node *node, void *host)
> {
> int l;
> char *p;
>
>
> -
> 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/
^ permalink raw reply
* Re: [PATCH] [POWERPC] Wire up some more syscalls
From: David Woodhouse @ 2007-05-14 14:06 UTC (permalink / raw)
To: Kumar Gala
Cc: Stephen Rothwell, Andrew Morton, paulus, Arnd Bergmann, ppc-dev
In-Reply-To: <B31879C1-6E28-45F5-8253-466785183E41@kernel.crashing.org>
On Mon, 2007-05-14 at 08:58 -0500, Kumar Gala wrote:
> The COMPAT I get, but what does it mean to be able to use a syscall
> on SPU natively? When wouldn't you be able to do this?
There is no native vs. compat on the SPU. The COMPAT_ bit refers only to
32-bit or 64-bit processes on the PPU.
However, there are some system calls which the SPU may execute, and
other system calls which it may not (usually those involving signals).
Looking back at it, I'm not entirely sure the above description is
actually going to help your confusion... I recommend just looking at the
places that systbl.h is included, and what the macros expand to in each
case.
--
dwmw2
^ permalink raw reply
* USB support for Bamboo/440EP (Yosemite/440EPx)
From: Stephen Winiecki @ 2007-05-14 14:07 UTC (permalink / raw)
To: linuxppc-embedded
Is there an intention to add the configuration for the USB host controller
for Bamboo/Yosemite to the mainline kernel? drivers/usb/host contains
ohci-ppc-soc.c/h, but the Kconfig isn't updated to include it for
440EP/EPx?
I noticed it is configured in the Denx 4.1 2.6.19.2 kernel. When I
updated the 2.6.21 drivers/usb/host/Kconfig to include the controller
support for 440EP for some reason I couldn't get the kernel to recognize
the controller or devices when it boots - not sure if there is something
else I am missing here? One thing I noticed was that in the 2.6.19.2
kernel CONFIG_USB_OHCI_BIG_ENDIAN gets defined - in 2.6.21 there is both
CONFIG_USB_OHCI_BIG_ENDIAN_DESC and CONFIG_USB_OHCI_BIG_ENDIAN_MMIO -
assume I want both defined?
Wondering also if anyone has much experience using the USB interface on
Bamboo - and if any reliability issues have been observed? I have a
Bamboo system where we've added graphics card init capability to PIBS and
are using the DENX 2.6.19.2 kernel and booting X (Xorg 7.1.1 - Debian 4.0
system on hard disk) with a USB keyboard and mouse - and sometimes the
mouse/keyboard are not detected properly by either the kernel on boot, or
by X during its initialization (sometimes even after the kernel seems to
detect everything fine). I did play a bit with a memory stick on the
interface and that seemed reliable for the little I did with it.
I am using an Apple keyboard plugged into the USB port on the board, with
an IBM Scrollpoint USB mouse plugged into one of the ports on the
keyboard.
An excerpt of the kernel boot when it finds everything OK:
...
IBM mouse - input driver mouse interface
hde: cache flushes supported
hde: hde1 hde2 hde3
ppc-soc-ohci ppc-soc-ohci.0: USB Host Controller
ppc-soc-ohci ppc-soc-ohci.0: new USB bus registered, assigned bus number 1
ppc-soc-ohci ppc-soc-ohci.0: irq 40, io mem 0xef601000
usb usb1: Product: USB Host Controller
usb usb1: Manufacturer: Linux 2.6.19.2 ohci_hcd
usb usb1: SerialNumber: PPC-SOC USB
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver
usbcore: registered new interface driver pegasus
i8042.c: No controller found.
mice: PS/2 mouse device common for all mice
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
usb 1-1: new full speed USB device using ppc-soc-ohci and address 2
usb 1-1: Product: Hub in Apple Extended USB Keyboard
usb 1-1: Manufacturer: Mitsumi Electric
usb 1-1: configuration #1 chosen from 1 choice
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 3 ports detected
eth0: link is up, 100 FDX, pause enabled
eth1: link is down
usb 1-1.1: new low speed USB device using ppc-soc-ohci and address 3
usb 1-1.1: configuration #1 chosen from 1 choice
input: HID 04b3:3100 as /class/input/input0
input: USB HID v1.00 Mouse [HID 04b3:3100] on usb-PPC-SOC USB-1.1
usb 1-1.3: new full speed USB device using ppc-soc-ohci and address 4
usb 1-1.3: Product: Apple Extended USB Keyboard
usb 1-1.3: Manufacturer: Mitsumi Electric
usb 1-1.3: configuration #1 chosen from 1 choice
input: Mitsumi Electric Apple Extended USB Keyboard as /class/input/input1
input: USB HID v1.10 Keyboard [Mitsumi Electric Apple Extended USB
Keyboard] on
usb-PPC-SOC USB-1.3
input: Mitsumi Electric Apple Extended USB Keyboard as /class/input/input2
input: USB HID v1.10 Device [Mitsumi Electric Apple Extended USB Keyboard]
on us
b-PPC-SOC USB-1.3
Sending DHCP requests .,. OK
...
Sometimes though it does not find the mouse:
...
hde: 78140160 sectors (40007 MB) w/8192KiB Cache, CHS=65535/16/63
hde: cache flushes supported
hde: hde1 hde2 hde3
ppc-soc-ohci ppc-soc-ohci.0: USB Host Controller
ppc-soc-ohci ppc-soc-ohci.0: new USB bus registered, assigned bus number 1
ppc-soc-ohci ppc-soc-ohci.0: irq 40, io mem 0xef601000
usb usb1: Product: USB Host Controller
usb usb1: Manufacturer: Linux 2.6.19.2 ohci_hcd
usb usb1: SerialNumber: PPC-SOC USB
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver
usb 1-1: new full speed USB device using ppc-soc-ohci and address 2
usb 1-1: Product: Hub in Apple Extended USB Keyboard
usb 1-1: Manufacturer: Mitsumi Electric
usb 1-1: configuration #1 chosen from 1 choice
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 3 ports detected
usb 1-1.1: new low speed USB device using ppc-soc-ohci and address 3
usb 1-1.3: new full speed USB device using ppc-soc-ohci and address 4
usb 1-1.3: Product: Apple Extended USB Keyboard
usb 1-1.3: Manufacturer: Mitsumi Electric
usb 1-1.3: configuration #1 chosen from 1 choice
input: Mitsumi Electric Apple Extended USB Keyboard as /class/input/input0
input: USB HID v1.10 Keyboard [Mitsumi Electric Apple Extended USB
Keyboard] on
usb-PPC-SOC USB-1.3
input: Mitsumi Electric Apple Extended USB Keyboard as /class/input/input1
input: USB HID v1.10 Device [Mitsumi Electric Apple Extended USB Keyboard]
on us
b-PPC-SOC USB-1.3
usbcore: registered new interface driver pegasus
i8042.c: No controller found.
mice: PS/2 mouse device common for all mice
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
eth0: link is up, 100 FDX, pause enabled
eth1: link is down
Sending DHCP requests .,. OK
...
And on rarer occasions it does not seem to fully discover the keyboard:
...
hde: 78140160 sectors (40007 MB) w/8192KiB Cache, CHS=65535/16/63
hde: cache flushes supported
hde: hde1 hde2 hde3
ppc-soc-ohci ppc-soc-ohci.0: USB Host Controller
ppc-soc-ohci ppc-soc-ohci.0: new USB bus registered, assigned bus number 1
ppc-soc-ohci ppc-soc-ohci.0: irq 40, io mem 0xef601000
usb usb1: Product: USB Host Controller
usb usb1: Manufacturer: Linux 2.6.19.2 ohci_hcd
usb usb1: SerialNumber: PPC-SOC USB
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver
usbcore: registered new interface driver pegasus
i8042.c: No controller found.
mice: PS/2 mouse device common for all mice
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
usb 1-1: new full speed USB device using ppc-soc-ohci and address 2
usb 1-1: Product: Hub in Apple Extended USB Keyboard
usb 1-1: Manufacturer: Mitsumi Electric
usb 1-1: configuration #1 chosen from 1 choice
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 3 ports detected
eth0: link is up, 100 FDX, pause enabled
eth1: link is down
usb 1-1.1: new low speed USB device using ppc-soc-ohci and address 3
usb 1-1.3: new full speed USB device using ppc-soc-ohci and address 4
Sending DHCP requests .,. OK
...
One typical fail scenario is that the keyboard/mouse seem to be detected
fine by the kernel, but X doesn't start because it can't locate the mouse
device (messages in /var/log/Xorg.0.log).
I did find the following power down sequence which does seem to result in
reliable detection/operation whenever stopping/starting the system:
- Shutdown from X Desktop
- When Linux console 'power down' message appears, (with power still on)
unplug then plug the keyboard from/into the USB port
- Power down the board
- Turn the power supply off/on
Thanks,
Steve
^ permalink raw reply
* Panic doesn't reboot
From: Joakim Tjernlund @ 2007-05-14 14:20 UTC (permalink / raw)
To: linuxppc-dev
Stumbled across this testing linus tree from last week:
Looking up port of RPC 100003/2 on 192.168.1.15
rpcbind: server 192.168.1.15 not responding, timed out
Root-NFS: Unable to get nfsd port number from server, using default
Looking up port of RPC 100005/1 on 192.168.1.15
rpcbind: server 192.168.1.15 not responding, timed out
Root-NFS: Unable to get mountd port number from server, using default
mount: server 192.168.1.15 not responding, timed out
Root-NFS: Server returned error -5 while mounting /opt/rootfs/freescale
VFS: Unable to mount root fs via NFS, trying floppy.
List of all partitions:
1f00 64 mtdblock0 (driver?)
1f01 32 mtdblock1 (driver?)
1f02 32 mtdblock2 (driver?)
1f03 256 mtdblock3 (driver?)
1f04 256 mtdblock4 (driver?)
1f05 1920 mtdblock5 (driver?)
1f06 128384 mtdblock6 (driver?)
No filesystem could mount root, tried:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
Rebooting in 180 seconds..
And there it hangs forever. The board is a custom board based on
MPC832x_MDS. Does anybody else see this?
Jocke
^ permalink raw reply
* Re: [RFC/PATCH] powerpc: Rewrite IO allocation & mapping on powerpc64
From: Arnd Bergmann @ 2007-05-14 14:37 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Paul Mackerras, Anton Blanchard
In-Reply-To: <20070514075415.7999BDDEC8@ozlabs.org>
On Monday 14 May 2007, Benjamin Herrenschmidt wrote:
> + * Define the address ranges for MMIO and IO space :
> + *
> + * ISA_IO_BASE = VMALLOC_END, 64K reserved area
> + * PHB_IO_BASE = ISA_IO_BASE + 64K to ISA_IO_BASE + 2G, PHB IO spaces
> + * IOREMAP_BASE = ISA_IO_BASE + 2G to VMALLOC_START + PGTABLE_RANGE
> + */
> +#define ISA_IO_BASE (VMALLOC_END)
> +#define ISA_IO_END (VMALLOC_END + 0x10000ul)
> +#define PHB_IO_BASE (ISA_IO_END)
> +#define PHB_IO_END (VMALLOC_END + 0x80000000ul)
> +#define IOREMAP_BASE (PHB_IO_END)
> +#define IOREMAP_END (VMALLOC_START + PGTABLE_RANGE)
Very nice layout, it suddenly all makes sense ;-)
PHB_IO_END should probably be
#define PHB_IO_END (VMALLOC_END + PIO_RESERVED)
At least, that is how I understand the definition of PIO_RESERVED.
Do you think it's ok to not treat the range between 64k and 1M special?
There might be ISA drivers that expect devices in there. Maybe we should
start PHB_IO_BASE after a 1M guard area where nothing is mapped.
Where should Olof's PCMCIA space go? The ISA or the PHB range?
> Index: linux-cell/arch/powerpc/kernel/Makefile
> ===================================================================
> --- linux-cell.orig/arch/powerpc/kernel/Makefile 2007-05-10 13:21:02.000000000 +1000
> +++ linux-cell/arch/powerpc/kernel/Makefile 2007-05-14 16:43:03.000000000 +1000
> @@ -65,7 +65,7 @@ obj-$(CONFIG_PPC_UDBG_16550) += legacy_s
> module-$(CONFIG_PPC64) += module_64.o
> obj-$(CONFIG_MODULES) += $(module-y)
>
> -pci64-$(CONFIG_PPC64) += pci_64.o pci_dn.o
> +pci64-$(CONFIG_PPC64) += pci_64.o pci_dn.o isa-bridge.o
> pci32-$(CONFIG_PPC32) := pci_32.o
> obj-$(CONFIG_PCI) += $(pci64-y) $(pci32-y)
> obj-$(CONFIG_PCI_MSI) += msi.o
Can we make this depend on CONFIG_ISA? Most platforms don't actually want
to build in ISA support.
> @@ -11,7 +11,7 @@
> * 2 of the License, or (at your option) any later version.
> */
>
> -#undef DEBUG
> +#define DEBUG
>
> #include <linux/kernel.h>
> #include <linux/pci.h>
needs to get reverted of course
> /* pci_io_base -- the base address from which io bars are offsets.
> * This is the lowest I/O base address (so bar values are always positive),
> * and it *must* be the start of ISA space if an ISA bus exists because
> - * ISA drivers use hard coded offsets. If no ISA bus exists a dummy
> - * page is mapped and isa_io_limit prevents access to it.
> + * ISA drivers use hard coded offsets.
> */
> -unsigned long isa_io_base; /* NULL if no ISA bus */
> -EXPORT_SYMBOL(isa_io_base);
> -unsigned long pci_io_base;
> +unsigned long pci_io_base = ISA_IO_BASE;
> EXPORT_SYMBOL(pci_io_base);
>
> void iSeries_pcibios_init(void);
Why do we even need to make pci_io_base a variable? There are not many
places where it's used, and they are are read-only. Replacing it with the
constant of ISA_IO_BASE should reduce the code size in every driver
that uses port access functions.
Arnd <><
^ permalink raw reply
* Re: [patch 4/4] powerpc 2.6.21-rt1: reduce scheduling latency by changing tlb flush size
From: Arnd Bergmann @ 2007-05-14 14:40 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Thomas Gleixner, mingo, linux-kernel
In-Reply-To: <yyitzuf9857.wl@toshiba.co.jp>
On Monday 14 May 2007, Tsutomu OWA wrote:
> --- linux-2.6.21-rt1/include/asm-powerpc/tlbflush.h=A0=A0=A0=A0=A02007-04=
=2D26 12:08:32.000000000 +0900
> +++ rt/include/asm-powerpc/tlbflush.h=A0=A0=A02007-05-14 16:12:47.0000000=
00 +0900
> @@ -25,7 +25,12 @@ struct mm_struct;
> =A0#include <linux/percpu.h>
> =A0#include <asm/page.h>
> =A0
> +#if defined(CONFIG_PPC_CELLEB) && defined(CONFIG_PREEMPT_RT)
> +/* Since tlb flush takes long time on Celleb, reduce it to 1 when Celleb=
&& RT */
> +#define PPC64_TLB_BATCH_NR 1
> +#else
> =A0#define PPC64_TLB_BATCH_NR 192
> +#endif /* defined(CONFIG_PPC_CELLEB) && defined(CONFIG_PREEMPT_RT) */
With this code, you get silent side-effects of enabling PPC_CELLEB
along with another platform.
Maybe instead you should change the hpte_need_flush() to always flush
when running on the celleb platform and PREEMPT_RT is enabled.
Arnd <><
^ permalink raw reply
* Re: [PATCH v2 6/7] Holly DTS
From: Segher Boessenkool @ 2007-05-14 12:33 UTC (permalink / raw)
To: David Gibson; +Cc: Olof Johansson, linuxppc-dev, Loeliger Jon-LOELIGER
In-Reply-To: <20070514002457.GD6517@localhost.localdomain>
>>> easiest is to
>>> replace it with a configurable poison value. When using asm output,
>>> or with a map file, it might be possible to generate out-of-band
>>> information which we can use to check that the right things are
>>> filled
>>> in.
>>>
>>> It's not a simply a matter of making the kernel parser recognize the
>>> uninitialized info, because there's no way to encode that in the dtb
>>> itself.
>>
>> There can be, with a new DTB version -- perhaps simply
>> define proplen == -1 to mean "undefined" or similar.
>
> That doesn't quite do it, because I'd prefer ? to cover cases where
> the property's length is known, just not its value. In particular
> that could be useful for device trees where *only* non-moving edits
> are required by the bootloader, letting us use the asm output mode as
> intended.
[First things first -- it is generally wrong to
require properties to have a certain length, newer
(versions of) bindings can add extra fields to the
end of a property. It should be okay for this ??
stuff though, if a bootwrapper/firmware fills in
the property it better know its whole semantics,
including the new part.]
Okay, so use negative lengths to represent undefined
properties of a certain length, and use -inf to mean
"completely undefined yet". Or some other encoding,
there are many ways that would work.
My point is that you need a new DTB version to properly
represent ??.
Segher
^ permalink raw reply
* Re: [PATCH 10/13] powerpc: check cache coherency of kernel vs firmware
From: Dale Farnsworth @ 2007-05-14 14:44 UTC (permalink / raw)
To: David Gibson; +Cc: linuxppc-dev, Paul Mackerras
In-Reply-To: <20070514004014.GF6517@localhost.localdomain>
On Mon, May 14, 2007 at 12:40:14AM +0000, David Gibson wrote:
> On Fri, May 11, 2007 at 05:57:35PM -0700, Mark A. Greer wrote:
> >
> > From: Dale Farnsworth <dale@farnsworth.org>
> >
> > check_cache_coherency() verifies that the cache coherency setting of
> > the kernel (CONFIG_NOT_COHERENT_CACHE) matches that left by the firmware,
> > as indicated by coherency-off device tree property.
>
> This looks really bogus. If the firmware reports a coherency state,
> then presumably there's some hardware switch to turn coherency on or
> off. In which case, can't the kernel just toggle that switch to
> whatever's appropriate for it?
Oh, if it were only a single hardware switch. This is currently done
as part of about 500 lines of window register setting code that would
need to be moved/copied into the kernel from the firmware/bootwrapper.
It looks like the coherency part involves changing the same field in
a dozen device window registers, plus a different field in a register
for each PCI bus. So that is doable, and preferable to just printing
an error and failing as the above referenced patch does.
I was very glad to see all of the window initialization code taken out
of the kernel and put into the bootwrapper, but I'm beginning to believe
that it needs to be put back in the kernel.
Mark, it's your code. What do you think?
-Dale
^ permalink raw reply
* Re: [PATCH 1/4 v4] powerpc: document phy-connection-type property
From: Segher Boessenkool @ 2007-05-14 12:44 UTC (permalink / raw)
To: Matt Sealey; +Cc: linuxppc-dev
In-Reply-To: <4647B95D.1040404@genesi-usa.com>
> Since I'm poking around on 52xx I had a query - firstly it doesn't
> look like the 52xx fec driver uses phylib at all since it also tries
> to support the 7-wire ethernet interface, which isn't ?? supported
> by phylib.
>
> Stumbling across this property I wondered, if the driver can check
> the device tree for the phy type to set it up properly in this
> manner, would it also be relevant to list the 7-wire style of
> connection, so that drivers can provide the alternative code?
Is that 7-wire thing just another kind of connection
to a PHY? If so, treat it as such (add phylib support
perhaps); if not, have an empty property in your 5200
ethernet node that says the 7-wire thing is in use.
Segher
^ permalink raw reply
* Re: [DTC PATCH] Remove overreaching semantic tests.
From: Segher Boessenkool @ 2007-05-14 12:40 UTC (permalink / raw)
To: David Gibson; +Cc: linuxppc-dev
In-Reply-To: <20070514011915.GH6517@localhost.localdomain>
> Exactly - which is why I really don't want to simply tear out this
> checking code. I've never gotten around to reworking the
> error/warning system so it can sensibly divide things into such
> classes, and keep detecting further warnings after picking up some
> non-fatal ones and so forth.
>
> I'd much prefer you just disable these tests for now, either by
> commenting code out, or removing calls to checking functions. That
> will make it easier to optionally reinstate later.
IMO it would be better to have a separate tool to do
semantical checking on a DTB. Until that exists, it
can be helpful to have some checks in the DT compiler.
Segher
^ permalink raw reply
* treeImage.initrd rule is very broken
From: Josh Boyer @ 2007-05-14 14:47 UTC (permalink / raw)
To: dwg; +Cc: linuxppc-dev
Hi David,
I tried compiling an Ebony kernel wrapped with a DTS and initrd this
morning but it fails with the following error:
WRAP arch/powerpc/boot/treeImage.initrd.ebony
DTC: dts->dtb on file "/home/jwboyer/src/linux-2.6/arch/powerpc/boot/dts/ebony.dts"
powerpc-440-linux-gnu-ld: arch/powerpc/boot/treeboot-initrd.ebony.o: No such file: No such file or directory
powerpc-440-linux-gnu-nm: 'arch/powerpc/boot/treeImage.initrd.ebony': No such file
powerpc-440-linux-gnu-objdump: 'arch/powerpc/boot/treeImage.initrd.ebony': No such file
mv: cannot stat `arch/powerpc/boot/treeImage.initrd.ebony': No such file or directory
stat: No such file or directory
ln: accessing `arch/powerpc/boot/treeImage.initrd.ebony': No such file or directory
make[1]: *** [arch/powerpc/boot/zImage.initrd] Error 1
make: *** [zImage.initrd] Error 2
At first glance, it should be looking for treeboot-ebony.o, not
treeboot-initrd.ebony.o. On a whim, I symlinked treeboot-initrd.ebony.o
to treeboot-ebony.o and the compile worked, however the wrapper wasn't
called with the ramdisk.image.gz file:
/bin/sh /home/jwboyer/src/linux-2.6/arch/powerpc/boot/wrapper -c -o arch/powerpc/boot/treeImage.initrd.ebony -p treeboot-initrd.ebony -C "powerpc-440-linux-gnu-" -s /home/jwboyer/src/linux-2.6/arch/powerpc/boot/dts/ebony.dts vmlinux
DTC: dts->dtb on file "/home/jwboyer/src/linux-2.6/arch/powerpc/boot/dts/ebony.dts"
So something is very broken with this rule. I poked at it for a while,
but I apparently don't have the make-fu to figure out how to un-break
it.
Help?
josh
^ permalink raw reply
* Re: USB support for Bamboo/440EP (Yosemite/440EPx)
From: Gerhard Jaeger @ 2007-05-14 14:31 UTC (permalink / raw)
To: linuxppc-embedded
In-Reply-To: <OF5B339C18.B1F62CD6-ON85257371.003D3A0F-852572DB.004D9561@us.ibm.com>
On Montag, 14. Mai 2007, Stephen Winiecki wrote:
> Is there an intention to add the configuration for the USB host controller
> for Bamboo/Yosemite to the mainline kernel? drivers/usb/host contains
> ohci-ppc-soc.c/h, but the Kconfig isn't updated to include it for
> 440EP/EPx?
>
> I noticed it is configured in the Denx 4.1 2.6.19.2 kernel. When I
> updated the 2.6.21 drivers/usb/host/Kconfig to include the controller
> support for 440EP for some reason I couldn't get the kernel to recognize
> the controller or devices when it boots - not sure if there is something
> else I am missing here? One thing I noticed was that in the 2.6.19.2
> kernel CONFIG_USB_OHCI_BIG_ENDIAN gets defined - in 2.6.21 there is both
> CONFIG_USB_OHCI_BIG_ENDIAN_DESC and CONFIG_USB_OHCI_BIG_ENDIAN_MMIO -
> assume I want both defined?
>
> Wondering also if anyone has much experience using the USB interface on
> Bamboo - and if any reliability issues have been observed? I have a
> Bamboo system where we've added graphics card init capability to PIBS and
> are using the DENX 2.6.19.2 kernel and booting X (Xorg 7.1.1 - Debian 4.0
> system on hard disk) with a USB keyboard and mouse - and sometimes the
> mouse/keyboard are not detected properly by either the kernel on boot, or
> by X during its initialization (sometimes even after the kernel seems to
> detect everything fine). I did play a bit with a memory stick on the
> interface and that seemed reliable for the little I did with it.
>
> I am using an Apple keyboard plugged into the USB port on the board, with
> an IBM Scrollpoint USB mouse plugged into one of the ports on the
> keyboard.
[SNIPSNAP]
Hi Stephen,
I also played with Bamboo and Yosemite USB and found out, that the OHCI
ISR contains an assumption that makes the 440 OHCI implementation sometimes
stop when having a timeout condition. Find the following sequence @ function
ohci_irq() (in file ohci-hcd.c) and disable the following code:
if ((ohci->hcca->done_head != 0)
&& ! (hc32_to_cpup (ohci, &ohci->hcca->done_head)
& 0x01)) {
ints = OHCI_INTR_WDH;
}
This should make the USB host work reliably on the 440s.
HTH
Gerhard
--
Gerhard Jaeger <gjaeger@sysgo.com>
SYSGO AG Embedded and Real-Time Software
www.sysgo.com | www.elinos.com | www.pikeos.com | www.osek.de
^ permalink raw reply
* [PATCH 0/3] Initial AMCC Bamboo support
From: Josh Boyer @ 2007-05-14 14:56 UTC (permalink / raw)
To: linuxppc-dev
Hi All,
The following patches add the initial AMCC Bamboo eval board support.
The support for peripheral devices at the moment is rather limited as
the board is quite complicated in it's muxing of I/O lines. Until the
bootwrapper can figure out how to setup the EBC peripherals based on the
dip switch settings, the DTS will lack any EBC devices.
As always, comments welcome.
josh
^ permalink raw reply
* [PATCH 1/3] Bamboo DTS
From: Josh Boyer @ 2007-05-14 14:57 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <1179154608.3420.21.camel@zod.rchland.ibm.com>
AMCC Bamboo board DTS
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
---
arch/powerpc/boot/dts/bamboo.dts | 253 +++++++++++++++++++++++++++++++++++++++
1 file changed, 253 insertions(+)
--- /dev/null
+++ linux-2.6/arch/powerpc/boot/dts/bamboo.dts
@@ -0,0 +1,253 @@
+/*
+ * Device Tree Source for AMCC Bamboo
+ *
+ * Copyright (c) 2006, 2007 IBM Corp.
+ * Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ *
+ * FIXME: Draft only!
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without
+ * any warranty of any kind, whether express or implied.
+ *
+ * To build:
+ * dtc -I dts -O asm -o bamboo.S -b 0 bamboo.dts
+ * dtc -I dts -O dtb -o bamboo.dtb -b 0 bamboo.dts
+ */
+
+/ {
+ #address-cells = <2>;
+ #size-cells = <1>;
+ model = "amcc,bamboo";
+ compatible = "amcc,bamboo";
+ dcr-parent = <&/cpus/PowerPC,440EP@0>;
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ PowerPC,440EP@0 {
+ device_type = "cpu";
+ reg = <0>;
+ clock-frequency = <0>; /* Filled in by zImage */
+ timebase-frequency = <0>; /* Filled in by zImage */
+ i-cache-line-size = <32>;
+ d-cache-line-size = <32>;
+ i-cache-size = <2000000>;
+ d-cache-size = <2000000>;
+ dcr-controller;
+ dcr-access-method = "native";
+ };
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0 0 0>; /* Filled in by zImage */
+ };
+
+ UIC0: interrupt-controller0 {
+ compatible = "ibm,uic-440gp","ibm,uic";
+ interrupt-controller;
+ cell-index = <0>;
+ dcr-reg = <0c0 009>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ #interrupt-cells = <2>;
+ };
+
+ UIC1: interrupt-controller1 {
+ compatible = "ibm,uic-440gp","ibm,uic";
+ interrupt-controller;
+ cell-index = <1>;
+ dcr-reg = <0d0 009>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ #interrupt-cells = <2>;
+ interrupts = <1e 4 1f 4>; /* cascade */
+ interrupt-parent = <&UIC0>;
+ };
+
+ SDR0: sdr {
+ compatible = "ibm,sdr-440ep";
+ dcr-reg = <00e 002>;
+ };
+
+ CPR0: cpr {
+ compatible = "ibm,cpr-440ep";
+ dcr-reg = <00c 002>;
+ };
+
+ plb {
+ compatible = "ibm,plb-440gp", "ibm,plb4";
+ #address-cells = <2>;
+ #size-cells = <1>;
+ ranges;
+ clock-frequency = <0>; /* Filled in by zImage */
+
+ SDRAM0: sdram {
+ device_type = "memory-controller";
+ compatible = "ibm,sdram-440gp","ibm,sdram";
+ dcr-reg = <010 2>;
+ };
+
+ DMA0: dma {
+ compatible = "ibm,dma-440gp", "ibm,dma-4xx";
+ dcr-reg = <100 027>;
+ };
+
+ MAL0: mcmal {
+ device_type = "dma-controller";
+ compatible = "ibm,mcmal-440gp", "ibm,mcmal";
+ dcr-reg = <180 62>;
+ num-tx-chans = <4>;
+ num-rx-chans = <4>;
+ interrupt-parent = <&MAL0>;
+ interrupts = <0 1 2 3 4>;
+ #interrupt-cells = <1>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
+ /*RXEOB*/ 1 &UIC0 b 4
+ /*SERR*/ 2 &UIC1 0 4
+ /*TXDE*/ 3 &UIC1 1 4
+ /*RXDE*/ 4 &UIC1 3 4>;
+ interrupt-map-mask = <ffffffff>;
+ };
+
+ POB0: opb {
+ compatible = "ibm,opb-440gp", "ibm,opb";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ /* Bamboo is oddball in the 44x world and doesn't use the ERPN
+ * bits.
+ */
+ ranges = <00000000 0 00000000 80000000
+ 80000000 0 80000000 80000000>;
+ interrupt-parent = <&UIC1>;
+ interrupts = <7 4>;
+ clock-frequency = <0>; /* Filled in by zImage */
+
+ EBC0: ebc {
+ compatible = "ibm,ebc-440gp";
+ dcr-reg = <012 2>;
+ #address-cells = <2>;
+ #size-cells = <1>;
+ clock-frequency = <0>; /* Filled in by zImage */
+ ranges;
+ interrupts = <5 1>;
+ interrupt-parent = <&UIC1>;
+ };
+
+ UART0: serial@ef600300 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <ef600300 8>;
+ virtual-reg = <ef600300>;
+ clock-frequency = <0>; /* Filled in by zImage */
+ current-speed = <1c200>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <0 4>;
+ };
+
+ UART1: serial@ef600400 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <ef600400 8>;
+ virtual-reg = <ef600400>;
+ clock-frequency = <0>;
+ current-speed = <0>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <1 4>;
+ };
+
+ UART2: serial@ef600500 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <ef600500 8>;
+ virtual-reg = <ef600500>;
+ clock-frequency = <0>;
+ current-speed = <0>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <3 4>;
+ };
+
+ UART3: serial@ef600600 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <ef600600 8>;
+ virtual-reg = <ef600600>;
+ clock-frequency = <0>;
+ current-speed = <0>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <4 4>;
+ };
+
+ IIC0: i2c@ef600700 {
+ device_type = "i2c";
+ compatible = "ibm,iic-440gp", "ibm,iic";
+ reg = <ef600700 14>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <2 4>;
+ };
+
+ IIC1: i2c@ef600800 {
+ device_type = "i2c";
+ compatible = "ibm,iic-44gp", "ibm,iic";
+ reg = <ef600800 14>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <7 4>;
+ };
+
+ ZMII0: emac-zmii@ef600d00 {
+ device_type = "zmii-interface";
+ compatible = "ibm,zmii-440gp", "ibm,zmii";
+ reg = <ef600d00 c>;
+ };
+
+ EMAC0: ethernet@ef600e00 {
+ device_type = "network";
+ compatible = "ibm,emac-440gp", "ibm,emac";
+ interrupt-parent = <&UIC1>;
+ interrupts = <1c 4 1d 4>;
+ reg = <ef600e00 70>;
+ local-mac-address = [000000000000];
+ mal-device = <&MAL0>;
+ mal-tx-channel = <0 1>;
+ mal-rx-channel = <0>;
+ cell-index = <0>;
+ max-frame-size = <5dc>;
+ rx-fifo-size = <1000>;
+ tx-fifo-size = <800>;
+ phy-mode = "rmii";
+ phy-map = <00000001>;
+ zmii-device = <&ZMII0>;
+ zmii-channel = <0>;
+ };
+
+ EMAC1: ethernet@ef600f00 {
+ device_type = "network";
+ compatible = "ibm,emac-440gp", "ibm,emac";
+ interrupt-parent = <&UIC1>;
+ interrupts = <1e 4 1f 4>;
+ reg = <ef600f00 70>;
+ local-mac-address = [000000000000];
+ mal-device = <&MAL0>;
+ mal-tx-channel = <2 3>;
+ mal-rx-channel = <1>;
+ cell-index = <1>;
+ max-frame-size = <5dc>;
+ rx-fifo-size = <1000>;
+ tx-fifo-size = <800>;
+ phy-mode = "rmii";
+ phy-map = <00000001>;
+ zmii-device = <&ZMII0>;
+ zmii-channel = <1>;
+ };
+ };
+ };
+
+ chosen {
+ linux,stdout-path = "/plb/opb/serial@ef600300";
+ bootargs = "console=ttyS0,115200";
+ };
+};
^ permalink raw reply
* [PATCH 2/3] Bamboo platform support
From: Josh Boyer @ 2007-05-14 14:59 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <1179154608.3420.21.camel@zod.rchland.ibm.com>
Add support for the AMCC Bamboo board
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
---
arch/powerpc/configs/bamboo_defconfig | 906 ++++++++++++++++++++++++++++++++++
arch/powerpc/platforms/44x/Kconfig | 15
arch/powerpc/platforms/44x/Makefile | 1
arch/powerpc/platforms/44x/bamboo.c | 66 ++
4 files changed, 981 insertions(+), 7 deletions(-)
--- /dev/null
+++ linux-2.6/arch/powerpc/configs/bamboo_defconfig
@@ -0,0 +1,906 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.21
+# Mon May 14 07:25:36 2007
+#
+# CONFIG_PPC64 is not set
+CONFIG_PPC32=y
+CONFIG_PPC_MERGE=y
+CONFIG_MMU=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_IRQ_PER_CPU=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_ILOG2_U32=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_PPC=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_GENERIC_NVRAM=y
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_PPC_OF=y
+CONFIG_PPC_UDBG_16550=y
+# CONFIG_GENERIC_TBSYNC is not set
+CONFIG_AUDIT_ARCH=y
+CONFIG_GENERIC_BUG=y
+# CONFIG_DEFAULT_UIMAGE is not set
+
+#
+# Processor support
+#
+# CONFIG_CLASSIC32 is not set
+# CONFIG_PPC_82xx is not set
+# CONFIG_PPC_83xx is not set
+# CONFIG_PPC_85xx is not set
+# CONFIG_PPC_86xx is not set
+# CONFIG_PPC_8xx is not set
+# CONFIG_40x is not set
+CONFIG_44x=y
+# CONFIG_E200 is not set
+CONFIG_PPC_FPU=y
+CONFIG_PPC_DCR_NATIVE=y
+# CONFIG_PPC_DCR_MMIO is not set
+CONFIG_PPC_DCR=y
+CONFIG_4xx=y
+CONFIG_BOOKE=y
+CONFIG_PTE_64BIT=y
+CONFIG_PHYS_64BIT=y
+# CONFIG_PPC_MM_SLICES is not set
+CONFIG_NOT_COHERENT_CACHE=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_IPC_NS is not set
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_UTS_NS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_SYSFS_DEPRECATED=y
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Block layer
+#
+CONFIG_BLOCK=y
+CONFIG_LBD=y
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+
+#
+# Platform support
+#
+# CONFIG_PPC_MPC52xx is not set
+# CONFIG_PPC_MPC5200 is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PQ2ADS is not set
+CONFIG_BAMBOO=y
+# CONFIG_EBONY is not set
+CONFIG_440EP=y
+CONFIG_IBM440EP_ERR42=y
+# CONFIG_MPIC is not set
+# CONFIG_MPIC_WEIRD is not set
+# CONFIG_PPC_I8259 is not set
+# CONFIG_PPC_RTAS is not set
+# CONFIG_MMIO_NVRAM is not set
+# CONFIG_PPC_MPC106 is not set
+# CONFIG_PPC_970_NAP is not set
+# CONFIG_PPC_INDIRECT_IO is not set
+# CONFIG_GENERIC_IOMAP is not set
+# CONFIG_CPU_FREQ is not set
+# CONFIG_CPM2 is not set
+
+#
+# Kernel options
+#
+# CONFIG_HIGHMEM is not set
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_MATH_EMULATION=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_RESOURCES_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_PROC_DEVICETREE=y
+CONFIG_CMDLINE_BOOL=y
+CONFIG_CMDLINE=""
+CONFIG_SECCOMP=y
+CONFIG_WANT_DEVICE_TREE=y
+CONFIG_DEVICE_TREE="bamboo.dts"
+CONFIG_ISA_DMA_API=y
+
+#
+# Bus options
+#
+CONFIG_ZONE_DMA=y
+CONFIG_PPC_INDIRECT_PCI=y
+# CONFIG_PPC_INDIRECT_PCI_BE is not set
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCIEPORTBUS is not set
+CONFIG_ARCH_SUPPORTS_MSI=y
+# CONFIG_PCI_MSI is not set
+# CONFIG_PCI_DEBUG is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Advanced setup
+#
+# CONFIG_ADVANCED_OPTIONS is not set
+
+#
+# Default settings for advanced configuration options are used
+#
+CONFIG_HIGHMEM_START=0xfe000000
+CONFIG_LOWMEM_SIZE=0x30000000
+CONFIG_KERNEL_START=0xc0000000
+CONFIG_TASK_SIZE=0x80000000
+CONFIG_CONSISTENT_START=0xff100000
+CONFIG_CONSISTENT_SIZE=0x00200000
+CONFIG_BOOT_LOAD=0x01000000
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+
+#
+# TIPC Configuration (EXPERIMENTAL)
+#
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+# CONFIG_RFKILL is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+# CONFIG_PNPACPI is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=35000
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# Misc devices
+#
+# CONFIG_PHANTOM is not set
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_BLINK is not set
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_NETLINK is not set
+
+#
+# Serial ATA (prod) and Parallel ATA (experimental) drivers
+#
+# CONFIG_ATA is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+CONFIG_MACINTOSH_DRIVERS=y
+# CONFIG_MAC_EMUMOUSEBTN is not set
+# CONFIG_WINDFARM is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# PHY device support
+#
+
+#
+# Ethernet (10 or 100Mbit)
+#
+# CONFIG_NET_ETHERNET is not set
+# CONFIG_IBM_EMAC is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SIS190 is not set
+# CONFIG_SKGE is not set
+# CONFIG_SKY2 is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+# CONFIG_QLA3XXX is not set
+# CONFIG_ATL1 is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+# CONFIG_CHELSIO_T1 is not set
+# CONFIG_CHELSIO_T3 is not set
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+# CONFIG_MYRI10GE is not set
+# CONFIG_NETXEN_NIC is not set
+# CONFIG_MLX4_CORE is not set
+CONFIG_MLX4_DEBUG=y
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+# CONFIG_INPUT is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_PCI is not set
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+# CONFIG_SERIAL_8250_MANY_PORTS is not set
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_RSA is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_UARTLITE is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_WATCHDOG is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_GEN_RTC is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVPORT=y
+# CONFIG_I2C is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+# CONFIG_HWMON is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_FB is not set
+# CONFIG_FB_IBM_GXT4500 is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+# CONFIG_USB is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+# CONFIG_MMC is not set
+
+#
+# LED devices
+#
+# CONFIG_NEW_LEDS is not set
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+
+#
+# InfiniBand support
+#
+# CONFIG_INFINIBAND is not set
+
+#
+# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
+#
+
+#
+# Real Time Clock
+#
+# CONFIG_RTC_CLASS is not set
+
+#
+# DMA Engine support
+#
+# CONFIG_DMA_ENGINE is not set
+
+#
+# DMA Clients
+#
+
+#
+# DMA Devices
+#
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4DEV_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_SUNRPC_BIND34 is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+# CONFIG_9P_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+# CONFIG_NLS is not set
+
+#
+# Distributed Lock Manager
+#
+# CONFIG_DLM is not set
+# CONFIG_UCC_SLOW is not set
+# CONFIG_UCC_FAST is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+
+#
+# Instrumentation Support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_DEBUGGER=y
+# CONFIG_KGDB is not set
+# CONFIG_XMON is not set
+# CONFIG_BDI_SWITCH is not set
+# CONFIG_BOOTX_TEXT is not set
+CONFIG_PPC_EARLY_DEBUG=y
+# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
+# CONFIG_PPC_EARLY_DEBUG_G5 is not set
+# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set
+# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set
+# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
+# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
+# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set
+# CONFIG_PPC_EARLY_DEBUG_BEAT is not set
+CONFIG_PPC_EARLY_DEBUG_44x=y
+CONFIG_PPC_EARLY_DEBUG_44x_PHYSLOW=0xef600300
+CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH=0x0
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_MANAGER=y
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_GF128MUL is not set
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_PCBC=y
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Hardware crypto devices
+#
--- linux-2.6.orig/arch/powerpc/platforms/44x/Kconfig
+++ linux-2.6/arch/powerpc/platforms/44x/Kconfig
@@ -1,10 +1,10 @@
-#config BAMBOO
-# bool "Bamboo"
-# depends on 44x
-# default n
-# select 440EP
-# help
-# This option enables support for the IBM PPC440EP evaluation board.
+config BAMBOO
+ bool "Bamboo"
+ depends on 44x
+ default n
+ select 440EP
+ help
+ This option enables support for the IBM PPC440EP evaluation board.
config EBONY
bool "Ebony"
@@ -35,6 +35,7 @@ config 440EP
bool
select PPC_FPU
select IBM440EP_ERR42
+# select IBM_NEW_EMAC_ZMII
config 440GP
bool
--- linux-2.6.orig/arch/powerpc/platforms/44x/Makefile
+++ linux-2.6/arch/powerpc/platforms/44x/Makefile
@@ -1,2 +1,3 @@
obj-$(CONFIG_44x) := misc_44x.o
obj-$(CONFIG_EBONY) += ebony.o
+obj-$(CONFIG_BAMBOO) += bamboo.o
--- /dev/null
+++ linux-2.6/arch/powerpc/platforms/44x/bamboo.c
@@ -0,0 +1,66 @@
+/*
+ * Bamboo board specific routines
+ *
+ * Wade Farnsworth <wfarnsworth@mvista.com>
+ * Copyright 2004 MontaVista Software Inc.
+ *
+ * Rewritten and ported to the merged powerpc tree:
+ * Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ * Copyright 2007 IBM Corporation
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ */
+#include <linux/init.h>
+#include <asm/machdep.h>
+#include <asm/prom.h>
+#include <asm/udbg.h>
+#include <asm/time.h>
+#include <asm/uic.h>
+#include <asm/of_platform.h>
+#include "44x.h"
+
+static struct of_device_id bamboo_of_bus[] = {
+ { .compatible = "ibm,plb", },
+ { .compatible = "ibm,opb", },
+ { .compatible = "ibm,ebc", },
+ {},
+};
+
+static int __init bamboo_device_probe(void)
+{
+ if (!machine_is(bamboo))
+ return 0;
+
+ of_platform_bus_probe(NULL, bamboo_of_bus, NULL);
+
+ return 0;
+}
+device_initcall(bamboo_device_probe);
+
+static int __init bamboo_probe(void)
+{
+ unsigned long root = of_get_flat_dt_root();
+
+ if (!of_flat_dt_is_compatible(root, "amcc,bamboo"))
+ return 0;
+
+ return 1;
+}
+
+static void __init bamboo_setup_arch(void)
+{
+}
+
+define_machine(bamboo) {
+ .name = "Bamboo",
+ .probe = bamboo_probe,
+ .setup_arch = bamboo_setup_arch,
+ .progress = udbg_progress,
+ .init_IRQ = uic_init_tree,
+ .get_irq = uic_get_irq,
+ .restart = ppc44x_reset_system,
+ .calibrate_decr = generic_calibrate_decr,
+};
^ permalink raw reply
* [PATCH 3/3] Bamboo wrapper
From: Josh Boyer @ 2007-05-14 14:59 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <1179154608.3420.21.camel@zod.rchland.ibm.com>
Add a bootwrapper for Bamboo
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
---
arch/powerpc/boot/44x.h | 1
arch/powerpc/boot/Makefile | 5 -
arch/powerpc/boot/bamboo.c | 148 ++++++++++++++++++++++++++++++++++++
arch/powerpc/boot/dcr.h | 17 ++++
arch/powerpc/boot/treeboot-bamboo.c | 27 ++++++
5 files changed, 196 insertions(+), 2 deletions(-)
--- linux-2.6.orig/arch/powerpc/boot/Makefile
+++ linux-2.6/arch/powerpc/boot/Makefile
@@ -43,9 +43,9 @@ $(addprefix $(obj)/,$(zlib) gunzip_util.
src-wlib := string.S crt0.S stdio.c main.c flatdevtree.c flatdevtree_misc.c \
ns16550.c serial.c simple_alloc.c div64.S util.S \
gunzip_util.c elf_util.c $(zlib) devtree.c \
- 44x.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c
+ 44x.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c bamboo.c
src-plat := of.c cuboot-83xx.c cuboot-85xx.c holly.c \
- cuboot-ebony.c treeboot-ebony.c prpmc2800.c
+ cuboot-ebony.c treeboot-ebony.c prpmc2800.c treeboot-bamboo.c
src-boot := $(src-wlib) $(src-plat) empty.c
src-boot := $(addprefix $(obj)/, $(src-boot))
@@ -139,6 +139,7 @@ ifneq ($(CONFIG_DEVICE_TREE),"")
image-$(CONFIG_PPC_83xx) += cuImage.83xx
image-$(CONFIG_PPC_85xx) += cuImage.85xx
image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony
+image-$(CONFIG_BAMBOO) += treeImage.bamboo
endif
# For 32-bit powermacs, build the COFF and miboot images
--- /dev/null
+++ linux-2.6/arch/powerpc/boot/bamboo.c
@@ -0,0 +1,148 @@
+/*
+ * Copyright IBM Corporation, 2007
+ * Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ *
+ * Based on ebony wrapper:
+ * Copyright 2007 David Gibson, IBM Corporation.
+ *
+ * Clocking code based on code by:
+ * Stefan Roese <sr@denx.de>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; version 2 of the License
+ */
+#include <stdarg.h>
+#include <stddef.h>
+#include "types.h"
+#include "elf.h"
+#include "string.h"
+#include "stdio.h"
+#include "page.h"
+#include "ops.h"
+#include "dcr.h"
+#include "44x.h"
+
+extern char _dtb_start[];
+extern char _dtb_end[];
+
+#define SPRN_CCR1 0x378
+void ibm440ep_fixup_clocks(unsigned int sysclk, unsigned int ser_clk)
+{
+ u32 cpu, plb, opb, ebc, tb, uart0, m, vco;
+ u32 reg;
+ u32 fwdva, fwdvb, fbdv, lfbdv, opbdv0, perdv0, spcid0, prbdv0, tmp;
+
+ mtdcr(DCRN_CPR0_ADDR, CPR0_PLLD0);
+ reg = mfdcr(DCRN_CPR0_DATA);
+ tmp = (reg & 0x000F0000) >> 16;
+ fwdva = tmp ? tmp : 16;
+ tmp = (reg & 0x00000700) >> 8;
+ fwdvb = tmp ? tmp : 8;
+ tmp = (reg & 0x1F000000) >> 24;
+ fbdv = tmp ? tmp : 32;
+ lfbdv = (reg & 0x0000007F);
+
+ mtdcr(DCRN_CPR0_ADDR, CPR0_OPBD0);
+ reg = mfdcr(DCRN_CPR0_DATA);
+ tmp = (reg & 0x03000000) >> 24;
+ opbdv0 = tmp ? tmp : 4;
+
+ mtdcr(DCRN_CPR0_ADDR, CPR0_PERD0);
+ reg = mfdcr(DCRN_CPR0_DATA);
+ tmp = (reg & 0x07000000) >> 24;
+ perdv0 = tmp ? tmp : 8;
+
+ mtdcr(DCRN_CPR0_ADDR, CPR0_PRIMBD0);
+ reg = mfdcr(DCRN_CPR0_DATA);
+ tmp = (reg & 0x07000000) >> 24;
+ prbdv0 = tmp ? tmp : 8;
+
+ mtdcr(DCRN_CPR0_ADDR, CPR0_SCPID);
+ reg = mfdcr(DCRN_CPR0_DATA);
+ tmp = (reg & 0x03000000) >> 24;
+ spcid0 = tmp ? tmp : 4;
+
+ /* Calculate M */
+ mtdcr(DCRN_CPR0_ADDR, CPR0_PLLC0);
+ reg = mfdcr(DCRN_CPR0_DATA);
+ tmp = (reg & 0x03000000) >> 24;
+ if (tmp == 0) { /* PLL output */
+ tmp = (reg & 0x20000000) >> 29;
+ if (!tmp) /* PLLOUTA */
+ m = fbdv * lfbdv * fwdva;
+ else
+ m = fbdv * lfbdv * fwdvb;
+ }
+ else if (tmp == 1) /* CPU output */
+ m = fbdv * fwdva;
+ else
+ m = perdv0 * opbdv0 * fwdvb;
+
+ vco = (m * sysclk) + (m >> 1);
+ cpu = vco / fwdva;
+ plb = vco / fwdvb / prbdv0;
+ opb = plb / opbdv0;
+ ebc = plb / perdv0;
+
+ /* FIXME */
+ uart0 = ser_clk;
+
+ /* Figure out timebase. Either CPU or default TmrClk */
+ asm volatile (
+ "mfspr %0,%1\n"
+ :
+ "=&r"(reg) : "i"(SPRN_CCR1));
+ if (reg & 0x0080)
+ tb = 25000000; /* TmrClk is 25MHz */
+ else
+ tb = cpu;
+
+ dt_fixup_cpu_clocks(cpu, tb, 0);
+ dt_fixup_clock("/plb", plb);
+ dt_fixup_clock("/plb/opb", opb);
+ dt_fixup_clock("/plb/opb/ebc", ebc);
+ dt_fixup_clock("/plb/opb/serial@ef600300", uart0);
+ dt_fixup_clock("/plb/opb/serial@ef600400", uart0);
+ dt_fixup_clock("/plb/opb/serial@ef600500", uart0);
+ dt_fixup_clock("/plb/opb/serial@ef600600", uart0);
+}
+
+#define DCRN_MAL0_CFG 0x180
+static void ibm440ep_reset_eth(void)
+{
+ /* reset the MAL and EMACs since PIBS doesn't do this for us */
+ u32 *emac0 = (u32 *)0xef600e00;
+ u32 *emac1 = (u32 *)0xef600f00;
+
+ *emac0 = 0x20000000;
+ *emac1 = 0x20000000;
+ mtdcr(DCRN_MAL0_CFG, 0x80000000);
+}
+
+static void ibm440ep_clear_uics(void)
+{
+ /* Clear the UIC registers so we don't get spurious interrupts
+ * in the kernel
+ */
+ mtdcr(DCRN_UIC0_ER, 0x0);
+ mtdcr(DCRN_UIC0_SR, 0xffffffff);
+ mtdcr(DCRN_UIC1_ER, 0x0);
+ mtdcr(DCRN_UIC1_SR, 0xffffffff);
+}
+
+static void bamboo_fixups(void)
+{
+ unsigned long sysclk = 33333333;
+ ibm440ep_fixup_clocks(sysclk, 11059200);
+ ibm44x_fixup_memsize();
+ ibm440ep_reset_eth();
+ ibm440ep_clear_uics();
+}
+
+void bamboo_init(void)
+{
+ platform_ops.fixups = bamboo_fixups;
+ ft_init(_dtb_start, 0, 32);
+ serial_console_init();
+}
--- linux-2.6.orig/arch/powerpc/boot/44x.h
+++ linux-2.6/arch/powerpc/boot/44x.h
@@ -12,5 +12,6 @@
void ibm44x_fixup_memsize(void);
void ebony_init(void *mac0, void *mac1);
+void bamboo_init(void);
#endif /* _PPC_BOOT_44X_H_ */
--- /dev/null
+++ linux-2.6/arch/powerpc/boot/treeboot-bamboo.c
@@ -0,0 +1,27 @@
+/*
+ * Copyright IBM Corporation, 2007
+ * Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ *
+ * Based on ebony wrapper:
+ * Copyright 2007 David Gibson, IBM Corporation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; version 2 of the License
+ */
+#include "ops.h"
+#include "stdio.h"
+#include "44x.h"
+
+extern char _end[];
+
+BSS_STACK(4096);
+
+void platform_init(void)
+{
+ unsigned long end_of_ram = 0x8000000;
+ unsigned long avail_ram = end_of_ram - (unsigned long)_end;
+
+ simple_alloc_init(_end, avail_ram, 32, 64);
+ bamboo_init();
+}
--- linux-2.6.orig/arch/powerpc/boot/dcr.h
+++ linux-2.6/arch/powerpc/boot/dcr.h
@@ -10,6 +10,12 @@
#define mtdcr(rn, val) \
asm volatile("mtdcr %0,%1" : : "i"(rn), "r"(val))
+/* 44x UIC DCRs */
+#define DCRN_UIC0_SR 0xc0
+#define DCRN_UIC0_ER 0xc2
+#define DCRN_UIC1_SR 0xd0
+#define DCRN_UIC1_ER 0xd2
+
/* 440GP/440GX SDRAM controller DCRs */
#define DCRN_SDRAM0_CFGADDR 0x010
#define DCRN_SDRAM0_CFGDATA 0x011
@@ -84,4 +90,15 @@ static const unsigned long sdram_bxcr[]
#define DCRN_CPC0_MIRQ1 0x0ed
#define DCRN_CPC0_JTAGID 0x0ef
+/* 440EP Clock/Power-on Reset regs */
+#define DCRN_CPR0_ADDR 0xc
+#define DCRN_CPR0_DATA 0xd
+#define CPR0_PLLD0 0x60
+#define CPR0_OPBD0 0xc0
+#define CPR0_PERD0 0xe0
+#define CPR0_PRIMBD0 0xa0
+#define CPR0_SCPID 0x120
+#define CPR0_PLLC0 0x40
+
+
#endif /* _PPC_BOOT_DCR_H_ */
^ permalink raw reply
* Re: Small fixes for the Ebony device tree
From: Segher Boessenkool @ 2007-05-14 12:59 UTC (permalink / raw)
To: David Gibson; +Cc: linuxppc-dev, Paul Mackerras
In-Reply-To: <20070514045404.GP6517@localhost.localdomain>
> - i-cache-size = <0>;
> - d-cache-size = <0>;
> + i-cache-size = <2000000>; /* 32 kB */
> + d-cache-size = <2000000>; /* 32 kB */
That's 32MB, not 32kB. Better fix this :-)
> UIC0: interrupt-controller0 {
> UIC1: interrupt-controller1 {
It's a shame you can't use unit addresses for these since
you use "dcr-reg" instead of "reg". Oh well.
> SDRAM0: sdram {
> - device_type = "memory-controller";
> compatible = "ibm,sdram-440gp", "ibm,sdram";
Maybe rename the node to "memory-controller"?
> + SRAM0: sram {
> + compatible = "ibm,sram440gp";
> + dcr-reg = <020 8 00a 1>;
> + };
Is this thing _only_ addressable over DCRs? Weird.
> MAL0: mcmal {
> - device_type = "mcmal-dma";
> + device_type = "dma-controller";
> compatible = "ibm,mcmal-440gp", "ibm,mcmal";
Remove "device_type", change name to "dma-controller"?
> EBC0: ebc {
> - device_type = "ibm,ebc";
> compatible = "ibm,ebc-440gp";
You forgot "ibm,ebc" here.
Segher
^ permalink raw reply
* Re: [RFC/PATCH] powerpc: Rewrite IO allocation & mapping on powerpc64
From: Segher Boessenkool @ 2007-05-14 15:04 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: linuxppc-dev, Paul Mackerras, Anton Blanchard
In-Reply-To: <200705141637.19572.arnd@arndb.de>
> Do you think it's ok to not treat the range between 64k and 1M special?
> There might be ISA drivers that expect devices in there.
ISA I/O space is 16-bit addressing only.
> Maybe we should
> start PHB_IO_BASE after a 1M guard area where nothing is mapped.
This can cause problems, many PCI bridges and devices
don't decode all 32 bits of the legacy I/O address space.
> Where should Olof's PCMCIA space go? The ISA or the PHB range?
It uses the legacy IDE I/O addresses, so it needs to
go to the 64kB space. It isn't ISA though.
Segher
^ permalink raw reply
* Re: Small fixes for the Ebony device tree
From: Josh Boyer @ 2007-05-14 15:09 UTC (permalink / raw)
To: Segher Boessenkool; +Cc: linuxppc-dev, Paul Mackerras, David Gibson
In-Reply-To: <3af16d1a6c09901f10dca3b6a3f8c698@kernel.crashing.org>
On Mon, 2007-05-14 at 14:59 +0200, Segher Boessenkool wrote:
> > - i-cache-size = <0>;
> > - d-cache-size = <0>;
> > + i-cache-size = <2000000>; /* 32 kB */
> > + d-cache-size = <2000000>; /* 32 kB */
>
> That's 32MB, not 32kB. Better fix this :-)
Argh. What's even sadder is I just did the exact same thing for Bamboo.
> > + SRAM0: sram {
> > + compatible = "ibm,sram440gp";
> > + dcr-reg = <020 8 00a 1>;
> > + };
>
> Is this thing _only_ addressable over DCRs? Weird.
Yes.
>
> > MAL0: mcmal {
> > - device_type = "mcmal-dma";
> > + device_type = "dma-controller";
> > compatible = "ibm,mcmal-440gp", "ibm,mcmal";
>
> Remove "device_type", change name to "dma-controller"?
>
> > EBC0: ebc {
> > - device_type = "ibm,ebc";
> > compatible = "ibm,ebc-440gp";
>
> You forgot "ibm,ebc" here.
/me notes that for Bamboo
josh
^ permalink raw reply
* Re: [PATCH 1/2] kbuild: Add "Section mismatch" warning whitelist for powerpc
From: Sam Ravnborg @ 2007-05-14 11:06 UTC (permalink / raw)
To: Li Yang; +Cc: Andrew Morton, linuxppc-dev, Linus, Linux Kernel
In-Reply-To: <46483FAC.60503@freescale.com>
On Mon, May 14, 2007 at 06:53:32PM +0800, Li Yang wrote:
> This patch fixes the following "Section mismatch" warnings when
> build powerpc platforms.
>
> -------------
> WARNING: arch/powerpc/mm/built-in.o - Section mismatch: reference to
> .init.text:early_get_page from .text between 'pte_alloc_one_kernel' (at
> offset 0xc68) and 'pte_alloc_one'
> WARNING: mm/built-in.o - Section mismatch: reference to
> .init.text:set_up_list3s from .text between 'kmem_cache_create' (at offset
> 0x20300) and 'cache_reap'
> -------------
>
> Massive warnings represented by:
> -------------
> WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to
> .init.data:.got2 from prom_entry (offset 0x0)
> WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to
> .init.text:mpc8313_rdb_probe from .machine.desc after 'mach_mpc8313_rdb'
> (at offset 0x4)
> -------------
>
> Signed-off-by: Li Yang <leoli@freescale.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
> ---
> scripts/mod/modpost.c | 16 ++++++++++++----
> 1 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
> index c89cb71..aa3a881 100644
> --- a/scripts/mod/modpost.c
> +++ b/scripts/mod/modpost.c
> @@ -649,9 +649,10 @@ static int strrcmp(const char *s, const char *sub)
> * tosec = .init.text
> *
> * Pattern 10:
> - * ia64 has machvec table for each platform. It is mixture of function
> - * pointer of .init.text and .text.
> - * fromsec = .machvec
> + * ia64 has machvec table and powerpc has machine desc table for each
> + * platform. It is mixture of function pointer of .init.text and .text.
> + * fromsec = .machvec | .machine.desc
> + *
> **/
> static int secref_whitelist(const char *modname, const char *tosec,
> const char *fromsec, const char *atsym,
> @@ -681,6 +682,8 @@ static int secref_whitelist(const char *modname, const
> char *tosec,
> const char *pat4sym[] = {
> "sparse_index_alloc",
> "zone_wait_table_init",
> + "pte_alloc_one_kernel",
> + "kmem_cache_create",
> NULL
> };
>
> @@ -750,7 +753,8 @@ static int secref_whitelist(const char *modname, const
> char *tosec,
> return 1;
>
> /* Check for pattern 10 */
> - if (strcmp(fromsec, ".machvec") == 0)
> + if ((strcmp(fromsec, ".machvec") == 0) ||
> + (strcmp(fromsec, ".machine.desc") == 0))
> return 1;
>
> return 0;
> @@ -883,6 +887,10 @@ static void warn_sec_mismatch(const char *modname,
> const char *fromsec,
> secref_whitelist(modname, secname, fromsec,
> elf->strtab + before->st_name, refsymname))
> return;
> + /* fromsec whitelist - without a valid 'before' */
> + /* powerpc has a GOT table in .got2 section */
> + if (strcmp(fromsec, ".got2") == 0)
> + return;
>
> if (before && after) {
> warn("%s - Section mismatch: reference to %s:%s from %s "
>
^ permalink raw reply
* Re: [PATCH 1/3] Bamboo DTS
From: Segher Boessenkool @ 2007-05-14 15:21 UTC (permalink / raw)
To: Josh Boyer; +Cc: linuxppc-dev
In-Reply-To: <1179154675.3420.22.camel@zod.rchland.ibm.com>
> + i-cache-size = <2000000>;
> + d-cache-size = <2000000>;
32MB yeah right :-)
> + MAL0: mcmal {
> + #address-cells = <0>;
> + #size-cells = <0>;
> + interrupt-map-mask = <ffffffff>;
These three properties aren't needed (map-mask defaults
to all bits, #size is never used, #address defaults to 0
for interrupt mapping and isn't used in any other context).
> + ranges = <00000000 0 00000000 80000000
> + 80000000 0 80000000 80000000>;
You can avoid having two ranges by using #size-cells = 2
in the root node. Having two ranges is a problem if any
mapping straddles the boundary between the two.
Segher
^ permalink raw reply
* Re: [PATCH] U-boot passes the initrd as start/end, not start/size.
From: Scott Wood @ 2007-05-14 15:50 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: linuxppc-dev, paulus
In-Reply-To: <20070512134529.fe14f441.sfr@canb.auug.org.au>
Stephen Rothwell wrote:
> On Fri, 11 May 2007 12:52:03 -0500 Scott Wood <scottwood@freescale.com> wrote:
>
>> loader_info.initrd_addr = r4;
>>- loader_info.initrd_size = r4 ? r5 : 0;
>>+ loader_info.initrd_size = r4 ? r5 - r4 : 0;
>
>
> So do we need a "+ 1" here, or does r5 contain the address past the initrd?
It includes the address past the initrd.
-Scott
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox