• MIPS架构的启动地址随笔


    MIPS架构的cpu在上电、重启的入口地址为0xBFC0 0000,这段空间在 kseg1 (0xA000 0000 ~ 0xBFFF FFFF) 512M Bytes。这段地址空间通过把最高三位清零的方法来映射到物理地址,映射到(0x0 ~ 0x1FFF FFFF)物理地址。

    因此MIPS cpu的启动地址在物理地址 0x1FC0 0000。

    MIPS芯片如果有内置ROM,其地址就在这个地址,然后再通过内部ROM跳转、加载后续的程序(例如bootloader或者uboot)。

    以LINUX系统为例,跑完芯片的BOOTROM后,需要跳转执行uboot。

    \buildroot\output\build\alistarter-BL7.8.0-20220506-Auto\arch\mips\cpu\u-boot.lds

    uboot的ld文件定义了uboot的入口地址:

    ENTRY(_start)

    _start函数原型在下面函数定义:

    .\buildroot\output\build\alistarter-BL7.8.0-20220506-Auto\arch\mips\cpu\start.S

    1. .globl _start
    2. .text
    3. _start:
    4. /* U-boot entry point */
    5. b reset
    6. nop

    从uboot.map中可以找到其地址:

    1. *(.text*)
    2. .text 0x0000000082af2000 0xaa0 arch/mips/cpu/start.o
    3. 0x0000000082af2000 _start

    0x82af2000这个地址位于kseg0地址段(0x8000 0000~0x9FFF FFFF)512M Bytes,这段空间的特点是将最高位清零,将其转换到低512M物理地址。这段区域是通过高速缓存来存取的,因此在高速缓存初始化之前不能使用。

    所以我们可以倒推回去,bootrom一定是:

    1.先初始化了高速缓。

    2.将flash中UBOOT的程序段加载到0x82af2000这个地址。

    以下是反推追踪:

    \buildroot\output\build\alistarter-BL7.8.0-20220506-Auto\Makefile中有如下定义

    1. ifneq ($(CONFIG_SYS_TEXT_BASE),)
    2. LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE)
    3. endif

    LDFLAGS_u-boot是链接uboot.bin时用到的变量,man ld查看-Ttext选项的意思是定义text段的起始链接地址。-T选型是指定链接脚本。

    因此uboot会被链接到CONFIG_SYS_TEXT_BASE指定的地址上。

    加载时地址就是程序放置的地址,运行地址就是程序定位的绝对地址,也即在编译连接时定位的地址。如果程序是在flash里运行,则运行地址和加载地址是相同的。如果程序是在ram里运行,但程序是存储在flash里,则运行地址指向ram,而加载地址是指向flash。

    可以这样理解:

    链接地址<==>运行地址
    存储地址<==>加载地址

    ali_3702_mips.h中有定义CONFIG_SYS_TEXT_BASE

    ./include/configs/ali_3702_mips.h:216:#define CONFIG_SYS_TEXT_BASE    0x82af2000

  • 相关阅读:
    京东联盟flutter插件使用方法
    UVA11584划分成回文串 Partitioning by Palindromes
    GraphQL vs REST:API设计的现代选择
    将自定义 GitHub 徽章添加到您的代码库
    react 高效高质量搭建后台系统 系列 —— 前端权限
    如何使用phpstudy在服务器上发布Discuz_X3.4_SC_UTF8_20220811和zzcms2023
    NSS [HXPCTF 2021]includer‘s revenge
    好用的工具
    rk3568 Android 11在系统怎样执行命令获取SN号
    解决 Android 分享到小程序 封面显示不全
  • 原文地址:https://blog.csdn.net/man9953211/article/details/127983611