안녕하세요. 오드로이드 S5PC100칩으로 만들어진 uboot를 분석하는 중에
의문이 풀리지 않은 부분이 있어서 질문을 올립니다. 아래부분인데요..
결국 요약하자면 (u32 (*) (u32,u32,u32))(0x1F8)(BL2_BASE,MOVI_BL2_POS,MOVI_BL2_BLKCNT);
와 같아지는데요.. 0x1F8번지면 s5pc100에서 internal ROM인것 같습니다.
iROM Code가 공개되지 않은 상황인데 함수가 그 번지에 있는지를 어떻게 알고
사용하셨는지 궁금합니다. 아니면 제가 잘못알고 있는지요.. 고수님들 도움부탁드립니다.
typedef u32 (*MMC_ReadBlocks)(u32, u32, u32);
void movi_bl2_copy(void)
{
MMC_ReadBlocks readmmc = (MMC_ReadBlocks)0x1F8;
readmmc(BL2_BASE, MOVI_BL2_POS, MOVI_BL2_BLKCNT);
}
그리고요..찾아보니까 iRAM에서 아래와같이 블럭사이즈와 SD정보를
얻어오도록 되어있는것 같습니다. 그렇다면은 삼성에서 iROM코드관련
문서가 따로 있어야 아래처럼 코드를 작성할 수 있을것 같은데요..데이타시트에는
iROM코드의 부팅순서와 점프하는 위치만 명시되어있고 다른정보는 많이없어서요..
제생각에는 분명BL0이 아래주소에 정보를 써넣을 것 같은데요..
처음에 어떻게 작업하셨는지 궁금하네요. 고수님들 조언 부탁드립니다.
#define S5PC100_BLK_SIZE 0xd0020230
#define S5PC100_SDHC_INFO 0xd002011F#define MOVI_TOTAL_BLKCNT *((volatile unsigned int*)(S5PC100_BLK_SIZE))
#define MOVI_HIGH_CAPACITY *((volatile unsigned char*)(S5PC100_SDHC_INFO))