Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-5-30 21:23:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近在做Xilinx的板子,目前對這塊板子(Spartan-3A)還是無法正確的掌握* ~* u0 O& R1 g* `
其中對於燒錄Parallel flash and SPI flash燒錄不太能理解
5 P9 j4 ~: m$ R底下有幾個問題,請大家幫忙回覆囉!
6 m1 p8 ?) x" [
2 o: z/ k1 A4 S9 G1. Parallel+SPI flash要怎麼燒錄才能正確的使用bootloader功能
: n8 A+ [" s" R8 ^6 o2. 利用內建EDK tools, flashwriter燒錄時出現如下訊息:
- E6 s4 e; c5 ^$ k$ J! ~1 J    Unable to successfully query target part layout using CFI!!
  }5 ?! H9 L. B; D4 b( {! S4 ~3 O& Y
    目前已經初步確認過腳位,不曉得還有哪裡要注意設定的? : G1 b* z, s2 n. H3 f
    P.S:目前使用Spasion 29GL256P FLASH.
) Y, P( N: M+ m7 M$ n3. 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), J5 l, T  D+ P' _! {
2. 如果腳位對了. EMC的設定要注意 (假如你的版子沒有XBD,你是用哪一張版子). 最好看一下EMC的datasheet. 1 N9 R( X& m5 \# L3 Z2 n
可以在XMD底下 用CFI query 看看 回復的CFI data 有沒有正確: e- V; j/ e  U: V. l/ ^
3.
: E! d5 O" ?. ~& s! X3 F, LEDK 是 system design
/ p7 g& R' L7 a- n$ [- h6 hISE 是 core design
3#
 樓主| 發表於 2009-6-1 16:25:43 | 只看該作者
再度請問:
% a: p. o* n/ @: \; Y& x4 W
! @  P+ y/ Y4 M, u" O* c. t) H  e1. 什麼是XBD啊? 現在我手邊的版子是Spartan-3A, 請問EMC是要設定什麼東西呢? , `9 Q: b% m2 h7 ]' W% F
2. XMD底下,用CFI query怎麼看CFI data啊? 這個真的就不清楚囉! 可以指導下嗎?
8 {/ j" B& D; b# m9 K( r" D
+ X! D3 T& n: v. A6 E+ S: B貼下system.mhs的EMC設定% _" r+ C1 L+ j5 o* P

0 h  S+ H1 ]: u! v, }4 \BEGIN opb_emc2 p1 p5 e0 A) `5 M* T
PARAMETER INSTANCE = FLASH_2Mx160 k! @6 v: g0 {; I" ~. L) n
PARAMETER HW_VER = 2.00.a
& u2 ?9 i+ U* N, f' X+ Y$ | PARAMETER C_OPB_CLK_PERIOD_PS = 20000% ^+ e4 Z8 H: |8 i4 U
PARAMETER C_NUM_BANKS_MEM = 1
; H' X( n9 W5 B( m$ M5 V! ? PARAMETER C_MAX_MEM_WIDTH = 16
; _- t( y/ N" I" s2 P& U+ f- x PARAMETER C_MEM0_WIDTH = 16
6 u8 O9 N: p( u' J8 Y5 y) K  ^ PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 1
* Z! W* g% N0 i! \  J PARAMETER C_SYNCH_MEM_0 = 0% O! \6 T2 I* q/ L* y# I" u* L0 ^( P
PARAMETER C_TCEDV_PS_MEM_0 = 700006 L, c3 b& ]& r  S3 g6 N
PARAMETER C_TAVDV_PS_MEM_0 = 70000
: [  Z' P4 B* p3 S, Z3 u* o& v9 N PARAMETER C_TWC_PS_MEM_0 = 70000
( r3 i  i9 p* ^! d PARAMETER C_TWP_PS_MEM_0 = 45000. ]7 @, \" ~1 U& X
PARAMETER C_THZCE_PS_MEM_0 = 25000
5 t% _5 n* R: f. G: ~$ `- E/ Y5 r PARAMETER C_THZOE_PS_MEM_0 = 25000' I5 {$ y; `0 ~9 l
PARAMETER C_TLZWE_PS_MEM_0 = 50006 S1 C9 j, G! D3 f4 ?  X! O$ r
PARAMETER C_MEM0_BASEADDR = 0x42000000# i! Z; G" ^0 S. i- Z
PARAMETER C_MEM0_HIGHADDR = 0x43ffffff
4 v! F  p( R2 L. L BUS_INTERFACE SOPB = mb_opb0 N) U" y. S* }1 S$ ^
PORT OPB_Clk = sys_clk_s/ M- ~! W. Q6 @# e) }
PORT Mem_A = 0b0000000000 & FLASH_Mem_A -> 這行是做什麼用途?7 _! H" X, _- a. d4 [% c
PORT Mem_DQ = FLASH_Mem_DQ: }% a) Z% a2 d8 \. `
PORT Mem_OEN = FLASH_Mem_OEN" X( S9 h5 y* q3 w3 e( q" c+ b% B* R
PORT Mem_WEN = FLASH_Mem_WEN/ Y9 M5 M( z7 D# ^  e% \
PORT Mem_CEN = FLASH_Mem_CEN8 D0 L# x/ l9 P' }, j7 s5 R4 T
END$ M; n* s; b5 @0 x) e% v

: [! U) ~4 f" @3 |2 P以上這樣設定對嗎?' u+ b4 O7 V  j1 U/ g& ?
' h1 _2 T, w7 j5 ?+ x4 r# O- Z
[ 本帖最後由 chchtono 於 2009-6-1 04:39 PM 編輯 ]
4#
發表於 2009-6-3 15:14:15 | 只看該作者
XBD=Xilinx Board Definition
/ i; |' b5 D: K, {8 [5 c+ g假如你的版子支援BSB wizard. 那EMC的設定應該沒有問題
( [! W' R/ H8 J- a4 J你是用哪一張版子(自己設計的還是XILINX的開發粄)阿? 跟哪一個版本的EDK...! Z: `7 a0 Y( \# x
  \& c% F$ V! h
你現在是用opb bus
! G; {2 P5 z# _! P新版的EDK好像都是用PLB. 假如你是自行加OPB_EMC的話 你要bridge opb 跟 plb . 還有EMC的port跟parameter要設定. 我沒有辦法告訴你的parameter的設定對不對. 因為這些設定要對應flash本身的設定4 A- Z0 y7 {* w/ Z% D- O

" y* z% P% W* e/ i( o1 z) z/ f2 X2.6 u1 ^8 k2 h+ g) q6 _; }) i' @
也有可能是flashwriter 沒有支援你的 flash 或是 你flashwriter的參數設錯了/ w9 H& [7 }8 i6 A) y
你可以用flashwriter的debug mode
! A2 E: B2 a0 J7 X9 m& k改\EDK\data\xmd\flashwriter\src的defs.h 6 ?' b1 B0 x5 w
在#ifdef DEBUG 之前一行加#define DEBUG$ Z' \2 z0 K" O. M$ q7 V" O- w
3 b9 @: U& T# n" @7 N
xmd:
+ h$ `$ f$ ^. e1 z+ ICFI query 基本上也是寫一個簡單C program 去讀寫flash2 R: P, M, U6 ~- r
或是
5 F% t3 r' w* {1 Z' P% b! O讀: mrd ${address} ${size}6 z; d& g9 G. ^" B2 e
寫: mwr ${address} ${value}
. J! J5 O! k" X: L* y
: `$ }( ^% S; e  E[ 本帖最後由 huanyu 於 2009-6-3 03:37 PM 編輯 ]
5#
 樓主| 發表於 2009-6-3 21:12:49 | 只看該作者
XBD=Xilinx Board Definition+ ^$ i; ?3 U  |& w* ~: g
假如你的版子支援BSB wizard. 那EMC的設定應該沒有問題+ H9 ?1 P5 ?0 @6 s
你是用哪一張版子(自己設計的還是XILINX的開發粄)阿? 跟哪一個版本的EDK...
  z) T( s- {. e1 N, b# F' E
  N4 L$ I* _; P) a) f' H你現在是用opb bus& r7 S" U+ ~% r. |- Q4 \
新版的EDK好像都是用PLB. 假如你是自行加OPB_EMC的話 你要bridge opb 跟 plb . 還有EMC的port跟parameter要設定. 我沒有辦法告訴你的parameter的設定對不對. 因為這些設定要對應flash本身的設定
+ r. W; x( e, b: z  ?  e9 `
" |& O$ }: Q, L# u8 i6 D
我使用的是自己設計的板子,開發版本為EDK 10.1.3
* A% w4 e2 C1 `: i! ]/ o' G, G2 L想要請問一下,如果是OPB or PLB的設定,我該怎麼加入設定值?
0 R6 y' n, }+ X. ^3 s9 w有資料可以參考嗎?
4 d4 O" M1 f, m9 x# Q' L& Q/ p7 h" S4 h, i
也有可能是flashwriter 沒有支援你的 flash 或是 你flashwriter的參數設錯了( L- i8 ^  c  C. |4 w, v
你可以用flashwriter的debug mode
8 Y  i) _, R* `) S改\EDK\data\xmd\flashwriter\src的defs.h9 \5 U! ^2 ?3 e& p
在#ifdef DEBUG 之前一行加#define DEBUG
7 U! d/ q% g- N8 D
" c  q) e% l' k6 }& ?0 V: Z  V% jxmd:9 Z* x' A' q9 [/ ~' L% J
CFI query 基本上也是寫一個簡單C program 去讀寫flash. P7 `" C. l3 V0 e' V8 D
或是
% b. a9 u: x9 j2 o2 F+ j% D讀: mrd ${address} ${size}' {6 H& h* m# N2 y
寫: mwr ${address} ${value}
# x% ^# [# C1 s, m6 X% U* k: C
! e/ i( c/ Q2 A% y7 `
1.我有修改過
8 }  {4 a9 f9 T* q9 T" y\EDK\data\xmd\flashwriter\src的defs.h9 D9 g. [4 _9 H, I
在#ifdef DEBUG 之前一行加#define DEBUG4 u" F. R, `$ d# ~
不過在xmd視窗執行時,他就會說無法使用 (拿掉define居然又可用!)8 F$ K; [' T: i

6 m% y& _* k+ F4 W& g! j2.flashwriter具體要修改哪幾個檔案?可以指導一下嗎?4 [& Q; S9 K3 e" i! x1 n
我看了一下flashwriter.tcl,不曉得需要動到flashwriter目錄的哪個檔案rebuild才有用
* @! c- O$ Q# ^' x5 j8 D因為flashwriter.tcl好像是直接執行.elf檔案?. _# a9 K. C/ ]& _1 Z) C

0 }5 ~" @4 ?$ b3 |! A9 U3. mrd and mwr具體下指令是這樣嗎?
5 `, T/ B# D" q3 Dmrd $0x8c000000 $0x80
0 D9 B# U% F2 Y( I* ]mwr $0x8c000000 $0x80
6#
 樓主| 發表於 2009-6-3 23:21:57 | 只看該作者
flashwriter這個小程式,不曉得有沒有人有經驗可以分享要修改哪些檔案?
% T; j: B7 u6 z; K) T- X+ L還有compiler這支程式可以套用進去支援新flash?/ c! Z: z9 f% ~1 Q. t: z$ X
感恩感恩..
7#
 樓主| 發表於 2009-6-4 11:05:34 | 只看該作者
在defs.h設定#define debug之後,compiler產生如下訊息:
3 S4 D, i' o- b2 {5 q* b6 |! pERROR: Unable to compile flashwriter application. Please check the following:0 P+ G9 k4 s( M/ F/ @$ [
1. Make sure the processor's libraries have been generated.
* ?( E# N# h& \5 B7 y% L2. Make sure that you are using the Standalone BSP as the software platform for your processor., {) E/ m& f& q; U8 `
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 都是設對的
( M7 x9 D; {6 [) j
0 V# _; O; |+ G: |google plb2opb_bridge 或是查看你的EDK ipcore 內的 plb2opb_bridge0 M. B& _+ U' v; P* _% S! E
請看datasheet 先5 h5 j3 m7 s3 f9 F% I6 W
' j2 @1 ]3 _2 u6 `! G
"在#ifdef DEBUG 之前一行加#define DEBUG"# P7 c, p$ i4 |
假如你的flashwriter 是在bram上執行的話 你要確定BRAM夠大
- D) M: ~" {+ p0 S( G+ y5 P你可能要自行摸索. 我是沒有遇過這些問題" ?9 i; n8 r1 `) h# u- a

) Y) {; ?8 R. B4 [6 ]7 oTCL 只是一個script 去產生&執行 elf, @, w* T% N3 U$ F' |
: ^) Z  y$ M1 s% y
mrd 0x8c000000 % d" i/ X2 I1 v: E
${size} 可有可無, W  L! h6 w* J0 |; e
mwr 0x8c000000 1234
1 R5 \' a" C4 J1 @4 ]- P* O! C你在XMD下 跑了他應該會告訴你正確的使用方式
4 x9 s' X$ `/ |, d6 ~7 q6 E% ?
7 m# j" d2 Z, l0 u9 T; p我覺得你先用XMD 去確認你的MB 可以讀寫EMC/flash 先; P. v, L* ?( {/ c4 l9 e
try to isolate the problem first
9#
 樓主| 發表於 2009-6-5 14:46:34 | 只看該作者
原帖由 huanyu 於 2009-6-5 12:16 PM 發表 0 `; \* a, q: a) S- i& b; [% h5 ?
自己設計的板子你要確定你的UCF跟MHS port & parameters 都是設對的
1 y/ a& }0 [/ p$ W& x3 l

2 x! y4 [2 o4 J+ }這個已經確認是對的囉!因為可以使用其他FLASH了!! X& f( }( X' V( f7 J
不過現在更換成自己要使用的FLASH之後,產生無法抓取的問題!) w3 u, v! K% `# K4 {
(Unable to successfully query target part layout using CFI!), F. m$ B+ P1 h
現在要如何確認..7 T/ D) G+ [5 |# n
1. mwr and mrd的內容是對的?
2 l" ^, S! n" _( W# m$ V/ J9 _2. flashwriter該怎麼改?7 B& |& ]$ U  g, D/ `% C6 r2 v5 C
, |0 K2 v/ r- i$ N7 i
[ 本帖最後由 chchtono 於 2009-6-5 02:49 PM 編輯 ]
10#
發表於 2009-6-5 17:31:50 | 只看該作者
不同的flash設定也不一樣說 (就算實際的腳位一樣).6 V+ Z$ G) I5 ?8 i3 O2 \) _. n+ J
; D9 h$ Y$ }+ g1 h  \. F& m/ Y! Z4 K& d
mwr 跟 mrd 是MB的instruction. 不懂可以看MB的reference manual
2 V3 S! M/ X, Q' ]' w, b你試了之後再說你哪有問題0 \" q3 R; m& Q% A% @
$ t) O3 r$ O' {; ?. r
flashwriter 的 source code 都在EDK內 你可以去看看 再想你怎麼改; k9 U& ^/ i% m% E
要不然你可以自己寫一個, 用EDK裡面的library - xilflash 去讀寫
11#
 樓主| 發表於 2009-6-6 23:44:14 | 只看該作者
原帖由 huanyu 於 2009-6-5 05:31 PM 發表
( @3 Q6 |  u! [' bmwr 跟 mrd 是MB的instruction. 不懂可以看MB的reference manual
) h5 d9 _- v6 ^# G. t* i% t你試了之後再說你哪有問題

/ S$ C+ c- L" M$ |- ^& _- x
- A* j$ A$ w) Y9 [測試結果:
3 q; p3 N! s/ a  `7 C& D4 l0 z5 |& K1. Spansion S29GL256P (OK!) -> 修改原廠emc設定後才行3 y" `" }) U4 e
mrd -> 可以讀到數值" m4 j3 ]; K  x; g( d7 H. P3 z" \! J) x
mwr -> 測試改值,mrd讀回沒變?5 U/ F' x* u( N9 T9 L- T& U
2. MXIC MX29GL256 (CFI failure) -> 修改原廠emc設定後仍然無法動作
- i& |- C1 ^, M( wmrd -> 讀到00 or FF  m' v5 E" E; T% u
mwr -> 測試改值,mrd讀回沒變
12#
發表於 2009-6-12 12:42:03 | 只看該作者
1,  你可能EMC部分參數沒設好
, ]- o+ A& M; j你多是幾個不同的address( within emc memory address) 試試看 . @+ Z; q7 F+ m* u. p! v
4 `+ A# O4 @: X$ ?0 i; N. J
2.mrd 讀到 00 or FF 代表無法讀取那個address9 e. l+ z  @, ]# |; [* n
所以應該是你設定有問題. % H/ [/ K+ o9 k- Z0 @: `
+ W% s( T3 E4 m- d  H
你可能要讀MX flash的datasheet 看是不是參數設錯
13#
 樓主| 發表於 2009-6-18 11:56:20 | 只看該作者
嗯!經由測量FLASH腳位確認之後,發現是硬體問題
6 u* ~, \5 |; _$ F# `- z目前已經解決此問題囉!
! P4 A$ ]+ B* n% P4 k: T$ `定義上是沒有問題的,謝謝大家關注
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-17 11:48 AM , Processed in 0.157520 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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