1 /******************************************************************************/
2 /* src/booter/LoadMng/LoadMngKernel.c */
4 /* Copyright (C) 2017 Mochi. */
5 /******************************************************************************/
6 /******************************************************************************/
8 /******************************************************************************/
11 #include <kernel/MochiKernel.h>
12 #include <MLib/Basic/MLibBasic.h>
21 #include "LoadMngInit.h"
24 /******************************************************************************/
26 /******************************************************************************/
28 #ifdef DEBUG_LOG_ENABLE
29 #define DEBUG_LOG( ... ) \
30 DebugLogOutput( CMN_MODULE_LOADMNG_KERNEL, \
34 #define DEBUG_LOG( ... )
38 /******************************************************************************/
40 /******************************************************************************/
41 /******************************************************************************/
46 /******************************************************************************/
47 void LoadMngKernelLoad( void )
49 uint32_t size; /* LBAサイズ */
50 MochiKernelImgHdr_t header; /* カーネルイメージヘッダ */
53 DEBUG_LOG( "%s() start.", __func__ );
56 size = sizeof ( MochiKernelImgHdr_t ) / 512;
59 DriverAtaRead( &header,
60 gLoadMngInitPt[ 1 ].lbaFirstAddr,
64 DriverAtaRead( ( void * ) MOCHIKERNEL_ADDR_ENTRY,
65 gLoadMngInitPt[ 1 ].lbaFirstAddr + size,
66 MLIB_BASIC_ALIGN( header.fileSize, 512 ) / 512);
69 DEBUG_LOG( "%s() end.", __func__ );
75 /******************************************************************************/