linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Configure tweaks for SystemACE without CONFIG_XILINX_OCP
@ 2004-06-10 21:18 Stephen Williams
  2004-06-11  3:05 ` Stephen Williams
       [not found] ` <1087388724.17025.4.camel@pavement.sandburst.com>
  0 siblings, 2 replies; 4+ messages in thread
From: Stephen Williams @ 2004-06-10 21:18 UTC (permalink / raw)
  To: linuxppc-embedded


I'm working to clean up my integration of our JSE board, which
is based on PPC405GPr, and has a Xilinx SystemACE as a cf interface.
I find that the block/drivers/xilinx_systemace/adapter driver needs
the arch/ppc/platforms/xilinx_ocp/xilinx_ocp.o file compiled, but
definitely does *NOT* want the CONFIG_XILINX_OCP config defined.
If the latter is defined, then some changes in the ppc405_pci.c
source file are compiled in that are not right for ppc405GPr
devices.

In order to get CONFIG_XILINX_SYSACE to define, the unmodified
source requries that CONFIG_XILINX_OCP is defined. I created this
patch to alloc SYSACE on by board:


@@ -41,7 +41,7 @@
  dep_tristate 'Micro Memory MM5415 Battery Backed RAM support (EXPERIMENTAL)'
CONFIG_BLK_DEV_UMEM $CONFIG_PCI $CONFIG_EXPERIMENTAL
  dep_tristate 'Promise SATA SX8 (carmel) support' CONFIG_BLK_DEV_CARMEL $CONFIG_PCI

-if [ "$CONFIG_XILINX_OCP" = "y" ]; then
+if [ "$CONFIG_XILINX_OCP" = "y" || "$CONFIG_JSE" = "y" ]; then
     tristate 'Xilinx on-chip System ACE' CONFIG_XILINX_SYSACE
  fi

Functional, but brutish. Better would be for the ifdefs on the
CONFIG_XILINX_OCP in arch/ppc/kernel/ppc405_pci.o go away. Who is
the maintainer for this bit (Andrei?) and would in be OK to
further qualify this code so that the CONFIG_XILINX_OCP is not
enough to make a complete mess for non-virtex2pro folks? Heck,
one idea would be to change ppc405_pci.c:135 from:

   #ifdef CONFIG_XILINX_OCP

to the more complete test:

   #if DEFINED(CONFIG_XILINX_OCP) && defined(CONFIG_VIRTEX_II_PRO)

Please?
--
Steve Williams                "The woods are lovely, dark and deep.
steve at XXXXXXXXXX           But I have promises to keep,
http://www.XXXXXXXXXX         and lines to code before I sleep,
http://www.picturel.com       And lines to code before I sleep."


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Configure tweaks for SystemACE without CONFIG_XILINX_OCP
  2004-06-10 21:18 Configure tweaks for SystemACE without CONFIG_XILINX_OCP Stephen Williams
@ 2004-06-11  3:05 ` Stephen Williams
  2004-06-11 17:21   ` Andrei Konovalov
       [not found] ` <1087388724.17025.4.camel@pavement.sandburst.com>
  1 sibling, 1 reply; 4+ messages in thread
From: Stephen Williams @ 2004-06-11  3:05 UTC (permalink / raw)
  To: linuxppc-embedded

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


Stephen Williams 612dlag102-at-sneakemail.com |PPC Linux Embedded| wrote:
> In order to get CONFIG_XILINX_SYSACE to define, the unmodified
> source requries that CONFIG_XILINX_OCP is defined. I created this
> patch to alloc SYSACE on by board:

I've made a patch that demonstrates what I have in mind, and
should work in general. With this patch, a configuration can
enable CONFIG_XILINX_OCP and enable CONFIG_XILINX_SYSACE and
not have ppc405gpr pci setup or PIC setup messed with.

Patch is relative the ppc.bkbits.net linuxppc-2.4 tree. I'm
guessing Andrei is the authority for this aspect.

--
Steve Williams                "The woods are lovely, dark and deep.
steve at XXXXXXXXXX           But I have promises to keep,
http://www.XXXXXXXXXX         and lines to code before I sleep,
http://www.picturel.com       And lines to code before I sleep."

[-- Attachment #2: sysace-without-virtex.patch --]
[-- Type: text/plain, Size: 1764 bytes --]

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/06/10 18:45:08-07:00 steve@wing.XXXXXXXXXX
#   Condition Xilinx on-chip processor config with
#   CONFIG_VIRTEX_II_PRO
#
# arch/ppc/kernel/ppc405_pci.c
#   2004/06/10 18:45:06-07:00 steve@wing.XXXXXXXXXX +1 -1
#   Condition Xilinx on-chip processor support with
#   CONFIG_VIRTEX_II_PRO
#
# arch/ppc/kernel/Makefile
#   2004/06/10 18:45:06-07:00 steve@wing.XXXXXXXXXX +1 -1
#   Condition Xilinx on-chip processor support with
#   CONFIG_VIRTEX_II_PRO
#
# BitKeeper/etc/ignore
#   2004/06/10 18:45:06-07:00 steve@wing.XXXXXXXXXX +4 -0
#   Added arch/ppc/boot/images/uImage arch/ppc/boot/images/vmlinux.UBoot arch/ppc/boot/images/vmlinux.gz arch/ppc/kernel/ppc_defs.h to the ignore list
#
diff -Nru a/arch/ppc/kernel/Makefile b/arch/ppc/kernel/Makefile
--- a/arch/ppc/kernel/Makefile	2004-06-10 19:57:40 -07:00
+++ b/arch/ppc/kernel/Makefile	2004-06-10 19:57:40 -07:00
@@ -61,7 +61,7 @@
 obj-$(CONFIG_PPC_OCP)		+= ocp.o
 obj-$(CONFIG_40x)		+= ppc4xx_setup.o
 obj-$(CONFIG_4xx)		+= todc_time.o idle_4xx.o
-ifeq ($(CONFIG_XILINX_OCP),y)
+ifeq ($(CONFIG_XILINX_OCP)$(CONFIG_VIRTEX_II_PRO),yy)
 obj-$(CONFIG_40x)		+= xilinx_pic.o
 else
 obj-$(CONFIG_40x)		+= ppc4xx_pic.o
diff -Nru a/arch/ppc/kernel/ppc405_pci.c b/arch/ppc/kernel/ppc405_pci.c
--- a/arch/ppc/kernel/ppc405_pci.c	2004-06-10 19:57:40 -07:00
+++ b/arch/ppc/kernel/ppc405_pci.c	2004-06-10 19:57:40 -07:00
@@ -132,7 +132,7 @@
 	setup_indirect_pci(hose_a, PPC405_PCI_CONFIG_ADDR,
 			   PPC405_PCI_CONFIG_DATA);

-#ifdef CONFIG_XILINX_OCP
+#if defined(CONFIG_XILINX_OCP) && defined(CONFIG_VIRTEX_II_PRO)
 	/* Eliminate "unused variable" warning for pcip.  Optimizer removes. */
 	pcip = NULL;
 	new_pmm_min = PPC405_PCI_LOWER_MEM;

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Configure tweaks for SystemACE without CONFIG_XILINX_OCP
  2004-06-11  3:05 ` Stephen Williams
@ 2004-06-11 17:21   ` Andrei Konovalov
  0 siblings, 0 replies; 4+ messages in thread
From: Andrei Konovalov @ 2004-06-11 17:21 UTC (permalink / raw)
  To: Stephen Williams; +Cc: linuxppc-embedded


The patch is OK for me.

Thanks,
Andrei

Stephen Williams wrote:
>
> Stephen Williams 612dlag102-at-sneakemail.com |PPC Linux Embedded| wrote:
>
>> In order to get CONFIG_XILINX_SYSACE to define, the unmodified
>> source requries that CONFIG_XILINX_OCP is defined. I created this
>> patch to alloc SYSACE on by board:
>
>
> I've made a patch that demonstrates what I have in mind, and
> should work in general. With this patch, a configuration can
> enable CONFIG_XILINX_OCP and enable CONFIG_XILINX_SYSACE and
> not have ppc405gpr pci setup or PIC setup messed with.
>
> Patch is relative the ppc.bkbits.net linuxppc-2.4 tree. I'm
> guessing Andrei is the authority for this aspect.
>
> --
> Steve Williams                "The woods are lovely, dark and deep.
> steve at XXXXXXXXXX           But I have promises to keep,
> http://www.XXXXXXXXXX         and lines to code before I sleep,
> http://www.picturel.com       And lines to code before I sleep."
>
>
> ------------------------------------------------------------------------
>
> # This is a BitKeeper generated diff -Nru style patch.
> #
> # ChangeSet
> #   2004/06/10 18:45:08-07:00 steve@wing.XXXXXXXXXX
> #   Condition Xilinx on-chip processor config with
> #   CONFIG_VIRTEX_II_PRO
> #
> # arch/ppc/kernel/ppc405_pci.c
> #   2004/06/10 18:45:06-07:00 steve@wing.XXXXXXXXXX +1 -1
> #   Condition Xilinx on-chip processor support with
> #   CONFIG_VIRTEX_II_PRO
> #
> # arch/ppc/kernel/Makefile
> #   2004/06/10 18:45:06-07:00 steve@wing.XXXXXXXXXX +1 -1
> #   Condition Xilinx on-chip processor support with
> #   CONFIG_VIRTEX_II_PRO
> #
> # BitKeeper/etc/ignore
> #   2004/06/10 18:45:06-07:00 steve@wing.XXXXXXXXXX +4 -0
> #   Added arch/ppc/boot/images/uImage arch/ppc/boot/images/vmlinux.UBoot arch/ppc/boot/images/vmlinux.gz arch/ppc/kernel/ppc_defs.h to the ignore list
> #
> diff -Nru a/arch/ppc/kernel/Makefile b/arch/ppc/kernel/Makefile
> --- a/arch/ppc/kernel/Makefile	2004-06-10 19:57:40 -07:00
> +++ b/arch/ppc/kernel/Makefile	2004-06-10 19:57:40 -07:00
> @@ -61,7 +61,7 @@
>  obj-$(CONFIG_PPC_OCP)		+= ocp.o
>  obj-$(CONFIG_40x)		+= ppc4xx_setup.o
>  obj-$(CONFIG_4xx)		+= todc_time.o idle_4xx.o
> -ifeq ($(CONFIG_XILINX_OCP),y)
> +ifeq ($(CONFIG_XILINX_OCP)$(CONFIG_VIRTEX_II_PRO),yy)
>  obj-$(CONFIG_40x)		+= xilinx_pic.o
>  else
>  obj-$(CONFIG_40x)		+= ppc4xx_pic.o
> diff -Nru a/arch/ppc/kernel/ppc405_pci.c b/arch/ppc/kernel/ppc405_pci.c
> --- a/arch/ppc/kernel/ppc405_pci.c	2004-06-10 19:57:40 -07:00
> +++ b/arch/ppc/kernel/ppc405_pci.c	2004-06-10 19:57:40 -07:00
> @@ -132,7 +132,7 @@
>  	setup_indirect_pci(hose_a, PPC405_PCI_CONFIG_ADDR,
>  			   PPC405_PCI_CONFIG_DATA);
>
> -#ifdef CONFIG_XILINX_OCP
> +#if defined(CONFIG_XILINX_OCP) && defined(CONFIG_VIRTEX_II_PRO)
>  	/* Eliminate "unused variable" warning for pcip.  Optimizer removes. */
>  	pcip = NULL;
>  	new_pmm_min = PPC405_PCI_LOWER_MEM;


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Configure tweaks for SystemACE without CONFIG_XILINX_OCP
       [not found] ` <1087388724.17025.4.camel@pavement.sandburst.com>
@ 2004-06-16 14:46   ` Stephen Williams
  0 siblings, 0 replies; 4+ messages in thread
From: Stephen Williams @ 2004-06-16 14:46 UTC (permalink / raw)
  To: linuxppc-embedded

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

Travis B. Sawyer tsawyer-at-sandburst.com |PPC Linux Embedded| wrote:
> Steve:
>
> I'm working on getting sysace to come up on our custom hw.
>
> Where did you put the definitions that the driver code needs, eg:
> #if defined(CONFIG_XILINX_SYSACE)
> #define XPAR_XSYSACE_NUM_INSTANCES	1
> #define XPAR_SYSACE_0_BASEADDR		0xe8100000
> #define XPAR_SYSACE_0_HIGHADDR		0xe8100FFF
> #define XPAR_SYSACE_0_DEVICE_ID		160
> #define XPAR_INTC_0_SYSACE_0_VEC_ID	51  /* UIC1:20, IRQ9 */
> #endif
>
> Am I way off base with these?  I dropped them in my board specific
> header file...  Or, should I be using:
>
> #define XPAR_SYSACE_0_BASEADDR		0x0000000148100000ULL
> #define XPAR_SYSACE_0_HIGHADDR		0x0000000148100FFFULL

First, you'll need the attached sysace-without-virtexii patch, which
has not been pushed to the linuxppc-2.4 tree yet. This fixes some
V2PRO dependencies when XILINX_OCP is activated.


I started by editing the file platforms/xilinx_ocp/xparameters.h:

===== arch/ppc/platforms/xilinx_ocp/xparameters.h 1.1 vs edited =====
--- 1.1/arch/ppc/platforms/xilinx_ocp/xparameters.h	2003-03-12 08:35:10 -08:00
+++ edited/arch/ppc/platforms/xilinx_ocp/xparameters.h	2004-06-10 13:53:02 -07:00
@@ -16,3 +16,7 @@
  #if defined(CONFIG_XILINX_ML300)
  #include "xparameters_ml300.h"
  #endif
+
+#if defined(CONFIG_JSE)
+#include "xparameters_jse.h"
+#endif

The CONFIG_JSE is for my board. I then added the xparameters_jse.h
file next to the xparameters_ml300.h that has the pertinent values
for my system. I've attached mine as a working example.


I also edited the arch/ppc/config.in so that the right defines
are enabled:

===== arch/ppc/config.in 1.69 vs edited =====
--- 1.69/arch/ppc/config.in	2004-03-25 16:39:48 -08:00
+++ edited/arch/ppc/config.in	2004-06-10 14:29:58 -07:00
@@ -79,6 +79,7 @@
  	 CPCI405	CONFIG_CPCI405 		\
  	 EP405/EP405PC	CONFIG_EP405 		\
  	 405EP-eval	CONFIG_EVB405EP		\
+	 JSE		CONFIG_JSE              \
  	 Oak		CONFIG_OAK 		\
  	 Rainier	CONFIG_RAINIER		\
  	 Redwood-4	CONFIG_REDWOOD_4 	\
@@ -321,6 +322,11 @@
      define_bool CONFIG_405GPR y
      define_bool CONFIG_BIOS_FIXUP y
      define_bool CONFIG_IBM_OPENBIOS y
+  fi
+
+  if [ "$CONFIG_JSE" = "y" ]; then
+    define_bool CONFIG_405GPR y
+    define_bool CONFIG_XILINX_OCP y
    fi

    if [ "$CONFIG_EBONY" = "y" ]; then

This activates CONFIG_XILINX_OCP when I config the JSE board,
and that allows the XILINX_SYSACE to be selected. From here,
make sure CONFIG_XILINX_SYSACE=y in your .config and you are
set.

--
Steve Williams                "The woods are lovely, dark and deep.
steve at XXXXXXXXXX           But I have promises to keep,
http://www.XXXXXXXXXX         and lines to code before I sleep,
http://www.picturel.com       And lines to code before I sleep."

[-- Attachment #2: sysace-without-virtex.patch --]
[-- Type: text/plain, Size: 1764 bytes --]

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/06/10 18:45:08-07:00 steve@wing.XXXXXXXXXX
#   Condition Xilinx on-chip processor config with
#   CONFIG_VIRTEX_II_PRO
#
# arch/ppc/kernel/ppc405_pci.c
#   2004/06/10 18:45:06-07:00 steve@wing.XXXXXXXXXX +1 -1
#   Condition Xilinx on-chip processor support with
#   CONFIG_VIRTEX_II_PRO
#
# arch/ppc/kernel/Makefile
#   2004/06/10 18:45:06-07:00 steve@wing.XXXXXXXXXX +1 -1
#   Condition Xilinx on-chip processor support with
#   CONFIG_VIRTEX_II_PRO
#
# BitKeeper/etc/ignore
#   2004/06/10 18:45:06-07:00 steve@wing.XXXXXXXXXX +4 -0
#   Added arch/ppc/boot/images/uImage arch/ppc/boot/images/vmlinux.UBoot arch/ppc/boot/images/vmlinux.gz arch/ppc/kernel/ppc_defs.h to the ignore list
#
diff -Nru a/arch/ppc/kernel/Makefile b/arch/ppc/kernel/Makefile
--- a/arch/ppc/kernel/Makefile	2004-06-10 19:57:40 -07:00
+++ b/arch/ppc/kernel/Makefile	2004-06-10 19:57:40 -07:00
@@ -61,7 +61,7 @@
 obj-$(CONFIG_PPC_OCP)		+= ocp.o
 obj-$(CONFIG_40x)		+= ppc4xx_setup.o
 obj-$(CONFIG_4xx)		+= todc_time.o idle_4xx.o
-ifeq ($(CONFIG_XILINX_OCP),y)
+ifeq ($(CONFIG_XILINX_OCP)$(CONFIG_VIRTEX_II_PRO),yy)
 obj-$(CONFIG_40x)		+= xilinx_pic.o
 else
 obj-$(CONFIG_40x)		+= ppc4xx_pic.o
diff -Nru a/arch/ppc/kernel/ppc405_pci.c b/arch/ppc/kernel/ppc405_pci.c
--- a/arch/ppc/kernel/ppc405_pci.c	2004-06-10 19:57:40 -07:00
+++ b/arch/ppc/kernel/ppc405_pci.c	2004-06-10 19:57:40 -07:00
@@ -132,7 +132,7 @@
 	setup_indirect_pci(hose_a, PPC405_PCI_CONFIG_ADDR,
 			   PPC405_PCI_CONFIG_DATA);

-#ifdef CONFIG_XILINX_OCP
+#if defined(CONFIG_XILINX_OCP) && defined(CONFIG_VIRTEX_II_PRO)
 	/* Eliminate "unused variable" warning for pcip.  Optimizer removes. */
 	pcip = NULL;
 	new_pmm_min = PPC405_PCI_LOWER_MEM;

[-- Attachment #3: xparameters_jse.h --]
[-- Type: text/plain, Size: 412 bytes --]


  /* The SystemACE chip is on CS1#, mapped here. */
#define XPAR_SYSACE_0_BASEADDR 0xf0000000
#define XPAR_SYSACE_0_HIGHADDR 0xf00001FF

  /* On the JSE board, the SystemACE chip is wired to IRQ 29 */
#define XPAR_INTC_0_SYSACE_0_VEC_ID 2

#define XPAR_XSYSACE_NUM_INSTANCES 1
#define XPAR_OPB_SYSACE_0_MEM_WIDTH 8
#define XPAR_OPB_SYSACE_0_DEVICE_ID 0
#define XPAR_OPB_SYSACE_0_BASEADDR XPAR_SYSACE_0_BASEADDR

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2004-06-16 14:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-06-10 21:18 Configure tweaks for SystemACE without CONFIG_XILINX_OCP Stephen Williams
2004-06-11  3:05 ` Stephen Williams
2004-06-11 17:21   ` Andrei Konovalov
     [not found] ` <1087388724.17025.4.camel@pavement.sandburst.com>
2004-06-16 14:46   ` Stephen Williams

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).