Hi,

On Thu, Apr 11, 2019 at 05:49:36PM +0100, Sudeep Holla wrote:
> On Thu, Apr 11, 2019 at 11:42:28AM +0000, Koskinen, Aaro (Nokia - FI/Espoo) 
> wrote:
> > From: Sudeep Holla [[email protected]]:
> > >  static void psci_sys_reset(enum reboot_mode reboot_mode, const char *cmd)
> > >  {
> > > +       if ((reboot_mode == REBOOT_WARM || reboot_mode == REBOOT_SOFT) &&
> > 
> > I would omit the REBOOT_SOFT here.
> 
> I included REBOOT_SOFT for 2 reasons:
> 1. drivers/firmware/efi/reboot.c - efi_reboot treats WARM and SOFT reboots 
> same
> 2. If the vendors specific reboots are added and handled in EFI, I assume it
>    will be categorised under REBOOT_SOFT.
> 
> If that's wrong I can drop REBOOT_SOFT.

Not a big issue, but it's just unclear what SOFT means. WARM at least maps
nicely to the PSCI spec.

> > > +           psci_system_reset2_supported)
> > > +               /*
> > > +                * reset_type[31] = 0 (architectural)
> > > +                * reset_type[30:0] = 0 (SYSTEM_WARM_RESET)
> > > +                * cookie = 0 (ignored by the implementation)
> > > +                */
> > > +               invoke_psci_fn(PSCI_FN_NATIVE(1_1, SYSTEM_RESET2), 0, 0, 
> > > 0);
> > > +
> > >        invoke_psci_fn(PSCI_0_2_FN_SYSTEM_RESET, 0, 0, 0);
> >
> > Use else here, so that we fall back to system halt if SYSTEM_RESET2 fails.
> 
> Will that not change current behaviour ? IOW, is that expected behaviour ?
> I am not sure if halt can be prefer over cold reboot in absence of warm/soft
> reboot when the system is request to reboot. From PSCI perspective, since
> SYSTEM_RESET is mandatory I prefer that unless Linux has any restriction
> on this behaviour.

Hmm, so does it mean that even if firmware tells that SYSTEM_RESET2
is implemented it does not imply that SYSTEM_WARM_RESET is
available? I.e. the firmware could choose to implement only some
vendor-specific resets but not architectural ones. In that case, could
we fall back to cold reset only if NOT_SUPPORTED is returned? My point
is that if the warm reset fails unexpectedly, we should halt the system
like we do if the cold reset fails.

A.

Reply via email to