안녕하세요. ^^
EZboot 수정에 관해서 궁금한 점이 있습니다.

현재 EZ-S2410 는 cpu를 s3c2410 (266Mhz) 를 사용하였고
램은 삼성 k4s561632h uc75(133Mhz) X 2(64MB) 32bit Bus 를 확인 하였습니다.

수정 보드의 설계는 s3c2410al-20 (200Mhz) 이고-
램은 삼성 k4s561632e uc75(133Mhz) X 1(32MB) 16bit Bus 를 사용합니다.



ezboot 의 헤더파일을 수정하여 컴파일하고 이미지를 올려보았습니다.
FAlinux 의 설정 그대로 올려보니 역시나 스코프로 찍어보았을때 SDRAM 클럭이 안나오더군요.
나름대로 수정하여 스코프를 찍어보니 3~4초후에 클럭이 나오다가 곧 사라져 버립니다.
 

● ezboot 의 소스코드 중에서 include/ez_2410.h 헤더에 설정들이 있어서
해당 소스 부분을 추적하여 수정하였습니다.
수정부분은 다음과 같습니다.

- cpu 클럭(FCLK) 의 속도 266000000 => 202800000


- BWSCON_BANK6, BWSCON_BANK7 설정 부분에서 BUS Width 를 DW32 => DW16
    //#define    BWSCON_BANK6            ( ( DW32        ) << 24 )
    #define    BWSCON_BANK6            ( ( DW16        ) << 24 )
    //#define    BWSCON_BANK7            ( ( DW32        ) << 28 )
    #define    BWSCON_BANK7            ( ( DW16        ) << 28 )


- BWSCON_BANK7 부분에서 reserved 설정(비활성화를 예상)
    /*
    #define MBC_CS7_MT                ( 0x3 << 15 )    // SDRAM
    #define MBC_CS7_TRCD            ( 0x1 <<  2 )    // 3CLK ( RAS to CAS Delay )
    #define MBC_CS7_SCAN            ( 0x1 <<  0 )     // 9bit ( Column Address Number )
    
    #define MBC_CS7_VALUE            ( MBC_CS7_MT | MBC_CS7_TRCD | MBC_CS7_SCAN )
    */
    #define MBC_CS7_MT                ( 0x1 << 15 )    // SDRAM (disable)
    #define MBC_CS7_TRCD            ( 0x1 <<  2 )    // 3CLK ( RAS to CAS Delay )
    #define MBC_CS7_SCAN            ( 0x1 <<  0 )     // 9bit ( Column Address Number )

    #define MBC_CS7_VALUE            ( MBC_CS7_MT | MBC_CS7_TRCD | MBC_CS7_SCAN )


- S3C2410_REG_BANKSIZE 부분에서 메모리 크기 변경
    //#define    MBS_BK76MAP            ( MM_64M << 0 )
    #define    MBS_BK76MAP            ( MM_32M << 0 )


- #define    S3C2410_REG_MRSRB7        0x48000030 부분 중 아래 내용 수정
    /*
    #define    MRSRB7_WBL            ( 0x0 << 9 )
    #define    MRSRB7_TM            ( 0x0 << 7 )
    #define    MRSRB7_CL            ( 0x3 << 4 )
    #define    MRSRB7_BT            ( 0x0 << 3 )
    #define    MRSRB7_BL            ( 0x0 << 0 )
    */
    #define    MRSRB7_WBL            ( 0x1 << 9 )        // 세팅 해제(사용안함 reserved)
    #define    MRSRB7_TM            ( 0x1 << 7 )
    #define    MRSRB7_CL            ( 0x4 << 4 )
    #define    MRSRB7_BT            ( 0x1 << 3 )
    #define    MRSRB7_BL            ( 0x2 << 0 )





● 그리고 ezboot 의 include/s3c2410.h 에서도 cpu클럭을 변경하였습니다.

/*
#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/2        // FCLK=266000000    HCLK=133000000
#define    PCLK                FCLK/4        // FCLK=266000000    PCLK= 66500000






위 내용처럼 하여 ezboot 를 컴파일하여 생성된 이미지를 프린터포트로 하여
jflash 로 올려 보았습니다.

램의 38번핀 쪽의 램클럭(CLK) 를 찍어보니 3~4초 후에 클럭이 잠시 나타났다가
2초 정도 후에 사라져 버립니다. 그 이후로는 클럭이 없습니다.
나타났던 클럭은 약 100Mhz 를 유지하였고  주기적으로 나타났다가 사라짐을 약 2초가량 했습니다.

UART2(디버깅용) 쪽은 아무런 반응이 없습니다.


● SDRAM 의 데이터시트를 보고 RAS 및 CAS 등을 체크해보았습니다.
ezboot 코드상에 다음과 같았으며 데이터시트와 별 다른 것이 없었습니다.

//----------------------------------------------
//    REFRESH CONTROL REGISTER
#define    S3C2410_REG_REFCON        0x48000024
//----------------------------------------------
#define    MRC_REFEN            ( 0x1 << 23 )    // SDRAM Refresh Enabel           0=Disable       1=Enable
#define    MRC_TREFMD            ( 0x0 << 22 )    // SDRAM Refresh Mode            0=Auto Refresh    1=Self Refresh
#define MRC_TRP                ( 0x0 << 20 )    // SDRAM RAS pre-charge Time    0=2CLK    1=3CLK    2=4CLK    3=Not Support
#define    MRC_TSRC            ( 0x3 << 18 )    // SDRAM Semi Row Cycle Time    0=4CLK    1=5CLK    2=6CLK    3=7CLK

//----------------------------------------------
//    SDRAM MODE REGISTER SET REGISTER ( MRSR )
#define    S3C2410_REG_MRSRB6        0x4800002C
//----------------------------------------------
#define    MRSRB6_WBL            ( 0x0 << 9 )
#define    MRSRB6_TM            ( 0x0 << 7 )
#define    MRSRB6_CL            ( 0x3 << 4 )
#define    MRSRB6_BT            ( 0x0 << 3 )
#define    MRSRB6_BL            ( 0x0 << 0 )


/* kk4s561632e-uc75.pdf 데이터 시트 */
//----------------------------------------------
Parameter                          Symbol            Version             Unit    Note
                                                   60       75
Row active to row active delay     tRRD(min)       12       15            ns      1
RAS to CAS delay                   tRCD(min)       18       20            ns      1
Row precharge time                 tRP(min)        18       20            ns      1
Row active time                    tRAS(min)       42       45            ns      1
                                   tRAS(max)           100                us
Row cycle time                     tRC(min)        60       65            ns      1
Last data in to row precharge      tRDL(min)            2                 CLK    2, 5
Last data in to Active delay       tDAL(min)        2 CLK + tRP           -       5
Last data in to new col. address delay tCDL(min)        1                 CLK     2
Last data in to burst stop         tBDL(min)            1                 CLK     2
Col. address to col. address delay tCCD(min)            1                 CLK     3
Number of valid  output data       CAS latency=3        2                 ea      4
                                   CAS latency=2     -       1
//----------------------------------------------





변경된 cpu 클럭의 적용과 16bit 원칩 SDRAM 적용이 제대로 맞게 되었는지요?




.