마이크로비젼 기술지원팀입니다.
아래 경로의 파일을 확인해 보시길 바랍니다.
/u-boot-1.3.4-samsung/board/samsung/smdkc110 폴더에서 “mvc110.c”을 참고 하시면 도움이 될 것 같습니다.
#include <regs.h>
static void smc9115_pre_init(void)
{
#if 1
unsigned int tmp;
#if defined(CONFIG_DRIVER_SMC911X_16_BIT)
SROM_BW_REG &= ~(0xf << 20);
SROM_BW_REG |= (0<<23) | (0<<22) | (0<<21) | (1<<20);
/* SDKIM Enable EBI 16BIT ADDR:DATA*/
MP01_BASE_REG &= ~(0xfff << 20);
MP01_BASE_REG |= (0x222 << 20);
MP04_BASE_REG = 0x22222222;
MP05_BASE_REG = 0x22222222;
MP06_BASE_REG = 0x22222222;
MP07_BASE_REG = 0x22222222;
#else/* 8*/
SROM_BW_REG &= ~(0xf << 20);
SROM_BW_REG |= (0<<19) | (0<<18) | (0<<16);
#endif
SROM_BC5_REG = ((0<<28)|(1<<24)|(5<<16)|(1<<12)|(4<<8)|(6<<4)|(0<<0));
tmp = MP01CON_REG;
tmp &=~(0xf<<20);
tmp |=(2<<20);
MP01CON_REG = tmp;
#else
unsigned int tmp;
unsigned char smc_bank_num=5;//SDKIM 3;
/* gpio configuration */
// tmp = readl(GPK0CON);
// tmp &= ~(0xf << smc_bank_num*4);
// tmp |= (0x2 << smc_bank_num*4);
// writel(tmp,GPK0CON);
tmp = SROM_BW_REG;
tmp &= ~(0xF<<(smc_bank_num * 4));
tmp |= SROM_DATA16_WIDTH(smc_bank_num);
SROM_BW_REG = tmp;
if(smc_bank_num == 0)
SROM_BC0_REG = ((SMC9115_Tacs<<28)|(SMC9115_Tcos<<24)|(SMC9115_Tacc<<16)|(SMC9115_Tcoh<<12)|(SMC9115_Tah<<8)|(SMC9115_Tacp<<4)|(SMC9115_PMC));
else if(smc_bank_num == 1)
SROM_BC1_REG = ((SMC9115_Tacs<<28)|(SMC9115_Tcos<<24)|(SMC9115_Tacc<<16)|(SMC9115_Tcoh<<12)|(SMC9115_Tah<<8)|(SMC9115_Tacp<<4)|(SMC9115_PMC));
else if(smc_bank_num == 2)
SROM_BC2_REG = ((SMC9115_Tacs<<28)|(SMC9115_Tcos<<24)|(SMC9115_Tacc<<16)|(SMC9115_Tcoh<<12)|(SMC9115_Tah<<8)|(SMC9115_Tacp<<4)|(SMC9115_PMC));
else if(smc_bank_num == 3)
SROM_BC3_REG = ((SMC9115_Tacs<<28)|(SMC9115_Tcos<<24)|(SMC9115_Tacc<<16)|(SMC9115_Tcoh<<12)|(SMC9115_Tah<<8)|(SMC9115_Tacp<<4)|(SMC9115_PMC));
#endif
}