 6a2897bb5f
			
		
	
	
		6a2897bb5f
		
	
	
	
	
		
			
			This is a part of patchset where IBM's Flexible Service Interface is introduced. The FSI slave: The slave is the terminal point of the FSI bus for FSI symbols addressed to it. Slaves can be cascaded off of one another. The slave's configuration registers appear in address space of the CFAM to which it is attached. Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Signed-off-by: Ninad Palsule <ninad@linux.ibm.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Signed-off-by: Cédric Le Goater <clg@kaod.org>
		
			
				
	
	
		
			38 lines
		
	
	
		
			812 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			812 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * SPDX-License-Identifier: GPL-2.0-or-later
 | |
|  * Copyright (C) 2024 IBM Corp.
 | |
|  *
 | |
|  * IBM Flexible Service Interface
 | |
|  */
 | |
| #ifndef FSI_FSI_H
 | |
| #define FSI_FSI_H
 | |
| 
 | |
| #include "exec/memory.h"
 | |
| #include "hw/qdev-core.h"
 | |
| #include "hw/fsi/lbus.h"
 | |
| #include "qemu/bitops.h"
 | |
| 
 | |
| /* Bitwise operations at the word level. */
 | |
| #define BE_GENMASK(hb, lb)  MAKE_64BIT_MASK((lb), ((hb) - (lb) + 1))
 | |
| 
 | |
| #define TYPE_FSI_BUS "fsi.bus"
 | |
| OBJECT_DECLARE_SIMPLE_TYPE(FSIBus, FSI_BUS)
 | |
| 
 | |
| typedef struct FSIBus {
 | |
|     BusState bus;
 | |
| } FSIBus;
 | |
| 
 | |
| #define TYPE_FSI_SLAVE "fsi.slave"
 | |
| OBJECT_DECLARE_SIMPLE_TYPE(FSISlaveState, FSI_SLAVE)
 | |
| 
 | |
| #define FSI_SLAVE_CONTROL_NR_REGS ((0x40 >> 2) + 1)
 | |
| 
 | |
| typedef struct FSISlaveState {
 | |
|     DeviceState parent;
 | |
| 
 | |
|     MemoryRegion iomem;
 | |
|     uint32_t regs[FSI_SLAVE_CONTROL_NR_REGS];
 | |
| } FSISlaveState;
 | |
| 
 | |
| #endif /* FSI_FSI_H */
 |