Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-5-30 21:23:03 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
最近在做Xilinx的板子,目前對這塊板子(Spartan-3A)還是無法正確的掌握  G7 t/ I3 I: n- C; c8 z6 k
其中對於燒錄Parallel flash and SPI flash燒錄不太能理解
: o$ W5 I% Y; I底下有幾個問題,請大家幫忙回覆囉!& j# h* E4 R' m; V- g0 f% D

8 _+ @2 Y; f# X- V1. Parallel+SPI flash要怎麼燒錄才能正確的使用bootloader功能3 _: z3 H5 P$ _6 P) k
2. 利用內建EDK tools, flashwriter燒錄時出現如下訊息:
* c/ ]5 b1 y# [2 n  Y" |' R    Unable to successfully query target part layout using CFI!!
" R" `7 d. R8 R6 F0 T
    目前已經初步確認過腳位,不曉得還有哪裡要注意設定的? 0 `- g0 G% X. ~" U* N' c2 H! p2 X/ P
    P.S:目前使用Spasion 29GL256P FLASH.* F0 x( f8 S( d3 I# j! I
3. EDK and ISK tools的定位在哪?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
13#
 樓主| 發表於 2009-6-18 11:56:20 | 只看該作者
嗯!經由測量FLASH腳位確認之後,發現是硬體問題
1 W* D$ p2 Y; T) a* X目前已經解決此問題囉!
- [7 P2 h& A  A2 }定義上是沒有問題的,謝謝大家關注
12#
發表於 2009-6-12 12:42:03 | 只看該作者
1,  你可能EMC部分參數沒設好& {; t- P" Q) R
你多是幾個不同的address( within emc memory address) 試試看 1 K  ?5 i) H+ O" |6 f4 \

' j. Q/ Q5 s- V/ S! R2.mrd 讀到 00 or FF 代表無法讀取那個address4 G" U, h0 ]5 |2 G4 h9 W
所以應該是你設定有問題.
" a6 _- N* N2 @. z, m' [
- K0 [; G- @6 h. N* c- b4 R你可能要讀MX flash的datasheet 看是不是參數設錯
11#
 樓主| 發表於 2009-6-6 23:44:14 | 只看該作者
原帖由 huanyu 於 2009-6-5 05:31 PM 發表 ! r- k% F6 N5 Q0 X" p
mwr 跟 mrd 是MB的instruction. 不懂可以看MB的reference manual
4 |+ K, \/ w! K/ d. r% h你試了之後再說你哪有問題

  q" I8 n6 ]/ \
0 C- F7 S8 V9 U& j. p測試結果:
) y% T( F, l8 F0 W1. Spansion S29GL256P (OK!) -> 修改原廠emc設定後才行$ K/ H* B# U& P
mrd -> 可以讀到數值1 \" e. ?& D9 ~3 G
mwr -> 測試改值,mrd讀回沒變?" K! R, E% k/ S% o  l
2. MXIC MX29GL256 (CFI failure) -> 修改原廠emc設定後仍然無法動作
2 I$ a  ]' x: _1 E& K3 [mrd -> 讀到00 or FF/ T3 H( X7 g6 |; E4 V  ^6 o$ S
mwr -> 測試改值,mrd讀回沒變
10#
發表於 2009-6-5 17:31:50 | 只看該作者
不同的flash設定也不一樣說 (就算實際的腳位一樣).
9 |9 T. I, w9 [: p- V4 U1 ^0 }* h. N" t: C' L
mwr 跟 mrd 是MB的instruction. 不懂可以看MB的reference manual3 h8 R8 Y; N8 a% K3 ?1 e
你試了之後再說你哪有問題% S* ^- W; F8 L& [+ ^
9 c. |. U- I* A, O0 e- G
flashwriter 的 source code 都在EDK內 你可以去看看 再想你怎麼改
0 p: F3 f/ C3 G. U, M* V: g要不然你可以自己寫一個, 用EDK裡面的library - xilflash 去讀寫
9#
 樓主| 發表於 2009-6-5 14:46:34 | 只看該作者
原帖由 huanyu 於 2009-6-5 12:16 PM 發表 * B* d1 p, E. M6 E! S: w
自己設計的板子你要確定你的UCF跟MHS port & parameters 都是設對的

  U7 A6 ^) J) _- }& h, \* y% F+ V! o7 H) U9 b( ?
這個已經確認是對的囉!因為可以使用其他FLASH了!
9 y3 h# s. L9 i9 N, M5 m, \* y不過現在更換成自己要使用的FLASH之後,產生無法抓取的問題!
6 L& C2 l0 g4 |) _: S& \(Unable to successfully query target part layout using CFI!)1 ?: e& u6 B7 `9 ]9 Y* p
現在要如何確認..9 }9 d, d  V1 r3 |/ Y' a( k
1. mwr and mrd的內容是對的?
5 W1 m, C0 A; K2. flashwriter該怎麼改?
* {2 ^3 |7 v- d* ?% e" n5 F% ~: i- h) j, ]
[ 本帖最後由 chchtono 於 2009-6-5 02:49 PM 編輯 ]
8#
發表於 2009-6-5 12:16:21 | 只看該作者
自己設計的板子你要確定你的UCF跟MHS port & parameters 都是設對的
( v  B1 f) k* N- h7 Y4 T4 f; {% y% T6 M) d4 {8 K
google plb2opb_bridge 或是查看你的EDK ipcore 內的 plb2opb_bridge0 h. b8 U8 h- N- l
請看datasheet 先
$ v( F8 O# z/ w, e1 x
, h/ l% M; A9 E$ K- Z" @"在#ifdef DEBUG 之前一行加#define DEBUG"
: P, {5 g# h$ J0 s, m  R假如你的flashwriter 是在bram上執行的話 你要確定BRAM夠大
! y$ l" k4 z  e( b2 g. M你可能要自行摸索. 我是沒有遇過這些問題7 c; x' ]0 _; [6 b7 \
  a6 S) F' a) |4 U- D$ c3 T
TCL 只是一個script 去產生&執行 elf
9 Z- h, x, M) T2 T* P8 R+ n6 B- R% W. o2 z& H, {  @, p
mrd 0x8c000000
& |- w; f4 d8 z${size} 可有可無) P, P' m4 o$ Q% v) h
mwr 0x8c000000 1234
4 s5 u8 ~9 R, N) u( f  ~0 N1 @( @你在XMD下 跑了他應該會告訴你正確的使用方式7 j# o. U" o  V- U7 x! g2 M
5 O# w7 ^% d; {7 Z: |$ N7 y8 a
我覺得你先用XMD 去確認你的MB 可以讀寫EMC/flash 先- K: O* C$ z9 t
try to isolate the problem first
7#
 樓主| 發表於 2009-6-4 11:05:34 | 只看該作者
在defs.h設定#define debug之後,compiler產生如下訊息:3 D) l: u& p1 T# }" f5 v8 f! S
ERROR: Unable to compile flashwriter application. Please check the following:- V( v9 _% m% ?2 v; a; [
1. Make sure the processor's libraries have been generated.
4 |/ x  m5 P+ L+ m. Q2 h3 x* u2. Make sure that you are using the Standalone BSP as the software platform for your processor.! f/ e' @7 {- v; h2 [
3. Make sure that XILINX_EDK has been set correctly and that all the EDK GNU tools available."
6#
 樓主| 發表於 2009-6-3 23:21:57 | 只看該作者
flashwriter這個小程式,不曉得有沒有人有經驗可以分享要修改哪些檔案?& v, Z- n2 L6 \, b, M& `
還有compiler這支程式可以套用進去支援新flash?
: ]& ~( e* z! i感恩感恩..
5#
 樓主| 發表於 2009-6-3 21:12:49 | 只看該作者
XBD=Xilinx Board Definition
) B* _$ i% o& `9 b8 @) r假如你的版子支援BSB wizard. 那EMC的設定應該沒有問題% N; C# F9 S: _+ U  K3 p  k
你是用哪一張版子(自己設計的還是XILINX的開發粄)阿? 跟哪一個版本的EDK...
3 s3 V& Y2 N/ `& M7 C; G0 t9 l  i; K7 M6 N
你現在是用opb bus  y7 v2 v5 @) ]- \+ S+ C, p7 k! A) d
新版的EDK好像都是用PLB. 假如你是自行加OPB_EMC的話 你要bridge opb 跟 plb . 還有EMC的port跟parameter要設定. 我沒有辦法告訴你的parameter的設定對不對. 因為這些設定要對應flash本身的設定

, [5 ?  r* I% w  L6 ~% _$ ~  U* E4 a& m  n2 Q
我使用的是自己設計的板子,開發版本為EDK 10.1.35 _' A+ L# c( C7 f
想要請問一下,如果是OPB or PLB的設定,我該怎麼加入設定值?3 M1 |! d# x4 n8 m- m1 ^# u
有資料可以參考嗎?
- x6 `/ r; ^) Q1 [' Z0 F) d( O" j& m
也有可能是flashwriter 沒有支援你的 flash 或是 你flashwriter的參數設錯了, e/ _- G' X# {; |9 o& V
你可以用flashwriter的debug mode
. Q% ]! [* O  X3 E+ t1 A  F$ C改\EDK\data\xmd\flashwriter\src的defs.h
: B  E4 l( `% b6 j8 `在#ifdef DEBUG 之前一行加#define DEBUG
; B8 f2 R" j1 f( t% `8 l6 U, a
xmd:& n! `; j1 I& w  k" ^+ h$ b
CFI query 基本上也是寫一個簡單C program 去讀寫flash2 @* W4 u, G% f% A8 X. V4 E( C
或是
' W% U5 `' k  o6 k9 h讀: mrd ${address} ${size}, ]' f# j6 I2 }* S' l+ A: v# A8 q
寫: mwr ${address} ${value}

& D. V# B* @+ e9 y  {8 E  J: E1 R6 B7 A; H% k$ G; _- I
1.我有修改過
7 y4 h) j+ b( P6 o( U( @\EDK\data\xmd\flashwriter\src的defs.h
& [  f+ o: C. m: }) B在#ifdef DEBUG 之前一行加#define DEBUG6 a# R' z# F/ n9 }  V7 R) F8 e
不過在xmd視窗執行時,他就會說無法使用 (拿掉define居然又可用!)0 b1 J' f, U4 A2 S& C) F8 o

3 c4 u! g1 h% K  A' `) T' H2.flashwriter具體要修改哪幾個檔案?可以指導一下嗎?* @) y1 m5 G' |3 o
我看了一下flashwriter.tcl,不曉得需要動到flashwriter目錄的哪個檔案rebuild才有用1 N% _) O* L" Y, W* R
因為flashwriter.tcl好像是直接執行.elf檔案?
: M, L2 D4 X/ W: x) L" v6 P2 v/ ]& k, b' L* f, t% U, r; I
3. mrd and mwr具體下指令是這樣嗎?, T4 M# U) [0 ?) ^' T! D
mrd $0x8c000000 $0x80
; _7 v0 v' P; W- w5 u' fmwr $0x8c000000 $0x80
4#
發表於 2009-6-3 15:14:15 | 只看該作者
XBD=Xilinx Board Definition
' e0 U" i$ o9 x1 o假如你的版子支援BSB wizard. 那EMC的設定應該沒有問題
( {" j  h8 [' a  N, H5 r# W9 @+ `' O4 ?你是用哪一張版子(自己設計的還是XILINX的開發粄)阿? 跟哪一個版本的EDK...
$ z1 s3 n/ w3 M" f
1 y/ Y: b: Q$ Y. H5 q你現在是用opb bus
) c4 X! K7 m6 m" e新版的EDK好像都是用PLB. 假如你是自行加OPB_EMC的話 你要bridge opb 跟 plb . 還有EMC的port跟parameter要設定. 我沒有辦法告訴你的parameter的設定對不對. 因為這些設定要對應flash本身的設定4 V, g# u: f1 U/ _' Z! b

5 H4 B$ x1 _) d* i2.
; b# [0 c1 t: B$ W: T2 N1 l也有可能是flashwriter 沒有支援你的 flash 或是 你flashwriter的參數設錯了
6 y5 q' y0 v& [3 \' @1 [" N" X  \你可以用flashwriter的debug mode
" G2 E6 D2 k4 R* h$ h7 ?; Y改\EDK\data\xmd\flashwriter\src的defs.h
; T) q6 u9 t3 k/ G0 B7 g( [+ T在#ifdef DEBUG 之前一行加#define DEBUG3 b1 B5 K5 W/ Y# g( X2 h1 C

9 s: O$ e* C% a8 ?xmd:, i) J5 f1 G0 F; r' i2 F3 G
CFI query 基本上也是寫一個簡單C program 去讀寫flash
3 w2 s0 j7 g* P7 }& p或是
) r6 q" P  D/ T' A" B/ a3 H+ {5 C0 i讀: mrd ${address} ${size}/ v0 a) s) [  S! l) _+ O
寫: mwr ${address} ${value}
* [1 C5 W0 {" \# e9 i! v/ V
  y9 S  c# V$ [% R( o  P+ P2 r, V: ^[ 本帖最後由 huanyu 於 2009-6-3 03:37 PM 編輯 ]
3#
 樓主| 發表於 2009-6-1 16:25:43 | 只看該作者
再度請問:
- p1 P* F- L* `( {2 ?, ?4 ?) d: P  l9 ]) f) K9 c8 A% v' d
1. 什麼是XBD啊? 現在我手邊的版子是Spartan-3A, 請問EMC是要設定什麼東西呢? ! F8 E: v5 h" B/ Y
2. XMD底下,用CFI query怎麼看CFI data啊? 這個真的就不清楚囉! 可以指導下嗎?
3 z) Z0 ?8 N% h- R/ G& U9 e" g/ [8 i/ A1 ~; H! A
貼下system.mhs的EMC設定7 k+ Z& p, D- T- e  Y
  j5 V+ p5 @' H! P
BEGIN opb_emc3 u* s9 T5 I  m
PARAMETER INSTANCE = FLASH_2Mx16
7 n. _: K1 T! V4 E% W0 [9 r PARAMETER HW_VER = 2.00.a
- W7 g2 M8 c! s6 Q: d# J PARAMETER C_OPB_CLK_PERIOD_PS = 20000
$ l0 L3 Z# Y1 { PARAMETER C_NUM_BANKS_MEM = 1
" R2 n4 `* f$ r, c8 w4 t PARAMETER C_MAX_MEM_WIDTH = 169 ^! K# g" }2 @, S/ l9 O0 Y
PARAMETER C_MEM0_WIDTH = 16
2 u2 m4 J9 h8 P" f7 |. b: u$ X PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 1
! K% Q: [; A* j PARAMETER C_SYNCH_MEM_0 = 0$ H- U4 f; l; L' x+ x
PARAMETER C_TCEDV_PS_MEM_0 = 700007 y9 N9 B' h( M' K+ M( F
PARAMETER C_TAVDV_PS_MEM_0 = 70000; ~! y8 y/ I* T) U
PARAMETER C_TWC_PS_MEM_0 = 70000
! W7 \3 g5 m' I! M: C+ H, u PARAMETER C_TWP_PS_MEM_0 = 450001 y, h3 t1 [" A
PARAMETER C_THZCE_PS_MEM_0 = 25000
. S1 S& }: l- b9 ^  u PARAMETER C_THZOE_PS_MEM_0 = 25000* s6 a! w4 V# K9 W4 W
PARAMETER C_TLZWE_PS_MEM_0 = 5000
8 a, O/ j0 f: W; Q4 t8 c1 l/ ] PARAMETER C_MEM0_BASEADDR = 0x42000000  o0 c/ p7 n3 w; ^4 z/ P
PARAMETER C_MEM0_HIGHADDR = 0x43ffffff! P' k% N% f; I
BUS_INTERFACE SOPB = mb_opb
$ l+ L. h) D  v* I% k PORT OPB_Clk = sys_clk_s
9 c* q# g; \2 L4 Z" j5 z# U PORT Mem_A = 0b0000000000 & FLASH_Mem_A -> 這行是做什麼用途?
8 q% T* o6 y+ z& X PORT Mem_DQ = FLASH_Mem_DQ
* T% Z4 c5 [9 T5 W1 E8 d PORT Mem_OEN = FLASH_Mem_OEN
+ F- j% R" T8 H* z PORT Mem_WEN = FLASH_Mem_WEN- g8 s) \  b' a" D
PORT Mem_CEN = FLASH_Mem_CEN
3 _* k8 p7 x9 K. @5 e: wEND' |- \2 H6 s( C, D3 C# C) L* F

( H1 C' ?: s# x' C以上這樣設定對嗎?6 h6 [. _) D" U

, J2 Z- V/ A% _+ Z6 |[ 本帖最後由 chchtono 於 2009-6-1 04:39 PM 編輯 ]
2#
發表於 2009-6-1 14:42:03 | 只看該作者
1. 假如你是用MicroBlaze的話 你需要寫 first stage bootloader (FSB) (存放在MicroBlaze's  BRAM). FSB 再去讀取指定的bootloader (Parallel+SPI flash)
( d% T% _$ N4 U* e2. 如果腳位對了. EMC的設定要注意 (假如你的版子沒有XBD,你是用哪一張版子). 最好看一下EMC的datasheet.
! S- X" G0 j& p1 w1 W可以在XMD底下 用CFI query 看看 回復的CFI data 有沒有正確: a9 v9 d4 y. z7 F
3. % `' x! Z0 W/ V: ~+ o: x! X
EDK 是 system design
: K) U: g4 _) W" ]( ?ISE 是 core design
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-16 05:12 AM , Processed in 0.174010 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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