program loading: provide one cache maintenance callback
Instead of having 2 different functions to call when a program is loaded provide a single callback with flags parameter. The previous callbacks for cache management routines did this: for_each_program_segment: arch_program_segment_loaded(start, size); arch_program_loaded(); Now, use one callback instead: for_each_program_segment: arch_segment_loaded(start, size, SEG_FINAL?); Change-Id: I3811cba92e3355d172f605e4444f053321b07a2a Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/8838 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
committed by
Aaron Durbin
parent
ebf2ed4621
commit
6e76fff969
@ -314,9 +314,16 @@ static int load_self_segments(
|
||||
struct payload *payload)
|
||||
{
|
||||
struct segment *ptr;
|
||||
struct segment *last_non_empty;
|
||||
const unsigned long one_meg = (1UL << 20);
|
||||
unsigned long bounce_high = lb_end;
|
||||
|
||||
/* Determine last non-empty loaded segment. */
|
||||
last_non_empty = NULL;
|
||||
for(ptr = head->next; ptr != head; ptr = ptr->next)
|
||||
if (ptr->s_filesz != 0)
|
||||
last_non_empty = ptr;
|
||||
|
||||
for(ptr = head->next; ptr != head; ptr = ptr->next) {
|
||||
if (bootmem_region_targets_usable_ram(ptr->s_dstaddr,
|
||||
ptr->s_memsz))
|
||||
@ -442,17 +449,11 @@ static int load_self_segments(
|
||||
* Each architecture can perform additonal operations
|
||||
* on the loaded segment
|
||||
*/
|
||||
arch_program_segment_loaded((uintptr_t)dest,
|
||||
ptr->s_memsz);
|
||||
arch_segment_loaded((uintptr_t)dest, ptr->s_memsz,
|
||||
last_non_empty == ptr ? SEG_FINAL : 0);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Each architecture can perform additonal operations once the entire
|
||||
* program is loaded
|
||||
*/
|
||||
arch_program_loaded();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user