Port-sparc64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port/sparc64 known working on Netra X1?



On Mon, 10 May 2010, Takeshi Nakayama wrote:

> >>> Jochen Kunz <jkunz%unixag-kl.fh-kl.de@localhost> wrote
> 
> > On Sun, 9 May 2010 03:15:14 +0000 (UTC)
> > Eduardo Horvath <eeh%NetBSD.org@localhost> wrote:
> > 
> > > Worst case is checking vor the X1 model string.
> > This is what I've done for now. I can commit this but I would prefere a
> > "proper" solution. Unfortunately I lack the knowledge and documentation
> > to do it better.
> 
> I think disabling powerfail interrupt in psycho_powerfail() as
> attached patch is more better way.
> 
> Index: psycho.c
> ===================================================================
> RCS file: /cvsroot/src/sys/arch/sparc64/dev/psycho.c,v
> retrieving revision 1.100
> diff -u -d -p -r1.100 psycho.c
> --- psycho.c  6 Jan 2010 05:55:01 -0000       1.100
> +++ psycho.c  9 May 2010 15:29:52 -0000
> @@ -957,6 +957,12 @@ psycho_powerfail(void *arg)
>               sc->sc_powerpressed = 1;
>               sysmon_task_queue_sched(0, psycho_power_button_pressed, sc);
>       }
> +     /*
> +      * Powerfail interrupt in early stage is suspected a firmware bug,
> +      * so disable it.
> +      */
> +     if (sc->sc_smcontext == NULL)
> +             sc->sc_regs->power_int_map &= ~INTMAP_V;
>       return (1);
>  }

Interesting idea.  But rather than do this in the interrupt handler after 
scheduling a power event, it might be better to:

1) check whether the interrupt is asserted in the appropriate interrupt 
debug register.

2) if it is, acknowledge it.

3) check for assertion again, and if it's still set then the interrupt is 
useless and the handler should not be installed.

Eduardo


Home | Main Index | Thread Index | Old Index