zybo のカスタムシステムの作成
ボードデザイン
とりあえず、オーディオ、グラフィックなしで作ってみる。
report Utilization
+------------------------------+-----------------------------------+------------+------------+---------+------+-----+--------+--------+--------------+ | Instance | Module | Total LUTs | Logic LUTs | LUTRAMs | SRLs | FFs | RAMB36 | RAMB18 | DSP48 Blocks | +------------------------------+-----------------------------------+------------+------------+---------+------+-----+--------+--------+--------------+ | system_wrapper | (top) | 503 | 440 | 0 | 63 | 648 | 0 | 0 | 0 | | (system_wrapper) | (top) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | system_i | system | 503 | 440 | 0 | 63 | 648 | 0 | 0 | 0 | | (system_i) | system | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | axi_interconnect_0 | system_axi_interconnect_0_0 | 93 | 93 | 0 | 0 | 75 | 0 | 0 | 0 | | axi_protocol_converter_0 | system_axi_protocol_converter_0_0 | 395 | 332 | 0 | 63 | 541 | 0 | 0 | 0 | | processing_system7_0 | system_processing_system7_0_0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | zybo_sw_led_axi_0 | system_zybo_sw_led_axi_0_0 | 15 | 15 | 0 | 0 | 32 | 0 | 0 | 0 | +------------------------------+-----------------------------------+------------+------------+---------+------+-----+--------+--------+--------------+
カーネルコンフィグ
make ARCH=arm menuconfig
次の3点を変更
- Device Drivers > Graphics Suport
- 全部チェックは外す
- Device Drivers > Sound card supportのチェックはずす
- Device Drivers > DMA Engine support > Xilinx DMA Engine
CDMAは外す必要なかった。
立ち上がらない?
同様の手順で作ってみたが立ち上がらない。(シリアルコンソールに何も表示されない)あら
DONE LEDはつくからBOOT.binは読めてるっぽい
BOOT.binを入れ替える。
BOOT.binをZYBO base systemで作成したもので起動してみる。
起動した
U-Boot 2014.01-00005-gc29bed9 (Dec 31 2014 - 18:29:40) I2C: ready Memory: ECC disabled DRAM: 512 MiB MMC: zynq_sdhci: 0 SF: Detected S25FL128S_64K with page size 256 Bytes, erase size 64 KiB, total 16 MiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: Gem.e000b000 Hit any key to stop autoboot: 0 Device: zynq_sdhci Manufacturer ID: 2 OEM: 544d Name: SA08G Tran Speed: 50000000 Rd Block Len: 512 SD version 3.0 High Capacity: Yes Capacity: 7.4 GiB Bus Width: 4-bit reading uEnv.txt 116 bytes read in 8 ms (13.7 KiB/s) Loaded environment from uEnv.txt Importing environment from SD ... Running uenvcmd ... reading uImage 3540320 bytes read in 323 ms (10.5 MiB/s) reading devicetree.dtb 7406 bytes read in 17 ms (424.8 KiB/s) ## Booting kernel from Legacy Image at 03000000 ... Image Name: Linux-3.14.0-xilinx-13567-g906a2 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3540256 Bytes = 3.4 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 1fb2a000, end 1fb2eced ... OK Starting kernel ... Uncompressing Linux... done, booting the kernel. [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 3.14.0-xilinx-13567-g906a2c9 (ippei@T440s) (gcc version 4.8.3 20140320 (5 [ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] Machine model: Xilinx Zynqnicom 2.7 | VT102 | 切断 | ttyUSB1 [ 0.000000] bootconsole [earlycon0] enabled [ 0.000000] cma: CMA: reserved 128 MiB at 17800000 [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] PERCPU: Embedded 8 pages/cpu @dfb9e000 s10752 r8192 d13824 u32768 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 [ 0.000000] Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfsty1 [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Memory: 376000K/524288K available (4765K kernel code, 308K rwdata, 1696K rodata, 198K ) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) [ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB) [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB) [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB) [ 0.000000] .text : 0xc0008000 - 0xc06578c4 (6463 kB) [ 0.000000] .init : 0xc0658000 - 0xc0689a00 ( 199 kB) [ 0.000000] .data : 0xc068a000 - 0xc06d71f8 ( 309 kB) [ 0.000000] .bss : 0xc06d7204 - 0xc0c0b908 (5330 kB) [ 0.000000] Preemptible hierarchical RCU implementation. [ 0.000000] RCU lockdep checking is enabled. [ 0.000000] Dump stacks of tasks blocking RCU-preempt GP. [ 0.000000] RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2. [ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 [ 0.000000] NR_IRQS:16 nr_irqs:16 16 [ 0.000000] ps7-slcr mapped to e0802000 [ 0.000000] zynq_clock_init: clkc starts at e0802100 [ 0.000000] Zynq clock init [ 0.000017] sched_clock: 64 bits at 325MHz, resolution 3ns, wraps every 3383112499200ns [ 0.008511] ps7-ttc #0 at e0804000, irq=43 [ 0.013562] Console: colour dummy device 80x30 [ 0.017902] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar [ 0.025981] ... MAX_LOCKDEP_SUBCLASSES: 8 [ 0.029998] ... MAX_LOCK_DEPTH: 48 [ 0.034171] ... MAX_LOCKDEP_KEYS: 8191 [ 0.038589] ... CLASSHASH_SIZE: 4096 [ 0.042943] ... MAX_LOCKDEP_ENTRIES: 16384 [ 0.047414] ... MAX_LOCKDEP_CHAINS: 32768 [ 0.051917] ... CHAINHASH_SIZE: 16384 [ 0.056361] memory used by lock dependency info: 3695 kB [ 0.061805] per task-struct memory footprint: 1152 bytes [ 0.067253] Calibrating delay loop... 1292.69 BogoMIPS (lpj=6463488) [ 0.110964] pid_max: default: 32768 minimum: 301 [ 0.116263] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.122802] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.137294] CPU: Testing write buffer coherency: ok [ 0.143581] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.149222] Setting up static identity map for 0x485d00 - 0x485d58 [ 0.155594] L310 cache controller enabled [ 0.159551] l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x72760000, Cache size: 512 kB [ 0.240360] CPU1: Booted secondary processor [ 0.328292] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.329298] Brought up 2 CPUs [ 0.342169] SMP: Total of 2 processors activated. [ 0.346869] CPU: All CPU(s) started in SVC mode. [ 0.354989] devtmpfs: initialized [ 0.365736] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4 [ 0.380061] regulator-dummy: no parameters [ 0.393257] NET: Registered protocol family 16 [ 0.402061] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.415628] cpuidle: using governor ladder [ 0.419610] cpuidle: using governor menu [ 0.446670] syscon f8000000.ps7-slcr: regmap [mem 0xf8000000-0xf8000fff] registered [ 0.458568] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers. [ 0.466416] hw-breakpoint: maximum watchpoint size is 4 bytes. [ 0.472759] zynq-ocm f800c000.ps7-ocmc: ZYNQ OCM pool: 256 KiB @ 0xe0880000 [ 0.537879] bio: create slab <bio-0> at 0 [ 0.547051] SCSI subsystem initialized [ 0.553237] usbcore: registered new interface driver usbfs [ 0.559087] usbcore: registered new interface driver hub [ 0.564839] usbcore: registered new device driver usb [ 0.571358] media: Linux media interface: v0.10 [ 0.576200] Linux video capture interface: v2.00 [ 0.581430] pps_core: LinuxPPS API ver. 1 registered [ 0.586266] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.i> [ 0.595820] PTP clock support registered [ 0.600829] EDAC MC: Ver: 3.0.0 [ 0.616124] DMA-API: preallocated 4096 debug entries [ 0.621100] DMA-API: debugging enabled by kernel config [ 0.626775] Switched to clocksource arm_global_timer [ 0.690199] NET: Registered protocol family 2 [ 0.697632] TCP established hash table entries: 4096 (order: 2, 16384 bytes) [ 0.704720] TCP bind hash table entries: 4096 (order: 5, 147456 bytes) [ 0.713229] TCP: Hash tables configured (established 4096 bind 4096) [ 0.719824] TCP: reno registered [ 0.722962] UDP hash table entries: 256 (order: 2, 20480 bytes) [ 0.729154] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes) [ 0.736649] NET: Registered protocol family 1 [ 0.742696] RPC: Registered named UNIX socket transport module. [ 0.748553] RPC: Registered udp transport module. [ 0.753209] RPC: Registered tcp transport module. [ 0.757970] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.765809] hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available [ 0.779681] futex hash table entries: 512 (order: 3, 32768 bytes) [ 0.793239] jffs2: version 2.2. (NAND) (SUMMARY) �© 2001-2006 Red Hat, Inc. [ 0.800749] msgmni has been set to 990 [ 0.806024] io scheduler noop registered [ 0.809903] io scheduler deadline registered [ 0.814229] io scheduler cfq registered (default) [ 0.834156] dma-pl330 f8003000.ps7-dma: Loaded driver for PL330 DMAC-2364208 [ 0.841146] dma-pl330 f8003000.ps7-dma: DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16 [ 0.852255] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 82, base_baud = 3125000) is a xuartps [ 0.861692] console [ttyPS0] enabled [ 0.861692] console [ttyPS0] enabled [ 0.868816] bootconsole [earlycon0] disabled [ 0.868816] bootconsole [earlycon0] disabled [ 0.879962] xdevcfg f8007000.ps7-dev-cfg: ioremap 0xf8007000 to e0866000 [ 0.921458] brd: module loaded [ 0.944597] loop: module loaded [ 0.960669] m25p80 spi0.0: found s25fl128s1, expected n25q128 [ 0.966376] m25p80 spi0.0: s25fl128s1 (16384 Kbytes) [ 0.971490] 4 ofpart partitions found on MTD device spi0.0 [ 0.977381] Creating 4 MTD partitions on "spi0.0": [ 0.982121] 0x000000000000-0x000000400000 : "qspi-fsbl-uboot" [ 0.995740] 0x000000400000-0x000000900000 : "qspi-linux" [ 1.005803] 0x000000900000-0x000000920000 : "qspi-device-tree" [ 1.016323] 0x000000920000-0x000001000000 : "qspi-user" [ 1.035475] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k [ 1.041329] e1000e: Copyright(c) 1999 - 2013 Intel Corporation. [ 1.052955] libphy: XEMACPS mii bus: probed [ 1.059574] xemacps e000b000.ps7-ethernet: pdev->id -1, baseaddr 0xe000b000, irq 54 [ 1.070483] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 1.077580] ehci-pci: EHCI PCI platform driver [ 1.085207] zynq-dr e0002000.ps7-usb: Unable to init USB phy, missing? [ 1.092644] usbcore: registered new interface driver usb-storage [ 1.101654] mousedev: PS/2 mouse device common for all mice [ 1.109309] i2c /dev entries driver [ 1.121711] zynq-edac f8006000.ps7-ddrc: ecc not enabled [ 1.127936] cpufreq_cpu0: failed to get cpu0 regulator: -19 [ 1.136213] Xilinx Zynq CpuIdle Driver started [ 1.142610] sdhci: Secure Digital Host Controller Interface driver [ 1.148883] sdhci: Copyright(c) Pierre Ossman [ 1.153156] sdhci-pltfm: SDHCI platform and OF driver helper [ 1.159384] mmc0: no vqmmc regulator found [ 1.163408] mmc0: no vmmc regulator found [ 1.206776] mmc0: SDHCI controller on e0100000.ps7-sdio [e0100000.ps7-sdio] using ADMA [ 1.224022] usbcore: registered new interface driver usbhid [ 1.231652] usbhid: USB HID core driver [ 1.243281] TCP: cubic registered [ 1.246572] NET: Registered protocol family 17 [ 1.251497] Registering SWP/SWPB emulation handler [ 1.258907] regulator-dummy: disabling [ 1.263339] drivers/rtc/hctosys.c: unable to open rtc device (rtc0) [ 1.280639] mmc0: new high speed SDHC card at address 1234 [ 1.288873] mmcblk0: mmc0:1234 SA08G 7.42 GiB [ 1.299954] mmcblk0: p1 p2 [ 1.334961] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) [ 1.343229] VFS: Mounted root (ext4 filesystem) on device 179:2. [ 1.359127] devtmpfs: mounted [ 1.362371] Freeing unused kernel memory: 196K (c0658000 - c0689000) �+HH��1.894731] init: ureadahead main process (550) terminated with status 5 Last login: Thu Jan 1 00:00:06 UTC 1970 on tty1 Welcome to Linaro 12.11 (GNU/Linux 3.14.0-xilinx-13567-g906a2c9 armv7l) * Documentation: https://wiki.linaro.org/ root@linaro-nano:~#
デザイン修正
SD_WPを0を接続
+------------------------------+-----------------------------------+------------+------------+---------+------+-----+--------+--------+--------------+ | Instance | Module | Total LUTs | Logic LUTs | LUTRAMs | SRLs | FFs | RAMB36 | RAMB18 | DSP48 Blocks | +------------------------------+-----------------------------------+------------+------------+---------+------+-----+--------+--------+--------------+ | system_wrapper | (top) | 503 | 440 | 0 | 63 | 648 | 0 | 0 | 0 | | (system_wrapper) | (top) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | system_i | system | 503 | 440 | 0 | 63 | 648 | 0 | 0 | 0 | | (system_i) | system | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | axi_interconnect_0 | system_axi_interconnect_0_0 | 93 | 93 | 0 | 0 | 75 | 0 | 0 | 0 | | axi_protocol_converter_0 | system_axi_protocol_converter_0_0 | 395 | 332 | 0 | 63 | 541 | 0 | 0 | 0 | | processing_system7_0 | system_processing_system7_0_0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | xlconstant_0 | system_xlconstant_0_0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | zybo_sw_led_axi_0 | system_zybo_sw_led_axi_0_0 | 15 | 15 | 0 | 0 | 32 | 0 | 0 | 0 | +------------------------------+-----------------------------------+------------+------------+---------+------+-----+--------+--------+--------------+
FSBLのデバッグメッセージ
fsbl_debug.hに
#define FSBL_DEBUG_INFO
を追加して実行してみた
参考
ZYNQのFSBLが動かない場合の対処法: なひたふJTAG日記
Xilinx First Stage Boot Loader Release 2014.4 Jan 3 2015-15:14:41 Devcfg driver initialized Silicon Version 3.1 Boot mode is SD SD: rc= 0 SD Init Done Flash Base Address: 0xE0100000 Reboot status register: 0x60600000 Multiboot Register: 0x0000C000 Image Start Address: 0x00000000 Partition Header Offset:0x00000C80 Partition Count: 3 Partition Number: 1 Header Dump Image Word Len: 0x0007F2E8 Data Word Len: 0x0007F2E8 Partition Word Len:0x0007F2E8 Load Addr: 0x00000000 Exec Addr: 0x00000000 Partition Start: 0x000075D0 Partition Attr: 0x00000020 Partition Checksum Offset: 0x00000000 Section Count: 0x00000001 Checksum: 0xFFE7AF06 Bitstream In FsblHookBeforeBitstreamDload function PCAP:StatusReg = 0x40000A30 PCAP:device ready PCAP:Clear done Level Shifter Value = 0xA Devcfg Status register = 0x40000A30 PCAP:Fabric is Initialized done PCAP register dump: PCAP CTRL 0xF8007000: 0x4C00E07F PCAP LOCK 0xF8007004: 0x0000001A PCAP CONFIG 0xF8007008: 0x00000508 PCAP ISR 0xF800700C: 0x0802000B PCAP IMR 0xF8007010: 0xFFFFFFFF PCAP STATUS 0xF8007014: 0x50000F30 PCAP DMA SRC ADDR 0xF8007018: 0x00100001 PCAP DMA DEST ADDR 0xF800701C: 0xFFFFFFFF PCAP DMA SRC LEN 0xF8007020: 0x0007F2E8 PCAP DMA DEST LEN 0xF8007024: 0x0007F2E8 PCAP ROM SHADOW CTRL 0xF8007028: 0xFFFFFFFF PCAP MBOOT 0xF800702C: 0x0000C000 PCAP SW ID 0xF8007030: 0x00000000 PCAP UNLOCK 0xF8007034: 0x757BDF0D PCAP MCTRL 0xF8007080: 0x30800100 DMA Done ! FPGA Done ! In FsblHookAfterBitstreamDload function Partition Number: 2 Header Dump Image Word Len: 0x0001475C Data Word Len: 0x0001475C Partition Word Len:0x0001475C Load Addr: 0x04000000 Exec Addr: 0x04000000 Partition Start: 0x000868C0 Partition Attr: 0x00000010 Partition Checksum Offset: 0x00000000 Section Count: 0x00000001 Checksum: 0xF7F3BEBA Application Handoff Address: 0x04000000 In FsblHookBeforeHandoff function Look Up I2C Configuration I2C Initialization Set I2C Clock Set Memory Read Address
問題箇所
fsbl_fooks.c
fsbl_printf(DEBUG_GENERAL,"Set Memory Read Address\n\r"); XIicPs_MasterSendPolled(&Iic, mac_addr, 1, 0x50); while(XIicPs_BusIsBusy(&Iic));
もしかして、ブロックデザインでI2Cポートを出力してなかったからMACアドレスを読みに行ってもずっとビジーだった?
起動
I2Cのポートをブロックデザインに追加したら無事linuxまで起動した。
report_util
+------------------------------+-----------------------------------+------------+------------+---------+------+-----+--------+--------+--------------+ | Instance | Module | Total LUTs | Logic LUTs | LUTRAMs | SRLs | FFs | RAMB36 | RAMB18 | DSP48 Blocks | +------------------------------+-----------------------------------+------------+------------+---------+------+-----+--------+--------+--------------+ | system_wrapper | (top) | 503 | 440 | 0 | 63 | 648 | 0 | 0 | 0 | | (system_wrapper) | (top) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | system_i | system | 503 | 440 | 0 | 63 | 648 | 0 | 0 | 0 | | (system_i) | system | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | axi_interconnect_0 | system_axi_interconnect_0_0 | 93 | 93 | 0 | 0 | 75 | 0 | 0 | 0 | | axi_protocol_converter_0 | system_axi_protocol_converter_0_0 | 393 | 330 | 0 | 63 | 541 | 0 | 0 | 0 | | processing_system7_0 | system_processing_system7_0_0 | 2 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | | xlconstant_0 | system_xlconstant_0_0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | zybo_sw_led_axi_0 | system_zybo_sw_led_axi_0_0 | 15 | 15 | 0 | 0 | 32 | 0 | 0 | 0 | +------------------------------+-----------------------------------+------------+------------+---------+------+-----+--------+--------+--------------+
xdc
set_property PACKAGE_PIN D18 [get_ports {LED[3]}] set_property PACKAGE_PIN G14 [get_ports {LED[2]}] set_property PACKAGE_PIN M15 [get_ports {LED[1]}] set_property PACKAGE_PIN M14 [get_ports {LED[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[0]}] set_property PACKAGE_PIN Y16 [get_ports {PUSH_SW[3]}] set_property PACKAGE_PIN V16 [get_ports {PUSH_SW[2]}] set_property PACKAGE_PIN P16 [get_ports {PUSH_SW[1]}] set_property PACKAGE_PIN R18 [get_ports {PUSH_SW[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {PUSH_SW[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {PUSH_SW[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {PUSH_SW[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {PUSH_SW[0]}] set_property PACKAGE_PIN T16 [get_ports {SLIDE_SW[3]}] set_property PACKAGE_PIN W13 [get_ports {SLIDE_SW[2]}] set_property PACKAGE_PIN P15 [get_ports {SLIDE_SW[1]}] set_property PACKAGE_PIN G15 [get_ports {SLIDE_SW[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {SLIDE_SW[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {SLIDE_SW[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {SLIDE_SW[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {SLIDE_SW[0]}] set_property PACKAGE_PIN N18 [get_ports iic_0_scl_io] set_property IOSTANDARD LVCMOS33 [get_ports iic_0_scl_io] set_property PACKAGE_PIN N17 [get_ports iic_0_sda_io] set_property IOSTANDARD LVCMOS33 [get_ports iic_0_sda_io]
起動ログ
Xilinx First Stage Boot Loader Release 2014.4 Jan 3 2015-16:03:13 Devcfg driver initialized Silicon Version 3.1 Boot mode is SD SD: rc= 0 SD Init Done Flash Base Address: 0xE0100000 Reboot status register: 0x60480000 Multiboot Register: 0x0000C000 Image Start Address: 0x00000000 Partition Header Offset:0x00000C80 Partition Count: 3 Partition Number: 1 Header Dump Image Word Len: 0x0007F2E8 Data Word Len: 0x0007F2E8 Partition Word Len:0x0007F2E8 Load Addr: 0x00000000 Exec Addr: 0x00000000 Partition Start: 0x000075D0 Partition Attr: 0x00000020 Partition Checksum Offset: 0x00000000 Section Count: 0x00000001 Checksum: 0xFFE7AF06 Bitstream In FsblHookBeforeBitstreamDload function PCAP:StatusReg = 0x40000A30 PCAP:device ready PCAP:Clear done Level Shifter Value = 0xA Devcfg Status register = 0x40000A30 PCAP:Fabric is Initialized done PCAP register dump: PCAP CTRL 0xF8007000: 0x4C00E07F PCAP LOCK 0xF8007004: 0x0000001A PCAP CONFIG 0xF8007008: 0x00000508 PCAP ISR 0xF800700C: 0x0802000B PCAP IMR 0xF8007010: 0xFFFFFFFF PCAP STATUS 0xF8007014: 0x50000F30 PCAP DMA SRC ADDR 0xF8007018: 0x00100001 PCAP DMA DEST ADDR 0xF800701C: 0xFFFFFFFF PCAP DMA SRC LEN 0xF8007020: 0x0007F2E8 PCAP DMA DEST LEN 0xF8007024: 0x0007F2E8 PCAP ROM SHADOW CTRL 0xF8007028: 0xFFFFFFFF PCAP MBOOT 0xF800702C: 0x0000C000 PCAP SW ID 0xF8007030: 0x00000000 PCAP UNLOCK 0xF8007034: 0x757BDF0D PCAP MCTRL 0xF8007080: 0x30800100 DMA Done ! FPGA Done ! In FsblHookAfterBitstreamDload function Partition Number: 2 Header Dump Image Word Len: 0x0001475C Data Word Len: 0x0001475C Partition Word Len:0x0001475C Load Addr: 0x04000000 Exec Addr: 0x04000000 Partition Start: 0x000868C0 Partition Attr: 0x00000010NOR | Minicom 2.7 | VT102 | 切断 | ttyUSB Partition Checksum Offset: 0x00000000 Section Count: 0x00000001 Checksum: 0xF7F3BEBA Application Handoff Address: 0x04000000 In FsblHookBeforeHandoff function Look Up I2C Configuration I2C Initialization Set I2C Clock Set Memory Read Address Get Mac Address MAC Addr: 00 1E C0 AC 85 3F Look Up Emac Configuration Emac Initialization Set Emac MAC Address Verify Emac MAC Address MAC Addr: 00 1E C0 AC 85 3F SUCCESSFUL_HANDOFF FSBL Status = 0x1 U-Boot 2014.01-00005-gc29bed9 (Dec 31 2014 - 18:29:40) I2C: ready Memory: ECC disabled DRAM: 512 MiB MMC: zynq_sdhci: 0 SF: Detected S25FL128S_64K with page size 256 Bytes, erase size 64 KiB, total 16 MiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: Gem.e000b000 Hit any key to stop autoboot: 0 Device: zynq_sdhci Manufacturer ID: 2 OEM: 544d Name: SA08G Tran Speed: 50000000 Rd Block Len: 512 SD version 3.0 High Capacity: Yes Capacity: 7.4 GiB Bus Width: 4-bit reading uEnv.txt 116 bytes read in 8 ms (13.7 KiB/s) Loaded environment from uEnv.txt Importing environment from SD ... Running uenvcmd ... reading uImage 3540320 bytes read in 323 ms (10.5 MiB/s) reading devicetree.dtb 7406 bytes read in 17 ms (424.8 KiB/s) ## Booting kernel from Legacy Image at 03000000 ... Image Name: Linux-3.14.0-xilinx-13567-g906a2 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3540256 Bytes = 3.4 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 1fb2a000, end 1fb2eced ... OK Starting kernel ... Uncompressing Linux... done, booting the kernel. [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 3.14.0-xilinx-13567-g906a2c9 (ippei@T440s) (gcc version 4.8.3 20140320 (5 [ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] Machine model: Xilinx Zynq [ 0.000000] bootconsole [earlycon0] enabled [ 0.000000] cma: CMA: reserved 128 MiB at 17800000 [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] PERCPU: Embedded 8 pages/cpu @dfb9e000 s10752 r8192 d13824 u32768 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 [ 0.000000] Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfsty1 [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Memory: 376000K/524288K available (4765K kernel code, 308K rwdata, 1696K rodata, 198K ) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) [ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB) [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB) [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB) [ 0.000000] .text : 0xc0008000 - 0xc06578c4 (6463 kB) [ 0.000000] .init : 0xc0658000 - 0xc0689a00 ( 199 kB) [ 0.000000] .data : 0xc068a000 - 0xc06d71f8 ( 309 kB) [ 0.000000] .bss : 0xc06d7204 - 0xc0c0b908 (5330 kB) [ 0.000000] Preemptible hierarchical RCU implementation. [ 0.000000] RCU lockdep checking is enabled. [ 0.000000] Dump stacks of tasks blocking RCU-preempt GP. [ 0.000000] RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2. [ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 [ 0.000000] NR_IRQS:16 nr_irqs:16 16 [ 0.000000] ps7-slcr mapped to e0802000 [ 0.000000] zynq_clock_init: clkc starts at e0802100 [ 0.000000] Zynq clock init [ 0.000017] sched_clock: 64 bits at 325MHz, resolution 3ns, wraps every 3383112499200ns [ 0.008509] ps7-ttc #0 at e0804000, irq=43 [ 0.013560] Console: colour dummy device 80x30 [ 0.017902] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar [ 0.025979] ... MAX_LOCKDEP_SUBCLASSES: 8 [ 0.029996] ... MAX_LOCK_DEPTH: 48 [ 0.034170] ... MAX_LOCKDEP_KEYS: 8191 [ 0.038589] ... CLASSHASH_SIZE: 4096 [ 0.042942] ... MAX_LOCKDEP_ENTRIES: 16384 [ 0.047413] ... MAX_LOCKDEP_CHAINS: 32768 [ 0.051916] ... CHAINHASH_SIZE: 16384 [ 0.056359] memory used by lock dependency info: 3695 kB [ 0.061805] per task-struct memory footprint: 1152 bytes [ 0.067251] Calibrating delay loop... 1292.69 BogoMIPS (lpj=6463488) [ 0.110963] pid_max: default: 32768 minimum: 301 [ 0.116258] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.122802] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.137276] CPU: Testing write buffer coherency: ok [ 0.143560] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.149204] Setting up static identity map for 0x485d00 - 0x485d58 [ 0.155576] L310 cache controller enabled [ 0.159533] l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x72760000, Cache size: 512 kB [ 0.240357] CPU1: Booted secondary processor [ 0.328292] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.329313] Brought up 2 CPUs [ 0.342176] SMP: Total of 2 processors activated. [ 0.346877] CPU: All CPU(s) started in SVC mode. [ 0.354991] devtmpfs: initialized [ 0.365735] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4 [ 0.380056] regulator-dummy: no parameters [ 0.393071] NET: Registered protocol family 16 [ 0.401906] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.415545] cpuidle: using governor ladder [ 0.419532] cpuidle: using governor menu [ 0.446601] syscon f8000000.ps7-slcr: regmap [mem 0xf8000000-0xf8000fff] registered [ 0.458474] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers. [ 0.466650] hw-breakpoint: maximum watchpoint size is 4 bytes. [ 0.472832] zynq-ocm f800c000.ps7-ocmc: ZYNQ OCM pool: 256 KiB @ 0xe0880000 [ 0.536847] bio: create slab <bio-0> at 0 [ 0.545446] SCSI subsystem initialized [ 0.551703] usbcore: registered new interface driver usbfs [ 0.557513] usbcore: registered new interface driver hub [ 0.564690] usbcore: registered new device driver usb [ 0.571221] media: Linux media interface: v0.10 [ 0.576046] Linux video capture interface: v2.00 [ 0.581273] pps_core: LinuxPPS API ver. 1 registered [ 0.586110] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.i> [ 0.595724] PTP clock support registered [ 0.600650] EDAC MC: Ver: 3.0.0 [ 0.615887] DMA-API: preallocated 4096 debug entries [ 0.620830] DMA-API: debugging enabled by kernel config [ 0.626525] Switched to clocksource arm_global_timer [ 0.689909] NET: Registered protocol family 2 [ 0.696979] TCP established hash table entries: 4096 (order: 2, 16384 bytes) [ 0.704064] TCP bind hash table entries: 4096 (order: 5, 147456 bytes) [ 0.712000] TCP: Hash tables configured (established 4096 bind 4096) [ 0.718486] TCP: reno registered [ 0.721620] UDP hash table entries: 256 (order: 2, 20480 bytes) [ 0.727852] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes) [ 0.735376] NET: Registered protocol family 1 [ 0.741260] RPC: Registered named UNIX socket transport module. [ 0.747201] RPC: Registered udp transport module. [ 0.751782] RPC: Registered tcp transport module. [ 0.756586] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.764310] hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available [ 0.778131] futex hash table entries: 512 (order: 3, 32768 bytes) [ 0.791980] jffs2: version 2.2. (NAND) (SUMMARY) �© 2001-2006 Red Hat, Inc. [ 0.799519] msgmni has been set to 990 [ 0.804753] io scheduler noop registered [ 0.808715] io scheduler deadline registered [ 0.812964] io scheduler cfq registered (default) [ 0.835484] dma-pl330 f8003000.ps7-dma: Loaded driver for PL330 DMAC-2364208 [ 0.842529] dma-pl330 f8003000.ps7-dma: DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16 [ 0.853603] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 82, base_baud = 3125000) is a xuartps [ 0.863020] console [ttyPS0] enabled [ 0.863020] console [ttyPS0] enabled [ 0.870138] bootconsole [earlycon0] disabled [ 0.870138] bootconsole [earlycon0] disabled [ 0.881251] xdevcfg f8007000.ps7-dev-cfg: ioremap 0xf8007000 to e0866000 [ 0.922721] brd: module loaded [ 0.945617] loop: module loaded [ 0.961573] m25p80 spi0.0: found s25fl128s1, expected n25q128 [ 0.967641] m25p80 spi0.0: s25fl128s1 (16384 Kbytes) [ 0.972666] 4 ofpart partitions found on MTD device spi0.0 [ 0.978133] Creating 4 MTD partitions on "spi0.0": [ 0.982851] 0x000000000000-0x000000400000 : "qspi-fsbl-uboot" [ 0.996917] 0x000000400000-0x000000900000 : "qspi-linux" [ 1.006960] 0x000000900000-0x000000920000 : "qspi-device-tree" [ 1.017477] 0x000000920000-0x000001000000 : "qspi-user" [ 1.036702] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k [ 1.042454] e1000e: Copyright(c) 1999 - 2013 Intel Corporation. [ 1.054217] libphy: XEMACPS mii bus: probed [ 1.060617] xemacps e000b000.ps7-ethernet: pdev->id -1, baseaddr 0xe000b000, irq 54 [ 1.071135] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 1.078209] ehci-pci: EHCI PCI platform driver [ 1.085837] zynq-dr e0002000.ps7-usb: Unable to init USB phy, missing? [ 1.093280] usbcore: registered new interface driver usb-storage [ 1.102213] mousedev: PS/2 mouse device common for all mice [ 1.109850] i2c /dev entries driver [ 1.122300] zynq-edac f8006000.ps7-ddrc: ecc not enabled [ 1.128575] cpufreq_cpu0: failed to get cpu0 regulator: -19 [ 1.137064] Xilinx Zynq CpuIdle Driver started [ 1.143263] sdhci: Secure Digital Host Controller Interface driver [ 1.149590] sdhci: Copyright(c) Pierre Ossman [ 1.153870] sdhci-pltfm: SDHCI platform and OF driver helper [ 1.161091] mmc0: no vqmmc regulator found [ 1.165120] mmc0: no vmmc regulator found [ 1.206535] mmc0: SDHCI controller on e0100000.ps7-sdio [e0100000.ps7-sdio] using ADMA [ 1.222939] usbcore: registered new interface driver usbhid [ 1.228529] usbhid: USB HID core driver [ 1.233866] TCP: cubic registered [ 1.237222] NET: Registered protocol family 17 [ 1.242012] Registering SWP/SWPB emulation handler [ 1.249672] regulator-dummy: disabling [ 1.254096] drivers/rtc/hctosys.c: unable to open rtc device (rtc0) [ 1.257596] mmc0: new high speed SDHC card at address 1234 [ 1.260170] mmcblk0: mmc0:1234 SA08G 7.42 GiB [ 1.265861] mmcblk0: p1 p2 [ 1.328726] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) [ 1.336930] VFS: Mounted root (ext4 filesystem) on device 179:2. [ 1.354208] devtmpfs: mounted [ 1.357486] Freeing unused kernel memory: 196K (c0658000 - c0689000) �+HH��1.874740] init: ureadahead main process (550) terminated with status 5 Last login: Thu Jan 1 00:00:07 UTC 1970 on tty1 Welcome to Linaro 12.11 (GNU/Linux 3.14.0-xilinx-13567-g906a2c9 armv7l) * Documentation: https://wiki.linaro.org/ root@linaro-nano:~# ^C