Firefly开源社区
标题: RK3588Q从外挂的SSD引导系统 [打印本页]
作者: tfirst 时间: 2023-5-18 17:18
标题: RK3588Q从外挂的SSD引导系统
本帖最后由 tfirst 于 2023-5-18 17:32 编辑
RK3588Q从外挂的SSD引导系统
硬件:AIO-3588Q+Samsung SSD(nvme,1TB)
软件:buildroot (sdk 版本:v1.0.6f.)
按照文档《Rockchip Developer Guide Dual StorageCN》(Rockchip_Developer_Guide_Dual_Storage_CN.pdf)中的步骤,在uboot及kernel中进行dts设置如下:
1、 在内核中修改rk3588-firefly-aio-3588q.dtsi文件中的宏M2_SATA_OR_PCIE为0。
2、 在uboot中:
rk3588-u-boot.dtsi文件,
chosen{
stdout-path= &uart2;
//u-boot,spl-boot-order = &sdmmc, &sdhci, &spi_nand, &spi_nor;
u-boot,spl-boot-order= &sdhci, &spi_nand, &spi_nor;
};
在根节点上添加如下:
vcc12v_dcin:vcc12v_dcin {
u-boot,dm-pre-reloc;
compatible= "regulator-fixed";
regulator-name= "vcc12v_dcin";
regulator-always-on;
regulator-boot-on;
//status= "okay";
regulator-min-microvolt= <12000000>;
regulator-max-microvolt= <12000000>;
};
vcc_sata_pwr_en:vcc-sata-pwr-en-regulator {
u-boot,dm-pre-reloc;
compatible= "regulator-fixed";
regulator-name= "vcc_sata_pwr_en";
regulator-min-microvolt= <3300000>;
regulator-max-microvolt= <3300000>;
regulator-boot-on;
regulator-always-on;
enable-active-high;
status= "okay";
gpio= <&pca9555 PCA_IO1_2 GPIO_ACTIVE_HIGH>;
startup-delay-us= <5000>;
vin-supply= <&vcc12v_dcin>;
};
并使能相应模块
&combphy0_ps {
u-boot,dm-pre-reloc;
status= "okay";
};
/* pca9555 */
/*
&pca9555{
u-boot,dm-pre-reloc;
status= "okay";
};
*/
&pcie2x1l2 {
u-boot,dm-pre-reloc;
reset-gpios= <&pca9555 PCA_IO1_6GPIO_ACTIVE_HIGH>;
vpcie3v3-supply= <&vcc_sata_pwr_en>;
status= "okay";
};
&i2c6 {
u-boot,dm-pre-reloc;
clock-frequency= <400000>;
status= "okay";
pinctrl-names= "default";
pinctrl-0= <&i2c6m0_xfer>;
pca9555_1:gpio@20 {
u-boot,dm-pre-reloc;
compatible = "nxp,pca9555";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
gpio-group-num = <300>;
status = "okay";
};
pca9555:gpio@21 {
u-boot,dm-pre-reloc;
compatible= "nxp,pca9555";
reg= <0x21>;
gpio-controller;
#gpio-cells= <2>;
gpio-group-num= <200>;
status= "okay";
};
};
&pcfg_pull_none_smt {
u-boot,dm-spl;
bias-disable;
input-schmitt-enable;
};
在pinctrl节点中,添加:
i2c6{
u-boot,dm-spl;
i2c6m0_xfer:i2c6m0-xfer {
u-boot,dm-spl;
rockchip,pins=
/*i2c6_scl_m0 */
<0RK_PD0 9 &pcfg_pull_none_smt>,
/*i2c6_sda_m0 */
<0RK_PC7 9 &pcfg_pull_none_smt>;
};
};
修改firefly-linux.config文件:
CONFIG_OF_U_BOOT_REMOVE_PROPS="clock-namesinterrupt-parent assigned-clocks assigned-clock-ratesassigned-clock-parents"
并添加如下内容:
CONFIG_CMD_I2C=y
CONFIG_CMD_PCI=y
CONFIG_NVME=y
CONFIG_PCI=y
CONFIG_DM_PCI=y
CONFIG_DM_PCI_COMPAT=y
CONFIG_PCIE_DW_ROCKCHIP=y
CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_ROCKCHIP_BOOTDEV="nvme 0"
CONFIG_EMBED_KERNEL_DTB_ALWAYS=y
#CONFIG_EMBED_KERNEL_DTB_PATH="dts/kern.dtb"
CONFIG_SPL_FIT_IMAGE_KB=2560
将编译内核时编译出来的dtb拷贝到u-boot/dts/kern.dtb中。
修改完成后,重新编译,可以在uboot中识别出ssd。信息如下:
=> pci scan
Scanning PCI devices on bus 0
BusDevFun VendorId DeviceId Device Class Sub-Class
_____________________________________________________________
00.00.00 0x1d87 0x3588 Bridge device 0x04
=>
Scanning PCI devices on bus 0
BusDevFun VendorId DeviceId Device Class Sub-Class
_____________________________________________________________
00.00.00 0x1d87 0x3588 Bridge device 0x04
=> pci 1
Scanning PCI devices on bus 1
BusDevFun VendorId DeviceId Device Class Sub-Class
_____________________________________________________________
01.00.00 0x144d 0xa809 Mass storage controller 0x08
=>
Scanning PCI devices on bus 1
BusDevFun VendorId DeviceId Device Class Sub-Class
_____________________________________________________________
01.00.00 0x144d 0xa809 Mass storage controller 0x08
=> nvme scan
=> nvme details
Blk device 0: Optional Admin CommandSupport:
Namespace Management/Attachment: no
Firmware Commit/Image download: yes
Format NVM: yes
Security Send/Receive: yes
Blk device 0: Optional NVM Command Support:
Reservation: yes
Save/Select field in the Set/Get features: no
Write Zeroes: yes
Dataset Management: no
Write Uncorrectable: yes
Blk device 0: Format NVM Attributes:
Support Cryptographic Erase: yes
Support erase a particular namespace: Yes
Support format a particular namespace: No
Blk device 0: LBA Format Support:
Blk device 0: End-to-End DataProtectCapabilities:
As last eight bytes: No
As first eight bytes: No
Support Type3: No
Support Type2: No
Support Type1: No
Blk device 0: Metadata capabilities:
As part of a separate buffer: No
As part of an extended data LBA: No
=>
Blk device 0: Optional Admin CommandSupport:
Namespace Management/Attachment: no
Firmware Commit/Image download: yes
Format NVM: yes
Security Send/Receive: yes
Blk device 0: Optional NVM Command Support:
Reservation: yes
Save/Select field in the Set/Get features: no
Write Zeroes: yes
Dataset Management: no
Write Uncorrectable: yes
Blk device 0: Format NVM Attributes:
Support Cryptographic Erase: yes
Support erase a particular namespace: Yes
Support format a particular namespace: No
Blk device 0: LBA Format Support:
Blk device 0: End-to-End DataProtectCapabilities:
As last eight bytes: No
As first eight bytes: No
Support Type3: No
Support Type2: No
Support Type1: No
Blk device 0: Metadata capabilities:
As part of a separate buffer: No
As part of an extended data LBA: No
=> nvme info
Device 0: Vendor: 0x144d Rev: 3B4QFXO7Prod: S649NL0W205605E
Type: Hard Disk
Capacity: 953869.7 MB = 931.5 GB (1953525168 x 512)
=>
使用RKDevTool.exe(v2.96)烧录各个固件:
其中: parameter_emmc.txt文件的内容如下:
FIRMWARE_VER: 1.0
MACHINE_MODEL: RK3588
MACHINE_ID: 007
MANUFACTURER: RK3588
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 0xffffffff
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE: mtdparts=rk29xxnand:0x00004000@0x00004000(uboot)
parameter_nvme.txt文件的内容如下:
FIRMWARE_VER: 1.0
MACHINE_MODEL: RK3588
MACHINE_ID: 007
MANUFACTURER: RK3588
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 0xffffffff
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00008000(misc),0x00080000@0x0000a000(boot:bootable),0x00040000@0x0008a000(recovery),0x00010000@0x000ca000(backup),0x00c00000@0x000da000(rootfs),-@0x0cda000(userdata:grow)
uuid:rootfs=614e0000-0000-4b53-8000-1d28000054a9
在进行分区配置时,会如下错误。
点击“执行”按钮后,软件会报错:”xxx” did not find matchpartition(xxx分别为:misc、boot、recovery、backup、rootfs、userdata)
不理会错误,重新进入maskrom模式后,选择“强制按地址写”,从软件的日志上看,似乎可以正确烧录。
烧录完成后,自动重启,串口打印如下信息:
done
Saving random seed: OK
realpath: /dev/block/by-name: No such fileor directory
Will now mount all partitions in /etc/fstab
strings: : No such file or directory
Note: Will skip fsck, remove /.skip_fsck toenable
Log saved to /tmp/mountall.log
Starting network: cmdline=storagemedia=nvmeandroidboot.storagemedia=nvme androidboot.mode=normal storagenode=/pcie@fe190000androidboot.verifiedbootstate=orange ro rootwaitearlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1
read console from cmdline is /dev/ttyFIQ0
Starting recovery on Thu May 18 09:00:192023
Recovery System have UI defined.
failed to read font: res=-1, fall back tothe compiled-in font
OK
Debug: configfs_init
rotate degree: 0 - none, 1 - right, 2 -down, 3 - left.
current rotate degree is : 0
mkdir: can't create directory'/sys/kernel/config/usb_gadget/rockchip/functions/uac1.gs0': No such file ordirectory
mkdir: can't create directory'/sys/kernel/config/usb_gadget/rockchip/functions/uac2.gs0': No such file ordirectory
[ 7.857208] file system registered
mkdir: can't create directory'/sys/kernel/config/usb_gadget/rockchip/functions/mtp.gs0': No such file ordirectory
[ 7.864041] using random self ethernet address
[ 7.864085] using random host ethernet address
[ 7.868268] Mass Storage Function, version: 2009/09/11
[ 7.868334] LUN: removable file: (no medium)
mkdir: can't create directory'/sys/kernel/config/usb_gadget/rockchip/functions/hid.usb0': No such file ordirectory
[ 7.898766] read descriptors
[ 7.898825] read strings
[ 8.158843] rk_hdmirx fdee0000.hdmirx-controller:hdmirx_cancel_cpu_limit_freq freq qos nod add
[ 8.171203] rk-pcie fe150000.pcie: PCIe Link Fail
[ 8.171217] rk-pcie fe150000.pcie: failed to initialize host
Starting input-event-daemon:input-event-daemon: Start parsing /etc/input-event-daemon.conf...
input-event-daemon: Adding device:/dev/input/event0...
input-event-daemon: Adding device:/dev/input/event1...
input-event-daemon: Adding device:/dev/input/event2...
input-event-daemon: Adding device:/dev/input/event3...
input-event-daemon: Adding device:/dev/input/event4...
input-event-daemon: Start listening on 5devices...
done
[root@RK3588:/]# [ 9.106625] dwc3 fc000000.usb: device reset
[ 9.231491] android_work: sent uevent USB_STATE=CONNECTED
[ 9.410018] dwc3 fc000000.usb: device reset
recovery filesystem table
=========================
0(null) /tmp ramdisk (null) (null) (null)
1/dev/root / ext4 rw,noauto 0 1
2proc /proc proc defaults 0 0
3devpts /dev/pts devpts defaults,gid=5,mode=620 0 0
4tmpfs /dev/shm tmpfs mode=0777 0 0
5tmpfs /tmp tmpfs mode=1777 0 0
6tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0
7sysfs /sys sysfs defaults 0 0
8/dev/block/by-name/misc /misc emmc defaults 0 0
9/dev/block/by-name/userdata /userdata ext4 defaults 0 0
10/dev/block/by-name/oem /oem ext2 defaults 0 0
11/dev/sda1 /mnt/usb_storage vfat defaults 0 0
12/dev/mmcblk1p1 /mnt/external_sd vfat defaults 0 0
13/dev/block/by-name/oem /oem ext2 defaults 0 2
14/dev/block/by-name/userdata /userdata ext4 defaults 0 2
executing '/usr/bin/relink-block.sh'
executed '/usr/bin/relink-block.sh' done
executed '/usr/bin/relink-block.sh' return0
stat /dev/block/by-name/misc try 1: No suchfile or directory
[ 9.494680] usb 4-1: new SuperSpeed Gen 1 USB device number 2 usingxhci-hcd
[ 9.519634] usb 4-1: New USB device found, idVendor=05e3, idProduct=0620,bcdDevice=93.91
[ 9.519701] usb 4-1: New USB device strings: Mfr=1, Product=2,SerialNumber=0
[ 9.519716] usb 4-1: Product: USB3.2 Hub
[ 9.519729] usb 4-1: Manufacturer: GenesysLogic
[ 9.548335] hub 4-1:1.0: USB hub found
[ 9.548757] hub 4-1:1.0: 4 ports detected
[ 9.574729] android_work: sent uevent USB_STATE=CONFIGURED
[ 9.638183] usb 3-1: new high-speed USB device number 2 using xhci-hcd
[ 9.781305] usb 3-1: New USB device found, idVendor=05e3, idProduct=0610,bcdDevice=93.91
[ 9.781352] usb 3-1: New USB device strings: Mfr=1, Product=2,SerialNumber=0
[ 9.781365] usb 3-1: Product: USB2.1 Hub
[ 9.781376] usb 3-1: Manufacturer: GenesysLogic
[ 9.836774] hub 3-1:1.0: USB hub found
[ 9.837194] hub 3-1:1.0: 4 ports detected
stat /dev/block/by-name/misc try 2: No suchfile or directory
stat /dev/block/by-name/misc try 3: No suchfile or directory
stat /dev/block/by-name/misc try 4: No suchfile or directory
stat /dev/block/by-name/misc try 5: No suchfile or directory
stat /dev/block/by-name/misc try 6: No suchfile or directory
stat /dev/block/by-name/misc try 7: No suchfile or directory
stat /dev/block/by-name/misc try 8: No suchfile or directory
stat /dev/block/by-name/misc try 9: No suchfile or directory
stat /dev/block/by-name/misc try 10: Nosuch file or directory
failed to stat /dev/block/by-name/misc
emmc_point is /dev/mmcblk0
sd_point is (null)
sd_point_2 is (null)
Recovery start....................
read cmdline
>>> Boot from non-SDcard
executing '/usr/bin/relink-block.sh'
executed '/usr/bin/relink-block.sh' done
executed '/usr/bin/relink-block.sh' return0
[I/]RECOVERY devices is not MTD.
stat /dev/block/by-name/misc try 1: No suchfile or directory
stat /dev/block/by-name/misc try 2: No suchfile or directory
stat /dev/block/by-name/misc try 3: No suchfile or directory
stat /dev/block/by-name/misc try 4: No suchfile or directory
stat /dev/block/by-name/misc try 5: No suchfile or directory
stat /dev/block/by-name/misc try 6: No suchfile or directory
stat /dev/block/by-name/misc try 7: No suchfile or directory
stat /dev/block/by-name/misc try 8: No suchfile or directory
stat /dev/block/by-name/misc try 9: No suchfile or directory
stat /dev/block/by-name/misc try 10: Nosuch file or directory
failed to stat /dev/block/by-name/misc
[E/]RECOVERY Can't open/dev/block/by-name/misc
(No such file or directory)
executing '/usr/bin/relink-block.sh'
executed '/usr/bin/relink-block.sh' done
executed '/usr/bin/relink-block.sh' return0
[E/]RECOVERY failed to mount /userdata (Nosuch file or directory)
[E/]RECOVERY Can't mount/userdata/recovery/command
executing '/usr/bin/relink-block.sh'
executed '/usr/bin/relink-block.sh' done
executed '/usr/bin/relink-block.sh' return0
[I/]RECOVERY devices is not MTD.
Command: "/usr/bin/recovery"
finish_recovery Enter.....
executing '/usr/bin/relink-block.sh'
executed '/usr/bin/relink-block.sh' done
executed '/usr/bin/relink-block.sh' return0
[E/]RECOVERY failed to mount /userdata (Nosuch file or directory)
[E/]RECOVERY Can't mount/userdata/recovery/log
[E/]RECOVERY Can't open/userdata/recovery/log
executing '/usr/bin/relink-block.sh'
executed '/usr/bin/relink-block.sh' done
executed '/usr/bin/relink-block.sh' return0
[E/]RECOVERY failed to mount /userdata (Nosuch file or directory)
[E/]RECOVERY Can't mount/userdata/recovery/last_log
[E/]RECOVERY Can't open/userdata/recovery/last_log
executing '/usr/bin/relink-block.sh'
executed '/usr/bin/relink-block.sh' done
executed '/usr/bin/relink-block.sh' return0
[I/]RECOVERY devices is not MTD.
executing '/usr/bin/relink-block.sh'
executed '/usr/bin/relink-block.sh' done
executed '/usr/bin/relink-block.sh' return0
[E/]RECOVERY failed to mount /userdata (Nosuch file or directory)
[W/]RECOVERY Can't unlink/userdata/recovery/command
发现没有进入weston桌面,也没有发现其他分区:
[root@RK3588:/]#
[root@RK3588:/]# ls /dev/block/
179:0 179:64 253:0 7:0 7:2 7:4 7:6 by-name
179:32 1:0 259:0 7:1 7:3 7:5 7:7
[root@RK3588:/]# ls /dev/block/by-name/
misc
[root@RK3588:/]# ls /dev/nvme0
nvme0 nvme0n1
[root@RK3588:/]# ls /dev/nvme*
/dev/nvme0 /dev/nvme0n1
[root@RK3588:/]#
除了uboot.img外,其他同样的镜像文件,烧录到emmc上,使用emmc启动引导,可以正常进入weston桌面。
不知道是什么原因。开机启动日志见附件
tchip_askquestions
-
-
session.log
91.2 KB, 下载次数: 0, 下载积分: 灯泡 -1 , 经验 -1
作者: loading 时间: 2023-5-19 17:41
如果不强制按地址写呢? (没有的就不烧录,把前面勾选去掉)
作者: tfirst 时间: 2023-5-19 22:25
本帖最后由 tfirst 于 2023-5-22 09:15 编辑
“把前面勾选去掉”———把哪些去掉?每个分区都要。
如果不强制按地址写,有时会报错,会报说“超过flash大小的错误”,但是每个分区的大小实际都大于每一个镜像文件的大小的。偶尔又不会报这个错误,不知道为啥?但是在没报错的情况下烧录完成后,自动重启进入recovery模式,此时可以看到nvme0被分成了好几个分区,并进行格式化,recovery完成后自动重启,kernel就再也无法引导了,直接进入uboo命令行模式,此时用part list nvme 0去查看分区情况,返回错误,没有分区信息,用part list emmc 0去查看emmc的分区,可以看到如第一个parameter.txt文件所示的分区,但是如果在烧录完成后,人为介入,使进入uboot命令行模式去查看nvme的分区信息,此时是可以看到如第二个parameter.txt所示的那些分区,所以怀疑是recovery模式破坏了分区信息,但是将wipeoff 的misc镜像换成blank的镜像烧录进去后,启动就只能进入uboot命令行模式,而不能正常引导kernel。
对这个recovery不熟悉,不知道该是哪里破坏了分区信息,能否指导一下?(我也尝试更换recovery程序去调试,结果即使没有做任何改动,仅仅是将rk3588*.cpio.gz解压,然后再压缩,去替换制作recovery.img文件所需要的那个rk3588*.cpio.gz文件,制作出来的recovery.img文件烧录进入后,就只能进入uboot命令行模式,而不能正常引导kernel,不知道制作这个cpio文件该用什么命令?)
另外,关于不强制按地址写,有时会报比flash大的错误问题,不知道是不是跟emmc刷过misc、kernel、recovery等分区的原因?目前还没有找到规律。
补充:通过《瑞芯微开发工具》V2.96的高级功能,去擦除emmc,再烧录,会报如下图所示的错误,无法烧录。
作者: loading 时间: 2023-5-22 09:44
我目前也在尝试spinor+sata 方式,也是进入recovery 模式,进不到系统
作者: tfirst 时间: 2023-5-22 10:33
我的是buildroot,不是android系统。
你的分区文件是不是跟我的那两个pameter类似:写进emmc的分区只有uboot分区,写进nvme的分区是除了uboot之外的分区?
你的不强制写,能烧录进行吗?之前怀疑是emmc烧录过全部分区,所以导致不强制写pcie,就写不进去,但是经过验证,我擦除了emmc后,再烧录,就是会报错。偶尔能烧录,都不知道怎么才能烧录进去,现在如果不强制写的话,一直都烧录不进去。
作者: loading 时间: 2023-5-22 12:48
我的也是Linux,buildroot、Debian 都有,我没有emmc(spinor,你可以理解为你的emmc),我不强制是可以烧录的(你也可以看下那文档里面也没有强制)。
parameter 我参考了文档的:
我是怀疑跟这个有关:
[I/]RECOVERY devices is not MTD.
stat /dev/block/by-name/misc try 1: No suchfile or directory
作者: loading 时间: 2023-5-22 12:49
parameter 我参考了文档的:
mtdparts=sfc_nor:0x00040000@0x00180000(vnvm),0x00600000@0x00200000(uboot)
作者: tfirst 时间: 2023-5-22 13:48
用了这个参数,会有弹框(”xxx” did not find matchpartition)提示吗?
作者: loading 时间: 2023-5-22 15:45
不会,都正常,烧录工具也要添加vnvm
作者: tfirst 时间: 2023-5-22 15:53
那听奇怪的。为啥我的会有弹框提示呢?我的第一个Parameter.txt文件根据你的提示改成:
mtdparts=rk29xxnand:0x00000200@00001c0(vnvm),0x00004000@0x00004000(uboot)
第二个parameter.txt文件是去除了uboot分区之后的,如下:
mtdparts=rk29xxnand:0x00002000@0x00008000(misc),0x00080000@0x0000a000(boot:bootable),0x00040000@0x0008a000(recovery),0x00010000@0x000ca000(backup),0x00c00000@0x000da000(rootfs),-@0x0cda000(userdata:grow)
在烧录的时候还是有一个错误弹框:“misc” did not find matchpartition”的提示。
为啥呢?
作者: loading 时间: 2023-5-22 18:13
这个不太清楚了,一般是烧录工具 跟parameter 对应上
作者: tfirst 时间: 2023-5-23 14:30
这个问题你目前进展怎么样了?
方便把你的两个parameter.txt给我看看吗?
作者: loading 时间: 2023-5-24 14:58
作者: tfirst 时间: 2023-5-25 09:40
谢谢!借鉴了你的参数设置,我这边仍然是会报弹框报错。
现在这个事情,我目前的情况是:
在弹框报错的情况下(不强制写),重新选择软件界面中变灰的文件,再执行烧录操作,是可以烧录进去。烧录完成后,自动进入recovery模式,在recovery处理完后自动重启后,就只能停在uboot命令行下。这个时候用命令“part list nvme 0”去查看ssd中的分区情况,会报“ERROR: Can't read MBR header”这样的错误,而我reset或者掉电重启后,按下键盘Ctrl+C,主动进入u-boot命令行模式,此时用命令去查看ssd的分区情况,是可以正确读取到分区的信息(与parameter.txt的一直),然后使用boot命令去引导kernel,依然是无法启动,而停留在u-boot命令行模式,此时再用命令去查看ssd的分区情况,却又会报“ERROR: Can't read MBR header”这样的错误,所以我怀疑是不是uboot哪里没有配置好?(关于uboot的配置,我用的都是这个开发板默认的配置:firefly-linux.config,仅仅是在此基础上添加了如我贴子写的那样的关于PCI等的相关配置)
作者: loading 时间: 2023-5-25 11:52
1. 还弹框报错,就是烧录工具的分区跟parameter 的分区不对应;
2.uboot 修改都参考文档来改了吗?
作者: tfirst 时间: 2023-5-25 13:20
确实是还弹框,那个软件的配置就跟我之前在贴子正文贴的图一样,每一个地址我都核对过的。写到emmc的parameter.txt只有一个uboot分区,写到SSD的parameter.txt就是除了uboot之外的其他分区。
uboot的修改就是参考那个文档,以及https://blog.csdn.net/weixin_43245753/article/details/124768691这个贴子来修改的。
作者: loading 时间: 2023-5-25 15:49
你emmc 不够大放系统吗? 烧录到emmc 本来就可以引导系统启动了;下面这个你配置的啥
CONFIG_ROCKCHIP_BOOTDEV="nvme 0" # 可择 "nvme"-NVMe "mmc"-1 emmc "scsi"-SATA
作者: tfirst 时间: 2023-5-25 15:56
因为客户的需要,我们需要装一个可销毁的SSD,所以就需要将系统等放到SSD中,所以需要采用emmc+SSD的方式,SSD里需要装除了uboot以外的固件。
那个CONFIG_ROCKCHIP_BOOTDEV我设置的是nvme 0
作者: loading 时间: 2023-5-26 09:15
嗯,我觉得至少先把烧录弹框的解决了,然后再分析其他的
作者: tfirst 时间: 2023-5-26 11:13
烧录弹框的问题,有点困难,因为这个过程就是一个黑盒子,都搞不清楚什么原因。
作者: loading 时间: 2023-5-26 15:41
是烧录到emmc 弹框还是ssd 弹框
作者: tfirst 时间: 2023-5-26 16:38
本帖最后由 tfirst 于 2023-5-26 16:43 编辑
没烧录,在配置的时候会弹窗,配置完后,选择所有固件进行烧录的时候也会弹窗。
我将这个配置,保存成配置文件,重新导入这个配置文件的时候就会立即弹窗。
本来想上传一个视频文件的,但是论坛都不传不了大文件
作者: loading 时间: 2023-5-26 18:02
配置哪一部分弹框? emmc? SSD?
作者: tfirst 时间: 2023-5-29 09:58
烧录时的报错,具体如下:
RK3588 emmc+pcie nvme烧录出错记录
一、parameter_emmc.txt内容如下:
FIRMWARE_VER: 1.0
MACHINE_MODEL: RK3588
MACHINE_ID: 007
MANUFACTURER: RK3588
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 0xffffffff
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE: mtdparts=sfc_nor:0x00004000@0x00004000(uboot)
二、parameter_nvme.txt内容如下:
FIRMWARE_VER: 1.0
MACHINE_MODEL: RK3588
MACHINE_ID: 007
MANUFACTURER: RK3588
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 0xffffffff
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE: mtdparts=sfc_nor:0x00002000@0x00008000(misc),0x00080000@0x0000a000(boot:bootable),0x00040000@0x0008a000(recovery),0x00010000@0x000ca000(backup),0x00c00000@0x000da000(rootfs),0x00010000@0x0cda000(saat1),0x00010000@0x00cea000(saat2),-@0x00cfa000(userdata:grow)
uuid:rootfs=614e0000-0000-4b53-8000-1d28000054a9
三、报错记录:
运行RKDevTool.exe程序,右键选择“清空所有项”后,进行配置,在软件中第一个参数文件(即下载到EMMC的配置参数文件)选择parameter_emmc.txt。当配置到PCIE存储的第一个文件,即第二个参数文件(parameter_nvme.txt文件)时,会弹出报错:”“uboot” did not find match partiion”。
忽略错误,按照parameter_nvme.txt文件中的地址继续配置PCIE的各个分区,配置完成后,点击“执行”,则会从misc分区到userdata分区依次报错,如“”misc” did not find match partion”、“”boot” did not find match partion”等
依次点击对话框的“确定”后,会出现最后一个报错:
点击该对话框中的确定后,发现uboot一项变灰。
重新选择uboot文件后,uboot一项恢复正常颜色,点击“执行”按钮进行烧录,则会报如下错误:
此时关闭软件,再次运行,在软件界面还未出现时就会弹框,从misc分区到userdata分区依次弹框。
依次点击对话框中的确定后,即进入软件界面,此时出现之前配置好的信息
直接点击“执行”,进行烧录,会同样出现“misc超过Flash大小”的错误。
作者: loading 时间: 2023-5-30 17:44
这错误确实顶奇怪的,我一般是打开烧录工具,添加各个分区,然后再导入文件
作者: tfirst 时间: 2023-5-31 14:57
目前这种按分区的方式,到目前为止,这种错误还是没解决,我只能通过更新镜像的方式去更新,一下子把所有分区镜像通过一个Img文件下载的方式,就OK
作者: loading 时间: 2023-6-1 12:39
嗯,那下载的没啥纠结了,能引导成功了吗
作者: tfirst 时间: 2023-6-2 08:49
可以成功引导了。这个版本的uboot虽然有对应的驱动,但是还不支持。后来参照emmc的启动引导,经过添加修改,可以正常引导了。
作者: loading 时间: 2023-6-2 09:27
恭喜
欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) |
Powered by Discuz! X3.1 |