This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM5718:Linux SDK 的 AM571x DDR 存储器映射。

Guru**** 2535750 points
Other Parts Discussed in Thread: AM5718, DRA722, AM5729

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/970609/am5718-am571x-ddr-memory-map-of-linux-sdk

器件型号:AM5718
主题中讨论的其他器件: DRA722AM5729

您好!

我对 DDR 的存储器映射有疑问。

DDR 起始地址为0x80000000、内核映像在引导过程中加载到0x82000000。

我可以将加载地址更改为任何具有 DDR 空间的地址吗?

在 AM571x Linux SDK 中、我无法获得有关引导过程的 DDR 存储器映射的信息、如下所示。

加法  

请回答。

我可以将加载地址更改为任何具有 DDR 空间的地址吗?

我在 ti_armv7_common.h 中找到以下声明  

#define CONFIG_SYS_LOAD_ADDR 0x82000000

#define DEFAULT_LINUX_BOOT_ENV \
"loadaddr=0x82000000\0"\
"kernel_addr_r=0x82000000\0"\
"fdtaddr=0x88000000\0"\
"FDT_addr_r=0x880000\0"\
"rdaddr=0x88080000\0"\
"ramdisk_addr_r=0x88080000\0"\
"脚本地址=0x80000000\0"\
"pxefile_addr_r=0x80100000\0"\
"bootm_size=0x10000000\0"\
"BOOT_FDT=Try \0"

此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请回答。

    我可以将加载地址更改为任何具有 DDR 空间的地址吗?

    我在 ti_armv7_common.h 中找到以下声明  

    #define CONFIG_SYS_LOAD_ADDR 0x82000000

    #define DEFAULT_LINUX_BOOT_ENV \
    "loadaddr=0x82000000\0"\
    "kernel_addr_r=0x82000000\0"\
    "fdtaddr=0x88000000\0"\
    "FDT_addr_r=0x880000\0"\
    "rdaddr=0x88080000\0"\
    "ramdisk_addr_r=0x88080000\0"\
    "脚本地址=0x80000000\0"\
    "pxefile_addr_r=0x80100000\0"\
    "bootm_size=0x10000000\0"\
    "BOOT_FDT=Try \0"

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    只要您确保不会与其他人过度书写任何内容、您就应该能够进行更改。

    在 u-boot 提示符下,使用 printenv 命令获取所有地址。

    此致、
    基尔西

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    以下日志是我的 printenv 日志。  

    但我找不到。 此日志显示上一个帖子中的 DEFAULT_LINUX_BOOT_ENV 地址

    我想知道信息在0x8000 0000 和0x8200 0000 (内核加载地址)之间映射

    U-Boot SPL 2019.01-g333c3e72d3 (2020年4月20日- 04:15:00 +0000)
    DRA722-GP ES2.0
    默认模式下无 pinctrl 状态
    **无法读取文件 dra7-ipu1-fw.xem4**
    固件加载失败
    尝试从 MMC1引导
    默认模式下无 pinctrl 状态
    正在从 FAT 加载环境... 好的


    U-Boot 2019.01-g333c3e72d3 (2020年4月20日- 04:15:00 +0000)

    CPU:DRA722-GP ES2.0
    型号:TI AM5718 IDK
    电路板:AM571x IDK REV 1.3B
    DRAM:1 GiB
    MMC:OMAP SD/MMC:0、OMAP SD/MMC:1.
    正在从 FAT 加载环境... 好的
    NET:eth0:以太网@48484000
    按任意键停止自动引导:2 0
    =>印刷版
    arch = ARM
    args_mmc=run finduid;setenv bootargs console=${console}${optargets}root=PARTUUID =${uuid}rw rootfstype=${mmcrootfstype}
    波特率=115200
    电路板= am57xx
    Board_name=am571x_idk
    Board_rev=1.3B
    Board_serial=48174P520056
    BOOT_FDT=尝试
    BOOT_FIT = 0
    bootargs=androidboot.serialno=${serial#} console=ttyS2,115200 androidboot.console=ttyS2和 roidboot.hardware=beagle_x15board
    bootcmd=if test ${dofastboot}-eq 1;then echo Boot fastboot requested、resetting dofastboot ...;setenv dofastboot 0;saveenv;echo Booting into fastboot ...;fastboot 1;fi;if test ${boot_fit}-eq 1;then run update_to_fit;fi;run dmmcboot_run_boot_run_mmc;env_run_run_randroboot;env_run_run_mcconsole;
    BOOTDELAY=2
    bootdir=/boot
    bootenvfile=uEnv.txt
    BootFile=zImage
    BOOTM_SIZE=0x10000000
    bootpart=0:2
    bootscript=echo 正在从 MMC${mmcdev}...;源${loadaddr}运行的 bootscript
    console=ttyS2,115200n8.
    CPU=armv7
    dfu_alt_info_emmc=rawemmc raw 0 3751936;引导部分1;rootfs 部分1 2;mlo fat 1;ml.raw 0x100 0x200;u-boot.img.raw 0x300 0x1000;u-env.raw raw 0x1300 0x200;spl-os-args.raw 0x100 0x100;u-boot.g1;fat 1;spr-fat 1;spr-g1;spr-fat 0x1500 uEnv.txt
    dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;mlo fat 0 1;ml.raw 0x100 0x200;u-boot.img.raw 0x300 0x1000;u-env.raw 0x1300 0x200;spl-os-args.raw 0x1500 0x1500;spl-os-image-raw 0x1000;sprw 0x1000 uEnv.txt;fat 0X1000;splfat 0X1000;spr-raw 0X1000;splfat 0X1000;fat 1fat 0X1700
    DFU_alt_INFO_QSPI=MLO RAW 0x0 0x040000;u-boot.img RAW 0x040000 0x0100000;u-boot-spl-OS RAW 0x140000 0x080000;u-boot-env RAW 0x1C0000 0x010000;u-boot-env.backup RAW 0x1D0000 0x010000;u-boot-env.backup RAW 0x8000000 0x0000 0x8000000 0xE0000
    dfu_alt_info_ram=内核 ram 0x80200000 0x4000000;fdt ram 0x80f80000 0x80000;ramdisk ram 0x81000000 0x4000000
    DFU_bufsiz=0x10000
    dofastboot=0
    eMMC_Android_boot=echo 尝试从 eMMC 引导 Android ...;运行 update_TO_FIT;setenv eval_boos setenv bootargs $targetboots;运行 eval_targetboots;setenv mmcdev 1;setenv machid fe6;mmc dev $mmcdev; MMC 重新扫描;器件启动 MMC ${mmcdev}boot boot_start;器件大小 MMC ${mmcdev}boot boot_size;MMC 读取${loadaddr}${boot_start}${boot_size};bootm ${loadaddr}#${fdtfile};
    eMMC_Linux_boot=echo 尝试从 eMMC 引导 Linux ...;setenv mmcdev 1;setenv bootpart 1:2;setenv mmcroot /dev/mmcblk0p2 rw;运行 mmcboot;
    envboot=MMC dev ${mmcdev};如果 MMC 重新扫描;然后回显在器件${mmcdev}上找到的 SD/MMC;如果运行 loadbootscript;然后运行 bootscript;否则运行 loadbootenv;然后从${bootenvfile}回显已加载的 env;运行 importbootenv;fi;if test -n $uuccmd;然后运行 envenvcmd;envive...
    eth2addr=70:ff:76:1c:19:65
    eth3addr=70:ff:76:1c:19:66
    eth4addr=70:ff:76:1c:19:67
    eth5addr=70:ff:76:1c:19:68
    eth6addr=70:ff:76:1c:19:69
    eth7addr=70:ff:76:1c:19:6a
    ethaddr=9c:1D:58:57:E6:08
    FASTBOOT.board_rev=1.3B
    FASTBOOT.CPU=DRA722
    fastboot.secure=GP
    FDT_addr_r=0x88000000
    fdtaddr=0x88000000
    fdtcontrolladdr=bdf23928
    findfdt=if test $board_name = omap5_uevm;then setenv fdtfile omap5-uevm.dtb;fi;if test $board_name = dra7xx;then setenv fdtfile dra7-evm.dtb;fi;if test $board_name = 72x-revc;then dtv 72-veVM;if test=$dtv72-v_env_board.tb;then dtb =$dtbt 和 setdtv7bt dtb; 然后 setenv fdtagle 文件 dra71-EVM-nand.dtb;fi;如果 test $board_name = dra71x && test $boot_nand = 0;然后 setenv fdtagle 文件 dra71-evm.dtb;fi;if test $board_name = dra76x_ACD;then setenv fdtv 文件 ra76-evm.dtb;如果 test=$x15_bedtb;则为$bext 文件 rev15_bext;如果 test_bedtb; 然后 setenv fdtfile am57xx-beagle-x15-revc.dtb;fi;if test $board_name = am5729_beagleboneai;then setenv fdtfile am5729-beagleboneai.dtb;fi;if test $board_name = am572x_idk &&&&$57tdtv_dtidk_dtb;tidtwx=$57tidtidtx_dtidk_dtidk_dtb;tidtidtidk_dtidtidk_dtwm;tidtidtidtwm Fi;if test $board_name = am572x_idk && test $idk_LCD = osd101t2587;然后 setenv fdtfile am572x-idk-lcd101t2587.dtb;fi;if test $board_name = am574x_idk & test $574x_lcd =$57tidtwx_dtb;然后设置为$574x_ramtidtidtidtb;tidtidtwx_ramtx-tx_ramtb =$574x_dtidtidtb;tidtidtidtidtx_ramtb;tidtidtidt-twx-t-tb =$57twx-tx_tb;tidtx-tidtwx-tx_ramtx-tx_ramtb =$574x-t 然后 setenv fdtfile am57xx-evm.dtb;fi;if test $board_name = am57xx_evm_reva3;then setenv fdtfile am57xx-evm-reva3.dtb;fi;if test $board_name = am571x_idk & test $idk_lcd = no;then 57x_ramtx_ramt1bt;then $57x_dtidtx_dtidtx =$57x_ramtidk&tidtidtidtidtx;then tidtidtidtidtidtx-dwm f;if test $board_name = am571x_idk && test $idk_LCD = osd101t2587;然后 setenv fdtfile am571x-idk-lcd101t2587.dtb;fi;if test $fdtfile = undefined;然后回显警告:无法确定要使用的设备树;fi;
    finduuid=part uuid MMC ${bootpart}uuid
    fit_bootfile=fitImage
    fit_loadaddr=0x90000000
    gatewayip=10.113.76.1
    get_overlaystring=用于$overlay_files 中的覆盖;do;setenv overlaystring ${overlaystring}'#'${overlay};done;
    idk_lcd=osd101t2587
    importbootenv=echo 从 MMC${mmcdev}导入环境...;env 导入-t ${loadaddr}${filesize}
    ipaddr=10.113.78.100
    kernel_addr_r=0x82000000
    loadaddr=0x82000000
    loadbootenv=fatload MMC ${mmcdev}${loadaddr}${bootenvfile}
    loadbootscript=load MMC ${mmcdev}${loadaddr}boot.scr
    loadfdt=load ${devtype}${bootpart}${fdtaddr}${bootdir}/${fdtfile}
    loadfit=run args_mmc;运行 run_fit;
    loadimage=load ${devtype}${bootpart}${loadaddr}${bootdir}/${bootfile}
    mmcboot=MMC dev ${mmcdev};setenv devnum ${mmcdev};setenv devtype MMC;如果 MMC 重新扫描;然后回显在器件${mmcdev}上找到的 SD/MMC;如果运行 loadimage;然后测试${boot_fit}-eq 1;然后运行 loadfit;否则运行 mmcovados;fi;fi;
    mmcdev=0
    mmclosados=run args_mmc;如果测试${boot_FDT}= yes ||测试${boot_FDT}=试用;如果运行 loadfdt;则 bootz ${loadaddr}-${fdtaddr};否则测试${boot_FDT}=试用;然后 bootz;否则、回显警告:无法加载 bootz;否则;fi;
    mmcrootfstype=ext4 rootwait
    netargs=setenv bootargs console=${console}${optargets}root=/dev/nfs nfsroot=${serverip}:${rootpath}、${nfsopts}RW IP=DHCP
    netboot=echo Booting from network...;setenv autoload no;dhcp;run netloadimage;run netloadfdt; 运行 netargs;bootz ${loadaddr}-${fdtaddr}
    netloadfdt=tftp ${fdtaddr}${fdtfile}
    netloadimage=tftp ${loadaddr}${bootfile}
    网络掩码=255.255.252.0
    nfsopts=nolock
    partitions=uuid_disk=${uid_gppt_disk};name=bootloader、start=384K、size=1792K、uid=${uid_gppt_bootloader};name=rootfs、start=2688K、size=-、uid=${uid_gppt_rootfs}
    partitions_android_disk=${uuuid_gp_t_disk};name=xloader、start=128K、size=256K、uuid=${uid_gppt_xloader};name=bootloader、size=2048K、uuid=${uuuuid_boot_m$};name=uuuuuuuuuuuuuuuuid=uuuuuuuuuuuuuuuuuuid_system_size={uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuid=uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuid=uuuuuuuuuuuuuuuuuuuuuuid=uuuuuuuuuuuuuuid=uuuuuuuuuuuuuuuuuuuid=uuuuid
    pxefile_addr_r=0x80100000
    ramdisk_addr_r=0x88080000
    读数地址= 0x88080000
    rootpath=/export/rootfs
    run_fit=bootm ${fit_loadaddr}#${fdtfile}${overlaystring}
    脚本地址=0x80000000
    序列号=0101100a60e80121
    serverip=10.113.78.90
    setconsole=if $board_name=am5729_beaglebonai;然后 setenv 控制台 ttyS0、115200;fi;fdtfile=undefined
    SoC=omap5
    static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
    stderr=串行@48020000
    stdin =串行@48020000
    stdout=串行@48020000
    update_TO_fit=setenv loadaddr ${fit_loadaddr};setenv 引导文件${fit_bootfile}
    usbtty=CDC_ACM
    供应商= TI
    ver=U-Boot 2019.01-g333c3e72d3 (2020年4月20日- 04:15:00 +0000)
    VRAM=16M

    环境大小:7898/131067字节

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Yoon、

    在0x40300000处加载 SPL/MLO (内部存储器)
    U-boot.img at 0x80800000 (DDR)
    Linux DT 在 fdtaddr=0x88000000时加载
    Linux 内核映像在 loadaddr=0x82000000处加载

    任何地方都没有提供地图的预先存在的文档。

    希望这将为您提供引导流程中关键二进制文件的所有必要地址。


    此致、
    基尔西