mirror of
				https://github.com/riscv-software-src/opensbi
				synced 2025-11-04 05:50:22 +00:00 
			
		
		
		
	At present fdt_plic_fixup() accepts a 'compat' parameter for PLIC compatible string. In preparation to support the new DT bindings, drop this and use "riscv,plic0" directly in fdt_plic_fixup(). Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Anup Patel <anup.patel@wdc.com>
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
// SPDX-License-Identifier: BSD-2-Clause
 | 
						|
/*
 | 
						|
 * fdt_fixup.h - Flat Device Tree manipulation helper routines
 | 
						|
 * Implement platform specific DT fixups on top of libfdt. 
 | 
						|
 *
 | 
						|
 * Copyright (C) 2020 Bin Meng <bmeng.cn@gmail.com>
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef __FDT_FIXUP_H__
 | 
						|
#define __FDT_FIXUP_H__
 | 
						|
 | 
						|
/**
 | 
						|
 * Fix up the CPU node in the device tree
 | 
						|
 *
 | 
						|
 * This routine updates the "status" property of a CPU node in the device tree
 | 
						|
 * to "disabled" if that hart is in disabled state in OpenSBI.
 | 
						|
 *
 | 
						|
 * It is recommended that platform codes call this helper in their final_init()
 | 
						|
 *
 | 
						|
 * @param fdt: device tree blob
 | 
						|
 */
 | 
						|
void fdt_cpu_fixup(void *fdt);
 | 
						|
 | 
						|
/**
 | 
						|
 * Fix up the PLIC node in the device tree
 | 
						|
 *
 | 
						|
 * This routine updates the "interrupt-extended" property of the PLIC node in
 | 
						|
 * the device tree to hide the M-mode external interrupt from CPUs.
 | 
						|
 *
 | 
						|
 * It is recommended that platform codes call this helper in their final_init()
 | 
						|
 *
 | 
						|
 * @param fdt: device tree blob
 | 
						|
 */
 | 
						|
void fdt_plic_fixup(void *fdt);
 | 
						|
 | 
						|
/**
 | 
						|
 * Fix up the reserved memory node in the device tree
 | 
						|
 *
 | 
						|
 * This routine inserts a child node of the reserved memory node in the device
 | 
						|
 * tree that describes the protected memory region done by OpenSBI via PMP.
 | 
						|
 *
 | 
						|
 * It is recommended that platform codes call this helper in their final_init()
 | 
						|
 *
 | 
						|
 * @param fdt: device tree blob
 | 
						|
 * @return zero on success and -ve on failure
 | 
						|
 */
 | 
						|
int fdt_reserved_memory_fixup(void *fdt);
 | 
						|
 | 
						|
/**
 | 
						|
 * Fix up the reserved memory subnodes in the device tree
 | 
						|
 *
 | 
						|
 * This routine adds the no-map property to the reserved memory subnodes so
 | 
						|
 * that the OS does not map those PMP protected memory regions.
 | 
						|
 *
 | 
						|
 * Platform codes must call this helper in their final_init() after fdt_fixups()
 | 
						|
 * if the OS should not map the PMP protected reserved regions.
 | 
						|
 *
 | 
						|
 * @param fdt: device tree blob
 | 
						|
 * @return zero on success and -ve on failure
 | 
						|
 */
 | 
						|
int fdt_reserved_memory_nomap_fixup(void *fdt);
 | 
						|
 | 
						|
/**
 | 
						|
 * General device tree fix-up
 | 
						|
 *
 | 
						|
 * This routine do all required device tree fix-ups for a typical platform.
 | 
						|
 * It fixes up the PLIC node and the reserved memory node in the device tree
 | 
						|
 * by calling the corresponding helper routines to accomplish the task.
 | 
						|
 *
 | 
						|
 * It is recommended that platform codes call this helper in their final_init()
 | 
						|
 *
 | 
						|
 * @param fdt: device tree blob
 | 
						|
 */
 | 
						|
void fdt_fixups(void *fdt);
 | 
						|
 | 
						|
#endif /* __FDT_FIXUP_H__ */
 | 
						|
 |