embeded/ARM2013. 7. 3. 10:35
주소가 잘못되었나 id가 잘못되었나 멘붕중...
일단 RedBoot에서는 
0x00000000 0x04000000 0xa0000000 전부 동일한 내용이 읽힌다.

아마도
0x00000000은 플래시 메모리 이고
0xA0000000은 메모리에 맵핑된 플래시 메모리의 영역일 것 같고
0x04000000은 머지?

음.. 다시 합당한 걸로 추론을 해보면
0x00000000은 RAM
0x04000000은 MMIO로 연결된 FLASH 영역?
0xA0000000은 FLASH


RedBoot> version

RedBoot(tm) bootstrap and debug environment [ROM]
Non-certified release, version UNKNOWN - built 17:44:04, Apr 16 2003

Platform: COGENT (XScale)
Copyright (C) 2000, 2001, Red Hat, Inc.

RAM: 0xa0000000-0xa2000000, 0xa0012fb8-0xa1ebf000 available
FLASH: 0x04000000 - 0x06000000, 128 blocks of 0x00040000 bytes each.

RedBoot> ldrh 0xa0000000
0x    f018 from 0xa0000000

RedBoot> ldrh 0x00000000
0x    f018 from 0x       0

RedBoot> ldrh 0x04000000
0x    f018 from 0x 4000000

RedBoot> ldrh 0x0000000f
0x    e59f from 0x       e

RedBoot> ldrh 0xa000000f
0x    e59f from 0xa000000e

RedBoot> ldrh 0x0400000f
0x    e59f from 0x 400000e 

2013/07/02 - [하드웨어/PalmPalm Tynux Box] - tynuxbox X와 H-JTAG (wiggler / parallel)
2013/07/03 - [하드웨어/PalmPalm Tynux Box] - palmpalm = PXA255 + Intel 28F128J3


일단 이건.. H-JTAG에서 사용하는 초기화 파일로
모델이 조금 다른 28F320J3 용이다. (4MB NOR)


일단 16bit 1chip 으로 16bit band width 인거 같고..
Flash address가 0x10000000 으로 RAM 보다 뒤에 시작한다.


대망(?)의 Init Script 인데.. 음.. 부디 28F128J3 에도 적용이 되길 ㅠㅠ


RESET과 VERIFICATION이 추가 되었다.


파일 내용은 아래와 같다.
FLASH SECTION:
INTEL
28F320J3
MEMORY SECTION:
16-BIT X 1-CHIP
0x10000000
0x00300000
XTAL SECTION:
NULL
TCK SECTION:
0
0
SCRIPT SECTION:
SysReset+++//Rest system
SetMem+32-Bit+0xFFFFFD44+0x00008000//Disable watchdog
SetMem+32-Bit+0xFFFFFC20+0x00000801//Enable main oscillator
Delay+++25//wait for main osc stable
SetMem+32-Bit+0xFFFFFC28+0x206D9F09//Setup PLL A
SetMem+32-Bit+0xFFFFFC2C+0x20A21F0F//Setup PLL B
Delay+++25//wait for PLL stable
SetMem+32-Bit+0xFFFFFC30+0x00000102//Select PLL A as clock source
Delay+++100//wait for system stable
SetMem+32-Bit+0xFFFFE400+0x02020202//SMC_SETUP
SetMem+32-Bit+0xFFFFE404+0x0D0D0D0D//SMC_PULSE
SetMem+32-Bit+0xFFFFE408+0x00100010//SMC_CYCLE
SetMem+32-Bit+0xFFFFE40C+0x00041003//SMC_MODE
PGMOPTION SECTION:
ENABLE_RESET
ENABLE_VERIFICATION2
ADDON SECTION:
 
[INIT_TRITON_RAM]
memory write 0x48000008 0x12DC24D8          ; MSC0 = 0x26F226F2
memory read 0x48000008                      ; read MSC0
memory write 0x4800000C 0x7FF07FF0          ; MSC1 = 0x3FF4A441
wait  10
memory write 0x48000010 0x7FF07FF0          ; MSC2 = 0x00007FF0
wait  10
memory write 0x48000004 0x00000018          ; MDREFR = 0x00000018
memory write 0x4800001C 0x00000000          ; SXCNFG = 0x00000000
memory write 0x48000004 0x00010018          ; MDREFR = 0x00010018
wait  10
memory write 0x48000004 0x0009C030          ; MDREFR = 0x000BC018
memory write 0x48000000 0x00000AA8          ; MDCNFG = 0x00000AA8
wait  100
memory write 0x48000000 0x00000AAD          ; MDCNFG = 0x00000AA9
memory write 0x48000040 0x00220032          ; MDMRS = 0x00220032

[FLASH_28F128J3A]
; auto detect 28F128J3(A) or 28F128P30B
CHIP                    = 28F128J3(A)       ; flash chip
CHIP                    = 28F128P30B        ; flash chip
ACCESS_METHOD           = AUTO              ; program method auto
CHECK_ID                = YES               ; check chip ID
CHIP_WIDTH              = 16                ; chip is in 16 bit configuration
CHIP_COUNT              = 1                 ; one chip is used
BASE_ADDR               = 0                 ; chip is mapped at 0x0000000
FILE                    = "myfile.bin", BIN, 0 ; file to program
AUTO_ERASE              = NO                ; erase before program
AUTO_LOCK               = NO                ; lock after program
 
[링크 : http://download.ronetix.info/peedi/cfg_examples/xscale/pxa255.cfg] 

'embeded > ARM' 카테고리의 다른 글

ubuntu gcc-arm 패키지 목록  (0) 2013.08.31
jtag tap - Test Access Port  (0) 2013.07.05
ARM EABI / OABI  (0) 2013.07.02
TI DM368와 H-JTAG(실패)  (0) 2013.06.28
HibernateRTCSet  (0) 2012.04.19
Posted by 구차니