of: merge struct boot_param_header from Microblaze and PowerPC
Merge common code for working with Flattened Device Tree data structure Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: David S. Miller <davem@davemloft.net> Acked-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Michal Simek <monstr@monstr.eu> Acked-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com> Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
This commit is contained in:
		
					parent
					
						
							
								d8678b5870
							
						
					
				
			
			
				commit
				
					
						d45d94f672
					
				
			
		
					 3 changed files with 32 additions and 61 deletions
				
			
		|  | @ -33,36 +33,6 @@ | ||||||
| #define of_prop_cmp(s1, s2)		strcmp((s1), (s2)) | #define of_prop_cmp(s1, s2)		strcmp((s1), (s2)) | ||||||
| #define of_node_cmp(s1, s2)		strcasecmp((s1), (s2)) | #define of_node_cmp(s1, s2)		strcasecmp((s1), (s2)) | ||||||
| 
 | 
 | ||||||
| /*
 |  | ||||||
|  * This is what gets passed to the kernel by prom_init or kexec |  | ||||||
|  * |  | ||||||
|  * The dt struct contains the device tree structure, full pathes and |  | ||||||
|  * property contents. The dt strings contain a separate block with just |  | ||||||
|  * the strings for the property names, and is fully page aligned and |  | ||||||
|  * self contained in a page, so that it can be kept around by the kernel, |  | ||||||
|  * each property name appears only once in this page (cheap compression) |  | ||||||
|  * |  | ||||||
|  * the mem_rsvmap contains a map of reserved ranges of physical memory, |  | ||||||
|  * passing it here instead of in the device-tree itself greatly simplifies |  | ||||||
|  * the job of everybody. It's just a list of u64 pairs (base/size) that |  | ||||||
|  * ends when size is 0 |  | ||||||
|  */ |  | ||||||
| struct boot_param_header { |  | ||||||
| 	u32	magic; /* magic word OF_DT_HEADER */ |  | ||||||
| 	u32	totalsize; /* total size of DT block */ |  | ||||||
| 	u32	off_dt_struct; /* offset to structure */ |  | ||||||
| 	u32	off_dt_strings; /* offset to strings */ |  | ||||||
| 	u32	off_mem_rsvmap; /* offset to memory reserve map */ |  | ||||||
| 	u32	version; /* format version */ |  | ||||||
| 	u32	last_comp_version; /* last compatible version */ |  | ||||||
| 	/* version 2 fields below */ |  | ||||||
| 	u32	boot_cpuid_phys; /* Physical CPU id we're booting on */ |  | ||||||
| 	/* version 3 fields below */ |  | ||||||
| 	u32	dt_strings_size; /* size of the DT strings block */ |  | ||||||
| 	/* version 17 fields below */ |  | ||||||
| 	u32	dt_struct_size; /* size of the DT structure block */ |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| extern struct device_node *of_chosen; | extern struct device_node *of_chosen; | ||||||
| 
 | 
 | ||||||
| static inline int of_node_check_flag(struct device_node *n, unsigned long flag) | static inline int of_node_check_flag(struct device_node *n, unsigned long flag) | ||||||
|  |  | ||||||
|  | @ -30,37 +30,6 @@ | ||||||
| #define of_prop_cmp(s1, s2)		strcmp((s1), (s2)) | #define of_prop_cmp(s1, s2)		strcmp((s1), (s2)) | ||||||
| #define of_node_cmp(s1, s2)		strcasecmp((s1), (s2)) | #define of_node_cmp(s1, s2)		strcasecmp((s1), (s2)) | ||||||
| 
 | 
 | ||||||
| /*
 |  | ||||||
|  * This is what gets passed to the kernel by prom_init or kexec |  | ||||||
|  * |  | ||||||
|  * The dt struct contains the device tree structure, full pathes and |  | ||||||
|  * property contents. The dt strings contain a separate block with just |  | ||||||
|  * the strings for the property names, and is fully page aligned and |  | ||||||
|  * self contained in a page, so that it can be kept around by the kernel, |  | ||||||
|  * each property name appears only once in this page (cheap compression) |  | ||||||
|  * |  | ||||||
|  * the mem_rsvmap contains a map of reserved ranges of physical memory, |  | ||||||
|  * passing it here instead of in the device-tree itself greatly simplifies |  | ||||||
|  * the job of everybody. It's just a list of u64 pairs (base/size) that |  | ||||||
|  * ends when size is 0 |  | ||||||
|  */ |  | ||||||
| struct boot_param_header |  | ||||||
| { |  | ||||||
| 	u32	magic;			/* magic word OF_DT_HEADER */ |  | ||||||
| 	u32	totalsize;		/* total size of DT block */ |  | ||||||
| 	u32	off_dt_struct;		/* offset to structure */ |  | ||||||
| 	u32	off_dt_strings;		/* offset to strings */ |  | ||||||
| 	u32	off_mem_rsvmap;		/* offset to memory reserve map */ |  | ||||||
| 	u32	version;		/* format version */ |  | ||||||
| 	u32	last_comp_version;	/* last compatible version */ |  | ||||||
| 	/* version 2 fields below */ |  | ||||||
| 	u32	boot_cpuid_phys;	/* Physical CPU id we're booting on */ |  | ||||||
| 	/* version 3 fields below */ |  | ||||||
| 	u32	dt_strings_size;	/* size of the DT strings block */ |  | ||||||
| 	/* version 17 fields below */ |  | ||||||
| 	u32	dt_struct_size;		/* size of the DT structure block */ |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| extern struct device_node *of_chosen; | extern struct device_node *of_chosen; | ||||||
| 
 | 
 | ||||||
| static inline int of_node_check_flag(struct device_node *n, unsigned long flag) | static inline int of_node_check_flag(struct device_node *n, unsigned long flag) | ||||||
|  |  | ||||||
|  | @ -23,4 +23,36 @@ | ||||||
| 
 | 
 | ||||||
| #define OF_DT_VERSION		0x10 | #define OF_DT_VERSION		0x10 | ||||||
| 
 | 
 | ||||||
|  | #ifndef __ASSEMBLY__ | ||||||
|  | /*
 | ||||||
|  |  * This is what gets passed to the kernel by prom_init or kexec | ||||||
|  |  * | ||||||
|  |  * The dt struct contains the device tree structure, full pathes and | ||||||
|  |  * property contents. The dt strings contain a separate block with just | ||||||
|  |  * the strings for the property names, and is fully page aligned and | ||||||
|  |  * self contained in a page, so that it can be kept around by the kernel, | ||||||
|  |  * each property name appears only once in this page (cheap compression) | ||||||
|  |  * | ||||||
|  |  * the mem_rsvmap contains a map of reserved ranges of physical memory, | ||||||
|  |  * passing it here instead of in the device-tree itself greatly simplifies | ||||||
|  |  * the job of everybody. It's just a list of u64 pairs (base/size) that | ||||||
|  |  * ends when size is 0 | ||||||
|  |  */ | ||||||
|  | struct boot_param_header { | ||||||
|  | 	u32	magic;			/* magic word OF_DT_HEADER */ | ||||||
|  | 	u32	totalsize;		/* total size of DT block */ | ||||||
|  | 	u32	off_dt_struct;		/* offset to structure */ | ||||||
|  | 	u32	off_dt_strings;		/* offset to strings */ | ||||||
|  | 	u32	off_mem_rsvmap;		/* offset to memory reserve map */ | ||||||
|  | 	u32	version;		/* format version */ | ||||||
|  | 	u32	last_comp_version;	/* last compatible version */ | ||||||
|  | 	/* version 2 fields below */ | ||||||
|  | 	u32	boot_cpuid_phys;	/* Physical CPU id we're booting on */ | ||||||
|  | 	/* version 3 fields below */ | ||||||
|  | 	u32	dt_strings_size;	/* size of the DT strings block */ | ||||||
|  | 	/* version 17 fields below */ | ||||||
|  | 	u32	dt_struct_size;		/* size of the DT structure block */ | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | #endif /* __ASSEMBLY__ */ | ||||||
| #endif /* _LINUX_OF_FDT_H */ | #endif /* _LINUX_OF_FDT_H */ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Grant Likely
				Grant Likely