您好!
我正在使用66AK2G12设计定制板、我正在使用 SDK Linux 06_01_00_08、我正在使用 k2g-EVM 板进行一些测试。 我能够通过 DFU-USB 刷写 QSPI 并正确启动 u-boot、但引导在以下时间点挂起:
U-Boot 2019.01-g171fca651-脏 污(2020年3月06日- 03:00:28 -0800) CPU:66AK2Gx-100 SR1.0 模型:德州仪器(TI) K2G 通用 EVM DRAM: 清除整个 DDR3存储器以启用 ECC 2 GiB MMC:OMAP SD/MMC:0、OMAP SD/MMC:1 从 FAT 加载环境... 卡未响应电压选择! 正在从 SPI 闪存加载环境... sf:检测到 s25fl512s_256k、页大小为256字节、擦除大小为256 KiB、总共64 mib ***警告-错误 CRC、使用默认环境 在:serial@02530c00 out:serial@02530c00 Err:serial@02530c00 net: warning:netcp@ @4000000 using MAC address from ROM eth0:netbotp to stop any key: 0 2找到 运行 spiargs 的 keystone-k2g-evm.dTB ... 从 SPI 引导... 正在运行 spiargs ... SF:检测到 s25fl512s_256k、页面大小为256字节、擦除大小为256 KiB、总共64 MIB 器件0偏移量0x1b0000、大小为0x800000 SF:8388608字节@ 0x1b0000读取:OK 器件0偏移量0x160000、大小0x40000 SF:262144字节@ 0x160000读取:OK 魔术: 0xd00dfeed 总大小: 0x73a7 (29607) off_dt_struct: 0x38 OFF_dt_string: 0x6acc off_mem_rsvmap: 0x28 版本: 17 LAST_COMP_VERSION: 16 BOOT_CPUID PHY: 0x0 size_dt_string: 0x8db size_dt_struct: 0x6a94 数字 mem_RSV: 0x0 开始启动 ##平展设备树 blob,88000000; 使用0x88000000的 FDT blob 启动 ;将设备树加载到8fff5000;结束8ff3a6…… 确定 启动内核...
u-boot 中的 printenv 显示以下结果:
=> pri addr_load_sec_bm=0x0c09c000 addr_mon=0x87000000 addr_non_sec_mon=0x0c097fc0 addr_sectiondb_key=0xc000000 addr_ubi=0x82000000 arch=arm args_all=misc setenv boots console=ttyS=d1mspr=0d1md、td1mspr=d1r、td1r-dspr=d1r;tdspr=d1r-dspr=d1r args_mmc=run finduid;setenv bootargs console=${console}${optargets}root=${uuid}rw initfstypy=${mmotfstype}args_net=setenv boots ${rootboos}rootfstpid=${rfstypes=s}/dev/nfs rfn boot=v=dr = rf=dr;target=dargs=dr =dr =dr = gr /sbin/init = dr = gr /dev/ram0 = dr = gr = dr、targs=dr = dr = dr = dr、targs=dr = dr、targs=dr = dr = dr、targs=dr = dr、targs=dr = dr、targs = dr = dr、targs = dr、targs = dr、targs = dr = dr、targs = dr、targs = dr、targs = dr、targs = dr、t bootdelay=2 bootdir=/boot bootenvfile=uEnv.txt bootfile=zImage bootm_size=0x10000000 bootpart=0:2 bootscript=echo 正在从 MMC${mmcdev}运行的引导脚本...;source ${loadaddr} burn_ubi=n 和 erase.part ubifs;n 并写入${addr_uSPI} 和 n 文件大小=0x000n;n SF write ${loadaddr}0 ${filesize} console=ttyO0、115200n8 armlycprintk cpu=armv7 dev_pmc=0 dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;mlO arg0 1;ml.raw 0x100 0x200;u-boot.900.prb 0=raw uEnv.txt 0xdfat 0=dfat 0;sprb 00xd1000 raw 0.pr-dfat 0=raw 0xdfat 0=dfat 0;msps 0x100;msps 0xdfat 0.pr-dfat 0.prb 0.prb 0.prb 0.prb 0.prb RAW 0x000B0000 0x000B0000;blob RAW 0x00160000 0x00040000;skern RAW 0x001A0000 0x00010000;内核 RAW 0x001B0000 0x0800000;文件系统 RAW 0x2700000 dfu_ram_info_echo=mLBO siz= 0x800000000 0x00B0000;u-bootb0000 0x800000000000 ;如果在0x000bram 0x80000000b 上发现0x0000X000080000000b 毫米 b0000;mmc 0x000b 0x000080000000b 毫米 b0000;0x000b 毫米 bram 0x000b 毫米 b0000 0x000b 毫米 b0000 0x000b 毫米 b0000;如果在0x000b 毫米 bdmmc 0x000b 080000000b 080000000b 毫米 b0000 0x000b 毫米 b0000 0x000b 毫米 b0000;0x000b 毫米 b0000 0x000b 毫米 b0000 0x000b 毫米 然后运行 bootscript;否则运行 loadbootenv;然后从${bootenvfile}回显已加载的 env;运行 importbootenv;如果测试-n $uenvcmd;然后回显正在运行的 uvencmd ...;运行 uvencmd;fi;fi;fi;fi; etaddr=70:ff:c:c:67:ed fdtfdDT_adtb; 如果 未定义的 keydtbt = 0xdtb、则回显式 df1;如果未定义的 dtbt = 0xdtb、则为 dtbt dfdf2、则为 g1;如果未定义的 dtb、则为 dtb、则为 dtbt = 0xdfdf2 然后、echo 2找到 keystone-k2g-evm.dTB;setenv name_FDT keystone-k2g-evm.dTB;否则、如果测试$board_name = 66AK2GIC;然后回显1找到 keystone-k2g-ice.dTB;setenv name_fig-fdtc.dTB;如果未定义、则回显1找到 keystone-k2g-ice.dtb;如果无法使用 undefi;警告;无法使用 fig;db;如果未定义、则无法使用 fig keytb;tb;tb、则无法确定: setenv fdtfile ${name_FDT} finduid=part uuid MMC ${bootpart}uuid fit_bootfile=fitImage fit_loadaddr=0x90000000 get_FDT_MMC=load MMC ${bootpart}${dtaddr}${name_fdtdtdt}/fdT}${name_fdT} fund_load/fdm}${fdtdtdm}${fdtfdtdtdm}${find_addr }${find_fdm}/fdm}${fdtfdm}/fdm}/fdm{fdm}/fdr}${find_boot_load_addr}${fdr}${fdr}${fdm{fdr}${find_boot_fdr}/fdr}/fdr}${fdr}/fdf ${bootdir}/${name_kern} get_kern_net=DHCP ${loadaddr}${loadaddr}${tftp_root}/${name_kern} get_kidr_nfs=nfs ${loadaddr}${nfs_tftaddr}/${tftname_root_dr} ${tumn}${tftnfn} ${tum_bootmn}/trn}${boot_name_name_name_root_name_dr}${nfn}${tumn}${tumn}${tfn} get_PMMC_MMC=load MMC ${bootpart}${loadaddr}${bootdir}/${name_PMMC} get_PMMC_net=DHCP ${loadaddr}${loadp_root}/${loadname_pmmc} ${loadb_boot_root_p/ }${loadbunet_boot_p/}${loadbunet_boot_p/}${loadbunet_boot_p/} 运行 set_rd_spec init_fw_rd_nfs=nfs ${rdaddr}${nfs_root}/boot/${name_fw_rd};运行 set_rsp_init_fw_rfs_rfs_rfs_setenvs_rfs_rfs_rargs_rfs_rfs_rargs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rargs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rargs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rfs_rargs ;rargs_rargs_rargs_rargs_rfs_r kernel_addr=0x82000000 loadaddr=0x82000000 loadbootenv=fatload mmc ${mmcdr}${bootenvfile} loadbootscript=load mmc ${loadaddr}bootaddr}${loadaddr}bootaddr = load ${mmc} ${bootdev_run dr}${mcaddr}$ ramdisk.gz{ mmr}${bootaddr}${bootdev_run dr}${mmr}${bootmr};bootdev_bootmr}${bootmr}${bootmr} 然后、在器件${mmcdev}上找到 echo SD/MMC;如果运行 loadimage;然后测试${boot_fit}-eq 1;然后运行 loadfit;否则运行 mmcosados;fi;fi;fi;fi; mmcdev=0 mmcoslos=run args_mmc;如果测试${boot_FdT}= yes ||测试${boot_fdt};如果测试${boot_fdT = fdt};则尝试运行${dtb};如果测试${boot_boot_dt = fdt = fdt;然后尝试运行${dtb};如果测试${boot_dt = fdr = fdT; 然后是 bootz;否则是 echo warn:无法加载 DT;fi;fi;否则是 bootz;fi; mmuotfstype=ext4 rootwait mtdparts=mtdspes=davinci_nand.0:1024k (bootloader) ro、512K (parefile) ro、-(ubifs) name_fs=arago-base-tisdk-image-k2g-evm.cpuuuuuuuuuuuuuuuuuuo name=uuuuuuuuuuuuuuuuuuuuuuv=r=r_boot_upd=g=r=r=uv=r=uv=uv_k/uuv=uv=uuuuuuv=uv=uv=uv=uv_uuuuv=uv=uv=uv=uv=uv=uv=uv=uv=uv=uv=uv=ur=r=uv=uv=uv=uv=uv=ur=uv=ur=ur=uk_k/uv_k_ /dev/ram0 skern-k2g.bin k2-fw-initrd.cpio.gz rproc 加载${dev_pmc}${loadaddr}0x${filesize};rproc start ${dev_pmc} scriptaddr=0x80000000 set_name_pmc=setenv name_pmc ti-sci-firmware-${spoc_variants}.dtsetpspidr {sps} ${pidsps}sf s}s sbsps = tsps{pedrfsps}sf s}${pedrspidr s}s s= tsps sf s sbulsf s{pedrsps}s sf s{pedrsps}s sbeds}s{pedrspids}{peds sf s}s sbsps{peds sf}s sbeds{peds}s{tsps sbeds}{peds sf s}{peds}{peds sf s sbeds}{peds sbsps{peds fdt addr ${fdtaddr};fdt 头;echo Start Boot;bootz ${loadaddr}-${fdtaddr} spbusno=4 spifdtaddr=0x160000 spifdtsize=0x40000 tftimgsize=0x800000 sproot=/dev/mtdblock5 rfindr=jffver spisdr=0x160000 spids=0x0000=0x40000_stdspdfdr @ = 0x2400_stdr@=@ 100bfdr = 100bfdr = 100bdr = 02400_fdr; fdr = 100bfdr = 100bdr = 100bdr = 100bdr = 100bdr = 100bdr 1 fdr 1 fdr 1 fdr 1 fdr 1 fdr 1 fdr 1 fdr 1 fdr 1 fdr 1 fdr 1 fdr 1 fdr 1 fdr 1 dr 1 bdr 1 bdr 2
在 keystone-k2g-evm.dts 中、我修改了 QSPI 分区以适应我的需求、并生成了相对.dtb:
&QSPI{ status ="确定"; pinctrl-names ="默认值"; pinctrl-0 =<&QSPI_PINs>; CDN、RCLK-en; flash0:m25p80@0{ compatible ="s25fl512s"、"JEDEC、SPI-NOR "; reg =<0>; SPI-TX-bus =<1宽度;rx-rx = Rx 宽度 SPI-max-frequency =<96000000>; #address-cells =<1>; #size-cells =<1>; CDN、读取延迟=<5>; CDN、tshsl-ns =<500>; cdn、tsd2d-ns =<500>; cdb、tchsh-ns =<119>; cdn、tslch-ns =<119>; 分区@0{ label ="QSPI.MLO"; reg =<0x00000000 0x000B0000>; }; 分区@ @ @1{label ="QSPI.u-boot-n";分区= 0x0000000 = 0x0000000 = 0x000b0000;分区= 0x000b0000 = 0x000b0000;分区= 0x000b0000 = 0x000b0000 = 0x000b0000;分区= 0x000b0000 = 0x000b0000 = 0x000b0000;分区= 0x000b0000 分区@4{ 标签="QSPI.kernel"; reg =<0x001B0000 0x0800000>; }; 分区@5{ 标签="QSPI.file-system"; reg =<0x009B0000 0x2700000>; }; };};
我看到这种问题可能由错误的 UART 定义(ttyOX 或 ttySX)或 DTB 不匹配造成。 如何找到 问题并继续启动?
为了启用 QSPI 引导、我修改了 k2g_evm.h、其中#define CONFIG_BOOTCOMMAND 执行"run finddt;"运行 spiargs;"运行 spiboot;";详细信息请参阅上述 u-boot printenv。 除了我的修改之外、还有其他行动要做吗?
此致
谢谢