imx8m: Restrict usable memory to space below 4G boundary
Some IPs have their accessible address space restricted by the interconnect. Let's make sure U-Boot only ever uses the space below the 4G address boundary (which is 3GiB big), even when the effective available memory is bigger. We implement board_get_usable_ram_top() for all i.MX8M SoCs, as the whole family is affected by this. Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
This commit is contained in:
		
							parent
							
								
									ef62fff269
								
							
						
					
					
						commit
						e27bddff4b
					
				| 
						 | 
					@ -296,6 +296,20 @@ phys_size_t get_effective_memsize(void)
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ulong board_get_usable_ram_top(ulong total_size)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * Some IPs have their accessible address space restricted by
 | 
				
			||||||
 | 
						 * the interconnect. Let's make sure U-Boot only ever uses the
 | 
				
			||||||
 | 
						 * space below the 4G address boundary (which is 3GiB big),
 | 
				
			||||||
 | 
						 * even when the effective available memory is bigger.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						if (PHYS_SDRAM + gd->ram_size > 0x80000000)
 | 
				
			||||||
 | 
							return 0x80000000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return PHYS_SDRAM + gd->ram_size;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static u32 get_cpu_variant_type(u32 type)
 | 
					static u32 get_cpu_variant_type(u32 type)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
 | 
						struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue