Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 6586|回復: 12
打印 上一主題 下一主題

[問題求助] 請問有人對Xilinx熟嗎

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-5-30 21:23:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近在做Xilinx的板子,目前對這塊板子(Spartan-3A)還是無法正確的掌握% F3 C! u) W) |! X
其中對於燒錄Parallel flash and SPI flash燒錄不太能理解& i) M0 s/ z2 |7 J. ^1 v& z; W" D
底下有幾個問題,請大家幫忙回覆囉!
4 ^5 C% |! D" G
; A# c3 ]4 `, K  s) c1. Parallel+SPI flash要怎麼燒錄才能正確的使用bootloader功能
# `! }: R6 H- d8 }* ]! Z2. 利用內建EDK tools, flashwriter燒錄時出現如下訊息:
  ]; n5 n5 q% e    Unable to successfully query target part layout using CFI!!+ z9 v  }! `1 g" N# g
    目前已經初步確認過腳位,不曉得還有哪裡要注意設定的?
2 p4 i0 Z. q# n' Q; S2 U; Q    P.S:目前使用Spasion 29GL256P FLASH.: o/ m  {0 o- T1 x- t; n) Y2 j
3. EDK and ISK tools的定位在哪?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2009-6-1 14:42:03 | 只看該作者
1. 假如你是用MicroBlaze的話 你需要寫 first stage bootloader (FSB) (存放在MicroBlaze's  BRAM). FSB 再去讀取指定的bootloader (Parallel+SPI flash)1 I8 l/ j; j/ T4 M' W
2. 如果腳位對了. EMC的設定要注意 (假如你的版子沒有XBD,你是用哪一張版子). 最好看一下EMC的datasheet. 9 p' s9 l" z8 Z; j/ r
可以在XMD底下 用CFI query 看看 回復的CFI data 有沒有正確
' R0 Y$ H& k' m) s+ Z3.
/ h0 Y" N1 W" L5 ~EDK 是 system design: T4 g. `6 |. w4 K
ISE 是 core design
3#
 樓主| 發表於 2009-6-1 16:25:43 | 只看該作者
再度請問:" q! t5 F1 o% b# r9 y) s6 h

7 s3 u# Y* \3 T2 _( L) t' M1. 什麼是XBD啊? 現在我手邊的版子是Spartan-3A, 請問EMC是要設定什麼東西呢? 9 ], G4 H6 H# g! d7 m% Y  i
2. XMD底下,用CFI query怎麼看CFI data啊? 這個真的就不清楚囉! 可以指導下嗎?# n/ V7 m5 \" E+ x( k) a. b: F

! }: ~6 h. D' u/ e. b# ]+ v( s( w貼下system.mhs的EMC設定, C; I+ S4 G2 w* b" ^$ K

0 e' Y% X& E8 ]- YBEGIN opb_emc
/ C, A! U( y) V$ r6 q' z$ d$ L PARAMETER INSTANCE = FLASH_2Mx16- L9 V& U0 u# E
PARAMETER HW_VER = 2.00.a3 d9 i1 H) g' F. i1 y) r: z- N
PARAMETER C_OPB_CLK_PERIOD_PS = 20000
$ n/ o: O8 Z2 {7 a1 i PARAMETER C_NUM_BANKS_MEM = 10 L, |9 a; i2 Y1 P+ t+ n7 \" K8 K
PARAMETER C_MAX_MEM_WIDTH = 16
8 B, G+ a$ r) V% Q( x PARAMETER C_MEM0_WIDTH = 16
2 C# D, ?* x/ j. c% T. ~) y% u4 H PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 1
4 W# M) o% s3 g4 E8 Z8 b% z PARAMETER C_SYNCH_MEM_0 = 0
: u5 Y. W* a6 T: _( K8 Y PARAMETER C_TCEDV_PS_MEM_0 = 70000
' G. O- P! F# Z' |, w; z0 A PARAMETER C_TAVDV_PS_MEM_0 = 70000
2 k7 ^# Z  z2 a! ^) I& f4 X PARAMETER C_TWC_PS_MEM_0 = 70000
% s/ m3 g: ?% R4 A# j PARAMETER C_TWP_PS_MEM_0 = 45000
4 q, T" x" _: ]* x0 b PARAMETER C_THZCE_PS_MEM_0 = 25000/ S  B2 T- d* h: m9 U& o: p7 Z
PARAMETER C_THZOE_PS_MEM_0 = 25000# |& c( W/ Y9 u3 f  @0 }
PARAMETER C_TLZWE_PS_MEM_0 = 5000
; N  [1 z( j3 f- I8 T) D$ x PARAMETER C_MEM0_BASEADDR = 0x42000000
* D* r4 E, D8 z PARAMETER C_MEM0_HIGHADDR = 0x43ffffff2 j# `. t4 L% f& ~
BUS_INTERFACE SOPB = mb_opb6 o) L- P: m+ ~" B8 ]  `
PORT OPB_Clk = sys_clk_s
* y# F, O- [; U1 I" s9 C  W# w$ [4 H. X PORT Mem_A = 0b0000000000 & FLASH_Mem_A -> 這行是做什麼用途?) _+ ~4 d- t) D' D9 v
PORT Mem_DQ = FLASH_Mem_DQ
( E5 Q$ C$ y* A PORT Mem_OEN = FLASH_Mem_OEN
$ [( I4 ?2 P( f% b" Q PORT Mem_WEN = FLASH_Mem_WEN
; `; p2 t" i9 B/ v' J. N PORT Mem_CEN = FLASH_Mem_CEN
, A) A2 K9 ^4 Y8 GEND
4 P3 t  Y) f) R$ N0 K) T5 o( J) w5 i0 \, [' l2 h4 f' g! v5 {! r0 j8 {
以上這樣設定對嗎?
9 q. K. z: z# N8 ^3 H9 C) v" G/ ^2 d% a; c/ s  u
[ 本帖最後由 chchtono 於 2009-6-1 04:39 PM 編輯 ]
4#
發表於 2009-6-3 15:14:15 | 只看該作者
XBD=Xilinx Board Definition
( C) `6 Y; f7 O3 Q% N* X5 n假如你的版子支援BSB wizard. 那EMC的設定應該沒有問題
/ S3 d6 C2 c/ u; l- c# w5 U" a/ Q你是用哪一張版子(自己設計的還是XILINX的開發粄)阿? 跟哪一個版本的EDK.../ l" ^. ~  w1 v; x0 N* x- j

. C7 J' G2 E0 w8 j& ^# H# v你現在是用opb bus1 |) A* S* G& Q, ~3 a
新版的EDK好像都是用PLB. 假如你是自行加OPB_EMC的話 你要bridge opb 跟 plb . 還有EMC的port跟parameter要設定. 我沒有辦法告訴你的parameter的設定對不對. 因為這些設定要對應flash本身的設定- t* \" ]% i0 t) S
! |+ ?2 e0 u7 T! }
2.
6 p! c4 o+ ], u也有可能是flashwriter 沒有支援你的 flash 或是 你flashwriter的參數設錯了
9 }9 |) H3 J/ e& X& M: |你可以用flashwriter的debug mode. F, a; q! J6 k/ }
改\EDK\data\xmd\flashwriter\src的defs.h ' a0 x! F* }6 D2 f/ N
在#ifdef DEBUG 之前一行加#define DEBUG
( o4 _2 H  {/ H5 J, J
0 e$ W  Z+ g" d* V) m( {xmd:
( q) M1 I/ q* t, |+ d- {CFI query 基本上也是寫一個簡單C program 去讀寫flash+ @. Y/ ^! ?! Y: V
或是
) f. U9 h" `6 M9 I! _讀: mrd ${address} ${size}$ P! z( i! ^+ e: k
寫: mwr ${address} ${value}, z; x: F9 i4 S) W
& [+ O$ I% E$ _4 P; R: {
[ 本帖最後由 huanyu 於 2009-6-3 03:37 PM 編輯 ]
5#
 樓主| 發表於 2009-6-3 21:12:49 | 只看該作者
XBD=Xilinx Board Definition4 m- t5 _! y6 b
假如你的版子支援BSB wizard. 那EMC的設定應該沒有問題
% B0 a* ?2 A6 ^你是用哪一張版子(自己設計的還是XILINX的開發粄)阿? 跟哪一個版本的EDK...- t7 b& C& I2 n5 U3 [0 H' [

) S$ @7 B# `/ `) i! Z6 X1 `你現在是用opb bus
& d3 j" E9 T6 }( J' \! Q( P新版的EDK好像都是用PLB. 假如你是自行加OPB_EMC的話 你要bridge opb 跟 plb . 還有EMC的port跟parameter要設定. 我沒有辦法告訴你的parameter的設定對不對. 因為這些設定要對應flash本身的設定
0 y" h8 A$ _7 x4 ~! w; `* _

, E% R1 ?4 O$ w' v3 Q2 a8 O% l我使用的是自己設計的板子,開發版本為EDK 10.1.37 P, U* o6 w7 |0 l
想要請問一下,如果是OPB or PLB的設定,我該怎麼加入設定值?! C7 u, r5 ]' G6 L2 h) W! f
有資料可以參考嗎?
' |& P* f& I0 a1 i7 ^0 @9 b+ j; C
也有可能是flashwriter 沒有支援你的 flash 或是 你flashwriter的參數設錯了* w# V4 w4 ^8 y! x; c
你可以用flashwriter的debug mode
8 p* J: B, D& w+ \* o改\EDK\data\xmd\flashwriter\src的defs.h
; Y* \0 ]6 A9 w" J在#ifdef DEBUG 之前一行加#define DEBUG
0 @0 H7 k+ M3 `3 j4 Z/ g1 t! p
0 d% y& Q4 q) [xmd:: A7 C( G9 f4 v5 v. x( F7 b
CFI query 基本上也是寫一個簡單C program 去讀寫flash* {) a8 F- k$ ^+ X
或是
; _+ k/ E9 ^4 t: `讀: mrd ${address} ${size}- H% [; I% G9 X) w$ i
寫: mwr ${address} ${value}
: Q! b- H2 V* U+ |* [/ f
+ a+ K2 R) i- w" G, t, T8 [% O
1.我有修改過
: z) Q, `. h. F9 n+ A/ s\EDK\data\xmd\flashwriter\src的defs.h1 f) {: a% d- v: h+ G6 H) g/ R& b
在#ifdef DEBUG 之前一行加#define DEBUG; g9 y5 y$ Z" v! _0 _# D
不過在xmd視窗執行時,他就會說無法使用 (拿掉define居然又可用!)
! q* |! p9 T1 B$ Z8 W
" x. H/ C7 p* O8 `2.flashwriter具體要修改哪幾個檔案?可以指導一下嗎?0 z! N: X  X  w6 q4 d; y
我看了一下flashwriter.tcl,不曉得需要動到flashwriter目錄的哪個檔案rebuild才有用+ A  _& \: n* [" T: r1 p0 |% j
因為flashwriter.tcl好像是直接執行.elf檔案?
! M. N$ E6 f1 g5 a8 t5 p1 H
& o0 e: M; O2 L- Y' N. y  b3. mrd and mwr具體下指令是這樣嗎?
- }( A* r5 S3 ~, i  R; N0 nmrd $0x8c000000 $0x807 D/ B* y8 }9 K1 c  E0 I) a
mwr $0x8c000000 $0x80
6#
 樓主| 發表於 2009-6-3 23:21:57 | 只看該作者
flashwriter這個小程式,不曉得有沒有人有經驗可以分享要修改哪些檔案?
5 W# k9 e* l5 W3 s4 m還有compiler這支程式可以套用進去支援新flash?
1 O1 G& A3 v( [* I! \8 V. A0 z感恩感恩..
7#
 樓主| 發表於 2009-6-4 11:05:34 | 只看該作者
在defs.h設定#define debug之後,compiler產生如下訊息:% f9 ^$ F) n7 a1 r* s& E( s. i! h
ERROR: Unable to compile flashwriter application. Please check the following:' g, y: \+ k9 m$ y- f
1. Make sure the processor's libraries have been generated.
- _; ^. Z9 y) @" q# n' E/ u7 G4 d# N2. Make sure that you are using the Standalone BSP as the software platform for your processor., k! y5 s3 b1 B" b0 W, V# Q
3. Make sure that XILINX_EDK has been set correctly and that all the EDK GNU tools available."
8#
發表於 2009-6-5 12:16:21 | 只看該作者
自己設計的板子你要確定你的UCF跟MHS port & parameters 都是設對的+ V+ v1 {3 t' F0 l2 P

6 v9 e% ?+ Y  J- y; Pgoogle plb2opb_bridge 或是查看你的EDK ipcore 內的 plb2opb_bridge
$ _; W7 J. H& N9 j請看datasheet 先$ M7 j( k6 n- r0 w! V

+ {' ?# H& L0 F"在#ifdef DEBUG 之前一行加#define DEBUG"
# V3 v$ Z" j" V* e- ]6 ]' W假如你的flashwriter 是在bram上執行的話 你要確定BRAM夠大
# b: L+ }0 p  ]  E你可能要自行摸索. 我是沒有遇過這些問題
7 E* X" B  B' l0 a( j. w1 r, m
1 p; }& \; D( {8 g) y+ wTCL 只是一個script 去產生&執行 elf
4 e5 ~: M! T" Z" O1 ~6 O
& L" x& |; B4 U; t7 L7 j$ f9 [+ xmrd 0x8c000000
0 ]( m! e+ z) Q: I$ Q6 B${size} 可有可無
6 K5 f- H( Z/ z" D2 E, M% O/ ?mwr 0x8c000000 1234% ^9 y7 G- t4 P1 J1 L+ T+ q8 _8 r" E
你在XMD下 跑了他應該會告訴你正確的使用方式, D' o: o4 ^- Z$ ?5 a! k8 e

: B2 N8 }/ R5 O" e8 k9 u5 r我覺得你先用XMD 去確認你的MB 可以讀寫EMC/flash 先
8 E. I+ k  I" W* x; E6 j3 ~+ I2 J' T; Ntry to isolate the problem first
9#
 樓主| 發表於 2009-6-5 14:46:34 | 只看該作者
原帖由 huanyu 於 2009-6-5 12:16 PM 發表
. d: x2 i+ |5 r! H自己設計的板子你要確定你的UCF跟MHS port & parameters 都是設對的
: Q! J& s. i. Z9 ]% M% _

/ `. h: R2 H9 i這個已經確認是對的囉!因為可以使用其他FLASH了!5 i" m- j5 @: J- ~
不過現在更換成自己要使用的FLASH之後,產生無法抓取的問題!
2 ~1 ~3 G. q/ d' Y3 l8 g0 V1 q(Unable to successfully query target part layout using CFI!)8 l5 P+ {! H2 b% F# p$ E7 E! ?
現在要如何確認..# N# f: T6 w' f/ Y+ M* q( ^
1. mwr and mrd的內容是對的?' {+ g8 Q, w: C  k. `3 l8 m4 o2 K
2. flashwriter該怎麼改?
' N0 c3 O3 K! [; W% Q8 E6 d; s
3 @  _. K. B4 p[ 本帖最後由 chchtono 於 2009-6-5 02:49 PM 編輯 ]
10#
發表於 2009-6-5 17:31:50 | 只看該作者
不同的flash設定也不一樣說 (就算實際的腳位一樣).
+ `) A' T4 F' f
: h) l/ V: B' S9 cmwr 跟 mrd 是MB的instruction. 不懂可以看MB的reference manual
( N& R/ d& h9 R* |" U+ N3 T你試了之後再說你哪有問題
6 b- ]. r" j8 }$ I8 I7 V% s* c1 Q' e. }4 K$ |0 C  U' n( D
flashwriter 的 source code 都在EDK內 你可以去看看 再想你怎麼改
0 @! y6 ?) \% E% `/ w! O$ W要不然你可以自己寫一個, 用EDK裡面的library - xilflash 去讀寫
11#
 樓主| 發表於 2009-6-6 23:44:14 | 只看該作者
原帖由 huanyu 於 2009-6-5 05:31 PM 發表 0 V, o; z# J+ G. f
mwr 跟 mrd 是MB的instruction. 不懂可以看MB的reference manual( r7 M0 t' {$ d7 c4 A) j2 `% y
你試了之後再說你哪有問題

# E6 t0 e' ]* t6 |# j
5 M- ^% x' }2 b" m. w+ _& x2 \: Q測試結果:2 y1 r8 U  Q+ e$ u
1. Spansion S29GL256P (OK!) -> 修改原廠emc設定後才行& t3 k5 t; o0 Q" \: s
mrd -> 可以讀到數值1 O) i; {' H: H; @% W* G
mwr -> 測試改值,mrd讀回沒變?
& j" F2 ^, ?% s) r4 b' z2. MXIC MX29GL256 (CFI failure) -> 修改原廠emc設定後仍然無法動作
2 V2 ^% `& H7 _+ O. r& L6 y) jmrd -> 讀到00 or FF
2 O. H5 r7 f; g3 o; Mmwr -> 測試改值,mrd讀回沒變
12#
發表於 2009-6-12 12:42:03 | 只看該作者
1,  你可能EMC部分參數沒設好
- P: A- ]! Y/ |5 ]3 |+ `你多是幾個不同的address( within emc memory address) 試試看 7 d# V  C9 K. v
$ `4 M  X) g/ t5 \
2.mrd 讀到 00 or FF 代表無法讀取那個address
5 S! @0 f: l: |6 @8 c6 n7 x所以應該是你設定有問題. 9 S" |4 ~& X$ F+ I+ a0 S' F7 q$ a+ m

0 ^% {/ j5 M5 A5 `2 g% v4 j你可能要讀MX flash的datasheet 看是不是參數設錯
13#
 樓主| 發表於 2009-6-18 11:56:20 | 只看該作者
嗯!經由測量FLASH腳位確認之後,發現是硬體問題2 k. u% L3 J# [* s+ n
目前已經解決此問題囉!; u# Z+ a$ }0 O" p$ L# Q
定義上是沒有問題的,謝謝大家關注
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-9-28 12:06 AM , Processed in 0.181010 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表