飞腾D3000PBF和UBOOT配置说明
1、背景介绍
目前调试飞腾D3000模块,针对pbf配置以及uboot中的相关配置积累了一些知识点,留作备份。
2、pbf ddr配置
D3000目前支持DDR4和DDR5的配置,目前采用镁光的DDR4或DDR5,配置参数如下:
- DDR4
- DDR5
3、uboot启动参数配置
D3000 UBOOT中可以通过三种方式启动linux操作系统,分别为NVME,USB和SATA
启动命令如下:
- SATA
setenv bootargs "console=ttyAMA1,115200 quiet root=/dev/sda2 audit=0 devmem=relaxed net"setenv load_booti "booti 0x90100000 0x95000000:0x2000000 0x90000000"
setenv load_fdt "ext4load scsi 0:1 0x90000000 d3000_linux.dtb"
setenv load_initrd "ext4load scsi 0:1 0x95000000 initramfs-64k.img"
setenv load_kernel "ext4load scsi 0:1 0x90100000 Image_64k"setenv distro_bootcmd "scsi scan;run load_fdt;run load_kernel;run load_initrd;run load_booti"
scsi 0:1为第一个盘的第一个分区,默认都是分区1存放启动文件,包含设备树,系统内核以及文件系统
root=/dev/sda2 代码文件系统挂载点,默认都是第二个分区
- USB
setenv bootargs "console=ttyAMA1,115200 quiet root=/dev/sdb2 audit=0 devmem=relaxed net"setenv load_booti "booti 0x90100000 0x95000000:0x2000000 0x90000000"
setenv load_fdt "ext4load usb 0:1 0x90000000 d3000_linux.dtb"
setenv load_initrd "ext4load usb 0:1 0x95000000 initramfs-64k.img"
setenv load_kernel "ext4load usb 0:1 0x90100000 Image_64k"setenv distro_bootcmd "usb start;run load_fdt;run load_kernel;run load_initrd;run load_booti"
USB一般是通过转换器实现USB转NVME盘,这里是usb,也是第一个分区,类似。
- NVME
setenv bootargs "console=ttyAMA1,115200 root=/dev/nvme0n1p2 net.ifnames=0 biosdevname=0 rw selinux=0"setenv load_booti "booti 0x90100000 0x95000000:0x2000000 0x90000000"
setenv load_fdt "ext4load nvme 0:1 0x90000000 d3000.dtb"
setenv load_initramfs "ext4load nvme 0:1 0x95000000 initramfs.img"
setenv load_kernel_ft "ext4load nvme 0:1 0x90100000 lmage"setenv distro_bootcmd "nvme scan;run load_fdt;run load_kernel;run load_initrd;run load_booti"
nvme是板子上面贴的nvme盘,使用nvme 0:1代表 第一个nvme盘的第一个分区
4、uboot中关闭设备的iommu
有些PCIE设备需要关闭iommu,可以在uboot启动参数中配置
setenv bootargs "console=ttyAMA1,115200 quiet root=/dev/sda2 audit=0 devmem=relaxed net iommu.passthrough=1 smmu.bypassdev=0x10ee:0x903f"
D3000中UBOOT中可以用启动配置参数关闭某些PCIE设备的IOMMU
iommu.passthrough=1 smmu.bypassdev=0x10ee:0x903f 最后的这个0x10ee:0x903f代表设备PCIE节点名称
如果需要添加多个设备,可以继续增加
smmu.bypassdev=0x10ee:0x903f,0x10ee:0x7038
或者复制多份
smmu.bypassdev=0x10ee:0x903f smmu.bypassdev=0x10ee:0x7038