1 /******************************************************************************/
2 /* src/booter/InitCtrl/InitCtrlInit32.c */
4 /* Copyright (C) 2017 Mochi. */
5 /******************************************************************************/
6 /******************************************************************************/
8 /******************************************************************************/
11 #include <hardware/IA32/IA32Instruction.h>
12 #include <kernel/MochiKernel.h>
22 /******************************************************************************/
24 /******************************************************************************/
26 #ifdef DEBUG_LOG_ENABLE
27 #define DEBUG_LOG( ... ) \
28 DebugLogOutput( CMN_MODULE_INIT_INIT, \
32 #define DEBUG_LOG( ... )
36 /******************************************************************************/
38 /******************************************************************************/
40 void ( *MochiKernelMain )( void ) = ( void * ) MOCHIKERNEL_ADDR_ENTRY;
43 /******************************************************************************/
45 /******************************************************************************/
46 /******************************************************************************/
48 * @brief 初期化(32bitモード)
49 * @details 初期化してカーネルを読込み起動する。
51 /******************************************************************************/
52 void InitCtrlInit32( void )
54 CmnRet_t ret; /* 関数戻り値 */
60 DEBUG_LOG( "MochiBooter start." );
63 ret = DriverA20Enable();
66 if ( ret != CMN_SUCCESS ) {
70 DEBUG_LOG( "DriverA20Enable() Failure. ret=%u", ret );
97 IA32InstructionSetEsp( MOCHIKERNEL_ADDR_STACK );
102 DEBUG_LOG( "%s() end. error.", __func__ );
108 /******************************************************************************/