/* * Copyright 2011 Tilera Corporation. All Rights Reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation, version 2. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or * NON INFRINGEMENT. See the GNU General Public License for * more details. */ /** * @file drv_mshim_intf.h * Interface definitions for the Linux EDAC memory controller driver. */ #ifndef _SYS_HV_INCLUDE_DRV_MSHIM_INTF_H #define _SYS_HV_INCLUDE_DRV_MSHIM_INTF_H /** Number of memory controllers in the public API. */ #define TILE_MAX_MSHIMS 4 /** Memory info under each memory controller. */ struct mshim_mem_info { uint64_t mem_size; /**< Total memory size in bytes. */ uint8_t mem_type; /**< Memory type, DDR2 or DDR3. */ uint8_t mem_ecc; /**< Memory supports ECC. */ }; /** * DIMM error structure. * For now, only correctable errors are counted and the mshim doesn't record * the error PA. HV takes panic upon uncorrectable errors. */ struct mshim_mem_error { uint32_t sbe_count; /**< Number of single-bit errors. */ }; /** Read this offset to get the memory info per mshim. */ #define MSHIM_MEM_INFO_OFF 0x100 /** Read this offset to check DIMM error. */ #define MSHIM_MEM_ERROR_OFF 0x200 #endif /* _SYS_HV_INCLUDE_DRV_MSHIM_INTF_H */