EBAZ4203 ZYNQ 7Z010 u-boot生成记录

一、使用vivado2018.3/Xilinx SDK生成.bit和fsbl.elf

 其中,sclk_0接加焊的PL端50mHz有源晶振,shift_led 是测试扩展板Led流水灯小模块,代码为:

module shift_led(
        // system signals
        input                   sclk,
        input                   s_rst_n,
        //
        output  reg[2:0]        led
    );

//========================================================================\
//************ Define Parameter and internal symbols ******************
//========================================================================/
localparam DELAY_1S = 'd50_000_000; //50M
reg[25:0]   cnt_1s;

//========================================================================\
//************ Main Code ******************
//========================================================================/
 always @(posedge sclk or negedge s_rst_n) begin
      if (!s_rst_n)
            cnt_1s <= 'd0;
      else if (cnt_1s== DELAY_1S-1)
            cnt_1s <= 'd0;
      else
            cnt_1s <= cnt_1s + 1'b1;
 end 
 always @(posedge sclk or negedge s_rst_n) begin
      if (!s_rst_n)
            led <= 3'b100;
      else if (cnt_1s== DELAY_1S-1)
            led <= {led[1:0],led[2]};
 end
endmodule

 管脚约束文件pin.xdc:

set_property PACKAGE_PIN R18 [get_ports {GPIO_0_0_tri_io[0]}]
set_property PACKAGE_PIN N17 [get_ports {GPIO_0_0_tri_io[1]}]
set_property PACKAGE_PIN W13 [get_ports {GPIO_0_0_tri_io[2]}]
set_property PACKAGE_PIN W14 [get_ports {GPIO_0_0_tri_io[3]}]
set_property PACKAGE_PIN P20 [get_ports SPI_0_0_io0_io]
set_property PACKAGE_PIN R19 [get_ports SPI_0_0_sck_io]
set_property PACKAGE_PIN T20 [get_ports SPI_0_0_ss_io]

set_property PACKAGE_PIN P16 [get_ports SPI_0_0_ss1_o]
set_property PACKAGE_PIN P15 [get_ports SPI_0_0_ss2_o]
set_property PACKAGE_PIN T19 [get_ports SPI_0_0_io1_io]

set_property PACKAGE_PIN H18 [get_ports {led[0]}]
set_property PACKAGE_PIN K17 [get_ports {led[1]}]
set_property PACKAGE_PIN E19 [get_ports {led[2]}]
set_property PACKAGE_PIN N18 [get_ports sclk_0]

set_property IOSTANDARD LVCMOS33 [get_ports SPI_0_0_ss_io]
set_property IOSTANDARD LVCMOS33 [get_ports SPI_0_0_sck_io]
set_property IOSTANDARD LVCMOS33 [get_ports SPI_0_0_io0_io]
set_property IOSTANDARD LVCMOS33 [get_ports SPI_0_0_ss1_o]
set_property IOSTANDARD LVCMOS33 [get_ports SPI_0_0_ss2_o]
set_property IOSTANDARD LVCMOS33 [get_ports SPI_0_0_io1_io]

set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_0_0_tri_io[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_0_0_tri_io[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_0_0_tri_io[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_0_0_tri_io[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports sclk_0]

set_property PACKAGE_PIN U14 [get_ports ENET0_MII_RX_CLK_0]
set_property PACKAGE_PIN U15 [get_ports ENET0_MII_TX_CLK_0]
set_property PACKAGE_PIN W15 [get_ports MDIO_ETHERNET_0_0_mdc]
set_property PACKAGE_PIN Y14 [get_ports MDIO_ETHERNET_0_0_mdio_io]
set_property PACKAGE_PIN W19 [get_ports {ENET0_MII_TX_EN_0[0]}]
set_property PACKAGE_PIN W16 [get_ports ENET0_MII_RX_DV_0]

set_property PACKAGE_PIN Y16 [get_ports {ENET0_MII_RXD[0]}]
set_property PACKAGE_PIN V16 [get_ports {ENET0_MII_RXD[1]}]
set_property PACKAGE_PIN V17 [get_ports {ENET0_MII_RXD[2]}]
set_property PACKAGE_PIN Y17 [get_ports {ENET0_MII_RXD[3]}]

set_property PACKAGE_PIN W18 [get_ports {ENET0_MII_TXD[0]}]
set_property PACKAGE_PIN Y18 [get_ports {ENET0_MII_TXD[1]}]
set_property PACKAGE_PIN V18 [get_ports {ENET0_MII_TXD[2]}]
set_property PACKAGE_PIN Y19 [get_ports {ENET0_MII_TXD[3]}]

set_property IOSTANDARD LVCMOS33 [get_ports {ENET0_MII_RXD[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {ENET0_MII_RXD[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {ENET0_MII_RXD[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {ENET0_MII_RXD[0]}]

set_property IOSTANDARD LVCMOS33 [get_ports {ENET0_MII_TXD[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {ENET0_MII_TXD[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {ENET0_MII_TXD[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {ENET0_MII_TXD[0]}]

set_property IOSTANDARD LVCMOS33 [get_ports ENET0_MII_RX_CLK_0]
set_property IOSTANDARD LVCMOS33 [get_ports ENET0_MII_TX_CLK_0]
set_property IOSTANDARD LVCMOS33 [get_ports {ENET0_MII_TX_EN_0[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports ENET0_MII_RX_DV_0]
set_property IOSTANDARD LVCMOS33 [get_ports MDIO_ETHERNET_0_0_mdc]
set_property IOSTANDARD LVCMOS33 [get_ports MDIO_ETHERNET_0_0_mdio_io]

 将Vivado生成的硬件bit文件更名为ebaz4203_wrapper.bit和SDK生成的引导文件fsbl.elf,拷贝到后面U-BOOT目录。

二、新建ubuntu16.04虚拟机(指定用这个版本),在ubuntu16.04环境编译 u-boot

1、安装Xilinx集成Linux工具petalinux

先安装依赖软件包

sudo apt-get install tofrodos iproute2 gawk gcc g++ git make net-tools libncurses5-dev \
tftpd zlib1g:i386 libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat \
xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential \
libsdl1.2-dev libglib2.0-dev screen pax gzip automake

2、在Xilinx官网下载 petalinux-v2018.3-final-installer.runicon-default.png?t=N4P3https://china.xilinx.com/member/forms/download/xef.html?filename=petalinux-v2018.3-final-installer.run并安装

3、下载 xilinx uboot源码包,u-boot-xlnx-xilinx-v2018.3.tar.gzicon-default.png?t=N4P3https://codeload.github.com/Xilinx/u-boot-xlnx/tar.gz/refs/tags/xilinx-v2018.3

解压后进入u-boot-xlnx-xilinx-v2018.3目录 ,将先前ebaz4203_wrapper.bit、fsbl.elf文件拷进来,并制作一个脚本文件用于一步生成uboot

lrg@zynq:~/work/u-boot-xlnx-xilinx-v2018.3$ touch run.sh
lrg@zynq:~/work/u-boot-xlnx-xilinx-v2018.3$ chmod a+x run.sh
lrg@zynq:~/work/u-boot-xlnx-xilinx-v2018.3$ nano run.sh

脚本run.sh内容:

#!/bin/bash
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zynq_ebaz4203_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8
mv u-boot u-boot.elf
echo the_ROM_image: \
{ \
   [bootloader]./fsbl.elf \
   ./ebaz4203_wrapper.bit \
   ./u-boot.elf \
} > boot.bif
bootgen -image boot.bif -o i BOOT.bin -w
cp ./arch/arm/dts/zynq-ebaz4203.dtb devicetree.dtb

 其中 bootgen 命令用于生成启动文件BOOT.bin,前面make命令用于生成u-boot。

4、添加设备树 zynq-ebaz4203.dts到 ./arch/arm/dts/目录下,

// SPDX-License-Identifier: GPL-2.0+
/*
*  Copyright (C) 2011 - 2015 Xilinx
*  Copyright (C) 2012 National Instruments Corp.
*/
/dts-v1/;

#include "zynq-7000.dtsi"

#define GPIO_ACTIVE_HIGH 0
#define GPIO_ACTIVE_LOW  1
/ {
   model = "EBAZ4203 Development Board";
   compatible = "xlnx,ebaz4203", "xlnx,zynq-7000";

   aliases {
      ethernet0 = &gem0;
      serial0 = &uart1;
      mmc0 = &sdhci0;
   };

   memory@0 {
      device_type = "memory";
      reg = <0x0 0x20000000>;
   };

   chosen {
      bootargs = "";
      stdout-path = "serial0:115200n8";
   };

   ebaz-keys {
      compatible = "gpio-keys";
      autorepeat;
      s2 {
            label = "s2";
            gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
            /*KEY_POWER*/
            linux,code = <116>;
            wakeup-source;
            autorepeat;
      };

      s3 {
            label = "s3";
            gpios = <&gpio0 32 GPIO_ACTIVE_HIGH>;
            /*KEY_HOME*/
            linux,code = <102>;
            wakeup-source;
            autorepeat;
      };
   };
   ebaz-leds {
      compatible = "gpio-leds";

      led-green {
         label = "green";
         gpios = <&gpio0 56 GPIO_ACTIVE_LOW>;
         default-state = "on";
      };
      led-red {
         label = "red";
         gpios = <&gpio0 57 GPIO_ACTIVE_LOW>;
         default-state = "on";
      };
   };

};

&clkc {
   ps-clk-frequency = <33333333>;
};

&gem0 {
   status = "okay";
   phy-mode = "mii";
   phy-handle = <&phy>;

   /* PHY clock */
   assigned-clocks = <&clkc 18>;
   assigned-clock-rates = <25000000>;

   phy: ethernet-phy@0 {
      reg = <0>;
   };
};

&smcc {
   status = "okay";
};

&nand0 {
   status = "okay";
   pinctrl-names = "default";
   pinctrl-0 = <&pinctrl_nand0_default>;
   partition@0 {
      label = "nand-fsbl-uboot";
      reg = <0x0 0x300000>;
   };
   partition@1 {
      label = "nand-linux";
      reg = <0x300000 0x500000>;
   };
   partition@2 {
      label = "nand-device-tree";
      reg = <0x800000 0x20000>;
   };
   partition@3 {
      label = "nand-rootfs";
      reg = <0x820000 0xa00000>;
   };
   partition@4 {
      label = "nand-jffs2";
      reg = <0x1220000 0x1000000>;
   };
   partition@5 {
      label = "nand-bitstream";
      reg = <0x2220000 0x800000>;
   };
   partition@6 {
      label = "nand-allrootfs";
      reg = <0x2a20000 0x4000000>;
   };
   partition@7 {
      label = "nand-release";
      reg = <0x6a20000 0x13e0000>;
   };
   partition@8 {
      label = "nand-reserve";
      reg = <0x7e00000 0x200000>;
   };
};

&pinctrl0 {
   pinctrl_nand0_default: nand0-default {
      mux {
            groups = "smc0_nand8_grp";
            function = "smc0_nand";
      };

      conf {
            groups = "smc0_nand8_grp";
            bias-pull-up;
      };
   };

   pinctrl_uart1_default: uart1-default {
      mux {
            groups = "uart1_4_grp";
            function = "uart1";
      };

      conf {
            groups = "uart1_4_grp";
            slew-rate = <0>;
            io-standard = <3>;
      };
   };
};

&sdhci0 {
   u-boot,dm-pre-reloc;
   status = "okay";
};

&uart1 {
   u-boot,dm-pre-reloc;
   status = "okay";
   pinctrl-names = "default";
   pinctrl-0 = <&pinctrl_uart1_default>;
};

5、参考zynq_zc702_defconfig 添加 zynq_ebaz4203_defconfig到configs目录

cp configs/zynq_zc702_defconfig  configs/zynq_ebaz4203_defconfig
nano zynq_ebaz4203_defconfig

删除:CONFIG_ENV_IS_IN_SPI_FLASH=y.

修改:

CONFIG_SYS_CONFIG_NAME="zynq_ebaz4203"
CONFIG_IDENT_STRING=" Xilinx Zynq EBAZ4203"
CONFIG_DEFAULT_DEVICE_TREE="zynq-ebaz4203"
CONFIG_DEBUG_UART_BASE=0xe0001000

增加:

CONFIG_NAND=y
CONFIG_NAND_ZYNQ=y
CONFIG_BOOTDELAY=3

6、参考zynq_zc70x.h,增加头文件至目录include/configs

cp include/configs/zynq_zc70x.h include/configs/zynq_ebaz4203.h
/*
 * (C) Copyright 2013 Xilinx, Inc.
 *
 * Configuration settings for the Xilinx Zynq ZC702 and ZC706 boards
 * See zynq-common.h for Zynq common configs
 *
 * SPDX-License-Identifier:     GPL-2.0+
 */

#ifndef __CONFIG_ZYNQ_EBAZ4203_H
#define __CONFIG_ZYNQ_EBAZ4203_H

#define CONFIG_ZYNQ_I2C0
#define CONFIG_ZYNQ_EEPROM


#define CONFIG_CPU_FREQ_HZ 666666667

#include <configs/zynq-common.h>

#endif /* __CONFIG_ZYNQ_EBAZ4203_H */

7、更改arch/arm/mach-zynq/Kconfig ,改动点如下

config SYS_CONFIG_NAME
   string "Board configuration name"
   default "zynq_ebaz4203"

8、执行脚本生成BOOT.bin和devicetree.dtb

lrg@zynq:~/work/u-boot-xlnx-xilinx-v2018.3$ sptl
lrg@zynq:~/work/u-boot-xlnx-xilinx-v2018.3$./run.sh

sptl为petalinux环境变量别名

alias sptl='source /opt/pkg/petalinux/2018.3/settings.sh'

petalinux安装在/opt/pkg/petalinux/2018.3/

9、新建定制启动命令文件 uEnv.txt :

bootargs=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait
uenvcmd=run linaro_sdboot
linaro_sdboot=echo Run uEnv.txt copying Linux from SD to RAM... && \
fatload mmc 0 0x0 ${devicetree_image} && \
fatload mmc 0 0x8000 ${kernel_image} && \
if fatload mmc 0 0x1000000 ${ramdisk_image}; \
then bootm 0x8000 0x1000000 0x0; \
else bootm 0x8000 - 0x0; fi

10、下载linux-xlnx-xilinx-v2018.3.tar.gz 并解压,进入linux-xlnx-xilinx-v2018.3目录直接编译zynq Linux内核,生成镜像文件uImage

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xilinx_zynq_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8
cp ./arch/arm/boot/zImage ./
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- UIMAGE_LOADADDR=0x8000 uImage
cp ./arch/arm/boot/uImage ./

其中:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- UIMAGE_LOADADDR=0x8000 uImage

转uImage文件要用到 u-boot目录下的工具mkimage,先得设置一下uboot环境变量

11、将BOOT.bin、devicetree.dtb、uImageuEnv.txt 放入fat32分区的SD卡就可以启动了,uboot默认识别devicetree.dtb、uImage、uEnv.txt文件名.

12、进入Linux后会报根文件系统挂载错误。下载一个根文件系统解压到SD卡的ext4分区就可以启动了。

可以直接使用的根文件系统:linaro-precise-ubuntu-desktop-20120723-305.tar.gz

(https://releases.linaro.org/archive/12.07/ubuntu/precise-images/ubuntu-desktop/)

在命令行解压到SD卡ext4分区:

lrg@zynq:~/work$ tar -xzvf rootfs.tar.gz -C /media/xxx/rootfs
lrg@zynq:~/work$ sync

启动串口信息:

U-Boot 2018.01 (May 27 2023 - 09:50:56 +0800) Xilinx Zynq EBAZ4203

Model: EBAZ4203 Development Board
Board: Xilinx Zynq
Silicon: v3.1
I2C:   ready
DRAM:  ECC disabled 512 MiB
NAND:  128 MiB
MMC:   sdhci@e0100000: 0 (SD)
Using default environment

In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
Net:   ZYNQ GEM: e000b000, phyaddr 0, interface mii
eth0: ethernet@e000b000
reading uEnv.txt
381 bytes read in 11 ms (33.2 KiB/s)
Importing environment from SD ...
Hit any key to stop autoboot:  0
Device: sdhci@e0100000
Manufacturer ID: 6f
OEM: 307
Name: ISTND
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 58.6 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
reading uEnv.txt
381 bytes read in 10 ms (37.1 KiB/s)
Loaded environment from uEnv.txt
Importing environment from SD ...
Running uenvcmd ...
Run uEnv.txt copying Linux from SD to RAM...
reading devicetree.dtb
10474 bytes read in 16 ms (638.7 KiB/s)
reading uImage
3965608 bytes read in 252 ms (15 MiB/s)
** Unable to read file uramdisk.image.gz **
## Booting kernel from Legacy Image at 00008000 ...
   Image Name:   Linux-4.14.0-xilinx
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3965544 Bytes = 3.8 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 00000000
   Booting using the fdt blob at 0x000000
   Loading Kernel Image ... OK
   Loading Device Tree to 1eafe000, end 1eb038e9 ... OK

Starting kernel ...

Booting Linux on physical CPU 0x0
Linux version 4.14.0-xilinx (lrg@zynq) (gcc version 7.3.1 20180314 (Linaro GCC 7.3-2018.04-rc3)) #1 SMP PREEMPT Wed May 24 15:56:52 CST 2023
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt: Machine model: EBAZ4203 Development Board
Memory policy: Data cache writealloc
cma: Reserved 16 MiB at 0x1f000000
random: fast init done
percpu: Embedded 16 pages/cpu @debc6000 s34764 r8192 d22580 u65536
Built 1 zonelists, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 493060K/524288K available (6144K kernel code, 238K rwdata, 1560K rodata, 1024K init, 153K bss, 14844K reserved, 16384K cma-reserved, 0K highmem)
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
    lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    modules : 0xbf000000 - 0xbfe00000   (  14 MB)
      .text : 0xc0008000 - 0xc0700000   (7136 kB)
      .init : 0xc0900000 - 0xc0a00000   (1024 kB)
      .data : 0xc0a00000 - 0xc0a3b880   ( 239 kB)
       .bss : 0xc0a3b880 - 0xc0a61d44   ( 154 kB)
Preemptible hierarchical RCU implementation.
        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
        Tasks RCU enabled.
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
efuse mapped to e0800000
slcr mapped to e0802000
L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
L2C-310 erratum 769419 enabled
L2C-310 enabling early BRESP for Cortex-A9
L2C-310 full line of zeros enabled for Cortex-A9
L2C-310 ID prefetch enabled, offset 1 lines
L2C-310 dynamic clock gating enabled, standby mode enabled
L2C-310 cache controller enabled, 8 ways, 512 kB
L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
zynq_clock_init: clkc starts at e0802100
Zynq clock init
sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns
clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns
Switching to timer-based delay loop, resolution 3ns
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns
timer #0 at e080a000, irq=17
Console: colour dummy device 80x30
Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x100000 - 0x100060
Hierarchical SRCU implementation.
smp: Bringing up secondary CPUs ...
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
smp: Brought up 1 node, 2 CPUs
SMP: Total of 2 processors activated (1333.33 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 512 (order: 3, 32768 bytes)
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor menu
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0xe0840000
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 25, base_baud = 6249999) is a xuartps
console [ttyPS0] enabled
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
media: Linux media interface: v0.10
Linux video capture interface: v2.00
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
EDAC MC: Ver: 3.0.0
FPGA manager framework
fpga-region fpga-full: FPGA Region probed
Advanced Linux Sound Architecture Driver Initialized.
clocksource: Switched to clocksource arm_global_timer
NET: Registered protocol family 2
TCP established hash table entries: 4096 (order: 2, 16384 bytes)
TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
workingset: timestamp_bits=30 max_order=17 bucket_order=0
jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
io scheduler mq-deadline registered
io scheduler kyber registered
dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
dma-pl330 f8003000.dmac:        DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
brd: module loaded
loop: module loaded
libphy: Fixed MDIO Bus: probed
CAN device driver interface
libphy: MACB_mii_bus: probed
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 27 (00:0a:35:00:01:22)
Generic PHY e000b000.ethernet-ffffffff:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=e000b000.ethernet-ffffffff:00, irq=POLL)
e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
usbcore: registered new interface driver usb-storage
i2c /dev entries driver
IR NEC protocol handler initialized
IR RC5(x/sz) protocol handler initialized
IR RC6 protocol handler initialized
IR JVC protocol handler initialized
IR Sony protocol handler initialized
IR SANYO protocol handler initialized
IR Sharp protocol handler initialized
IR MCE Keyboard/mouse protocol handler initialized
IR XMP protocol handler initialized
cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer at e083e000 with timeout 10s
EDAC MC: ECC not enabled
Xilinx Zynq CpuIdle Driver started
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA
ledtrig-cpu: registered to indicate activity on CPUs
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
pl35x-smc e000e000.memory-controller: arm,nand-cycle-t0 not in device tree
pl35x-smc e000e000.memory-controller: Using default timing for
pl35x-smc e000e000.memory-controller: 2Gb Numonyx MT29F2G08ABAEAWP NAND flash
pl35x-smc e000e000.memory-controller: t_wp, t_clr, t_ar are set to 2
pl35x-smc e000e000.memory-controller: t_rc, t_wc, t_rr are set to 4
pl35x-smc e000e000.memory-controller: t_rea is set to 1
nand: device found, Manufacturer ID: 0xef, Chip ID: 0xf1
nand: Winbond W29N01HV
nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
Bad block table found at page 65472, version 0x01
Bad block table found at page 65408, version 0x01
9 ofpart partitions found on MTD device pl35x-nand
Creating 9 MTD partitions on "pl35x-nand":
0x000000000000-0x000000300000 : "nand-fsbl-uboot"
0x000000300000-0x000000800000 : "nand-linux"
0x000000800000-0x000000820000 : "nand-device-tree"
0x000000820000-0x000001220000 : "nand-rootfs"
0x000001220000-0x000002220000 : "nand-jffs2"
0x000002220000-0x000002a20000 : "nand-bitstream"
0x000002a20000-0x000006a20000 : "nand-allrootfs"
0x000006a20000-0x000007e00000 : "nand-release"
0x000007e00000-0x000008000000 : "nand-reserve"
fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
NET: Registered protocol family 10
mmc0: new high speed SDXC card at address b36b
mmcblk0: mmc0:b36b ISTND 58.6 GiB
 mmcblk0: p1 p2
Segment Routing with IPv6
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
NET: Registered protocol family 17
can: controller area network core (rev 20170425 abi 9)
NET: Registered protocol family 29
can: raw protocol (rev 20170425)
can: broadcast manager protocol (rev 20170425 t)
can: netlink gateway (rev 20170425) max_hops=1
Registering SWP/SWPB emulation handler
input: ebaz-keys as /devices/soc0/ebaz-keys/input/input0
hctosys: unable to open rtc device (rtc0)
of_cfs_init
of_cfs_init: OK
ALSA device list:
  No soundcards found.
EXT4-fs (mmcblk0p2): recovery complete
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 179:2.
devtmpfs: mounted
Freeing unused kernel memory: 1024K
systemd[1]: System time before build time, advancing clock.
systemd[1]: Failed to insert module 'autofs4': No such file or directory
systemd[1]: systemd 232 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
systemd[1]: Detected architecture arm.

Welcome to Debian GNU/Linux 9 (stretch)!

systemd[1]: Set hostname to <stretch-armhf>.
systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password Requests to Wall Directory Watch.
systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
systemd[1]: Reached target Swap.
[  OK  ] Reached target Swap.
systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
systemd[1]: Created slice System Slice.
[  OK  ] Created slice System Slice.
systemd[1]: Reached target Slices.
[  OK  ] Reached target Slices.
systemd[1]: dev-hugepages.mount: Couldn't determine result for ConditionVirtualization=!private-users, assuming failed: No such file or directory
[  OK  ] Listening on udev Kernel Socket.
[  OK  ] Reached target Remote File Systems.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
[  OK  ] Listening on Journal Socket (/dev/log).
[  OK  ] Created slice system-getty.slice.
[  OK  ] Listening on Journal Socket.
         Starting Load Kernel Modules...
         Starting Create Static Device Nodes in /dev...
         Starting Journal Service...
[  OK  ] Reached target Sockets.
[  OK  ] Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Reached target Encrypted Volumes.
[  OK  ] Reached target Paths.
         Starting Remount Root and Kernel File Systems...
[  OK  ] Started Journal Service.
[  OK  ] Started Load Kernel Modules.
[  OK  ] Started Create Static Device Nodes in /dev.
[  OK  ] Started Remount Root and Kernel File Systems.
         Starting Load/Save Random Seed...
         Starting udev Coldplug all Devices...
         Starting udev Kernel Device Manager...
[  OK  ] Reached target Local File Systems (Pre).
[  OK  ] Reached target Local File Systems.
         Mounting Configuration File System...
         Starting Apply Kernel Variables...
         Starting Flush Journal to Persistent Storage...
[  OK  ] Mounted Configuration File System.
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Started Load/Save Random Seed.
[  OK  ] Started Apply Kernel Variables.
systemd-journald[729]: Received request to flush runtime journal from PID 1
         Starting Raise network interfaces...
[  OK  ] Started Flush Journal to Persistent Storage.
         Starting Create Volatile Files and Directories...
[  OK  ] Started udev Coldplug all Devices.
[  OK  ] Found device /dev/ttyPS0.
[  OK  ] Started Create Volatile Files and Directories.
         Starting Update UTMP about System Boot/Shutdown...
         Starting Network Time Synchronization...
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Time Synchronized.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Basic System.
         Starting LSB: IPv4 DHCP client with IPv4LL support...
[  OK  ] Started Regular background program processing daemon.
[  OK  ] Started Daily apt download activities.
[  OK  ] Started Daily apt upgrade and clean activities.
[  OK  ] Reached target Timers.
         Starting getty on tty2-tty6 if dbus and logind are not available...
         Starting System Logging Service...
[  OK  ] Started System Logging Service.
[  OK  ] Started Raise network interfaces.
[  OK  ] Started getty on tty2-tty6 if dbus and logind are not available.
[  OK  ] Reached target Network.
         Starting OpenBSD Secure Shell server...
IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
         Starting Permit User Sessions...
[  OK  ] Started LSB: IPv4 DHCP client with IPv4LL support.
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Getty on tty3.
[  OK  ] Started Serial Getty on ttyPS0.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Getty on tty2.
[  OK  ] Started Getty on tty5.
[  OK  ] Started Getty on tty6.
[  OK  ] Started Getty on tty4.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started OpenBSD Secure Shell server.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.
         Starting Update UTMP about System Runlevel Changes...
[  OK  ] Started Update UTMP about System Runlevel Changes.
macb e000b000.ethernet eth0: unable to generate target frequency: 25000000 Hz
macb e000b000.ethernet eth0: link up (100/Full)
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Debian GNU/Linux 9 stretch-armhf ttyPS0

stretch-armhf login:

login:osrc , pwd:root  ;  su root,pwd:root 

 测试板上红绿灯亮灭,0-灭,1-亮

root@stretch-armhf:/home/osrc# echo 0 > /sys/bus/platform/devices/ebaz-leds/leds/green/brightness
root@stretch-armhf:/home/osrc# echo 1 > /sys/bus/platform/devices/ebaz-leds/leds/green/brightness

测试网络:

root@stretch-armhf:/home/osrc# ping www.baidu.com
PING www.a.shifen.com (14.119.104.254) 56(84) bytes of data.
64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq=1 ttl=53 time=18.8 ms
64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq=2 ttl=53 time=26.7 ms
64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq=3 ttl=53 time=25.1 ms
64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq=4 ttl=53 time=23.5 ms
64 bytes from 14.119.104.254 (14.119.104.254): icmp_seq=5 ttl=53 time=22.0 ms

参考:EBAZ4205 ZYNQ 7Z010 u-boot & Linux 生成方法记录_昨日傍晚的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值