mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-11 07:24:46 +00:00
initcall: Correct use of relocation offset
The relocation offset can change in some initcall sequences. Handle this and make sure it is used for all debugging statements in init_run_list() Update the trace test to match. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
This commit is contained in:
parent
cb44201c71
commit
57c4cd17e6
2 changed files with 6 additions and 4 deletions
|
@ -49,13 +49,14 @@ static int initcall_is_event(init_fnc_t func)
|
|||
*/
|
||||
int initcall_run_list(const init_fnc_t init_sequence[])
|
||||
{
|
||||
ulong reloc_ofs = calc_reloc_ofs();
|
||||
ulong reloc_ofs;
|
||||
const init_fnc_t *ptr;
|
||||
enum event_t type;
|
||||
init_fnc_t func;
|
||||
int ret = 0;
|
||||
|
||||
for (ptr = init_sequence; func = *ptr, func; ptr++) {
|
||||
reloc_ofs = calc_reloc_ofs();
|
||||
type = initcall_is_event(func);
|
||||
|
||||
if (type) {
|
||||
|
@ -84,7 +85,8 @@ int initcall_run_list(const init_fnc_t init_sequence[])
|
|||
sprintf(buf, "event %d/%s", type,
|
||||
event_type_name(type));
|
||||
} else {
|
||||
sprintf(buf, "call %p", func);
|
||||
sprintf(buf, "call %p",
|
||||
(char *)func - reloc_ofs);
|
||||
}
|
||||
|
||||
printf("initcall failed at %s (err=%dE)\n", buf, ret);
|
||||
|
|
|
@ -175,7 +175,7 @@ def check_funcgraph(cons, fname, proftool, map_fname, trace_dat):
|
|||
# Then look for this:
|
||||
# u-boot-1 0..... 282.101375: funcgraph_exit: 0.006 us | }
|
||||
# Then check for this:
|
||||
# u-boot-1 0..... 282.101375: funcgraph_entry: 0.000 us | initcall_is_event();
|
||||
# u-boot-1 0..... 282.101375: funcgraph_entry: 0.000 us | calc_reloc_ofs();
|
||||
|
||||
expected_indent = None
|
||||
found_start = False
|
||||
|
@ -199,7 +199,7 @@ def check_funcgraph(cons, fname, proftool, map_fname, trace_dat):
|
|||
|
||||
# The next function after initf_bootstage() exits should be
|
||||
# initcall_is_event()
|
||||
assert upto == 'initcall_is_event()'
|
||||
assert upto == 'calc_reloc_ofs()'
|
||||
|
||||
# Now look for initf_dm() and dm_timer_init() so we can check the bootstage
|
||||
# time
|
||||
|
|
Loading…
Add table
Reference in a new issue