Chassis reset
Ed Tanous
ed at tanous.net
Wed Sep 30 08:22:16 AEST 2020
On Tue, Sep 29, 2020 at 3:14 PM Vijay Khemka <vijaykhemka at fb.com> wrote:
>
>
>
> On 9/23/20, 7:24 PM, "Ed Tanous" <ed at tanous.net> wrote:
>
> On Wed, Sep 23, 2020 at 6:59 PM Vijay Khemka <vijaykhemka at fb.com> wrote:
> >
> >
> > >
> > > I'm not understanding what you mean by "come up with an API to steer the
> > > Redfish..." I think everything is specified here at a dbus level. The
> > > issue is figuring out the appropriate Redfish model of
> > > Chassis/ComputerSystem objects (along with the included Resource.Reset
> > > types). To a casual reader, who hasn't been involved much in Redfish
> > > implementation, the current mapping of these ResetTypes seems fairly
> > > arbitrary.
> >
> > Some might be arbitrary, but most are explicit and chosen on purpose,
> > especially in the case of the System schema. The Chassis schema is a
> > little more lax, as it's more of a backward compatibility thing today.
> > I think you (Vijay) are the first person trying to model it
> > "properly".
> >
> > What I mean is that the current Redfish definition of Chassis points
> > the PowerCycle action to chassis0. That PowerCycle action now needs
> > to point at multiple things, chassis0 if we don't support AC reset, or
> > chassis_system0 if we do. That is the "steering" I was referring to.
> >
> > How about we map powerCycle to chassis0 and ForceRestart to chassis_system0
> >
> >
>
> I would not be in favor of this. Technically you're implementing a
> PowerCycle here as you're cycling the power supplies off then on. A
> ForceReset would be if you asserted some kind of reset pin to the
> board, while keeping the power supplies up, which, while valid, is not
> what you're doing.
>
> I am actually asserting a pin by sending i2c command to HSC (Hot swap controller)
> Which removes power and restores back.
That doesn't change anything in this regard. Regardless of the
physical medium, the end result is that power is removed, then
restored. That's a PowerCycle action.
>
> Also, it would mean that we have multiple actions to maintain
> externally, and users would have no guarantees about which ones are
> supported. Mapping PowerCycle to the best supported mechanism we have
> seems like the best thing to do here.
>
> Then should we map this chassis powercycle to chassis_system0 in the code?
>
yes, if chassis_system0 is supported on that platform. If it's not,
it should fall back to the old chassis0 node, so we don't break
anyone.
More information about the openbmc
mailing list