blob: 6ef6b274fd77de41c64418a71b80d63a6c4294ef [file] [log] [blame]
Andrew Jeffery4fe996c2018-02-27 12:16:48 +10301/* SPDX-License-Identifier: Apache-2.0 */
2/* Copyright (C) 2018 IBM Corp. */
Suraj Jitindar Singhe39c9162017-03-28 10:47:43 +11003
4#ifndef MBOXD_MSG_H
5#define MBOXD_MSG_H
6
Suraj Jitindar Singh5a3a0662017-04-27 11:55:26 +10007#include "common.h"
8
9/* Estimate as to how long (milliseconds) it takes to access a MB from flash */
10#define FLASH_ACCESS_MS_PER_MB 8000
11
12#define NO_BMC_EVENT false
13#define SET_BMC_EVENT true
Suraj Jitindar Singhe39c9162017-03-28 10:47:43 +110014
15struct mbox_msg {
16 uint8_t command;
17 uint8_t seq;
18 uint8_t args[MBOX_ARGS_BYTES];
19 uint8_t response;
20};
21
22union mbox_regs {
23 char raw[MBOX_REG_BYTES];
24 struct mbox_msg msg;
25};
26
27int set_bmc_events(struct mbox_context *context, uint8_t bmc_event,
28 bool write_back);
29int clr_bmc_events(struct mbox_context *context, uint8_t bmc_event,
30 bool write_back);
31int dispatch_mbox(struct mbox_context *context);
32int init_mbox_dev(struct mbox_context *context);
33void free_mbox_dev(struct mbox_context *context);
34
35#endif /* MBOXD_MSG_H */