搜索
bottom↓
回复: 76

求助,做了个ZYNQ板子,2片 DDR3 采用FLYBY 走线,芯片发热死...

[复制链接]

出0入0汤圆

发表于 2017-12-13 23:17:02 | 显示全部楼层 |阅读模式
本帖最后由 孤独的猫 于 2017-12-13 23:18 编辑

大家好,以前做了个ZYNQ板子,2片 DDR3 采用FLYBY 走线,裸奔跑代码,没啥问题,官方的DDR 测试 也OK ,但运行UBOOT启动后,偶尔可以启动内核 然后ZYNQ 7010 芯片死机,会有明显发热!
过一会在上电,还是可以打印UBOOT 但最后结果也是一样的,芯片应该没有坏。
DDR3 地址线 控制线端接40欧姆电阻,到VTT电压  使用TPS51206 产生VTT电压。
现在怀疑,因为用的FLY ,貌似还要软件 调整时序 ,还没有调整过,导致DDR3跑飞了?然后VTT电压倒灌,才导致ZYNQ芯片发热?请大神指点下,谢谢了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入442汤圆

发表于 2017-12-14 00:17:55 来自手机 | 显示全部楼层
发热是很正常的,但是过于烫手就是芯片坏了。你确定你焊接工艺良好?我一个月前遇到过一批5个fx3全坏,半个月前遇到一批两片lx16全部不良的,都是焊接问题。

出0入0汤圆

 楼主| 发表于 2017-12-14 08:40:32 | 显示全部楼层
wye11083 发表于 2017-12-14 00:17
发热是很正常的,但是过于烫手就是芯片坏了。你确定你焊接工艺良好?我一个月前遇到过一批5个fx3全坏,半个 ...

焊接应该不会有问题,2个板子,都这样的 。

出100入101汤圆

发表于 2017-12-14 08:59:45 | 显示全部楼层
分析下裸机和UBOOT的初始化的不同

出0入442汤圆

发表于 2017-12-14 09:00:41 来自手机 | 显示全部楼层
孤独的猫 发表于 2017-12-14 08:40
焊接应该不会有问题,2个板子,都这样的 。

那你查查主频吧,是不是换晶振了,主频太高?z7系列比较渣,超过700MHz就会不太稳,如果你把晶振从官方的33M换高了,务必重新定制fsbl

出0入22汤圆

发表于 2017-12-14 09:10:28 来自手机 | 显示全部楼层
你用memory test例程看看能不能跑得过。我前面也是读写偶尔异常,mt通过,后来分析,异常原因在软件代码。

出0入55汤圆

发表于 2017-12-14 09:14:04 | 显示全部楼层
记得以前用过的时候也有发热的现象,原因是没用的IO设置成了输出,所以跑UBOOT时最好先把所有没用的IO设置为高阻输入,这样就不会发热

出0入0汤圆

 楼主| 发表于 2017-12-14 10:40:30 | 显示全部楼层
wye11083 发表于 2017-12-14 09:00
那你查查主频吧,是不是换晶振了,主频太高?z7系列比较渣,超过700MHz就会不太稳,如果你把晶振从官方的 ...

哦,我用的50MHZ的晶体,参考的ZYBO的配置,不过ZYBO的DDR3 是T走线,这点有区别。。回家在试试。

出0入0汤圆

 楼主| 发表于 2017-12-14 10:41:18 | 显示全部楼层
本帖最后由 孤独的猫 于 2017-12-14 10:44 编辑
zxq6 发表于 2017-12-14 09:10
你用memory test例程看看能不能跑得过。我前面也是读写偶尔异常,mt通过,后来分析,异常原因在软件代码。 ...


哦,官方例子有个DDR 测试的例子,输入输出 0xAA55AA55AA55 好像是这个,跑过,串口打印是测试OK,跑uboot 测试,运行一会就死了,同样的UBOOT和内核在ZYBO 都OK, 搞的一脸懵逼~没信心了,不知道哪里出了问题,板子都被拆了很多,,最近恢复起来在试试。。

出0入0汤圆

 楼主| 发表于 2017-12-14 10:43:18 | 显示全部楼层
jssd 发表于 2017-12-14 09:14
记得以前用过的时候也有发热的现象,原因是没用的IO设置成了输出,所以跑UBOOT时最好先把所有没用的IO设置 ...

好的,我试试。

出0入442汤圆

发表于 2017-12-14 11:11:14 来自手机 | 显示全部楼层
孤独的猫 发表于 2017-12-14 10:40
哦,我用的50MHZ的晶体,参考的ZYBO的配置,不过ZYBO的DDR3 是T走线,这点有区别。。回家在试试。 ...

那就是跑不上去喽。官方记得是667,你换50M晶体直接飙到1G,跑不上去是很正常的。你要想跑上去,可以试着把psint加到1.2v,不过发热不要怪我。

出0入0汤圆

 楼主| 发表于 2017-12-14 11:34:37 | 显示全部楼层
wye11083 发表于 2017-12-14 11:11
那就是跑不上去喽。官方记得是667,你换50M晶体直接飙到1G,跑不上去是很正常的。你要想跑上去,可以试着 ...

谢谢了,我回去试试~

出0入0汤圆

 楼主| 发表于 2017-12-14 12:00:31 | 显示全部楼层
wye11083 发表于 2017-12-14 11:11
那就是跑不上去喽。官方记得是667,你换50M晶体直接飙到1G,跑不上去是很正常的。你要想跑上去,可以试着 ...


看了下默认配置,应该不会超频吧
晚上在看下DDR的配置。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-12-14 21:37:04 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-12-14 21:39:42 | 显示全部楼层
wye11083 发表于 2017-12-14 11:11
那就是跑不上去喽。官方记得是667,你换50M晶体直接飙到1G,跑不上去是很正常的。你要想跑上去,可以试着 ...

参考网上的例子,这样的配置应该没问题吧,DDR3也开启了Write leveing ,板子都拆了,放了好久了,过几天找元件在恢复..

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-12-14 21:43:12 | 显示全部楼层
zxq6 发表于 2017-12-14 09:10
你用memory test例程看看能不能跑得过。我前面也是读写偶尔异常,mt通过,后来分析,异常原因在软件代码。 ...


这个是可以通过的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入442汤圆

发表于 2017-12-14 21:52:46 | 显示全部楼层
看你供电什么的都没问题,配置也都没问题,你要是能测一下DDR频率最好,就知道你的fsbl有没有正确烧进去了。最简单的是换个33M晶振试一下,如果你的配置是对的,那么板子是起不来的(DDR3频率不够)。如果你的配置没生效,则板子可以正常起来。

出0入0汤圆

 楼主| 发表于 2017-12-14 21:57:32 | 显示全部楼层
wye11083 发表于 2017-12-14 21:52
看你供电什么的都没问题,配置也都没问题,你要是能测一下DDR频率最好,就知道你的fsbl有没有正确烧进去了 ...

好的,周末焊接好试试。

出0入22汤圆

发表于 2017-12-14 22:15:33 来自手机 | 显示全部楼层
核心板是几层?

出0入0汤圆

 楼主| 发表于 2017-12-14 23:27:00 | 显示全部楼层
zxq6 发表于 2017-12-14 22:15
核心板是几层?

10层的 ,哎。。。

出0入0汤圆

发表于 2017-12-15 08:12:46 | 显示全部楼层
本帖最后由 dr2001 于 2017-12-15 08:21 编辑

Zynq芯片本身热正常,太热不正常。测电流/功率看看。

Zynq的DDR3链路训练是自动的,不用人工介入;默认CLK组要比数据组长。
有特殊情况,算好延迟填写好有利于链路训练收敛(或加速收敛)。寄存器可以看链路训练结果,如果链路特殊的话,请查看验证。

UBoot用FSBL配置好的环境启动;Kernel有自己的DeviceTree配置,除DDR外,很多外设会重新配置。要确认DTS里的配置是否一致。
Boot的时候可以不启PL,直接测量电流看看。没开Freq Scaling的话,uBoot和Kernel电流差不多。

理论上33M/50M能直接起,留了MIO的Boot Mode的话,可以关PLL,确保BootROM启动无误。
根据TRM,开PLL的话,应该是26倍频,4分频,33M/50M下,ARM Core都在正常范围。
更高频率/DDR初始化都是FSBL的,BootROM不管这些,Vivado里写的对,SDK编译FSBL没选错就没问题。

最后,Memory Test工程要自己改,本身的工程只测试很小的内存范围。压力不是太大。

出0入0汤圆

 楼主| 发表于 2017-12-15 08:50:17 | 显示全部楼层
dr2001 发表于 2017-12-15 08:12
Zynq芯片本身热正常,太热不正常。测电流/功率看看。

Zynq的DDR3链路训练是自动的,不用人工介入;默认CLK ...

好的,谢谢指点了,我去试试。

出0入22汤圆

发表于 2017-12-15 09:06:14 来自手机 | 显示全部楼层
dr2001 发表于 2017-12-15 08:12
Zynq芯片本身热正常,太热不正常。测电流/功率看看。

Zynq的DDR3链路训练是自动的,不用人工介入;默认CLK ...

请教一下,memtest要怎么改呢?我看其已经覆盖了512m的ddr3以及片上sram的。

出0入0汤圆

发表于 2017-12-15 09:22:56 | 显示全部楼层
zxq6 发表于 2017-12-15 09:06
请教一下,memtest要怎么改呢?我看其已经覆盖了512m的ddr3以及片上sram的。

SDK自己带的Memory Test印象中只测试DDR最开始的4K还是多少。自己看看代码就知道了,改调用测试函数的参数。
这个只是验证DDR被初始化了且局部读写正确;但不验证DDR整个地址范围都对。能说明正确/错误的问题,但没长期的读写压力。

DDR没Cache的读写,每次都要重新发命令且不是Burst的,读/写一次最少也要5-7个DDR时钟周期,只多不少。
放没超频的Zynq上,DDR3-1066对应最快也就每秒100M access往下,512M内存32bit变量读一遍都要1s朝上,时间对不对估一下就知道。



出0入0汤圆

发表于 2017-12-15 09:25:54 | 显示全部楼层
孤独的猫 发表于 2017-12-15 08:50
好的,谢谢指点了,我去试试。

先确保uBoot 100%能正确启动;
然后,用md/mw之类的内存操作命令行,能确认大范围的内存操作没问题。
然后,能正确Load serial flash到内存,TFTP文件,对比校验,通过。
如果没有异常发热,内存操作正常的话,说明基本配置大体没问题,再说起内核。

uBoot正常,内核不对,看内核配置了,特别是device tree。

出0入0汤圆

 楼主| 发表于 2017-12-15 09:45:22 | 显示全部楼层
dr2001 发表于 2017-12-15 09:25
先确保uBoot 100%能正确启动;
然后,用md/mw之类的内存操作命令行,能确认大范围的内存操作没问题。
然 ...

好的,上次遇到的情况,就是uboot下,运行一会后,串口就无反应了,芯片开始发热了。。

出0入0汤圆

发表于 2017-12-15 09:57:00 | 显示全部楼层
孤独的猫 发表于 2017-12-15 09:45
好的,上次遇到的情况,就是uboot下,运行一会后,串口就无反应了,芯片开始发热了。。 ...

不配PL的uBoot稳不住就只能查硬件了。比如电源,功耗,etc。

出0入0汤圆

 楼主| 发表于 2017-12-15 10:02:47 | 显示全部楼层
dr2001 发表于 2017-12-15 09:57
不配PL的uBoot稳不住就只能查硬件了。比如电源,功耗,etc。

好的 。

出0入0汤圆

 楼主| 发表于 2017-12-15 10:54:46 | 显示全部楼层
本帖最后由 孤独的猫 于 2017-12-15 11:33 编辑
dr2001 发表于 2017-12-15 09:57
不配PL的uBoot稳不住就只能查硬件了。比如电源,功耗,etc。


U-Boot 2016.07 (Apr 27 2017 - 19:32:51 +0800)

Model: Zynq ZYBO Development Board
Board: Xilinx Zynq
I2C:   ready
DRAM:  ECC disabled 512 MiB
MMC:   sdhci@e0100000: 0
SF: Detected W25Q128BV with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
Model: Zynq ZYBO Development Board
Board: Xilinx Zynq
Net:   ZYNQ GEM: e000b000, phyaddr 0, interface rgmii-id
PHY is not detected
GEM PHY init failed
No ethernet found.
Hit any key to stop autoboot:  0
Copying Linux from QSPI flash to RAM...
SF: Detected W25Q128BV with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x100000, size 0x500000
SF: 5242880 bytes @ 0x100000 Read: OK
device 0 offset 0x600000, size 0x20000
SF: 131072 bytes @ 0x600000 Read: OK
Copying ramdisk...
device 0 offset 0x620000, size 0x5e0000
SF: 6160384 bytes @ 0x620000 Read: OK
## Booting kernel from Legacy Image at 02080000 ...
   Image Name:   Linux-4.6.0-xilinx
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3842504 Bytes = 3.7 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 04000000 ...
   Image Name:   
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    5309954 Bytes = 5.1 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 02000000
   Booting using the fdt blob at 0x2000000
   Loading Kernel Image ... OK
   Loading Ramdisk to 1e5ff000, end 1eb0f602 ... OK
   Loading Device Tree to 1e5f9000, end 1e5fe345 ... OK

Starting kernel ...

Booting Linux on physical CPU 0x0
Linux version 4.6.0-xilinx (root@ppa2001-OptiPlex-3020M) (gcc version 4.9.2 (Sourcery CodeBench Lite 2015.05-17) ) #1 SMP PREEMPT Tue Apr 18 20:06:01 CST 2017
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine model: Zynq ZYBO Development Board
cma: Reserved 16 MiB at 0x1f000000
Memory policy: Data cache writealloc
percpu: Embedded 12 pages/cpu @debce000 s19776 r8192 d21184 u49152
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyPS0,115200 root=/dev/ram rw earlyprintk
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: 489340K/524288K available (5303K kernel code, 230K rwdata, 1844K rodata, 1024K init, 222K bss, 18564K 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 - 0xc07faff4   (8140 kB)
      .init : 0xc0800000 - 0xc0900000   (1024 kB)
      .data : 0xc0900000 - 0xc0939b60   ( 231 kB)
       .bss : 0xc0939b60 - 0xc09714e8   ( 223 kB)
Preemptible hierarchical RCU implementation.
        Build-time adjustment of leaf fanout to 32.
        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=2
NR_IRQS:16 nr_irqs:16 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 325MHz, resolution 3ns, wraps every 4398046511103ns
clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4af477f6aa, max_idle_ns: 440795207830 ns
Switching to timer-based delay loop, resolution 3ns
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 551318127 ns
timer #0 at e080a000, irq=17
Console: colour dummy device 80x30
Calibrating delay loop (skipped), value calculated using timer frequency.. 650.00 BogoMIPS (lpj=3250000)
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 - 0x100058
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
Brought up 2 CPUs
SMP: Total of 2 processors activated (1300.00 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
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 @ 0xe0880000
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
phy0 supply vcc not found, using dummy regulator
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
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.
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (no cpio magic); looks like an initrd
Freeing initrd memory: 5188K (de5ff000 - deb10000)
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
futex hash table entries: 512 (order: 3, 32768 bytes)
workingset: timestamp_bits=28 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)
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
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 143, base_baud = 3125000) is a xuartps
console [ttyPS0] enabled
xdevcfg f8007000.devcfg: ioremap 0xf8007000 to e086e000
[drm] Initialized drm 1.1.0 20060810
brd: module loaded
loop: module loaded
zynq-qspi e000d000.spi: couldn't determine configuration info about dual memories. defaulting to single memory
CAN device driver interface
gpiod_set_value: invalid GPIO
libphy: MACB_mii_bus: probed
macb e000b000.ethernet eth0: no PHY found
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
e0002000.usb supply vbus not found, using dummy regulator
ci_hdrc ci_hdrc.0: EHCI Host Controller
ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
mousedev: PS/2 mouse device common for all mice
i2c /dev entries driver
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 DMA
ledtrig-cpu: registered to indicate activity on CPUs
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
NET: Registered protocol family 10
sit: IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
can: controller area network core (rev 20120528 abi 9)
NET: Registered protocol family 29
can: raw protocol (rev 20120528)
can: broadcast manager protocol (rev 20120528 t)
can: netlink gateway (rev 20130117) max_hops=1
Registering SWP/SWPB emulation handler
hctosys: unable to open rtc device (rtc0)
ALSA device list:
  No soundcards found.
RAMDISK: gzip image found at block 0
EXT4-fs (ram0): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs warning (device ram0): ext4_update_dynamic_rev:746: updating to rev 1 because of new feature flag, running e2fsck is recommended
EXT4-fs (ram0): mounted filesystem without journal. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 1:0.
devtmpfs: mounted
Freeing unused kernel memory: 1024K (c0800000 - c0900000)
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
random: sshd urandom read with 0 bits of entropy available
rcS Complete
zynq>

恢复后,上电,启动OK,但串口输入没反应。。复位,重复4.5次后。。

U-Boot 2016.07 (Apr 27 2017 - 19:32:51 +0800)

Model: Zynq ZYBO Development Board
Board: Xilinx Zynq
I2C:   ready
DRAM:  ECC disabled 512 MiB
MMC:   sdhci@e0100000: 0
SF: Detected W25Q128BV with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
卡住 没反应了。。。

芯片慢慢发热,长时间按,有点烫手,。电流是5V 510ma  然后降低到 490ma  ,感觉好像比ZYBO电流大很多!正常应该多少MA?
我觉得是芯片慢慢发热,所以挂了。。

串口用的FT232R 因为ZYNQ的IO电平是1.8V 所有FT232R IO 也配置的1.8V电平。。看手册是可以的
到时候在换个串口试试先。

对了,我的DDR3 焊接的2个512MB的,应该是1GB ,uboot 只检测到512MB.也是个问题。。
系统从QSPIFLASH 启动,用JTAG烧些内核进去的时候,也的几分钟,都没什么问题,这样看,芯片电路,又好像没啥问题?

出0入0汤圆

 楼主| 发表于 2017-12-15 21:07:25 | 显示全部楼层
wye11083 发表于 2017-12-14 21:52
看你供电什么的都没问题,配置也都没问题,你要是能测一下DDR频率最好,就知道你的fsbl有没有正确烧进去了 ...


测试了DDR3 的时钟,带宽不够,有失真,不过频率看起来应该没啥问题 533MHZ左右
不过看了下UBOOT2016的源码,默认好像是33MHZ时钟,那我用50MHZ晶体,应该超频了?但为啥DDR3的时钟还是533MHZ? 只是内核超频了?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-12-15 21:09:11 | 显示全部楼层
dr2001 发表于 2017-12-15 09:57
不配PL的uBoot稳不住就只能查硬件了。比如电源,功耗,etc。

电流5V 500ma 测了DDR3的时钟是533MHZ ,但发现uboot配置的外部晶体默认应该是33M ,我用的50MHZ ?所以芯片内核超频了?但为啥DDR3的时钟又是对的?

出0入442汤圆

发表于 2017-12-15 21:23:16 来自手机 | 显示全部楼层
孤独的猫 发表于 2017-12-15 21:07
测试了DDR3 的时钟,带宽不够,有失真,不过频率看起来应该没啥问题 533MHZ左右
不过看了下UBOOT2016的 ...

533MHz显然是你没编译好fsbl。533*2=1066,很不幸地,你的板子要boom了。

出0入0汤圆

 楼主| 发表于 2017-12-15 22:20:39 | 显示全部楼层
本帖最后由 孤独的猫 于 2017-12-15 22:32 编辑
wye11083 发表于 2017-12-15 21:23
533MHz显然是你没编译好fsbl。533*2=1066,很不幸地,你的板子要boom了。


  测量的平均应该是525MHZ  这个不是正常的DDR3时钟吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入22汤圆

发表于 2017-12-15 22:24:18 来自手机 | 显示全部楼层
wye11083 发表于 2017-12-15 21:23
533MHz显然是你没编译好fsbl。533*2=1066,很不幸地,你的板子要boom了。

我测我正常的板子的ddr3,貌似时钟频率也是533M

出0入442汤圆

发表于 2017-12-15 22:30:39 来自手机 | 显示全部楼层
zxq6 发表于 2017-12-15 22:24
我测我正常的板子的ddr3,貌似时钟频率也是533M

z7能跑ddr3-1066?我记得最高800吧。再高了不稳。而且两个时钟是相关的!!!

看看他的设置,是666!明显超频了50!要是能跑稳,我直播吃板子!!!!

除非是我看错了,把533Mbps看成533MHz了。有大批量用z7的都跟我boss私下说过,-2的片子有相当一部分跑不稳标称频率(标准条件下,1V供电电压)。

出0入22汤圆

发表于 2017-12-15 22:39:47 来自手机 | 显示全部楼层
wye11083 发表于 2017-12-15 22:30
z7能跑ddr3-1066?我记得最高800吧。再高了不稳。而且两个时钟是相关的!!!

看看他的设置,是666!明 ...

那你这吃板子风险有点大啊,官方zedboard的设置就是cpu 667mhz, ddr 533mhz。

出0入442汤圆

发表于 2017-12-15 23:15:19 | 显示全部楼层
zxq6 发表于 2017-12-15 22:39
那你这吃板子风险有点大啊,官方zedboard的设置就是cpu 667mhz, ddr 533mhz。

好吧,我记错了,不直播了

按666/1066跑的话,那应该是没问题的。芯片过热的情况我没见过,难道是焊坏了?我最近就被两块不良的PCB给坑了一个多月。是对方焊板子时把板子吹爆了,时好时坏,然后把锅甩我这。关键是他们一批两块全是坏的,一个芯片坏和板坏(发热严重,工作过程中突然暴毙),另一个也是芯片坏(发热严重)。

LZ这样查一下:
(1)静态无程序时上电Z7发不发热?如果发热,换芯片,芯片烧毁;
(2)裸机程序可跑?正常吗?跑个算法看看稳定性。
(3)裸机跑时发不发热?
(4)检查一下PCB原理图电源和地有无接错。曾经我有块板也是发热严重,最后发现我把某根VCC原理图接到GND上了。割断之后正常了。

出0入0汤圆

发表于 2017-12-16 08:52:24 | 显示全部楼层
wye11083 发表于 2017-12-15 22:30
z7能跑ddr3-1066?我记得最高800吧。再高了不稳。而且两个时钟是相关的!!!

看看他的设置,是666!明 ...

Zynq7000系列底配标称是ARM 667,DDR3-1066。

我的7020在开发时,ARM Core跑1G,DDR3跑9-9-9参数的1600,-1,I的器件,没发现什么不稳定。

Xilinx采购的DDR PHY就是1600设计的(TRM);ARM Core最高就是1G的(倒装片-3器件)。


注意一点,-2器件ARM默认766,这个ARM分频不能2分频,要1分频,否则PLL超工作范围了。
而且,-1I的ARM部分最坏工况要1.5A朝上的电流,电源设计不足且解耦不足就容易挂。

出0入0汤圆

发表于 2017-12-16 09:19:37 | 显示全部楼层
孤独的猫 发表于 2017-12-15 21:09
电流5V 500ma 测了DDR3的时钟是533MHZ ,但发现uboot配置的外部晶体默认应该是33M ,我用的50MHZ ?所以芯 ...

1 频率配的没问题,Vivado有检查的,不合法就会红字报错,没报错就放心去走FSBL的流程。

2 我之前说过,Zynq启动后在Core 0运行内部BootROM,此时开不开PLL是芯片MIO配置引脚决定的;BootROM本身不配PLL。
PLL的修改和配置是加载FSBL干的事情。具体看TRM。
如果你Vivado配置没出错,FSBL生成没出错,uBoot能起来,说明大体上ARM Core和DDR的时钟和基本配置没问题。
继续纠结这个频率的方向是不对的。


所以,你考虑需要检查的是:
1 Vivado里内存参数那块,有什么配的不好的没。7-7-7跑1066是没问题的,但是DDR训练是不是完成了要看寄存器。

2 uBoot的板卡参数配对了没,新的uBoot-Xlnx是改DTS的,如果你不是完全照抄的开发板,这个必须改。
以前uBoot自己不修改配置,基本上配置完全依赖于FSBL配置好的环境;
2016还是2017之后的某个版本开始,uBoot开始基于DTS了,使用PinCtrl可以改MIO的IO功能的,没配对有后果。

3 同上,Kernel的config和device tree根据需要自己配。

先让uBoot能稳定长期运行吧;如果运行不动,写一个最简单的程序,用JTAG加载到ARM上运行,看什么变化。那个不初始化东西的。

出0入442汤圆

发表于 2017-12-16 09:34:24 | 显示全部楼层
本帖最后由 wye11083 于 2017-12-16 09:37 编辑
dr2001 发表于 2017-12-16 08:52
Zynq7000系列底配标称是ARM 667,DDR3-1066。

我的7020在开发时,ARM Core跑1G,DDR3跑9-9-9参数的1600 ...


(1)话说工具里只能2分频呢(主频),调到1还能工作?还是把PLL调到2G,然后2分频?
(2)DDR另外分频?
(3)参数应该是自己手动配FSBL了吧。要不然工具肯定是调不出来的。照你那样说,只要做好fly-by和等长,Z7的内存可以跑很高呢。
(4)还有,ARM跑1G要不要加点压?电流这块我肯定是按3+3A给的,毕竟PL跑起来功耗也不低。(TPS54620)

出0入0汤圆

发表于 2017-12-16 10:51:01 | 显示全部楼层
uboot的打印参数没什么看不到cpu的频率?

出0入0汤圆

 楼主| 发表于 2017-12-16 11:55:08 | 显示全部楼层
dr2001 发表于 2017-12-16 09:19
1 频率配的没问题,Vivado有检查的,不合法就会红字报错,没报错就放心去走FSBL的流程。

2 我之前说过, ...

谢谢了,我用的是2016.7的uboot 看来要修改uboot很多。我先JTAG调试 裸奔下试试。

出0入0汤圆

发表于 2017-12-16 13:39:22 | 显示全部楼层
wye11083 发表于 2017-12-16 09:34
(1)话说工具里只能2分频呢(主频),调到1还能工作?还是把PLL调到2G,然后2分频?
(2)DDR另外分频? ...

1、可以1分频,自己在高级里调;对于-1/-2的667/766,没必要换1分频;1G才需要1分频。
PLL工作范围DataSheet里有,参数不对高温下容易锁不上。

2、时钟树看TRM,DDR有自己的PLL。

3、改FSBL的初始化数组是Zynq下最省事儿的。如果只是搞ARM的频率,可以自己直接写Reg。
没研究过Kernel的Freq Scaling能不能直接改。

4、不用加压,1.0V足够。可以JTAG看实际电压是不是足够。
最好是能PI仿一下静态压降和解耦。电源能出足够电流只是基础,压降,储能也是问题。

出0入0汤圆

 楼主| 发表于 2017-12-19 11:21:34 | 显示全部楼层
本帖最后由 孤独的猫 于 2017-12-19 11:50 编辑
wye11083 发表于 2017-12-15 23:15
好吧,我记错了,不直播了  

按666/1066跑的话,那应该是没问题的。芯片过热的情况我没 ...


试了下,跑uboot 后,大概2分钟后,死机,芯片发热,uboot 无反应了,复位重启,uboot启动时启动一半就无反应了,FPGA无程序。

后来 跳线到JTAG模式和SD模式,分别上电,相当于无代码模式,上电几分钟,芯片也没什么发热。感觉硬件好像没啥问题。

下次只能跑裸机代码试试了,哎。。

出0入0汤圆

 楼主| 发表于 2017-12-19 11:46:24 | 显示全部楼层
本帖最后由 孤独的猫 于 2017-12-19 11:50 编辑
dr2001 发表于 2017-12-16 09:19
1 频率配的没问题,Vivado有检查的,不合法就会红字报错,没报错就放心去走FSBL的流程。

2 我之前说过, ...


试了 FPGA无程序, 只有 uboot跑大概 2分钟,芯片慢慢发热,然后uboot无响应了,应该是死机了,重启,uboot启动一半,继续无响应.估计是热死的。
晚上回去试试,DDR的相关配置,FSBL配置的单片是256MB DDR3(MT41K128M16 ) ,实际焊接的是同型号的512MB DDR3。MT41K256M16HA -125:E。

出0入0汤圆

发表于 2017-12-19 16:45:58 | 显示全部楼层
孤独的猫 发表于 2017-12-19 11:46
试了 FPGA无程序, 只有 uboot跑大概 2分钟,芯片慢慢发热,然后uboot无响应了,应该是死机了,重启,ubo ...

那检查Zynq那个模块的配置吧,别是哪里有没配对的。尤其是MIO之类。

或者,JTAG模式,启动后空在那里闲置,在这个条件下直接跑个Hello world看看了。

出0入0汤圆

 楼主| 发表于 2017-12-21 22:10:54 | 显示全部楼层
本帖最后由 孤独的猫 于 2017-12-21 22:43 编辑
dr2001 发表于 2017-12-19 16:45
那检查Zynq那个模块的配置吧,别是哪里有没配对的。尤其是MIO之类。

或者,JTAG模式,启动后空在那里闲 ...


跑了 差不多30分钟的hello world 例子,改成死循环打印了,没有发热,运行正常。。

运行一个DDR 测试例子


串口打印
-----------------------------------------------------------------
------------------- ZYNQ DRAM DIAGNOSTICS TEST ------------------
-----------------------------------------------------------------
Select one of the options below:

## Memory Test ##

Bus Width = 32,   XADC Temperature = 36.3898

    's' - Test 1MB length from address 0x100000

    '1' - Test 32MB length from address 0x100000

    '2' - Test 64MB length from address 0x100000

    '3' - Test 128MB length from address 0x100000

    '4' - Test 255MB length from address 0x100000

    '5' - Test 511MB length from address 0x100000

    '6' - Test 1023MB length from address 0x100000

## Read Data Eye Measurement Test

    'r' - Measure Read Data Eye

## Write Data Eye Measurement Test

    'i' - Measure Write Data Eye

    Other options for Write Eye Data Test:

         'f' - Fast Mode: Toggles Fast mode - ON/OFF

         'c' - Centre Mode: Toggles Centre mode - ON/OFF

         'e' - Vary the size of memory test for Read/Write Eye Measurement tests

## Data Cache Enable / Disable Option:

     'z' - D-Cache Enable / Disable

## Other options
     'v' - Verbose Mode ON/OFF

5
Option Selected : 5



Starting Memory Test '5' - Testing 511MB length from address 0x100000...

------------------------------------------------------------------------------------------
    TEST           WORD ERROR             PER-BYTE-LANE ERROR COUNT              TIME
                     COUNT        [ LANE-0 ] [ LANE-1 ] [ LANE-2 ] [ LANE-3 ]    (sec)
------------------------------------------------------------------------------------------
................................
Memtest_0 (  0: 0)      0         [       0] [       0] [       0] [       0]    17.8133
........................................
Memtest_s (  0: 1)      0         [       0] [       0] [       0] [       0]    11.6791
........................................
Memtest_s (  0: 2)      0         [       0] [       0] [       0] [       0]    11.6791
........................................
Memtest_s (  0: 3)      0         [       0] [       0] [       0] [       0]    11.6791
........................................
Memtest_s (  0: 4)      0         [       0] [       0] [       0] [       0]    11.6791
........................................
Memtest_s (  0: 5)      0         [       0] [       0] [       0] [       0]    11.6791
........................................
Memtest_s (  0: 6)      0         [       0] [       0] [       0] [       0]    11.6791
........................................
Memtest_s (  0: 7)      0         [       0] [       0] [       0] [       0]    11.6791
........................................
Memtest_s (  0: 8)      0         [       0] [       0] [       0] [       0]    11.6791
................................
Memtest_p (  0: 9)      0         [       0] [       0] [       0] [       0]    17.4824
................................
Memtest_p (  0:10)      0         [       0] [       0] [       0] [       0]    17.4783
................................
Memtest_l (  0:11)      0         [       0] [       0] [       0] [       0]    17.204
................................
Memtest_l (  0:12)      0         [       0] [       0] [       0] [       0]    17.204
................................
Memtest_l (  0:13)      0         [       0] [       0] [       0] [       0]    17.204
................................
Memtest_l (  0:14)      0         [       0] [       0] [       0] [       0]    17.204



-----------------------------------------------------------------
------------------- ZYNQ DRAM DIAGNOSTICS TEST ------------------
-----------------------------------------------------------------
Select one of the options below:

## Memory Test ##

Bus Width = 32,   XADC Temperature = 57.9758

    's' - Test 1MB length from address 0x100000

    '1' - Test 32MB length from address 0x100000

    '2' - Test 64MB length from address 0x100000

    '3' - Test 128MB length from address 0x100000

    '4' - Test 255MB length from address 0x100000

    '5' - Test 511MB length from address 0x100000

    '6' - Test 1023MB length from address 0x100000

只看到温度从37 升到57°,, 其它的、
Memtest_0 (  0: 0)      0         [       0] [       0] [       0] [       0]    17.8133       0 是没错?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-12-21 22:19:34 | 显示全部楼层
[ 本帖最后由 shiva_shiva 于 2017-12-21 22:21 编辑 ]\n\n看来是uboot问题了?

出0入0汤圆

 楼主| 发表于 2017-12-21 22:50:28 | 显示全部楼层
shiva_shiva 发表于 2017-12-21 22:19
[ 本帖最后由 shiva_shiva 于 2017-12-21 22:21 编辑 ]\n\n看来是uboot问题了?

应该不是吧,我还不太清楚。

出0入0汤圆

发表于 2017-12-22 09:56:33 | 显示全部楼层
孤独的猫 发表于 2017-12-21 22:10
跑了 差不多30分钟的hello world 例子,改成死循环打印了,没有发热,运行正常。。

运行一个DDR 测试例 ...


总结,目前的现象是:
1、FSBL + OCM的DDR测试程序,没有严重发热,30min运行尚可。(60度似乎略热,忘记装散热片之前的情况了)
2、FSBL + uBoot发热重启。

所以,那你检查uBoot吧,重点看DTS文件,估计是PinCtrl把IO配错了;尤其是你参考开发板设计,然而外设配置和开发板不一样的情形。

先看Config里,CONFIG_DEFAULT_DEVICE_TREE指明的是哪个文件,例如:zynq-zc702
对应的,查看并修改文件,uboot/arch/arm/dts/zynq-zc702.dts。

新版uBoot用了PinCtrl,即,即使FSBL里没配置对应的IO,uBoot的DeviceTree里要是开了,PinCtrl也会自动去配IO,以符合DeviceTree的要求,而不是FSBL里描述的情形。

你有两个选择:
1、把和PinCtrl有关的DeviceTree节点都删除,就留下默认的设备配置部分。此时,IO引脚的配置将完全依赖于FSBL的配置。
这么做的缺点是如果外设引脚分配换了,你需要重新生成boot.bin;当然,板卡引脚本身是确定的,不会换,一次性搞定也没问题。

2、根据板卡设计,修改设备初始化和PinCtrl的相关节点,完成自动配置。

注意,uBoot正常运行后,请按照对应的方法再改一边Kernel的DeviceTree。
否则,Kernel起来还是乱的。

出0入0汤圆

 楼主| 发表于 2017-12-22 10:34:00 | 显示全部楼层
dr2001 发表于 2017-12-22 09:56
总结,目前的现象是:
1、FSBL + OCM的DDR测试程序,没有严重发热,30min运行尚可。(60度似乎略热,忘记 ...

好的,十分感谢,回去检查下UBOOT  

出100入101汤圆

发表于 2017-12-22 17:02:31 | 显示全部楼层
专家的解说很到位

出0入22汤圆

发表于 2017-12-22 17:23:46 来自手机 | 显示全部楼层
跑系统真麻烦?

出0入0汤圆

 楼主| 发表于 2017-12-22 23:32:01 | 显示全部楼层
zxq6 发表于 2017-12-22 17:23
跑系统真麻烦?

搞好了,就事半功倍了·系统只要不出低层问题,就很爽。。。

出0入0汤圆

 楼主| 发表于 2017-12-22 23:41:17 | 显示全部楼层
dr2001 发表于 2017-12-22 09:56
总结,目前的现象是:
1、FSBL + OCM的DDR测试程序,没有严重发热,30min运行尚可。(60度似乎略热,忘记 ...

看了uboot 下的设备树,是用的ZYBO设备树,基本就是使用网卡和SD,USB,比较简单的设备树。失能了网卡,SD,重新编译。
然后又重做了下硬件配置,换了DDR3型号,发现SD卡 SD0 选择的PIN 好像和网卡冲突了,虽然网卡没开,换对了 SD0引脚 ,重新配置了硬件单元,然后重新生成了FSBL ,先用老的UBOOT启动,竟然好了。。。uboot 工作20多分钟,都正常,芯片也不发热了。。
最大可能 SD的PIN配置和网卡冲突了。。硬件配置没有打开网卡,但UBOOT却开启了网卡 ,还好网卡芯片没有焊接。。 谢谢指点! 这种PFGA混合ARM的片子,真好麻烦。。。

出0入22汤圆

发表于 2017-12-23 07:53:58 来自手机 | 显示全部楼层
嗯,搞定了就好。我就是因为没有操作系统的功底,zynq只好裸奔了。

出0入0汤圆

发表于 2017-12-23 13:16:34 | 显示全部楼层
孤独的猫 发表于 2017-12-22 23:41
看了uboot 下的设备树,是用的ZYBO设备树,基本就是使用网卡和SD,USB,比较简单的设备树。失能了网卡,SD, ...

跟ARM+FPGA没关系,就是外设IO引脚没配对。MCU,处理器,AP都会有这个问题。

只不过,FSBL + uBoot + Kernel的三重配置容易忘记地方。

出0入0汤圆

发表于 2017-12-30 22:30:27 来自手机 | 显示全部楼层
请问 zynq如何发音?或者中文名是什么啊?

出0入0汤圆

 楼主| 发表于 2017-12-30 22:33:02 | 显示全部楼层
阿豪博士 发表于 2017-12-30 22:30
请问 zynq如何发音?或者中文名是什么啊?

发音不晓得。。你可以百度下 “ZYNQ”马上就知道了。很火的片子。

出0入0汤圆

发表于 2018-1-3 09:19:12 | 显示全部楼层
路过的随便说一句:
uboot程序较大,需要3级引导    FSBL->uboot->OS
barebox程序支持压缩,2级引导就够了barebox->OS

时间上估计差别不大,barebox需要解压缩,但是可以省了一个程序,配置上不容易搞混。

出0入0汤圆

发表于 2018-1-5 14:00:12 | 显示全部楼层
楼主,选的电容不合理会导致电源芯片不稳定,选超低ESR的多层电容。电源输出就会稳定并且不发烫。。。  

出0入0汤圆

 楼主| 发表于 2018-1-5 14:32:30 | 显示全部楼层
jameszxj 发表于 2018-1-3 09:19
路过的随便说一句:
uboot程序较大,需要3级引导    FSBL->uboot->OS
barebox程序支持压缩,2级引导就够了b ...

好的,有机会试试下。

出0入0汤圆

 楼主| 发表于 2018-1-5 14:35:22 | 显示全部楼层
yirenonege 发表于 2018-1-5 14:00
楼主,选的电容不合理会导致电源芯片不稳定,选超低ESR的多层电容。电源输出就会稳定并且不发烫。。。   ...

最后是软件配置出错导致发热的,电容还真是 超低ESR的多层电容(三洋SANYON POSACP 钽聚合物电容 470uF 6.3V)。一顿怀疑是不是电容容值,太大了,电源不稳定了。。。

出0入114汤圆

发表于 2018-1-5 19:11:35 来自手机 | 显示全部楼层
钽电容一般都是黄颜色吧

出0入0汤圆

 楼主| 发表于 2018-1-5 22:09:24 | 显示全部楼层
cloudxxcloud 发表于 2018-1-5 19:11
钽电容一般都是黄颜色吧

那是 三洋SANYON POSACP 钽聚合物电容 470uF 6.3V

出0入0汤圆

发表于 2018-1-6 14:33:37 | 显示全部楼层
jameszxj 发表于 2018-1-3 09:19
路过的随便说一句:
uboot程序较大,需要3级引导    FSBL->uboot->OS
barebox程序支持压缩,2级引导就够了b ...

uBoot在Zynq的引导过程中是可选项,主要是方便用户通过脚本控制加载流程。

如果Kernel,DeviceTree Blob和initramfs/rootfs完全确定,没有修改的必要,引导完全不用uBoot,FSBL启动完了以后加一个小代码就行,网上一搜就有。

FSBL本身是开源的,且Xilinx提供了一堆可用库,基本没必要用第三方的东西。只是刚开始的时候内存紧张一点,初始化之后内存随便用。

出0入0汤圆

发表于 2018-1-8 08:53:06 | 显示全部楼层
dr2001 发表于 2018-1-6 14:33
uBoot在Zynq的引导过程中是可选项,主要是方便用户通过脚本控制加载流程。

如果Kernel,DeviceTree Blob ...

是的,采用uboot本身就是了为了方便升级各个程序,都不需要修改了,那就无所谓了,uboot也能编译出SPL程序,直接引导UBOOT_SPL==>linux

出0入0汤圆

 楼主| 发表于 2018-1-8 17:33:50 | 显示全部楼层
dr2001 发表于 2018-1-6 14:33
uBoot在Zynq的引导过程中是可选项,主要是方便用户通过脚本控制加载流程。

如果Kernel,DeviceTree Blob ...

学习了,谢谢了!

出0入0汤圆

发表于 2018-2-8 14:58:16 | 显示全部楼层
本帖最后由 chenqi 于 2018-2-8 15:00 编辑
dr2001 发表于 2017-12-23 13:16
跟ARM+FPGA没关系,就是外设IO引脚没配对。MCU,处理器,AP都会有这个问题。

只不过,FSBL + uBoot + Ke ...


大神,最近听说zynq的网络ip有bug,是不是真的啊,不敢用来做产品了

http://blog.csdn.net/luhao806/article/details/60866425


编辑,加入网址

出0入0汤圆

发表于 2018-2-8 20:18:58 | 显示全部楼层
chenqi 发表于 2018-2-8 14:58
大神,最近听说zynq的网络ip有bug,是不是真的啊,不敢用来做产品了

http://blog.csdn.net/luhao806/art ...

没遇到过类似的问题,没大流量小包跑过。
可以参考TRM和Kernel Source,Zynq PS的IP买的都是成熟的货架产品,很多SoC都用过的,出问题的概率并不高;优先怀疑硬IP瑕疵和驱动瑕疵都不是太正确的选择。

随便一搜,有参考信息:
https://forums.xilinx.com/t5/Emb ... -2016-3/td-p/734574

如果这个是导致那个bug的唯一原因,我没撞上的原因:
1、用的Kernel已经fix了这个bug。
2、memory map已经把对应块踢出去了,不会导致分配到Low OCM地址区。
3、Kernel的CMA地址在高位。

Mask这个地址有很多方法。

出0入0汤圆

发表于 2018-2-9 08:02:04 | 显示全部楼层
dr2001 发表于 2018-2-8 20:18
没遇到过类似的问题,没大流量小包跑过。
可以参考TRM和Kernel Source,Zynq PS的IP买的都是成熟的货架产 ...

十分感谢您的回答,对我很有帮助!

出0入0汤圆

发表于 2018-2-9 10:17:17 | 显示全部楼层
chenqi 发表于 2018-2-9 08:02
十分感谢您的回答,对我很有帮助!

确认了一下,PS的GEM的IP确实存在硬件Bug,参考Zynq TRM的16.7章节。

似乎部分Bug已经在最新的Kernel Driver里修订了,So。。。如果运行环境正好撞上的话,还是要考虑考虑。

似乎PL的ETH MAC是收费的。

出0入0汤圆

发表于 2018-2-9 12:55:29 | 显示全部楼层
dr2001 发表于 2018-2-9 10:17
确认了一下,PS的GEM的IP确实存在硬件Bug,参考Zynq TRM的16.7章节。

似乎部分Bug已经在最新的Kernel Dr ...

多谢,我的手册太老没有16.7章节,下载了最新版,发现解释说DMA缓冲区太小,容易溢出,解决办法是做定时器检测,把net_ctrl[rx_en] 寄存器写0后再写1.

出0入0汤圆

发表于 2020-6-24 10:51:29 | 显示全部楼层
最近在看DDR3布线,发现DDR3布线规矩好多:拓扑结构,等长调整,终端电阻匹配等等,有点心虚!

出0入4汤圆

发表于 2020-6-24 11:08:26 | 显示全部楼层
ardon 发表于 2020-6-24 10:51
最近在看DDR3布线,发现DDR3布线规矩好多:拓扑结构,等长调整,终端电阻匹配等等,有点心虚! ...

ST的A7有例程,只等长,走的也比较随意

出0入0汤圆

发表于 2020-6-24 14:50:11 | 显示全部楼层
这个帖子好长……

楼主现在成为ZYNQ 的大拿了吧!

出150入135汤圆

发表于 2020-6-25 02:26:12 来自手机 | 显示全部楼层
孤独的猫 发表于 2017-12-14 23:27
10层的 ,哎。。。

这么简单的板子用10层?也是无语了!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 07:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表