도와주세요!!
EZ-S3C6410 보드를 사용 하고 있습니다.
ramdisk 를 수정 하여 8M 쯤 되는 파일을 ez-boot에서 업그래드 하니 아래와 같이 진행 되다 멈추는 현상이 발생 하였습니다
----------- 아래--------------
Last Modify Dec 9 2009
Detect Samsung NAND 1G 3.3V 8 bit Flash : vid=EC pid=D3
SIZE 1024-Mbytes (page=2048, block=256K)
Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar]....
Copy Kernel Image .....
Copy Ramdisk Image .....
boot 설정은 아래와 같이 하였습니다.
nand Partition과 KCMD2를 이용 하여 용량에 맞게 여러 가지로 변경해 보아도 멈추는 현상이 발생 합니다.
ezboot를 디버깅 하여 컴파일 해 보니 flash_nand.c 파일의 int nand_read( u32 offset, u8 *buf, int bcnt, u32 pgm_flag )
함수에서 o
Copy Ramdisk Image .....후에 디버깅 메세지 삽입 하여 시험 하였습니다.
int copyfrom_flash( u32 part_nr, void *buf, u32 bcnt ) 내에서 디버깅 ...
>part_nr=4, dev_type=1, addr=0x700000, size=16777216(16MB)
int nand_read_part( u32 offset, u8 *buf, int bcnt, u32 pgm_flag ) 함수 에서 디버깅 메세지...
[2]offset : 0x740000 bcnt : 0x7af838 rdcnt : 0x20000
.
. 중략
[54]offset : 0xdc0000 bcnt : 0x12f838 rdcnt : 0x20000
[55]offset : 0xde0000 bcnt : 0x10f838 rdcnt : 0x20000
[56]offset : 0xe00000 bcnt : 0xef838 rdcnt : 0x20000
int nand_read( u32 offset, u8 *buf, int bcnt, u32 pgm_flag ) 에서 디버깅 ../.
OFFSET 이 0xe00000 보다 커거나 같은 조건으로 메세지 출력 ..
cnttg 1,,,offset:0xe00000 bcnt : 0x0 col..: 0x800 paze_size 0x800
cnttg 1,,,offset:0xe00800 bcnt : 0x1f800 col..: 0x800 paze_size 0x800
cnttg 2,,,offset:0xe01000 bcnt : 0x1f000 col..: 0x800 paze_size 0x800
-- 여기까지 진행 하다 멈춤니다.
좀더 자세히 구간을 정해 디버깅 해보니
결과적으로 offset이 0xe00000가 넘어 가면
nand_ops.read_buff( buf, col_rdcnt );
를 호출 하면서 멈추게 됩니다.
뭔가 설정이 잘못 된게 있는지 확인 부탁 드립니다.
설정은 아래와같습니다. 도움 부탁 드입니다. ㅠㅠ 완전 급합니다 ...몇을을 하는데 까지하다 결국 묻게 됩니다.ㅠㅠ
1) mac address : 00:FA:01:A5:16:00
2) local ip : 192.168.1.90
3) local netmask : 255.255.255.0
4) local gateway : 192.168.1.1
5) server ip : 192.168.1.51
6) zImage file name : zImage.ez-s3c6410_org
7) ram disk file name : ramdisk_mkur400.gz
8) boot loader file name : ezboot.ez-s3c6410
9) logo image file name : image1.bmp
10) auto execute full name :
11) autoboot wait time : 2
12) copy ramdisk [Y/N] : Y
13) arm kernel arch number : 3000
14) nand part (B,C,L,K,R,A): 1,1,2,3,16,983
15) watchdog (sec, off=0) : 0
16) KCMD 1 : mem=88M
17) KCMD 2 : initrd=0x50800000,16M root=/dev/ram0 ramdisk=56320
18) KCMD 3 : console=ttySAC0,115200
19) KCMD 4 : init=/init /init.rc
20) KCMD 5 : ezpanel=3
21) KCMD 6 :
L) Load default
LF) load KCMD2 root=flash
LR) load KCMD2 root=ramdisk
M) generlate Mac address
S) Save to flash
P) aPply & exit
Q) Quit
Select >>
부트로더를 수정하여 컴파일 하여야 합니다.\
memmap.h 파일에 램디스크의 작업영역이 8M 잡혀있습니다
이 파일내에서 메모리를 재 배치한 신 후 컴파일 하세요
clean 한 후 컴파일 하세요
memmap.h 파일의 일부입니다.
#define BOOT_START (DRAM_START + 0x01F00000)
#define BOOT_IRQ (DRAM_START + 0x01F01000)
#define BOOT_MAIN (DRAM_START + 0x01F01008)
#define BOOT_STACK (DRAM_START + 0x01F80000)
#define BOOT_WORK_START (DRAM_START + 0x02000000)
#define BOOT_SIZE (128*1024)
#define KERNEL_START (DRAM_START + 0x00008000)
#define RAMDISK_START (DRAM_START + 0x00800000)
#define LOGO_START (DRAM_START + 0x01d00000)
#define INITRD_RAMDISK_START "0x50800000"