Address mapping PPC 405
Hello,
I have a question on how PPC addressing works. I am familiar with
the MIPS architecture and new to PPC.
On MIPS, there are KUSEG (0x0000_0000 to 0x07FF_FFFF)
which is always translated using TLB. Then there are two un-translated areas KSEG0 (0x8000_0000 which is cached) and KSEG1 (0xA000_0000).
Hence, the kernel is compiled with .text at 0x8000_0000. For kernel
itself, the TLB is never consulted. All the local peripherals will be mappe= d to=20
0xA000_0000. That means, from kernel, if I have to access a register of any= =20
peripheral, I can use the un-mapped address and everything will work.
On PPC I see that, the kernel .text is at 0xC000_0000. Is it a=20
translated address? If it is, for running kernel code, the CPU has to consult the TLB always?
Another question is regarding addressing local peripherals. I am using
an ML310 board from Xilinx and it has DDR mapped to 0x0000_0000 to 0x0FFF_FFFF (256 MB). Now, I need to add an IP to the PLB. For that, I am thinking of using 0x2000_0000 to 0x2000_0FFF. Now, my driver need to access the registers within the above region. How will I do that? It is an I/O, hence should I use ioremap, or can I access it directly? What role cache will play in this case?
The third question is, can I use de-referencing of address. Is it O.K
to use pointers to access the registers, or do I have to use read/write variants?=20
I would appreciate a lot if you could give some insight into this. Any
pointers or reading materials will be very helpful.
Thanks and regards,
Sadik.
Quoted 5 lines · P. Sadik
Hello,
On PPC I see that, the kernel .text is at 0xC000_0000. Is it a
translated address? If it is, for running kernel code, the CPU has to consult the TLB always?
Typically, PPC systems have RAM based at physical address 0 which is mapped up to 0xc0000000. Once the MMU is turned on the TLB is consulted for every memory access.
Quoted 8 lines
Another question is regarding addressing local peripherals. I am using
an ML310 board from Xilinx and it has DDR mapped to 0x0000_0000 to 0x0FFF_FFFF (256 MB). Now, I need to add an IP to the PLB. For that, I am thinking of using 0x2000_0000 to 0x2000_0FFF. Now, my driver need to access the registers within the above region. How will I do that? It is an I/O, hence should I use ioremap, or can I access it directly? What role cache will play in this case?
You can put your peripherals anywhere within the address space as long as they don't conflict with each other. You must add a page mapping for each peripheral because once the MMU is turned on you can no longer access physical addresses directly. I believe ioremap is the correct facility to do this.
Quoted 4 lines
The third question is, can I use de-referencing of address. Is it O.K
to use pointers to access the registers, or do I have to use read/write variants?
Since there is no seperate IO memory space you can access the registers with simple pointers.
Whether or not it is a good idea (based on coding conventions) I'll leave for someone else to answer. :)
Quoted 3 lines
I would appreciate a lot if you could give some insight into this. Any
pointers or reading materials will be very helpful.
Keep me updated on your progress. I'm working on the ML300 and a couple of the MEMEC boards to make v2pro support more flexible in 2.6.x, and I'd like to hear about your experiences.
Cheers,
g.
Quoted 8 lines
Thanks and regards,
Sadik.
_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded
Quoted 7 lines
Since there is no seperate IO memory space you can access the registers with simple pointers.
Whether or not it is a good idea (based on coding conventions) I'll leave for someone else to answer. :)
You want to use the read{b,w,l} and write{b,w,l} macros for two reasons:
1. Accesses to registers need to be synch'ed with 'eieio' or some other synchronizing instructions.
2. Portability of your driver if you ever should ever move it to a different architecture and/or change the endianness in your system
- Peter
Quoted 2 lines · P. Sadik
I have a question on how PPC addressing works. I am familiar with
the MIPS architecture and new to PPC.
Hello!
Quoted 4 lines
On MIPS, there are KUSEG (0x0000_0000 to 0x07FF_FFFF)
which is always translated using TLB. Then there are two un-translated areas KSEG0 (0x8000_0000 which is cached) and KSEG1 (0xA000_0000).
Lovely. We don't do it that way on 405 but we could - since the MMU is heavy soft assisted we could do that - we actually have everything run through the MMU once we've done initial MMU setup, but we do have the ability to mark ranges of addresses for IO and have the concept of TLB pinning to lock ranges of kernel addresses in large translated (BAT like for bigger PPC users) regions using just a few TLB slots. There is also a ZPR (zone protection register), but that's mostly used to fake the usual USER/KERNEL page distinction.
Quoted 3 lines
On PPC I see that, the kernel .text is at 0xC000_0000. Is it a
translated address? If it is, for running kernel code, the CPU has to consult the TLB always?
It's translated except during early setup and on certain exceptions - but everything else you will do in the kernel sees virtual addresses.
Quoted 2 lines
Another question is regarding addressing local peripherals. I am using
an ML310 board from Xilinx
That I guessed. Partly since Peter had already replied, but also because that's a large chunk of ppc405 users currently working on new designs. Please bear in mind that only a few of us are aware of the issues below.
Quoted 6 lines
and it has DDR mapped to 0x0000_0000
to 0x0FFF_FFFF (256 MB). Now, I need to add an IP to the PLB. For that, I am thinking of using 0x2000_0000 to 0x2000_0FFF. Now, my driver need to access the registers within the above region. How will I do that? It is an I/O, hence should I use ioremap, or can I access it directly? What role cache will play in this case?
You'll need to do an ioremap to get at that physical address from the kernel, then use the returned virtual address to access your peripheral. You should always use the appropriate read function rather than doing a stw and an eieio and you probably want to make sure your bootloader also has setup the right ZPR/etc. if you want to write to that before Linux.
Quoted 3 lines
The third question is, can I use de-referencing of address. Is it O.K
to use pointers to access the registers, or do I have to use read/write variants?
You /can/ use a deference if you're setup that region as an IO remap but why bother? That said, we've probably all done it and it does work
- that is your call.
Quoted 2 lines
I would appreciate a lot if you could give some insight into this. Any
pointers or reading materials will be very helpful.
Feel free to email. I've done a bunch of ml<insert number> projects and I'm coming up on a ML403 when I get around to buying one for home :-)
Jon.
P.S. I've been quiet on this list for a while, standard moving and conference season combo.
Quoted 10 lines · Jon Masters
On 8/26/05, P. Sadik <[email protected]> wrote:
=20
Lovely. We don't do it that way on 405 but we could - since the MMU is heavy soft assisted we could do that - we actually have everything run through the MMU once we've done initial MMU setup, but we do have the ability to mark ranges of addresses for IO and have the concept of TLB pinning to lock ranges of kernel addresses in large translated (BAT like for bigger PPC users) regions using just a few TLB slots. There is also a ZPR (zone protection register), but that's mostly used to fake the usual USER/KERNEL page distinction.
I believe TLB pinning was removed in 2.6 in favor of large TLB entries for kernel space. Matt Porter pointed this out to me about a week ago. This will not matter of course if you're not using 2.6.
Matt, is there any documentation covering the new design in the kernel tree= ?
Cheers,
g.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Grant Likely wrote:
| On 8/28/05, Jon Masters <[email protected]> wrote: | |>On 8/26/05, P. Sadik <[email protected]> wrote: |> |>Lovely. We don't do it that way on 405 but we could - since the MMU is |>heavy soft assisted we could do that - we actually have everything run |>through the MMU once we've done initial MMU setup, but we do have the |>ability to mark ranges of addresses for IO and have the concept of TLB |>pinning to lock ranges of kernel addresses in large translated (BAT |>like for bigger PPC users) regions using just a few TLB slots. There |>is also a ZPR (zone protection register), but that's mostly used to |>fake the usual USER/KERNEL page distinction.
| I believe TLB pinning was removed in 2.6 in favor of large TLB entries | for kernel space. Matt Porter pointed this out to me about a week | ago. This will not matter of course if you're not using 2.6.
Maybe so. I'm thinking this is likely on 2.4 but I'd be interested to know what you mean - this isn't hugetlb (that's different), and TLB pinning on 2.4 means you only use a couple of (large) entries anyway. I can go read the source I suppose :-)
| Matt, is there any documentation covering the new design in the kernel tree?
Hmmm...doc-u-what? :P
Jon.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFDEmC6eTyyexZHHxERAknhAJsHFukzIvJc/GEpI6KT6VFjTm6zTgCeMlht 0jiMOVsht7kOGY2aIsnSObs=
=Uuxh
-----END PGP SIGNATURE-----
Quoted 18 lines · Jon Masters
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1Grant Likely wrote:
| On 8/28/05, Jon Masters <[email protected]> wrote: | |>On 8/26/05, P. Sadik <[email protected]> wrote: |> |>Lovely. We don't do it that way on 405 but we could - since the MMU is |>heavy soft assisted we could do that - we actually have everything run |>through the MMU once we've done initial MMU setup, but we do have the |>ability to mark ranges of addresses for IO and have the concept of TLB |>pinning to lock ranges of kernel addresses in large translated (BAT |>like for bigger PPC users) regions using just a few TLB slots. There |>is also a ZPR (zone protection register), but that's mostly used to |>fake the usual USER/KERNEL page distinction.
Quoted 8 lines
| I believe TLB pinning was removed in 2.6 in favor of large TLB entries | for kernel space. Matt Porter pointed this out to me about a week | ago. This will not matter of course if you're not using 2.6.Maybe so. I'm thinking this is likely on 2.4 but I'd be interested to know what you mean - this isn't hugetlb (that's different), and TLB pinning on 2.4 means you only use a couple of (large) entries anyway. I can go read the source I suppose :-)
The following is 405 specific.
Well, on 2.4 we have CONFIG_PIN_TLB which covers the first 32MB of kernel lowmem with two fixed 16MB TLB entries. In 2.6, all of kernel lowmem is mapped by large pages of 16MB and 4MB sizes.
hugetlbfs, ioremap, and io_block_map could all be hooked into the 405 large page replacement support. I've been looking at doing this for 405 and 440 in my copious spare time. :)
-Matt
PPC4xx cleanup
Hi,
I am right now testing and cleaning up some of the AMCC 4xx eval board ports to better support U-Boot as firmware. One question before I begin to send a few patches:
All of the 44x boards I looked at (e.g. Ocotea) have to be extended in the platform file (e.g. platforms/4xx/ocotea.c) to not only copy the bd_info struct from r3, but also check r4 and r6 for initrd and kernel command line passing from the bootloader. Instead of adding this code to all different platform files, I would like to move this code to the common function "ibm44x_platform_init" (syslib/ibm44x_common.c) like it is done in the 40x ports "ppc4xx_init" (syslib/ppc4xx_setup.c).
Any objections/remarks?
Best regards,
Stefan
Re: PPC4xx cleanup
Quoted 14 lines · Stefan Roese
Hi,
I am right now testing and cleaning up some of the AMCC 4xx eval board ports to better support U-Boot as firmware. One question before I begin to send a few patches:
All of the 44x boards I looked at (e.g. Ocotea) have to be extended in the platform file (e.g.
platforms/4xx/ocotea.c) to not only copy thebd_infostruct from r3, but also check r4 and r6 for initrd and kernel command line passing from the bootloader. Instead of adding this code to all different platform files, I would like to move this code to the common function "ibm44x_platform_init" (syslib/ibm44x_common.c) like it is done in the 40x ports "ppc4xx_init" (syslib/ppc4xx_setup.c).
Quoted 1 line
Any objections/remarks?
Sounds great to me. This will have to wait to go in mainline until after 2.6.14 is out though.
-Matt
Re: PPC4xx cleanup
Quoted 2 lines · Matt Porter
Sounds great to me. This will have to wait to go in mainline until after 2.6.14 is out though.
If you are considering this, I think you should be looking at the recent U-Boot discussion and patches for the "flat OF tree" and follow that path.
Thanks.
-- Dan
Re: PPC4xx cleanup
Quoted 9 lines · Dan Malek
Quoted 2 lines · Matt Porter
Sounds great to me. This will have to wait to go in mainline until after 2.6.14 is out though.
If you are considering this, I think you should be looking at the recent U-Boot discussion and patches for the "flat OF tree" and follow that path.
We need to fix the kernel versus the current version of U-boot's data passing scheme for ppc32. Once the flat OF tree stuff is mainline we can convert to it...except we have to have a wrapper for older versions of u-boot assuming that somebody will have changed U-boot so 4xx dumps a flat OF tree.
-Matt
PATCH 1/1 ppc32: cleanup AMCC PPC4xx eval boards to better support U-Boot
In reply to Matt PorterAdd U-Boot support to AMCC PPC405 eval boards (bubinga, sycamore and walnut) and cleanup PPC440 eval boards (bamboo, ebony, luan and ocotea) to better support U-Boot as bootloader.
Best regards,
Stefan
[PATCH] ppc32: cleanup AMCC PPC4xx eval boards to better support U-Boot
Add U-Boot support to AMCC PPC405 eval boards (bubinga, sycamore and walnut) and cleanup PPC440 eval boards (bamboo, ebony, luan and ocotea) to better support U-Boot as bootloader.
---
commit ca5c0372ee8b8ea6c6090665743cc5fb90eb667d
tree 9306e22f6c382dc54b2b57d14c321a5baf101da7
parent d8ac10639b6a1ed900efbee38c18baaca31e64dc
author Stefan Roese <[email protected]> Fri, 16 Sep 2005 12:52:16 +0200 committer Stefan Roese <[email protected]> Fri, 16 Sep 2005 12:52:16 +0200
arch/ppc/platforms/4xx/Kconfig | 14 +++++++++++--- arch/ppc/platforms/4xx/bamboo.c | 14 ++------------ arch/ppc/platforms/4xx/bubinga.c | 20 ++++++++++++++++++++ arch/ppc/platforms/4xx/bubinga.h | 7 +++++++ arch/ppc/platforms/4xx/ebony.c | 13 ++----------- arch/ppc/platforms/4xx/luan.c | 13 ++----------- arch/ppc/platforms/4xx/ocotea.c | 31 +++++++++++-------------------- arch/ppc/platforms/4xx/sycamore.c | 2 +- arch/ppc/platforms/4xx/sycamore.h | 7 +++++++ arch/ppc/platforms/4xx/walnut.h | 7 +++++++ arch/ppc/syslib/ibm44x_common.c | 35 ++++++++++++++++++++++++++++++++++- arch/ppc/syslib/ibm44x_common.h | 3 ++- include/asm-ppc/ppcboot.h | 4 ++-- 13 files changed, 108 insertions(+), 62 deletions(-)
arch/ppc/platforms/4xx/Kconfig +11 -3
@@ -212,10 +212,18 @@ config EMBEDDEDBOOT depends on EP405 || XILINX_ML300 default y -config IBM_OPENBIOS - bool +choice + prompt "Bootloader support" depends on ASH || BUBINGA || REDWOOD_5 || REDWOOD_6 || SYCAMORE || WALNUT - default y + default IBM_OPENBIOS + +config IBM_OPENBIOS + bool "IBM OpenBIOS" + +config UBOOT + bool "U-Boot" + +endchoice config PPC4xx_DMA bool "PPC4xx DMA controller support"
arch/ppc/platforms/4xx/bamboo.c +2 -12
@@ -52,7 +52,7 @@#include <syslib/gen550.h> #include <syslib/ibm440gx_common.h> -bd_t __res; +extern bd_t __res;static struct ibm44x_clocks clocks__initdata ;
@@ -426,17 +426,7 @@ bamboo_setup_arch(void)void __init platform_init (unsigned long r3,unsigned long r4,unsigned long r5,unsigned long r6,unsigned long r7) { -parse_bootinfo (find_bootinfo ()); - -/* -* If we were passed in a board information, copy it into the -* residual data area. -*/ -if (r3) - __res = *(bd_t *)(r3 +KERNELBASE ); - - -ibm44x_platform_init (); +ibm44x_platform_init (r3, r4, r5, r6, r7); ppc_md.setup_arch = bamboo_setup_arch; ppc_md.show_cpuinfo = bamboo_show_cpuinfo;
arch/ppc/platforms/4xx/bubinga.c +20 -0
@@ -89,7 +89,11 @@ bubinga_early_serial_map(void)* by 16. */ uart_div = (mfdcr (DCRN_CPC0_UCR_BASE ) &DCRN_CPC0_UCR_U0DIV ); +#ifdef CONFIG_UBOOT + uart_clock = __res.bi_procfreq / uart_div; +#else uart_clock = __res.bi_pllouta_freq / uart_div; +#endif /* Setup serial port access */ memset (&port,0 ,sizeof (port));
@@ -218,9 +222,25 @@ bios_fixup(struct pci_controller *hose,void __init bubinga_setup_arch (void ) { +#ifdef CONFIG_UBOOT +struct ocp_def *def; +struct ocp_func_emac_data *emacdata; +#endif +ppc4xx_setup_arch (); +#ifdef CONFIG_UBOOT +/* Set mac_addr for each EMAC */ + def =ocp_get_one_device (OCP_VENDOR_IBM ,OCP_FUNC_EMAC ,0 ); + emacdata = def->additions; +memcpy (emacdata->mac_addr, __res.bi_enetaddr,6 ); + + def =ocp_get_one_device (OCP_VENDOR_IBM ,OCP_FUNC_EMAC ,1 ); + emacdata = def->additions; +memcpy (emacdata->mac_addr, __res.bi_enet1addr,6 ); +#else ibm_ocp_set_emac (0 ,1 ); +#endif bubinga_early_serial_map ();
arch/ppc/platforms/4xx/bubinga.h +7 -0
@@ -18,6 +18,8 @@#include <platforms/4xx/ibm405ep.h> #ifndef __ASSEMBLY__ + +#ifdef CONFIG_IBM_OPENBIOS /* * Data structure defining board information maintained by the boot * ROM on IBM's evaluation board. An effort has been made to
@@ -36,6 +38,11 @@ typedef struct board_info {unsigned int bi_opb_busfreq;/* OPB Bus speed, in Hz */ unsigned int bi_pllouta_freq; /* PLL OUTA speed, in Hz */ } bd_t; +#elif CONFIG_UBOOT +#include <asm/ppcboot.h> +#else +#error "Please enable either IBM OpenBIOS or U-Boot bootloader support!" +#endif /* Some 4xx parts use a different timebase frequency from the internal clock. */
arch/ppc/platforms/4xx/ebony.c +2 -11
@@ -55,7 +55,7 @@#include <syslib/gen550.h> #include <syslib/ibm440gp_common.h> -bd_t __res; +extern bd_t __res;static struct ibm44x_clocks clocks__initdata ;
@@ -318,16 +318,7 @@ ebony_setup_arch(void)void __init platform_init (unsigned long r3,unsigned long r4,unsigned long r5,unsigned long r6,unsigned long r7) { -parse_bootinfo (find_bootinfo ()); - -/* -* If we were passed in a board information, copy it into the -* residual data area. -*/ -if (r3) - __res = *(bd_t *)(r3 +KERNELBASE ); - -ibm44x_platform_init (); +ibm44x_platform_init (r3, r4, r5, r6, r7); ppc_md.setup_arch = ebony_setup_arch; ppc_md.show_cpuinfo = ebony_show_cpuinfo;
arch/ppc/platforms/4xx/luan.c +2 -11
@@ -53,7 +53,7 @@#include <syslib/ibm440gx_common.h> #include <syslib/ibm440sp_common.h> -bd_t __res; +extern bd_t __res;static struct ibm44x_clocks clocks__initdata ;
@@ -356,16 +356,7 @@ luan_setup_arch(void)void __init platform_init (unsigned long r3,unsigned long r4,unsigned long r5,unsigned long r6,unsigned long r7) { -parse_bootinfo (find_bootinfo ()); - -/* -* If we were passed in a board information, copy it into the -* residual data area. -*/ -if (r3) - __res = *(bd_t *)(r3 +KERNELBASE ); - -ibm44x_platform_init (); +ibm44x_platform_init (r3, r4, r5, r6, r7); ppc_md.setup_arch = luan_setup_arch; ppc_md.show_cpuinfo = luan_show_cpuinfo;
arch/ppc/platforms/4xx/ocotea.c +11 -20
@@ -53,7 +53,7 @@#include <syslib/gen550.h> #include <syslib/ibm440gx_common.h> -bd_t __res; +extern bd_t __res;static struct ibm44x_clocks clocks__initdata ;
@@ -287,6 +287,15 @@ ocotea_setup_arch(void)ibm440gx_tah_enable (); +/* +* Determine various clocks. +* To be completely correct we should get SysClk +* from FPGA, because it can be changed by on-board switches +* --ebs +*/ +ibm440gx_get_clocks (&clocks,33333333 ,6 *1843200 ); + ocp_sys_info.opb_bus_freq = clocks.opb; +/* Setup TODC access */ TODC_INIT(TODC_TYPE_DS1743, 0,
@@ -325,25 +334,7 @@ static void __init ocotea_init(void)void __init platform_init (unsigned long r3,unsigned long r4,unsigned long r5,unsigned long r6,unsigned long r7) { -parse_bootinfo (find_bootinfo ()); - -/* -* If we were passed in a board information, copy it into the -* residual data area. -*/ -if (r3) - __res = *(bd_t *)(r3 +KERNELBASE ); - -/* -* Determine various clocks. -* To be completely correct we should get SysClk -* from FPGA, because it can be changed by on-board switches -* --ebs -*/ -ibm440gx_get_clocks (&clocks,33333333 ,6 *1843200 ); - ocp_sys_info.opb_bus_freq = clocks.opb; - -ibm44x_platform_init (); +ibm44x_platform_init (r3, r4, r5, r6, r7); ppc_md.setup_arch = ocotea_setup_arch; ppc_md.show_cpuinfo = ocotea_show_cpuinfo;
arch/ppc/platforms/4xx/sycamore.c +1 -1
@@ -100,7 +100,7 @@ sycamore_setup_arch(void)ppc4xx_setup_arch (); -ibm_ocp_set_emac (0 ,1 ); +ibm_ocp_set_emac (0 ,0 ); kb_data =ioremap (SYCAMORE_PS2_BASE ,8 );if (!kb_data) {
arch/ppc/platforms/4xx/sycamore.h +7 -0
@@ -19,6 +19,8 @@#include <platforms/4xx/ibm405gpr.h> #ifndef __ASSEMBLY__ + +#ifdef CONFIG_IBM_OPENBIOS /* * Data structure defining board information maintained by the boot * ROM on IBM's "Sycamore" evaluation board. An effort has been made to
@@ -36,6 +38,11 @@ typedef struct board_info {unsigned int bi_busfreq;/* PLB Bus speed, in Hz */ unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */ } bd_t; +#elif CONFIG_UBOOT +#include <asm/ppcboot.h> +#else +#error "Please enable either IBM OpenBIOS or U-Boot bootloader support!" +#endif /* Some 4xx parts use a different timebase frequency from the internal clock. */
arch/ppc/platforms/4xx/walnut.h +7 -0
@@ -24,6 +24,8 @@#include <platforms/4xx/ibm405gp.h> #ifndef __ASSEMBLY__ + +#ifdef CONFIG_IBM_OPENBIOS /* * Data structure defining board information maintained by the boot * ROM on IBM's "Walnut" evaluation board. An effort has been made to
@@ -41,6 +43,11 @@ typedef struct board_info {unsigned int bi_busfreq;/* PLB Bus speed, in Hz */ unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */ } bd_t; +#elif CONFIG_UBOOT +#include <asm/ppcboot.h> +#else +#error "Please enable either IBM OpenBIOS or U-Boot bootloader support!" +#endif /* Some 4xx parts use a different timebase frequency from the internal clock. */
arch/ppc/syslib/ibm44x_common.c +34 -1
@@ -27,9 +27,14 @@#include <asm/time.h> #include <asm/ppc4xx_pic.h> #include <asm/param.h> +#include <asm/bootinfo.h> +#include <asm/ppcboot.h> #include <syslib/gen550.h> +/* Global Variables */ +bd_t __res; +phys_addr_t fixup_bigphys_addr (phys_addr_t addr,phys_addr_t size) {phys_addr_t page_4gb =0 ;
@@ -150,8 +155,36 @@ static unsigned long __init ibm44x_find_return mem_size; } -void __init ibm44x_platform_init (void ) +void __init ibm44x_platform_init (unsigned long r3,unsigned long r4,unsigned long r5, +unsigned long r6,unsigned long r7) { +parse_bootinfo (find_bootinfo ()); + +/* +* If we were passed in a board information, copy it into the +* residual data area. +*/ +if (r3) + __res = *(bd_t *)(r3 +KERNELBASE ); + +#if defined(CONFIG_BLK_DEV_INITRD ) +/* +* If the init RAM disk has been configured in, and there's a valid +* starting address for it, set it up. +*/ +if (r4) { + initrd_start = r4 +KERNELBASE ; + initrd_end = r5 +KERNELBASE ; + } +#endif /* CONFIG_BLK_DEV_INITRD */ + +/* Copy the kernel command line arguments to a safe place. */ + +if (r6) { + *(char *) (r7 +KERNELBASE ) =0 ; +strcpy (cmd_line, (char *) (r6 +KERNELBASE )); + } + ppc_md.init_IRQ = ppc4xx_pic_init; ppc_md.find_end_of_memory = ibm44x_find_end_of_memory; ppc_md.restart = ibm44x_restart;
arch/ppc/syslib/ibm44x_common.h +2 -1
@@ -36,7 +36,8 @@ struct ibm44x_clocks { };/* common 44x platform init */ -void ibm44x_platform_init (void )__init ; +void ibm44x_platform_init (unsigned long r3,unsigned long r4,unsigned long r5, +unsigned long r6,unsigned long r7)__init ;/* initialize decrementer and tick-related variables */ void ibm44x_calibrate_decr (unsigned int freq)__init ;
include/asm-ppc/ppcboot.h +2 -2
@@ -73,8 +73,8 @@ typedef struct bd_info {#if defined(CONFIG_HYMOD )hymod_conf_t bi_hymod_conf;/* hymod configuration information */ #endif -#if defined(CONFIG_EVB64260 ) || defined(CONFIG_44x) || defined(CONFIG_85xx) ||\ - defined(CONFIG_83xx) +#if defined(CONFIG_EVB64260 ) || defined(CONFIG_405EP ) || defined(CONFIG_44x) || \ + defined(CONFIG_85xx) || defined(CONFIG_83xx)/* second onboard ethernet port */ unsigned char bi_enet1addr[6 ];#endif
!-------------------------------------------------------------flip-
Re: [PATCH] ppc32: cleanup AMCC PPC4xx eval boards to better support U-Boot
Quoted 3 lines · Stefan Roese
Add U-Boot support to AMCC PPC405 eval boards (bubinga, sycamore and walnut) and cleanup PPC440 eval boards (bamboo, ebony, luan and ocotea) to better support U-Boot as bootloader.
In general, 44x pieces look OK, but 40x aren't. Notice, that we don't have any #ifdef CONFIG_UBOOT in 44x sources. Let's not add them for 40x, try to replicate the same boot-wrapper approach as Matt used for 44x.
[snip]
Quoted 12 lines
arch/ppc/platforms/4xx/Kconfig +2
-2@@ -212,10 +212,18 @@ config EMBEDDEDBOOT depends on EP405 || XILINX_ML300 default y -config IBM_OPENBIOS - bool +choice + prompt "Bootloader support" depends on ASH || BUBINGA || REDWOOD_5 || REDWOOD_6 || SYCAMORE || WALNUT
arch/ppc/platforms/4xx/Kconfig config EMBEDDEDBOOT · line 226
Quoted 10 lines
arch/ppc/platforms/4xx/Kconfig +9
-1- default y + default IBM_OPENBIOS + +config IBM_OPENBIOS + bool "IBM OpenBIOS" + +config UBOOT + bool "U-Boot" + +endchoice
Do we really need this? U-Boot build is different from OpenBIOS already (we just use vmlinux without any boot-wrapper) and is selected by different make target.
[snip]
arch/ppc/platforms/4xx/bubinga.c bubinga_early_serial_map(void) · line 96
Quoted 11 lines
arch/ppc/platforms/4xx/bubinga.c +4
-0@@ -89,7 +89,11 @@ bubinga_early_serial_map(void)* by 16. */ uart_div = (mfdcr (DCRN_CPC0_UCR_BASE ) &DCRN_CPC0_UCR_U0DIV ); +#ifdef CONFIG_UBOOT + uart_clock = __res.bi_procfreq / uart_div; +#else uart_clock = __res.bi_pllouta_freq / uart_div; +#endif
Why not just rename this field and skip this ugly ifdefing?
Signature · 1 line
Eugene
Re: [PATCH] ppc32: cleanup AMCC PPC4xx eval boards to better support U-Boot
Hi Eugene,
Quoted 9 lines · Eugene Surovegin
Quoted 3 lines · Stefan Roese
Add U-Boot support to AMCC PPC405 eval boards (bubinga, sycamore and walnut) and cleanup PPC440 eval boards (bamboo, ebony, luan and ocotea) to better support U-Boot as bootloader.
In general, 44x pieces look OK, but 40x aren't. Notice, that we don't have any #ifdef
CONFIG_UBOOTin 44x sources. Let's not add them for 40x, try to replicate the same boot-wrapper approach as Matt used for 44x.
OK. I'll split the patch in two (44x and 40x stuff) so we can get the 44x pieces on the way.
Just to be sure: The 44x boot-wrapper approach you mention is "boot/simple/pibs.c"?
<snip>
Quoted 15 lines
[snip]
arch/ppc/platforms/4xx/bubinga.c bubinga_early_serial_map(void) · line 96
Quoted 11 lines
arch/ppc/platforms/4xx/bubinga.c +4
-0@@ -89,7 +89,11 @@ bubinga_early_serial_map(void)* by 16. */ uart_div = (mfdcr (DCRN_CPC0_UCR_BASE ) &DCRN_CPC0_UCR_U0DIV ); +#ifdef CONFIG_UBOOT + uart_clock = __res.bi_procfreq / uart_div; +#else uart_clock = __res.bi_pllouta_freq / uart_div; +#endif Why not just rename this field and skip this ugly ifdefing?
That's better. Will be updated in next try.
Best regards,
Stefan
Re: [PATCH] ppc32: cleanup AMCC PPC4xx eval boards to better support U-Boot
Quoted 13 lines · Stefan Roese
Hi Eugene,
Quoted 9 lines · Eugene Surovegin
Quoted 3 lines · Stefan Roese
Add U-Boot support to AMCC PPC405 eval boards (bubinga, sycamore and walnut) and cleanup PPC440 eval boards (bamboo, ebony, luan and ocotea) to better support U-Boot as bootloader.
In general, 44x pieces look OK, but 40x aren't. Notice, that we don't have any #ifdef
CONFIG_UBOOTin 44x sources. Let's not add them for 40x, try to replicate the same boot-wrapper approach as Matt used for 44x.
Quoted 5 lines
OK. I'll split the patch in two (44x and 40x stuff) so we can get the 44x pieces on the way.
Just to be sure: The 44x boot-wrapper approach you mention is "
boot/simple/pibs.c"?
Yes, there's both boot/simple/pibs.c and boot/simple/openbios.c that were created so we could have the default firmware and u-boot use the same kernel build.
-Matt
Re: [PATCH] ppc32: cleanup AMCC PPC4xx eval boards to better support U-Boot
Hi Matt,
Quoted 7 lines · Matt Porter
Quoted 2 lines · Stefan Roese
Just to be sure: The 44x boot-wrapper approach you mention is "
boot/simple/pibs.c"?Yes, there's both
boot/simple/pibs.candboot/simple/openbios.cthat were created so we could have the default firmware and u-boot use the same kernel build.
Yes, that's what I thought. But Eugene mentioned, that he boots vmlinux without any boot-wrapper on the OpenBIOS targets (except Ebony probably). You would loose this possibility, if I add this wrapper and switch from OpenBIOS to U-Boot bd_info struct in the kernel.
Did I miss something here? How should I proceed?
Best regards,
Stefan
Re: [PATCH] ppc32: cleanup AMCC PPC4xx eval boards to better support U-Boot
Quoted 11 lines · Stefan Roese
Hi Matt,
Quoted 7 lines · Matt Porter
Quoted 2 lines · Stefan Roese
Just to be sure: The 44x boot-wrapper approach you mention is "
boot/simple/pibs.c"?Yes, there's both
boot/simple/pibs.candboot/simple/openbios.cthat were created so we could have the default firmware and u-boot use the same kernel build.
Quoted 6 lines
Yes, that's what I thought. But Eugene mentioned, that he boots vmlinux without any boot-wrapper on the OpenBIOS targets (except Ebony probably). You would loose this possibility, if I add this wrapper and switch from OpenBIOS to U-Boot
bd_infostruct in the kernel.Did I miss something here? How should I proceed?
I thought he was talking about booting a uImage, which from the perspective of not having the zImage wrapper around it, is like booting a vmlinux. He may referring to his own production firmware capabilities too. I'll let him comment.
In any case, if you follow the model used on 44x where the board info is the standard method of passing info into the kernel, then we'll be alright. This means you have to add additional code in the arch/ppc/boot/simple/openbios.c shim to generate some compatible board info.
-Matt
Re: [PATCH] ppc32: cleanup AMCC PPC4xx eval boards to better support U-Boot
In reply to Stefan RoeseQuoted 7 lines · Stefan Roese
Hi Matt,
Quoted 4 lines · Matt Porter
Quoted 2 lines · Stefan Roese
Just to be sure: The 44x boot-wrapper approach you mention is "
boot/simple/pibs.c"?
Quoted 6 lines
Quoted 3 lines
Yes, there's both
boot/simple/pibs.candboot/simple/openbios.cthat were created so we could have the default firmware and u-boot use the same kernel build.Yes, that's what I thought. But Eugene mentioned, that he boots vmlinux without any boot-wrapper on the OpenBIOS targets (except Ebony probably).
Bad phrasing on my part. What I meant was "U-Boot is different from OpenBIOS targets already, as with U-Boot we don't use any boot-wrapper like with OpenBIOS".
Sorry for confusion :).
Signature · 1 line
Eugene
PATCH 1/1 ppc32: Add P3P440 (440GP) board support
In reply to Stefan RoeseThis patch adds support for the Prodrive P3P440 (440GP) PMC module.
Please note, that in arch/ppc/syslib/Makefile "todc_time" was generated on all 4xx platforms. This is a problem with the P3P440, since it uses a different RTC. I removed this 4xx - todc_time dependency and added it to those boards really using it.
Best regards,
Stefan
[PATCH] ppc32: Add P3P440 (440GP) board support
This patch adds support for the Prodrive P3P440 (440GP) PMC module.
Please note, that in arch/ppc/syslib/Makefile "todc_time" was generated on all 4xx platforms. This is a problem with the P3P440, since it uses a different RTC. I removed this 4xx - todc_time dependency and added it to those boards really using it.
---
commit 2537b8507f952c4635c0108bed06f3aade110a43
tree cd84ab91112624e13e800acafea9bca9b1ecaa4d
parent 989e4d6cbc69191c41ddf4b1c492457410376b43
author Stefan Roese <[email protected]> Tue, 22 Nov 2005 18:29:05 +0100 committer Stefan Roese <[email protected]> Tue, 22 Nov 2005 18:29:05 +0100
arch/ppc/configs/p3p440_defconfig | 1155 +++++++++++++++++++++++++++++++++++++ arch/ppc/platforms/4xx/Kconfig | 10 arch/ppc/platforms/4xx/Makefile | 1 arch/ppc/platforms/4xx/ibm440gp.h | 5 arch/ppc/platforms/4xx/p3p440.c | 362 ++++++++++++ arch/ppc/platforms/4xx/p3p440.h | 72 ++ arch/ppc/syslib/Makefile | 7 include/asm-ppc/ibm4xx.h | 4 8 files changed, 1613 insertions(+), 3 deletions(-)
arch/ppc/configs/p3p440_defconfig new file +1155 -0
@@ -0,0 +1,1155 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.14 +# Tue Nov 22 10:21:06 2005 +# +CONFIG_MMU=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_PPC=y +CONFIG_PPC32=y +CONFIG_GENERIC_NVRAM=y +CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_CLEAN_COMPILE=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set +# CONFIG_HOTPLUG is not set +CONFIG_KOBJECT_UEVENT=y +# CONFIG_IKCONFIG is not set +CONFIG_INITRAMFS_SOURCE="" +CONFIG_EMBEDDED=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SHMEM=y +CONFIG_CC_ALIGN_FUNCTIONS=0 +CONFIG_CC_ALIGN_LABELS=0 +CONFIG_CC_ALIGN_LOOPS=0 +CONFIG_CC_ALIGN_JUMPS=0 +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 + +# +# Loadable module support +# +CONFIG_MODULES=y +# CONFIG_MODULE_UNLOAD is not set +CONFIG_OBSOLETE_MODPARM=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# Block layer +# +CONFIG_LBD=y + +# +# 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" + +# +# Processor +# +# CONFIG_6xx is not set +# CONFIG_40x is not set +CONFIG_44x=y +# CONFIG_POWER3 is not set +# CONFIG_POWER4 is not set +# CONFIG_8xx is not set +# CONFIG_E200 is not set +# CONFIG_E500 is not set +CONFIG_BOOKE=y +CONFIG_PTE_64BIT=y +CONFIG_PHYS_64BIT=y +# CONFIG_MATH_EMULATION is not set +# CONFIG_KEXEC is not set +# CONFIG_CPU_FREQ is not set +CONFIG_4xx=y +CONFIG_WANT_EARLY_SERIAL=y + +# +# IBM 4xx options +# +# CONFIG_BAMBOO is not set +# CONFIG_EBONY is not set +# CONFIG_LUAN is not set +# CONFIG_YUCCA is not set +# CONFIG_OCOTEA is not set +CONFIG_P3P440=y +# CONFIG_YELLOWSTONE is not set +# CONFIG_YOSEMITE is not set +CONFIG_440GP=y +CONFIG_440=y +CONFIG_IBM_OCP=y +# CONFIG_PPC4xx_DMA is not set +CONFIG_PPC_GEN550=y +CONFIG_NOT_COHERENT_CACHE=y + +# +# Platform options +# +# CONFIG_PC_KEYBOARD is not set +# CONFIG_HIGHMEM is not set +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_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_BINFMT_ELF=y +# CONFIG_BINFMT_MISC is not set +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="ip=on" +CONFIG_SECCOMP=y +CONFIG_ISA_DMA_API=y + +# +# Bus options +# +# CONFIG_PPC_I8259 is not set +CONFIG_PPC_INDIRECT_PCI=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +# CONFIG_PCI_LEGACY_PROC is not set +# CONFIG_PCI_DEBUG is not set + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Advanced setup +# +# CONFIG_ADVANCED_OPTIONS is not set + +# +# Default settings for advanced configuration options are used +# +CONFIG_HIGHMEM_START=0xfe000000 +CONFIG_LOWMEM_SIZE=0x30000000 +CONFIG_KERNEL_START=0xc0000000 +CONFIG_TASK_SIZE=0x80000000 +CONFIG_CONSISTENT_START=0xff100000 +CONFIG_CONSISTENT_SIZE=0x00200000 +CONFIG_BOOT_LOAD=0x01000000 + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_TUNNEL is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +# CONFIG_IPV6 is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +# CONFIG_NETFILTER_NETLINK is not set + +# +# IP: Netfilter Configuration +# +# CONFIG_IP_NF_CONNTRACK is not set +# CONFIG_IP_NF_QUEUE is not set +# CONFIG_IP_NF_IPTABLES is not set +# CONFIG_IP_NF_ARPTABLES is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP 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_NET_DIVERT 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 +# CONFIG_NET_CLS_ROUTE is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +# CONFIG_IEEE80211 is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +# CONFIG_STANDALONE is not set +CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_FW_LOADER is not set +# CONFIG_DEBUG_DRIVER is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_CONCAT=y +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=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 + +# +# 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 is not set +# 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_P3P440=y +# 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_BLKMTD 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 + +# +# NAND Flash Device Drivers +# +# CONFIG_MTD_NAND is not set + +# +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_SX8 is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=y + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set + +# +# SCSI Transport Attributes +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set + +# +# SCSI low-level drivers +# +# CONFIG_ISCSI_TCP is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_SATA is not set +# CONFIG_SCSI_BUSLOGIC is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_EATA is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_GDTH is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_FC is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +CONFIG_SCSI_QLA2XXX=y +# CONFIG_SCSI_QLA21XX is not set +# CONFIG_SCSI_QLA22XX is not set +# CONFIG_SCSI_QLA2300 is not set +# CONFIG_SCSI_QLA2322 is not set +# CONFIG_SCSI_QLA6312 is not set +# CONFIG_SCSI_QLA24XX is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_IEEE1394 is not set + +# +# I2O device support +# +# CONFIG_I2O is not set + +# +# Macintosh device drivers +# +# CONFIG_WINDFARM is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# +# PHY device support +# +# CONFIG_PHYLIB is not set + +# +# Ethernet (10 or 100Mbit) +# +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 + +# +# Tulip family network device support +# +# CONFIG_NET_TULIP is not set +# CONFIG_HP100 is not set +CONFIG_IBM_EMAC=y +CONFIG_IBM_EMAC_RXB=64 +CONFIG_IBM_EMAC_TXB=8 +CONFIG_IBM_EMAC_POLL_WEIGHT=32 +CONFIG_IBM_EMAC_RX_COPY_THRESHOLD=256 +CONFIG_IBM_EMAC_RX_SKB_HEADROOM=0 +# CONFIG_IBM_EMAC_DEBUG is not set +CONFIG_IBM_EMAC_ZMII=y +CONFIG_NET_PCI=y +# CONFIG_PCNET32 is not set +# CONFIG_AMD8111_ETH is not set +# CONFIG_ADAPTEC_STARFIRE is not set +# CONFIG_B44 is not set +# CONFIG_FORCEDETH is not set +# CONFIG_DGRS is not set +# CONFIG_EEPRO100 is not set +# CONFIG_E100 is not set +# CONFIG_FEALNX is not set +# CONFIG_NATSEMI is not set +# CONFIG_NE2K_PCI is not set +# CONFIG_8139CP is not set +CONFIG_8139TOO=y +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139TOO_8129 is not set +# CONFIG_8139_OLD_RX_RESET is not set +# CONFIG_SIS900 is not set +# CONFIG_EPIC100 is not set +# CONFIG_SUNDANCE is not set +# CONFIG_TLAN is not set +# CONFIG_VIA_RHINE is not set + +# +# Ethernet (1000 Mbit) +# +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SIS190 is not set +# CONFIG_SKGE is not set +# CONFIG_SK98LIN is not set +# CONFIG_VIA_VELOCITY is not set +# CONFIG_TIGON3 is not set +# CONFIG_BNX2 is not set + +# +# Ethernet (10000 Mbit) +# +# CONFIG_CHELSIO_T1 is not set +# CONFIG_IXGB is not set +# CONFIG_S2IO is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_NET_FC is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Telephony Support +# +# CONFIG_PHONE is not set + +# +# Input device support +# +# CONFIG_INPUT is not set + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +# CONFIG_VT is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +# CONFIG_SERIAL_8250_MANY_PORTS is not set +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +# CONFIG_SERIAL_8250_RSA is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_NVRAM is not set +CONFIG_GEN_RTC=y +# CONFIG_GEN_RTC_X is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_AGP is not set +# CONFIG_DRM is not set +# CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set + +# +# I2C support +# +CONFIG_I2C=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_IBM_IIC=y +# CONFIG_I2C_MPC is not set +# CONFIG_I2C_MPC8260 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_PROSAVAGE is not set +# CONFIG_I2C_SAVAGE4 is not set +# CONFIG_SCx200_ACB is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set +# CONFIG_I2C_VOODOO3 is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +CONFIG_SENSORS_MAX6900=y +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCF8563 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set +# CONFIG_SENSORS_M41T00 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_RTC_X1205_I2C 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 + +# +# Dallas's 1-wire bus +# +# CONFIG_W1 is not set + +# +# Hardware Monitoring support +# +CONFIG_HWMON=y +# CONFIG_HWMON_VID is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_FSCHER is not set +# CONFIG_SENSORS_FSCPOS 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_MAX1619 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_VIA686A is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Misc devices +# + +# +# Multimedia Capabilities Port drivers +# + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +# CONFIG_FB is not set + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_BANDWIDTH is not set +# 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_SPLIT_ISO is not set +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=y +# CONFIG_USB_SL811_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_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set + +# +# USB Input Devices +# +# CONFIG_USB_HID is not set + +# +# USB HID Boot Protocol drivers +# + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB Multimedia devices +# +# CONFIG_USB_DABUSB is not set + +# +# Video4Linux support is needed for USB Multimedia device support +# + +# +# 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_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 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_LED is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGETKIT is not set +# CONFIG_USB_PHIDGETSERVO is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set + +# +# MMC/SD Card support +# +# CONFIG_MMC is not set + +# +# InfiniBand support +# +# CONFIG_INFINIBAND is not set + +# +# SN Devices +# + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +# CONFIG_XFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_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_SYSFS=y +# CONFIG_TMPFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_RELAYFS_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_JFFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +CONFIG_CRAMFS=y +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +# CONFIG_NFS_V3 is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=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 + +# +# Library routines +# +# CONFIG_CRC_CCITT is not set +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_KGDB is not set +# CONFIG_XMON is not set +CONFIG_BDI_SWITCH=y +# CONFIG_SERIAL_TEXT_DEBUG is not set +CONFIG_PPC_OCP=y + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Hardware crypto devices +#
arch/ppc/platforms/4xx/Kconfig +8 -2
@@ -94,6 +94,12 @@ config OCOTEA help This option enables support for the IBM PPC440GX evaluation board. +config P3P440 + bool "P3P440" + select WANT_EARLY_SERIAL + help + This option enables support for the Prodrive P3P440 board. + endchoice config EP405PC
@@ -117,7 +123,7 @@ config 440EP config 440GP bool - depends on EBONY + depends on EBONY || P3P440 default y config 440GX
@@ -169,7 +175,7 @@ config BOOKE config IBM_OCP bool - depends on ASH || BAMBOO || BUBINGA || CPCI405 || EBONY || EP405 || LUAN || YUCCA || OCOTEA || REDWOOD_5 || REDWOOD_6 || SYCAMORE || WALNUT + depends on ASH || BAMBOO || BUBINGA || CPCI405 || EBONY || EP405 || LUAN || YUCCA || OCOTEA || P3P440 || REDWOOD_5 || REDWOOD_6 || SYCAMORE || WALNUT default y config XILINX_OCP
arch/ppc/platforms/4xx/Makefile +1 -0
@@ -9,6 +9,7 @@ obj-$(CONFIG_BUBINGA) += bubinga.o obj-$(CONFIG_LUAN) += luan.o obj-$(CONFIG_YUCCA) += yucca.o obj-$(CONFIG_OCOTEA) += ocotea.o +obj-$(CONFIG_P3P440) += p3p440.o obj-$(CONFIG_REDWOOD_5) += redwood5.o obj-$(CONFIG_REDWOOD_6) += redwood6.o obj-$(CONFIG_SYCAMORE) += sycamore.o
arch/ppc/platforms/4xx/ibm440gp.h +5 -0
@@ -28,6 +28,11 @@#define UART0_INT 0#define UART1_INT 1 +/* GPIO macro register defines */ +#define GPIO_BASE 0x0000000140000700ULL +#define GPIO0_OR (GPIO_BASE+0x0) +#define GPIO0_IR (GPIO_BASE+0x1C) +/* Clock and Power Management */ #define IBM_CPM_IIC0 0x80000000/* IIC interface */ #define IBM_CPM_IIC1 0x40000000/* IIC interface */
arch/ppc/platforms/4xx/p3p440.c new file +362 -0
362 lines not on this page · raw message
arch/ppc/platforms/4xx/p3p440.h new file +72 -0
72 lines not on this page · raw message
arch/ppc/syslib/Makefile +6 -1
@@ -28,7 +28,6 @@ endif endif obj-$(CONFIG_44x) += ppc4xx_pic.o obj-$(CONFIG_40x) += ppc4xx_setup.o -obj-$(CONFIG_GEN_RTC) += todc_time.o obj-$(CONFIG_PPC4xx_DMA) += ppc4xx_dma.o obj-$(CONFIG_PPC4xx_EDMA) += ppc4xx_sgdma.o ifeq ($(CONFIG_40x),y)
@@ -44,8 +43,11 @@ obj-$(CONFIG_POWER4) += open_pic2.o obj-$(CONFIG_PPC_CHRP) += open_pic.o obj-$(CONFIG_PPC_PREP) += open_pic.o todc_time.o obj-$(CONFIG_BAMBOO) += pci_auto.o todc_time.o +obj-$(CONFIG_BUBINGA) += todc_time.o +obj-$(CONFIG_CPCI405) += todc_time.o obj-$(CONFIG_CPCI690) += todc_time.o pci_auto.o obj-$(CONFIG_EBONY) += pci_auto.o todc_time.o +obj-$(CONFIG_EP405) += todc_time.o obj-$(CONFIG_EV64260) += todc_time.o pci_auto.o obj-$(CONFIG_EV64360) += todc_time.o obj-$(CONFIG_CHESTNUT) += mv64360_pic.o pci_auto.o
@@ -61,6 +63,7 @@ obj-$(CONFIG_MV64X60) += mv64x60.o mv64 obj-$(CONFIG_MVME5100) += open_pic.o todc_time.o \ pci_auto.o hawk_common.o obj-$(CONFIG_OCOTEA) += pci_auto.o todc_time.o +obj-$(CONFIG_P3P440) += pci_auto.o obj-$(CONFIG_PAL4) += cpc700_pic.o obj-$(CONFIG_POWERPMC250) += pci_auto.o obj-$(CONFIG_PPLUS) += hawk_common.o open_pic.o \
@@ -74,6 +77,8 @@ obj-$(CONFIG_SANDPOINT) += pci_auto.o t obj-$(CONFIG_SBC82xx) += todc_time.o obj-$(CONFIG_SPRUCE) += cpc700_pic.o pci_auto.o \ todc_time.o +obj-$(CONFIG_SYCAMORE) += todc_time.o +obj-$(CONFIG_WALNUT) += todc_time.o obj-$(CONFIG_8260) += m8260_setup.o pq2_devices.o pq2_sys.o \ ppc_sys.o obj-$(CONFIG_PCI_8260) += m82xx_pci.o pci_auto.o
include/asm-ppc/ibm4xx.h +4 -0
@@ -105,6 +105,10 @@ void ppc4xx_init(unsigned long r3, unsig#include <platforms/4xx/ocotea.h> #endif +#if defined(CONFIG_P3P440 ) +#include <platforms/4xx/p3p440.h> +#endif +#ifndef __ASSEMBLY__#ifdef CONFIG_40x/*
!-------------------------------------------------------------flip-
PATCH 1/1 ppc32: cleanup AMCC PPC44x eval boards to better support U-Boot
In reply to Matt PorterCleanup PPC440 eval boards (bamboo, ebony, luan and ocotea) to better support U-Boot as bootloader.
Best regards,
Stefan
[PATCH] ppc32: cleanup AMCC PPC44x eval boards to better support U-Boot
Cleanup PPC440 eval boards (bamboo, ebony, luan and ocotea) to better support U-Boot as bootloader.
---
commit bd7c0c4a9e3dac8549cc0c557ab809d4d0785005
tree cb6578ee063c0975a1e951785d6ab18c921d8e62
parent d8ac10639b6a1ed900efbee38c18baaca31e64dc
author Stefan Roese <[email protected]> Mon, 19 Sep 2005 13:11:52 +0200 committer Stefan Roese <[email protected]> Mon, 19 Sep 2005 13:11:52 +0200
arch/ppc/platforms/4xx/bamboo.c | 14 ++------------ arch/ppc/platforms/4xx/ebony.c | 13 ++----------- arch/ppc/platforms/4xx/luan.c | 13 ++----------- arch/ppc/platforms/4xx/ocotea.c | 31 +++++++++++-------------------- arch/ppc/syslib/ibm44x_common.c | 35 ++++++++++++++++++++++++++++++++++- arch/ppc/syslib/ibm44x_common.h | 3 ++- 6 files changed, 53 insertions(+), 56 deletions(-)
arch/ppc/platforms/4xx/bamboo.c +2 -12
@@ -52,7 +52,7 @@#include <syslib/gen550.h> #include <syslib/ibm440gx_common.h> -bd_t __res; +extern bd_t __res;static struct ibm44x_clocks clocks__initdata ;
@@ -426,17 +426,7 @@ bamboo_setup_arch(void)void __init platform_init (unsigned long r3,unsigned long r4,unsigned long r5,unsigned long r6,unsigned long r7) { -parse_bootinfo (find_bootinfo ()); - -/* -* If we were passed in a board information, copy it into the -* residual data area. -*/ -if (r3) - __res = *(bd_t *)(r3 +KERNELBASE ); - - -ibm44x_platform_init (); +ibm44x_platform_init (r3, r4, r5, r6, r7); ppc_md.setup_arch = bamboo_setup_arch; ppc_md.show_cpuinfo = bamboo_show_cpuinfo;
arch/ppc/platforms/4xx/ebony.c +2 -11
@@ -55,7 +55,7 @@#include <syslib/gen550.h> #include <syslib/ibm440gp_common.h> -bd_t __res; +extern bd_t __res;static struct ibm44x_clocks clocks__initdata ;
@@ -318,16 +318,7 @@ ebony_setup_arch(void)void __init platform_init (unsigned long r3,unsigned long r4,unsigned long r5,unsigned long r6,unsigned long r7) { -parse_bootinfo (find_bootinfo ()); - -/* -* If we were passed in a board information, copy it into the -* residual data area. -*/ -if (r3) - __res = *(bd_t *)(r3 +KERNELBASE ); - -ibm44x_platform_init (); +ibm44x_platform_init (r3, r4, r5, r6, r7); ppc_md.setup_arch = ebony_setup_arch; ppc_md.show_cpuinfo = ebony_show_cpuinfo;
arch/ppc/platforms/4xx/luan.c +2 -11
@@ -53,7 +53,7 @@#include <syslib/ibm440gx_common.h> #include <syslib/ibm440sp_common.h> -bd_t __res; +extern bd_t __res;static struct ibm44x_clocks clocks__initdata ;
@@ -356,16 +356,7 @@ luan_setup_arch(void)void __init platform_init (unsigned long r3,unsigned long r4,unsigned long r5,unsigned long r6,unsigned long r7) { -parse_bootinfo (find_bootinfo ()); - -/* -* If we were passed in a board information, copy it into the -* residual data area. -*/ -if (r3) - __res = *(bd_t *)(r3 +KERNELBASE ); - -ibm44x_platform_init (); +ibm44x_platform_init (r3, r4, r5, r6, r7); ppc_md.setup_arch = luan_setup_arch; ppc_md.show_cpuinfo = luan_show_cpuinfo;
arch/ppc/platforms/4xx/ocotea.c +11 -20
@@ -53,7 +53,7 @@#include <syslib/gen550.h> #include <syslib/ibm440gx_common.h> -bd_t __res; +extern bd_t __res;static struct ibm44x_clocks clocks__initdata ;
@@ -287,6 +287,15 @@ ocotea_setup_arch(void)ibm440gx_tah_enable (); +/* +* Determine various clocks. +* To be completely correct we should get SysClk +* from FPGA, because it can be changed by on-board switches +* --ebs +*/ +ibm440gx_get_clocks (&clocks,33333333 ,6 *1843200 ); + ocp_sys_info.opb_bus_freq = clocks.opb; +/* Setup TODC access */ TODC_INIT(TODC_TYPE_DS1743, 0,
@@ -325,25 +334,7 @@ static void __init ocotea_init(void)void __init platform_init (unsigned long r3,unsigned long r4,unsigned long r5,unsigned long r6,unsigned long r7) { -parse_bootinfo (find_bootinfo ()); - -/* -* If we were passed in a board information, copy it into the -* residual data area. -*/ -if (r3) - __res = *(bd_t *)(r3 +KERNELBASE ); - -/* -* Determine various clocks. -* To be completely correct we should get SysClk -* from FPGA, because it can be changed by on-board switches -* --ebs -*/ -ibm440gx_get_clocks (&clocks,33333333 ,6 *1843200 ); - ocp_sys_info.opb_bus_freq = clocks.opb; - -ibm44x_platform_init (); +ibm44x_platform_init (r3, r4, r5, r6, r7); ppc_md.setup_arch = ocotea_setup_arch; ppc_md.show_cpuinfo = ocotea_show_cpuinfo;
arch/ppc/syslib/ibm44x_common.c +34 -1
@@ -27,9 +27,14 @@#include <asm/time.h> #include <asm/ppc4xx_pic.h> #include <asm/param.h> +#include <asm/bootinfo.h> +#include <asm/ppcboot.h> #include <syslib/gen550.h> +/* Global Variables */ +bd_t __res; +phys_addr_t fixup_bigphys_addr (phys_addr_t addr,phys_addr_t size) {phys_addr_t page_4gb =0 ;
@@ -150,8 +155,36 @@ static unsigned long __init ibm44x_find_return mem_size; } -void __init ibm44x_platform_init (void ) +void __init ibm44x_platform_init (unsigned long r3,unsigned long r4,unsigned long r5, +unsigned long r6,unsigned long r7) { +parse_bootinfo (find_bootinfo ()); + +/* +* If we were passed in a board information, copy it into the +* residual data area. +*/ +if (r3) + __res = *(bd_t *)(r3 +KERNELBASE ); + +#if defined(CONFIG_BLK_DEV_INITRD ) +/* +* If the init RAM disk has been configured in, and there's a valid +* starting address for it, set it up. +*/ +if (r4) { + initrd_start = r4 +KERNELBASE ; + initrd_end = r5 +KERNELBASE ; + } +#endif /* CONFIG_BLK_DEV_INITRD */ + +/* Copy the kernel command line arguments to a safe place. */ + +if (r6) { + *(char *) (r7 +KERNELBASE ) =0 ; +strcpy (cmd_line, (char *) (r6 +KERNELBASE )); + } + ppc_md.init_IRQ = ppc4xx_pic_init; ppc_md.find_end_of_memory = ibm44x_find_end_of_memory; ppc_md.restart = ibm44x_restart;
arch/ppc/syslib/ibm44x_common.h +2 -1
@@ -36,7 +36,8 @@ struct ibm44x_clocks { };/* common 44x platform init */ -void ibm44x_platform_init (void )__init ; +void ibm44x_platform_init (unsigned long r3,unsigned long r4,unsigned long r5, +unsigned long r6,unsigned long r7)__init ;/* initialize decrementer and tick-related variables */ void ibm44x_calibrate_decr (unsigned int freq)__init ;
PATCH 1/1 ppc32: cleanup AMCC PPC40x eval boards to support U-Boot
Cleanup PPC40x eval boards (bubinga, walnut and sycamore) to support U-Boot as bootloader. The OpenBIOS bd_info struct is not used in the kernel anymore (only U-Boot now).
uImage (U-Boot) tested on walnut, sycamore and bubinga zImage (OpenBIOS) tested on sycamore, bubinga and ebony
Best regards,
Stefan
[PATCH] ppc32: cleanup AMCC PPC40x eval boards to support U-Boot
Cleanup PPC40x eval boards (bubinga, walnut and sycamore) to support U-Boot as bootloader. The OpenBIOS bd_info struct is not used in the kernel anymore (only U-Boot now).
uImage (U-Boot) tested on walnut, sycamore and bubinga zImage (OpenBIOS) tested on sycamore, bubinga and ebony
---
commit 19ab675965e6f687530ad346f20809a5f530a3a2
tree fe91729c3f1256f9239b9c9395fc8fb52c66a028
parent 8ddec7460d2f5db3ac35812c03676b1473d1d668
author Stefan Roese <[email protected]> Fri, 30 Sep 2005 13:51:39 +0200 committer Stefan Roese <[email protected]> Fri, 30 Sep 2005 13:51:39 +0200
arch/ppc/boot/simple/Makefile | 21 +++++++ arch/ppc/boot/simple/misc.c | 16 +++++- arch/ppc/boot/simple/openbios.c | 106 +++++++++++++++++++++++++++++++++++-- arch/ppc/platforms/4xx/Kconfig | 2 - arch/ppc/platforms/4xx/bubinga.c | 2 - arch/ppc/platforms/4xx/bubinga.h | 64 +++++++++------------- arch/ppc/platforms/4xx/ebony.h | 4 + arch/ppc/platforms/4xx/sycamore.c | 7 +- arch/ppc/platforms/4xx/sycamore.h | 67 +++++++++-------------- arch/ppc/platforms/4xx/walnut.c | 2 - arch/ppc/platforms/4xx/walnut.h | 67 +++++++++-------------- include/asm-ppc/ibm_ocp.h | 19 ++++++- include/asm-ppc/ppcboot.h | 6 +- 13 files changed, 237 insertions(+), 146 deletions(-)
arch/ppc/boot/simple/Makefile +20 -1
@@ -67,6 +67,12 @@ zimageinitrd-$(CONFIG_BAMBOO) := zImage entrypoint-$(CONFIG_BAMBOO) := 0x01000000 extra.o-$(CONFIG_BAMBOO) := pibs.o + zimage-$(CONFIG_BUBINGA) := zImage-TREE +zimageinitrd-$(CONFIG_BUBINGA) := zImage.initrd-TREE + end-$(CONFIG_BUBINGA) := bubinga + entrypoint-$(CONFIG_BUBINGA) := 0x01000000 + extra.o-$(CONFIG_BUBINGA) := openbios.o + zimage-$(CONFIG_EBONY) := zImage-TREE zimageinitrd-$(CONFIG_EBONY) := zImage.initrd-TREE end-$(CONFIG_EBONY) := ebony
@@ -85,6 +91,18 @@ zimageinitrd-$(CONFIG_OCOTEA) := zImage entrypoint-$(CONFIG_OCOTEA) := 0x01000000 extra.o-$(CONFIG_OCOTEA) := pibs.o + zimage-$(CONFIG_SYCAMORE) := zImage-TREE +zimageinitrd-$(CONFIG_SYCAMORE) := zImage.initrd-TREE + end-$(CONFIG_SYCAMORE) := sycamore + entrypoint-$(CONFIG_SYCAMORE) := 0x01000000 + extra.o-$(CONFIG_SYCAMORE) := openbios.o + + zimage-$(CONFIG_WALNUT) := zImage-TREE +zimageinitrd-$(CONFIG_WALNUT) := zImage.initrd-TREE + end-$(CONFIG_WALNUT) := walnut + entrypoint-$(CONFIG_WALNUT) := 0x01000000 + extra.o-$(CONFIG_WALNUT) := openbios.o + extra.o-$(CONFIG_EV64260) := misc-ev64260.o end-$(CONFIG_EV64260) := ev64260 cacheflag-$(CONFIG_EV64260) := -include $(clear_L2_L3)
@@ -162,7 +180,8 @@ OBJCOPY_ARGS := -O elf32-powerpc # head.o and relocate.o must be at the start. boot-y := head.o relocate.o $(extra.o-y) $(misc-y) -boot-$(CONFIG_40x) += embed_config.o +boot-$(CONFIG_REDWOOD_5) += embed_config.o +boot-$(CONFIG_REDWOOD_6) += embed_config.o boot-$(CONFIG_8xx) += embed_config.o boot-$(CONFIG_8260) += embed_config.o boot-$(CONFIG_BSEIP) += iic.o
arch/ppc/boot/simple/misc.c +13 -3
@@ -23,7 +23,7 @@#include <asm/page.h> #include <asm/mmu.h> #include <asm/bootinfo.h> -#ifdef CONFIG_44x +#ifdef CONFIG_4xx#include <asm/ibm4xx.h> #endif #include <asm/reg.h>
@@ -88,6 +88,14 @@ get_mem_size(void)return 0 ; } +#if defined(CONFIG_40x) +#define PPC4xx_EMAC0_MR0 EMAC0_BASE +#endif + +#if defined(CONFIG_44x) && defined(PPC44x_EMAC0_MR0) +#define PPC4xx_EMAC0_MR0 PPC44x_EMAC0_MR0 +#endif +struct bi_record *decompress_kernel (unsigned long load_addr,int num_words,unsigned long cksum) {
@@ -103,13 +111,13 @@ decompress_kernel(unsigned long load_add com_port =serial_init (0 ,NULL );#endif -#if defined(CONFIG_44x) && defined(PPC44x_EMAC0_MR0) +#if defined(PPC4xx_EMAC0_MR0)/* Reset MAL */ mtdcr (DCRN_MALCR (DCRN_MAL_BASE ),MALCR_MMSR );/* Wait for reset */ while (mfdcr (DCRN_MALCR (DCRN_MAL_BASE )) &MALCR_MMSR ) {};/* Reset EMAC */ - *(volatile unsigned long *)PPC44x_EMAC0_MR0 =0x20000000 ; + *(volatile unsigned long *)PPC4xx_EMAC0_MR0 =0x20000000 ; __asm__ __volatile__("eieio" );#endif
@@ -164,7 +172,9 @@ decompress_kernel(unsigned long load_addputs (" " );puthex ((unsigned long )(&__ramdisk_end));puts ("\n" ); } +#ifndef CONFIG_40x/* don't overwrite the 40x image located at 0x00400000! */ avail_ram = (char *)0x00400000 ; +#endif end_avail = (char *)0x00800000 ;puts ("avail ram: " );puthex ((unsigned long )avail_ram);puts (" " );puthex ((unsigned long )end_avail);puts ("\n" );
arch/ppc/boot/simple/openbios.c +100 -6
134 lines not on this page · raw message
arch/ppc/platforms/4xx/Kconfig +1 -1
@@ -214,7 +214,7 @@ config EMBEDDEDBOOT config IBM_OPENBIOS bool - depends on ASH || BUBINGA || REDWOOD_5 || REDWOOD_6 || SYCAMORE || WALNUT + depends on ASH || REDWOOD_5 || REDWOOD_6 default y config PPC4xx_DMA
arch/ppc/platforms/4xx/bubinga.c +1 -1
@@ -89,7 +89,7 @@ bubinga_early_serial_map(void)* by 16. */ uart_div = (mfdcr (DCRN_CPC0_UCR_BASE ) &DCRN_CPC0_UCR_U0DIV ); - uart_clock = __res.bi_pllouta_freq / uart_div; + uart_clock = __res.bi_procfreq / uart_div;/* Setup serial port access */ memset (&port,0 ,sizeof (port));
arch/ppc/platforms/4xx/bubinga.h +26 -38
90 lines not on this page · raw message
arch/ppc/platforms/4xx/ebony.h +2 -2
@@ -24,8 +24,8 @@#define PPC44x_EMAC0_MR0 0xE0000800/* Where to find the MAC info */ -#define EBONY_OPENBIOS_MAC_BASE 0xfffffe0c -#define EBONY_OPENBIOS_MAC_OFFSET 0x0c +#define OPENBIOS_MAC_BASE 0xfffffe0c +#define OPENBIOS_MAC_OFFSET 0x0c/* Default clock rates for Rev. B and Rev. C silicon */ #define EBONY_440GP_RB_SYSCLK 33000000
arch/ppc/platforms/4xx/sycamore.c +2 -5
@@ -88,9 +88,6 @@ ppc405_map_irq(struct pci_dev *dev, unsivoid __init sycamore_setup_arch (void ) { -#define SYCAMORE_PS2_BASE 0xF0100000 -#define SYCAMORE_FPGA_BASE 0xF0300000 -void *fpga_brdc;unsigned char fpga_brdc_data;void *fpga_enable;
@@ -100,7 +97,7 @@ sycamore_setup_arch(void)ppc4xx_setup_arch (); -ibm_ocp_set_emac (0 ,1 ); +ibm_ocp_set_emac (0 ,0 ); kb_data =ioremap (SYCAMORE_PS2_BASE ,8 );if (!kb_data) {
@@ -111,7 +108,7 @@ sycamore_setup_arch(void) kb_cs = kb_data +1 ; - fpga_status =ioremap (SYCAMORE_FPGA_BASE ,8 ); + fpga_status =ioremap (PPC40x_FPGA_BASE,8 );if (!fpga_status) {printk (KERN_CRIT "sycamore_setup_arch() fpga_status ioremap failed\n" );
arch/ppc/platforms/4xx/sycamore.h +26 -41
93 lines not on this page · raw message
arch/ppc/platforms/4xx/walnut.c +1 -1
@@ -90,7 +90,7 @@ walnut_setup_arch(void) kb_cs = kb_data +1 ; - fpga_status =ioremap (WALNUT_FPGA_BASE ,8 ); + fpga_status =ioremap (PPC40x_FPGA_BASE,8 );if (!fpga_status) {printk (KERN_CRIT "walnut_setup_arch() fpga_status ioremap failed\n" );
arch/ppc/platforms/4xx/walnut.h +25 -42
97 lines not on this page · raw message
include/asm-ppc/ibm_ocp.h +16 -3
@@ -131,9 +131,22 @@ static inline void ibm_ocp_set_emac(int /* Copy MAC addresses to EMAC additions */ for (i=start; i<=end; i++) { def = ocp_get_one_device(OCP_VENDOR_IBM, OCP_FUNC_EMAC, i); -memcpy (((struct ocp_func_emac_data *)def->additions)->mac_addr, - &__res.bi_enetaddr[i], -6 ); + if (i == 0) + memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr, + __res.bi_enetaddr, 6); +#if defined(CONFIG_405EP) || defined(CONFIG_44x) + else if (i == 1) + memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr, + __res.bi_enet1addr, 6); +#endif +#if defined(CONFIG_440GX) + else if (i == 2) + memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr, + __res.bi_enet2addr, 6); + else if (i == 3) + memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr, + __res.bi_enet3addr, 6); +#endif } } #endif
include/asm-ppc/ppcboot.h +4 -2
@@ -73,8 +73,8 @@ typedef struct bd_info {#if defined(CONFIG_HYMOD )hymod_conf_t bi_hymod_conf;/* hymod configuration information */ #endif -#if defined(CONFIG_EVB64260 ) || defined(CONFIG_44x) || defined(CONFIG_85xx) ||\ - defined(CONFIG_83xx) +#if defined(CONFIG_EVB64260 ) || defined(CONFIG_405EP ) || defined(CONFIG_44x) || \ + defined(CONFIG_85xx) || defined(CONFIG_83xx)/* second onboard ethernet port */ unsigned char bi_enet1addr[6 ];#endif
@@ -96,5 +96,7 @@ typedef struct bd_info {#endif } bd_t; +#define bi_tbfreq bi_intfreq +#endif /* __ASSEMBLY__ */ #endif /* __ASM_PPCBOOT_H__ */
!-------------------------------------------------------------flip-
PATCH 1/1 ppc32: Remove internal PCI arbiter check on PPC40x
On PPC405GP/GPR it should be possible to enable PCI support, even when the internal PCI arbiter is disabled (e.g. when using an external PCI arbiter). The removed code didn't allow this, and also generated a warning on PPC405EP platforms.
Best regards,
Stefan
[PATCH] ppc32: Remove internal PCI arbiter check on PPC40x
On PPC405GP/GPR it should be possible to enable PCI support, even when the internal PCI arbiter is disabled (e.g. when using an external PCI arbiter). The removed code didn't allow this, and also generated a warning on PPC405EP platforms.
---
commit 7f14813879d885d7f8d7ef589bbd3050c451b6a7
tree 8c14f370df43abe61e9ace8ff243fdb16e5a8c4d
parent 741b2252a5e14d6c60a913c77a6099abe73a854a
author Stefan Roese <[email protected]> Fri, 28 Oct 2005 15:43:00 +0200 committer Stefan Roese <[email protected]> Fri, 28 Oct 2005 15:43:00 +0200
arch/ppc/syslib/ppc405_pci.c | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-)
arch/ppc/syslib/ppc405_pci.c +0 -7
@@ -89,13 +89,6 @@ ppc4xx_find_bridges(void) isa_mem_base =0 ; pci_dram_offset =0 ; -#if (PSR_PCI_ARBIT_EN >1 ) -/* Check if running in slave mode */ -if ((mfdcr (DCRN_CHPSR ) &PSR_PCI_ARBIT_EN ) ==0 ) { -printk ("Running as PCI slave, kernel PCI disabled !\n" ); -return ; - } -#endif /* Setup PCI32 hose */ hose_a =pcibios_alloc_controller ();if (!hose_a)
!-------------------------------------------------------------flip-
PATCH 1/1 ppc32: Add missing initrd header on ppc440
Sorry, but this missing header slipped though last time. Please apply.
By the way: What is the current status of the pending 4xx patches. Are they going in in this 2-week merge window?
Best regards,
Stefan
[PATCH] ppc32: Add missing initrd header on ppc440
---
commit 54069303584813d4f0bafcd04bb2b7b0e9fc4693
tree 319e03ffc9097b7a8376b6e3108b4249f6d6dc0d
parent d8832f2614a9bfdb445a62a23e80f01886ae661e
author Stefan Roese <[email protected]> Mon, 31 Oct 2005 10:20:52 +0100 committer Stefan Roese <[email protected]> Mon, 31 Oct 2005 10:20:52 +0100
arch/ppc/syslib/ibm44x_common.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
arch/ppc/syslib/ibm44x_common.c +1 -0
@@ -20,6 +20,7 @@#include <linux/types.h> #include <linux/serial.h> #include <linux/module.h> +#include <linux/initrd.h> #include <asm/ibm44x.h> #include <asm/mmu.h>
!-------------------------------------------------------------flip-
Re: [PATCH] ppc32: Add missing initrd header on ppc440
Quoted 2 lines · Stefan Roese
By the way: What is the current status of the pending 4xx patches. Are they going in in this 2-week merge window?
The PPC44x U-Boot cleanup was queued and merged. The rest of PPC4xx cleanup patches are now pending with akpm and will probably be queued for Linus shortly. There will be no problem with them being merged.
-Matt
Quoted 11 lines · Grant Likely
Quoted 10 lines · Jon Masters
On 8/26/05, P. Sadik <[email protected]> wrote:
Lovely. We don't do it that way on 405 but we could - since the MMU is heavy soft assisted we could do that - we actually have everything run through the MMU once we've done initial MMU setup, but we do have the ability to mark ranges of addresses for IO and have the concept of TLB pinning to lock ranges of kernel addresses in large translated (BAT like for bigger PPC users) regions using just a few TLB slots. There is also a ZPR (zone protection register), but that's mostly used to fake the usual USER/KERNEL page distinction.
Quoted 5 lines
I believe TLB pinning was removed in 2.6 in favor of large TLB entries for kernel space. Matt Porter pointed this out to me about a week ago. This will not matter of course if you're not using 2.6.
Matt, is there any documentation covering the new design in the kernel tree?
The docs are in the original threads from 3+ years ago. You'll need to read them all to have proper context about the tradeoffs between permanently pinning a couple TLBs versus faulting large TLB replacement.
http://ozlabs.org/pipermail/linuxppc-embedded/2002-May/007257.html
http://ozlabs.org/pipermail/linuxppc-embedded/2002-May/007317.html
http://ozlabs.org/pipermail/linuxppc-embedded/2002-June/007370.html
http://ozlabs.org/pipermail/linuxppc-embedded/2002-June/007404.html
-Matt