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.
大家好、
我使用 以下命令创建了 Tiny Arago-Tina-image-J7-EVM:
toolchain_base=/usr/local/arm/toolchain external_toolchain=Aarch64-linux-gnu-gcc machine=j7-evm bitbake Arago-Tina-image
使用此 页 和此 页 ,我创建了 ubifs rootfs 映像。
我将使用 UART (Uni-Flash)通过 此处提到的以下命令将映像刷写到 OSPI 上的0x800000地址。
sudo /opt/ti/uniflash_6.0.0/dslite.sh --mode processors -c /dev/ttyUSB1 -f rootfs/ubi.img -d 3 -o 0x800000
但我遇到存储器访问错误:
/opt/ti/uniflash_6.0.0/dslite.sh:Zeile 75: 6186 Speicherzugriffsfehler (Speicherabzug geschrieben)./ProcessorSDKSerialFlash -c /dev/ttyUSB1 -f rootfs/ubi.img -d 3 -o 0x800000
ubi.img 的大小为37M。
我的问题是:
我的 UBIFS 是否创建正确?
如何使用 OSPI 上的 UART (UNIFLASH)刷写 ubifs 映像?
EVM 上的 NORFlash 有多大?
谢谢、
Pouyan
Pouyan、您好!
在运行用于刷写 OSPI 的命令之前、您是否运行了 Flasher 命令?
您需要运行与以下命令类似的命令" dslite.bat --mode processors -c COM7 -f C:\ti\uniflash_5.3.1\processors\FlashWriter\j721e_evm\uart_j721e_evm_flash_programmer_release.tiimage -i 0"、然后尝试刷写 ubi.img 作为下一步。
EVM 上的 NOR 闪存为64MB。
=> SF 探测器 SF:检测到的 mt35xu512aba、页大小为256字节、擦除大小为128 KiB、总共64 MiB
此致
Karthik
您好、 Karthik、
感谢您的回复、
是的、我闪存了闪存器。 然后尝试刷写我的映像。 因此、当我在0x80000 (8MiB)之后进行复制时、我应该有足够的空间(638-8=56)。 但由于存储器访问问题、我无法闪存、那么我如何解决这个问题呢?
谢谢、
Pouyan
Pouyan、您好!
我需要您的帮助才能在我的最后重现此内容、以便进一步调试。 将与您脱机联系。
此致
Karthik
Pouyan、您好!
抱歉、这超出了我的优先级。 我现在开始对此进行研究。 将很快更新。
此致
Karthik
Pouyan、您好!
您可以使用 SD 卡等任何其他介质刷写 UBIFS 吗? 我尝试用一个微型文件系统(内核和 DTB 通过 tftp 提供)刷写 UBIFS、并且能够引导。
如果您使用的是 EVM 或自定义硬件、但具有 SD 卡接口、请告诉我、我可以帮助您完成这些步骤。
此致、
Karan
Pouyan、您好!
假设您有可用的 SD 卡接口。
或者、也可以使用以下指令生成相同的:
git clone git://arago-project.org/git/projects/oe-layersetup.git tisdk cd tisdk/# 从7.00安装程序复制配置文件 Yocto-build/configs/psdkla/psdkla-07_00_00.txt ./oe-layertool-setup.sh -f psdkla-07_00_00.txt #导出代理 导出ftp_proxy=http://webproxy.ext.ti.com:80 导出http_proxy=http://webproxy.ext.ti.com:80 导出https_proxy=http://webproxy.ext.ti.com:80 cd Build #如果要重用下载文件夹 vi conf/local.conf ,编辑配置文件。 CONF/setenv #这是到 ARMv7和 ARMv8 工具链_base=/sdk/tools machine=j7-evm bittmp -k tisdk-Tiny-image # build image 可在此处找到 la -la tisdk/build/arago-bake-external_arm-glibc/deploy/images/j7-evms/tisdm/j7-evm/tisx7-tis-image.z-jtisdk-z-ime.z-imine.z-imine.z-jtisdk.z-im
我们将使用此映像刷写到 OSPI 的 UBI 分区。 在 https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/07_00_01_01/exports/docs/linux/Foundational_Components/Kernel/Kernel_Drivers/QSPI.html 闪存上使用 UBIFS 的部分中的说明
获得 tisdk-Tina-image-j7-evm.tar.xz 后、请执行以下步骤:
#使用 SD 卡引导至文件系统 cat /proc/mtd ubiformat /dev/mtd6 ubiattach -p /dev/mtd6 ubimkvol /dev/ubi0 -N flash_fs -s 55Mibmkdir /mnt/flash mount -t ubifs ubi0:flash_fs /mnt/flash cd//mnt/flash tar xvf /home/root/tisdk-tiny-image-j7-evm.tar.xz sync cd /home/root umount /mnt/flash #在此处完成刷写
请注意、我们尚未将内核映像和 DTB 闪存到微型映像、我们需要在从 OSPI UBIFS 引导时从 TFTP 或 SD 卡中选择此映像。
注意:我们不会将内核映像和 DTB 闪存为此映像、因为 u-boot 需要从 UBIFS 读取映像和 DTB、并且当前在 u-boot 尝试打开和读取 UNIFS 时会出现问题。 为了解决这一问题、我们为 u-boot 提供内核映像和 DTB。
此外、需要根据以下内容修改 u-boot 环境以启用 UBI FS (这不是 SDK 的一部分、因此需要执行其他步骤)
diff --git a/include/configs/j721e_evm.h b/include/configs/j721e_evm.h index edf747b8d3..9d5b7452ca 100644 -- a/include/configs/j721e_evm.h ++ b/include/configs/j721e_evm.h @@-82、6 +82、14 @@ "${mtdparts}\0" \ "run_kern=booti ${loadaddr}${rd_spec}${fdtaddr}\0" +#define Extra ENV_J721E_Board_settings_UBI \ + "init_ubi=run args_all args_ubi;SF 探测器;" \ + "ubi 零件 ospi.rootfs;ubifsmount ubi:flash_fs;\0" \ + "get_kern_ubi=ubifsload ${loadaddr}${bootdir}/${name_kern}\0"\ + "get_FDT_ubi=ubifsload ${fdtaddr}${bootdir}/${name_FDT}\0" \ + "args_ubi=setenv bootargs console=${console}${optargets}" \ + rootfstype=ubifs root=ubi0:flash_fs rw ubi.mtd=ospi.rootfs\0" + // U-Boot MMC 特定配置*/ #define Extra ENV_J721E_Board_settings_MMC \ "引导=MMC\0" \ @@-142、6 + 150、7 @@ DEFAULT_FIT TI_args \ Extra ENV_J721E_Board_settings \ Extra ENV_J721E_Board_settings_MMC \ + Extra _ENV_J721E_Board_settings_UBI \ Extra _ENV_RPROC_SETTINGS \ Extra ENV_DFUARGS \ DEFAULT_UFS_TI_args \
应用此选项后、请重建 u-boot 并将其替换到 OSPI 闪存中。 您还可以在 u-boot 提示符下添加这些环境变量。
现在、您已经在 OSPI UBI 中刷写了微型文件系统、并且修改了 u-boot 并使用环境来支持它。 现在将引导模式更改为 OPSI 并运行以下代码:
=>运行 args_all =>运行 args_ubi => =>=> setenv boot ubi => => =>=>#在这里可以从 TFTP 等加载, 您只需要 RAM 中的 DTB 和内核映像 #这是因为我们在 UBIFS 的微型文件系统中没有内核映像和 DTB => ext4load MMC 1:2 0x82000000 /boot/Image 16654344字节在337ms 内读取(47.1 MIB/s) => =>=> ext4load MMC 1:2 0x81200000 /boot/k3-j721e-common-proc-board.dtb 92333字节在5ms (17.6 MIB/s)内读取 => => booti 0x82000000 - 0x81200000
注意:我已经看到、如果您在安装 UBIFS 后执行硬回波(关闭电源->打开)、那么下次它会损坏文件系统。 请改用软卷筒(在内核命令下运行 reboot)。
我可以理解、上述指令最初看起来有点不知所措。 原因是开箱即用不受支持/测试频繁。 我可以帮助您解决有关上述流程的更多问题、或在遇到上述问题时遇到困难。
此外、请告诉我 UBIFS 文件系统将在整个用例中增加价值、然后我可以回圈给团队、看看是否可能将其作为 SDK 的一部分。
此致、
Karan