* Re: [PATCH] fix undefined reference to device_power_up/resume
From: Paul Mackerras @ 2007-08-25 1:10 UTC (permalink / raw)
To: Olaf Hering; +Cc: linuxppc-dev, linux-kernel
In-Reply-To: <20070824194201.GA8737@aepfle.de>
Olaf Hering writes:
> So change even more places from PM to PM_SLEEP to allow linking.
What config shows these errors? I presume you need to have CONFIG_PM
but not CONFIG_PM_SLEEP in order to see them?
Paul.
^ permalink raw reply
* Re: [PATCH] fix undefined reference to device_power_up/resume
From: Al Viro @ 2007-08-25 1:15 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev, Olaf Hering, linux-kernel
In-Reply-To: <18127.33141.119362.34178@cargo.ozlabs.ibm.com>
On Sat, Aug 25, 2007 at 11:10:13AM +1000, Paul Mackerras wrote:
> Olaf Hering writes:
>
> > So change even more places from PM to PM_SLEEP to allow linking.
>
> What config shows these errors? I presume you need to have CONFIG_PM
> but not CONFIG_PM_SLEEP in order to see them?
E.g. PM, PPC32, SMP.
^ permalink raw reply
* Re: [PATCH v2] [02/10] pasemi_mac: Stop using the pci config space accessors for register read/writes
From: Stephen Rothwell @ 2007-08-25 1:19 UTC (permalink / raw)
To: Olof Johansson; +Cc: netdev, jgarzik, linuxppc-dev
In-Reply-To: <20070824181104.GA17171@lixom.net>
[-- Attachment #1: Type: text/plain, Size: 614 bytes --]
On Fri, 24 Aug 2007 13:11:04 -0500 Olof Johansson <olof@lixom.net> wrote:
>
> On Fri, Aug 24, 2007 at 02:05:31PM +1000, Stephen Rothwell wrote:
> >
> > It is not documented as such (as far as I can see), but pci_dev_put is
> > safe to call with NULL. And there are other places in the kernel that
> > explicitly use that fact.
>
> Some places check, others do not. I'll leave it be for now but might take
> care of it during some future cleanup. Thanks for point it out though.
No worries.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re:Problems on porting linux 2.6 to xilinx ML410
From: 林瑶 @ 2007-08-25 1:53 UTC (permalink / raw)
To: linuxppc-embedded
In-Reply-To: <mailman.726.1187970656.2970.linuxppc-embedded@ozlabs.org>
[-- Attachment #1: Type: text/plain, Size: 11023 bytes --]
Maybe you did not set your baud rate while config the kernel. If you use UART16550, you should set your baud rate while config the kernel.In the kernel 2.6.22, the option is in "Platform options", selecting "Default bootloader kernel arguments" and then setting your baud rate. However, if you use UARTLITE, the baud rate dose not need to be set by yourself. If the problem did not due to the baud rate, then perhaps your xparameters_ml40x.h file did not correctly define the register address of the serial port device. Your can find the correct register address of the serial port device in BSP generated by EDK. linyao
在2007-08-24,linuxppc-embedded-request@ozlabs.org 写道:
Send Linuxppc-embedded mailing list submissions to linuxppc-embedded@ozlabs.org To subscribe or unsubscribe via the World Wide Web, visit https://ozlabs.org/mailman/listinfo/linuxppc-embedded or, via email, send a message with subject or body 'help' to linuxppc-embedded-request@ozlabs.org You can reach the person managing the list at linuxppc-embedded-owner@ozlabs.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Linuxppc-embedded digest..." Today's Topics: 1. Problems on porting linux 2.6 to xilinx ML410 (woyuzhilei) 2. little endian page mapping on PQ3 (Jose Almeida) 3. RE: little endian page mapping on PQ3 (Joyeau Sylvain) 4. Re: little endian page mapping on PQ3 (Jose Almeida) 5. Re: little endian page mapping on PQ3 (Clemens Koller) 6. [linux kernel 2.6.19] ethernet driver for Marvell bridge GT-64260 (joachim.bader@diehl-aerospace.de) 7. Re: little endian page mapping on PQ3 (David Hawkins) ---------------------------------------------------------------------- Message: 1 Date: Fri, 24 Aug 2007 11:11:57 +0800 From: "woyuzhilei" <woyuzhilei@163.com> Subject: Problems on porting linux 2.6 to xilinx ML410 To: "grant.likely" <grant.likely@secretlab.ca> Cc: linuxppc-embedded <linuxppc-embedded@ozlabs.org> Message-ID: <200708241111513591137@163.com> Content-Type: text/plain; charset="gb2312" Hey: Recently I'm doing some project on Xilinx Ml410 evaluation board.The first step is porting linux 2.6 to ml410,but I got some problems on this,and my project cann't proceed,so I come to you for some help. I use the linux kernel source tree download from http://git.secretlab.ca/git/linux-2.6-virtex.git (The latest one).Add the file the xparameters.h,xparameter_ml40x.h. Then add arch/ppc/platforms/4xx/xilinx_generic_ppc.c(Use the patch I get here),and change it's name to ml40x.c,then I make some necessay change of the configuration files to accept selecting a Ml40x type board.Then compile the kernel,and get the image file from arch/ppc/boot/images, (On kernel compiling,the only device driver I sellect is " 8250/16550 and compatible serial support ").After that I download the zImage.elf file to the target board,and run it.But there is no output from the serial port at all.Am I doing somthing wrong?I really don't know goes wrong. Can anyone here help me with this?Any help from you is appreciated.Thank you very much! woyuzhilei 2007-08-24 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20070824/b495befd/attachment-0001.htm ------------------------------ Message: 2 Date: Fri, 24 Aug 2007 09:59:17 +0200 From: Jose Almeida <jalmeida@sysgo.fr> Subject: little endian page mapping on PQ3 To: Linuxppc-embedded@ozlabs.org Message-ID: <46CE8FD5.2060609@sysgo.fr> Content-Type: text/plain; charset=ISO-8859-1 Hi all, Looking at PQ3 documentation, it looks like there is a way to select on a page basis if we would like to map one particular page in BIG or LITTLE endian. This is a very nice feature when you need to exchange some data between a PC and a PQ3 target. I am wondering if someone have already tryed this PQ3 feature ? I guess this would require some kind of hook in the kernel ... Any clue ? Thanks - Jose ------------------------------ Message: 3 Date: Fri, 24 Aug 2007 13:40:31 +0200 From: "Joyeau Sylvain" <Sylvain.Joyeau@thomson.net> Subject: RE: little endian page mapping on PQ3 To: "Jose Almeida" <jalmeida@sysgo.fr>, <Linuxppc-embedded@ozlabs.org> Message-ID: <B00307ADBC68954AA8D6FB3AC8FD66F30141DE36@rennsmail05.eu.thmulti.com> Content-Type: text/plain; charset="iso-8859-1" Jose, You are right, PQ3 supports endianess choice on a per page basis. Without any hook in Linux, you can remap physical address range (but RAM), by calling __ioremap() with the "_PAGE_ENDIAN" bit set in the flags. -- sj > -----Original Message----- > From: > linuxppc-embedded-bounces+sylvain.joyeau=thomson.net@ozlabs.or > g > [mailto:linuxppc-embedded-bounces+sylvain.joyeau=thomson.net@o > zlabs.org] On Behalf Of Jose Almeida > Sent: vendredi 24 ao?t 2007 09:59 > To: Linuxppc-embedded@ozlabs.org > Subject: little endian page mapping on PQ3 > > Hi all, > > Looking at PQ3 documentation, it looks like there is a way to select > on a page basis if we would like to map one particular page in BIG or > LITTLE endian. > This is a very nice feature when you need to exchange some data > between a PC and a PQ3 target. > > I am wondering if someone have already tryed this PQ3 feature ? > I guess this would require some kind of hook in the kernel ... > > Any clue ? > > Thanks - Jose > > _______________________________________________ > Linuxppc-embedded mailing list > Linuxppc-embedded@ozlabs.org > https://ozlabs.org/mailman/listinfo/linuxppc-embedded > ------------------------------ Message: 4 Date: Fri, 24 Aug 2007 15:08:33 +0200 From: Jose Almeida <jalmeida@sysgo.fr> Subject: Re: little endian page mapping on PQ3 To: Joyeau Sylvain <Sylvain.Joyeau@thomson.net> Cc: Linuxppc-embedded@ozlabs.org Message-ID: <46CED851.70002@sysgo.fr> Content-Type: text/plain; charset="us-ascii" An HTML attachment was scrubbed... URL: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20070824/3072d9f9/attachment-0001.htm ------------------------------ Message: 5 Date: Fri, 24 Aug 2007 15:19:17 +0200 From: Clemens Koller <clemens.koller@anagramm.de> Subject: Re: little endian page mapping on PQ3 To: Jose Almeida <jalmeida@sysgo.fr> Cc: Linuxppc-embedded@ozlabs.org Message-ID: <46CEDAD5.1070506@anagramm.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Hi, Jose! Jose Almeida schrieb: > Hi all, > > Looking at PQ3 documentation, it looks like there is a way to select > on a page basis if we would like to map one particular page in BIG or > LITTLE endian. > This is a very nice feature when you need to exchange some data > between a PC and a PQ3 target. I would be interested, however cannot spend time right now to work on that subject. > I am wondering if someone have already tryed this PQ3 feature ? > I guess this would require some kind of hook in the kernel ... Just some random bits I found in the web: http://developer.apple.com/documentation/Hardware/DeviceManagers/pci_srvcs/pci_cards_drivers/PCI_BOOK.250.html The Interesting part is: "Thus, the address swizzle is completely transparent to software." So, I would just try to setup some memory mapping and turn on little endian mode to access that area... MMMV. Just a guess. Regards, -- Clemens Koller __________________________________ R&D Imaging Devices Anagramm GmbH Rupert-Mayer-Stra?e 45/1 Linhof Werksgel?nde D-81379 M?nchen Tel.089-741518-50 Fax 089-741518-19 http://www.anagramm-technology.com ------------------------------ Message: 6 Date: Fri, 24 Aug 2007 15:51:33 +0200 From: joachim.bader@diehl-aerospace.de Subject: [linux kernel 2.6.19] ethernet driver for Marvell bridge GT-64260 To: linuxppc-embedded@ozlabs.org Message-ID: <OF2C2E8C6F.3860730F-ONC1257341.004B3D4B-C1257341.004C2882@diehl-gruppe.de> Content-Type: text/plain; charset="utf-8" Hello everybody, I continue the work of ThomasB to get a linux kernel 2.6.19 up and running on a PPC750FX based platform using a GT-64260. From Thomas I got a patched mv643xx_eth driver which is ported to support the 64260, too. Now the driver is integrated and runs complete through initialisation bringing up an eth0 device. The initialisation seams to be ok (no error messages), the device is up and routing information is setup. Now I try to ping a remote station but I receive nothing and I get no feedback from the remote compter. As soon as I turn of the net interface (ifconfig eth0 down) I get the message "Tx time out or no link?) Is there anything else I can check? Any idea what may cause this problem? Thanks a lot for your help Joachim _______________________________________________________________________________________________________________________ Der Inhalt dieser E-Mail ist f?r den Absender rechtlich nicht verbindlich. Informieren Sie uns bitte, wenn Sie diese E-Mail f?lschlicherweise erhalten haben (Fax: +49-69-5805-1399). Bitte l?schen Sie in diesem Fall die Nachricht. Jede Form der weiteren Benutzung ist untersagt. The content of this e-mail is not legally binding upon the sender. If this e-mail was transmitted to you by error, then please inform us accordingly (Fax: +49-69-5805-1399). In such case you are requested to erase the message. Any use of such e-mail message is strictly prohibited. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20070824/5bb5a616/attachment-0001.htm ------------------------------ Message: 7 Date: Fri, 24 Aug 2007 08:49:46 -0700 From: David Hawkins <dwh@ovro.caltech.edu> Subject: Re: little endian page mapping on PQ3 To: Jose Almeida <jalmeida@sysgo.fr> Cc: Joyeau Sylvain <Sylvain.Joyeau@thomson.net>, Linuxppc-embedded@ozlabs.org Message-ID: <46CEFE1A.40905@ovro.caltech.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Hi Jose, > I want to do using an mmap() entry point in a driver, in order to map > this to the user. Of course in that case ioremap() does not work. > > Any Clue ? > I used the little-endian flag on the Yosemite board (440EP) to test what the flag did. http://www.ovro.caltech.edu/~dwh/correlator/pdf/LNX-762-Hawkins.pdf http://www.ovro.caltech.edu/~dwh/correlator/software/driver_design.tar.gz Look at the mmap function in pci_io.c. /* PowerPC endian control * - default is cleared, big-endian */ #ifdef _PAGE_ENDIAN if (bar->little_endian) { pgprot_val(vma->vm_page_prot) |= _PAGE_ENDIAN; } else { pgprot_val(vma->vm_page_prot) &= ~_PAGE_ENDIAN; } if (pgprot_val(vma->vm_page_prot) & _PAGE_ENDIAN) { LOG_DEBUG("_PAGE_ENDIAN is set\n"); } else { LOG_DEBUG("_PAGE_ENDIAN is not set\n"); } #endif It might be the same for the PQ3 ... at least it'll be pretty similar. Dave ------------------------------ _______________________________________________ Linuxppc-embedded mailing list Linuxppc-embedded@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-embedded End of Linuxppc-embedded Digest, Vol 36, Issue 59 *************************************************
[-- Attachment #2: Type: text/html, Size: 12798 bytes --]
^ permalink raw reply
* Has anyone run MontaVista linux-xilinx-26.git based on kernel 2.6.22 successfully?
From: angelalinyao @ 2007-08-25 2:15 UTC (permalink / raw)
To: Linuxppc-embedded
Hi, all
Has anyone run MontaVista linux-xilinx-26.git based on kernel 2.6.22 successfully? I am trying to run this embedded OS on ML403, but have met some problems.
I downloaded a napshot of the git tree including temac patches and configed it. When I downloaded the kernel image into the board and run it, the system hung after printed "Now booting the kernel" message. I have tried to modify my kernel configuration, however still did not solve the problem. I did not know where the kernel booting stopped and what problem caused its stop. I even did not know whether the kernel stopped at initialization or start_kernel() function.
I think maybe it is the kernel itself that has some problems not the patches, or perhaps it is my kernel configuration that caused the problem but I do not know what is the point. Has anyone run this OS successfully and could give me some directions?
Any help from you is appreciated. Thank you!
linyao
^ permalink raw reply
* [2.6.23 PATCH] Fix SLB initialization at boot time
From: Paul Mackerras @ 2007-08-25 3:14 UTC (permalink / raw)
To: linuxppc-dev
This partially reverts edd0622bd2e8f755c960827e15aa6908c3c5aa94.
It turns out that the part of that commit that aimed to ensure that we
created an SLB entry for the kernel stack on secondary CPUs when
starting the CPU didn't achieve its aim, and in fact caused a
regression, because get_paca()->kstack is not initialized at the point
where slb_initialize is called.
This therefore just reverts that part of that commit, while keeping
the change to slb_flush_and_rebolt, which is correct and necessary.
Signed-off-by: Paul Mackerras <paulus@samba.org>
---
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c
index a73d2d7..ff1811a 100644
--- a/arch/powerpc/mm/slb.c
+++ b/arch/powerpc/mm/slb.c
@@ -74,6 +74,22 @@ static inline void slb_shadow_clear(unsigned long entry)
get_slb_shadow()->save_area[entry].esid = 0;
}
+static inline void create_shadowed_slbe(unsigned long ea, unsigned long flags,
+ unsigned long entry)
+{
+ /*
+ * Updating the shadow buffer before writing the SLB ensures
+ * we don't get a stale entry here if we get preempted by PHYP
+ * between these two statements.
+ */
+ slb_shadow_update(ea, flags, entry);
+
+ asm volatile("slbmte %0,%1" :
+ : "r" (mk_vsid_data(ea, flags)),
+ "r" (mk_esid_data(ea, entry))
+ : "memory" );
+}
+
void slb_flush_and_rebolt(void)
{
/* If you change this make sure you change SLB_NUM_BOLTED
@@ -226,12 +242,16 @@ void slb_initialize(void)
vflags = SLB_VSID_KERNEL | vmalloc_llp;
/* Invalidate the entire SLB (even slot 0) & all the ERATS */
- slb_shadow_update(PAGE_OFFSET, lflags, 0);
- asm volatile("isync; slbia; sync; slbmte %0,%1; isync" ::
- "r" (get_slb_shadow()->save_area[0].vsid),
- "r" (get_slb_shadow()->save_area[0].esid) : "memory");
-
- slb_shadow_update(VMALLOC_START, vflags, 1);
-
- slb_flush_and_rebolt();
+ asm volatile("isync":::"memory");
+ asm volatile("slbmte %0,%0"::"r" (0) : "memory");
+ asm volatile("isync; slbia; isync":::"memory");
+ create_shadowed_slbe(PAGE_OFFSET, lflags, 0);
+
+ create_shadowed_slbe(VMALLOC_START, vflags, 1);
+
+ /* We don't bolt the stack for the time being - we're in boot,
+ * so the stack is in the bolted segment. By the time it goes
+ * elsewhere, we'll call _switch() which will bolt in the new
+ * one. */
+ asm volatile("isync":::"memory");
}
^ permalink raw reply related
* Re: [PATCH 4/4] ehea: show physical port state
From: Jeff Garzik @ 2007-08-25 4:36 UTC (permalink / raw)
To: Jan-Bernd Themann
Cc: Thomas Klein, Jan-Bernd Themann, netdev, linux-kernel, linux-ppc,
Christoph Raisch, Marcus Eder, Stefan Roscher
In-Reply-To: <200708221621.32549.ossthema@de.ibm.com>
Jan-Bernd Themann wrote:
> Introduces a module parameter to decide whether the physical
> port link state is propagated to the network stack or not.
> It makes sense not to take the physical port state into account
> on machines with more logical partitions that communicate
> with each other. This is always possible no matter what the physical
> port state is. Thus eHEA can be considered as a switch there.
>
> Signed-off-by: Jan-Bernd Themann <themann@de.ibm.com>
>
> ---
> drivers/net/ehea/ehea.h | 5 ++++-
> drivers/net/ehea/ehea_main.c | 14 +++++++++++++-
> 2 files changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h
> index d67f97b..8d58be5 100644
> --- a/drivers/net/ehea/ehea.h
> +++ b/drivers/net/ehea/ehea.h
> @@ -39,7 +39,7 @@
> #include <asm/io.h>
>
> #define DRV_NAME "ehea"
> -#define DRV_VERSION "EHEA_0073"
> +#define DRV_VERSION "EHEA_0074"
>
> /* eHEA capability flags */
> #define DLPAR_PORT_ADD_REM 1
> @@ -402,6 +402,8 @@ struct ehea_mc_list {
>
> #define EHEA_PORT_UP 1
> #define EHEA_PORT_DOWN 0
> +#define EHEA_PHY_LINK_UP 1
> +#define EHEA_PHY_LINK_DOWN 0
> #define EHEA_MAX_PORT_RES 16
> struct ehea_port {
> struct ehea_adapter *adapter; /* adapter that owns this port */
> @@ -427,6 +429,7 @@ struct ehea_port {
> u32 msg_enable;
> u32 sig_comp_iv;
> u32 state;
> + u8 phy_link;
> u8 full_duplex;
> u8 autoneg;
> u8 num_def_qps;
> diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
> index db57474..1804c99 100644
> --- a/drivers/net/ehea/ehea_main.c
> +++ b/drivers/net/ehea/ehea_main.c
> @@ -53,17 +53,21 @@ static int rq3_entries = EHEA_DEF_ENTRIES_RQ3;
> static int sq_entries = EHEA_DEF_ENTRIES_SQ;
> static int use_mcs = 0;
> static int num_tx_qps = EHEA_NUM_TX_QP;
> +static int show_phys_link = 0;
>
> module_param(msg_level, int, 0);
> module_param(rq1_entries, int, 0);
> module_param(rq2_entries, int, 0);
> module_param(rq3_entries, int, 0);
> module_param(sq_entries, int, 0);
> +module_param(show_phys_link, int, 0);
> module_param(use_mcs, int, 0);
> module_param(num_tx_qps, int, 0);
>
> MODULE_PARM_DESC(num_tx_qps, "Number of TX-QPS");
> MODULE_PARM_DESC(msg_level, "msg_level");
> +MODULE_PARM_DESC(show_phys_link, "Show link state of external port"
> + "1:yes, 0: no. Default = 0 ");
> MODULE_PARM_DESC(rq3_entries, "Number of entries for Receive Queue 3 "
> "[2^x - 1], x = [6..14]. Default = "
> __MODULE_STRING(EHEA_DEF_ENTRIES_RQ3) ")");
> @@ -814,7 +818,9 @@ int ehea_set_portspeed(struct ehea_port *port, u32 port_speed)
> ehea_error("Failed setting port speed");
> }
> }
> - netif_carrier_on(port->netdev);
> + if (!show_phys_link || (port->phy_link == EHEA_PHY_LINK_UP))
> + netif_carrier_on(port->netdev);
> +
> kfree(cb4);
> out:
> return ret;
> @@ -869,13 +875,19 @@ static void ehea_parse_eqe(struct ehea_adapter *adapter, u64 eqe)
> }
>
> if (EHEA_BMASK_GET(NEQE_EXTSWITCH_PORT_UP, eqe)) {
> + port->phy_link = EHEA_PHY_LINK_UP;
> if (netif_msg_link(port))
> ehea_info("%s: Physical port up",
> port->netdev->name);
> + if (show_phys_link)
> + netif_carrier_on(port->netdev);
> } else {
> + port->phy_link = EHEA_PHY_LINK_DOWN;
> if (netif_msg_link(port))
> ehea_info("%s: Physical port down",
> port->netdev->name);
> + if (show_phys_link)
> + netif_carrier_off(port->netdev);
I think it's misnamed, calling it "show_xxx", because this (as the
change description notes) controls propagation of carrier to the network
stack.
Jeff
^ permalink raw reply
* Re: [PATCH] ucc_geth: kill unused include
From: Jeff Garzik @ 2007-08-25 4:37 UTC (permalink / raw)
To: Kumar Gala; +Cc: netdev, Li Yang, Paul Mackerras, linuxppc-dev
In-Reply-To: <Pine.LNX.4.64.0708222144440.6464@blarg.am.freescale.net>
Kumar Gala wrote:
> The ucc_geth_mii code is based on the gianfar_mii code that use to include
> ocp.h. ucc never need this and it causes issues when we want to kill
> arch/ppc includes from arch/powerpc.
>
> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
> ---
>
> Jeff, if you issue with this for 2.6.23, I'd prefer to push this via
> the powerpc.git trees in 2.6.24 as part of a larger cleanup. Let me know
> one way or the other.
>
> - k
>
> drivers/net/ucc_geth_mii.c | 1 -
> 1 files changed, 0 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/ucc_geth_mii.c b/drivers/net/ucc_geth_mii.c
> index 6c257b8..df884f0 100644
> --- a/drivers/net/ucc_geth_mii.c
> +++ b/drivers/net/ucc_geth_mii.c
> @@ -32,7 +32,6 @@
> #include <linux/mm.h>
> #include <linux/module.h>
> #include <linux/platform_device.h>
> -#include <asm/ocp.h>
> #include <linux/crc32.h>
> #include <linux/mii.h>
Feel free to push via PPC git
^ permalink raw reply
* Re: [PATCH 1/4] ehea: fix interface to DLPAR tools
From: Jeff Garzik @ 2007-08-25 4:41 UTC (permalink / raw)
To: Jan-Bernd Themann
Cc: Thomas Klein, Jan-Bernd Themann, netdev, linux-kernel, linux-ppc,
Christoph Raisch, Marcus Eder, Stefan Roscher
In-Reply-To: <200708221620.59078.ossthema@de.ibm.com>
Jan-Bernd Themann wrote:
> Userspace DLPAR tool expects decimal numbers to be written to
> and read from sysfs entries.
>
> Signed-off-by: Jan-Bernd Themann <themann@de.ibm.com>
applied 1-3
^ permalink raw reply
* Re: [PATCH] fix undefined reference to device_power_up/resume
From: Olaf Hering @ 2007-08-25 6:47 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev, linux-kernel
In-Reply-To: <18127.33141.119362.34178@cargo.ozlabs.ibm.com>
On Sat, Aug 25, Paul Mackerras wrote:
> Olaf Hering writes:
>
> > So change even more places from PM to PM_SLEEP to allow linking.
>
> What config shows these errors? I presume you need to have CONFIG_PM
> but not CONFIG_PM_SLEEP in order to see them?
The .config below boots on a wallstreet.
atyfb hangs for some reason, pcmcia still broken. I will send separate
mails for these bugs.
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.23-rc3
# Fri Aug 24 21:05:04 2007
#
# 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_ALTIVEC is not set
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_PPC_MERGE=y
CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_IRQ_PER_CPU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_ILOG2_U32=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
# CONFIG_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 is not set
# CONFIG_GENERIC_TBSYNC is not set
CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
# CONFIG_DEFAULT_UIMAGE is not set
# 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="-wallstreet"
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_USER_NS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=21
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_MODULES 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 is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"
#
# Platform support
#
CONFIG_PPC_MULTIPLATFORM=y
# CONFIG_EMBEDDED6xx is not set
# CONFIG_PPC_82xx is not set
# CONFIG_PPC_83xx is not set
# CONFIG_PPC_86xx is not set
CONFIG_CLASSIC32=y
# CONFIG_PPC_CHRP is not set
# CONFIG_PPC_MPC52xx is not set
# CONFIG_PPC_MPC5200 is not set
# CONFIG_PPC_EFIKA is not set
# CONFIG_PPC_LITE5200 is not set
CONFIG_PPC_PMAC=y
# CONFIG_PPC_CELL is not set
# CONFIG_PPC_CELL_NATIVE is not set
# CONFIG_PQ2ADS is not set
CONFIG_PPC_NATIVE=y
CONFIG_MPIC=y
# 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=y
# 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_PPC601_SYNC_FIX is not set
# CONFIG_TAU is not set
# CONFIG_CPM2 is not set
# CONFIG_FSL_ULI1575 is not set
#
# Kernel options
#
# CONFIG_HIGHMEM is not set
CONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=100
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
# CONFIG_KEXEC is not set
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_RESOURCES_64BIT 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=y
# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
# CONFIG_SUSPEND is not set
# CONFIG_HIBERNATION is not set
CONFIG_APM_EMULATION=y
# CONFIG_SECCOMP is not set
# CONFIG_WANT_DEVICE_TREE is not set
CONFIG_ISA_DMA_API=y
#
# Bus options
#
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_PPC_INDIRECT_PCI=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_DEBUG=y
#
# PCCARD (PCMCIA/CardBus) support
#
CONFIG_PCCARD=y
# CONFIG_PCMCIA_DEBUG is not set
CONFIG_PCMCIA=y
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_PCMCIA_IOCTL=y
CONFIG_CARDBUS=y
#
# PC-card bridges
#
CONFIG_YENTA=y
CONFIG_YENTA_O2=y
CONFIG_YENTA_RICOH=y
CONFIG_YENTA_TI=y
CONFIG_YENTA_ENE_TUNE=y
CONFIG_YENTA_TOSHIBA=y
# CONFIG_PD6729 is not set
# CONFIG_I82092 is not set
CONFIG_PCCARD_NONSTATIC=y
# CONFIG_HOTPLUG_PCI is not set
#
# Advanced setup
#
# CONFIG_ADVANCED_OPTIONS is not set
#
# Default settings for advanced configuration options are used
#
CONFIG_HIGHMEM_START=0xfe000000
CONFIG_LOWMEM_SIZE=0x30000000
CONFIG_KERNEL_START=0xc0000000
CONFIG_TASK_SIZE=0x80000000
CONFIG_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=y
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
CONFIG_NET_KEY=y
# CONFIG_NET_KEY_MIGRATE 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 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=y
CONFIG_INET_ESP=y
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
CONFIG_INET_XFRM_MODE_BEET=y
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
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
CONFIG_IRDA=y
#
# IrDA protocols
#
CONFIG_IRLAN=y
CONFIG_IRNET=y
CONFIG_IRCOMM=y
# CONFIG_IRDA_ULTRA is not set
#
# IrDA options
#
CONFIG_IRDA_CACHE_LAST_LSAP=y
CONFIG_IRDA_FAST_RR=y
# CONFIG_IRDA_DEBUG is not set
#
# Infrared-port device drivers
#
#
# SIR device drivers
#
CONFIG_IRTTY_SIR=y
#
# Dongle support
#
# CONFIG_DONGLE is not set
#
# Old SIR device drivers
#
# CONFIG_IRPORT_SIR is not set
#
# Old Serial dongle support
#
#
# FIR device drivers
#
# CONFIG_NSC_FIR is not set
# CONFIG_WINBOND_FIR is not set
# CONFIG_TOSHIBA_FIR is not set
# CONFIG_SMC_IRCC_FIR is not set
# CONFIG_ALI_FIR is not set
# CONFIG_VLSI_FIR is not set
# CONFIG_VIA_FIR is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
#
# Wireless
#
# CONFIG_CFG80211 is not set
CONFIG_WIRELESS_EXT=y
# 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_STANDALONE is not set
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
CONFIG_OF_DEVICE=y
# CONFIG_PARPORT is not set
# CONFIG_BLK_DEV is not set
# CONFIG_MISC_DEVICES is not set
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDECS is not set
# CONFIG_BLK_DEV_DELKIN is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_PROC_FS is not set
#
# IDE chipset support/bugfixes
#
# CONFIG_IDE_GENERIC is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_IDEPCI_PCIBUS_ORDER=y
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_GENERIC is not set
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
# CONFIG_IDEDMA_ONLYDISK is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_JMICRON is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_IT8213 is not set
# CONFIG_BLK_DEV_IT821X is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SL82C105 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_BLK_DEV_TC86C001 is not set
CONFIG_BLK_DEV_IDE_PMAC=y
CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
CONFIG_BLK_DEV_IDEDMA_PMAC=y
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
# CONFIG_BLK_DEV_HD 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
#
# Fusion MPT device support
#
# 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=y
CONFIG_ADB=y
CONFIG_ADB_CUDA=y
CONFIG_ADB_PMU=y
CONFIG_ADB_PMU_LED=y
CONFIG_ADB_PMU_LED_IDE=y
CONFIG_PMAC_APM_EMU=y
CONFIG_PMAC_MEDIABAY=y
CONFIG_PMAC_BACKLIGHT=y
CONFIG_PMAC_BACKLIGHT_LEGACY=y
CONFIG_INPUT_ADBHID=y
CONFIG_MAC_EMUMOUSEBTN=y
# CONFIG_THERM_WINDTUNNEL is not set
# CONFIG_THERM_ADT746X is not set
# CONFIG_WINDFARM is not set
# CONFIG_ANSLCD is not set
# CONFIG_PMAC_RACKMETER 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_ARCNET is not set
# CONFIG_PHYLIB is not set
CONFIG_NET_ETHERNET=y
# CONFIG_MII is not set
CONFIG_MACE=y
# CONFIG_MACE_AAUI_PORT is not set
CONFIG_BMAC=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_NET_PCI is not set
# CONFIG_NETDEV_1000 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
CONFIG_NET_PCMCIA=y
# CONFIG_PCMCIA_3C589 is not set
# CONFIG_PCMCIA_3C574 is not set
# CONFIG_PCMCIA_FMVJ18X is not set
# CONFIG_PCMCIA_PCNET is not set
# CONFIG_PCMCIA_NMCLAN is not set
# CONFIG_PCMCIA_SMC91C92 is not set
CONFIG_PCMCIA_XIRC2PS=y
# CONFIG_PCMCIA_AXNET is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
# CONFIG_PPP_FILTER is not set
CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=y
CONFIG_PPP_DEFLATE=y
CONFIG_PPP_BSDCOMP=y
# CONFIG_PPP_MPPE is not set
CONFIG_PPPOE=y
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=y
# CONFIG_SHAPER 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=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ATKBD is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
# CONFIG_MOUSE_PS2 is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_VSXXXAA 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=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
# CONFIG_SERIAL_8250 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_PMACZILOG=y
CONFIG_SERIAL_PMACZILOG_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
CONFIG_NVRAM=y
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_AGP is not set
# CONFIG_DRM is not set
#
# PCMCIA character devices
#
# CONFIG_SYNCLINK_CS is not set
# CONFIG_CARDMAN_4000 is not set
# CONFIG_CARDMAN_4040 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=y
# 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_POWERMAC=y
# CONFIG_I2C_MPC is not set
# 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_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_DS1337 is not set
# CONFIG_SENSORS_DS1374 is not set
# CONFIG_DS1682 is not set
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_M41T00 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 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 is not set
#
# Graphics support
#
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_SYS_FOPS is not set
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
CONFIG_FB_MACMODES=y
CONFIG_FB_BACKLIGHT=y
# CONFIG_FB_MODE_HELPERS is not set
# CONFIG_FB_TILEBLITTING is not set
#
# Frame buffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_OF is not set
# CONFIG_FB_CONTROL is not set
# CONFIG_FB_PLATINUM is not set
# CONFIG_FB_VALKYRIE is not set
# CONFIG_FB_CT65550 is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
CONFIG_FB_ATY=y
CONFIG_FB_ATY_CT=y
# CONFIG_FB_ATY_GENERIC_LCD is not set
CONFIG_FB_ATY_GX=y
CONFIG_FB_ATY_BACKLIGHT=y
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_IBM_GXT4500 is not set
# CONFIG_FB_VIRTUAL is not set
#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_LOGO is not set
#
# Sound
#
CONFIG_SOUND=y
#
# Advanced Linux Sound Architecture
#
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
# CONFIG_SND_DYNAMIC_MINORS is not set
CONFIG_SND_SUPPORT_OLD_API=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
#
# Generic devices
#
CONFIG_SND_DUMMY=y
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
#
# PCI devices
#
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS5530 is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDA_INTEL is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set
#
# ALSA PowerMac devices
#
CONFIG_SND_POWERMAC=y
CONFIG_SND_POWERMAC_AUTO_DRC=y
#
# ALSA PowerPC devices
#
#
# Apple Onboard Audio driver
#
# CONFIG_SND_AOA is not set
# CONFIG_SND_AOA_SOUNDBUS is not set
#
# PCMCIA devices
#
# CONFIG_SND_VXPOCKET is not set
# CONFIG_SND_PDAUDIOCF is not set
#
# System on Chip audio support
#
# CONFIG_SND_SOC is not set
#
# SoC Audio support for SuperH
#
#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
# CONFIG_HID is not set
# CONFIG_USB_SUPPORT is not set
# CONFIG_MMC is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
#
# LED drivers
#
#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
# CONFIG_LEDS_TRIGGER_TIMER is not set
CONFIG_LEDS_TRIGGER_IDE_DISK=y
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
# CONFIG_RTC_CLASS is not set
#
# DMA Engine support
#
# CONFIG_DMA_ENGINE is not set
#
# DMA Clients
#
#
# DMA Devices
#
#
# 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=y
# CONFIG_EXT3_FS_SECURITY is not set
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set
CONFIG_GENERIC_ACL=y
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
# CONFIG_UDF_FS is not set
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# 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=y
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
CONFIG_HFS_FS=y
CONFIG_HFSPLUS_FS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
# CONFIG_NFSD is not set
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_BIND34 is not set
# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
#
# 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=y
CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL 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
#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
# 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=y
# 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=y
#
# Distributed Lock Manager
#
# CONFIG_DLM is not set
# CONFIG_UCC_SLOW is not set
#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
CONFIG_LIBCRC32C=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
#
# Instrumentation Support
#
# CONFIG_PROFILING is not set
#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
# CONFIG_DETECT_SOFTLOCKUP is not set
# CONFIG_SCHED_DEBUG is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
# CONFIG_FORCED_INLINING is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_DEBUGGER=y
CONFIG_XMON=y
CONFIG_XMON_DEFAULT=y
CONFIG_XMON_DISASSEMBLY=y
# CONFIG_BDI_SWITCH is not set
CONFIG_BOOTX_TEXT=y
# CONFIG_PPC_EARLY_DEBUG is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=y
# 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=y
# 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 is not set
CONFIG_CRYPTO_CBC=y
# CONFIG_CRYPTO_PCBC is not set
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_AES is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_HW is not set
^ permalink raw reply
* Re: Re: Problems on porting linux 2.6 to xilinx ML410
From: woyuzhilei @ 2007-08-25 7:37 UTC (permalink / raw)
To: Grant Likely; +Cc: linuxppc-embedded
In-Reply-To: <fa686aa40708241121s359fbaf2r7adb8886a2d3ff65@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1966 bytes --]
Thank you very much for your help!I think there may be somthing wrong with my kernel command line.
woyuzhilei
2007-08-25
发件人: Grant Likely
发送时间: 2007-08-25 02:21:11
收件人: woyuzhilei
抄送: linuxppc-embedded
主题: Re: Problems on porting linux 2.6 to xilinx ML410
On 8/23/07, woyuzhilei <woyuzhilei@163.com > wrote:
>
>
> Hey:
> Recently I'm doing some project on Xilinx Ml410 evaluation board.The
> first step is porting linux 2.6 to ml410,but I got some problems on this,and
> my project cann't proceed,so I come to you for some help.
> I use the linux kernel source tree download from
> http://git.secretlab.ca/git/linux-2.6-virtex.git (The
> latest one).Add the file the xparameters.h,xparameter_ml40x.h. Then add
> arch/ppc/platforms/4xx/xilinx_generic_ppc.c(Use the patch I
> get here),and change it's name to ml40x.c,then I make some necessay change
> of the configuration files to accept selecting a Ml40x type board.
You shouldn't need to do all of this; only the xparameters_ml40x.h
file is needed. To get started, I'd just use replace
xparameters_ml403.h with your custom xparameters_ml40x.h and use the
ml403 board port. Once you've got it booting, you can get more fancy.
> Then
> compile the kernel,and get the image file from arch/ppc/boot/images, (On
> kernel compiling,the only device driver I sellect is " 8250/16550 and
> compatible serial support ").After that I download the zImage.elf file to
> the target board,and run it.But there is no output from the serial port at
> all.Am I doing somthing wrong?I really don't know goes wrong.
> Can anyone here help me with this?Any help from you is appreciated.Thank
> you very much!
Make sure you've got 16550 console support enabled and
'console=/dev/ttyS0' in your kernel command line.
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
[-- Attachment #2: Type: text/html, Size: 5832 bytes --]
^ permalink raw reply
* how to get your linux-2.6-virtex tree?
From: Ming Liu @ 2007-08-25 8:48 UTC (permalink / raw)
To: grant.likely; +Cc: linuxppc-embedded
In-Reply-To: <fa686aa40708241121s359fbaf2r7adb8886a2d3ff65@mail.gmail.com>
Dear Grant,
I am trying to get your linux-2.6-virtex tree. When I release the command
"git-clone git://git.secretlab.ca/git/linux-2.6-virtex.git", it shows
fatal: unexpected EOF
fetch-pack from 'git://git.secretlab.ca/git/linux-2.6-virtex.git' failed.
How can I get your tree? Thanks for your telling.
BR
Ming
_________________________________________________________________
享用世界上最大的电子邮件系统― MSN Hotmail。 http://www.hotmail.com
^ permalink raw reply
* [PATCH] atyfb: force 29MHz xtal on G3 PowerBooks
From: Olaf Hering @ 2007-08-25 9:13 UTC (permalink / raw)
To: linuxppc-dev, linux-kernel
The atyfb does not work on my 233MHz PowerBook with Mach64 LP, when the
kernel is booted from firmware. aty_ld_pll_ct() returns 0x22 and xtal
remains at 14.31818. When booted from MacOS, aty_ld_pll_ct() returns 0x3c
and xtal is changed to 29.498928.
Google indicates that all 4 PowerBook models need the higher value.
Signed-off-by: Olaf Hering <olaf@aepfle.de>
--- a/drivers/video/aty/atyfb_base.c
+++ b/drivers/video/aty/atyfb_base.c
@@ -2411,7 +2411,7 @@ static int __devinit aty_init(struct fb_
diff1 = -diff1;
if (diff2 < 0)
diff2 = -diff2;
- if (diff2 < diff1) {
+ if (diff2 < diff1 || (M64_HAS(G3_PB_1024x768))) {
par->ref_clk_per = 1000000000000ULL / 29498928;
xtal = "29.498928";
}
^ permalink raw reply
* [PATCH 0/3][POWERPC] Add PCI support for 44xEPx
From: Vitaly Bordug @ 2007-08-25 9:29 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Stefan Roese
The following series is a port of 440EPx (sequoia) PCI host bridge from
arch/ppc. It was initiated with some inconsistencies observed in pci_32.c
pci ranges parsing, so I've eventually merged pci_32 and pci_64 of
pci_process_bridge_OF_ranges() into one, that should be able to handle
64-bit phys addresses, including fancy 44x 36-bit addressing.
Actual PCI stuff was implemented more as a use-case for the upper, and is
more or less straight port from arch/ppc. It assumes
[PATCH 0/4] PowerPC 440EPx: Initial Sequoia support take 2
from Valentine applied, and hereby is for for-2.6.24 branch of jwb's tree
(git pull git://git.infradead.org/users/jwboyer/powerpc.git for-2.6.24)
--
Sincerely, Vitaly
^ permalink raw reply
* [PATCH 1/3] [POWERPC] Merge 32 and 64 bit pci_process_bridge_OF_ranges() instances
From: Vitaly Bordug @ 2007-08-25 9:29 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Stefan Roese
In-Reply-To: <20070825091440.4087.1428.stgit@localhost.localdomain>
We are having 2 different instances of pci_process_bridge_OF_ranges(),
which makes describing 64-bit physical addresses in non PPC64 case
impossible.
This approach inherits pci space parsing, but has a new way to behave
equally good in both 32bit and 64bit environments. Currently validated
with 440EPx (sequoia) and mpc8349-eitx.
Signed-off-by: Vitaly Bordug <vitb@kernel.crashing.org>
Signed-off-by: Stefan Roese <sr@denx.de>
---
arch/powerpc/kernel/pci-common.c | 159 ++++++++++++++++++++++++++++++++++++++
arch/powerpc/kernel/pci_32.c | 114 ---------------------------
arch/powerpc/kernel/pci_64.c | 94 ----------------------
include/asm-powerpc/ppc-pci.h | 16 ++++
4 files changed, 175 insertions(+), 208 deletions(-)
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index 083cfbd..57cd039 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -478,3 +478,162 @@ void pci_resource_to_user(const struct pci_dev *dev, int bar,
*start = rsrc->start - offset;
*end = rsrc->end - offset;
}
+
+void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose,
+ struct device_node *dev, int prim)
+{
+ static unsigned int static_lc_ranges[256];
+ const unsigned int *ranges;
+ unsigned int *lc_ranges;
+ unsigned int pci_space;
+ unsigned long size = 0;
+ int rlen = 0;
+ int orig_rlen, ranges_amnt, i;
+ int memno = 0;
+ struct resource *res;
+ int np, na = of_n_addr_cells(dev);
+ struct ranges_pci64_sz64 *ranges64 = NULL;
+ struct ranges_pci32_sz64 *ranges32 = NULL;
+ phys_addr_t pci_addr, cpu_phys_addr;
+
+ np = na + 5;
+
+ /* From "PCI Binding to 1275"
+ * The ranges property is laid out as an array of elements,
+ * each of which comprises:
+ * cells 0 - 2: a PCI address
+ * cells 3 or 3+4: a CPU physical address
+ * (size depending on dev->n_addr_cells)
+ * cells 4+5 or 5+6: the size of the range
+ */
+ ranges = of_get_property(dev, "ranges", &rlen);
+ if (ranges == NULL)
+ return;
+ /* Sanity check, though hopefully that never happens */
+ if (rlen > sizeof(static_lc_ranges)) {
+ printk(KERN_WARNING "OF ranges property too large !\n");
+ rlen = sizeof(static_lc_ranges);
+ }
+
+ /* Let's work on a copy of the "ranges" property instead
+ * of damaging the device-tree image in memory
+ */
+ lc_ranges = static_lc_ranges;
+ memcpy(lc_ranges, ranges, rlen);
+ orig_rlen = rlen;
+
+ ranges = lc_ranges;
+ /* Map ranges to struct according to spec. */
+ if (na >= 2) {
+ ranges64 = (void *)ranges;
+ ranges_amnt = rlen / sizeof(*ranges64);
+ } else {
+ ranges32 = (void *)ranges;
+ ranges_amnt = rlen / sizeof(*ranges32);
+ }
+
+ hose->io_base_phys = 0;
+ for (i = 0; i < ranges_amnt; i++) {
+ res = NULL;
+ if (ranges64) {
+ if (ranges64[i].pci_space == 0)
+ continue;
+
+ pci_space = ranges64[i].pci_space;
+ pci_addr =
+ (u64) ranges64[i].pci_addr[0] << 32 | ranges64[i].
+ pci_addr[1];
+ cpu_phys_addr =
+ of_translate_address(dev, ranges64[i].phys_addr);
+ /*
+ * I haven't observed 2 significant size cells in kernel
+ * code, so we're accounting only LSB of size part
+ * from ranges. -vitb
+ */
+ size = ranges64[i].size[1];
+#ifdef CONFIG_PPC64
+ if (ranges64[i].size[0])
+ size |= ranges64[i].size[0]<<32;
+#endif
+ DBG("Observed: pci %llx phys %llx size %x\n", pci_addr,
+ cpu_phys_addr, size);
+ } else {
+ if (ranges32[i].pci_space == 0)
+ continue;
+
+ pci_space = (unsigned int)ranges32[i].pci_space;
+ pci_addr = (unsigned int)ranges32[i].pci_addr[1];
+ cpu_phys_addr = (unsigned int)ranges32[i].phys_addr[0];
+ size = ranges32[i].size[1];
+
+ DBG("Observed: pci %x phys %x size %x\n",
+ (u32) pci_addr, (u32) cpu_phys_addr, size);
+ }
+
+ switch ((pci_space >> 24) & 0x3) {
+ case 1: /* I/O space */
+#ifdef CONFIG_PPC32
+ /*
+ * check from ppc32 pci implementation.
+ * not sure if it is needed. -vitb
+ */
+ if (pci_addr != 0)
+ break;
+#endif
+ /* limit I/O space to 16MB */
+ if (size > 0x01000000)
+ size = 0x01000000;
+
+ hose->io_base_phys = cpu_phys_addr - pci_addr;
+ /* handle from 0 to top of I/O window */
+#ifdef CONFIG_PPC64
+ hose->pci_io_size = pci_addr + size;
+#endif
+ hose->io_base_virt = ioremap(hose->io_base_phys, size);
+
+ if (prim)
+ isa_io_base = (unsigned long)hose->io_base_virt;
+
+ res = &hose->io_resource;
+ res->flags = IORESOURCE_IO;
+ res->start = pci_addr;
+ DBG("phb%d: IO 0x%llx -> 0x%llx\n", hose->global_number,
+ (u64) res->start, (u64) (res->start + size - 1));
+ DBG("IO phys %llx IO virt %p\n",
+ (u64) hose->io_base_phys, hose->io_base_virt);
+ break;
+ case 2: /* memory space */
+ memno = 0;
+#ifdef CONFIG_PPC32
+ if ((pci_addr == 0) && (size <= (16 << 20))) {
+ /* 1st 16MB, i.e. ISA memory area */
+ if (prim)
+ isa_mem_base = cpu_phys_addr;
+ memno = 1;
+ }
+#endif
+ while (memno < 3 && hose->mem_resources[memno].flags)
+ ++memno;
+
+ if (memno == 0)
+ hose->pci_mem_offset = cpu_phys_addr - pci_addr;
+ if (memno < 3) {
+ res = &hose->mem_resources[memno];
+ res->flags = IORESOURCE_MEM;
+ res->start = cpu_phys_addr;
+ DBG("phb%d: MEM 0x%llx -> 0x%llx\n",
+ hose->global_number, res->start,
+ res->start + size - 1);
+ }
+ break;
+ }
+ if (res != NULL) {
+ res->name = dev->full_name;
+ res->end = res->start + size - 1;
+ res->parent = NULL;
+ res->sibling = NULL;
+ res->child = NULL;
+ }
+ }
+}
+
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c
index 0e2bee4..dc519e1 100644
--- a/arch/powerpc/kernel/pci_32.c
+++ b/arch/powerpc/kernel/pci_32.c
@@ -843,120 +843,6 @@ pci_device_from_OF_node(struct device_node* node, u8* bus, u8* devfn)
}
EXPORT_SYMBOL(pci_device_from_OF_node);
-void __init
-pci_process_bridge_OF_ranges(struct pci_controller *hose,
- struct device_node *dev, int primary)
-{
- static unsigned int static_lc_ranges[256] __initdata;
- const unsigned int *dt_ranges;
- unsigned int *lc_ranges, *ranges, *prev, size;
- int rlen = 0, orig_rlen;
- int memno = 0;
- struct resource *res;
- int np, na = of_n_addr_cells(dev);
- np = na + 5;
-
- /* First we try to merge ranges to fix a problem with some pmacs
- * that can have more than 3 ranges, fortunately using contiguous
- * addresses -- BenH
- */
- dt_ranges = of_get_property(dev, "ranges", &rlen);
- if (!dt_ranges)
- return;
- /* Sanity check, though hopefully that never happens */
- if (rlen > sizeof(static_lc_ranges)) {
- printk(KERN_WARNING "OF ranges property too large !\n");
- rlen = sizeof(static_lc_ranges);
- }
- lc_ranges = static_lc_ranges;
- memcpy(lc_ranges, dt_ranges, rlen);
- orig_rlen = rlen;
-
- /* Let's work on a copy of the "ranges" property instead of damaging
- * the device-tree image in memory
- */
- ranges = lc_ranges;
- prev = NULL;
- while ((rlen -= np * sizeof(unsigned int)) >= 0) {
- if (prev) {
- if (prev[0] == ranges[0] && prev[1] == ranges[1] &&
- (prev[2] + prev[na+4]) == ranges[2] &&
- (prev[na+2] + prev[na+4]) == ranges[na+2]) {
- prev[na+4] += ranges[na+4];
- ranges[0] = 0;
- ranges += np;
- continue;
- }
- }
- prev = ranges;
- ranges += np;
- }
-
- /*
- * The ranges property is laid out as an array of elements,
- * each of which comprises:
- * cells 0 - 2: a PCI address
- * cells 3 or 3+4: a CPU physical address
- * (size depending on dev->n_addr_cells)
- * cells 4+5 or 5+6: the size of the range
- */
- ranges = lc_ranges;
- rlen = orig_rlen;
- while (ranges && (rlen -= np * sizeof(unsigned int)) >= 0) {
- res = NULL;
- size = ranges[na+4];
- switch ((ranges[0] >> 24) & 0x3) {
- case 1: /* I/O space */
- if (ranges[2] != 0)
- break;
- hose->io_base_phys = ranges[na+2];
- /* limit I/O space to 16MB */
- if (size > 0x01000000)
- size = 0x01000000;
- hose->io_base_virt = ioremap(ranges[na+2], size);
- if (primary)
- isa_io_base = (unsigned long) hose->io_base_virt;
- res = &hose->io_resource;
- res->flags = IORESOURCE_IO;
- res->start = ranges[2];
- DBG("PCI: IO 0x%llx -> 0x%llx\n",
- (u64)res->start, (u64)res->start + size - 1);
- break;
- case 2: /* memory space */
- memno = 0;
- if (ranges[1] == 0 && ranges[2] == 0
- && ranges[na+4] <= (16 << 20)) {
- /* 1st 16MB, i.e. ISA memory area */
- if (primary)
- isa_mem_base = ranges[na+2];
- memno = 1;
- }
- while (memno < 3 && hose->mem_resources[memno].flags)
- ++memno;
- if (memno == 0)
- hose->pci_mem_offset = ranges[na+2] - ranges[2];
- if (memno < 3) {
- res = &hose->mem_resources[memno];
- res->flags = IORESOURCE_MEM;
- if(ranges[0] & 0x40000000)
- res->flags |= IORESOURCE_PREFETCH;
- res->start = ranges[na+2];
- DBG("PCI: MEM[%d] 0x%llx -> 0x%llx\n", memno,
- (u64)res->start, (u64)res->start + size - 1);
- }
- break;
- }
- if (res != NULL) {
- res->name = dev->full_name;
- res->end = res->start + size - 1;
- res->parent = NULL;
- res->sibling = NULL;
- res->child = NULL;
- }
- ranges += np;
- }
-}
-
/* We create the "pci-OF-bus-map" property now so it appears in the
* /proc device tree
*/
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index 291ffbc..68bce38 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -592,100 +592,6 @@ int pci_proc_domain(struct pci_bus *bus)
}
}
-void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose,
- struct device_node *dev, int prim)
-{
- const unsigned int *ranges;
- unsigned int pci_space;
- unsigned long size;
- int rlen = 0;
- int memno = 0;
- struct resource *res;
- int np, na = of_n_addr_cells(dev);
- unsigned long pci_addr, cpu_phys_addr;
-
- np = na + 5;
-
- /* From "PCI Binding to 1275"
- * The ranges property is laid out as an array of elements,
- * each of which comprises:
- * cells 0 - 2: a PCI address
- * cells 3 or 3+4: a CPU physical address
- * (size depending on dev->n_addr_cells)
- * cells 4+5 or 5+6: the size of the range
- */
- ranges = of_get_property(dev, "ranges", &rlen);
- if (ranges == NULL)
- return;
- hose->io_base_phys = 0;
- while ((rlen -= np * sizeof(unsigned int)) >= 0) {
- res = NULL;
- pci_space = ranges[0];
- pci_addr = ((unsigned long)ranges[1] << 32) | ranges[2];
- cpu_phys_addr = of_translate_address(dev, &ranges[3]);
- size = ((unsigned long)ranges[na+3] << 32) | ranges[na+4];
- ranges += np;
- if (size == 0)
- continue;
-
- /* Now consume following elements while they are contiguous */
- while (rlen >= np * sizeof(unsigned int)) {
- unsigned long addr, phys;
-
- if (ranges[0] != pci_space)
- break;
- addr = ((unsigned long)ranges[1] << 32) | ranges[2];
- phys = ranges[3];
- if (na >= 2)
- phys = (phys << 32) | ranges[4];
- if (addr != pci_addr + size ||
- phys != cpu_phys_addr + size)
- break;
-
- size += ((unsigned long)ranges[na+3] << 32)
- | ranges[na+4];
- ranges += np;
- rlen -= np * sizeof(unsigned int);
- }
-
- switch ((pci_space >> 24) & 0x3) {
- case 1: /* I/O space */
- hose->io_base_phys = cpu_phys_addr - pci_addr;
- /* handle from 0 to top of I/O window */
- hose->pci_io_size = pci_addr + size;
-
- res = &hose->io_resource;
- res->flags = IORESOURCE_IO;
- res->start = pci_addr;
- DBG("phb%d: IO 0x%lx -> 0x%lx\n", hose->global_number,
- res->start, res->start + size - 1);
- break;
- case 2: /* memory space */
- memno = 0;
- while (memno < 3 && hose->mem_resources[memno].flags)
- ++memno;
-
- if (memno == 0)
- hose->pci_mem_offset = cpu_phys_addr - pci_addr;
- if (memno < 3) {
- res = &hose->mem_resources[memno];
- res->flags = IORESOURCE_MEM;
- res->start = cpu_phys_addr;
- DBG("phb%d: MEM 0x%lx -> 0x%lx\n", hose->global_number,
- res->start, res->start + size - 1);
- }
- break;
- }
- if (res != NULL) {
- res->name = dev->full_name;
- res->end = res->start + size - 1;
- res->parent = NULL;
- res->sibling = NULL;
- res->child = NULL;
- }
- }
-}
-
#ifdef CONFIG_HOTPLUG
int pcibios_unmap_io_space(struct pci_bus *bus)
diff --git a/include/asm-powerpc/ppc-pci.h b/include/asm-powerpc/ppc-pci.h
index b847aa1..cd8ad87 100644
--- a/include/asm-powerpc/ppc-pci.h
+++ b/include/asm-powerpc/ppc-pci.h
@@ -15,6 +15,22 @@
#include <linux/pci.h>
#include <asm/pci-bridge.h>
+/* Address-cells and size-cells 2 */
+struct ranges_pci64_sz64 {
+ unsigned int pci_space;
+ unsigned int pci_addr[2];
+ unsigned int phys_addr[2];
+ unsigned int size[2];
+};
+
+/* Address-cells 1 */
+struct ranges_pci32_sz64 {
+ unsigned int pci_space;
+ unsigned int pci_addr[2];
+ unsigned int phys_addr[1];
+ unsigned int size[2];
+};
+
extern unsigned long isa_io_base;
extern void pci_setup_phb_io(struct pci_controller *hose, int primary);
^ permalink raw reply related
* [PATCH 2/3] [POWERPC] Add pci node to sequoia dts
From: Vitaly Bordug @ 2007-08-25 9:29 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Stefan Roese
In-Reply-To: <20070825091440.4087.1428.stgit@localhost.localdomain>
Signed-off-by: Vitaly Bordug <vitb@kernel.crashing.org>
Signed-off-by: Stefan Roese <sr@denx.de>
---
arch/powerpc/boot/dts/sequoia.dts | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/arch/powerpc/boot/dts/sequoia.dts b/arch/powerpc/boot/dts/sequoia.dts
index ef6f41c..8eb258f 100644
--- a/arch/powerpc/boot/dts/sequoia.dts
+++ b/arch/powerpc/boot/dts/sequoia.dts
@@ -92,6 +92,32 @@
#size-cells = <1>;
ranges;
clock-frequency = <0>; /* Filled in by zImage */
+
+ pci {
+ /* irqs are routed to irq67, dependless of devsel/PIRQx */
+ interrupt-map-mask = <0 0 0 0>;
+ interrupt-map = <0 0 0 0 &UIC2 3 8>;
+
+ interrupt-parent = <&UIC2>;
+ interrupts = <3 8>;
+
+ bus-range = <0 0>;
+
+ /*
+ * mem is at 80000000 set up indirectly
+ * io is at 0001_e800_0000
+ */
+ ranges = <02000000 0 80000000 1 80000000 0 10000000
+ 01000000 0 00000000 1 e8000000 0 00100000>;
+
+ #interrupt-cells = <1>;
+ #size-cells = <2>;
+ #address-cells = <3>;
+
+ reg = <1 eec00000 40 1 ef400000 40>; /* phb cfg, phb reg */
+ compatible = "ibm, 440epx";
+ device_type = "pci";
+ };
SDRAM0: sdram {
device_type = "memory-controller";
^ permalink raw reply related
* [PATCH 3/3] [POWERPC] Add PCI support for AMCC 440EPx (sequoia)
From: Vitaly Bordug @ 2007-08-25 9:30 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Stefan Roese
In-Reply-To: <20070825091440.4087.1428.stgit@localhost.localdomain>
In fact, loosely move of arch/ppc bits, though regions are
set up using values from ranges property. This also adds
setup_indirect_pci_noremap() function to handle indirect
PCI without one more ioremap.
Signed-off-by: Vitaly Bordug <vitb@kernel.crashing.org>
Signed-off-by: Stefan Roese <sr@denx.de>
---
arch/powerpc/platforms/44x/44x.h | 28 ++++
arch/powerpc/platforms/44x/Makefile | 4 +
arch/powerpc/platforms/44x/ppc440epx-pci.c | 192 ++++++++++++++++++++++++++++
arch/powerpc/platforms/44x/sequoia.c | 14 ++
arch/powerpc/sysdev/indirect_pci.c | 14 ++
include/asm-powerpc/pci-bridge.h | 2
6 files changed, 254 insertions(+), 0 deletions(-)
diff --git a/arch/powerpc/platforms/44x/44x.h b/arch/powerpc/platforms/44x/44x.h
index 42eabf8..d3845f9 100644
--- a/arch/powerpc/platforms/44x/44x.h
+++ b/arch/powerpc/platforms/44x/44x.h
@@ -1,8 +1,36 @@
#ifndef __POWERPC_PLATFORMS_44X_44X_H
#define __POWERPC_PLATFORMS_44X_44X_H
+#include <asm/pci-bridge.h>
+
+/* PCI support */
+#define PPC4xx_PCI_CFGA_OFFSET 0
+#define PPC4xx_PCI_CFGD_OFFSET 0x4
+
+#define PPC4xx_PCIL0_PMM0LA 0x000
+#define PPC4xx_PCIL0_PMM0MA 0x004
+#define PPC4xx_PCIL0_PMM0PCILA 0x008
+#define PPC4xx_PCIL0_PMM0PCIHA 0x00C
+#define PPC4xx_PCIL0_PMM1LA 0x010
+#define PPC4xx_PCIL0_PMM1MA 0x014
+#define PPC4xx_PCIL0_PMM1PCILA 0x018
+#define PPC4xx_PCIL0_PMM1PCIHA 0x01C
+#define PPC4xx_PCIL0_PMM2LA 0x020
+#define PPC4xx_PCIL0_PMM2MA 0x024
+#define PPC4xx_PCIL0_PMM2PCILA 0x028
+#define PPC4xx_PCIL0_PMM2PCIHA 0x02C
+#define PPC4xx_PCIL0_PTM1MS 0x030
+#define PPC4xx_PCIL0_PTM1LA 0x034
+#define PPC4xx_PCIL0_PTM2MS 0x038
+#define PPC4xx_PCIL0_PTM2LA 0x03C
extern u8 as1_readb(volatile u8 __iomem *addr);
extern void as1_writeb(u8 data, volatile u8 __iomem *addr);
extern void ppc44x_reset_system(char *cmd);
+#ifdef CONFIG_PCI
+int ppc440epx_exclude_device(struct pci_controller *hose,
+ u_char bus, u_char devfn);
+int ppc440epx_add_bridge(struct device_node *dev);
+#endif
+
#endif /* __POWERPC_PLATFORMS_44X_44X_H */
diff --git a/arch/powerpc/platforms/44x/Makefile b/arch/powerpc/platforms/44x/Makefile
index 10ce674..d2a5278 100644
--- a/arch/powerpc/platforms/44x/Makefile
+++ b/arch/powerpc/platforms/44x/Makefile
@@ -2,3 +2,7 @@ obj-$(CONFIG_44x) := misc_44x.o
obj-$(CONFIG_EBONY) += ebony.o
obj-$(CONFIG_BAMBOO) += bamboo.o
obj-$(CONFIG_SEQUOIA) += sequoia.o
+
+ifeq ($(CONFIG_PCI),y)
+obj-$(CONFIG_440EPX) += ppc440epx-pci.o
+endif
diff --git a/arch/powerpc/platforms/44x/ppc440epx-pci.c b/arch/powerpc/platforms/44x/ppc440epx-pci.c
new file mode 100644
index 0000000..bd4a352
--- /dev/null
+++ b/arch/powerpc/platforms/44x/ppc440epx-pci.c
@@ -0,0 +1,192 @@
+/*
+ * PPC44x PCI host support
+ *
+ * Vitaly Bordug <vitb@kernel.crashing.org>
+ * Stefan Roese <sr@denx.de>
+ *
+ * Based on arch/ppc sequoia pci bits, that are
+ * Copyright 2006-2007 DENX Software Engineering, Stefan Roese <sr@denx.de>
+ *
+ * Based on bamboo.c from Wade Farnsworth <wfarnsworth@mvista.com>
+ * Copyright 2004 MontaVista Software Inc.
+ * Copyright 2006 AMCC
+ * 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/pci.h>
+#include <linux/delay.h>
+#include <linux/irq.h>
+#include <linux/module.h>
+#include <linux/io.h>
+
+#include <mm/mmu_decl.h>
+
+#include <asm/system.h>
+#include <asm/atomic.h>
+#include <asm/pci-bridge.h>
+#include <asm/prom.h>
+
+#include "44x.h"
+
+#undef DEBUG
+
+#ifdef DEBUG
+#define DBG(x...) printk(x)
+#else
+#define DBG(x...)
+#endif
+
+#ifdef CONFIG_PCI
+
+int ppc440epx_exclude_device(struct pci_controller *hose, u_char bus,
+ u_char devfn)
+{
+ if ((bus == hose->first_busno) && PCI_SLOT(devfn) == 0)
+ return PCIBIOS_DEVICE_NOT_FOUND;
+ return PCIBIOS_SUCCESSFUL;
+}
+
+inline void pci_writel(void *pci_reg_base, u32 offset, unsigned int val)
+{
+ writel(val, pci_reg_base + offset);
+}
+
+inline void pci_cfg_out(void *cfg, u32 offset, unsigned int value)
+{
+ out_le32((void *)((u32) cfg + offset), value);
+}
+
+inline u32 pci_cfg_in(void *cfg, u32 offset)
+{
+ return in_le32((void *)((u32) cfg + offset));
+}
+
+static void __init ppc440epx_setup_pci(struct pci_controller *hose,
+ void *pci_reg_base, void *pci_cfg_base)
+{
+ unsigned long memory_size, pci_size = 0;
+ phys_addr_t pci_phys_base = 0;
+ phys_addr_t pci_pci_base = 0;
+ int i;
+
+ memory_size = total_memory;
+
+ /*
+ * 440EPx has single memory region, we'll use it to configure phb
+ */
+ for (i = 0; i < 3; i++)
+ if (hose->mem_resources[i].start) {
+ pci_phys_base = hose->mem_resources[i].start;
+ pci_pci_base = pci_phys_base - hose->pci_mem_offset;
+ pci_size =
+ hose->mem_resources[i].end -
+ hose->mem_resources[i].start;
+ }
+
+ if (pci_phys_base == 0) {
+ printk(KERN_ERR "PHB bridge memory region is not defined!\n");
+ return;
+ }
+
+ pci_cfg_out(pci_cfg_base, PPC4xx_PCI_CFGA_OFFSET,
+ (pci_pci_base & 0xFFFFFFFF) | (PCI_COMMAND & 0xfc));
+ pci_cfg_out(pci_cfg_base, PPC4xx_PCI_CFGD_OFFSET,
+ (pci_cfg_in(pci_cfg_base, PPC4xx_PCI_CFGD_OFFSET) |
+ PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER));
+
+ /* Disable region first */
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PMM0MA, 0);
+
+ /* PLB starting addr: 0x0000000180000000
+ * We need just lower word to get the things work
+ */
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PMM0LA,
+ pci_phys_base & 0xFFFFFFFF);
+
+ /* PCI start addr, 0x80000000 (PCI Address) */
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PMM0PCILA,
+ pci_pci_base & 0xFFFFFFFF);
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PMM0PCIHA, 0);
+
+ /* Enable no pre-fetch, enable region */
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PMM0MA,
+ ((0xffffffff - pci_size) | 0x01));
+
+ /* Disable region one */
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PMM1MA, 0);
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PMM1LA, 0);
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PMM1PCILA, 0);
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PMM1PCIHA, 0);
+
+ /* Disable region two */
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PMM1MA, 0);
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PMM1LA, 0);
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PMM1PCILA, 0);
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PMM1PCIHA, 0);
+
+ /* Now configure the PCI->PLB windows, we only use PTM1
+ *
+ * For Inbound flow, set the window size to all available memory
+ * This is required because if size is smaller,
+ * then Eth/PCI DD would fail as PCI card not able to access
+ * the memory allocated by DD.
+ */
+
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PTM1MS, 0);
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PTM1LA, 0);
+
+ memory_size = 1 << fls(memory_size - 1);
+
+ /* Size low + Enabled */
+ pci_writel(pci_reg_base, PPC4xx_PCIL0_PTM1MS,
+ (0xffffffff - (memory_size - 1)) | 0x1);
+ eieio();
+}
+
+int __init ppc440epx_add_bridge(struct device_node *dev)
+{
+ int len;
+ struct pci_controller *hose;
+ const int *bus_range;
+ int primary = 1;
+ void *reg, *cfg;
+
+ /* Fetch host bridge registers address */
+ reg = of_iomap(dev, 1);
+ cfg = of_iomap(dev, 0);
+
+ DBG("Adding PCI host bridge %s\n reg %p cfg %p\n", dev->full_name, reg,
+ cfg);
+
+ /* Get bus range if any */
+ bus_range = of_get_property(dev, "bus-range", &len);
+ if (bus_range == NULL || len < 2 * sizeof(int))
+ printk(KERN_WARNING "Can't get bus-range for %s, assume"
+ " bus 0\n", dev->full_name);
+
+ pci_assign_all_buses = 1;
+ hose = pcibios_alloc_controller(dev);
+ if (!hose)
+ return -ENOMEM;
+
+ hose->first_busno = bus_range ? bus_range[0] : 0;
+ hose->last_busno = bus_range ? bus_range[1] : 0xff;
+
+ setup_indirect_pci_noremap(hose, (u32) cfg,
+ (u32) (cfg + PPC4xx_PCI_CFGD_OFFSET), 0);
+
+ /* Interpret the "ranges" property */
+ /* This also maps the I/O region and sets isa_io/mem_base */
+ pci_process_bridge_OF_ranges(hose, dev, primary);
+ ppc440epx_setup_pci(hose, reg, cfg);
+
+ return 0;
+}
+#endif
diff --git a/arch/powerpc/platforms/44x/sequoia.c b/arch/powerpc/platforms/44x/sequoia.c
index ca3c9cc..c3a638b 100644
--- a/arch/powerpc/platforms/44x/sequoia.c
+++ b/arch/powerpc/platforms/44x/sequoia.c
@@ -52,6 +52,20 @@ static int __init sequoia_probe(void)
static void __init sequoia_setup_arch(void)
{
+#ifdef CONFIG_PCI
+ struct device_node *np;
+#endif
+
+ if (ppc_md.progress)
+ ppc_md.progress("ppc44x_setup_arch()", 0);
+
+#ifdef CONFIG_PCI
+ for (np = NULL; (np = of_find_compatible_node(np,
+ "pci", "ibm, 440epx")) != NULL;)
+ ppc440epx_add_bridge(np);
+ ppc_md.pci_exclude_device = ppc440epx_exclude_device;
+#endif
+
}
define_machine(sequoia) {
diff --git a/arch/powerpc/sysdev/indirect_pci.c b/arch/powerpc/sysdev/indirect_pci.c
index b5d0682..9dab751 100644
--- a/arch/powerpc/sysdev/indirect_pci.c
+++ b/arch/powerpc/sysdev/indirect_pci.c
@@ -162,3 +162,17 @@ setup_indirect_pci(struct pci_controller* hose, u32 cfg_addr, u32 cfg_data, u32
hose->ops = &indirect_pci_ops;
hose->indirect_type = flags;
}
+
+/*
+ * For some reason, ioremap does not handle 2-nd way mapping well,
+ * causing system check while trying to access config space later
+ */
+void __init
+setup_indirect_pci_noremap(struct pci_controller *hose, u32 cfg_addr,
+ u32 cfg_data, u32 flags)
+{
+ hose->cfg_addr = (void *)cfg_addr;
+ hose->cfg_data = (void *)cfg_data;
+ hose->ops = &indirect_pci_ops;
+ hose->indirect_type = flags;
+}
diff --git a/include/asm-powerpc/pci-bridge.h b/include/asm-powerpc/pci-bridge.h
index e909769..4bde6e5 100644
--- a/include/asm-powerpc/pci-bridge.h
+++ b/include/asm-powerpc/pci-bridge.h
@@ -99,6 +99,8 @@ extern int early_find_capability(struct pci_controller *hose, int bus,
extern void setup_indirect_pci(struct pci_controller* hose,
u32 cfg_addr, u32 cfg_data, u32 flags);
+extern void setup_indirect_pci_noremap(struct pci_controller *hose,
+ u32 cfg_addr, u32 cfg_data, u32 flags);
extern void setup_grackle(struct pci_controller *hose);
extern void __init update_bridge_resource(struct pci_dev *dev,
struct resource *res);
^ permalink raw reply related
* Re: [PATCH 2/3] [POWERPC] Add pci node to sequoia dts
From: Segher Boessenkool @ 2007-08-25 9:49 UTC (permalink / raw)
To: Vitaly Bordug; +Cc: linuxppc-dev, Stefan Roese
In-Reply-To: <20070825092954.4087.95333.stgit@localhost.localdomain>
> + pci {
> + reg = <1 eec00000 40 1 ef400000 40>; /* phb cfg, phb reg */
First component of reg is the unit address, so: pci@1eec00000 .
"phb cfg" is how you access PCI configuration space? It wouldn't
hurt to document that, either in a little binding or just here in
the code.
> + bus-range = <0 0>;
Can't you have subordinate PCI busses? Or are there no slots :-)
> + /*
> + * mem is at 80000000 set up indirectly
> + * io is at 0001_e800_0000
> + */
> + ranges = <02000000 0 80000000 1 80000000 0 10000000
> + 01000000 0 00000000 1 e8000000 0 00100000>;
Comment doesn't match code for the memory space. What does "set
up indirectly" mean here? Oh wait, you want to say that the host
addresses 1_8000_0000..1_8fff_ffff are translated to PCI addresses
8000_0000..8fff_ffff.
What about PCI DMA, is that identity mapped?
> + #interrupt-cells = <1>;
> + #size-cells = <2>;
> + #address-cells = <3>;
The reverse order of these is more conventional. Not that it
actually matters ;-)
> + compatible = "ibm, 440epx";
Stray space. And you need to say it is the PCI host, so something
like "ibm,440epx-pci".
Segher
^ permalink raw reply
* Re: [PATCH 2/3] [POWERPC] Add pci node to sequoia dts
From: Segher Boessenkool @ 2007-08-25 9:51 UTC (permalink / raw)
To: Vitaly Bordug; +Cc: linuxppc-dev, Stefan Roese
In-Reply-To: <20070825092954.4087.95333.stgit@localhost.localdomain>
> + compatible = "ibm, 440epx";
Oh, and shouldn't it be "amcc," anyway?
Segher
^ permalink raw reply
* Re: how to get your linux-2.6-virtex tree?
From: Grant Likely @ 2007-08-25 14:10 UTC (permalink / raw)
To: Ming Liu; +Cc: linuxppc-embedded
In-Reply-To: <BAY138-F375ED55654A9E20AE05486B2D00@phx.gbl>
On 8/25/07, Ming Liu <eemingliu@hotmail.com> wrote:
> Dear Grant,
> I am trying to get your linux-2.6-virtex tree. When I release the command
> "git-clone git://git.secretlab.ca/git/linux-2.6-virtex.git", it shows
>
> fatal: unexpected EOF
> fetch-pack from 'git://git.secretlab.ca/git/linux-2.6-virtex.git' failed.
Hmmm.... Works fine from my machines.
What does 'dig git.secretlab.ca' tell you? I see this:
;; ANSWER SECTION:
git.secretlab.ca. 1320 IN A 208.123.74.12
Have you tried the git:// protocol?
This is what I get when I clone from another machine:
grant@trillian:~/temp$ git-clone
git://git.secretlab.ca/git/linux-2.6-virtex.git
Initialized empty Git repository in /home/grant/temp/linux-2.6-virtex/.git/
remote: Generating pack...
remote: Counting objects: 504459
remote: Done counting 548333 objects.
remote: Deltifying 548333 objects...
remote: 100% (548333/548333) done
Indexing 548333 objects...
remote: Total 548333 (delta 445331), reused 547457 (delta 444455)
100% (548333/548333) done
Resolving 445331 deltas...
100% (445331/445331) done
Checking 22546 files out...
100% (22546/22546) done
grant@trillian:~/temp$
---
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ permalink raw reply
* Re: how to get your linux-2.6-virtex tree?
From: Jon Smirl @ 2007-08-25 14:29 UTC (permalink / raw)
To: Grant Likely; +Cc: linuxppc-embedded
In-Reply-To: <fa686aa40708250710q72bdaa90na4974f1af6030997@mail.gmail.com>
On 8/25/07, Grant Likely <grant.likely@secretlab.ca> wrote:
> Hmmm.... Works fine from my machines.
>
> grant@trillian:~/temp$ git-clone
> git://git.secretlab.ca/git/linux-2.6-virtex.git
I just checked it for you, both http and git are working.
--
Jon Smirl
jonsmirl@gmail.com
^ permalink raw reply
* Re: how to get your linux-2.6-virtex tree?
From: Ming Liu @ 2007-08-25 14:46 UTC (permalink / raw)
To: grant.likely; +Cc: linuxppc-embedded
In-Reply-To: <fa686aa40708250710q72bdaa90na4974f1af6030997@mail.gmail.com>
Dear Grant,
>What does 'dig git.secretlab.ca' tell you? I see this:
>;; ANSWER SECTION:
>git.secretlab.ca. 1320 IN A 208.123.74.12
I released 'dig git.secretlab.ca' and saw this:
;; QUESTION SECTION:
;git.secretlab.ca. IN A
;; ANSWER SECTION:
git.secretlab.ca. 855 IN A 208.123.74.12
>Have you tried the git:// protocol?
Yes. I tried both git:// and http://.
For git:// protocal:
mingliu@romeo ~ $ git-clone git://git.secretlab.ca/git/linux-2.6-virtex.git
fatal: unexpected EOF
fetch-pack from 'git://git.secretlab.ca/git/linux-2.6-virtex.git' failed.
For http:// protocal:
mingliu@romeo ~ $ git-clone
http://git.secretlab.ca/git/linux-2.6-virtex.git
Getting alternates list for
http://git.secretlab.ca/git/linux-2.6-virtex.git/
Getting pack list for http://git.secretlab.ca/git/linux-2.6-virtex.git/
Getting index for pack d1a6ff0f5f0433214bc37fd3038ff75f080c073d
Getting index for pack 41af2e852d9cb50ce5c8b3fe77c269780b979323
Getting index for pack a36ffcb5ecf2e87cbd9da9384dc9bd617f6169c4
Getting pack a36ffcb5ecf2e87cbd9da9384dc9bd617f6169c4
which contains 0d62d8a8e639210cecab55f5921f293cb8250a31
walk 0d62d8a8e639210cecab55f5921f293cb8250a31
walk f9892f74b7d827a7d1b80cd418aca30f32b46c73
Getting pack d1a6ff0f5f0433214bc37fd3038ff75f080c073d
which contains ebf9bf84da0aab5ed944264a5db2a65fe3a3e883
......
Is that the problem of my cluster? Ohmm. I need to check this now.
BR
Ming
_________________________________________________________________
免费下载 MSN Explorer: http://explorer.msn.com/lccn/
^ permalink raw reply
* Git Clone/Fetch Advice
From: Jon Loeliger @ 2007-08-25 14:50 UTC (permalink / raw)
To: linuxppc-dev
Folks,
As someone who runs a git server _and_ reads their log files,
I would like to offer a few words of advice about cloning or
fetching git repositories.
First, watch those project path names carefully. If someone
publishes a "linux-2.6-quux.git" repository, don't call it
the "linux-2.6.git" repository in your clone or fetch request.
And, oddly, don't call it "linux-2.6.quux.git" either! :-)
Second, upgrade your git installation. I repeatedly see failed
clone requests due to outdated git clients trying to do a clone
or a fetch. If you _know_ you have the clone path to the project
right, and it still doesn't seem to work, chance are very good
that you are using a git earlier than v1.4.2. It is now time
to find something v1.5 or better. 1.5.3 is due out Real Soon Now!
I publish a _few_ repositories, and I see maybe 20 or 30 such
failed clone/fetch requests per day. I hate to imagine what
the failure rate on kernel.org is!
Thanks,
jdl
^ permalink raw reply
* Re: [PATCH] ucc_geth: kill unused include
From: Kumar Gala @ 2007-08-25 14:57 UTC (permalink / raw)
To: Jeff Garzik; +Cc: netdev, Li Yang, Paul Mackerras, linuxppc-dev
In-Reply-To: <46CFB1FA.1040705@garzik.org>
On Aug 24, 2007, at 11:37 PM, Jeff Garzik wrote:
> Kumar Gala wrote:
>> The ucc_geth_mii code is based on the gianfar_mii code that use to
>> include
>> ocp.h. ucc never need this and it causes issues when we want to kill
>> arch/ppc includes from arch/powerpc.
>> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
>> ---
>> Jeff, if you issue with this for 2.6.23, I'd prefer to push this via
>> the powerpc.git trees in 2.6.24 as part of a larger cleanup. Let
>> me know
>> one way or the other.
>> - k
>> drivers/net/ucc_geth_mii.c | 1 -
>> 1 files changed, 0 insertions(+), 1 deletions(-)
>> diff --git a/drivers/net/ucc_geth_mii.c b/drivers/net/ucc_geth_mii.c
>> index 6c257b8..df884f0 100644
>> --- a/drivers/net/ucc_geth_mii.c
>> +++ b/drivers/net/ucc_geth_mii.c
>> @@ -32,7 +32,6 @@
>> #include <linux/mm.h>
>> #include <linux/module.h>
>> #include <linux/platform_device.h>
>> -#include <asm/ocp.h>
>> #include <linux/crc32.h>
>> #include <linux/mii.h>
>
> Feel free to push via PPC git
will do.
thanks
- k
^ permalink raw reply
* Re: how to get your linux-2.6-virtex tree?
From: Grant Likely @ 2007-08-25 15:24 UTC (permalink / raw)
To: Ming Liu; +Cc: linuxppc-embedded
In-Reply-To: <BAY138-F32C3A2797C436D673EABDDB2D00@phx.gbl>
On 8/25/07, Ming Liu <eemingliu@hotmail.com> wrote:
> Dear Grant,
>
> >What does 'dig git.secretlab.ca' tell you? I see this:
> >;; ANSWER SECTION:
> >git.secretlab.ca. 1320 IN A 208.123.74.12
>
> I released 'dig git.secretlab.ca' and saw this:
> ;; QUESTION SECTION:
> ;git.secretlab.ca. IN A
>
> ;; ANSWER SECTION:
> git.secretlab.ca. 855 IN A 208.123.74.12
Upgrade to a newer version of git. git.secretlab.ca uses the virtual
hosting feature of git daemon, but you need to be using git version >
1.5
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ 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