linux/include/uapi/linux/aspeed-lpc-ctrl.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
   2/*
   3 * Copyright 2017 IBM Corp.
   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
  11#ifndef _UAPI_LINUX_ASPEED_LPC_CTRL_H
  12#define _UAPI_LINUX_ASPEED_LPC_CTRL_H
  13
  14#include <linux/ioctl.h>
  15#include <linux/types.h>
  16
  17/* Window types */
  18#define ASPEED_LPC_CTRL_WINDOW_FLASH    1
  19#define ASPEED_LPC_CTRL_WINDOW_MEMORY   2
  20
  21/*
  22 * This driver provides a window for the host to access a BMC resource
  23 * across the BMC <-> Host LPC bus.
  24 *
  25 * window_type: The BMC resource that the host will access through the
  26 * window. BMC flash and BMC RAM.
  27 *
  28 * window_id: For each window type there may be multiple windows,
  29 * these are referenced by ID.
  30 *
  31 * flags: Reserved for future use, this field is expected to be
  32 * zeroed.
  33 *
  34 * addr: Address on the host LPC bus that the specified window should
  35 * be mapped. This address must be power of two aligned.
  36 *
  37 * offset: Offset into the BMC window that should be mapped to the
  38 * host (at addr). This must be a multiple of size.
  39 *
  40 * size: The size of the mapping. The smallest possible size is 64K.
  41 * This must be power of two aligned.
  42 *
  43 */
  44
  45struct aspeed_lpc_ctrl_mapping {
  46        __u8    window_type;
  47        __u8    window_id;
  48        __u16   flags;
  49        __u32   addr;
  50        __u32   offset;
  51        __u32   size;
  52};
  53
  54#define __ASPEED_LPC_CTRL_IOCTL_MAGIC   0xb2
  55
  56#define ASPEED_LPC_CTRL_IOCTL_GET_SIZE  _IOWR(__ASPEED_LPC_CTRL_IOCTL_MAGIC, \
  57                0x00, struct aspeed_lpc_ctrl_mapping)
  58
  59#define ASPEED_LPC_CTRL_IOCTL_MAP       _IOW(__ASPEED_LPC_CTRL_IOCTL_MAGIC, \
  60                0x01, struct aspeed_lpc_ctrl_mapping)
  61
  62#endif /* _UAPI_LINUX_ASPEED_LPC_CTRL_H */
  63