61 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
|  * Dynamic sysbus device tree node generation API
 | |
|  *
 | |
|  * Copyright Linaro Limited, 2014
 | |
|  *
 | |
|  * Authors:
 | |
|  *  Alex Graf <agraf@suse.de>
 | |
|  *  Eric Auger <eric.auger@linaro.org>
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or modify it
 | |
|  * under the terms and conditions of the GNU General Public License,
 | |
|  * version 2 or later, as published by the Free Software Foundation.
 | |
|  *
 | |
|  * This program is distributed in the hope it will be useful, but WITHOUT
 | |
|  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | |
|  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 | |
|  * more details.
 | |
|  *
 | |
|  * You should have received a copy of the GNU General Public License along with
 | |
|  * this program.  If not, see <http://www.gnu.org/licenses/>.
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #ifndef HW_ARM_SYSBUS_FDT_H
 | |
| #define HW_ARM_SYSBUS_FDT_H
 | |
| 
 | |
| #include "hw/arm/arm.h"
 | |
| #include "qemu-common.h"
 | |
| #include "hw/sysbus.h"
 | |
| 
 | |
| /*
 | |
|  * struct that contains dimensioning parameters of the platform bus
 | |
|  */
 | |
| typedef struct {
 | |
|     hwaddr platform_bus_base; /* start address of the bus */
 | |
|     hwaddr platform_bus_size; /* size of the bus */
 | |
|     int platform_bus_first_irq; /* first hwirq assigned to the bus */
 | |
|     int platform_bus_num_irqs; /* number of hwirq assigned to the bus */
 | |
| } ARMPlatformBusSystemParams;
 | |
| 
 | |
| /*
 | |
|  * struct that contains all relevant info to build the fdt nodes of
 | |
|  * platform bus and attached dynamic sysbus devices
 | |
|  * in the future might be augmented with additional info
 | |
|  * such as PHY, CLK handles ...
 | |
|  */
 | |
| typedef struct {
 | |
|     const ARMPlatformBusSystemParams *system_params;
 | |
|     struct arm_boot_info *binfo;
 | |
|     const char *intc; /* parent interrupt controller name */
 | |
| } ARMPlatformBusFDTParams;
 | |
| 
 | |
| /**
 | |
|  * arm_register_platform_bus_fdt_creator - register a machine init done
 | |
|  * notifier that creates the device tree nodes of the platform bus and
 | |
|  * associated dynamic sysbus devices
 | |
|  */
 | |
| void arm_register_platform_bus_fdt_creator(ARMPlatformBusFDTParams *fdt_params);
 | |
| 
 | |
| #endif
 |