Chinaunix首页 | 论坛 | 博客
  • 博客访问: 686004
  • 博文数量: 152
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1793
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-12 12:26
个人简介

相信自己,只有不想做的,没有做不到的。

文章分类

全部博文(152)

文章存档

2021年(1)

2015年(2)

2014年(74)

2013年(75)

分类: LINUX

2014-04-23 13:58:27

1 SPI闪存  配置

参考文档:官方文档


1.1通读官方文档

把官方文档读几遍,熟悉官网上的运行Linux 的启动流程,官网上只是介绍了制作可启动的Linux的图像QSPI的操作步骤没有用到fpga bitstream ,这里我们要把bitstream 加入到生成的qspi_image.bin 中,启动linux 操作系统,运行应用程序。

官网下载参考PDF:ug873-的的Zynq-ctt.pdf

 

 

1.2生成qspi_image.bin

使用SDK中赛灵思工具--->创建的的Zynq启动映像

 

点击创建??图像  会生成的的u-boot.bin U-boot.mcs bootimage.bif

这里把的的u-boot.bin 修改为qspi_image.bin。

这里注意的什么。文件个结果排列顺序及偏移。

这里的偏移量qspi_image.bin 的偏移地址,当通过JTAG 下载到SPI闪存后,这个qspi_image.bin SPI闪光地址为0xFCC00000 ramdisk8M.image.gz SPI闪存地址为0xFCC20000

 

 

 

 

 

 

 

打开的uboot的源码目录下包含/ CONFIGS / zynq_zed.h

“qspiboot=echo Copying Linux from QSPI flash to RAM...; \

                CP 0xFC700000 0x8000 $ {kernel_size}; \

                CP 0xFCC00000 0x1000000 0x8000; \

                echo Copying ramdisk...; \

                CP 0xFCC20000 0x800000 $ {ramdisk_size}; \

                go 0x8000 \ 0“\

 

驱动开机会把SPI闪存zImage等( 0xFC700000),devicetree.dtb, 0xFCC00000),radisk8M.image.gz(0xFCC20000)拷贝到RAM 中,在去为0x8000  启动内核。

注意生成qspimage.bin 要与引导搬移的偏移量要对应。


 

 

 

 

1.3下载qspi_image.bin

首先把zedboard 启动方式的跳线J7 - J11 全部接地上电。

这里使用到的工具为XMD控制台

打开SDK 赛灵思工具---> XMD控制台

 

会在SDK中的右边出现一栏:

 

红色部分是打印信息的输出窗口。

蓝色部分是命令行窗口。

xmd% connect arm hw / / 连接硬件 
xmd% source ps7_init.tcl / / 初始化
 xmd% ps7_init             / / 下载qspi_image.bin RAM 中。
 xmd% dow -data qspi_image.bin 0x08000000 / / 下载的U-boot.elf RAM中 
xmd% dow u-boot.elf / / 启动的uboot的 
xmd% con



 

 

 

 

 

 

 

 

 

 

启动开机

使用启动的命令把0x8000000 中的qspi_image.bin  搬移到0 地址,大小为到到0x00FFFFFF

pele-boot> sf probe 0 0 0
pele-boot> sf erase 0 0x01000000
pele-boot> sf write 0x08000000 0 0x00FFFFFF


这样就把qspi_image.bin 烧写到SPI闪存中了。

 

1.4 SPI闪存启动的Linux的系统

在断电,把zedboard 的启动方式的跳线的J10 3.3V ,即SPI 启动。

SPI 启动信息如下:

从QSPI闪光的Linux的拷贝到RAM中...

复制RAMDISK ...

##启动应用程序为0x00008000 ...

解压缩的Linux的...完成,启动内核。

[0.000000]启动的Linux上的物理CPU 0

[0.000000] Linux下的版本3.6.0-Digilent公司的-13.01(根@郭-VM)(4.6.1的gcc版本(的的Sourcery为Codebench完成精简版2011.09-50))#8 SMP PREEMPT周二4月15日15: 26:05 CST 2014

[0.000000] CPU:用于ARMv7的处理器[413fc090]修订0(ARMv7体系的),CR = 18c5387d

[0.000000] CPU:PIPT / VIPT nonaliasing数据缓存,VIPT走样指令缓存

[0.000000]机:赛灵思的的Zynq平台,型号:赛灵思的的Zynq ZED

[0.000000]内存政策:ECC禁用,数据缓存writealloc

[0.000000] PERCPU:嵌入式7页/ CPU @ c1408000 s6976 r8192 d13504 u32768

[0.000000]内置1 zonelists中区秩序,调动分组上。总页数:130048

[0.000000]内核命令行:控制台= ttyPS0,115200根=的的/ dev / ram的的RW的的initrd =从从0x800000,8M的的init = / init的的earlyprintk rootwait devtmpfs.mount = 1

[0.000000] PID哈希表项:2048(顺序:1,8192字节)

[0.000000]的dentry的缓存哈希表项:65536(顺序:6,262144字节)

[0.000000]索引节点高速缓存哈希表项:32768(顺序为:5,131072字节)

[0.000000]内存:512MB = 512MB总

[0.000000]内存:506296k/506296k可用,17992k保留,0K HIGHMEM

[0.000000]虚拟内核内存布局:

[0.000000]载体:为0xFFFF0000地址 - 0xffff1000(4 KB)

[0.000000] fixmap:0xfff00000 - 0xfffe0000(896 KB)

[0.000000] vmalloc的的:0xe0800000 - 0xfd000000(456 MB)

[0.000000] LOWMEM:为为0xc0000000 - 0xe0000000(512 MB)

[0.000000] pkmap:0xbfe00000 - 为为0xc0000000(2 MB)

[0.000000]模块:0xbf000000 - 0xbfe00000(14 MB)

[0.000000]文字:0xc0008000的的 - 0xc0499408(4678 KB)

[0.000000] INIT:0xc049a000 - 0xc04bfb40(151 KB)

[0.000000]数据:0xc04c0000 - 0xc04f9fa0(232 KB)

[0.000000] BSS:0xc04f9fc4 - 0xc05108f8(91 KB)

[0.000000]抢占层次RCU实现。

[0.000000]转储堆栈任务阻断RCU-抢占大奖赛。

[0.000000] RCU限制的CPU从NR_CPUS = 4?nr_cpu_ids = 2。

[0.000000] NR_IRQS:512

[0.000000]的的Zynq时钟初始化

[0.000000] XLNX,PS7-TTC-1.00.a#0在0xe0800000,IRQ = 43

[0.000000] sched_clock:32位在100赫兹,分辨率10000000ns,每包4294967286ms

[0.000000]控制台:颜色哑设备80x30

[0.090000]校准延迟循环... 1332.01 bogoMIPS的的(LPJ = 6660096)

[0.090000] PID_MAX:默认值:32768最低:301

[0.090000]摩缓存哈希表中的条目:512

[0.090000] CPU:测试写入缓冲区的一致性:确定

[0.090000] CPU0:螺纹-1,CPU 0,插槽0,mpidr 80000000

[0.090000]汉王perfevents:用的ARMv7体系的的Cortex-A9 PMU驱动器,7计数器可启用

[0.090000]设置静态身份映射0x346e08 - 0x346e3c

[0.090000]启用L310高速缓存控制器

[0.090000] l2x0:8路,的的cache_id 0x410000c8,AUX_CTRL 0x72360000,缓存大小:524288乙

[0.130000]地图SLCR寄存器

[0.130000] CPU1:引导辅助处理器

[0.220000] CPU1:螺纹-1,CPU 1,插槽0,mpidr 80000001

[0.220000]带来了2个CPU

[0.220000] SMP:共有2个处理器激活(2664.03 bogoMIPS的的)。

[0.220000] devtmpfs:初始化

[0.220000]网:注册协议族16

[0.220000] DMA:预分配256 KB增入池原子相干分配

[0.230000]注册平台设备'PL330'ID 0

[0.230000]注册平台设备的手臂,PMU'ID 0

[0.230000]注册平台设备“的的Zynq-DVFS'ID 0

[0.230000] 

[0.230000]###############################################

[0.230000]##

[0.230000]#板ZED INIT#

[0.230000]##

[0.230000]###############################################

[0.230000] 

[0.230000] HW-断点:找到5(+1保留)断点和1个观察点寄存器。

[0.230000] HW-断点:最大观察点大小为4个字节。

[0.250000] xslcr xslcr.0:在0xF8000000映射到0xF8000000

[0.260000]生物:打造平板 0

[0.260000] SCSI子系统初始化

[0.270000] usbcore:注册新接口驱动程序USBFS

[0.270000] usbcore:注册新接口驱动程序枢纽

[0.270000] usbcore:注册新的设备驱动程序的USB

[0.270000]高级的Linux声音架构驱动程序版本1.0.25。

[0.270000] cfg80211:调用档案室以更新全球监管领域

[0.270000]切换至clocksource xttcpss_timer1

[0.280000]网:注册协议族2

[0.280000]建立的TCP哈希表项:16384(顺序为:5,131072字节)

[0.280000] TCP绑定的哈希表项:16384(顺序为:5,131072字节)

[0.280000] TCP:配置哈希表(设立16384绑定16384)

[0.280000] TCP:雷诺注册

[0.280000] UDP的哈希表项:256(顺序:1,8192字节)

[0.280000] UDP的精简版的哈希表项:256(顺序:1,8192字节)

[0.280000]网:注册协议族1

[0.280000]试图解开根文件系统的形象的initramfs中...

[0.280000]根文件系统的形象是不是initramfs中的(无CPIO的魔法); 看起来像一个initrd的

[0.320000]释放的initrd的内存:8192K

[0.320000] PL330开发的0探头成功

[0.320000]参数msgmni时已被设置为1004

[0.320000] IO调度NOOP注册

[0.320000]注册的IO调度的最后期限

[0.320000] IO调度CFQ注册(默认)

[0.320000] e0001000.serial:ttyPS0在MMIO 0xe0001000(IRQ = 82)是xuartps

[0.810000]控制台[ttyPS0]启用

[0.820000] xdevcfg f8007000.ps7-DEV-CFG:ioremap的的f8007000到e084e000大小为1000

[0.820000] [DRM]初始化DRM 1.1.0 20060810

[0.840000] BRD:模块加载

[0.850000]循环:模块加载

[0.850000] xqspips e000d000.ps7-QSPI:大师是unqueued,这已被弃用

[0.860000] xqspips e000d000.ps7-QSPI:在0xE000D000映射到0xE0850000,IRQ = 51

[0.870000] libphy:XEMACPS MII总线:探测

[0.870000] xemacps e000b000.ps7以太网:PDEV-> ID -1,baseaddr 0xe000b000,IRQ 54

[0.880000] ehci_hcd:USB 2.0'增强'主机控制器(EHCI)驱动程序

[0.890000] usb_hcd_xusbps_probe:无OTG分配!

[0.890000] usb_hcd_xusbps_probe:OTG现在分配!

[0.900000] xusbps-EHCI xusbps-ehci.0:赛灵思PS的USB EHCI主控制器

[0.910000] xusbps-EHCI xusbps-ehci.0:新的USB总线的登记,分配总线号1

[0.940000] xusbps-EHCI xusbps-ehci.0:IRQ 53,IO纪念品00000000

[0.960000] xusbps-EHCI xusbps-ehci.0:USB 2.0开始,EHCI 1.00

[0.960000] USB USB1:发现新的USB设备,idVendor = 1d6b,idProduct = 0002

[0.970000] USB USB1:新的USB设备的字符串:MFR = 3,产品= 2,序列号= 1

[0.980000] USB USB1:产品:赛灵思PS的USB EHCI主控制器

[0.980000] USB USB1:制造商:Linux下的3.6.0-Digilent公司的-13.01 ehci_hcd

[0.990000] USB USB1:序列号:xusbps-ehci.0

[0.990000]枢纽1-0:1.0:USB集线器发现

[1.000000]枢纽1-0:1.0:检测1口

[1.000000]初始化USB大容量存储驱动程序...

[1.010000] usbcore:注册新接口驱动程序的USB存储

[1.010000] USB大容量存储支持注册。

[1.020000] MOUSEDEV:PS / 2鼠标适用于所有鼠标设备

[1.020000] sdhci:安全数字主机控制器接口驱动程序

[1.030000] sdhci:版权所有(C)皮埃尔Ossman

[1.030000] sdhci-pltfm:SDHCI平台和驱动帮手

[1.080000] MMC0:SDHCI上e0100000.ps7-SDIO [e0100000.ps7-SDIO]使用ADMA控制器

[1.090000] usbcore:注册新接口驱动程序USBHID

[1.100000] USBHID:USB HID核心驱动力

[1.110000] TCP:立方注册

[1.120000]网:注册协议族17

[1.120000] lib80211:为IEEE 802.11通用的驱动程序例程

[1.130000] VFP支持V0.3:实现者41架构3部分30变9转4

[1.130000]注册SWP / SWPB仿真处理

[1.140000]注册taskstats第1版

[1.140000]司机/ RTC / hctosys.c:无法打开RTC设备(rtc0)

[1.150000] ALSA的设备列表:

[1.150000]没有声卡发现。

[1.160000] RAMDISK:在块0找到的gzip的图像

[1.240000] MMC0:新型高速SDHC存储卡在地址AAAA

[1.250000] mmcblk0:MMC0:AAAA SU04G 3.69吉布 

[1.270000] mmcblk0:P1

[1.320000] USB 1-1:新的高速USB设备数量2使用xusbps-EHCI

[1.490000] USB 1-1:发现新的USB设备,idVendor = 0bda,idProduct = 8194

[1.490000] USB 1-1:新的USB设备的字符串:MFR = 1,商品= 2,序列号= 3

[1.500000] USB 1-1:产品:802.11n标准的网卡

[1.510000] USB 1-1:制造商:瑞昱

[1.510000] EXT4-FS(RAM0):不能因功能不兼容挂载为ext3的

[1.520000] USB 1-1:序列号:00e04c000001

[1.550000] EXT4-FS(RAM0):安装使用的ext4的子系统的ext2文件系统

[1.550000] EXT4-FS(RAM0):挂载的文件系统没有网上日记说明Select采用:(空)

[1.560000] VFS:安装根(EXT2文件系统)上的装置1:0。

[1.570000] devtmpfs:安装

[1.570000]释放初始化内存:148K

请按回车键来激活此控制台。 

 

 

这里即SPI闪存启动的linux的平台了。

阅读(10939) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~