freebsd-dev/sys/dev/imcsmb/imcsmb_reg.h
Ravi Pokala 475a76e3ce Remove unecessary "All rights reserved" from files under my or Panasas's
copyright.

When all member nations of the Buenos Aires Convention adopted the Berne
Convention, the phrase "All rights reserved" became unnecessary to assert
copyright. Remove it from files under my or Panasas's copyright. The files
related to jedec_dimm(4) also bear avg@'s copyright; he has approved this
change.

Approved by:	avg
Sponsored by:	Panasas
2019-01-30 16:55:00 +00:00

86 lines
3.1 KiB
C

/*-
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
*
* Authors: Joe Kloss; Ravi Pokala (rpokala@freebsd.org)
*
* Copyright (c) 2017-2018 Panasas
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $FreeBSD$
*/
#ifndef _DEV__IMCSMB__IMCSMB_REG_H_
#define _DEV__IMCSMB__IMCSMB_REG_H_
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/module.h>
#include <sys/endian.h>
#include <sys/errno.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/syslog.h>
#include <sys/bus.h>
#include <machine/bus.h>
#include <machine/atomic.h>
#include <dev/pci/pcivar.h>
#include <dev/pci/pcireg.h>
#include <dev/smbus/smbconf.h>
/* Intel (Sandy,Ivy)bridge and (Has,Broad)well CPUs have integrated memory
* controllers (iMCs), each of which having up to two SMBus controllers. They
* are programmed via sets of registers in the same PCI device, which are
* identical other than the register numbers.
*
* The full documentation for these registers can be found in volume two of the
* datasheets for the CPUs. Refer to the links in imcsmb_pci.c
*/
#define IMCSMB_REG_STATUS0 0x0180
#define IMCSMB_REG_STATUS1 0x0190
#define IMCSMB_STATUS_BUSY_BIT 0x10000000
#define IMCSMB_STATUS_BUS_ERROR_BIT 0x20000000
#define IMCSMB_STATUS_WRITE_DATA_DONE 0x40000000
#define IMCSMB_STATUS_READ_DATA_VALID 0x80000000
#define IMCSMB_REG_COMMAND0 0x0184
#define IMCSMB_REG_COMMAND1 0x0194
#define IMCSMB_CMD_WORD_ACCESS 0x20000000
#define IMCSMB_CMD_WRITE_BIT 0x08000000
#define IMCSMB_CMD_TRIGGER_BIT 0x80000000
#define IMCSMB_REG_CONTROL0 0x0188
#define IMCSMB_REG_CONTROL1 0x0198
#define IMCSMB_CNTL_POLL_EN 0x00000100
#define IMCSMB_CNTL_CLK_OVERRIDE 0x08000000
#define IMCSMB_CNTL_DTI_MASK 0xf0000000
#define IMCSMB_CNTL_WRITE_DISABLE_BIT 0x04000000
#endif /* _DEV__IMCSMB__IMCSMB_REG_H_ */
/* vi: set ts=8 sw=4 sts=8 noet: */