xref: /linux/arch/mips/include/asm/yamon-dt.h (revision 306ec721d043bbe5e818d59fbb37c28d999b5d8b)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Copyright (C) 2016 Imagination Technologies
4  * Author: Paul Burton <paul.burton@mips.com>
5  */
6 
7 #ifndef __MIPS_ASM_YAMON_DT_H__
8 #define __MIPS_ASM_YAMON_DT_H__
9 
10 #include <linux/types.h>
11 
12 /**
13  * struct yamon_mem_region - Represents a contiguous range of physical RAM.
14  * @start:	Start physical address.
15  * @size:	Maximum size of region.
16  * @discard:	Length of additional memory to discard after the region.
17  */
18 struct yamon_mem_region {
19 	phys_addr_t	start;
20 	phys_addr_t	size;
21 	phys_addr_t	discard;
22 };
23 
24 /**
25  * yamon_dt_append_cmdline() - Append YAMON-provided command line to /chosen
26  * @fdt: the FDT blob
27  *
28  * Write the YAMON-provided command line to the bootargs property of the
29  * /chosen node in @fdt.
30  *
31  * Return: 0 on success, else -errno
32  */
33 extern __init int yamon_dt_append_cmdline(void *fdt);
34 
35 /**
36  * yamon_dt_append_memory() - Append YAMON-provided memory info to /memory
37  * @fdt:	the FDT blob
38  * @regions:	zero size terminated array of physical memory regions
39  *
40  * Generate a /memory node in @fdt based upon memory size information provided
41  * by YAMON in its environment and the @regions array.
42  *
43  * Return: 0 on success, else -errno
44  */
45 extern __init int yamon_dt_append_memory(void *fdt,
46 					const struct yamon_mem_region *regions);
47 
48 /**
49  * yamon_dt_serial_config() - Append YAMON-provided serial config to /chosen
50  * @fdt: the FDT blob
51  *
52  * Generate a stdout-path property in the /chosen node of @fdt, based upon
53  * information provided in the YAMON environment about the UART configuration
54  * of the system.
55  *
56  * Return: 0 on success, else -errno
57  */
58 extern __init int yamon_dt_serial_config(void *fdt);
59 
60 #endif /* __MIPS_ASM_YAMON_DT_H__ */
61