Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-5-30 21:23:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近在做Xilinx的板子,目前對這塊板子(Spartan-3A)還是無法正確的掌握7 m6 k/ Z/ ?7 ~' u$ Q& L: K" o+ {1 @
其中對於燒錄Parallel flash and SPI flash燒錄不太能理解2 ]7 c; l+ p! @6 Z* y8 l2 A
底下有幾個問題,請大家幫忙回覆囉!# [3 s2 Q5 l) N- ], k

( Y9 ^' V$ ?/ T- H: C1. Parallel+SPI flash要怎麼燒錄才能正確的使用bootloader功能0 ^* ?6 F- D; g
2. 利用內建EDK tools, flashwriter燒錄時出現如下訊息:
. u$ a8 ^; i- C& b; V: a/ `' @6 v    Unable to successfully query target part layout using CFI!!
. f+ q7 _8 c: x
    目前已經初步確認過腳位,不曉得還有哪裡要注意設定的? : w& T( C& m: t- e( H
    P.S:目前使用Spasion 29GL256P FLASH.  Y  o7 X0 N# H* \
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)
! k, ]0 S' e/ ~9 Q) N) \) e2. 如果腳位對了. EMC的設定要注意 (假如你的版子沒有XBD,你是用哪一張版子). 最好看一下EMC的datasheet. 8 r/ e4 U+ @0 I' H
可以在XMD底下 用CFI query 看看 回復的CFI data 有沒有正確
6 }( [1 n) A  l1 P+ ]0 Z3.
2 k7 ^# `) V& l- z) x, W5 {7 _EDK 是 system design! f5 |4 I, b$ g: n# e" q
ISE 是 core design
3#
 樓主| 發表於 2009-6-1 16:25:43 | 只看該作者
再度請問:
  a) i) B* w5 K& C( N8 N3 h( R2 n$ ?2 I; @2 E; K& z
1. 什麼是XBD啊? 現在我手邊的版子是Spartan-3A, 請問EMC是要設定什麼東西呢?
5 z3 L* c, t. X. L8 s& r- R8 P2. XMD底下,用CFI query怎麼看CFI data啊? 這個真的就不清楚囉! 可以指導下嗎?: n# G% X. n2 ]& X, F9 h

9 w4 n7 b  v1 M2 z# j' Y. l- [貼下system.mhs的EMC設定
, ^' ~- }9 t2 e" E  M8 O) K2 b% Q' B/ T9 n! _4 `" p
BEGIN opb_emc/ }* J7 l+ o! X3 j% t2 ?5 e
PARAMETER INSTANCE = FLASH_2Mx16
' S6 o: n2 Z. m- a  l, E: b) Z: w+ W PARAMETER HW_VER = 2.00.a/ t" e5 w# i% i% W6 s
PARAMETER C_OPB_CLK_PERIOD_PS = 20000& ?6 w! @2 z$ a1 e/ o8 t" E0 c
PARAMETER C_NUM_BANKS_MEM = 1
; N) {. ?& J5 I' y' g0 y PARAMETER C_MAX_MEM_WIDTH = 16
5 f/ \3 D7 t! B0 \8 P PARAMETER C_MEM0_WIDTH = 16
( s; f% m) p8 M5 s) r# U. k; U4 o PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 1* V8 {. {7 R2 k
PARAMETER C_SYNCH_MEM_0 = 08 j/ M3 H4 W' W' M4 u
PARAMETER C_TCEDV_PS_MEM_0 = 700002 b' Q4 C9 q( Z( z& j8 ^  }
PARAMETER C_TAVDV_PS_MEM_0 = 70000( {" d  b! f0 M$ w' H& r& C: M
PARAMETER C_TWC_PS_MEM_0 = 70000
! u, c+ l& M/ m( e- D. C PARAMETER C_TWP_PS_MEM_0 = 45000; w& H" ?8 C. K  w4 S) P% k# m+ R
PARAMETER C_THZCE_PS_MEM_0 = 25000* a9 Z( F$ f/ v' ?6 z: [" b
PARAMETER C_THZOE_PS_MEM_0 = 25000
* ]. I! b9 `: U: j6 r( o' u! v; |* q PARAMETER C_TLZWE_PS_MEM_0 = 5000
$ Z. G3 v) p, K6 r4 Z. `  Y PARAMETER C_MEM0_BASEADDR = 0x42000000( K- S/ `* x" q
PARAMETER C_MEM0_HIGHADDR = 0x43ffffff
' J( F; A( m5 ~8 q4 J BUS_INTERFACE SOPB = mb_opb. g, S6 M: g; z
PORT OPB_Clk = sys_clk_s
+ t* m: Q5 v& P4 Q! t7 M" u7 V+ K- o8 C9 e PORT Mem_A = 0b0000000000 & FLASH_Mem_A -> 這行是做什麼用途?
- @* K. S3 k. t0 P  T PORT Mem_DQ = FLASH_Mem_DQ
: j  W' H; `7 p. k2 J2 j, G, A PORT Mem_OEN = FLASH_Mem_OEN+ G: N  z- l) N1 H6 q: Z6 z
PORT Mem_WEN = FLASH_Mem_WEN
3 T0 d: w; V/ y0 U. Q3 I) A PORT Mem_CEN = FLASH_Mem_CEN
0 b. D  A6 p. {9 @2 c) TEND
& Q* S- ]+ y+ Q! |/ F* |" ^4 \6 u3 Q" R- m. O4 a
以上這樣設定對嗎?8 U) H% Q# b& s+ H5 y" \7 ^

$ h( z7 H- t# O4 s4 E[ 本帖最後由 chchtono 於 2009-6-1 04:39 PM 編輯 ]
4#
發表於 2009-6-3 15:14:15 | 只看該作者
XBD=Xilinx Board Definition 7 N& x0 \& {. l! n' i2 B0 @1 D, R
假如你的版子支援BSB wizard. 那EMC的設定應該沒有問題4 W3 E( `& k4 v: ~
你是用哪一張版子(自己設計的還是XILINX的開發粄)阿? 跟哪一個版本的EDK...
1 o% D+ b9 I, g1 M0 x. E, ?2 v$ m8 G# {4 a  n# Y5 P
你現在是用opb bus$ \( j; v: F! u
新版的EDK好像都是用PLB. 假如你是自行加OPB_EMC的話 你要bridge opb 跟 plb . 還有EMC的port跟parameter要設定. 我沒有辦法告訴你的parameter的設定對不對. 因為這些設定要對應flash本身的設定
/ C% r' q. b8 Z0 x8 i& c0 G- T$ e7 n' P* `: I, ^! P5 G
2.
* ~, {& n: C0 j5 e1 Q9 B* t也有可能是flashwriter 沒有支援你的 flash 或是 你flashwriter的參數設錯了
- W+ i& n7 g: k$ c) u你可以用flashwriter的debug mode
9 ~2 z  x4 f+ N2 {5 B改\EDK\data\xmd\flashwriter\src的defs.h
8 B" d' d! I) i; n1 b在#ifdef DEBUG 之前一行加#define DEBUG
8 s) }: `3 x1 V
2 g2 i3 ^" @. o9 g, F0 Axmd:
8 Z; C6 t. ]/ q6 @" MCFI query 基本上也是寫一個簡單C program 去讀寫flash( j) W' ~' t" Z# U0 P7 d
或是
& A& Y8 w' t" s讀: mrd ${address} ${size}
% n, A: K6 k3 h" `. ^% `( V寫: mwr ${address} ${value}
9 A, J+ `" V, I* t; e1 ~: U8 T6 ~# A0 q& E* B
[ 本帖最後由 huanyu 於 2009-6-3 03:37 PM 編輯 ]
5#
 樓主| 發表於 2009-6-3 21:12:49 | 只看該作者
XBD=Xilinx Board Definition
1 u3 D$ m' }6 U# T假如你的版子支援BSB wizard. 那EMC的設定應該沒有問題! Q% Z8 E7 U! T" l4 ^0 _
你是用哪一張版子(自己設計的還是XILINX的開發粄)阿? 跟哪一個版本的EDK...1 w- b# x& P. Y+ d9 G
3 ~1 c- W; Y' P8 h
你現在是用opb bus% H' X- N" w0 F
新版的EDK好像都是用PLB. 假如你是自行加OPB_EMC的話 你要bridge opb 跟 plb . 還有EMC的port跟parameter要設定. 我沒有辦法告訴你的parameter的設定對不對. 因為這些設定要對應flash本身的設定
, l- g7 O* v4 Q- k. H: e2 a8 T5 K

: u$ G, E; o+ h我使用的是自己設計的板子,開發版本為EDK 10.1.3
( p& i$ L) G) ^8 ~) S! g想要請問一下,如果是OPB or PLB的設定,我該怎麼加入設定值?! {% F: ~; L: _# h$ O6 k. J9 t
有資料可以參考嗎?
/ w7 K) i. }& {' {
& ~; p0 O% n7 x6 C4 Z
也有可能是flashwriter 沒有支援你的 flash 或是 你flashwriter的參數設錯了5 ?! O% W4 F6 V& e4 N# E- l& ]
你可以用flashwriter的debug mode! ]: _! @9 e7 |9 J
改\EDK\data\xmd\flashwriter\src的defs.h
& d  ~1 y. U8 I2 R& }在#ifdef DEBUG 之前一行加#define DEBUG4 L" ^( v$ L' ~3 P* J: ~  [2 v$ U

* y9 E6 z- C' p1 T( e8 q7 X* wxmd:
6 c6 i9 \+ x% ]CFI query 基本上也是寫一個簡單C program 去讀寫flash- k% n6 e  ]" \7 M
或是# j: L' m4 D9 e8 k1 P3 C
讀: mrd ${address} ${size}3 ?6 p/ _  J5 E8 U3 H
寫: mwr ${address} ${value}

) W8 ~' i, n  T2 D+ A* @' z
$ K$ |- b6 v3 e% p9 z1 j" B5 I1.我有修改過
2 n* L$ v: K6 f: c- o3 D\EDK\data\xmd\flashwriter\src的defs.h+ }& b" c* d' A/ J4 [
在#ifdef DEBUG 之前一行加#define DEBUG  L( T1 t) O0 {; N+ x1 m
不過在xmd視窗執行時,他就會說無法使用 (拿掉define居然又可用!)( S  M6 p0 f% n7 J; m( z. `; M5 l
. m; P, j- R' X" {( M  u
2.flashwriter具體要修改哪幾個檔案?可以指導一下嗎?
% W# l3 u, _$ Z6 k' C) L6 h0 q我看了一下flashwriter.tcl,不曉得需要動到flashwriter目錄的哪個檔案rebuild才有用9 n/ s3 \# W: d6 x+ ~7 i( d
因為flashwriter.tcl好像是直接執行.elf檔案?
% E  H0 y# C7 q8 M: r- x. L
* S1 N9 Z! N. ?3 T4 S; M+ q0 {3. mrd and mwr具體下指令是這樣嗎?
$ ^* i" g2 f: wmrd $0x8c000000 $0x802 f& T% L- A. t, @3 r+ t
mwr $0x8c000000 $0x80
6#
 樓主| 發表於 2009-6-3 23:21:57 | 只看該作者
flashwriter這個小程式,不曉得有沒有人有經驗可以分享要修改哪些檔案?. ?1 e6 |4 {5 D9 X
還有compiler這支程式可以套用進去支援新flash?; N6 P4 D9 O' Z
感恩感恩..
7#
 樓主| 發表於 2009-6-4 11:05:34 | 只看該作者
在defs.h設定#define debug之後,compiler產生如下訊息:
2 B' ~& f  P4 h! }& ]' cERROR: Unable to compile flashwriter application. Please check the following:
$ G. m% ?/ H7 ^1 I' ?- U. B" a( [1. Make sure the processor's libraries have been generated.
* T. @7 t; K0 F9 b6 F3 P2 F/ T5 N2. Make sure that you are using the Standalone BSP as the software platform for your processor.& W, O! m5 W7 ?: R  w
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 都是設對的" C4 d- m) g# S( x" Q6 K2 [

$ L" G' {0 Z) x3 v% }% tgoogle plb2opb_bridge 或是查看你的EDK ipcore 內的 plb2opb_bridge! e  J) Y7 n% L
請看datasheet 先7 v0 I" U" c. p4 g6 V7 ^, a" E& W
) F$ I, U3 G% ^9 A1 j* A
"在#ifdef DEBUG 之前一行加#define DEBUG"* a. R- Q. q# T2 P, W
假如你的flashwriter 是在bram上執行的話 你要確定BRAM夠大
1 C& @4 N& M( J/ X. X2 @* v你可能要自行摸索. 我是沒有遇過這些問題) {6 c% a: @; ]3 C) ^, b% I
0 z! r  E2 T1 `) x- G" Z
TCL 只是一個script 去產生&執行 elf
% W" P0 o! Z% [. ]4 L9 `: }! p1 [" v# h& N+ F3 Z7 r
mrd 0x8c000000 1 a4 T) A8 U( Y$ p3 H
${size} 可有可無
9 B" d1 k) Q. w" d6 y9 U. m5 R- Qmwr 0x8c000000 1234
7 A) T% j7 ?" e8 ?" n) e你在XMD下 跑了他應該會告訴你正確的使用方式
6 j: d; L1 S  N1 `. x8 G+ A+ B# X$ B
) t  ~: o& A$ W5 t我覺得你先用XMD 去確認你的MB 可以讀寫EMC/flash 先" v+ u+ @  k' W3 x& J
try to isolate the problem first
9#
 樓主| 發表於 2009-6-5 14:46:34 | 只看該作者
原帖由 huanyu 於 2009-6-5 12:16 PM 發表 7 v' u6 T( f$ i  @  L% z- U
自己設計的板子你要確定你的UCF跟MHS port & parameters 都是設對的
9 Q. _  k% t; t2 u4 E; i

) H+ u! E0 R  b) I. _9 C0 K, c這個已經確認是對的囉!因為可以使用其他FLASH了!
4 B& b$ m4 K% F不過現在更換成自己要使用的FLASH之後,產生無法抓取的問題!% y1 @( `" d$ n3 T# [
(Unable to successfully query target part layout using CFI!)
8 g6 ^; f2 g! e現在要如何確認..
  j- u! n+ y  C1 o) |5 L1. mwr and mrd的內容是對的?- {9 z: ^$ H, }
2. flashwriter該怎麼改?5 A: v! n0 G  O3 w5 Y

3 M8 u" z, t- Z! e* A6 V[ 本帖最後由 chchtono 於 2009-6-5 02:49 PM 編輯 ]
10#
發表於 2009-6-5 17:31:50 | 只看該作者
不同的flash設定也不一樣說 (就算實際的腳位一樣).  J" \1 ^2 w9 N2 w

  E. q: g% j) p0 H" |mwr 跟 mrd 是MB的instruction. 不懂可以看MB的reference manual6 d4 ]  y& {$ V5 B$ F" Q) m2 O
你試了之後再說你哪有問題+ _  O# `. c* B8 [# C% T# ^# A

0 |; D. q* b. f( p% kflashwriter 的 source code 都在EDK內 你可以去看看 再想你怎麼改
( F" [- y1 W: Q5 f5 ]+ v$ q要不然你可以自己寫一個, 用EDK裡面的library - xilflash 去讀寫
11#
 樓主| 發表於 2009-6-6 23:44:14 | 只看該作者
原帖由 huanyu 於 2009-6-5 05:31 PM 發表
3 d: n( U; A1 |& w8 Tmwr 跟 mrd 是MB的instruction. 不懂可以看MB的reference manual$ G. N1 _1 Z) N# x% v: G  ~
你試了之後再說你哪有問題
' G6 n) O9 P) p1 C# C
+ M- O) @  H2 f) x9 h
測試結果:/ o  a) O- g2 |; U$ `( S! p  Z
1. Spansion S29GL256P (OK!) -> 修改原廠emc設定後才行- k2 n; p3 Q4 o' |& j
mrd -> 可以讀到數值
4 G2 {. i3 g9 p) Y8 Imwr -> 測試改值,mrd讀回沒變?
+ ^3 q, b9 ^) }: W3 ^. e3 m2. MXIC MX29GL256 (CFI failure) -> 修改原廠emc設定後仍然無法動作
5 N3 z( Z  `- d% |# fmrd -> 讀到00 or FF6 j) C. f: T. ]( a
mwr -> 測試改值,mrd讀回沒變
12#
發表於 2009-6-12 12:42:03 | 只看該作者
1,  你可能EMC部分參數沒設好
! A3 U1 E: D, }8 u1 m你多是幾個不同的address( within emc memory address) 試試看
9 p  j  I; e+ G0 Y$ x/ ^/ R# m% K/ |- M* ]
2.mrd 讀到 00 or FF 代表無法讀取那個address
& e* D" d+ w3 _所以應該是你設定有問題.
# l( x+ S( N: K& \+ ?% e7 L- V: K
你可能要讀MX flash的datasheet 看是不是參數設錯
13#
 樓主| 發表於 2009-6-18 11:56:20 | 只看該作者
嗯!經由測量FLASH腳位確認之後,發現是硬體問題
+ m0 H8 x5 G# Y' ^/ D9 Y1 t目前已經解決此問題囉!
' m$ f  q6 L: m定義上是沒有問題的,謝謝大家關注
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-6 05:46 PM , Processed in 0.111007 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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