도와주세요!!
글 수 15,339
2006.08.28 15:23:07 (*.141.98.17)
6681
안녕하세요..
mtd 영역을 추가하려면 작업이 좀 많습니다.
수정해야 할 것은 부트로드 와 커널입니다.
1. 부트로드에서 수정해야 할 파일들
main/nand.c 파일 수정
include/nand.h 파일 수정
main/flash_cmd.c 파일 수정
main/config.c 파일 수정
include/config.h 파일 수정
2. 커널에서 수정해야할 파일 drivers/mtd/nand/ez_x5.c
32 /*
33 * Define partitions for flash device
34 */
35 static struct mtd_partition partition_info[] =
36 {
37 {
38 name : "EZ-X5 Kernel partition",
39 offset: 0x000000,
40 size : 1*SZ_1M
41 },
42 {
43 name : "EZ-X5 Ramdisk partition",
44 offset: 0x100000,
45 size : 3*SZ_1M
46 },
47 {
48 name : "EZ-X5 Data partition 0",
49 offset: 0x400000,
50 size : 60*SZ_1M
51 }
52 };
53 #define EZ_X5_NAND_NUM_PARTITIONS 3
56 // 커널 커맨드라인을 파싱한다.
57 static void fixup_partition_info( void )
58 {
59 char *delim_ = ",";
60 int argc;
61 char *argv[256];
62 char *tok;
63 int size[3];
64
65 argc = 0;
66 argv[argc] = NULL;
67 for (tok = strtok(cmdline_par, delim_); tok; tok = strtok(NULL, delim_))
68 {
69 argv[argc++] = tok;
70 }
71
72 if ( argc == EZ_X5_NAND_NUM_PARTITIONS )
73 {
74 size[0] = simple_strtoul( argv[0],NULL,0 );
75 size[1] = simple_strtoul( argv[1],NULL,0 );
76 size[2] = simple_strtoul( argv[2],NULL,0 );
77
78 if ( ( size[0] > 0 ) && ( size[1] > 0 ) && ( size[2] > 0 ) )
79 {
80 partition_info[0].offset = 0;
81 partition_info[0].size = size[0]*SZ_1M;
82
83 partition_info[1].offset = size[0]*SZ_1M;
84 partition_info[1].size = size[1]*SZ_1M;
85
86 partition_info[2].offset = (size[0]+size[1])*SZ_1M;
87 partition_info[2].size = size[2]*SZ_1M;
88 }
89 }
90 }
이 부분을 수정하셔야 합니다.
그럼 수고하세요..
>
>
>app 영역외에 추가로 mtd 영역을 만들고 싶습니다.
>
>설정하는 방법 좀 알려 주세요..
>
>다른 falinux 보드에서는 부트로더에서 설정하는 것이 있던데요..
>
>ez-x5 보드에서는 어떻게 해야 되는지요??
>
>
mtd 영역을 추가하려면 작업이 좀 많습니다.
수정해야 할 것은 부트로드 와 커널입니다.
1. 부트로드에서 수정해야 할 파일들
main/nand.c 파일 수정
include/nand.h 파일 수정
main/flash_cmd.c 파일 수정
main/config.c 파일 수정
include/config.h 파일 수정
2. 커널에서 수정해야할 파일 drivers/mtd/nand/ez_x5.c
32 /*
33 * Define partitions for flash device
34 */
35 static struct mtd_partition partition_info[] =
36 {
37 {
38 name : "EZ-X5 Kernel partition",
39 offset: 0x000000,
40 size : 1*SZ_1M
41 },
42 {
43 name : "EZ-X5 Ramdisk partition",
44 offset: 0x100000,
45 size : 3*SZ_1M
46 },
47 {
48 name : "EZ-X5 Data partition 0",
49 offset: 0x400000,
50 size : 60*SZ_1M
51 }
52 };
53 #define EZ_X5_NAND_NUM_PARTITIONS 3
56 // 커널 커맨드라인을 파싱한다.
57 static void fixup_partition_info( void )
58 {
59 char *delim_ = ",";
60 int argc;
61 char *argv[256];
62 char *tok;
63 int size[3];
64
65 argc = 0;
66 argv[argc] = NULL;
67 for (tok = strtok(cmdline_par, delim_); tok; tok = strtok(NULL, delim_))
68 {
69 argv[argc++] = tok;
70 }
71
72 if ( argc == EZ_X5_NAND_NUM_PARTITIONS )
73 {
74 size[0] = simple_strtoul( argv[0],NULL,0 );
75 size[1] = simple_strtoul( argv[1],NULL,0 );
76 size[2] = simple_strtoul( argv[2],NULL,0 );
77
78 if ( ( size[0] > 0 ) && ( size[1] > 0 ) && ( size[2] > 0 ) )
79 {
80 partition_info[0].offset = 0;
81 partition_info[0].size = size[0]*SZ_1M;
82
83 partition_info[1].offset = size[0]*SZ_1M;
84 partition_info[1].size = size[1]*SZ_1M;
85
86 partition_info[2].offset = (size[0]+size[1])*SZ_1M;
87 partition_info[2].size = size[2]*SZ_1M;
88 }
89 }
90 }
이 부분을 수정하셔야 합니다.
그럼 수고하세요..
>
>
>app 영역외에 추가로 mtd 영역을 만들고 싶습니다.
>
>설정하는 방법 좀 알려 주세요..
>
>다른 falinux 보드에서는 부트로더에서 설정하는 것이 있던데요..
>
>ez-x5 보드에서는 어떻게 해야 되는지요??
>
>