[U-Boot] early_malloc() vs. enable_caches()

Tomas Hlavacek tmshlvck at gmail.com
Sat Jul 28 17:46:41 CEST 2012


Hello!

I am working on early_malloc() for U-Boot Driver Model (this malloc is
going to serve for internal DM structures during early init and it has it's
minimalistic heap in global data).

My question is how to correctly switch from early allocator to full-scale
malloc and when to enable caches.

The current state (on ARM) is:
1) gd = id;
3) enable_caches();
3) mem_malloc_init();

Proposed sequence for mallocator (in order no to loose any data from old
and not-relocated part of GD):

1) gd_old = gd;
2) gd = id;
3) mem_malloc_init();
4) relocation of DM structures
5) early_malloc_disab()
6) enable_caches();

Does it make sense? It actually boils down to one fundamental question:
When I have not-rellocated data locked in cache-lines, do I loose them once
enable_caches() is called?

Thanks,
Tomas

-- 
Tomáš Hlaváček <tmshlvck at gmail.com>


More information about the U-Boot mailing list