uboot下init_sequence_f函数之setup_reloc
2017-03-21 08:23
591 查看
setup_reloc:
static int setup_reloc(void)
{
if (gd->flags & GD_FLG_SKIP_RELOC) {
debug("Skipping relocation due to flag\n");
return 0;
}
#ifdef CONFIG_SYS_TEXT_BASE
gd->reloc_off = gd->relocaddr - CONFIG_SYS_TEXT_BASE;
#ifdef CONFIG_M68K
/*
* On all ColdFire arch cpu, monitor code starts always
* just after the default vector table location, so at 0x400
*/
gd->reloc_off = gd->relocaddr - (CONFIG_SYS_TEXT_BASE + 0x400);
#endif
#endif
memcpy(gd->new_gd, (char *)gd, sizeof(gd_t));
debug("Relocation Offset is: %08lx\n", gd->reloc_off);
debug("Relocating to %08lx, new gd at %08lx, sp at %08lx\n",
gd->relocaddr, (ulong)map_to_sysmem(gd->new_gd),
gd->start_addr_sp);
return 0;
}
相关文章推荐
- uboot下init_sequence_f函数之setup_dram_config
- uboot下init_sequence_f函数之setup_machine
- uboot下init_sequence_f函数之reloc_fdt
- uboot下init_sequence_f函数之setup_board_extra
- uboot下init_sequence_f函数之setup_dest_addr
- uboot下init_sequence_f函数之reserve_fdt
- uboot下init_sequence_f函数之reserve_global_data
- uboot下init_sequence_f函数之jump_to_copy
- uboot下init_sequence_f函数之copy_uboot_to_ram
- uboot下init_sequence_f函数之reserve_logbuffer
- uboot下init_sequence_f函数之dram_init
- uboot下init_sequence_f函数之show_dram_config
- uboot下init_sequence_f函数之INIT_FUNC_WATCHDOG_RESET
- uboot下init_sequence_f函数之init_post
- uboot下init_sequence_f函数之post_init_f
- uboot下init_sequence_f函数之init_func_i2c
- uboot下init_sequence_f函数之init_func_spi
- uboot下init_sequence_f函数之reserve_round_4k
- uboot下init_sequence_f函数之display_new_sp
- uboot下init_sequence_f函数之reserve_pram