SystemACE but not V2PRO
Scott Anderson
scott_anderson at mvista.com
Sat Apr 3 03:35:53 EST 2004
Hi there,
The current ML300 maintainer is Andrei Konovalov
<akonovalov at ru.mvista.com>
(cc'ed on this message). I'm guessing he didn't reply to your message
last week because he's swamped, but hopefully having this directly
addressed to him will prompt a response.
Scott
On Apr 1, 2004, at 6:38 PM, Stephen Williams wrote:
>
> The attached patch is my spin at getting the existing xsysace
> block driver working on systems that have SystemACE chips, but
> do not use Virtex-II-Pro chips. The adapter.c file assumes that
> the system ace halt will halt the processor. This is not the
> case in general, so this patch ifdefs that part of the code out
> using CONFIG_VIRTEX_II_PRO.
>
> This is only part of the story for getting the systemace
> working in general, but the remaining bits are configuration
> issues, not code/driver support.
>
> Question: Who is the maintainer for this section of code? It
> is maybe MonteVista?
> --
> 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."
> Index: drivers/block/xilinx_sysace/adapter.c
> ===================================================================
> RCS file:
> /cvsroot/linuxppc_2_4_devel/drivers/block/xilinx_sysace/adapter.c,v
> retrieving revision 1.3
> diff -p -u -r1.3 adapter.c
> --- drivers/block/xilinx_sysace/adapter.c 30 Oct 2003 00:32:49
> -0000 1.3
> +++ drivers/block/xilinx_sysace/adapter.c 2 Apr 2004 02:27:37 -0000
> @@ -74,7 +74,9 @@ MODULE_LICENSE("GPL");
> static const int dont_spin = 0;
>
> static u32 save_BaseAddress; /* Saved physical base address */
> +#ifdef CONFIG_VIRTEX_II_PRO
> static void (*old_restart) (char *cmd) = NULL; /* old ppc_md.restart
> */
> +#endif
>
> static unsigned char heads;
> static unsigned char sectors;
> @@ -277,6 +279,13 @@ proc_cleanup(void)
> }
> #endif
>
> +#ifdef CONFIG_VIRTEX_II_PRO
> +/*
> + * The XSysAce_ResetCfg function causes the SystemACE to reset the
> + * Xilinx chain that is attached to it. If I am a Virtex II Pro, then
> + * presumably that includes me. Thus, The ResetCfg will ultimately
> + * reset me, the processor, end of story.
> + */
> static void
> xsysace_restart(char *cmd)
> {
> @@ -285,6 +294,7 @@ xsysace_restart(char *cmd)
> /* Wait for reset. */
> for (;;) ;
> }
> +#endif
>
> /*
> * The code to handle the block device starts here.
> @@ -725,8 +735,10 @@ cleanup(void)
> iounmap((void *) cfg->BaseAddress);
> cfg->BaseAddress = save_BaseAddress;
>
> +#ifdef CONFIG_VIRTEX_II_PRO
> if (old_restart)
> ppc_md.restart = old_restart;
> +#endif
> }
>
> static int __init
> @@ -837,9 +849,11 @@ xsysace_init(void)
> DEVICE_NAME, save_BaseAddress, cfg->BaseAddress, XSA_IRQ,
> size / 2);
>
> +#ifdef CONFIG_VIRTEX_II_PRO
> /* Hook our reset function into system's restart code. */
> old_restart = ppc_md.restart;
> ppc_md.restart = xsysace_restart;
> +#endif
>
> if (proc_init())
> printk(KERN_WARNING "%s: could not register /proc interface.\n",
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-embedded
mailing list