* Re: [PATCH] [POWERPC] Reintroduce O_SYNC flag to make DRAM non-cached.
From: Benjamin Herrenschmidt @ 2008-05-08 7:21 UTC (permalink / raw)
To: Nick Spence; +Cc: linuxppc-dev, Paul Mackerras
In-Reply-To: <4822A8F0.1010602@freescale.com>
On Thu, 2008-05-08 at 00:17 -0700, Nick Spence wrote:
> The page protection seemed to be allocated on a per pte basis, where
> each PTE is a small fixed size. I will need to check the TLB setup
> further.
The problem is that it will then be part of the linear mapping, which
means you'll end up with a double cacheable & non-cacheable mapping for
that memory, this is not nice ... it might work as long as we stick to
having G bit set for the whole linear mapping but it's going to come
back and bite.
I still think you should look closely whether it could be carved out
of the end of memory... even if that involves changing application
code.
Now, if you aren't afraid of cache paradox caused by the linear
mapping, then carve it out of the LMB wherever it is rather than
lmb_reserve() it. That would probably work.
Ben.
^ permalink raw reply
* Re: [Cbe-oss-dev] [PATCH] Updated: Reworked Cell OProfile: SPU mutex lock fix
From: Jochen Roth @ 2008-05-08 7:50 UTC (permalink / raw)
To: Carl Love
Cc: linuxppc-dev, oprofile-list, cbe-oss-dev, Arnd Bergmann,
linux-kernel
In-Reply-To: <1210180166.7726.19.camel@carll-linux-desktop>
Carl Love wrote:
>> > +void oprofile_add_value(unsigned long value, int cpu) {
>> > + struct oprofile_cpu_buffer * cpu_buf = &cpu_buffer[cpu];
>>
>> Shouldn't it be
>> struct oprofile_cpu_buffer *cpu_buf = &per_cpu(cpu_buffer, cpu);
>
> No, I don't think so. Take a look at the other functions in
> drivers/oprofile/cpu_buffer.c. For example oprofile_add_trace(). You
> will see that the cpu_buffer is not accessed using the per_cpu
> construct. Not sure why the compiler would complain about the
> oprofile_add_value() function but not one of the other functions like
> oprofile_add_trace().
Well, actually the other functions like oprofile_add_trace are using the
&__get_cpu_var(cpu_buffer) construct.
> What was the compiler error that you saw?
Here they are:
/home/jroth/kernel/spufs/arch/powerpc/oprofile/../../../drivers/oprofile/cpu_buffer.c:
In function ‘oprofile_add_value’:
/home/jroth/kernel/spufs/arch/powerpc/oprofile/../../../drivers/oprofile/cpu_buffer.c:234:
error: ‘cpu_buffer’ undeclared (first use in this function)
cpu_buffer is defined by the DEFINE_PER_CPU_SHARED_ALIGNED macro:
DEFINE_PER_CPU_SHARED_ALIGNED(struct oprofile_cpu_buffer, cpu_buffer);
> I will try getting Jeremy's kernel and applying the patch there to see
> if it works.
You'll find his tree at
git://git.kernel.org/pub/scm/linux/kernel/git/jk/spufs.git
^ permalink raw reply
* Re: [PATCH] [POWERPC] Reintroduce O_SYNC flag to make DRAM non-cached.
From: Segher Boessenkool @ 2008-05-08 9:54 UTC (permalink / raw)
To: Spence Nick; +Cc: linuxppc-dev, Paul Mackerras
In-Reply-To: <9E50B2A5FE44294CBF877745D9A4125F01D37125@az33exm24.fsl.freescale.net>
> We found the problem when porting code from Linux 2.4 to 2.6, where a
> user space application maps a 1 MByte region of DRAM with the O_SYNC
> flag to communicate with an internal core that shares access to the
> DRAM but does not have any cache snooping logic.
>
> In 2.4 the mem driver honors the O_SYNC flag and makes the requested
> memory
> memory non-cached so that writes from user space are immediately
> available
> to the second core.
If you only need to write from the core running Linux, and never
read the memory back, and the secondary core never writes the memory,
your userland program can simply do dcbst on it after it wrote it.
Otherwise, if your CPU has BAT registers, you could use those to
force that memory region as non-cacheable (be careful, BATs are not
allowed to overlap each other).
If these things won't work for you, you need to do some simple device
driver, and do non-coherent DMA from it (you can view the secondary
core as an I/O device like any other).
Segher
^ permalink raw reply
* Re: [PATCH] [POWERPC] Xilinx: add compatibility for IBM coreconnect busses.
From: Josh Boyer @ 2008-05-08 11:16 UTC (permalink / raw)
To: David Gibson; +Cc: linuxppc-dev
In-Reply-To: <20080508033006.GH5156@yookeroo.seuss>
On Thu, 8 May 2008 13:30:06 +1000
David Gibson <dwg@au1.ibm.com> wrote:
> On Wed, May 07, 2008 at 09:46:30PM -0500, Josh Boyer wrote:
> > On Thu, 8 May 2008 10:18:50 +1000
> > David Gibson <david@gibson.dropbear.id.au> wrote:
> >
> > > On Wed, May 07, 2008 at 01:47:31PM -0700, Stephen Neuendorffer wrote:
> > > > The IBM coreconnect names are pretty well defined, it appears. In
> > > > addition, the Xilinx versions of these IPs seem to be proliferating.
> > > > Hence, in the future let's prefer to use the standard names. I've
> > > > left the old names in for some backward compatibility for existing
> > > > device trees.
> > > >
> > > > Signed-off-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com>
> > >
> > > If you're talking about future trees, can't you just slap "simple-bus"
> > > on them avoid this monster id table?
> >
> > What is that and how does it work?
>
> ePAPR states that busses which cannot be probed as such (i.e. the
> device tree is the only way to figure out what's on the bus) should
> have "simple-bus" in their compatible property. You can then just add
> simple-bus to the of_bus_ids list and avoid adding umpteen other things.
Hm. Hopefully ePAPR will be released soon.
josh
^ permalink raw reply
* Re: Predefined Compiler Flag for CROSS_COMPILE in ELDK
From: rodolfo @ 2008-05-08 11:46 UTC (permalink / raw)
To: Detlev Zundel; +Cc: linuxppc-embedded
In-Reply-To: <m2tzhjxorq.fsf@ohwell.denx.de>
Detlev,
-mcpu is deprecated:
HOSTCC scripts/basic/fixdep
`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
scripts/basic/fixdep.c:1: error: bad value (405) for -mtune= switch
make[1]: ** [scripts/basic/fixdep] Erro 1
make: ** [scripts_basic] Erro 2
then I put -march=405 and give this errors:
scripts/basic/fixdep.c:1: error: bad value (405) for -march= switch
scripts/basic/fixdep.c:1: error: bad value (405) for -mtune= switch
make[1]: ** [scripts/basic/fixdep] Erro 1
make: ** [scripts_basic] Erro 2
See a piece of my Makefile:
HOSTCC = gcc
HOSTCXX = g++
HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
-march=405
HOSTCXXFLAGS = -O2
How can I do this?
Thanks,
On Wed, 30 Apr 2008 18:59:05 +0200, Detlev Zundel <dzu@denx.de> wrote:
> Hi Rodolfo,
>
>> I using ppc_4xx- cross-compiler for build linux in xup virtex II pro.
>> How can I change -mpcu compiler flag for a specific vallue for my
>> board/processor?
>
> Do the obvious thing - specify it on every command line.
>
> Cheers
> Detlev
>
> --
> "Oh, didn't you know, the Lord did the original programming of the
> universe in
> COBOL." - "That's why the world is the evil work of Satan. A true divine
> being
> would have used Scheme." - "And, if so, Jesus would have been crucified
> on a
> big lambda symbol." -- K. Chafin, K. Schilling & D. Hanley, on
> comp.lang.lisp
> --
> DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu@denx.de
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
^ permalink raw reply
* Running a section of code from internal memory
From: Sanal Kumar V K @ 2008-05-08 11:36 UTC (permalink / raw)
To: linuxppc-embedded
Hi All,
I am porting a GW/router application to embedded Linux for a product
based on SoC; following is the version information:
kernel: 2.6.10
uClibc: 0.9.27
gcc: 3.4.3
binutils: 2.15.94.0.2.2
A small part of the code needs to run from the on-chip "L2 scratch" for
getting optimum performance. I would really appreciate if some could
give me some pointers regarding the following questions:
1. Is #pragma section supported by gcc.
The compiler prints this warning "ignoring #pragma section" and the
pragma is ignored indicating that it is not supported. Is there any way
I can get the pragma working for gcc or any alternative?
2. Is there any patch available to modify the kernel thread creation so
as to place the stack and tcb in the user configured addresses for
kernel threads (similar to taskInit() in VxWorks)?
Thanks in advance,
Sanal
^ permalink raw reply
* [PATCH][v2] Add support for Analogue & Micro ASP837E board
From: Bryan O'Donoghue @ 2008-05-08 12:47 UTC (permalink / raw)
To: linuxppc-dev, Stephen Rothwell, Kumar Gala
Greetings.
Attached is a patchset to support the ASP8347E.
http://www.analogue-micro.com/ASP8347.html. Due to the fact that the board
shipped with a root filesystem that requires devfs, you have to run a different
rootfs with all current kernels. I've been using the 8xx root fs from the ELDK
via NFS, for this.
v2 implements all changes - bar ethernet aliases in the dts, as suggested
by Stephen Rothwell and Kumar Gala, to date.
Please apply.
Cheers,
Bryan
Signed-off-by: Bryan O'Donoghue <bodonoghue@codehermit.ie>
---
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 73f3fd8..d94285f 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -64,7 +64,8 @@ src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c
cuboot-bamboo.c cuboot-mpc7448hpc2.c cuboot-taishan.c \
fixed-head.S ep88xc.c ep405.c \
cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \
- cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c
+ cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c \
+ redboot-83xx.c
src-boot := $(src-wlib) $(src-plat) empty.c
src-boot := $(addprefix $(obj)/, $(src-boot))
@@ -240,6 +241,7 @@ image-$(CONFIG_MPC834x_ITX) += cuImage.mpc8349emitx \
cuImage.mpc8349emitxgp
image-$(CONFIG_MPC834x_MDS) += cuImage.mpc834x_mds
image-$(CONFIG_MPC836x_MDS) += cuImage.mpc836x_mds
+image-$(CONFIG_ASP834x) += dtbImage.asp834x-redboot
# Board ports in arch/powerpc/platform/85xx/Kconfig
image-$(CONFIG_MPC8540_ADS) += cuImage.mpc8540ads
diff --git a/arch/powerpc/boot/dts/asp834x-redboot.dts b/arch/powerpc/boot/dts/asp834x-redboot.dts
new file mode 100644
index 0000000..972cf78
--- /dev/null
+++ b/arch/powerpc/boot/dts/asp834x-redboot.dts
@@ -0,0 +1,247 @@
+/*
+ * Analogue & Micro ASP8347 Device Tree Source
+ *
+ * Copyright 2008 Codehermit
+ *
+ * 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.
+ */
+
+/dts-v1/;
+
+/ {
+ model = "Analogue & Micro ASP8347E";
+ compatible = "analogue-and-micro,asp8347e";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ aliases {
+ ethernet0 = &enet0;
+ ethernet1 = &enet1;
+ serial0 = &serial0;
+ serial1 = &serial1;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ PowerPC,8347@0 {
+ device_type = "cpu";
+ reg = <0x0>;
+ d-cache-line-size = <32>;
+ i-cache-line-size = <32>;
+ d-cache-size = <32768>;
+ i-cache-size = <32768>;
+ timebase-frequency = <0>; // from bootloader
+ bus-frequency = <0>; // from bootloader
+ clock-frequency = <0>; // from bootloader
+ };
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0x00000000 0x8000000>; // 128MB at 0
+ };
+
+ localbus@ff005000 {
+ #address-cells = <2>;
+ #size-cells = <1>;
+ compatible = "fsl,mpc8347e-localbus",
+ "fsl,pq2pro-localbus",
+ "simple-bus";
+ reg = <0xff005000 0x1000>;
+ interrupts = <77 0x8>;
+ interrupt-parent = <&ipic>;
+
+ ranges = <
+ 0 0 0xf0000000 0x02000000
+ >;
+
+ flash@0,0 {
+ compatible = "cfi-flash";
+ reg = <0 0 0x02000000>;
+ bank-width = <2>;
+ device-width = <2>;
+ };
+ };
+
+ soc8349@ff000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ device_type = "soc";
+ ranges = <0x0 0xff000000 0x00100000>;
+ reg = <0xff000000 0x00000200>;
+ bus-frequency = <0>;
+
+ 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";
+ };
+
+ /* 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 = <0x1>;
+ device_type = "ethernet-phy";
+ };
+ phy1: ethernet-phy@1 {
+ interrupt-parent = <&ipic>;
+ interrupts = <18 0x8>;
+ reg = <0x2>;
+ device_type = "ethernet-phy";
+ };
+ };
+
+ enet0: ethernet@24000 {
+ cell-index = <0>;
+ device_type = "network";
+ model = "TSEC";
+ compatible = "gianfar";
+ reg = <0x24000 0x1000>;
+ local-mac-address = [ 00 08 e5 11 32 33 ];
+ 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 08 e5 11 32 34 ];
+ 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 = <400000000>;
+ interrupts = <9 0x8>;
+ interrupt-parent = <&ipic>;
+ };
+
+ serial1: serial@4600 {
+ cell-index = <1>;
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <0x4600 0x100>;
+ clock-frequency = <400000000>;
+ interrupts = <10 0x8>;
+ interrupt-parent = <&ipic>;
+ };
+
+ /* May need to remove if on a part without crypto engine */
+ crypto@30000 {
+ device_type = "crypto";
+ model = "SEC2";
+ compatible = "talitos";
+ reg = <0x30000 0x10000>;
+ interrupts = <11 0x8>;
+ interrupt-parent = <&ipic>;
+ num-channels = <4>;
+ channel-fifo-len = <24>;
+ exec-units-mask = <0x0000007e>;
+ /* desc mask is for rev2.0,
+ * we need runtime fixup for >2.0 */
+ descriptor-types-mask = <0x01010ebf>;
+ };
+
+ /* IPIC
+ * interrupts cell = <intr #, sense>
+ * sense values match linux IORESOURCE_IRQ_* defines:
+ * sense == 8: Level, low assertion
+ * sense == 2: Edge, high-to-low change
+ */
+ ipic: pic@700 {
+ interrupt-controller;
+ #address-cells = <0>;
+ #interrupt-cells = <2>;
+ reg = <0x700 0x100>;
+ device_type = "ipic";
+ };
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,38400 root=/dev/mtdblock3 rootfstype=jffs2";
+ linux,stdout-path = &serial0;
+ };
+
+};
diff --git a/arch/powerpc/boot/redboot-83xx.c b/arch/powerpc/boot/redboot-83xx.c
new file mode 100644
index 0000000..73d8309
--- /dev/null
+++ b/arch/powerpc/boot/redboot-83xx.c
@@ -0,0 +1,60 @@
+/*
+ * RedBoot firmware support
+ *
+ * Author: Scott Wood <scottwood@freescale.com>
+ *
+ * Copyright (c) 2007 Freescale Semiconductor, Inc.
+ * Copyright (c) 2008 Codehermit
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published
+ * by the Free Software Foundation.
+ */
+
+#include "ops.h"
+#include "stdio.h"
+#include "redboot.h"
+#include "fsl-soc.h"
+#include "io.h"
+
+static bd_t bd;
+BSS_STACK(4096);
+
+#define MHZ(x) ((x + 500000) / 1000000)
+
+static void platform_fixups(void)
+{
+ void *node;
+
+ dt_fixup_memory(bd.bi_memstart, bd.bi_memsize);
+ dt_fixup_mac_addresses(bd.bi_enetaddr);
+ dt_fixup_cpu_clocks(bd.bi_intfreq, bd.bi_busfreq / 16, bd.bi_busfreq);
+
+ node = finddevice("/soc/cpm/brg");
+ if (node) {
+ printf("BRG clock-frequency <- 0x%x (%dMHz)\r\n",
+ bd.bi_busfreq, MHZ(bd.bi_busfreq));
+ setprop(node, "clock-frequency", &bd.bi_busfreq, 4);
+ }
+
+}
+
+void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
+ unsigned long r6, unsigned long r7)
+{
+ memcpy(&bd, (char *)r3, sizeof(bd));
+
+ if (bd.bi_tag != 0x42444944)
+ return;
+
+ simple_alloc_init(_end,
+ bd.bi_memstart + bd.bi_memsize - (unsigned long)_end,
+ 32, 64);
+
+ fdt_init(_dtb_start);
+ serial_console_init();
+ platform_ops.fixups = platform_fixups;
+
+ loader_info.cmdline = (char *)bd.bi_cmdline;
+ loader_info.cmdline_len = strlen((char *)bd.bi_cmdline);
+}
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
index 087e120..eebc0eb 100755
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
@@ -171,7 +171,7 @@ cuboot*)
*-mpc824*)
platformo=$object/cuboot-824x.o
;;
- *-mpc83*)
+ *-mpc83*|*-asp834x*)
platformo=$object/cuboot-83xx.o
;;
*-tqm8541|*-mpc8560*|*-tqm8560|*-tqm8555|*-ksi8560*)
@@ -199,6 +199,10 @@ adder875-redboot)
platformo="$object/fixed-head.o $object/redboot-8xx.o"
binary=y
;;
+asp834x-redboot)
+ platformo="$object/fixed-head.o $object/redboot-83xx.o"
+ binary=y
+ ;;
esac
vmz="$tmpdir/`basename \"$kernel\"`.$ext"
diff --git a/arch/powerpc/configs/asp8347_defconfig b/arch/powerpc/configs/asp8347_defconfig
new file mode 100644
index 0000000..60bb4d1
--- /dev/null
+++ b/arch/powerpc/configs/asp8347_defconfig
@@ -0,0 +1,1214 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.25-rc6
+# Tue May 6 02:21:00 2008
+#
+# CONFIG_PPC64 is not set
+
+#
+# Processor support
+#
+CONFIG_6xx=y
+# CONFIG_PPC_85xx is not set
+# CONFIG_PPC_8xx is not set
+# CONFIG_40x is not set
+# CONFIG_44x is not set
+# CONFIG_E200 is not set
+CONFIG_PPC_FPU=y
+CONFIG_FSL_EMB_PERFMON=y
+CONFIG_PPC_STD_MMU=y
+CONFIG_PPC_STD_MMU_32=y
+# CONFIG_PPC_MM_SLICES is not set
+# CONFIG_SMP is not set
+CONFIG_PPC32=y
+CONFIG_WORD_SIZE=32
+CONFIG_PPC_MERGE=y
+CONFIG_MMU=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_HARDIRQS=y
+# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
+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_ARCH_NO_VIRT_TO_BUS is not set
+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_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
+CONFIG_REDBOOT=y
+# CONFIG_PPC_DCR_NATIVE is not set
+# CONFIG_PPC_DCR_MMIO is not set
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+CONFIG_GROUP_SCHED=y
+# CONFIG_FAIR_GROUP_SCHED is not set
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES 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 is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+# CONFIG_EPOLL is not set
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+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 is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG 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"
+CONFIG_CLASSIC_RCU=y
+
+#
+# Platform support
+#
+# CONFIG_PPC_MULTIPLATFORM is not set
+# CONFIG_PPC_82xx is not set
+CONFIG_PPC_83xx=y
+# CONFIG_PPC_86xx is not set
+# CONFIG_PPC_MPC512x is not set
+# CONFIG_PPC_MPC5121 is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PQ2ADS is not set
+CONFIG_MPC83xx=y
+# CONFIG_MPC831x_RDB is not set
+# CONFIG_MPC832x_MDS is not set
+# CONFIG_MPC832x_RDB is not set
+# CONFIG_MPC834x_MDS is not set
+# CONFIG_MPC834x_ITX is not set
+# CONFIG_MPC836x_MDS is not set
+# CONFIG_MPC837x_MDS is not set
+# CONFIG_MPC837x_RDB is not set
+# CONFIG_SBC834x is not set
+CONFIG_ASP834x=y
+CONFIG_PPC_MPC834x=y
+CONFIG_IPIC=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_FSL_ULI1575 is not set
+
+#
+# Kernel options
+#
+# CONFIG_HIGHMEM is not set
+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_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+# CONFIG_SCHED_HRTICK is not set
+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_IOMMU_HELPER is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_HAS_WALK_MEMORY=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=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_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_PROC_DEVICETREE=y
+# CONFIG_CMDLINE_BOOL is not set
+# CONFIG_PM is not set
+CONFIG_SECCOMP=y
+CONFIG_ISA_DMA_API=y
+
+#
+# Bus options
+#
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_PPC_INDIRECT_PCI=y
+CONFIG_FSL_SOC=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_SYSCALL=y
+# CONFIG_PCIEPORTBUS is not set
+CONFIG_ARCH_SUPPORTS_MSI=y
+# CONFIG_PCI_MSI is not set
+CONFIG_PCI_LEGACY=y
+# 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=0xc0000000
+CONFIG_BOOT_LOAD=0x00800000
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# 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_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+# 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=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+# CONFIG_INET_LRO 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
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# 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
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN 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
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+CONFIG_MTD_REDBOOT_PARTS=y
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+CONFIG_MTD_OF_PARTS=y
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_PHYSMAP_OF=y
+# CONFIG_MTD_INTEL_VR_NOR is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+CONFIG_OF_DEVICE=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# 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=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=32768
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_PHANTOM is not set
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_IEEE1394 is not set
+# CONFIG_I2O is not set
+# CONFIG_MACINTOSH_DRIVERS is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_ARCNET is not set
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_FIXED_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_NET_TULIP is not set
+# CONFIG_HP100 is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_NET_PCI is not set
+# CONFIG_B44 is not set
+CONFIG_NETDEV_1000=y
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_E1000E is not set
+# CONFIG_E1000E_ENABLED is not set
+# CONFIG_IP1000 is not set
+# CONFIG_IGB 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_VIA_VELOCITY is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+CONFIG_GIANFAR=y
+# CONFIG_GFAR_NAPI is not set
+# CONFIG_QLA3XXX is not set
+# CONFIG_ATL1 is not set
+# CONFIG_NETDEV_10000 is not set
+# CONFIG_TR is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# 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_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC 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
+# CONFIG_NOZOMI is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED 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 is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+CONFIG_GEN_RTC=y
+# CONFIG_GEN_RTC_X is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVPORT=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_I810 is not set
+# CONFIG_I2C_PIIX4 is not set
+CONFIG_I2C_MPC=y
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_PROSAVAGE is not set
+# CONFIG_I2C_SAVAGE4 is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_TINY_USB is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+# CONFIG_I2C_VOODOO3 is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7473 is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_I5K_AMB is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+CONFIG_THERMAL=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_83xx_WDT=y
+
+#
+# PCI-based Watchdog Cards
+#
+# CONFIG_PCIPCWATCHDOG is not set
+# CONFIG_WDTPCI is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB 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
+# CONFIG_USB_DABUSB is not set
+
+#
+# Graphics support
+#
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+# CONFIG_FB is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+# CONFIG_HID_SUPPORT is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+CONFIG_USB_DEVICE_CLASS=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_EHCI_FSL=y
+CONFIG_USB_EHCI_HCD_PPC_OF=y
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_OHCI_HCD is not set
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# may also be needed; see USB_STORAGE Help for more information
+#
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+CONFIG_USB_MON=y
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGET is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_GADGET is not set
+# CONFIG_MMC is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_INFINIBAND is not set
+# CONFIG_EDAC is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+
+#
+# Conflicting RTC option has been selected, check GEN_RTC and RTC
+#
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+CONFIG_RTC_DRV_DS1374=y
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_DMADEVICES is not set
+
+#
+# Userspace I/O
+#
+# CONFIG_UIO is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+CONFIG_FS_MBCACHE=y
+# 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_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# 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_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_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V4=y
+# 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_GSS=y
+# CONFIG_SUNRPC_BIND34 is not set
+CONFIG_RPCSEC_GSS_KRB5=y
+# 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
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+# CONFIG_MSDOS_PARTITION is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM 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_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_HAVE_LMB=y
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_KERNEL is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_SAMPLES is not set
+# CONFIG_PPC_EARLY_DEBUG is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_BLKCIPHER=y
+# CONFIG_CRYPTO_SEQIV is not set
+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=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_PCBC=m
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_XTS is not set
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_CCM 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_SEED is not set
+# CONFIG_CRYPTO_SALSA20 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
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_LZO is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_HIFN_795X is not set
+# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/platforms/83xx/Kconfig b/arch/powerpc/platforms/83xx/Kconfig
index 13587e2..583b0c7 100644
--- a/arch/powerpc/platforms/83xx/Kconfig
+++ b/arch/powerpc/platforms/83xx/Kconfig
@@ -79,6 +79,15 @@ config SBC834x
help
This option enables support for the Wind River SBC834x board.
+config ASP834x
+ bool "Analogue & Micro ASP 834x"
+ select PPC_MPC834x
+ select REDBOOT
+ help
+ This enables support for the Analogue & Micro ASP 83xx
+ board.
+
+
endif
# used for usb
diff --git a/arch/powerpc/platforms/83xx/Makefile b/arch/powerpc/platforms/83xx/Makefile
index 7e6dd3e..76494be 100644
--- a/arch/powerpc/platforms/83xx/Makefile
+++ b/arch/powerpc/platforms/83xx/Makefile
@@ -12,3 +12,4 @@ obj-$(CONFIG_MPC832x_MDS) += mpc832x_mds.o
obj-$(CONFIG_MPC837x_MDS) += mpc837x_mds.o
obj-$(CONFIG_SBC834x) += sbc834x.o
obj-$(CONFIG_MPC837x_RDB) += mpc837x_rdb.o
+obj-$(CONFIG_ASP834x) += asp834x.o
diff --git a/arch/powerpc/platforms/83xx/asp834x.c b/arch/powerpc/platforms/83xx/asp834x.c
new file mode 100644
index 0000000..d86bf5f
--- /dev/null
+++ b/arch/powerpc/platforms/83xx/asp834x.c
@@ -0,0 +1,108 @@
+/*
+ * arch/powerpc/platforms/83xx/asp834x.c
+ *
+ * Analogue & Micro ASP8347 board specific routines
+ * clone of mpc834x_itx
+ *
+ * Copyright 2008 Codehermit
+ *
+ * Maintainer: Bryan O'Donoghue <bodonoghue@codhermit.ie>
+ *
+ * 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/stddef.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/errno.h>
+#include <linux/reboot.h>
+#include <linux/pci.h>
+#include <linux/kdev_t.h>
+#include <linux/major.h>
+#include <linux/console.h>
+#include <linux/delay.h>
+#include <linux/seq_file.h>
+#include <linux/root_dev.h>
+#include <linux/of_platform.h>
+
+#include <asm/system.h>
+#include <asm/atomic.h>
+#include <asm/time.h>
+#include <asm/io.h>
+#include <asm/machdep.h>
+#include <asm/ipic.h>
+#include <asm/irq.h>
+#include <asm/prom.h>
+#include <asm/udbg.h>
+#include <sysdev/fsl_soc.h>
+
+#include "mpc83xx.h"
+
+/* ************************************************************************
+ *
+ * Setup the architecture
+ *
+ */
+static void __init asp834x_setup_arch(void)
+{
+ if (ppc_md.progress)
+ ppc_md.progress("asp834x_setup_arch()", 0);
+
+ mpc834x_usb_cfg();
+}
+
+static void __init asp834x_init_IRQ(void)
+{
+ struct device_node *np;
+
+ np = of_find_node_by_type(NULL, "ipic");
+ if (!np)
+ return;
+
+ ipic_init(np, 0);
+
+ of_node_put(np);
+
+ /* Initialize the default interrupt mapping priorities,
+ * in case the boot rom changed something on us.
+ */
+ ipic_set_default_priority();
+}
+
+static struct __initdata of_device_id asp8347_ids[] = {
+ { .type = "soc", },
+ { .compatible = "soc", },
+ { .compatible = "simple-bus", },
+ {},
+};
+
+static int __init asp8347_declare_of_platform_devices(void)
+{
+ of_platform_bus_probe(NULL, asp8347_ids, NULL);
+ return 0;
+}
+machine_device_initcall(asp834x, asp8347_declare_of_platform_devices);
+
+/*
+ * Called very early, MMU is off, device-tree isn't unflattened
+ */
+static int __init asp834x_probe(void)
+{
+ unsigned long root = of_get_flat_dt_root();
+ return of_flat_dt_is_compatible(root, "analogue-and-micro,asp8347e");
+}
+
+define_machine(asp834x) {
+ .name = "ASP8347E",
+ .probe = asp834x_probe,
+ .setup_arch = asp834x_setup_arch,
+ .init_IRQ = asp834x_init_IRQ,
+ .get_irq = ipic_get_irq,
+ .restart = mpc83xx_restart,
+ .time_init = mpc83xx_time_init,
+ .calibrate_decr = generic_calibrate_decr,
+ .progress = udbg_progress,
+};
^ permalink raw reply related
* Re: Running a section of code from internal memory
From: Marco Stornelli @ 2008-05-08 12:45 UTC (permalink / raw)
To: Sanal Kumar V K; +Cc: linuxppc-embedded
In-Reply-To: <4822E5CE.3090701@centillium.com>
Sanal Kumar V K ha scritto:
> Hi All,
>
> I am porting a GW/router application to embedded Linux for a product
> based on SoC; following is the version information:
>
> kernel: 2.6.10
> uClibc: 0.9.27
> gcc: 3.4.3
> binutils: 2.15.94.0.2.2
>
> A small part of the code needs to run from the on-chip "L2 scratch" for
> getting optimum performance. I would really appreciate if some could
> give me some pointers regarding the following questions:
>
> 1. Is #pragma section supported by gcc.
> The compiler prints this warning "ignoring #pragma section" and the
> pragma is ignored indicating that it is not supported. Is there any way
> I can get the pragma working for gcc or any alternative?
>
> 2. Is there any patch available to modify the kernel thread creation so
> as to place the stack and tcb in the user configured addresses for
> kernel threads (similar to taskInit() in VxWorks)?
>
> Thanks in advance,
> Sanal
>
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
I think at application level you can use the #pragma directive but I'm
sure that you can't use this directive at kernel level.
^ permalink raw reply
* Re: jffs2 and unaligned access
From: Detlev Zundel @ 2008-05-08 13:19 UTC (permalink / raw)
To: linuxppc-dev; +Cc: linux-mtd
In-Reply-To: <9146b2e7fde34e912d20e6ea954bb067@kernel.crashing.org>
Hi,
>>> memcpy_from/to_io() use word aligned accesses on the io side of
>>> memory.
>>> The MPC5200 local plus bus where our flashes are connected does not
>>> allow unaligned accesses, so we have to use the io versions of memcpy.
>>
>> But this region of flash is marked as suitable for execute-in-place,
>> otherwise the point() function wouldn't be working to give a direct
>> pointer to it. It sounds like we shouldn't be allowing that.
>>
>> Which in turn means that perhaps we should have a property in the
>> corresponding node in the device-tree which indicates that it's not
>> suitable for direct access?
>
> This isn't usually a property of the flash device, but of the various
> buses/controllers above the flash device.
I wholeheartedly agree. After all, its the Local+ bus playing games
here. And fixing that for JFFS2 only ignores that other devices can
*and will* be connected on this bus. Unaligned accesses to such devices
will also fail (likely from mtd unrelated code) - and fail silently,
taking quite a while to figure out what is going wrong where.
> The device tree should mimic reality (and it does, it just seems the
> kernel doesn't use this information yet?)
How is this exactly supposed to work?
Cheers
Detlev
--
In the topologic hell the beer is packed in Klein's bottles.
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu@denx.de
^ permalink raw reply
* Re: All your drivers are belong to us
From: Detlev Zundel @ 2008-05-08 13:28 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <20080507194957.47abb103@zod.rchland.ibm.com>
Hi,
> On Wed, 7 May 2008 17:42:51 -0400
> Sean MacLennan <smaclennan@pikatech.com> wrote:
>
>> On Wed, 07 May 2008 16:36:30 +0200
>> "Detlev Zundel" <dzu@denx.de> wrote:
>>
>> > It also happened that a driver once posted for what the customer
>> > thought was a completely specific device of his own today supports
>> > lots of different boards from at least four different manufacturers."
>> >
>> > The wording is of course not exact but I hope I caught the spirit of
>> > what Greg wanted to say. So yes, please post the driver - maybe Greg
>> > KH will tunnel it into mainline...
>>
>> I agree with the sentiment. However, it is hard enough to get
>> legitimate drivers into the kernel. The drivers I mentioned do not
>> come close to following the Linux kernel coding spec.
>
> Here's the cool part. There's this Linux driver project:
>
> http://www.linuxdriverproject.org/twiki/bin/view
>
> where they can take drivers like that and clean them up. At least to a
> reasonable degree. The benefit for you is that once it's cleaned up,
> it can go into the mainline kernel and it will just be there in future
> releases. Helpful when you update.
Yes, I should have mentioned this also in my original mail. If I
remember correctly, Greg mentioned that in this project, he has *300*
developers waiting to do something. None of the companies previously
claiming Linux had a driver problem showed up even when he contacted
them directly....
> Now, I can't say I've personally ever used that project but its mission
> does seem pretty targeted towards groups that want to do the right
> thing with respect to drivers. Maybe you could give it a shot and tell
> others about the experience.
This would definitely be interesting.
Cheers
Detlev
--
-- Question authority!
-- Yeah, says who?
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu@denx.de
^ permalink raw reply
* remove duplicated include
From: Huang Weiyi @ 2008-05-08 13:34 UTC (permalink / raw)
To: benh; +Cc: linuxppc-dev
Removed duplicated include file <asm/prom.h> in powerpc/kernel/btext.c.
Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
--- a/powerpc/kernel/btext.c 2008-05-08 21:20:20.000000000 +0800
+++ b/powerpc/kernel/btext.c 2008-05-08 21:20:38.000000000 +0800
@@ -16,7 +16,6 @@
#include <asm/mmu.h>
#include <asm/pgtable.h>
#include <asm/io.h>
-#include <asm/prom.h>
#include <asm/processor.h>
#include <asm/udbg.h>
^ permalink raw reply
* [PATCH v2] [POWERPC] Fix bootwrapper builds with newer gcc versions
From: Kumar Gala @ 2008-05-08 14:06 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev
GCC 4.4.x looks to be adding support for generating out-of-line register
saves/restores based on:
http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01678.html
This breaks the bootwrapper as we'd need to link with libgcc to get the
implementation of the register save/restores.
To workaround this issue, we just stole the save/restore code from gcc
and simplified it down for our needs (integer only).
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
e500 toolchains use a slightly different function name for the save/restore
stubs, go figure (support both).
- k
arch/powerpc/boot/Makefile | 2 +-
arch/powerpc/boot/crtsavres.S | 233 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 234 insertions(+), 1 deletions(-)
create mode 100644 arch/powerpc/boot/crtsavres.S
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 7822d25..77645a3 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -51,7 +51,7 @@ $(addprefix $(obj)/,$(zlib) gunzip_util.o main.o): \
$(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader))
src-libfdt := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c
-src-wlib := string.S crt0.S stdio.c main.c \
+src-wlib := string.S crt0.S crtsavres.S stdio.c main.c \
$(addprefix libfdt/,$(src-libfdt)) libfdt-wrapper.c \
ns16550.c serial.c simple_alloc.c div64.S util.S \
gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
diff --git a/arch/powerpc/boot/crtsavres.S b/arch/powerpc/boot/crtsavres.S
new file mode 100644
index 0000000..6bac266
--- /dev/null
+++ b/arch/powerpc/boot/crtsavres.S
@@ -0,0 +1,233 @@
+/*
+ * Special support for eabi and SVR4
+ *
+ * Copyright (C) 1995, 1996, 1998, 2000, 2001 Free Software Foundation, Inc.
+ * Written By Michael Meissner
+ * 64-bit support written by David Edelsohn
+ *
+ * This file 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, or (at your option) any
+ * later version.
+ *
+ * In addition to the permissions in the GNU General Public License, the
+ * Free Software Foundation gives you unlimited permission to link the
+ * compiled version of this file with other programs, and to distribute
+ * those programs without any restriction coming from the use of this
+ * file. (The General Public License restrictions do apply in other
+ * respects; for example, they cover modification of the file, and
+ * distribution when not linked into another program.)
+ *
+ * This file is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; see the file COPYING. If not, write to
+ * the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ * As a special exception, if you link this library with files
+ * compiled with GCC to produce an executable, this does not cause
+ * the resulting executable to be covered by the GNU General Public License.
+ * This exception does not however invalidate any other reasons why
+ * the executable file might be covered by the GNU General Public License.
+ */
+
+/* Do any initializations needed for the eabi environment */
+
+ .file "crtsavres.S"
+ .section ".text"
+
+/* On PowerPC64 Linux, these functions are provided by the linker. */
+#ifndef __powerpc64__
+
+#define FUNC_START(name) \
+ .type name,@function; \
+ .globl name; \
+name:
+
+/* Routines for saving integer registers, called by the compiler. */
+/* Called with r11 pointing to the stack header word of the caller of the */
+/* function, just beyond the end of the integer save area. */
+
+FUNC_START(_savegpr_14)
+FUNC_START(_save32gpr_14)
+ stw 14,-72(11) /* save gp registers */
+FUNC_START(_savegpr_15)
+FUNC_START(_save32gpr_15)
+ stw 15,-68(11)
+FUNC_START(_savegpr_16)
+FUNC_START(_save32gpr_16)
+ stw 16,-64(11)
+FUNC_START(_savegpr_17)
+FUNC_START(_save32gpr_17)
+ stw 17,-60(11)
+FUNC_START(_savegpr_18)
+FUNC_START(_save32gpr_18)
+ stw 18,-56(11)
+FUNC_START(_savegpr_19)
+FUNC_START(_save32gpr_19)
+ stw 19,-52(11)
+FUNC_START(_savegpr_20)
+FUNC_START(_save32gpr_20)
+ stw 20,-48(11)
+FUNC_START(_savegpr_21)
+FUNC_START(_save32gpr_21)
+ stw 21,-44(11)
+FUNC_START(_savegpr_22)
+FUNC_START(_save32gpr_22)
+ stw 22,-40(11)
+FUNC_START(_savegpr_23)
+FUNC_START(_save32gpr_23)
+ stw 23,-36(11)
+FUNC_START(_savegpr_24)
+FUNC_START(_save32gpr_24)
+ stw 24,-32(11)
+FUNC_START(_savegpr_25)
+FUNC_START(_save32gpr_25)
+ stw 25,-28(11)
+FUNC_START(_savegpr_26)
+FUNC_START(_save32gpr_26)
+ stw 26,-24(11)
+FUNC_START(_savegpr_27)
+FUNC_START(_save32gpr_27)
+ stw 27,-20(11)
+FUNC_START(_savegpr_28)
+FUNC_START(_save32gpr_28)
+ stw 28,-16(11)
+FUNC_START(_savegpr_29)
+FUNC_START(_save32gpr_29)
+ stw 29,-12(11)
+FUNC_START(_savegpr_30)
+FUNC_START(_save32gpr_30)
+ stw 30,-8(11)
+FUNC_START(_savegpr_31)
+FUNC_START(_save32gpr_31)
+ stw 31,-4(11)
+ blr
+
+/* Routines for restoring integer registers, called by the compiler. */
+/* Called with r11 pointing to the stack header word of the caller of the */
+/* function, just beyond the end of the integer restore area. */
+
+FUNC_START(_restgpr_14)
+FUNC_START(_rest32gpr_14)
+ lwz 14,-72(11) /* restore gp registers */
+FUNC_START(_restgpr_15)
+FUNC_START(_rest32gpr_15)
+ lwz 15,-68(11)
+FUNC_START(_restgpr_16)
+FUNC_START(_rest32gpr_16)
+ lwz 16,-64(11)
+FUNC_START(_restgpr_17)
+FUNC_START(_rest32gpr_17)
+ lwz 17,-60(11)
+FUNC_START(_restgpr_18)
+FUNC_START(_rest32gpr_18)
+ lwz 18,-56(11)
+FUNC_START(_restgpr_19)
+FUNC_START(_rest32gpr_19)
+ lwz 19,-52(11)
+FUNC_START(_restgpr_20)
+FUNC_START(_rest32gpr_20)
+ lwz 20,-48(11)
+FUNC_START(_restgpr_21)
+FUNC_START(_rest32gpr_21)
+ lwz 21,-44(11)
+FUNC_START(_restgpr_22)
+FUNC_START(_rest32gpr_22)
+ lwz 22,-40(11)
+FUNC_START(_restgpr_23)
+FUNC_START(_rest32gpr_23)
+ lwz 23,-36(11)
+FUNC_START(_restgpr_24)
+FUNC_START(_rest32gpr_24)
+ lwz 24,-32(11)
+FUNC_START(_restgpr_25)
+FUNC_START(_rest32gpr_25)
+ lwz 25,-28(11)
+FUNC_START(_restgpr_26)
+FUNC_START(_rest32gpr_26)
+ lwz 26,-24(11)
+FUNC_START(_restgpr_27)
+FUNC_START(_rest32gpr_27)
+ lwz 27,-20(11)
+FUNC_START(_restgpr_28)
+FUNC_START(_rest32gpr_28)
+ lwz 28,-16(11)
+FUNC_START(_restgpr_29)
+FUNC_START(_rest32gpr_29)
+ lwz 29,-12(11)
+FUNC_START(_restgpr_30)
+FUNC_START(_rest32gpr_30)
+ lwz 30,-8(11)
+FUNC_START(_restgpr_31)
+FUNC_START(_rest32gpr_31)
+ lwz 31,-4(11)
+ blr
+
+/* Routines for restoring integer registers, called by the compiler. */
+/* Called with r11 pointing to the stack header word of the caller of the */
+/* function, just beyond the end of the integer restore area. */
+
+FUNC_START(_restgpr_14_x)
+FUNC_START(_rest32gpr_14_x)
+ lwz 14,-72(11) /* restore gp registers */
+FUNC_START(_restgpr_15_x)
+FUNC_START(_rest32gpr_15_x)
+ lwz 15,-68(11)
+FUNC_START(_restgpr_16_x)
+FUNC_START(_rest32gpr_16_x)
+ lwz 16,-64(11)
+FUNC_START(_restgpr_17_x)
+FUNC_START(_rest32gpr_17_x)
+ lwz 17,-60(11)
+FUNC_START(_restgpr_18_x)
+FUNC_START(_rest32gpr_18_x)
+ lwz 18,-56(11)
+FUNC_START(_restgpr_19_x)
+FUNC_START(_rest32gpr_19_x)
+ lwz 19,-52(11)
+FUNC_START(_restgpr_20_x)
+FUNC_START(_rest32gpr_20_x)
+ lwz 20,-48(11)
+FUNC_START(_restgpr_21_x)
+FUNC_START(_rest32gpr_21_x)
+ lwz 21,-44(11)
+FUNC_START(_restgpr_22_x)
+FUNC_START(_rest32gpr_22_x)
+ lwz 22,-40(11)
+FUNC_START(_restgpr_23_x)
+FUNC_START(_rest32gpr_23_x)
+ lwz 23,-36(11)
+FUNC_START(_restgpr_24_x)
+FUNC_START(_rest32gpr_24_x)
+ lwz 24,-32(11)
+FUNC_START(_restgpr_25_x)
+FUNC_START(_rest32gpr_25_x)
+ lwz 25,-28(11)
+FUNC_START(_restgpr_26_x)
+FUNC_START(_rest32gpr_26_x)
+ lwz 26,-24(11)
+FUNC_START(_restgpr_27_x)
+FUNC_START(_rest32gpr_27_x)
+ lwz 27,-20(11)
+FUNC_START(_restgpr_28_x)
+FUNC_START(_rest32gpr_28_x)
+ lwz 28,-16(11)
+FUNC_START(_restgpr_29_x)
+FUNC_START(_rest32gpr_29_x)
+ lwz 29,-12(11)
+FUNC_START(_restgpr_30_x)
+FUNC_START(_rest32gpr_30_x)
+ lwz 30,-8(11)
+FUNC_START(_restgpr_31_x)
+FUNC_START(_rest32gpr_31_x)
+ lwz 0,4(11)
+ lwz 31,-4(11)
+ mtlr 0
+ mr 1,11
+ blr
+#endif
--
1.5.4.1
^ permalink raw reply related
* Re: How to link a .o with all modules
From: Kumar Gala @ 2008-05-08 14:16 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: linuxppc-dev@ozlabs.org list, lkml List
In-Reply-To: <20080505204449.GA9446@uranus.ravnborg.org>
On May 5, 2008, at 3:44 PM, Sam Ravnborg wrote:
>>>
>>>
>>> Let me know if this does address your question.
>>
>> The problem is MODPOST complains about undefined symbols:
>>
>> MODPOST 24 modules
>> ERROR: "_restgpr_20_x" [net/key/af_key.ko] undefined!
>> ERROR: "_restgpr_25_x" [net/key/af_key.ko] undefined!
>> ERROR: "_restgpr_30_x" [net/key/af_key.ko] undefined!
>
> I need a bit more context to try to analyse this.
> Where did you expect _restgpr_20_x to be defined.
> If in vmlinux then were they present in the
> Module.symvers file?
No they aren't there since we I'm not EXPORT_SYMBOL() them. Should I
also be doing EXPORT_SYMBOL?
> If in the linked in .o file - could you
> see the symbols using objdump.
Yes.
readelf -a:
...
Symbol table '.symtab' contains 113 entries:
Num: Value Size Type Bind Vis Ndx Name
...
5: 00000000 0 FUNC GLOBAL DEFAULT 1 _savegpr_14
6: 00000000 0 FUNC GLOBAL DEFAULT 1 _save32gpr_14
...
>
>
> etc.
>
> Sorry - not much help right away.
>
> PS. Travelling - do not expect responses until the
> weekend.
np.
>
>
> Sam
^ permalink raw reply
* [RFC PATCH 0/3] Board-specific PCI fixups [was: Re: [PATCH 2/2] [POWERPC] 86xx: mpc8610_hpcd: add support for ULI RTC]
From: Anton Vorontsov @ 2008-05-08 14:20 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev
On Mon, May 05, 2008 at 02:11:30PM -0500, Kumar Gala wrote:
>
> On May 5, 2008, at 1:56 PM, Anton Vorontsov wrote:
>
>> The ULI "Super South Bridge" contains ISA bridge to the legacy
>> devices, such as Super IO mouse/keyboard/floppy disk controllers,
>> parallel port, i8259 interrupt controller and so on.
>>
>> On the MPC8610HPCD, i8259 seems to be disabled (mpc8610_hpcd.c
>> confirms this), and other peripherals are not traced out.
>> So we use only RTC.
>>
>> This patch also adds ULI quirk to make RTC actually work (this
>> quirk differs a bit from the one in the fsl_uli1575.c).
>
> Can we just one quick for both?
Probably yes, but fsl_uli1575 needs some other changes for this.
This series fully tested on MPC8610HPCD, and build-tested for
MPC85xxDS and MPC8641HPCN.
--
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2
^ permalink raw reply
* [PATCH 1/3] [POWERPC] implement machine specific PCI fixup calls
From: Anton Vorontsov @ 2008-05-08 14:20 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev
In-Reply-To: <20080508142005.GA6749@polina.dev.rtsoft.ru>
These are similar to machine_initcalls, but works for the PCI fixups.
We need this to apply machine specific fixups for the same PCI devices.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---
include/asm-powerpc/pci.h | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/include/asm-powerpc/pci.h b/include/asm-powerpc/pci.h
index a05a942..03fdc58 100644
--- a/include/asm-powerpc/pci.h
+++ b/include/asm-powerpc/pci.h
@@ -224,5 +224,21 @@ extern void pci_resource_to_user(const struct pci_dev *dev, int bar,
extern void pcibios_do_bus_setup(struct pci_bus *bus);
extern void pcibios_fixup_of_probed_bus(struct pci_bus *bus);
+#define DEFINE_MACHINE_PCIFIXUP(type, mach, vendor, device, hook) \
+ static void __devinit \
+ __machine_pcifixup_##mach##_##hook(struct pci_dev *dev) { \
+ if (machine_is(mach)) \
+ hook(dev); \
+ } \
+ DECLARE_PCI_FIXUP_##type(vendor, device, \
+ __machine_pcifixup_##mach##_##hook)
+
+#define MACH_PCI_FIXUP_EARLY(mach, vendor, device, hook) \
+ DEFINE_MACHINE_PCIFIXUP(EARLY, mach, vendor, device, hook)
+#define MACH_PCI_FIXUP_FINAL(mach, vendor, device, hook) \
+ DEFINE_MACHINE_PCIFIXUP(FINAL, mach, vendor, device, hook)
+#define MACH_PCI_FIXUP_HEADER(mach, vendor, device, hook) \
+ DEFINE_MACHINE_PCIFIXUP(HEADER, mach, vendor, device, hook)
+
#endif /* __KERNEL__ */
#endif /* __ASM_POWERPC_PCI_H */
--
1.5.5.1
^ permalink raw reply related
* [PATCH 2/3] [POWERPC] turn fsl_uli1575 into PCI fixups library
From: Anton Vorontsov @ 2008-05-08 14:20 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev
In-Reply-To: <20080508142005.GA6749@polina.dev.rtsoft.ru>
With this patch we can choose which ULI fixups we want to apply
for the specific boards.
There are no changes to the fixups them selfs.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---
arch/powerpc/platforms/85xx/mpc85xx_ds.c | 11 ++-
arch/powerpc/platforms/86xx/Kconfig | 1 +
arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 90 ++-----------------------
arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 12 ++-
arch/powerpc/platforms/fsl_uli1575.c | 100 ++++++++++++++++++++++++----
include/asm-powerpc/fsl_uli1575.h | 36 ++++++++++
6 files changed, 145 insertions(+), 105 deletions(-)
create mode 100644 include/asm-powerpc/fsl_uli1575.h
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
index dfd8b4a..961a6d7 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
@@ -29,6 +29,7 @@
#include <asm/prom.h>
#include <asm/udbg.h>
#include <asm/mpic.h>
+#include <asm/fsl_uli1575.h>
#include <asm/i8259.h>
#include <sysdev/fsl_soc.h>
@@ -114,9 +115,6 @@ void __init mpc85xx_ds_pic_init(void)
#ifdef CONFIG_PCI
static int primary_phb_addr;
-extern int uses_fsl_uli_m1575;
-extern int uli_exclude_device(struct pci_controller *hose,
- u_char bus, u_char devfn);
static int mpc85xx_exclude_device(struct pci_controller *hose,
u_char bus, u_char devfn)
@@ -133,6 +131,13 @@ static int mpc85xx_exclude_device(struct pci_controller *hose,
return PCIBIOS_SUCCESSFUL;
}
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AL, 0x5249, early_uli5249);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, quirk_uli1575);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x5249, quirk_final_uli5249);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x1575, quirk_final_uli1575);
#endif /* CONFIG_PCI */
/*
diff --git a/arch/powerpc/platforms/86xx/Kconfig b/arch/powerpc/platforms/86xx/Kconfig
index 053f49a..39c02af 100644
--- a/arch/powerpc/platforms/86xx/Kconfig
+++ b/arch/powerpc/platforms/86xx/Kconfig
@@ -21,6 +21,7 @@ config SBC8641D
config MPC8610_HPCD
bool "Freescale MPC8610 HPCD"
select DEFAULT_UIMAGE
+ select FSL_ULI1575
help
This option enables support for the MPC8610 HPCD board.
diff --git a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
index e415353..2fa672b 100644
--- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
+++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
@@ -34,6 +34,7 @@
#include <asm/udbg.h>
#include <asm/mpic.h>
+#include <asm/fsl_uli1575.h>
#include <linux/of_platform.h>
#include <sysdev/fsl_pci.h>
@@ -224,93 +225,12 @@ static void __init mpc86xx_hpcd_init_irq(void)
}
#ifdef CONFIG_PCI
-static void __devinit quirk_uli1575(struct pci_dev *dev)
-{
- u32 temp32;
-
- /* Disable INTx */
- pci_read_config_dword(dev, 0x48, &temp32);
- pci_write_config_dword(dev, 0x48, (temp32 | 1<<26));
-
- /* Enable sideband interrupt */
- pci_read_config_dword(dev, 0x90, &temp32);
- pci_write_config_dword(dev, 0x90, (temp32 | 1<<22));
-}
-
-static void __devinit quirk_uli5288(struct pci_dev *dev)
-{
- unsigned char c;
- unsigned short temp;
-
- /* Interrupt Disable, Needed when SATA disabled */
- pci_read_config_word(dev, PCI_COMMAND, &temp);
- temp |= 1<<10;
- pci_write_config_word(dev, PCI_COMMAND, temp);
-
- pci_read_config_byte(dev, 0x83, &c);
- c |= 0x80;
- pci_write_config_byte(dev, 0x83, c);
-
- pci_write_config_byte(dev, PCI_CLASS_PROG, 0x01);
- pci_write_config_byte(dev, PCI_CLASS_DEVICE, 0x06);
-
- pci_read_config_byte(dev, 0x83, &c);
- c &= 0x7f;
- pci_write_config_byte(dev, 0x83, c);
-}
-
-/*
- * Since 8259PIC was disabled on the board, the IDE device can not
- * use the legacy IRQ, we need to let the IDE device work under
- * native mode and use the interrupt line like other PCI devices.
- * IRQ14 is a sideband interrupt from IDE device to CPU and we use this
- * as the interrupt for IDE device.
- */
-static void __devinit quirk_uli5229(struct pci_dev *dev)
-{
- unsigned char c;
-
- pci_read_config_byte(dev, 0x4b, &c);
- c |= 0x10;
- pci_write_config_byte(dev, 0x4b, c);
-}
-
-/*
- * SATA interrupt pin bug fix
- * There's a chip bug for 5288, The interrupt pin should be 2,
- * not the read only value 1, So it use INTB#, not INTA# which
- * actually used by the IDE device 5229.
- * As of this bug, during the PCI initialization, 5288 read the
- * irq of IDE device from the device tree, this function fix this
- * bug by re-assigning a correct irq to 5288.
- *
- */
-static void __devinit final_uli5288(struct pci_dev *dev)
-{
- struct pci_controller *hose = pci_bus_to_host(dev->bus);
- struct device_node *hosenode = hose ? hose->dn : NULL;
- struct of_irq oirq;
- int virq, pin = 2;
- u32 laddr[3];
-
- if (!hosenode)
- return;
-
- laddr[0] = (hose->first_busno << 16) | (PCI_DEVFN(31, 0) << 8);
- laddr[1] = laddr[2] = 0;
- of_irq_map_raw(hosenode, &pin, 1, laddr, &oirq);
- virq = irq_create_of_mapping(oirq.controller, oirq.specifier,
- oirq.size);
- dev->irq = virq;
-}
-
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, quirk_uli1575);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229);
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x5288, final_uli5288);
+MACH_PCI_FIXUP_HEADER(mpc86xx_hpcd, PCI_VENDOR_ID_AL, 0x1575, hpcd_quirk_uli1575);
+MACH_PCI_FIXUP_HEADER(mpc86xx_hpcd, PCI_VENDOR_ID_AL, 0x5288, hpcd_quirk_uli5288);
+MACH_PCI_FIXUP_HEADER(mpc86xx_hpcd, PCI_VENDOR_ID_AL, 0x5229, hpcd_quirk_uli5229);
+MACH_PCI_FIXUP_FINAL(mpc86xx_hpcd, PCI_VENDOR_ID_AL, 0x5288, hpcd_final_uli5288);
#endif /* CONFIG_PCI */
-
#if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE)
static u32 get_busfreq(void)
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
index f13704a..4e1ee2e 100644
--- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
@@ -29,6 +29,7 @@
#include <mm/mmu_decl.h>
#include <asm/udbg.h>
#include <asm/i8259.h>
+#include <asm/fsl_uli1575.h>
#include <asm/mpic.h>
@@ -107,10 +108,6 @@ mpc86xx_hpcn_init_irq(void)
}
#ifdef CONFIG_PCI
-extern int uses_fsl_uli_m1575;
-extern int uli_exclude_device(struct pci_controller *hose,
- u_char bus, u_char devfn);
-
static int mpc86xx_exclude_device(struct pci_controller *hose,
u_char bus, u_char devfn)
{
@@ -126,6 +123,13 @@ static int mpc86xx_exclude_device(struct pci_controller *hose,
return PCIBIOS_SUCCESSFUL;
}
+
+MACH_PCI_FIXUP_EARLY(mpc86xx_hpcn, PCI_VENDOR_ID_AL, 0x5249, early_uli5249);
+MACH_PCI_FIXUP_HEADER(mpc86xx_hpcn, PCI_VENDOR_ID_AL, 0x1575, quirk_uli1575);
+MACH_PCI_FIXUP_HEADER(mpc86xx_hpcn, PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288);
+MACH_PCI_FIXUP_HEADER(mpc86xx_hpcn, PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229);
+MACH_PCI_FIXUP_FINAL(mpc86xx_hpcn, PCI_VENDOR_ID_AL, 0x5249, quirk_final_uli5249);
+MACH_PCI_FIXUP_FINAL(mpc86xx_hpcn, PCI_VENDOR_ID_AL, 0x1575, quirk_final_uli1575);
#endif /* CONFIG_PCI */
diff --git a/arch/powerpc/platforms/fsl_uli1575.c b/arch/powerpc/platforms/fsl_uli1575.c
index afc9141..63ea4eb 100644
--- a/arch/powerpc/platforms/fsl_uli1575.c
+++ b/arch/powerpc/platforms/fsl_uli1575.c
@@ -17,6 +17,7 @@
#include <asm/system.h>
#include <asm/pci-bridge.h>
+#include <asm/fsl_uli1575.h>
#define ULI_PIRQA 0x08
#define ULI_PIRQB 0x09
@@ -55,7 +56,7 @@ u8 uli_pirq_to_irq[8] = {
int uses_fsl_uli_m1575;
/* Bridge */
-static void __devinit early_uli5249(struct pci_dev *dev)
+void __devinit early_uli5249(struct pci_dev *dev)
{
unsigned char temp;
@@ -77,8 +78,7 @@ static void __devinit early_uli5249(struct pci_dev *dev)
pci_write_config_byte(dev, 0x7c, temp);
}
-
-static void __devinit quirk_uli1575(struct pci_dev *dev)
+void __devinit quirk_uli1575(struct pci_dev *dev)
{
int i;
@@ -135,7 +135,7 @@ static void __devinit quirk_uli1575(struct pci_dev *dev)
pci_write_config_byte(dev, 0x75, ULI_8259_IRQ15);
}
-static void __devinit quirk_final_uli1575(struct pci_dev *dev)
+void __devinit quirk_final_uli1575(struct pci_dev *dev)
{
/* Set i8259 interrupt trigger
* IRQ 3: Level
@@ -171,7 +171,7 @@ static void __devinit quirk_final_uli1575(struct pci_dev *dev)
}
/* SATA */
-static void __devinit quirk_uli5288(struct pci_dev *dev)
+void __devinit quirk_uli5288(struct pci_dev *dev)
{
unsigned char c;
unsigned int d;
@@ -196,7 +196,7 @@ static void __devinit quirk_uli5288(struct pci_dev *dev)
}
/* PATA */
-static void __devinit quirk_uli5229(struct pci_dev *dev)
+void __devinit quirk_uli5229(struct pci_dev *dev)
{
unsigned short temp;
@@ -212,7 +212,7 @@ static void __devinit quirk_uli5229(struct pci_dev *dev)
}
/* We have to do a dummy read on the P2P for the RTC to work, WTF */
-static void __devinit quirk_final_uli5249(struct pci_dev *dev)
+void __devinit quirk_final_uli5249(struct pci_dev *dev)
{
int i;
u8 *dummy;
@@ -231,12 +231,86 @@ static void __devinit quirk_final_uli5249(struct pci_dev *dev)
}
}
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AL, 0x5249, early_uli5249);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, quirk_uli1575);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229);
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x5249, quirk_final_uli5249);
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x1575, quirk_final_uli1575);
+
+void __devinit hpcd_quirk_uli1575(struct pci_dev *dev)
+{
+ u32 temp32;
+
+ /* Disable INTx */
+ pci_read_config_dword(dev, 0x48, &temp32);
+ pci_write_config_dword(dev, 0x48, (temp32 | 1<<26));
+
+ /* Enable sideband interrupt */
+ pci_read_config_dword(dev, 0x90, &temp32);
+ pci_write_config_dword(dev, 0x90, (temp32 | 1<<22));
+}
+
+void __devinit hpcd_quirk_uli5288(struct pci_dev *dev)
+{
+ unsigned char c;
+ unsigned short temp;
+
+ /* Interrupt Disable, Needed when SATA disabled */
+ pci_read_config_word(dev, PCI_COMMAND, &temp);
+ temp |= 1<<10;
+ pci_write_config_word(dev, PCI_COMMAND, temp);
+
+ pci_read_config_byte(dev, 0x83, &c);
+ c |= 0x80;
+ pci_write_config_byte(dev, 0x83, c);
+
+ pci_write_config_byte(dev, PCI_CLASS_PROG, 0x01);
+ pci_write_config_byte(dev, PCI_CLASS_DEVICE, 0x06);
+
+ pci_read_config_byte(dev, 0x83, &c);
+ c &= 0x7f;
+ pci_write_config_byte(dev, 0x83, c);
+}
+
+/*
+ * Since 8259PIC was disabled on the board, the IDE device can not
+ * use the legacy IRQ, we need to let the IDE device work under
+ * native mode and use the interrupt line like other PCI devices.
+ * IRQ14 is a sideband interrupt from IDE device to CPU and we use this
+ * as the interrupt for IDE device.
+ */
+void __devinit hpcd_quirk_uli5229(struct pci_dev *dev)
+{
+ unsigned char c;
+
+ pci_read_config_byte(dev, 0x4b, &c);
+ c |= 0x10;
+ pci_write_config_byte(dev, 0x4b, c);
+}
+
+/*
+ * SATA interrupt pin bug fix
+ * There's a chip bug for 5288, The interrupt pin should be 2,
+ * not the read only value 1, So it use INTB#, not INTA# which
+ * actually used by the IDE device 5229.
+ * As of this bug, during the PCI initialization, 5288 read the
+ * irq of IDE device from the device tree, this function fix this
+ * bug by re-assigning a correct irq to 5288.
+ *
+ */
+void __devinit hpcd_final_uli5288(struct pci_dev *dev)
+{
+ struct pci_controller *hose = pci_bus_to_host(dev->bus);
+ struct device_node *hosenode = hose ? hose->dn : NULL;
+ struct of_irq oirq;
+ int virq, pin = 2;
+ u32 laddr[3];
+
+ if (!hosenode)
+ return;
+
+ laddr[0] = (hose->first_busno << 16) | (PCI_DEVFN(31, 0) << 8);
+ laddr[1] = laddr[2] = 0;
+ of_irq_map_raw(hosenode, &pin, 1, laddr, &oirq);
+ virq = irq_create_of_mapping(oirq.controller, oirq.specifier,
+ oirq.size);
+ dev->irq = virq;
+}
int uli_exclude_device(struct pci_controller *hose,
u_char bus, u_char devfn)
diff --git a/include/asm-powerpc/fsl_uli1575.h b/include/asm-powerpc/fsl_uli1575.h
new file mode 100644
index 0000000..9755c5c
--- /dev/null
+++ b/include/asm-powerpc/fsl_uli1575.h
@@ -0,0 +1,36 @@
+/*
+ * ULI M1575 setup code - specific to Freescale boards
+ *
+ * Copyright (c) 2007 Freescale Semiconductor Inc.
+ * Copyright (c) 2008 MontaVista Software, Inc.
+ * Anton Vorontsov <avorontsov@ru.mvista.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ */
+
+#ifndef __ASM_POWERPC_FSL_ULI1575_H
+#define __ASM_POWERPC_FSL_ULI1575_H
+
+struct pci_controller;
+struct pci_dev;
+
+extern int uses_fsl_uli_m1575;
+extern int uli_exclude_device(struct pci_controller *hose,
+ u_char bus, u_char devfn);
+
+extern void __devinit early_uli5249(struct pci_dev *dev);
+extern void __devinit quirk_uli1575(struct pci_dev *dev);
+extern void __devinit quirk_final_uli1575(struct pci_dev *dev);
+extern void __devinit quirk_uli5288(struct pci_dev *dev);
+extern void __devinit quirk_uli5229(struct pci_dev *dev);
+extern void __devinit quirk_final_uli5249(struct pci_dev *dev);
+
+extern void __devinit hpcd_quirk_uli1575(struct pci_dev *dev);
+extern void __devinit hpcd_quirk_uli5288(struct pci_dev *dev);
+extern void __devinit hpcd_quirk_uli5229(struct pci_dev *dev);
+extern void __devinit hpcd_final_uli5288(struct pci_dev *dev);
+
+#endif /* __ASM_POWERPC_FSL_ULI1575_H */
--
1.5.5.1
^ permalink raw reply related
* [PATCH 3/3] [POWERPC] fsl_uli1575: change RTC quirk to work on MPC8610HPCD
From: Anton Vorontsov @ 2008-05-08 14:20 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev
In-Reply-To: <20080508142005.GA6749@polina.dev.rtsoft.ru>
Currently fsl_uli1575.c's RTC quirk reads at ->start, but I got the RTC
working on the MPC8610HPCD only when reading at 0xa0100000-0xafffffff,
i.e. memory outside of behind-the-bridge devices' assigned regions.
This patch wasn't tested on the MPC85xxDS and MPC8641HPCN boards, I
don't have any of these.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---
arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 1 +
arch/powerpc/platforms/fsl_uli1575.c | 2 +-
2 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
index 2fa672b..71dbd9d 100644
--- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
+++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
@@ -229,6 +229,7 @@ MACH_PCI_FIXUP_HEADER(mpc86xx_hpcd, PCI_VENDOR_ID_AL, 0x1575, hpcd_quirk_uli1575
MACH_PCI_FIXUP_HEADER(mpc86xx_hpcd, PCI_VENDOR_ID_AL, 0x5288, hpcd_quirk_uli5288);
MACH_PCI_FIXUP_HEADER(mpc86xx_hpcd, PCI_VENDOR_ID_AL, 0x5229, hpcd_quirk_uli5229);
MACH_PCI_FIXUP_FINAL(mpc86xx_hpcd, PCI_VENDOR_ID_AL, 0x5288, hpcd_final_uli5288);
+MACH_PCI_FIXUP_FINAL(mpc86xx_hpcd, PCI_VENDOR_ID_AL, 0x5249, quirk_final_uli5249);
#endif /* CONFIG_PCI */
#if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE)
diff --git a/arch/powerpc/platforms/fsl_uli1575.c b/arch/powerpc/platforms/fsl_uli1575.c
index 63ea4eb..a1b400a 100644
--- a/arch/powerpc/platforms/fsl_uli1575.c
+++ b/arch/powerpc/platforms/fsl_uli1575.c
@@ -221,7 +221,7 @@ void __devinit quirk_final_uli5249(struct pci_dev *dev)
for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) {
if ((bus->resource[i]) &&
(bus->resource[i]->flags & IORESOURCE_MEM)) {
- dummy = ioremap(bus->resource[i]->start, 0x4);
+ dummy = ioremap(bus->resource[i]->end - 3, 0x4);
if (dummy) {
in_8(dummy);
iounmap(dummy);
--
1.5.5.1
^ permalink raw reply related
* xilinx linux on a XUPV2P
From: Dr. Peter Hartmann @ 2008-05-08 13:56 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 859 bytes --]
Hello everybody,
I am trying to get the latest Kernel (2.6.25-rc9) from git.xilinx.com running on
a XUPV2P board. I generated the hardware using JH Kelms step by step list,
skipping points 6-8 and replacing point 9 by a more modern version of doing
this. When I boot the system.ace from the CF card, the bootloader talks to me
over the RS232, but as soon as it tries to boot the kernel it hangs up.
I had 2.6.18-rc3 which I got from somebody else running this way. The reason I
intend to change is the UARTLITE driver, which seems to be included in the
latest kernel tree.
I use Platform Studio 9.1.02i which I also used for the 2.6.18 Kernel.
Has anybody yet got this to work out with 9.1.02i ??
Would it be possible for somebody to give a dummy like me the steps you took to
get it working on your board? I'm really lost here. Thanks!
Thanks in advance!
[-- Attachment #2: hartmann.vcf --]
[-- Type: text/x-vcard, Size: 332 bytes --]
begin:vcard
fn:Dr. Peter Hartmann
n:Hartmann;Dr. Peter
org;quoted-printable:Universit=C3=A4t Dortmund;DELTA
adr;quoted-printable:;;Maria G=C3=B6ppert-Mayer-Str. 2;Dortmund;;44221;Deutschland
email;internet:hartmann@delta.uni-dortmund.de
tel;work:+49 231 755 5374
tel;fax:+49 231 755 5383
x-mozilla-html:FALSE
version:2.1
end:vcard
^ permalink raw reply
* Re: MPC5200b MMC over SPI into PSC6
From: Fabio Tosetto @ 2008-05-08 15:10 UTC (permalink / raw)
To: Grant Likely; +Cc: linuxppc-dev
In-Reply-To: <fa686aa40805070934t77f8b2b0y2799814b4f131bc8@mail.gmail.com>
Ok, maybe it's better to start from the beginning.
Now I'm using a Lite5200b board, just to avoid problems with my
hardware, and I'm trying to have a bootable kernel.
With kernel version 2.6.24.6 I do the following commands
$ make ARCH=powerpc lite5200_defconfig
$ make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- uImage
then I copy the arch/powerpc/boot/uImage and a rootfs.uimage on the
board, but uBoot stops at the beginning:
============================================
U-Boot 1.3.0-g98e2867c-dirty (Feb 7 2008 -
13:26:28)
CPU: MPC5200B v2.2, Core v1.4 at 198
MHz
Bus 132 MHz, IPB 132 MHz, PCI 33
MHz
Board: Freescale
Lite5200B
I2C: 85 kHz,
ready
DRAM: 256
MB
FLASH: 32
MB
PCI: Bus Dev VenId DevId Class
Int
00 1a 1057 5809 0680
00
In:
serial
Out:
serial
Err:
serial
Net: FEC
ETHERNET
IDE: Bus 0:
OK
Device 0: not
available
Device 1: not
available
Type "run flash_nfs" to mount root filesystem over
NFS
Hit any key to stop autoboot:
0
=>
=> usb
start
(Re)start
USB...
USB: scanning bus for devices... 2 USB Device(s)
found
scanning bus for storage devices... 1 Storage Device(s)
found
=> usb
scan
NOTE: this command is obsolete and will be phased
out
please use 'usb storage' for USB storage devices
information
Device 0: Vendor: USB 2.0 Prod.: Flash Disk Rev:
0.00
Type: Removable Hard
Disk
Capacity: 963.9 MB = 0.9 GB (1974271 x
512)
=> fatload usb 0 0x03000000
uImage
reading
uImage
................................................................................
..........................
1091680 bytes
read
=> fatload usb 0 0x04000000
rootfs.uimage
reading
rootfs.uimage
................................................................................
..........
924722 bytes read
=> bootm 0x03000000 0x04000000
---------------------
## Booting image at 03000000
...
Image Name:
Linux-2.6.24.4
Created: 2008-05-08 14:21:24
UTC
Image Type: PowerPC Linux Kernel Image (gzip
compressed)
Data Size: 1091616 Bytes = 1
MB
Load Address:
00000000
Entry Point:
00000000
Verifying Checksum ...
OK
Uncompressing Kernel Image ...
OK
## Loading RAMDisk Image at 04000000
...
Image Name: RamDisk Image
RadioNav
Created: 2007-12-14 16:18:56
UTC
Image Type: PowerPC Linux RAMDisk Image (gzip
compressed)
Data Size: 924658 Bytes = 903
kB
Load Address:
00000000
Entry Point:
00000000
Verifying Checksum ...
OK
Loading Ramdisk to 0fe68000, end 0ff49bf2 ... OK
============================================
So I tried using the deprecated ppc
$ make ARCH=ppc lite5200_defconfig
$ make ARCH=ppc CROSS_COMPILE=powerpc-linux-gnu- uImage
It still doesn't work, but it goes a little further:
=> bootm 0x03000000
0x04000000
## Booting image at 03000000
...
Image Name:
Linux-2.6.24.6
Created: 2008-05-08 14:39:04
UTC
Image Type: PowerPC Linux Kernel Image (gzip
compressed)
Data Size: 776322 Bytes = 758.1
kB
Load Address:
00000000
Entry Point:
00000000
Verifying Checksum ...
OK
Uncompressing Kernel Image ...
OK
## Loading RAMDisk Image at 04000000
...
Image Name: RamDisk Image
RadioNav
Created: 2007-12-14 16:18:56
UTC
Image Type: PowerPC Linux RAMDisk Image (gzip
compressed)
Data Size: 924658 Bytes = 903
kB
Load Address:
00000000
Entry Point:
00000000
Verifying Checksum ...
OK
Loading Ramdisk to 0fe68000, end 0ff49bf2 ...
OK
id mach():
done
MMU:enter
MMU:hw
init
MMU:mapin
MMU:setio
MMU:exit
setup_arch:
enter
setup_arch:
bootmem
arch: exit
============================================
The only way I was able to get something working, even though it sounds
a little strange to me, is loading the config from powerpc folder but
compiling in ppc
$ make ARCH=powerpc lite5200_defconfig
$ make ARCH=ppc CROSS_COMPILE=powerpc-linux-gnu- uImage
=> bootm 0x03000000
0x04000000
## Booting image at 03000000
...
Image Name:
Linux-2.6.24.4
Created: 2008-05-08 14:03:26
UTC
Image Type: PowerPC Linux Kernel Image (gzip
compressed)
Data Size: 1073349 Bytes = 1
MB
Load Address:
00000000
Entry Point:
00000000
Verifying Checksum ...
OK
Uncompressing Kernel Image ...
OK
## Loading RAMDisk Image at 04000000
...
Image Name: RamDisk Image
RadioNav
Created: 2007-12-14 16:18:56
UTC
Image Type: PowerPC Linux RAMDisk Image (gzip
compressed)
Data Size: 924658 Bytes = 903
kB
Load Address:
00000000
Entry Point:
00000000
Verifying Checksum ...
OK
Loading Ramdisk to 0fe68000, end 0ff49bf2 ...
OK
id mach():
done
MMU:enter
MMU:hw
init
MMU:mapin
MMU:setio
MMU:exit
setup_arch:
enter
setup_arch:
bootmem
arch:
exit
[ 0.000000] Linux version 2.6.24.4 (ftosetto@osstlab-build1) (gcc
version 4.1
.2 (Sourcery G++ Lite 4.1-51)) #3 Thu May 8 16:03:21 CEST
2008
[ 0.000000] Zone PFN
ranges:
[ 0.000000] DMA 0 ->
65536
[ 0.000000] Normal 65536 ->
65536
[ 0.000000] Movable zone start PFN for each
node
[ 0.000000] early_node_map[1] active PFN
ranges
[ 0.000000] 0: 0 ->
65536
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on.
Total pag
es:
65024
[ 0.000000] Kernel command
line:
[ 0.000000] PID hash table entries: 1024 (order: 10, 4096
bytes)
[ 91.768263] console [ttyPSC0] enabled
...
Do you have any idea about how to make it working doing all the stuff
with ARCH=powerpc?
Best regards,
Fabio
Grant Likely ha scritto:
> On Wed, May 7, 2008 at 6:49 AM, Fabio Tosetto <tosettofabio83@libero.it> wrote:
>
>> I've tried to port my exesting configurations to the powerpc tree but some
>> configurations files are missing.
>>
>
> First, create a new .dts file for your board in arch/powerpc/boot/dts.
> (just copy the lite5200.dts file). Modify the .dts to have your
> board's name (in the form "<vendor>,<boardname>") in the compatible
> and model properties.
>
> Next, add your boards name to the list of boards in
> arch/powerpc/platforms/52xx/mpc5200_simple.c.
>
>
>> I need to set PSC3 - PSC4 in uart mode:
>> before in file *arch/ppc/platforms/lite5200.c* I added
>>
>> struct mpc52xx_psc_func mpc52xx_psc_functions[] = {
>> { .id = 3,
>> .func = "uart",
>> },
>> { .id = 4,
>> .func = "uart",
>> },
>> { .id = -1, /* End entry */
>> .func = NULL,
>> }
>> };
>>
>
> Edit your boards .dts file and uncomment PSCs 3 and 4. Comment out
> PSC1 if you aren't using it.
>
>
>> I need to set PSC4 as a low level debug: *
>> *before in file *arch/ppc/platforms/lite5200.h *I added
>>
>> #define MPC52xx_PF_CONSOLE_PORT 4 /* PSC4 */
>>
>
> I don't think we have any early debug enabled yet in arch/powerpc for
> the mpc5200.
>
>
>> Finally I need to set the virtual memory translation on a range of 128 MB:
>> before in file *arch/ppc/kernel/head.S *I added
>>
>> /*ori r11,r11,BL_128M<<2|0x2 set up BAT registers for 604 */
>>
>> ori r11,r11,BL_128M<<2|0x2 /* set up BAT registers for 604 */
>>
>> could you please explain me how to do the same operations in powerpc tree??
>>
>
> New file is arch/powerpc/kernel/head_32.S. I don't think that is the
> cleanest way to do it though. Why do you need to change the BAT
> mapping from 256 to 128?
>
> Cheers,
> g.
>
>
^ permalink raw reply
* FW: porting pci driverfrom arch=ppc on kernel 2.6.16 to arch=powerpc on 2.6.24...
From: Mike Timmons @ 2008-05-08 15:28 UTC (permalink / raw)
To: linuxppc-embedded; +Cc: scottwood
Thanks for the help Scott. Simply getting my irq from the pci device
structure in my probe callback following successful PCI driver
registration was the trick. I now have my Fujitsu CoralP driver running
under the 2.6.24 kernel on the Lite5200b (although I have a HW problem
on my product board that confused my efforts). Regardless, I'm now
confident I'm doing this correctly, thanks to you help.
-----Original Message-----
From: Scott Wood [mailto:scottwood@freescale.com]=20
Sent: Tuesday, May 06, 2008 2:42 PM
To: Mike Timmons
Cc: linuxppc-embedded@ozlabs.org; Mark Gibson
Subject: Re: porting pci driverfrom arch=3Dppc on kernel 2.6.16 to
arch=3Dpowerpc on 2.6.24...
Mike Timmons wrote:
> If I'm not supposed to read the interrupt using config_read, should I
> also not be writing to the host register on the coral P to clear the
> interrupt?
>=20
> Should I instead be using some PCI helper functions?=20
No, clearing interrupts is device-specific.
Have you verified that the device does not think it's generating an=20
interrupt during the interrupt storm? Do other PCI cards work?
-Scott
^ permalink raw reply
* Re: MPC5200b MMC over SPI into PSC6
From: Grant Likely @ 2008-05-08 15:32 UTC (permalink / raw)
To: Fabio Tosetto; +Cc: linuxppc-dev
In-Reply-To: <482317E2.7000308@libero.it>
On Thu, May 8, 2008 at 9:10 AM, Fabio Tosetto <tosettofabio83@libero.it> wrote:
> Ok, maybe it's better to start from the beginning.
> Now I'm using a Lite5200b board, just to avoid problems with my hardware,
> and I'm trying to have a bootable kernel.
>
> With kernel version 2.6.24.6 I do the following commands
>
> $ make ARCH=powerpc lite5200_defconfig
> $ make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- uImage
>
> then I copy the arch/powerpc/boot/uImage and a rootfs.uimage on the board,
> but uBoot stops at the beginning:
Right; some concepts need to be explained now... There is a major
difference between arch/ppc and arch/powerpc. In arch/ppc, the kernel
is hard coded with the list of devices in the system. In
arch/powerpc, the list of devices is captured in a data structure
called the Flattened Device Tree (FDT). fdt data structures are
generated from the .dts (device tree source) files in
arch/powerpc/boot/dts/.
When you build a uImage with arch/ppc, you get a hard coded kernel
that works with u-boot: "bootm <kernel_addr> <ramdisk_addr>"
When you build a uImage with arch/powerpc, you get a dynamic kernel
that needs to be passed the device tree blob on boot. Newer u-boot
supports dts booting: "bootm <kernel_addr> <ramdisk_addr> <dt_addr>"
or "bootm <kernel_addr> - <dt_addr>" if you're not using a ramdisk.
However, if you've got an older u-boot version installed on your
board, you need to create an image that binds the device tree into the
kernel image. This is called a "cuImage". So, instead of doing "make
ARCH=powerpc uImage", you should do "make ARCH=powerpc
cuImage.<boardname>". This 'wraps' the kernel with a boot wrapper
that includes the device tree blob but maintains compatibility with
the old style uImage format.
For example, use "make ARCH=powerpc cuImage.lite5200b" to build an
image for the lite5200b board. The build scripts will use the
lite5200b.dts file in the dts directory for building the image. If
you add "fabios-fantastic-board.dts" to arch/powerpc/boot/dts, then
you can build "cuImage.fabios-fantastic-board". :-)
> The only way I was able to get something working, even though it sounds a
> little strange to me, is loading the config from powerpc folder but
> compiling in ppc
>
> $ make ARCH=powerpc lite5200_defconfig
> $ make ARCH=ppc CROSS_COMPILE=powerpc-linux-gnu- uImage
ARCH=ppc and ARCH=powerpc are completely different beasts. Forget
that you even know about ARCH=ppc for this entire exercise.
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
^ permalink raw reply
* mmap problem in device driver and application program.
From: MingLiu @ 2008-05-08 15:33 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 2127 bytes --]
Dear all,
I had some problem when I use mmap() file operation in the device driver file operation. My situation can be described as:
1. I reserve 2MB DDR memory as a look-up-table (LUT) for my customized device. The physical start address in the memory is 0x03000000 and the size is 2MB.
2. In the device driver, I use mmap file operation to make this memory area directly accessible by application programs. In the mmap file operation, it looks like:
if(remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, vma->vm_end - vma->vm_start, vma->vm_page_prot)){ return -EAGAIN; }
3. In the application program, I read from a file and initialize the LUT area. I use the following sentence to mmap the physical address into a virtual one which could be accessed by the application:
// the physical address is from 0x03000000 with a size of LUT_SIZE_IN_BYTE equal to 2MB
lut_mem_base = (unsigned int *) mmap(0, LUT_SIZE_IN_BYTE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0x03000000);
Then, I initialize the LUT area with the virtual address specified by lut_mem_base.
for(i=0;;i++){
fread(&buf, sizeof(unsigned int), 1, fp);
*(lut_mem_base + i) = buf;
if(feop(fp)){
break;
}
}
4. After the initialization of the LUT memory area, in the device driver, DMA transfer will be enabled using the physical address of 0x03000000 as the source address. The destination is a register in my customized device. The data is fed from the memory to my device register.
HOWEVER, I found that the data fed to the device register is not the same as the one used to initialize the LUT memory. Maybe the DMA fetches wrong data from different addresses and feeds to my device. Since this is my first time to use mmap, I am not self-confident to my program, both in the device driver and in the application. Is there anything wrong with my mmap part? I will appreciate so much if some experts could give me some hints. Thanks in advance.
BR
Ming
_________________________________________________________________
用手机MSN聊天写邮件看空间,无限沟通,分享精彩!
http://mobile.msn.com.cn/
[-- Attachment #2: Type: text/html, Size: 2717 bytes --]
^ permalink raw reply
* Re: Running a section of code from internal memory
From: Scott Wood @ 2008-05-08 15:33 UTC (permalink / raw)
To: Sanal Kumar V K; +Cc: linuxppc-embedded
In-Reply-To: <4822E5CE.3090701@centillium.com>
On Thu, May 08, 2008 at 05:06:46PM +0530, Sanal Kumar V K wrote:
> A small part of the code needs to run from the on-chip "L2 scratch" for
> getting optimum performance. I would really appreciate if some could
> give me some pointers regarding the following questions:
>
> 1. Is #pragma section supported by gcc.
> The compiler prints this warning "ignoring #pragma section" and the
> pragma is ignored indicating that it is not supported. Is there any way
> I can get the pragma working for gcc or any alternative?
__attribute__((section("section name")))
-Scott
^ permalink raw reply
* Re: ALSA vs. non coherent DMA
From: Takashi Iwai @ 2008-05-08 15:41 UTC (permalink / raw)
To: benh; +Cc: linuxppc-dev list, alsa-devel, Linux Kernel list
In-Reply-To: <1210197191.1421.12.camel@pasglop>
At Thu, 08 May 2008 07:53:11 +1000,
Benjamin Herrenschmidt wrote:
>
> On Wed, 2008-05-07 at 09:22 -0500, Timur Tabi wrote:
> > Takashi Iwai wrote:
> >
> > > This is a mmap of the data record to be shared in realtime with apps.
> > > The app updates its data pointer (appl_ptr) on the mmapped buffer
> > > while the driver updates the data (e.g. DMA position, called hwptr) on
> > > the fly on the mmapped record. Due to its real-time nature, it has to
> > > be coherent -- at least, it was a problem on ARM.
> >
> > This doesn't sound like a coherency problem to me, and least not one you'd find
> > on PowerPC. Both the driver and the application run on the host CPU, so there
> > shouldn't be any coherency problem. My understanding is that a "non coherent"
> > platform is one where the host CPU isn't aware when a *hardware device* writes
> > directly to memory, e.g. via DMA.
>
> Yes, precisely. I was about to make a reply here. There is some
> confusion at least in terminology, in Alsa. This is not DMA coherency,
> though it is a problem with virtually tagged data caches that some archs
> such as ARM have.
Right. The words should be corrected.
Since the only way to get a certain non-cached map was the (ab-)use of
dma_mmap_coherent(), such a confusing wording was chosen.
> So this is ok for all PowerPC since they all have a physically tagged
> data cache.
OK, so that part should work as is for PPC.
> The real problem -is- still the DMA coherency issue and as I see it, is
> two fold:
>
> - mmap'ing of the result of dma_alloc_coherent() doesn't work. There
> are two issues at play here, one is the pgprot that -must- be set to
> uncached for such a mapping on non coherent architectures (and non
> coherent architectures only), and the other is our virt_to_page() that
> will puke on virtual addresses coming from dma_alloc_coherent().
And dma_mmap_coherent() would be a solution for it, I suppose.
> - mmap'ing of SG lists for non coherent DMA. There the problem is a
> mixture of how Alsa allocate the SG buffers mixes with the previous
> problem.
Yes.
> I think it's never valid to create an SG list with the output of
> dma_alloc_coherent though. We would need a dma_alloc_sg() for that...
>
> sglists are made of pages, thus allocated with GFP, and later DMA mapped
> with dma_map_*, however this brings a whole other set of issues/constra
> ints such as bouce bufferring on some MMU less platforms if the memory
> happens to come out of the wrong place. Also, such mapped buffers are
> -not- coherent as they must not be modified via their virtual address
> while mapped, -unless- they are also mapped in kernel and/or user space
> (vmap & mmap) using some kind of "coherent" attributes such as
> pgprot_noncached. (and provided that is possible at all in kernel place
> for archs like MIPS).
>
> I don't have an easy answer there, it seems the bogosity roots deep in
> alsa, at least for the SG bits. For the non-SG bits, we can probably
> work around with an accessor to get the right pgprot and maybe some
> variant of virt_to_page() (dma_virt_to_page() ?) that would walk the
> kernel page tables to obtain the pfn.
The vmap() in sound/core/sgbuf.c can be omitted by adding proper PCM
callbacks (copy and silent) to handle SG-buffers. These are only guys
that access the linear buffer runtime->area.
Then we'll just need a proepr mmap PCM callback just calling
dma_mmap_coherent() for each SG page. Also, the default PCM mmap
should be fixed to use dma_mmap_coherent() appropriately. That's
all.
So, what we really need is dma_mmap_coherent() implementations...
thanks,
Takashi
^ permalink raw reply
* RE: [PATCH] [POWERPC] Xilinx: add compatibility for IBMcoreconnect busses.
From: Stephen Neuendorffer @ 2008-05-08 16:15 UTC (permalink / raw)
To: David Gibson, Josh Boyer; +Cc: linuxppc-dev
In-Reply-To: <20080508033006.GH5156@yookeroo.seuss>
Hmm... sounds reasonable to me.
> -----Original Message-----
> From: =
linuxppc-dev-bounces+stephen.neuendorffer=3Dxilinx.com@ozlabs.org
[mailto:linuxppc-dev-
> bounces+stephen.neuendorffer=3Dxilinx.com@ozlabs.org] On Behalf Of =
David
Gibson
> Sent: Wednesday, May 07, 2008 8:30 PM
> To: Josh Boyer
> Cc: linuxppc-dev@ozlabs.org
> Subject: Re: [PATCH] [POWERPC] Xilinx: add compatibility for
IBMcoreconnect busses.
>=20
> On Wed, May 07, 2008 at 09:46:30PM -0500, Josh Boyer wrote:
> > On Thu, 8 May 2008 10:18:50 +1000
> > David Gibson <david@gibson.dropbear.id.au> wrote:
> >
> > > On Wed, May 07, 2008 at 01:47:31PM -0700, Stephen Neuendorffer
wrote:
> > > > The IBM coreconnect names are pretty well defined, it appears.
In
> > > > addition, the Xilinx versions of these IPs seem to be
proliferating.
> > > > Hence, in the future let's prefer to use the standard names.
I've
> > > > left the old names in for some backward compatibility for
existing
> > > > device trees.
> > > >
> > > > Signed-off-by: Stephen Neuendorffer
<stephen.neuendorffer@xilinx.com>
> > >
> > > If you're talking about future trees, can't you just slap
"simple-bus"
> > > on them avoid this monster id table?
> >
> > What is that and how does it work?
>=20
> ePAPR states that busses which cannot be probed as such (i.e. the
> device tree is the only way to figure out what's on the bus) should
> have "simple-bus" in their compatible property. You can then just add
> simple-bus to the of_bus_ids list and avoid adding umpteen other
things.
>=20
> --
> David Gibson | I'll have my music baroque, and my
code
> david AT gibson.dropbear.id.au | minimalist, thank you. NOT
_the_ _other_
> | _way_ _around_!
> http://www.ozlabs.org/~dgibson
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
^ 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