arm64: versal: Do not place u-boot to reserved memory location
Versal can also have reserved space in DT which u-boot has to avoid to placing self to that location. The same change was done in ZynqMP by commitce39ee28ec("zynqmp: Do not place u-boot to reserved memory location") and also for microblaze by commitd7b5cc89d3("microblaze: Do not place u-boot to reserved memory location"). The patch was tested by adding reserved-memory node to DT and check via bdinfo back. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Link: https://lore.kernel.org/r/15426fa6d64835dd23c5c8c12bbfc97306fb6098.1647527129.git.michal.simek@xilinx.com
This commit is contained in:
		
							parent
							
								
									f307c688ea
								
							
						
					
					
						commit
						f66d0b5346
					
				| 
						 | 
					@ -9,6 +9,7 @@
 | 
				
			||||||
#include <env.h>
 | 
					#include <env.h>
 | 
				
			||||||
#include <fdtdec.h>
 | 
					#include <fdtdec.h>
 | 
				
			||||||
#include <init.h>
 | 
					#include <init.h>
 | 
				
			||||||
 | 
					#include <image.h>
 | 
				
			||||||
#include <env_internal.h>
 | 
					#include <env_internal.h>
 | 
				
			||||||
#include <log.h>
 | 
					#include <log.h>
 | 
				
			||||||
#include <malloc.h>
 | 
					#include <malloc.h>
 | 
				
			||||||
| 
						 | 
					@ -249,6 +250,25 @@ int dram_init(void)
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ulong board_get_usable_ram_top(ulong total_size)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						phys_size_t size;
 | 
				
			||||||
 | 
						phys_addr_t reg;
 | 
				
			||||||
 | 
						struct lmb lmb;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* found enough not-reserved memory to relocated U-Boot */
 | 
				
			||||||
 | 
						lmb_init(&lmb);
 | 
				
			||||||
 | 
						lmb_add(&lmb, gd->ram_base, gd->ram_size);
 | 
				
			||||||
 | 
						boot_fdt_add_mem_rsv_regions(&lmb, (void *)gd->fdt_blob);
 | 
				
			||||||
 | 
						size = ALIGN(CONFIG_SYS_MALLOC_LEN + total_size, MMU_SECTION_SIZE);
 | 
				
			||||||
 | 
						reg = lmb_alloc(&lmb, size, MMU_SECTION_SIZE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!reg)
 | 
				
			||||||
 | 
							reg = gd->ram_top - size;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return reg + size;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void reset_cpu(void)
 | 
					void reset_cpu(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue