Re: Fwd: [PATCH] Reboot Dreamcast under software control

2007-07-29 Thread Paul Mundt
On Mon, Jul 30, 2007 at 12:05:31AM +0100, Adrian McMenamin wrote:
> On Mon, 2007-07-30 at 07:50 +0900, Paul Mundt wrote:
> > On Sun, Jul 29, 2007 at 07:25:21PM +0100, Adrian McMenamin wrote:
> > > diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c
> > > index 6334a4c..6f5e9e4 100644
> > > --- a/arch/sh/kernel/process.c
> > > +++ b/arch/sh/kernel/process.c
> > > @@ -97,6 +97,11 @@ void cpu_idle(void)
> > > 
> > >  void machine_restart(char * __unused)
> > >  {
> > > +
> > > +#ifdef CONFIG_SH_DREAMCAST
> > > +   /*reboot the Dreamcast under software control*/
> > > +   writel(0x7611, 0xA05F6890);
> > > +#endif
> > > /* SR.BL=1 and invoke address error to let CPU reset (manual 
> > > reset) */
> > > asm volatile("ldc %0, sr\n\t"
> > >  "mov.l @%1, %0" : : "r" (0x1000), "r" 
> > > (0x8001));
> > 
> > No, if you want to do this, at least use a function pointer and leave
> > this as the default implementation. The dreamcast presumably only needs
> > this magic write anyways, rather than the SR.BL trick.
> > 
> 
> Well, when I tested it, it did have a "return" in after the call and it
> worked - but I took that out as it looked like code bloat to me :)
> 
> Explain what you mean by using a function pointer and I'll do that.
> 
Look at the other implementations that are overloaded by the boards.
machine_power_off, the idle loop, etc.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Fwd: [PATCH] Reboot Dreamcast under software control

2007-07-29 Thread Adrian McMenamin
On Mon, 2007-07-30 at 07:50 +0900, Paul Mundt wrote:
> On Sun, Jul 29, 2007 at 07:25:21PM +0100, Adrian McMenamin wrote:
> > diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c
> > index 6334a4c..6f5e9e4 100644
> > --- a/arch/sh/kernel/process.c
> > +++ b/arch/sh/kernel/process.c
> > @@ -97,6 +97,11 @@ void cpu_idle(void)
> > 
> >  void machine_restart(char * __unused)
> >  {
> > +
> > +#ifdef CONFIG_SH_DREAMCAST
> > +   /*reboot the Dreamcast under software control*/
> > +   writel(0x7611, 0xA05F6890);
> > +#endif
> > /* SR.BL=1 and invoke address error to let CPU reset (manual reset) 
> > */
> > asm volatile("ldc %0, sr\n\t"
> >  "mov.l @%1, %0" : : "r" (0x1000), "r" 
> > (0x8001));
> 
> No, if you want to do this, at least use a function pointer and leave
> this as the default implementation. The dreamcast presumably only needs
> this magic write anyways, rather than the SR.BL trick.
> 

Well, when I tested it, it did have a "return" in after the call and it
worked - but I took that out as it looked like code bloat to me :)

Explain what you mean by using a function pointer and I'll do that.

Adrian
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Fwd: [PATCH] Reboot Dreamcast under software control

2007-07-29 Thread Paul Mundt
On Sun, Jul 29, 2007 at 07:25:21PM +0100, Adrian McMenamin wrote:
> diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c
> index 6334a4c..6f5e9e4 100644
> --- a/arch/sh/kernel/process.c
> +++ b/arch/sh/kernel/process.c
> @@ -97,6 +97,11 @@ void cpu_idle(void)
> 
>  void machine_restart(char * __unused)
>  {
> +
> +#ifdef CONFIG_SH_DREAMCAST
> +   /*reboot the Dreamcast under software control*/
> +   writel(0x7611, 0xA05F6890);
> +#endif
> /* SR.BL=1 and invoke address error to let CPU reset (manual reset) */
> asm volatile("ldc %0, sr\n\t"
>  "mov.l @%1, %0" : : "r" (0x1000), "r" (0x8001));

No, if you want to do this, at least use a function pointer and leave
this as the default implementation. The dreamcast presumably only needs
this magic write anyways, rather than the SR.BL trick.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Fwd: [PATCH] Reboot Dreamcast under software control

2007-07-29 Thread Adrian McMenamin
Apologies. I meant to cc: this to the lists first time round and
appear to have bcc'ed it instead.

-- Forwarded message --
From: Adrian McMenamin <[EMAIL PROTECTED]>
Date: 29-Jul-2007 19:04
Subject: [PATCH] Reboot Dreamcast under software control
To: [EMAIL PROTECTED]


In the light of more up to date technical information I have
discovered there is a register at physical address 0x005F6890 on the
Dreamcast that if written a magic number (0x7611) will force a
reboot under software control.

Presumably a better option than the current catch-all mechanism.

Signed-off by: Adrian McMenamin <[EMAIL PROTECTED]>

diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c
index 6334a4c..6f5e9e4 100644
--- a/arch/sh/kernel/process.c
+++ b/arch/sh/kernel/process.c
@@ -97,6 +97,11 @@ void cpu_idle(void)

 void machine_restart(char * __unused)
 {
+
+#ifdef CONFIG_SH_DREAMCAST
+   /*reboot the Dreamcast under software control*/
+   writel(0x7611, 0xA05F6890);
+#endif
/* SR.BL=1 and invoke address error to let CPU reset (manual reset) */
asm volatile("ldc %0, sr\n\t"
 "mov.l @%1, %0" : : "r" (0x1000), "r" (0x8001));
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Fwd: [PATCH] Reboot Dreamcast under software control

2007-07-29 Thread Adrian McMenamin
Apologies. I meant to cc: this to the lists first time round and
appear to have bcc'ed it instead.

-- Forwarded message --
From: Adrian McMenamin [EMAIL PROTECTED]
Date: 29-Jul-2007 19:04
Subject: [PATCH] Reboot Dreamcast under software control
To: [EMAIL PROTECTED]


In the light of more up to date technical information I have
discovered there is a register at physical address 0x005F6890 on the
Dreamcast that if written a magic number (0x7611) will force a
reboot under software control.

Presumably a better option than the current catch-all mechanism.

Signed-off by: Adrian McMenamin [EMAIL PROTECTED]

diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c
index 6334a4c..6f5e9e4 100644
--- a/arch/sh/kernel/process.c
+++ b/arch/sh/kernel/process.c
@@ -97,6 +97,11 @@ void cpu_idle(void)

 void machine_restart(char * __unused)
 {
+
+#ifdef CONFIG_SH_DREAMCAST
+   /*reboot the Dreamcast under software control*/
+   writel(0x7611, 0xA05F6890);
+#endif
/* SR.BL=1 and invoke address error to let CPU reset (manual reset) */
asm volatile(ldc %0, sr\n\t
 mov.l @%1, %0 : : r (0x1000), r (0x8001));
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Fwd: [PATCH] Reboot Dreamcast under software control

2007-07-29 Thread Paul Mundt
On Sun, Jul 29, 2007 at 07:25:21PM +0100, Adrian McMenamin wrote:
 diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c
 index 6334a4c..6f5e9e4 100644
 --- a/arch/sh/kernel/process.c
 +++ b/arch/sh/kernel/process.c
 @@ -97,6 +97,11 @@ void cpu_idle(void)
 
  void machine_restart(char * __unused)
  {
 +
 +#ifdef CONFIG_SH_DREAMCAST
 +   /*reboot the Dreamcast under software control*/
 +   writel(0x7611, 0xA05F6890);
 +#endif
 /* SR.BL=1 and invoke address error to let CPU reset (manual reset) */
 asm volatile(ldc %0, sr\n\t
  mov.l @%1, %0 : : r (0x1000), r (0x8001));

No, if you want to do this, at least use a function pointer and leave
this as the default implementation. The dreamcast presumably only needs
this magic write anyways, rather than the SR.BL trick.
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Fwd: [PATCH] Reboot Dreamcast under software control

2007-07-29 Thread Adrian McMenamin
On Mon, 2007-07-30 at 07:50 +0900, Paul Mundt wrote:
 On Sun, Jul 29, 2007 at 07:25:21PM +0100, Adrian McMenamin wrote:
  diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c
  index 6334a4c..6f5e9e4 100644
  --- a/arch/sh/kernel/process.c
  +++ b/arch/sh/kernel/process.c
  @@ -97,6 +97,11 @@ void cpu_idle(void)
  
   void machine_restart(char * __unused)
   {
  +
  +#ifdef CONFIG_SH_DREAMCAST
  +   /*reboot the Dreamcast under software control*/
  +   writel(0x7611, 0xA05F6890);
  +#endif
  /* SR.BL=1 and invoke address error to let CPU reset (manual reset) 
  */
  asm volatile(ldc %0, sr\n\t
   mov.l @%1, %0 : : r (0x1000), r 
  (0x8001));
 
 No, if you want to do this, at least use a function pointer and leave
 this as the default implementation. The dreamcast presumably only needs
 this magic write anyways, rather than the SR.BL trick.
 

Well, when I tested it, it did have a return in after the call and it
worked - but I took that out as it looked like code bloat to me :)

Explain what you mean by using a function pointer and I'll do that.

Adrian
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Fwd: [PATCH] Reboot Dreamcast under software control

2007-07-29 Thread Paul Mundt
On Mon, Jul 30, 2007 at 12:05:31AM +0100, Adrian McMenamin wrote:
 On Mon, 2007-07-30 at 07:50 +0900, Paul Mundt wrote:
  On Sun, Jul 29, 2007 at 07:25:21PM +0100, Adrian McMenamin wrote:
   diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c
   index 6334a4c..6f5e9e4 100644
   --- a/arch/sh/kernel/process.c
   +++ b/arch/sh/kernel/process.c
   @@ -97,6 +97,11 @@ void cpu_idle(void)
   
void machine_restart(char * __unused)
{
   +
   +#ifdef CONFIG_SH_DREAMCAST
   +   /*reboot the Dreamcast under software control*/
   +   writel(0x7611, 0xA05F6890);
   +#endif
   /* SR.BL=1 and invoke address error to let CPU reset (manual 
   reset) */
   asm volatile(ldc %0, sr\n\t
mov.l @%1, %0 : : r (0x1000), r 
   (0x8001));
  
  No, if you want to do this, at least use a function pointer and leave
  this as the default implementation. The dreamcast presumably only needs
  this magic write anyways, rather than the SR.BL trick.
  
 
 Well, when I tested it, it did have a return in after the call and it
 worked - but I took that out as it looked like code bloat to me :)
 
 Explain what you mean by using a function pointer and I'll do that.
 
Look at the other implementations that are overloaded by the boards.
machine_power_off, the idle loop, etc.
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/