Dear Wolfgang, On Tue, Jul 31, 2012 at 9:52 PM, Wolfgang Denk <w...@denx.de> wrote:
>> Can/should we use some existing mechanism? Or would it be considered a >> viable option to choose different beginning address for early heap, >> use it (in architecture-specific way) and keep the pointer to the >> beginning in GD. Then copy the early heap to memory before caches are >> flushed and in case of DM copy again data from early heap to new >> destinations that has been obtained through malloc() when it is >> initialized? > > It is difficult (or actually impossible) to answer this, if you do not > explain which concept you are talking about here, or why two copy > operations would be needed, what "in case of DM" means (and which > other cases exist), or how you intend to handle the problem of > changing addresses (and thus pointers becoming incorrect) for each of > such copy operations. I have been given an advice by Graeme not to make early_malloc() as one-purpose thing for DM (i.e. not to implement DM tree relocation or special support for doing so in early_malloc routines). Other guys working on DM wants AFAIK to create DM tree using early_malloc inside board_init_f(). The tree is going to have root and on some boards few extra elements, like 2 or 3 in this phase and each object has 16 bytes. Then they want to have this tree accessible (or at least a copy of the tree) in board_init_r(). They want to traverse the tree (by recomputing pointers) at some point in board_init_r(), allocate new tree objects using dlmalloc and copy the data into the new tree. The concept I am thinking about is reserving space for early heap right after GD by same platform specific means (i.e. subtracting CONFIG_SYS_INIT_SP_ADDR). Then I would like to reserve space in RAM equal to used size of early_heap before relocation and memcpy the existing early_heap there (the same way GD are copied). Therefore we would have a copy of used early_heap in RAM and we can recompute pointers to traverse the tree in board_init_r(). Tomas -- Tomáš Hlaváček <tmshl...@gmail.com> _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot