Select Git revision
Forked from
Reform / reform-boundary-uboot
Source project has a limited visibility.
-
Tom Rini authored
Per Vikas' request, the problem this commit is supposed to be solving is something he doesn't see and further this introduces additional hardware requirements. This reverts commit 4b2fd720. Signed-off-by:
Tom Rini <trini@konsulko.com>
Tom Rini authoredPer Vikas' request, the problem this commit is supposed to be solving is something he doesn't see and further this introduces additional hardware requirements. This reverts commit 4b2fd720. Signed-off-by:
Tom Rini <trini@konsulko.com>
kallsyms.c 1.03 KiB
/*
* Helper functions for working with the builtin symbol table
*
* Copyright (c) 2008-2009 Analog Devices Inc.
* Licensed under the GPL-2 or later.
*/
#include <common.h>
/* We need the weak marking as this symbol is provided specially */
extern const char system_map[] __attribute__((weak));
/* Given an address, return a pointer to the symbol name and store
* the base address in caddr. So if the symbol map had an entry:
* 03fb9b7c_spi_cs_deactivate
* Then the following call:
* unsigned long base;
* const char *sym = symbol_lookup(0x03fb9b80, &base);
* Would end up setting the variables like so:
* base = 0x03fb9b7c;
* sym = "_spi_cs_deactivate";
*/
const char *symbol_lookup(unsigned long addr, unsigned long *caddr)
{
const char *sym, *csym;
char *esym;
unsigned long sym_addr;
sym = system_map;
csym = NULL;
*caddr = 0;
while (*sym) {
sym_addr = simple_strtoul(sym, &esym, 16);
sym = esym;
if (sym_addr > addr)
break;
*caddr = sym_addr;
csym = sym;
sym += strlen(sym) + 1;
}
return csym;
}