Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-5-30 21:23:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近在做Xilinx的板子,目前對這塊板子(Spartan-3A)還是無法正確的掌握7 f; T/ {, W( ]" o
其中對於燒錄Parallel flash and SPI flash燒錄不太能理解6 V4 k3 f7 E: r) m* _8 W
底下有幾個問題,請大家幫忙回覆囉!
5 o$ e/ E: I; m  \/ N' [0 o4 V  {4 v+ S( c
1. Parallel+SPI flash要怎麼燒錄才能正確的使用bootloader功能
* y+ R9 t+ {4 v: r. y2. 利用內建EDK tools, flashwriter燒錄時出現如下訊息:
! o, r# \$ o+ h    Unable to successfully query target part layout using CFI!!
" ^2 Y( L7 r1 j% q: A$ E8 N) }
    目前已經初步確認過腳位,不曉得還有哪裡要注意設定的? 8 g# v- Q* F- y, ~+ V
    P.S:目前使用Spasion 29GL256P FLASH.
# W& g5 z# r7 {: h; t& ?& j: c7 v% {- k3. 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)- I: z" T0 r3 n5 U; y
2. 如果腳位對了. EMC的設定要注意 (假如你的版子沒有XBD,你是用哪一張版子). 最好看一下EMC的datasheet. 6 ^2 R0 `' a( J% ~. ]; `5 \
可以在XMD底下 用CFI query 看看 回復的CFI data 有沒有正確
( q! I/ {$ b" f3.
' }6 W/ e/ @+ j5 X9 r) P9 gEDK 是 system design: A1 O2 Q) E$ d9 B3 Q4 j; I
ISE 是 core design
3#
 樓主| 發表於 2009-6-1 16:25:43 | 只看該作者
再度請問:: w3 c2 h, u' p, }+ W6 Z/ `; R& ~

# M5 j$ w4 ]; ]9 Q1. 什麼是XBD啊? 現在我手邊的版子是Spartan-3A, 請問EMC是要設定什麼東西呢? * V% R" u8 U' G; {: p- I( m: i
2. XMD底下,用CFI query怎麼看CFI data啊? 這個真的就不清楚囉! 可以指導下嗎?
9 T0 u2 }; k8 e% i, C
# A& N& G+ {" y; h2 q$ F貼下system.mhs的EMC設定& w6 F* W1 j! A8 I8 Z2 e5 X& w
) @0 r6 v7 }4 d5 G, o
BEGIN opb_emc- q" e, o7 ?+ {
PARAMETER INSTANCE = FLASH_2Mx16
# ^' m8 Z4 _( k, ?5 P PARAMETER HW_VER = 2.00.a
. i0 y7 E6 p2 H PARAMETER C_OPB_CLK_PERIOD_PS = 20000
, G0 Q) H1 j( H8 t PARAMETER C_NUM_BANKS_MEM = 1$ x/ |2 d' A& ~" b, {; M4 t4 E5 P
PARAMETER C_MAX_MEM_WIDTH = 16
/ x1 b5 @) Q4 h3 H: Z# y; C PARAMETER C_MEM0_WIDTH = 16, z' b; [: W1 g. v* {: |; d
PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 1
1 I8 G1 b: @! K- T5 Z PARAMETER C_SYNCH_MEM_0 = 0
, l( f+ ^: K; h% f% U! Q7 s, t/ n PARAMETER C_TCEDV_PS_MEM_0 = 70000! Q4 @  a  q5 h; A/ B5 T, f# d
PARAMETER C_TAVDV_PS_MEM_0 = 70000
$ D) H) Z9 E6 f. @1 }; T PARAMETER C_TWC_PS_MEM_0 = 700004 f( {9 e  ]9 {- g
PARAMETER C_TWP_PS_MEM_0 = 45000
: r* Y+ K; ?3 R6 u" H" f, D" E4 K PARAMETER C_THZCE_PS_MEM_0 = 250007 W, L, e% m1 K  |
PARAMETER C_THZOE_PS_MEM_0 = 25000  h; v4 C5 t0 w# y! s1 |7 z. N
PARAMETER C_TLZWE_PS_MEM_0 = 50007 S" T% j) l' E  N+ u+ v2 |
PARAMETER C_MEM0_BASEADDR = 0x42000000
% X  y5 a# {7 u( ~. C+ j( m' O PARAMETER C_MEM0_HIGHADDR = 0x43ffffff
  H# \- q9 [/ s  z BUS_INTERFACE SOPB = mb_opb8 c6 U) Y$ i, }$ k
PORT OPB_Clk = sys_clk_s5 Q/ c9 Q( x# h" {6 C3 X( D: b
PORT Mem_A = 0b0000000000 & FLASH_Mem_A -> 這行是做什麼用途?
& @0 I, N8 T6 g4 ?( n( u PORT Mem_DQ = FLASH_Mem_DQ
; L6 f# v& u0 o4 J) v PORT Mem_OEN = FLASH_Mem_OEN! j/ r9 T$ ~) z! a! R
PORT Mem_WEN = FLASH_Mem_WEN! S! x5 q0 F. {
PORT Mem_CEN = FLASH_Mem_CEN
8 @6 H2 F& K4 N# a+ o% XEND
- `, Z- z" ^  Z/ S. e" h0 h; }' h1 J, E, x
以上這樣設定對嗎?9 W# t5 w4 O/ Z! \: e! L

& _# s6 K& ?* d4 W[ 本帖最後由 chchtono 於 2009-6-1 04:39 PM 編輯 ]
4#
發表於 2009-6-3 15:14:15 | 只看該作者
XBD=Xilinx Board Definition
+ ^& Y- k* }  A' u假如你的版子支援BSB wizard. 那EMC的設定應該沒有問題$ ^, }( U* ]4 B0 @1 G
你是用哪一張版子(自己設計的還是XILINX的開發粄)阿? 跟哪一個版本的EDK...
2 T: M# k0 P- ?! a8 {- V
( r: v5 T" C; O4 z$ _你現在是用opb bus5 `2 P) V+ y& _/ y' T; k3 c7 c+ V
新版的EDK好像都是用PLB. 假如你是自行加OPB_EMC的話 你要bridge opb 跟 plb . 還有EMC的port跟parameter要設定. 我沒有辦法告訴你的parameter的設定對不對. 因為這些設定要對應flash本身的設定
2 }, Q" `  D2 Y; q5 H6 L
. i( J, u' ]5 @2.
5 Q# F2 K+ v2 T也有可能是flashwriter 沒有支援你的 flash 或是 你flashwriter的參數設錯了
$ k8 P0 i: Q" u/ \1 l你可以用flashwriter的debug mode
. m* M  Z8 O4 y$ B& t8 ^. F  n改\EDK\data\xmd\flashwriter\src的defs.h
& d  w& \% c, x8 F4 E在#ifdef DEBUG 之前一行加#define DEBUG
0 e+ X3 Z4 N: u( R) @, x0 M( r' b# g' a/ ~4 Y# N6 |* P; `8 b6 @
xmd:
8 ^$ g' }7 ]+ o6 d6 zCFI query 基本上也是寫一個簡單C program 去讀寫flash
0 g2 Q4 Z/ K1 N/ f" i7 A或是
4 h6 }' i7 A: B# V+ w: E% L3 [讀: mrd ${address} ${size}
  s2 p, y9 m# G! o7 X7 @9 V0 _寫: mwr ${address} ${value}
! C! L: Y2 t) F; \7 J
% a- X1 S, c( A& }( O0 \' _# |: Y! j' p[ 本帖最後由 huanyu 於 2009-6-3 03:37 PM 編輯 ]
5#
 樓主| 發表於 2009-6-3 21:12:49 | 只看該作者
XBD=Xilinx Board Definition
7 b3 A! T# N' A5 I  _. t, F假如你的版子支援BSB wizard. 那EMC的設定應該沒有問題5 {' H  a$ L5 o% A& v2 l
你是用哪一張版子(自己設計的還是XILINX的開發粄)阿? 跟哪一個版本的EDK...2 v% X3 W+ e3 n2 B

1 J* ?  j3 z- G' c/ r你現在是用opb bus
4 n2 z8 {5 D1 E* r新版的EDK好像都是用PLB. 假如你是自行加OPB_EMC的話 你要bridge opb 跟 plb . 還有EMC的port跟parameter要設定. 我沒有辦法告訴你的parameter的設定對不對. 因為這些設定要對應flash本身的設定

) O# H8 h2 p' a: K! |# M' i9 y3 o
4 J( L5 \( q" h我使用的是自己設計的板子,開發版本為EDK 10.1.3% J, G- }1 k1 f& ?# [9 X7 ?
想要請問一下,如果是OPB or PLB的設定,我該怎麼加入設定值?5 l+ @9 I  u8 ~, D
有資料可以參考嗎?
' R+ v9 s9 a* M9 J2 s" Q
7 E& Y% o9 [, F- b. B- \8 W
也有可能是flashwriter 沒有支援你的 flash 或是 你flashwriter的參數設錯了
. h* V& G3 y7 U你可以用flashwriter的debug mode( m2 A, n6 f* r( V1 {. n
改\EDK\data\xmd\flashwriter\src的defs.h
& X  h( k9 F% J' Z& Z在#ifdef DEBUG 之前一行加#define DEBUG
& J  O9 h; C# b* w* G1 y
$ N) E- B- c/ }" y% A% d8 B5 f; g5 `xmd:
, D3 r) {4 {& S4 [) d, x) W! E/ cCFI query 基本上也是寫一個簡單C program 去讀寫flash
- ~1 K- y9 t9 N/ {) S或是
( o# M* b' c& g6 d/ q讀: mrd ${address} ${size}
, |/ q' b( o9 q9 Q  L* {5 H& |寫: mwr ${address} ${value}
% W7 _7 t  X% X+ R0 d

  J4 U' h! J) N! J3 g5 h1.我有修改過
( o0 a; g" w# x& _- w. u% }, r( v\EDK\data\xmd\flashwriter\src的defs.h/ N4 @# u  `: J/ G
在#ifdef DEBUG 之前一行加#define DEBUG
7 P7 U) u2 g3 y2 K" E, _不過在xmd視窗執行時,他就會說無法使用 (拿掉define居然又可用!)
2 G# J3 h2 p2 I/ T# k8 O8 O+ A3 C* ^9 U) V6 x/ |5 f
2.flashwriter具體要修改哪幾個檔案?可以指導一下嗎?) a) q. S& B/ ?/ s. g# N* j% X! g& R- H
我看了一下flashwriter.tcl,不曉得需要動到flashwriter目錄的哪個檔案rebuild才有用: F9 J" o" o3 p6 |) n# N
因為flashwriter.tcl好像是直接執行.elf檔案?
; x- u; `: ^. h4 S9 v( `' S
) Z+ n* f0 s: O' S% K0 R% C3. mrd and mwr具體下指令是這樣嗎?  ]  A! Y5 e( s
mrd $0x8c000000 $0x80
, z5 h" u- t7 qmwr $0x8c000000 $0x80
6#
 樓主| 發表於 2009-6-3 23:21:57 | 只看該作者
flashwriter這個小程式,不曉得有沒有人有經驗可以分享要修改哪些檔案?
% K2 |* T& m! Q! I還有compiler這支程式可以套用進去支援新flash?
3 V4 V$ l3 g: ]8 A7 {% m感恩感恩..
7#
 樓主| 發表於 2009-6-4 11:05:34 | 只看該作者
在defs.h設定#define debug之後,compiler產生如下訊息:6 _1 z/ k1 ]# I, Q" M
ERROR: Unable to compile flashwriter application. Please check the following:& r8 I7 ~+ q0 o% d8 q9 {
1. Make sure the processor's libraries have been generated.
4 y& ^0 Y5 L6 u2. Make sure that you are using the Standalone BSP as the software platform for your processor.  U' R2 ?, [+ B
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 都是設對的4 M5 a1 j4 O9 m* @9 M, L; a% i' Q$ s
: h6 z0 Z- K+ B* {9 I- @$ |
google plb2opb_bridge 或是查看你的EDK ipcore 內的 plb2opb_bridge
* r3 t1 H: @1 H1 g請看datasheet 先
$ i4 \5 P2 q7 r0 y* D" c8 R9 ]
# Z( D. \' D- V( w+ Q"在#ifdef DEBUG 之前一行加#define DEBUG"
# L, P- d3 y4 @" O3 |+ S( S! r假如你的flashwriter 是在bram上執行的話 你要確定BRAM夠大 : p% f5 A% G# H0 L
你可能要自行摸索. 我是沒有遇過這些問題! \  _' y8 D0 A" I5 F
' T6 ~3 Y" r' `+ @
TCL 只是一個script 去產生&執行 elf* S6 A; F" ]5 N- Q( M
2 D) W+ G/ k8 a; {) I( G
mrd 0x8c000000 ' a2 G- H8 |- W  z: W" O
${size} 可有可無
% f0 C8 ~6 {: Hmwr 0x8c000000 1234- h: }6 _# X/ |7 L0 a4 N
你在XMD下 跑了他應該會告訴你正確的使用方式7 I& _, _) i, U+ R0 m2 ]

5 |& _* X! {, j4 V8 J我覺得你先用XMD 去確認你的MB 可以讀寫EMC/flash 先! x, x; `: b  ^2 X( Y% Q( K- w
try to isolate the problem first
9#
 樓主| 發表於 2009-6-5 14:46:34 | 只看該作者
原帖由 huanyu 於 2009-6-5 12:16 PM 發表 " u' ~6 d5 r6 _5 |, C9 c# ?
自己設計的板子你要確定你的UCF跟MHS port & parameters 都是設對的

% v/ e$ F9 @2 Q4 y, ~* a, }0 T( o: Y! ~2 ~' e  X; u3 l
這個已經確認是對的囉!因為可以使用其他FLASH了!) h0 H! U! P( T3 D3 G9 M
不過現在更換成自己要使用的FLASH之後,產生無法抓取的問題!- G, j- c' S" m3 o6 O* a
(Unable to successfully query target part layout using CFI!)
* b0 J; N, a1 k現在要如何確認..- ~# J; b: t: C" i+ |7 u2 s4 F6 T
1. mwr and mrd的內容是對的?# Z- k/ {, t6 m2 V4 O4 J
2. flashwriter該怎麼改?) D3 ?% ~2 h  I1 b! U) b! f

, Z0 D1 I6 Y& J/ A# G; R0 M[ 本帖最後由 chchtono 於 2009-6-5 02:49 PM 編輯 ]
10#
發表於 2009-6-5 17:31:50 | 只看該作者
不同的flash設定也不一樣說 (就算實際的腳位一樣).
8 \% X6 M# K& B; h0 X
4 M8 S/ N3 O6 W' K! d+ b- mmwr 跟 mrd 是MB的instruction. 不懂可以看MB的reference manual8 y) k2 p2 r- H1 `; b
你試了之後再說你哪有問題9 f; o7 s) }% y# z: c3 V# n

! D4 p: Z; g& E& Hflashwriter 的 source code 都在EDK內 你可以去看看 再想你怎麼改
0 Z/ g$ n! U0 G; O要不然你可以自己寫一個, 用EDK裡面的library - xilflash 去讀寫
11#
 樓主| 發表於 2009-6-6 23:44:14 | 只看該作者
原帖由 huanyu 於 2009-6-5 05:31 PM 發表
- ], {1 x+ h: w( Q+ Nmwr 跟 mrd 是MB的instruction. 不懂可以看MB的reference manual
7 H2 Y+ ]# y# ?" Y' n/ y你試了之後再說你哪有問題
' |1 o, F. M( o2 Z: j$ L

8 t/ \6 m0 e8 ~8 u% N( ~8 T& s測試結果:% r3 w! l$ T  l0 W) Y3 k9 @  n% c  Y
1. Spansion S29GL256P (OK!) -> 修改原廠emc設定後才行; t* n# N. Z" y6 {
mrd -> 可以讀到數值
* o1 r& i+ R0 {1 Dmwr -> 測試改值,mrd讀回沒變?" w: W& R, G! [) e2 @
2. MXIC MX29GL256 (CFI failure) -> 修改原廠emc設定後仍然無法動作# U7 Y! X) B$ m) k
mrd -> 讀到00 or FF
( O7 S& ]3 S( }" ~2 Q# L/ Y  x: v5 zmwr -> 測試改值,mrd讀回沒變
12#
發表於 2009-6-12 12:42:03 | 只看該作者
1,  你可能EMC部分參數沒設好" S' z2 h9 A' r3 F; B2 I4 ^1 j
你多是幾個不同的address( within emc memory address) 試試看
+ L" X. x, ~. V! G, i9 r( F1 T
; j: X$ M- J/ V3 P$ T8 m2.mrd 讀到 00 or FF 代表無法讀取那個address3 t% E1 d; A$ t* y" O
所以應該是你設定有問題. ) |+ E9 u' S& _4 h3 n
& u9 s. }) q- `: t, \. O
你可能要讀MX flash的datasheet 看是不是參數設錯
13#
 樓主| 發表於 2009-6-18 11:56:20 | 只看該作者
嗯!經由測量FLASH腳位確認之後,發現是硬體問題) X5 k  D* l7 T& D) {; Y+ q' d
目前已經解決此問題囉!
3 j2 X" F. Z2 l+ |# B/ c. Q# r8 g定義上是沒有問題的,謝謝大家關注
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-16 07:51 AM , Processed in 0.169009 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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