Hi Heinrich, Ilias, I had a bit of a look at how memory is allocated in EFI.
I see that efi_memory_init() is called quite early in U-Boot. It sometimes allocates memory for a bounce buffer, placing it somewhere in memory. How do we know that that memory is free and not being used by U-Boot? To answer my own question, it excludes U-Boot's malloc() region from the map, so that it cannot overwrite that. But then, what if we use lmb and start loading images into memory. Won't that conflict with EFI? I also see that efi_allocate_pages() is called to allocate memory in the EFI code. But this just grabs memory from 'anywhere'...it doesn't respect the U-Boot malloc region. It seems to me that most of the memory allocation in EFI should be done using malloc(). Of course the boot services need to efi_allocate_pages(), etc., but I am not sure that the internal tables should be skipping malloc()? What do you think? Regards, Simon