xilinx挂载网络文件系统(NFS)使用QSPI TFTP服务器


写在前面:
    1.PC机上要搭建好一个TFTP server, 可以提供给target机tftp uImage 和 devicetree
    2.在一个linux机上搭建好一个NFS server, 建立好一个目录用来将文件系统解压到NFS目录

一、烧写QSPIFLASH
1.在SD卡启动模块下启动,进入U-BOOT
    Hit any key to stop autoboot:  0
    zynq-uboot>
    zynq-uboot>
2.确认QSPIFLASH
    zynq-uboot> sf probe 0 0 0
    SF: Detected S25FL128S_64K with page size 512 Bytes, erase size 128 KiB, total 32 MiB
    zynq-uboot>
3.读出BOOT.bin,得到文件大小
    zynq-uboot> fatload mmc 0 0x03000000 ${boot_image}
    reading BOOT.bin
    17909744 bytes read in 1513 ms (11.3 MiB/s)
4.计算出17909744这个大小的HEX值-->    0x11147f0
5.按这个企擦出QSPI-FLASH
    zynq-uboot> sf erase 0 +0x11147f0
    SF: 17956864 bytes @ 0x0 Erased: OK
6.将刚刚读出的BOOT.bin这个文件,从这个地址写入到qspi-flash的0地址处
    zynq-uboot> sf write 0x03000000 0 0x11147f0
    SF: 17909744 bytes @ 0x0 Written: OK

二、从NFS启动系统
1.正确的配置好跳线,从QSPI启动。
2.对应该的连接器也要接到EMMC接口上
3.上电进入U-Boot

    Net:   Gem.e000b000
    Hit any key to stop autoboot:  0
    zynq-uboot>
4.设置好本机IP
    zynq-uboot> setenv ipaddr 10.180.8.223
5.设置好TFTP服务器IP
    zynq-uboot> setenv serverip 10.180.8.171
6.从TFTP服务器上下载devicetree
    zynq-uboot> tftpboot 0x2A00000 10.180.8.171:devicetree.dtb
    Gem.e000b000 Waiting for PHY auto negotiation to complete.... done
    Using Gem.e000b000 device
    TFTP from server 10.180.8.171; our IP address is 10.180.8.223
    Filename 'devicetree.dtb'.
    Load address: 0x2a00000
    Loading: ####
             509.8 KiB/s
    done
    Bytes transferred = 44923 (af7b hex)    
7.从TFTP服务器上下载uImage
    zynq-uboot> tftpboot 0x3000000 10.180.8.171:uImage
    Gem.e000b000:1 is connected to Gem.e000b000.  Reconnecting to Gem.e000b000
    Gem.e000b000 Waiting for PHY auto negotiation to complete.... done
    Using Gem.e000b000 device
    TFTP from server 10.180.8.171; our IP address is 10.180.8.223
    Filename 'uImage'.
    Load address: 0x3000000
    Loading: #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             ####
             1.6 MiB/s
    done
    Bytes transferred = 4819144 (4988c8 hex)
8.设置好启动参数
    zynq-uboot> setenv bootargs "noinitrd console=ttyPS1,115200 earlyprintk loglevel=8 rootwait root=/dev/nfs rootfstype=nfs rw nfsroot=10.180.8.200:/home/adolph/share/nfs_rootfs,vers=4,tcp ip=10.180.8.223:10.180.8.200:10.180.8.1:255.255.255.0::eth0::off"    
9.启动Kernel
    zynq-uboot> bootm 0x3000000 - 0x2A00000
    ## Booting kernel from Legacy Image at 03000000 ...
       Image Name:   Linux-4.14.0-g7cee85234c39
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    4819080 Bytes = 4.6 MiB
       Load Address: 00008000
       Entry Point:  00008000
       Verifying Checksum ... OK
    ## Flattened Device Tree blob at 02a00000
       Booting using the fdt blob at 0x2a00000
       Loading Kernel Image ... OK
       Loading Device Tree to 1fff2000, end 1fffff7a ... OK

    Starting kernel ...
10.    状态
    axi-jesd204-tx 44b90000.axi-jesd204-tx: axi_jesd204_tx_probe: enter
    macb e000b000.ethernet eth0: link up (100/Full)
    IP-Config: Complete:
         device=eth0, hwaddr=00:0a:35:00:01:22, ipaddr=10.180.8.223, mask=255.255.255.0, gw=10.180.8.1
         host=10.180.8.223, domain=, nis-domain=(none)
         bootserver=10.180.8.200, rootserver=10.180.8.200, rootpath=     nameserver0=238.0.0.0
    ALSA device list:
    : Mounted root (nfs4 filesystem) on device 0:15.
    devtmpfs: mounted
    Freeing unused kernel memory: 1024K
    Starting rcS...
    ++ Mounting filesystem
    mount: mounting /dev/mmcblk0p1 on /mnt failed: No such file or directory
    mount: mounting /dev/mmcblk0 on /mnt failed: No such file or directory
    ++ Setting up mdev
    ++ Starting telnet daemon
    ++ Starting http daemon
    ++ Starting ftp daemon
    ++ Starting ssh daemon
    /etc/init.d/rcS: line 34: /usr/sbin/sshd: not found
    rcS Complete
    zynq>
    

 

你可能感兴趣的:(LINUX相关)