blob: 94ac13a86ff7d7ef289b5e658dabb39fdf0b2980 [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 {
Andrew Jeffery738c1cd2018-03-22 16:45:05 +103023 uint8_t raw[MBOX_REG_BYTES];
Suraj Jitindar Singhe39c9162017-03-28 10:47:43 +110024 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 */