Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-5-30 21:23:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近在做Xilinx的板子,目前對這塊板子(Spartan-3A)還是無法正確的掌握  ?  ]5 e# d9 ~% R( Z; c4 ?
其中對於燒錄Parallel flash and SPI flash燒錄不太能理解" c" P0 J. E  [( W: L
底下有幾個問題,請大家幫忙回覆囉!4 P" L8 w* }( }4 o  ]
! S8 m' i- h$ O+ l7 }( {
1. Parallel+SPI flash要怎麼燒錄才能正確的使用bootloader功能/ w/ j5 F6 [8 @/ C
2. 利用內建EDK tools, flashwriter燒錄時出現如下訊息:& h2 ?/ t3 `5 M- ]: E: ~) Z
    Unable to successfully query target part layout using CFI!!9 ^# ]) M$ `$ C6 _9 @9 Q6 y
    目前已經初步確認過腳位,不曉得還有哪裡要注意設定的?
) q' r( O7 l, b: N5 O; K    P.S:目前使用Spasion 29GL256P FLASH.
! p/ Q' u4 @7 z  u0 j3. 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)
8 \( c* E' U* P( P! l9 [' K# t2. 如果腳位對了. EMC的設定要注意 (假如你的版子沒有XBD,你是用哪一張版子). 最好看一下EMC的datasheet.
4 B$ J7 z) C, Z0 U可以在XMD底下 用CFI query 看看 回復的CFI data 有沒有正確
' y$ V) [+ M  K! K: v/ W3. 5 H0 ^! s& s  j% W, J* l( f" X
EDK 是 system design9 \8 {. N7 a+ m/ d8 I7 e7 T
ISE 是 core design
3#
 樓主| 發表於 2009-6-1 16:25:43 | 只看該作者
再度請問:
9 q' ~! X" E$ v$ W- e$ N1 u0 o; H$ U& n, N
1. 什麼是XBD啊? 現在我手邊的版子是Spartan-3A, 請問EMC是要設定什麼東西呢? / c& s2 {' e1 p/ X1 H- l* J
2. XMD底下,用CFI query怎麼看CFI data啊? 這個真的就不清楚囉! 可以指導下嗎?$ ~3 P3 F' r. W# M- {' b3 y" N

4 @% R, {% E* r6 m6 W' h貼下system.mhs的EMC設定
3 t1 l" }" \* F5 d, A
4 a) }8 z  H# f* e! w7 G' QBEGIN opb_emc
( c3 ]/ D" f) Y6 O1 ]' C PARAMETER INSTANCE = FLASH_2Mx16
$ k. J/ ?3 m- B+ M; f9 W* J PARAMETER HW_VER = 2.00.a5 W1 F0 Q( b' W  W; w1 h
PARAMETER C_OPB_CLK_PERIOD_PS = 20000
8 y3 \* ?) q! `4 E2 e/ U PARAMETER C_NUM_BANKS_MEM = 1
1 l# t& O* }- G) t' A5 S PARAMETER C_MAX_MEM_WIDTH = 16
. g, ^! S2 m& k' E4 h: e6 X PARAMETER C_MEM0_WIDTH = 168 ^- |& r3 z2 ]1 L+ G" s
PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 1, ~+ Z( L. P# T- \+ Z! m8 v6 b
PARAMETER C_SYNCH_MEM_0 = 03 B3 L. r* @4 c7 g7 {
PARAMETER C_TCEDV_PS_MEM_0 = 70000, Z( Y% E# f: A0 H: B
PARAMETER C_TAVDV_PS_MEM_0 = 70000
7 k  X; e% k! F+ f$ A  P PARAMETER C_TWC_PS_MEM_0 = 70000
% C2 P; \+ A4 \! u% J# Y; h PARAMETER C_TWP_PS_MEM_0 = 450004 }6 Q2 a" p1 H/ u4 r  p4 c4 R# p. L3 R
PARAMETER C_THZCE_PS_MEM_0 = 25000
( u6 D3 j+ z, p4 i6 G, @ PARAMETER C_THZOE_PS_MEM_0 = 25000
0 r% n3 I+ |& H- d* K9 R PARAMETER C_TLZWE_PS_MEM_0 = 5000; G9 ^- `! `" `! B: Q. p: q6 g: ^2 J
PARAMETER C_MEM0_BASEADDR = 0x42000000
( M- `; b. w( ^1 R2 M PARAMETER C_MEM0_HIGHADDR = 0x43ffffff
2 Z; r6 |6 [- o" [2 s BUS_INTERFACE SOPB = mb_opb
* M: d/ _  F  Z" e PORT OPB_Clk = sys_clk_s: k3 i" A% T8 p( c8 m! b/ w5 _- y
PORT Mem_A = 0b0000000000 & FLASH_Mem_A -> 這行是做什麼用途?
" u  ^% u' a* N; ^ PORT Mem_DQ = FLASH_Mem_DQ8 N8 F) L; G: A/ c+ m3 O* x' G- S
PORT Mem_OEN = FLASH_Mem_OEN
) T1 e4 p( n! Y9 n" J PORT Mem_WEN = FLASH_Mem_WEN
2 Y6 m) i3 g; l8 R PORT Mem_CEN = FLASH_Mem_CEN( u5 {4 u& j! K) @5 ^( m% F6 g
END7 l1 `) d7 P+ C* L( |7 g$ i

: e4 ]$ o  I- G+ o以上這樣設定對嗎?1 J. B* F, s: z! u

: q2 ~9 K; b- r( Y/ _7 J[ 本帖最後由 chchtono 於 2009-6-1 04:39 PM 編輯 ]
4#
發表於 2009-6-3 15:14:15 | 只看該作者
XBD=Xilinx Board Definition
; B+ z/ b9 {/ x) G假如你的版子支援BSB wizard. 那EMC的設定應該沒有問題. L4 W  Z; T0 R) R  C2 Z1 ^% E
你是用哪一張版子(自己設計的還是XILINX的開發粄)阿? 跟哪一個版本的EDK...3 A8 R: r$ J" j' T" q' o

4 K9 F. y( F$ _8 G) }- X5 J$ B. n你現在是用opb bus8 H* f5 N. N. s# y  M6 v: }* P6 F) \1 l
新版的EDK好像都是用PLB. 假如你是自行加OPB_EMC的話 你要bridge opb 跟 plb . 還有EMC的port跟parameter要設定. 我沒有辦法告訴你的parameter的設定對不對. 因為這些設定要對應flash本身的設定8 D! p7 |! L5 A9 h! h

" Q' o6 c0 d: e: z# H' k# l% d2.
7 M# R# p/ W- f, K& P0 X) L也有可能是flashwriter 沒有支援你的 flash 或是 你flashwriter的參數設錯了( R$ B, {  o+ N
你可以用flashwriter的debug mode
4 X$ `( W$ j" b! \' Q' t, c$ E改\EDK\data\xmd\flashwriter\src的defs.h 1 j3 U: _  h+ j6 P8 D) _1 \; J
在#ifdef DEBUG 之前一行加#define DEBUG
+ [0 }* N( K6 Z. t2 \8 g% I! p, w$ G& O( O: K
xmd:
7 N. q( F9 m; g  g) ~CFI query 基本上也是寫一個簡單C program 去讀寫flash
& F+ B3 W" \5 u; g& |或是, r* }( Y, O" \+ a
讀: mrd ${address} ${size}* z0 @$ I8 L5 p% _6 d
寫: mwr ${address} ${value}
" y% D0 f* c+ d6 N; q8 Y- o- _" b* X( r) }8 P3 N0 e
[ 本帖最後由 huanyu 於 2009-6-3 03:37 PM 編輯 ]
5#
 樓主| 發表於 2009-6-3 21:12:49 | 只看該作者
XBD=Xilinx Board Definition
7 {% Q( M* f- F* B6 d7 F假如你的版子支援BSB wizard. 那EMC的設定應該沒有問題9 l" I8 ?+ Z2 C
你是用哪一張版子(自己設計的還是XILINX的開發粄)阿? 跟哪一個版本的EDK...
" D1 _7 u9 g+ L/ E! }; C
; b; v" H2 j5 Z" }你現在是用opb bus
* K8 g8 R* W8 G6 e; ?5 @新版的EDK好像都是用PLB. 假如你是自行加OPB_EMC的話 你要bridge opb 跟 plb . 還有EMC的port跟parameter要設定. 我沒有辦法告訴你的parameter的設定對不對. 因為這些設定要對應flash本身的設定

' c" z. R) @2 o: k) c) L
) a7 f9 t* q4 q) h8 W" s5 F我使用的是自己設計的板子,開發版本為EDK 10.1.3" v0 L7 A+ H* D$ b
想要請問一下,如果是OPB or PLB的設定,我該怎麼加入設定值?( r7 b5 B1 c: T9 q: r6 K
有資料可以參考嗎?8 r( I6 T& s$ U

5 \# B, h  W9 O1 n4 ?* x
也有可能是flashwriter 沒有支援你的 flash 或是 你flashwriter的參數設錯了) ~$ m/ o: [# @$ s- f3 r
你可以用flashwriter的debug mode% w+ `5 z* u- j! g: s
改\EDK\data\xmd\flashwriter\src的defs.h
  ^* j* I. S$ I: g在#ifdef DEBUG 之前一行加#define DEBUG7 Z  w3 ]5 C9 e4 }* R0 ^

6 R  d5 t# l- H1 `, `( P8 qxmd:
+ n4 e% R' t5 W8 CCFI query 基本上也是寫一個簡單C program 去讀寫flash
7 Z  X+ R0 y( b) v- D/ J+ S或是( L7 K/ d% s# l: R& ?  }1 a% o
讀: mrd ${address} ${size}
( ?- [, Y7 H) u4 q5 }, v寫: mwr ${address} ${value}
4 G( C7 {8 X! u! y  \5 O

; N2 R' K- C5 a4 L( \) `$ }# D1.我有修改過& B, Z! v8 z2 S/ ?! d% e/ v7 f
\EDK\data\xmd\flashwriter\src的defs.h$ I( h  R. v* M4 M
在#ifdef DEBUG 之前一行加#define DEBUG+ N# J4 n: n0 o7 z
不過在xmd視窗執行時,他就會說無法使用 (拿掉define居然又可用!)! R; I0 T( |$ x: ?0 N

, B* m- T, m: P! X) L/ K: x  m2.flashwriter具體要修改哪幾個檔案?可以指導一下嗎?
4 B% q/ C! L2 z" y( H我看了一下flashwriter.tcl,不曉得需要動到flashwriter目錄的哪個檔案rebuild才有用
: {* ?- d* {, [# D因為flashwriter.tcl好像是直接執行.elf檔案?, e$ |/ X% W% ~5 d, m3 R# F2 z0 q

- r! p3 m5 [7 P3. mrd and mwr具體下指令是這樣嗎?+ C% {4 _& R. Z) l/ k: f. g+ A# j
mrd $0x8c000000 $0x80
5 g9 v# O0 b3 h- U( ?. v, wmwr $0x8c000000 $0x80
6#
 樓主| 發表於 2009-6-3 23:21:57 | 只看該作者
flashwriter這個小程式,不曉得有沒有人有經驗可以分享要修改哪些檔案?
6 b" N0 ?& p- n% k6 F/ O2 N還有compiler這支程式可以套用進去支援新flash?, Z3 U9 k# W" t! N3 l
感恩感恩..
7#
 樓主| 發表於 2009-6-4 11:05:34 | 只看該作者
在defs.h設定#define debug之後,compiler產生如下訊息:" x" H8 ^7 W/ @
ERROR: Unable to compile flashwriter application. Please check the following:7 t) d5 U9 u$ f# j2 ^4 X  q  T& W
1. Make sure the processor's libraries have been generated.
; C5 R! h3 L2 ]3 R( x' }$ ]2. Make sure that you are using the Standalone BSP as the software platform for your processor.4 e: |+ b! m6 {! _7 l. L& }! t
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 都是設對的
8 g1 a  D+ |% L9 @
. H2 L2 I( S5 ^" L7 U  v) jgoogle plb2opb_bridge 或是查看你的EDK ipcore 內的 plb2opb_bridge- P5 b) w- g9 `$ _
請看datasheet 先
; s7 C, B  p: q# {" ]! ]5 h
' R) B% _% Z  ]- w"在#ifdef DEBUG 之前一行加#define DEBUG"
, B/ U& U0 o( z* E4 X假如你的flashwriter 是在bram上執行的話 你要確定BRAM夠大 . @0 F  V2 e- [6 e. E  g
你可能要自行摸索. 我是沒有遇過這些問題
/ K( @1 y) [' T9 \7 H2 w; r: m# S) h% _8 C
TCL 只是一個script 去產生&執行 elf
6 G5 x3 }! L) z& Q& W4 L* I2 i9 r9 J0 q( D% n
mrd 0x8c000000 ; Z8 L( o% U1 f7 o
${size} 可有可無
8 H, {5 R  K' Y6 j3 u% ^: Fmwr 0x8c000000 1234( i) h: m8 U/ f- Y
你在XMD下 跑了他應該會告訴你正確的使用方式. A. X. W) W7 F

" C! L, F# O: U: p我覺得你先用XMD 去確認你的MB 可以讀寫EMC/flash 先
5 Y7 A) ]/ Y" _; qtry to isolate the problem first
9#
 樓主| 發表於 2009-6-5 14:46:34 | 只看該作者
原帖由 huanyu 於 2009-6-5 12:16 PM 發表 4 ~6 |0 @7 i! |  a$ x! k% @: w! {/ i
自己設計的板子你要確定你的UCF跟MHS port & parameters 都是設對的
6 Y* n( r5 S( T) Y

: L* Q. J+ q" A. A; V這個已經確認是對的囉!因為可以使用其他FLASH了!) c1 h6 q% h  r9 C% J9 R  M6 T1 k
不過現在更換成自己要使用的FLASH之後,產生無法抓取的問題!
# l8 x; l, [6 c$ [! s(Unable to successfully query target part layout using CFI!)
+ |! m% k& v2 ?4 F) i! F現在要如何確認..
7 D. H* y( H7 E& o& K6 Q1. mwr and mrd的內容是對的?
" ~, v( Z/ q8 N8 j) ?* G( M$ ^2. flashwriter該怎麼改?
) }: l& q: x* e& L+ j" P4 v7 Q" U8 E1 n9 z
[ 本帖最後由 chchtono 於 2009-6-5 02:49 PM 編輯 ]
10#
發表於 2009-6-5 17:31:50 | 只看該作者
不同的flash設定也不一樣說 (就算實際的腳位一樣).1 h% n9 ^' T+ `

/ K- X4 Z/ U6 X" \0 ~6 l6 dmwr 跟 mrd 是MB的instruction. 不懂可以看MB的reference manual/ r1 `! }) ?! d) G! x+ W& e' [/ p
你試了之後再說你哪有問題* A$ p; u( s$ [

1 ]5 ?" D4 ^2 P7 T9 Kflashwriter 的 source code 都在EDK內 你可以去看看 再想你怎麼改! l0 M% n/ j8 g% x7 l" B. k5 I
要不然你可以自己寫一個, 用EDK裡面的library - xilflash 去讀寫
11#
 樓主| 發表於 2009-6-6 23:44:14 | 只看該作者
原帖由 huanyu 於 2009-6-5 05:31 PM 發表
3 v9 E$ Y" x. H4 fmwr 跟 mrd 是MB的instruction. 不懂可以看MB的reference manual5 v2 ~8 r9 _* b7 O2 G8 C
你試了之後再說你哪有問題
6 R  d5 o! I( V) Q3 Z

! J7 D5 p9 T0 q1 ]  F測試結果:$ d% X8 k  ]( [* Q0 Q1 M& _; S
1. Spansion S29GL256P (OK!) -> 修改原廠emc設定後才行, Y5 Z5 ]1 `% O% b
mrd -> 可以讀到數值
/ w& i5 {: A: ^mwr -> 測試改值,mrd讀回沒變?
+ u$ Y! e. a! X/ X2. MXIC MX29GL256 (CFI failure) -> 修改原廠emc設定後仍然無法動作" E, j& `; k/ H7 ?
mrd -> 讀到00 or FF1 a% P/ x1 G9 p' _) {* p* A
mwr -> 測試改值,mrd讀回沒變
12#
發表於 2009-6-12 12:42:03 | 只看該作者
1,  你可能EMC部分參數沒設好$ T5 h! N5 C( t7 g
你多是幾個不同的address( within emc memory address) 試試看
+ O! M* Y7 A9 N5 n. d- Q
$ x0 D- ~% v6 p6 a+ A2.mrd 讀到 00 or FF 代表無法讀取那個address2 }& ^  \$ m5 v& }3 \
所以應該是你設定有問題.
2 B' v: S* f8 Q% [4 M$ ]( P: d. s6 `( Q3 a1 f6 R
你可能要讀MX flash的datasheet 看是不是參數設錯
13#
 樓主| 發表於 2009-6-18 11:56:20 | 只看該作者
嗯!經由測量FLASH腳位確認之後,發現是硬體問題
9 c5 R2 i* e/ o: ]3 [目前已經解決此問題囉!' a" ]) P% ]( {: t: [
定義上是沒有問題的,謝謝大家關注
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-16 05:13 AM , Processed in 0.167009 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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