도와주세요!!
글 수 15,339
2007.03.22 15:21:10 (*.150.3.131)
6729
cpu clock을 266MHz에서 202Mhz로 변경을 하려고 합니다.
우선 소스 수정한 부분은
1.ez_2410.h에서
1-1.
//##################################################
//[[2007 03 22 dkkim modify
//#define CPU_SPEED S3C2410_CPU_266M
#define CPU_SPEED S3C2410_CPU_202M
//]]
//##################################################
1-2.
/--------------------------------------------------
// CLOCK DIVIDER CONTROL ( CLKDIVN )
#define S3C2410_REG_CLKDIVN 0x4C000014
//--------------------------------------------------
//[[2007 03 22 dkkim modify
/*
#define HCLK_DIV1 (0x0 << 2) // 0=resevred 1= HCLK=FCLK/4 PCLK=FCLK/4
#define HCLK_DIV (0x1 << 1) // 0=FCLK 1=FCLK/2
#define PCLK_DIV (0x1 << 0) // 0=HCLK 1=HCLK/2
#define HCLK FCLK/2 // FCLK=266000000 HCLK=133000000
#define PCLK FCLK/4 // FCLK=266000000 PCLK= 66500000
*/
#define HCLK_DIV1 (0x1 << 2) // 1= HCLK=FCLK/4 PCLK=FCLK/4
#define HCLK_DIV (0x0 << 1) // 0=FCLK/4
#define PCLK_DIV (0x0 << 0) // 0=FCLK/4
#define HCLK FCLK/4 // FCLK=202800000 HCLK= 50700000
#define PCLK FCLK/4 // FCLK=202800000 PCLK= 50700000
#define CLKDIVN_VALUE ( HCLK_DIV1 | HCLK_DIV | PCLK_DIV )
//]]
2. s3c2410.h에서
//##################################################
// CPU 의 속도를 설정한다.
//[[2007_03_22 dkkim modify
//#define FCLK 266000000
//#define HCLK FCLK/2 // FCLK=266000000 HCLK=133000000
//#define PCLK FCLK/4 // FCLK=266000000 PCLK= 66500000
#define FCLK 202800000
#define HCLK FCLK/4 // FCLK=202800000 HCLK=50700000
#define PCLK FCLK/4 // FCLK=202800000 PCLK= 50700000
//]]
//##################################################
3. 커널에서 mach-ez-s2410.c
/* base baud rate for all our UARTs */
//static unsigned long ez_s2410_serial_clock = 66500000; // 266MHz/4 = 66.5MHz
static unsigned long ez_s2410_serial_clock = 50700000; // 202MHz/4 = 50.7MHz
위와 같이 변경을 하였습니다.
컴파일시에는 에러는 없었습니다.
문제가 되는 현상은 일단 부트로더를 ezflashw프로그램에서 jtag을 이용하여 다운로드 하였습니다.
플래쉬에 쓰기가 끝난 상태에서 리셋 버튼 또는 on/off스위치를 이용하여 재부팅을 하게 되면
가운데에 달려있는 4LED는 계속 깜빡깜빡거리고 있고, 하이퍼 터미널 또는 minicom에서 나오는 화면은
아무것도 뜨지를 않습니다.
그래서인지 수정된 커널을 올리지 못하는 상태가 되었습니다.
혹시나해서 저장된 NER, NEK, NEA명령어를 사용하여 모두 지운다음 부트로더만 다시 올려봤는데 상황은
같았습니다.
어느 부분이 문제인지 알수가 없네요.
참고로 개발환경은 소스작업은 윈도우에서 하고 컴파일은 리눅스PC로 합니다.
윈도우 컴퓨터랑 리눅스 컴퓨터와의 통신은 윈도우 컴퓨터에 ftp server를 설치하여 리눅스 PC에서 파일을
다운 받아 컴파일 하는 방법을 사용하고 있습니다.
빠른 답변 부탁드리겠습니다.
그럼 수고하세요.
우선 소스 수정한 부분은
1.ez_2410.h에서
1-1.
//##################################################
//[[2007 03 22 dkkim modify
//#define CPU_SPEED S3C2410_CPU_266M
#define CPU_SPEED S3C2410_CPU_202M
//]]
//##################################################
1-2.
/--------------------------------------------------
// CLOCK DIVIDER CONTROL ( CLKDIVN )
#define S3C2410_REG_CLKDIVN 0x4C000014
//--------------------------------------------------
//[[2007 03 22 dkkim modify
/*
#define HCLK_DIV1 (0x0 << 2) // 0=resevred 1= HCLK=FCLK/4 PCLK=FCLK/4
#define HCLK_DIV (0x1 << 1) // 0=FCLK 1=FCLK/2
#define PCLK_DIV (0x1 << 0) // 0=HCLK 1=HCLK/2
#define HCLK FCLK/2 // FCLK=266000000 HCLK=133000000
#define PCLK FCLK/4 // FCLK=266000000 PCLK= 66500000
*/
#define HCLK_DIV1 (0x1 << 2) // 1= HCLK=FCLK/4 PCLK=FCLK/4
#define HCLK_DIV (0x0 << 1) // 0=FCLK/4
#define PCLK_DIV (0x0 << 0) // 0=FCLK/4
#define HCLK FCLK/4 // FCLK=202800000 HCLK= 50700000
#define PCLK FCLK/4 // FCLK=202800000 PCLK= 50700000
#define CLKDIVN_VALUE ( HCLK_DIV1 | HCLK_DIV | PCLK_DIV )
//]]
2. s3c2410.h에서
//##################################################
// CPU 의 속도를 설정한다.
//[[2007_03_22 dkkim modify
//#define FCLK 266000000
//#define HCLK FCLK/2 // FCLK=266000000 HCLK=133000000
//#define PCLK FCLK/4 // FCLK=266000000 PCLK= 66500000
#define FCLK 202800000
#define HCLK FCLK/4 // FCLK=202800000 HCLK=50700000
#define PCLK FCLK/4 // FCLK=202800000 PCLK= 50700000
//]]
//##################################################
3. 커널에서 mach-ez-s2410.c
/* base baud rate for all our UARTs */
//static unsigned long ez_s2410_serial_clock = 66500000; // 266MHz/4 = 66.5MHz
static unsigned long ez_s2410_serial_clock = 50700000; // 202MHz/4 = 50.7MHz
위와 같이 변경을 하였습니다.
컴파일시에는 에러는 없었습니다.
문제가 되는 현상은 일단 부트로더를 ezflashw프로그램에서 jtag을 이용하여 다운로드 하였습니다.
플래쉬에 쓰기가 끝난 상태에서 리셋 버튼 또는 on/off스위치를 이용하여 재부팅을 하게 되면
가운데에 달려있는 4LED는 계속 깜빡깜빡거리고 있고, 하이퍼 터미널 또는 minicom에서 나오는 화면은
아무것도 뜨지를 않습니다.
그래서인지 수정된 커널을 올리지 못하는 상태가 되었습니다.
혹시나해서 저장된 NER, NEK, NEA명령어를 사용하여 모두 지운다음 부트로더만 다시 올려봤는데 상황은
같았습니다.
어느 부분이 문제인지 알수가 없네요.
참고로 개발환경은 소스작업은 윈도우에서 하고 컴파일은 리눅스PC로 합니다.
윈도우 컴퓨터랑 리눅스 컴퓨터와의 통신은 윈도우 컴퓨터에 ftp server를 설치하여 리눅스 PC에서 파일을
다운 받아 컴파일 하는 방법을 사용하고 있습니다.
빠른 답변 부탁드리겠습니다.
그럼 수고하세요.