Hi all,
I am trying to understand how post_cache_as_ram() function works. As we know, there are two main parts of coreboot, which are cache_as_ram part and ram part. post_caches_as_ram function tries to copy data from cache_as_ram to ram.
I am very confused about the memory calculation such as CONFIG_DCACHE_RAM_BASE + CONFIG_DCACHE_RAM_SIZE - CONFIG_RAMTOP
I would appreciate if someone could explain a little bit for me. CONFIG_DCACHE_RAM_BASE CONFIG_DCACHE_RAM_SIZE CONFIG_RAM_SIZE CONFIG_RAMTOP
In addition, why do we need to set new esp here? /* set new esp */ /* before CONFIG_RAMBASE */ "subl %0, %%esp\n\t" ::"a"( (CONFIG_DCACHE_RAM_BASE + CONFIG_DCACHE_RAM_SIZE)- (CONFIG_RAMTOP) )
Best, Fengwei