 ca03310737
			
		
	
	
		ca03310737
		
	
	
	
	
		
			
			This is a part of patchset where IBM's Flexible Service Interface is
introduced.
This commit models the FSI master. CFAM is hanging out of FSI master which is a bus controller.
The FSI master: A controller in the platform service processor (e.g.
BMC) driving CFAM engine accesses into the POWER chip. At the
hardware level FSI is a bit-based protocol supporting synchronous and
DMA-driven accesses of engines in a CFAM.
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>
[ clg: - move FSICFAMState object under FSIMasterState
       - introduced fsi_master_init()
       - reworked fsi_master_realize()
       - dropped FSIBus definition ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
		
	
			
		
			
				
	
	
		
			33 lines
		
	
	
		
			649 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			649 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * SPDX-License-Identifier: GPL-2.0-or-later
 | |
|  * Copyright (C) 2024 IBM Corp.
 | |
|  *
 | |
|  * IBM Flexible Service Interface Master
 | |
|  */
 | |
| #ifndef FSI_FSI_MASTER_H
 | |
| #define FSI_FSI_MASTER_H
 | |
| 
 | |
| #include "exec/memory.h"
 | |
| #include "hw/qdev-core.h"
 | |
| #include "hw/fsi/fsi.h"
 | |
| #include "hw/fsi/cfam.h"
 | |
| 
 | |
| #define TYPE_FSI_MASTER "fsi.master"
 | |
| OBJECT_DECLARE_SIMPLE_TYPE(FSIMasterState, FSI_MASTER)
 | |
| 
 | |
| #define FSI_MASTER_NR_REGS ((0x2e0 >> 2) + 1)
 | |
| 
 | |
| typedef struct FSIMasterState {
 | |
|     DeviceState parent;
 | |
|     MemoryRegion iomem;
 | |
|     MemoryRegion opb2fsi;
 | |
| 
 | |
|     FSIBus bus;
 | |
| 
 | |
|     uint32_t regs[FSI_MASTER_NR_REGS];
 | |
|     FSICFAMState cfam;
 | |
| } FSIMasterState;
 | |
| 
 | |
| 
 | |
| #endif /* FSI_FSI_H */
 |