?? 6400_main.c
字號:
/**************************************************************************************
*
* Project Name : S3C6400 Validation
*
* Copyright 2006 by Samsung Electronics, Inc.
* All rights reserved.
*
* Project Description :
* This software is only for validating functions of the S3C6400.
* Anybody can use this software without our permission.
*
*--------------------------------------------------------------------------------------
*
* File Name : 6400_main.c
*
* File Description : This file implements the test main functon.
*
* Author : Haksoo,Kim
* Dept. : AP Development Team
* Created Date : 2006/11/08
* Version : 0.1
*
* History
* - Created(Haksoo,Kim 2006/11/08)
*
**************************************************************************************/
#include <stdio.h>
#include "option.h"
#include "library.h"
#include "sfr6400.h"
#include "system.h"
#include "sysc.h"
#include "gpio.h"
#include "intc.h"
#include "timer.h"
#include "uart.h"
#include "dmc.h"
extern void SYSC_Test(void);
extern void DMC_Test(void);
extern void SMC_Test(void);
extern void ONENAND_Test(void);
extern void NAND_Test(void);
extern void ATA_Test(void);
extern void PCCARD_Test(void);
extern void Test_GPIO(void);
extern void Test_DMA(void);
extern void SBLOCK_Test(void);
extern void LCD_Test(void);
extern void POST_Test(void);
extern void TVENC_Test(void);
extern void G2D_Test(void);
extern void ROTATOR_Test(void);
extern void CAMERA_Test(void);
extern void MFC_Test(void);
extern void JPEG_Test(void);
extern void MODEM_Test(void);
extern void HOSTIF_Test(void);
extern void OtgDev_Test(void);
extern void Test_SDHC(void);
extern void HSI_Test(void);
extern void Test_HSPI(void);
extern void IIC_Test(void);
extern void UART_Test(void);
extern void Timer_Test(void);
extern void RTC_test(void);
extern void AC97_Test(void);
extern void I2S_Test(void);
extern void PCM_Test(void);
extern void IRDA_Test(void);
extern void ADCTS_Test(void);
extern void KEYPAD_Test(void);
const testFuncMenu menu[] =
{
#if 1
TestSFR, "SFR R/W Test",
SYSC_Test, "SYSC_Test ",
DMC_Test, "DMC_Test ",
SMC_Test, "SROMC_Test ",
ONENAND_Test, "ONENAND_Test",
NAND_Test, "NAND_Test ",
ATA_Test, "ATA_Test ",
PCCARD_Test, "PCCARD_Test ",
Test_GPIO, "GPIO_Test ",
Test_DMA, "DMA_Test ",
SBLOCK_Test, "SBLOCK_Test ",
LCD_Test, "LCD_Test ",
POST_Test, "POST_Test ",
TVENC_Test, "TVENC_Test ",
G2D_Test, "G2D_Test ",
ROTATOR_Test, "ROTATOR_Test",
CAMERA_Test, "CAMERA_Test ",
MFC_Test, "MFC_Test ",
JPEG_Test, "JPEG_Test ",
MODEM_Test, "MODEM_Test ",
HOSTIF_Test, "HOSTIF_Test ",
OtgDev_Test, "OtgDev_Test ",
Test_SDHC, "SDHC_Test ",
HSI_Test, "HSI_Test ",
Test_HSPI, "HSPI_Test ",
IIC_Test, "IIC_Test ",
UART_Test, "UART_Test ",
Timer_Test, "Timer_Test ",
RTC_test, "RTC_Test ",
AC97_Test, "AC97_Test ",
I2S_Test, "I2S_Test ",
PCM_Test, "PCM_Test ",
IRDA_Test, "IRDA_Test ",
ADCTS_Test, "ADCTS_Test ",
KEYPAD_Test, "KEYPAD_Test ",
//MDP i/f
#else
NAND_Test, "NAND_Test ",
ONENAND_Test, "ONENAND_Test",
#endif
// TestFunction, "Desciption",
0, 0
};
//////////
// Function Name : main
// Function Desctiption : main function of the validation
// Input : NONE
// Output : NONE
// Version :
int main(void)
{
u32 i, uSel;
bool bClockChange=false;
SYSTEM_InitException();
SYSTEM_InitMmu();
SYSC_ReadSystemID();
SYSC_GetClkInform();
CalibrateDelay();
GPIO_Init();
OpenConsole();
INTC_Init();
#if 0 // async mode, 400:100:25MHz
SYSC_ChangeMode(eASYNC_MODE);
SYSC_ChangeSYSCLK_1(eAPLL400M, eAPLL200M, 0, 0, 7);
bClockChange=true;
#elif 0 // async mode, 400:100:50MHz
SYSC_ChangeMode(eASYNC_MODE);
SYSC_ChangeSYSCLK_1(eAPLL400M, eAPLL200M, 0, 0, 3);
bClockChange=true;
#elif 0 // async mode, 532:133:33.25MHz
SYSC_ChangeMode(eASYNC_MODE);
SYSC_ChangeSYSCLK_1(eAPLL532M, eAPLL266M, 0, 0, 7);
bClockChange=true;
#elif 0 // async mode, 532:133:66.5MHz
SYSC_ChangeMode(eASYNC_MODE);
SYSC_ChangeSYSCLK_1(eAPLL532M, eAPLL266M, 0, 0, 3);
bClockChange=true;
#elif 0 // async mode, 667:133:33.25MHz
SYSC_ChangeMode(eASYNC_MODE);
SYSC_ChangeSYSCLK_1(eAPLL667M, eAPLL266M, 0, 0, 7);
bClockChange=true;
#elif 0 // async mode, 667:133:66.5MHz
SYSC_ChangeMode(eASYNC_MODE);
SYSC_ChangeSYSCLK_1(eAPLL667M, eAPLL266M, 0, 0, 3);
bClockChange=true;
#endif
if(bClockChange==true)
{
SYSC_GetClkInform();
CalibrateDelay();
OpenConsole();
}
#if 0 // For 533MHz-1 VDDARM= 1.15V, VDDINT= 1.05V
LTC3714_VoltageSet(3, 1150); // ARM&INT 1.15V
Delay(100);
LTC3714_VoltageSet(2, 1050); // INT 1.05V
Delay(100);
#endif
#if 0 // For 533MHz-2 VDDARM= 1.2V, VDDINT= 0.975V
LTC3714_VoltageSet(3, 1200); // ARM&INT 1.2V
Delay(100);
LTC3714_VoltageSet(2, 975); // INT 0.975V
Delay(100);
#endif
#if 0 // For 667MHz VDDARM= 1.3V, VDDINT= 0.975V
LTC3714_VoltageSet(3, 1300); // ARM&INT 1.3V
Delay(100);
LTC3714_VoltageSet(2, 975); // INT 0.975V
Delay(100);
#endif
SYSC_SetLockTime(eAPLL, 100);
SYSC_SetLockTime(eMPLL, 100);
SYSC_SetLockTime(eEPLL, 300);
while(1)
{
printf("\n\n");
printf("***************************************************\n");
printf("* S3C6400 - Test firmware v0.5 *\n");
printf("***************************************************\n");
printf("System ID : Revision [%d], Pass [%d]\n", g_System_Revision, g_System_Pass);
printf("ARMCLK: %.2fMHz HCLKx2: %.2fMHz HCLK: %.2fMHz PCLK: %.2fMHz\n",(float)g_ARMCLK/1.0e6, (float)g_HCLKx2/1.0e6, (float)g_HCLK/1.0e6, (float)g_PCLK/1.0e6);
printf("\n");
for (i=0; (u32)(menu[i].desc)!=0; i++)
{
printf("%2d: %s ", i, menu[i].desc);
if(((i+1)%4)==0)
Putc('\n');
}
printf("\n\nSelect the function to test : ");
uSel =GetIntNum();
printf("\n");
if (uSel<(sizeof(menu)/8-1))
(menu[uSel].func) ();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -