root/include/uapi/linux/aspeed-p2a-ctrl.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
   2 /*
   3  * Copyright 2019 Google Inc
   4  *
   5  * This program is free software; you can redistribute it and/or
   6  * modify it under the terms of the GNU General Public License
   7  * as published by the Free Software Foundation; either version
   8  * 2 of the License, or (at your option) any later version.
   9  *
  10  * Provides a simple driver to control the ASPEED P2A interface which allows
  11  * the host to read and write to various regions of the BMC's memory.
  12  */
  13 
  14 #ifndef _UAPI_LINUX_ASPEED_P2A_CTRL_H
  15 #define _UAPI_LINUX_ASPEED_P2A_CTRL_H
  16 
  17 #include <linux/ioctl.h>
  18 #include <linux/types.h>
  19 
  20 #define ASPEED_P2A_CTRL_READ_ONLY 0
  21 #define ASPEED_P2A_CTRL_READWRITE 1
  22 
  23 /*
  24  * This driver provides a mechanism for enabling or disabling the read-write
  25  * property of specific windows into the ASPEED BMC's memory.
  26  *
  27  * A user can map a region of the BMC's memory as read-only or read-write, with
  28  * the caveat that once any region is mapped, all regions are unlocked for
  29  * reading.
  30  */
  31 
  32 /*
  33  * Unlock a region of BMC physical memory for access from the host.
  34  *
  35  * Also used to read back the optional memory-region configuration for the
  36  * driver.
  37  */
  38 struct aspeed_p2a_ctrl_mapping {
  39         __u64 addr;
  40         __u32 length;
  41         __u32 flags;
  42 };
  43 
  44 #define __ASPEED_P2A_CTRL_IOCTL_MAGIC 0xb3
  45 
  46 /*
  47  * This IOCTL is meant to configure a region or regions of memory given a
  48  * starting address and length to be readable by the host, or
  49  * readable-writeable.
  50  */
  51 #define ASPEED_P2A_CTRL_IOCTL_SET_WINDOW _IOW(__ASPEED_P2A_CTRL_IOCTL_MAGIC, \
  52                 0x00, struct aspeed_p2a_ctrl_mapping)
  53 
  54 /*
  55  * This IOCTL is meant to read back to the user the base address and length of
  56  * the memory-region specified to the driver for use with mmap.
  57  */
  58 #define ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG \
  59         _IOWR(__ASPEED_P2A_CTRL_IOCTL_MAGIC, \
  60                 0x01, struct aspeed_p2a_ctrl_mapping)
  61 
  62 #endif /* _UAPI_LINUX_ASPEED_P2A_CTRL_H */

/* [<][>][^][v][top][bottom][index][help] */