mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00:00 
			
		
		
		
	riscv: Move all fdt fixups together
Keep all the fdt fixups together for better code management. Signed-off-by: Atish Patra <atish.patra@wdc.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
		
							parent
							
								
									73d756fd22
								
							
						
					
					
						commit
						177c53fe6c
					
				@ -26,39 +26,6 @@ __weak void board_quiesce_devices(void)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int arch_fixup_fdt(void *blob)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	int err;
 | 
					 | 
				
			||||||
#ifdef CONFIG_EFI_LOADER
 | 
					 | 
				
			||||||
	u32 size;
 | 
					 | 
				
			||||||
	int chosen_offset;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	size = fdt_totalsize(blob);
 | 
					 | 
				
			||||||
	err  = fdt_open_into(blob, blob, size + 32);
 | 
					 | 
				
			||||||
	if (err < 0) {
 | 
					 | 
				
			||||||
		printf("Device Tree can't be expanded to accommodate new node");
 | 
					 | 
				
			||||||
		return err;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	chosen_offset = fdt_path_offset(blob, "/chosen");
 | 
					 | 
				
			||||||
	if (chosen_offset < 0) {
 | 
					 | 
				
			||||||
		err = fdt_add_subnode(blob, 0, "chosen");
 | 
					 | 
				
			||||||
		if (err < 0) {
 | 
					 | 
				
			||||||
			printf("chosen node can not be added\n");
 | 
					 | 
				
			||||||
			return err;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	/* Overwrite the boot-hartid as U-Boot is the last stage BL */
 | 
					 | 
				
			||||||
	fdt_setprop_u32(blob, chosen_offset, "boot-hartid", gd->arch.boot_hart);
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* Copy the reserved-memory node to the DT used by OS */
 | 
					 | 
				
			||||||
	err = riscv_fdt_copy_resv_mem_node(gd->fdt_blob, blob);
 | 
					 | 
				
			||||||
	if (err < 0)
 | 
					 | 
				
			||||||
		return err;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * announce_and_cleanup() - Print message and prepare for kernel boot
 | 
					 * announce_and_cleanup() - Print message and prepare for kernel boot
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 | 
				
			|||||||
@ -115,3 +115,36 @@ int board_fix_fdt(void *fdt)
 | 
				
			|||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int arch_fixup_fdt(void *blob)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						int err;
 | 
				
			||||||
 | 
					#ifdef CONFIG_EFI_LOADER
 | 
				
			||||||
 | 
						u32 size;
 | 
				
			||||||
 | 
						int chosen_offset;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						size = fdt_totalsize(blob);
 | 
				
			||||||
 | 
						err  = fdt_open_into(blob, blob, size + 32);
 | 
				
			||||||
 | 
						if (err < 0) {
 | 
				
			||||||
 | 
							printf("Device Tree can't be expanded to accommodate new node");
 | 
				
			||||||
 | 
							return err;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						chosen_offset = fdt_path_offset(blob, "/chosen");
 | 
				
			||||||
 | 
						if (chosen_offset < 0) {
 | 
				
			||||||
 | 
							err = fdt_add_subnode(blob, 0, "chosen");
 | 
				
			||||||
 | 
							if (err < 0) {
 | 
				
			||||||
 | 
								printf("chosen node can not be added\n");
 | 
				
			||||||
 | 
								return err;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						/* Overwrite the boot-hartid as U-Boot is the last stage BL */
 | 
				
			||||||
 | 
						fdt_setprop_u32(blob, chosen_offset, "boot-hartid", gd->arch.boot_hart);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Copy the reserved-memory node to the DT used by OS */
 | 
				
			||||||
 | 
						err = riscv_fdt_copy_resv_mem_node(gd->fdt_blob, blob);
 | 
				
			||||||
 | 
						if (err < 0)
 | 
				
			||||||
 | 
							return err;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user