RK3588Q从外挂的SSD引导系统

固件类型:自行编译的固件
SDK包名称:rk3588_linux_bsp_release_20230403_v1.0.6f
SDK修改内容:根据《Rockchip Developer Guide Dual Storage CN》进行修改
Log日志:session.log

本帖最后由 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)

如果不强制按地址写呢? (没有的就不烧录,把前面勾选去掉)

本帖最后由 tfirst 于 2023-5-22 09:15 编辑

loading 发表于 2023-5-19 17:41
如果不强制按地址写呢? (没有的就不烧录,把前面勾选去掉)

“把前面勾选去掉”———把哪些去掉?每个分区都要。
如果不强制按地址写,有时会报错,会报说“超过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,再烧录,会报如下图所示的错误,无法烧录。

tfirst 发表于 2023-5-19 22:25
“把前面勾选去掉”———把哪些去掉?每个分区都要。
如果不强制按地址写,有时会报错,会报说“超过fl …

我目前也在尝试spinor+sata 方式,也是进入recovery 模式,进不到系统

loading 发表于 2023-5-22 09:44
我目前也在尝试spinor+sata 方式,也是进入recovery 模式,进不到系统

我的是buildroot,不是android系统。
你的分区文件是不是跟我的那两个pameter类似:写进emmc的分区只有uboot分区,写进nvme的分区是除了uboot之外的分区?
你的不强制写,能烧录进行吗?之前怀疑是emmc烧录过全部分区,所以导致不强制写pcie,就写不进去,但是经过验证,我擦除了emmc后,再烧录,就是会报错。偶尔能烧录,都不知道怎么才能烧录进去,现在如果不强制写的话,一直都烧录不进去。

我的也是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

parameter 我参考了文档的:
mtdparts=sfc_nor:0x00040000@0x00180000(vnvm),0x00600000@0x00200000(uboot)

loading 发表于 2023-5-22 12:49
parameter 我参考了文档的:
mtdparts=sfc_nor:0x00040000@0x00180000(vnvm),0x00600000@0x00200000(uboot …

用了这个参数,会有弹框(”xxx” did not find matchpartition)提示吗?

tfirst 发表于 2023-5-22 13:48
用了这个参数,会有弹框(”xxx” did not find matchpartition)提示吗?

不会,都正常,烧录工具也要添加vnvm

loading 发表于 2023-5-22 15:45
不会,都正常,烧录工具也要添加vnvm

那听奇怪的。为啥我的会有弹框提示呢?我的第一个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”的提示。

为啥呢?

tfirst 发表于 2023-5-22 15:53
那听奇怪的。为啥我的会有弹框提示呢?我的第一个Parameter.txt文件根据你的提示改成:
mtdparts=rk29xx …

这个不太清楚了,一般是烧录工具 跟parameter 对应上

loading 发表于 2023-5-22 18:13
这个不太清楚了,一般是烧录工具 跟parameter 对应上

这个问题你目前进展怎么样了?
方便把你的两个parameter.txt给我看看吗?

loading 发表于 2023-5-24 14:58

谢谢!借鉴了你的参数设置,我这边仍然是会报弹框报错。
现在这个事情,我目前的情况是:
在弹框报错的情况下(不强制写),重新选择软件界面中变灰的文件,再执行烧录操作,是可以烧录进去。烧录完成后,自动进入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等的相关配置)

tfirst 发表于 2023-5-25 09:40
谢谢!借鉴了你的参数设置,我这边仍然是会报弹框报错。
现在这个事情,我目前的情况是:
在弹框 …

  1. 还弹框报错,就是烧录工具的分区跟parameter 的分区不对应;
    2.uboot 修改都参考文档来改了吗?

loading 发表于 2023-5-25 11:52

  1. 还弹框报错,就是烧录工具的分区跟parameter 的分区不对应;
    2.uboot 修改都参考文档来改了吗?

确实是还弹框,那个软件的配置就跟我之前在贴子正文贴的图一样,每一个地址我都核对过的。写到emmc的parameter.txt只有一个uboot分区,写到SSD的parameter.txt就是除了uboot之外的其他分区。
uboot的修改就是参考那个文档,以及https://blog.csdn.net/weixin_43245753/article/details/124768691这个贴子来修改的。

tfirst 发表于 2023-5-25 13:20
确实是还弹框,那个软件的配置就跟我之前在贴子正文贴的图一样,每一个地址我都核对过的。写到emmc的para …

你emmc 不够大放系统吗? 烧录到emmc 本来就可以引导系统启动了;下面这个你配置的啥
CONFIG_ROCKCHIP_BOOTDEV=“nvme 0” # 可择 “nvme”-NVMe “mmc”-1 emmc “scsi”-SATA

loading 发表于 2023-5-25 15:49
你emmc 不够大放系统吗? 烧录到emmc 本来就可以引导系统启动了;下面这个你配置的啥
CONFIG_ROCKCHIP_B …

因为客户的需要,我们需要装一个可销毁的SSD,所以就需要将系统等放到SSD中,所以需要采用emmc+SSD的方式,SSD里需要装除了uboot以外的固件。
那个CONFIG_ROCKCHIP_BOOTDEV我设置的是nvme 0

tfirst 发表于 2023-5-25 15:56
因为客户的需要,我们需要装一个可销毁的SSD,所以就需要将系统等放到SSD中,所以需要采用emmc+SSD的方式 …

嗯,我觉得至少先把烧录弹框的解决了,然后再分析其他的

loading 发表于 2023-5-26 09:15
嗯,我觉得至少先把烧录弹框的解决了,然后再分析其他的

烧录弹框的问题,有点困难,因为这个过程就是一个黑盒子,都搞不清楚什么原因。