EzDoum

찾기
처음으로 | 찾기 | 아카이브 | 글 올리기 | 링크 | 자료실 | 통계 | 연락처 | 자유게시판
이지도움 특집
전체보기
네트워크
TI OMAP35x
TI DaVinci
Analog Blackfin
RobotWar2005
임베디드!
캐쉬의 모든것
메모리 할당 알고리즘
CPU 파이프라이닝
자료구조(Tree)
금융

Login
이름

암호

기억하기


사용자 등록

현재 접속중인 등록 사용자는 0명, 익명 사용자는 4명 입니다.
전체 등록 사용자: 751명

마지막 답장
·libcurl + fuse 조합으로 되는게 많네. (1)
·Linux Ftrace에 관해 (3)
·Android MTP ( Media Transfer Protocol ) (1)
·Lighttpd에 인증을 digest 사용시 IE 오동작 문제? (1)
·Dtrace에 관해 (1)

최근글
·OpenSSL and multi-threads (0)
·ARM 환경에서 OpenCL 사용 (0)
·IoT용 WIFI 모듈 비교 ( MCU ) 클래스 (0)
·Glances - 리눅스 여러 가지 항목을 한 화면에서 모니터링 (0)
·plugin 방식의 로그 분석기 (0)

뜨거운 감자
·나는 인터렉티브한 환경에서 역어셈블 한다. (12)
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)
·ASP.NET의 데이터 그리드와 사용자 컨트롤 (7)
·DHTML Editing Control (7)

가장 많이 읽은 글
·[Cache] 2-way Set-Associative 방식이란 무엇일까? (2)
·멀티쓰레드(Pthread) 프로그래밍
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·Sorting Algorithm Animation (2)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)

blackfin - bf561-ezkit u-boot플래시 디버깅
글쓴이: EzDoum 글쓴날: 2009년 01월 01일 오후 05:15
하드웨어



blackfin u-boot 1.1.6에서 flash 동작은 CFI 정보를 이용해서 초기값을 구성한다.
(칩 크기, 버스 폭, sector 갯수, sector 사이즈, timeout value.)

http://en.wikipedia.org/wiki/Common_Flash_Memory_Interface
JEDEC STANDARD Common Flash Interface (CFI)
M29W640F datasheet

bf561-ezkit에 들어있는 flash는 ST M29W640FT로 4Mb*16 용량이다.
135 block cnt중에 127개는 64kbytes sector, 8개의 8k boot block이 있다.
M29W640FT은 boot block이 상위에 있고(TOP) M29W640FB는 boot block이 하단(bottom)에 있다.

u-boot가 CFI 정보를 가지고 flash 초기값 구성할 때 버그가 있다.

1. CFI에 sector region 정보에는 M29W640FT/M29W640FB에 구분없이 동일한 값을 가지고 있어서
u-boot에서 M29W640FT 모델일 때 별도 케이스 처리를 안해주면 잘못된 정보로 섹터를 구성한다.

# 데이터북 주석에는 칩 별로 영역 정보가 다르게 들어가있다고 하는데, 덤프해보니 틀리다.
아래에 CFI 덤프 데이터 참고
Quote:
For Bottom Boot devices,
Erase Block Region 1 is located from address 000000h to 007FFFh and
Erase Block Region 2 from address 008000h to 3FFFFFh.
For Top Boot devices,
Erase Block Region 1 is located from address 000000h to 3F7FFFh and
Erase Block Region 2 from address 3F8000h to 3FFFFFh.


2. timeout 관련 값이 NA 인 경우에도 CFI 표준에 따라 값을 결정해서 write시에 timeout이 발생한다.
3. enviroment 정보의 위치가 M29W640FB 기준으로 작성되어 있어서 save가 안된다.
bottom addr:0x20004000 (size:0x2000)에 있는데,
M29W640FT는 64k normal block 이어서 erase 실패한다.

Quote:
U-Boot 1.1.6-svn (ADI-2009R1-pre) (Jan 1 2009 - 11:59:11)

CPU: ADSP bf561-0.5 (Detected Rev: 0.5)
Board: ADI BF561 EZ-Kit Lite board
Support: http://blackfin.uclinux.org/
Clock: VCO: 600 MHz, Core: 600 MHz, System: 100 MHz
RAM: 64 MB
Flash: flash detect cfi
fwc addr 20000000 cmd f0 f0 8bit x 8 bit
fwc addr 20000055 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr 20000010 is= c0 51
fwc addr 20000000 cmd f0 f0f0 16bit x 8 bit
fwc addr 200000aa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr 20000020 is= 0051 5151
fwc addr 20000000 cmd f0 00f0 16bit x 16 bit
fwc addr 200000aa cmd 98 0098 16bit x 16 bit
is= cmd 51(Q) addr 20000020 is= 0051 0051
is= cmd 52(R) addr 20000022 is= 0052 0052
is= cmd 59(Y) addr 20000024 is= 0059 0059
long addr is at 20000050 info->portwidth = 2 retval[0x00000002]
device interface is 2
found port 2 chip 2 port 16 bits chip 16 bits
long addr is at 20000026 info->portwidth = 2 retval[0x00000002]
20000020 : 51 00 52 00 59 00 02 00 00 00 40 00 00 00 00 00 Q.R.Y.....@.....
20000030 : 00 00 00 00 00 00 27 00 36 00 b5 00 c5 00 04 00 ......'.6.......
20000040 : 00 00 0a 00 00 00 04 00 00 00 03 00 00 00 17 00 ................
20000050 : 02 00 00 00 04 00 00 00 02 00 07 00 00 00 20 00 .............. .
20000060 : 00 00 7e 00 00 00 00 00 01 00 00 00 00 00 00 00 ..~.............
20000070 : 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ................
20000080 : 50 00 52 00 49 00 31 00 33 00 00 00 02 00 04 00 P.R.I.1.3.......
20000090 : 01 00 04 00 00 00 00 00 01 00 b5 00 c5 00 03 00 ................
manufacturer is 2
size_ratio 1 port 16 bits chip 16 bits
found 2 erase regions
long addr is at 20000062 info->portwidth = 2 retval[0x007e0100]
i[1] erase_region_count = 127 erase_region_size = 65536
long addr is at 2000005a info->portwidth = 2 retval[0x00070020]
i[0] erase_region_count = 8 erase_region_size = 8192

long addr is at 20000054 info->portwidth = 2 retval[0x00000004]
fwc addr 20000000 cmd f0 00f0 16bit x 16 bit
8 MB
In: serial
Out: serial
Err: serial
Net: SMC91111 at 0x2C010300
MAC: 00:E0:22:FE:58:A1
Hit any key to stop autoboot: 0

  • 첨부 파일: cfi_r20.pdf cfi_r20.pdf (89 KiB(90,745 Bytes))

    [분류: 하드웨어 인쇄용 페이지 본문 email로 보내기 ]

  • <  photoshop CS4 - 콘텐츠 인식 이미지 리사이즈 기술 | gcc 최적화 옵션  >
    blackfin - bf561-ezkit u-boot플래시 디버깅 | 답장: 1개 | 본문에 답장
    정렬 :  
    답장 EzDoum 2009년 01월 02일 오전 10:36 [ 이글에 답장 | 본문에 답장 | 책갈피 ]
    Quote:
    Bank # 1: CFI conformant FLASH (16 x 16) Size: 8 MB in 135 Sectors
    Erase timeout 8192 ms, write timeout 1 ms, buffer write timeout 1 ms, buffer size 16
    Sector Start Addresses:
    20000000 20010000 20020000 20030000 20040000
    20050000 20060000 20070000 20080000 20090000
    200A0000 200B0000 200C0000 200D0000 200E0000
    200F0000 20100000 20110000 20120000 20130000
    20140000 20150000 20160000 20170000 20180000
    20190000 201A0000 201B0000 201C0000 201D0000
    201E0000 201F0000 20200000 20210000 20220000
    20230000 20240000 20250000 20260000 20270000
    20280000 20290000 202A0000 202B0000 202C0000
    202D0000 202E0000 202F0000 20300000 20310000
    20320000 20330000 20340000 20350000 20360000
    20370000 20380000 20390000 203A0000 203B0000
    203C0000 203D0000 203E0000 203F0000 20400000
    20410000 20420000 20430000 20440000 20450000
    20460000 20470000 20480000 20490000 204A0000
    204B0000 204C0000 204D0000 204E0000 204F0000
    20500000 20510000 20520000 20530000 20540000
    20550000 20560000 20570000 20580000 20590000
    205A0000 205B0000 205C0000 205D0000 205E0000
    205F0000 20600000 20610000 20620000 20630000
    20640000 20650000 20660000 20670000 20680000
    20690000 206A0000 206B0000 206C0000 206D0000
    206E0000 206F0000 20700000 20710000 20720000
    20730000 20740000 20750000 20760000 20770000
    20780000 20790000 207A0000 207B0000 207C0000
    207D0000 207E0000 207F0000 207F2000 207F4000
    207F6000 207F8000 207FA000 207FC000 207FE000



    [수정]

    blackfin - bf561-ezkit u-boot플래시 디버깅 | 답장: 1개 | 본문에 답장
    정렬 :  

    답장 쓰기
    글을 올리시려면 로그인 (사용자 등록) 하셔야 합니다.

    검색
    Google

    분류
    ·공지 (6)
    ·인터넷 (87)
    ·하드웨어 (260)
    ·C/C++ (65)
    ·어셈블리 (7)
    ·리눅스 (136)
    ·리눅스 커널 (67)
    ·윈도우즈 (25)
    ·데이터베이스 (20)
    ·보안 (16)
    ·.NET (25)
    ·그래픽 (13)
    ·책소개 (42)
    ·호기심 천국 (80)
    ·잡담 (111)
    ·사랑 (3)

    전체 본문수: 963
    전체 답장수: 525


    분류 : 하드웨어
    최근글
    최근글
    가장 많이 읽은 글
    ·[Cache] 2-way Set-Associative 방식이란 무엇일까? (2)
    뜨거운 감자
    ·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)

    EzDoum투표
    이지도움 어때요?
    이게 뭐야. 다시 안올란다. --;
    아이 좋아라~ +_+;
    관심없다.
    먼가는 있는거 같은데 뭐하는 곳이지?
    기타 (자유게시판에 글로 남겨 주세요)
    [ 결과 | 투표 ]

    랜덤 링크
    http://kldp.net


     Home ^ BACK TO TOP ^ EzDoum - 도움이 필요하세요~??
     Powered by KorWeblog 1.5.8 Copyleft © 2001 EzDoum, 관리자: EzDoum