提交 2f43f854 编写于 作者: S Simon Glass 提交者: Minkyu Kang

initcall: Improve debugging support

Add the ability to display the code offset of an initcall even after it
is relocated. This makes it much easier to relate initcalls back to the
U-Boot System.map file.
Signed-off-by: NSimon Glass <sjg@chromium.org>
Signed-off-by: NMinkyu Kang <mk7.kang@samsung.com>
上级 a9cf6da9
......@@ -6,4 +6,4 @@
typedef int (*init_fnc_t)(void);
int initcall_run_list(init_fnc_t init_sequence[]);
int initcall_run_list(const init_fnc_t init_sequence[]);
......@@ -7,15 +7,22 @@
#include <common.h>
#include <initcall.h>
int initcall_run_list(init_fnc_t init_sequence[])
DECLARE_GLOBAL_DATA_PTR;
int initcall_run_list(const init_fnc_t init_sequence[])
{
init_fnc_t *init_fnc_ptr;
const init_fnc_t *init_fnc_ptr;
for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
debug("initcall: %p\n", *init_fnc_ptr);
unsigned long reloc_ofs = 0;
if (gd->flags & GD_FLG_RELOC)
reloc_ofs = gd->reloc_off;
debug("initcall: %p\n", (char *)*init_fnc_ptr - reloc_ofs);
if ((*init_fnc_ptr)()) {
debug("initcall sequence %p failed at call %p\n",
init_sequence, *init_fnc_ptr);
printf("initcall sequence %p failed at call %p\n",
init_sequence,
(char *)*init_fnc_ptr - reloc_ofs);
return -1;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册