1*f5e80be3SNinad Palsule /* 2*f5e80be3SNinad Palsule * SPDX-License-Identifier: GPL-2.0-or-later 3*f5e80be3SNinad Palsule * Copyright (C) 2024 IBM Corp. 4*f5e80be3SNinad Palsule * 5*f5e80be3SNinad Palsule * IBM Common FRU Access Macro 6*f5e80be3SNinad Palsule */ 7*f5e80be3SNinad Palsule #ifndef FSI_CFAM_H 8*f5e80be3SNinad Palsule #define FSI_CFAM_H 9*f5e80be3SNinad Palsule 10*f5e80be3SNinad Palsule #include "exec/memory.h" 11*f5e80be3SNinad Palsule 12*f5e80be3SNinad Palsule #include "hw/fsi/fsi.h" 13*f5e80be3SNinad Palsule #include "hw/fsi/lbus.h" 14*f5e80be3SNinad Palsule 15*f5e80be3SNinad Palsule #define TYPE_FSI_CFAM "cfam" 16*f5e80be3SNinad Palsule #define FSI_CFAM(obj) OBJECT_CHECK(FSICFAMState, (obj), TYPE_FSI_CFAM) 17*f5e80be3SNinad Palsule 18*f5e80be3SNinad Palsule /* P9-ism */ 19*f5e80be3SNinad Palsule #define CFAM_CONFIG_NR_REGS 0x28 20*f5e80be3SNinad Palsule 21*f5e80be3SNinad Palsule typedef struct FSICFAMState { 22*f5e80be3SNinad Palsule /* < private > */ 23*f5e80be3SNinad Palsule FSISlaveState parent; 24*f5e80be3SNinad Palsule 25*f5e80be3SNinad Palsule /* CFAM config address space */ 26*f5e80be3SNinad Palsule MemoryRegion config_iomem; 27*f5e80be3SNinad Palsule 28*f5e80be3SNinad Palsule MemoryRegion mr; 29*f5e80be3SNinad Palsule 30*f5e80be3SNinad Palsule FSILBus lbus; 31*f5e80be3SNinad Palsule FSIScratchPad scratchpad; 32*f5e80be3SNinad Palsule } FSICFAMState; 33*f5e80be3SNinad Palsule 34*f5e80be3SNinad Palsule #endif /* FSI_CFAM_H */ 35*f5e80be3SNinad Palsule