[Skiboot] [PATCH v3 1/4] hw/lpc-mbox: Add skiboot driver for the BMC mbox regs

Cyril Bur cyril.bur at au1.ibm.com
Tue Feb 7 10:59:37 AEDT 2017


On Mon, 2017-02-06 at 17:14 +1100, Suraj Jitindar Singh wrote:
> On Thu, 2017-02-02 at 17:54 +1100, Cyril Bur wrote:
> > Signed-off-by: Cyril Bur <cyril.bur at au1.ibm.com>
> > ---
> >  hw/Makefile.inc    |   2 +-
> >  hw/lpc-mbox.c      | 278
> > +++++++++++++++++++++++++++++++++++++++++++++++++++++
> >  include/lpc-mbox.h |  58 +++++++++++
> >  include/skiboot.h  |   1 +
> >  4 files changed, 338 insertions(+), 1 deletion(-)
> >  create mode 100644 hw/lpc-mbox.c
> >  create mode 100644 include/lpc-mbox.h
> > 

[snip]

> > --- /dev/null
> > +++ b/include/lpc-mbox.h
> > @@ -0,0 +1,58 @@
> > +/* Copyright 2017 IBM Corp.
> > + *
> > + * Licensed under the Apache License, Version 2.0 (the "License");
> > + * you may not use this file except in compliance with the License.
> > + * You may obtain a copy of the License at
> > + *
> > + * 	http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > software
> > + * distributed under the License is distributed on an "AS IS" BASIS,
> > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> > + * implied.
> > + * See the License for the specific language governing permissions
> > and
> > + * limitations under the License.
> > + */
> > +
> > +#ifndef __LPC_MBOX_H
> > +#define __LPC_MBOX_H
> > +
> > +#include <opal.h>
> > +#include <ccan/endian/endian.h>
> > +
> > +#define BMC_MBOX_DATA_BYTES 11
> > +
> > +#define MBOX_C_RESET_STATE 0x01
> > +#define MBOX_C_GET_MBOX_INFO 0x02
> > +#define MBOX_C_GET_FLASH_INFO 0x03
> > +#define MBOX_C_CREATE_READ_WINDOW 0x04
> > +#define MBOX_C_CLOSE_WINDOW 0x05
> > +#define MBOX_C_CREATE_WRITE_WINDOW 0x06
> > +#define MBOX_C_MARK_WRITE_DIRTY 0x07
> > +#define MBOX_C_WRITE_FLUSH 0x08
> > +#define MBOX_C_BMC_EVENT_ACK 0x09
> > +
> > +#define MBOX_R_SUCCESS 0x01
> > +#define MBOX_R_PARAM_ERROR 0x02
> > +#define MBOX_R_WRITE_ERROR 0x03
> > +#define MBOX_R_SYSTEM_ERROR 0x04
> > +#define MBOX_R_TIMEOUT 0x05
> > +
> > +/* Default poll interval before interrupts are working */
> > +#define MBOX_DEFAULT_POLL_MS	200
> > +
> > +struct bmc_mbox_msg {
> > +	uint8_t command;
> > +	uint8_t seq;
> > +	uint8_t data[BMC_MBOX_DATA_BYTES];
> 
> Also, since we changed the name of this in the protocol description,
> can we also change this to args[].

Yes, nice.

> > +	uint8_t response;
> > +	uint8_t host;
> > +	uint8_t bmc;
> > +	void (*callback)(struct bmc_mbox_msg *);
> > +	void *priv;
> > +	struct list_node link;
> > +};
> > +
> > +int bmc_mbox_enqueue(struct bmc_mbox_msg *msg);
> > +
> > +#endif /* __LPC_MBOX_H */
> > diff --git a/include/skiboot.h b/include/skiboot.h
> > index 2ea64de3..bc716f9f 100644
> > --- a/include/skiboot.h
> > +++ b/include/skiboot.h
> > @@ -216,6 +216,7 @@ extern int phb4_preload_capp_ucode(void);
> >  extern void phb4_preload_vpd(void);
> >  extern void probe_npu(void);
> >  extern void uart_init(void);
> > +extern void mbox_init(void);
> >  extern void homer_init(void);
> >  extern void occ_pstates_init(void);
> >  extern void slw_init(void);
> 
> 



More information about the Skiboot mailing list