REpsp2
PSP2 OS reverse engineering
Loading...
Searching...
No Matches
boot.c File Reference
#include <__everything.h>
#include <sdk_version.h>
#include <scetypes.h>
#include <sceerror.h>
#include <arm.h>
#include <hw_timer.h>
#include <kernel/debug.h>
#include <kernel/dipsw.h>
#include <kernel/error.h>

Go to the source code of this file.

Data Structures

struct  SceKernelCorelock
struct  SceKernelPARange
struct  ScePSCode
struct  SceKBLParam
struct  kbp_boot_block
struct  SceKernelMMUContext
struct  SceKernelBootParam

Macros

#define KBL_REVISION_STR   "r96726"
#define KBL_BUILD_DATE_STR   "2017-02-23 19:47:57+0900"
#define BOOTSW_CP_INFO   1
#define BOOTSW_ASLR_SEED   3
#define KBL_PARAM_MAGIC   0xCBAC03AA
#define KERNEL_BOOT_PARAM_MAGIC   0x7F407C30
#define ALIGN_UP(ptr, align)
#define DBG_KMC_PRINT(flags, fmt, ...)
#define DBG_KMC_PRINT_LVL(lvl, flags, fmt, ...)
#define DBG_PRINT_sensitive_lvl0(fmt, ...)
#define DBG_PRINT_sensitive_lvl1(fmt, ...)
#define __ASSERT_LVL(lvl, cond)
#define KERMIT_REVISION_MASK   0x1FFFF
#define __SCx_KBL_SECURE_BUILD   0
#define KBL_PARAM_LOCATION   ((const void *)0x40200100)
#define MEGA_ASLR_BITMAP_SIZE   16
#define ASLR_BITMAP_SIZE   (SCE_KERNEL_1MiB / SCE_KERNEL_4KiB)

Functions

void sceKernelCorelockLock (SceKernelCorelock *corelock, SceUInt32 firstcpu)
SceUInt32 sceKernelCpuId (void)
void sceKernelCorelockUnlock (SceKernelCorelock *corelock)
void * memcpy (void *, const void *, SceSize)
void __set_dipsw_source (const void *pDipsw)
void sceKernelPrintfLevel (SceInt32 lvl, const char *fmt,...)
SceInt32 sceKernelGetAssertLevel (void)
void sceKernelAssertLevel (SceInt32 lvl, _Bool cond, const void *kmc)
void FUN_5101c56c (SceUInt32 flags, void *kmc, char *fmt,...)
void FUN_5101c5dc (SceInt32 lvl, SceUInt32 flags, void *kmc, char *fmt,...)
SceInt32 sceKernelVAtoPA (const void *va, SceUIntPAddr *pPA)
SceUInt32 l1pt_to_ttbr (SceUIntPAddr l1pt_paddr)
void sceKblMain (SceKernelBootParam *pBoot)
int smc_0x103 (void)
SceInt32 FUN_510013f8 (void)
SceInt32 mega_aslr_bitmap_alloc (SceUInt32 index)
SceUInt32 MapMegaASLR (SceSize size, SceUInt32 seed)
SceInt32 aslr_bitmap_alloc (SceUInt32 offset, SceSize size)
SceUInt32 MapASLR (SceSize size, SceUInt32 seed)
void boot (void)

Variables

char VECTOR_TABLE []
const SceSize VECTOR_TABLE_SIZE = 0x100
void _fbss
void _end

Macro Definition Documentation

◆ __ASSERT_LVL

#define __ASSERT_LVL ( lvl,
cond )
Value:
do { \
if (sceKernelGetAssertLevel() >= (lvl)) { \
sceKernelAssertLevel(lvl, !!(cond), SCE_NULL); \
}} while (0)
SceInt32 sceKernelGetAssertLevel(void)
#define SCE_NULL
Definition scetypes.h:36

Definition at line 235 of file boot.c.

◆ __SCx_KBL_SECURE_BUILD

#define __SCx_KBL_SECURE_BUILD   0

Definition at line 245 of file boot.c.

◆ ALIGN_UP

#define ALIGN_UP ( ptr,
align )
Value:
((ScePVoid)((((SceUIntPtr)(ptr)) + (align) - 1u) & ~((align) - 1u)))
unsigned int SceUIntPtr
Definition scetypes.h:45
void * ScePVoid
Definition scetypes.h:47

Definition at line 184 of file boot.c.

◆ ASLR_BITMAP_SIZE

#define ASLR_BITMAP_SIZE   (SCE_KERNEL_1MiB / SCE_KERNEL_4KiB)

Definition at line 647 of file boot.c.

◆ BOOTSW_ASLR_SEED

#define BOOTSW_ASLR_SEED   3

Definition at line 51 of file boot.c.

◆ BOOTSW_CP_INFO

#define BOOTSW_CP_INFO   1

!< aka DIP switches

Definition at line 50 of file boot.c.

◆ DBG_KMC_PRINT

#define DBG_KMC_PRINT ( flags,
fmt,
... )
Value:
FUN_5101c56c(flags, SCE_NULL, fmt, ##__VA_ARGS__)
void FUN_5101c56c(SceUInt32 flags, void *kmc, char *fmt,...)

Definition at line 225 of file boot.c.

◆ DBG_KMC_PRINT_LVL

#define DBG_KMC_PRINT_LVL ( lvl,
flags,
fmt,
... )
Value:
FUN_5101c5dc(lvl, flags, SCE_NULL, fmt, ##__VA_ARGS__)
void FUN_5101c5dc(SceInt32 lvl, SceUInt32 flags, void *kmc, char *fmt,...)

Definition at line 228 of file boot.c.

◆ DBG_PRINT_sensitive_lvl0

#define DBG_PRINT_sensitive_lvl0 ( fmt,
... )
Value:
sceKernelPrintfLevel(__msg_loglevel(SCx_LOG_LVL_0), fmt, ##__VA_ARGS__)
void sceKernelPrintfLevel(SceInt32 lvl, const char *fmt,...)

Definition at line 230 of file boot.c.

◆ DBG_PRINT_sensitive_lvl1

#define DBG_PRINT_sensitive_lvl1 ( fmt,
... )
Value:
sceKernelPrintfLevel(__msg_loglevel(SCx_LOG_LVL_1), fmt, ##__VA_ARGS__)

Definition at line 232 of file boot.c.

◆ KBL_BUILD_DATE_STR

#define KBL_BUILD_DATE_STR   "2017-02-23 19:47:57+0900"

Definition at line 18 of file boot.c.

◆ KBL_PARAM_LOCATION

#define KBL_PARAM_LOCATION   ((const void *)0x40200100)

Definition at line 252 of file boot.c.

◆ KBL_PARAM_MAGIC

#define KBL_PARAM_MAGIC   0xCBAC03AA

Definition at line 76 of file boot.c.

◆ KBL_REVISION_STR

#define KBL_REVISION_STR   "r96726"

Definition at line 17 of file boot.c.

◆ KERMIT_REVISION_MASK

#define KERMIT_REVISION_MASK   0x1FFFF

Definition at line 240 of file boot.c.

◆ KERNEL_BOOT_PARAM_MAGIC

#define KERNEL_BOOT_PARAM_MAGIC   0x7F407C30

Definition at line 181 of file boot.c.

◆ MEGA_ASLR_BITMAP_SIZE

#define MEGA_ASLR_BITMAP_SIZE   16

Definition at line 605 of file boot.c.

Function Documentation

◆ __set_dipsw_source()

void __set_dipsw_source ( const void * pDipsw)

◆ aslr_bitmap_alloc()

SceInt32 aslr_bitmap_alloc ( SceUInt32 offset,
SceSize size )

Definition at line 650 of file boot.c.

◆ boot()

void boot ( void )

Definition at line 1693 of file boot.c.

◆ FUN_510013f8()

SceInt32 FUN_510013f8 ( void )

Definition at line 273 of file boot.c.

◆ FUN_5101c56c()

void FUN_5101c56c ( SceUInt32 flags,
void * kmc,
char * fmt,
... )

◆ FUN_5101c5dc()

void FUN_5101c5dc ( SceInt32 lvl,
SceUInt32 flags,
void * kmc,
char * fmt,
... )

◆ l1pt_to_ttbr()

SceUInt32 l1pt_to_ttbr ( SceUIntPAddr l1pt_paddr)

Definition at line 207 of file boot.c.

◆ MapASLR()

SceUInt32 MapASLR ( SceSize size,
SceUInt32 seed )

Definition at line 683 of file boot.c.

◆ MapMegaASLR()

SceUInt32 MapMegaASLR ( SceSize size,
SceUInt32 seed )

Definition at line 613 of file boot.c.

◆ mega_aslr_bitmap_alloc()

SceInt32 mega_aslr_bitmap_alloc ( SceUInt32 index)

Definition at line 608 of file boot.c.

◆ memcpy()

void * memcpy ( void * ,
const void * ,
SceSize  )

◆ sceKblMain()

void sceKblMain ( SceKernelBootParam * pBoot)

◆ sceKernelAssertLevel()

void sceKernelAssertLevel ( SceInt32 lvl,
_Bool cond,
const void * kmc )

◆ sceKernelCorelockLock()

void sceKernelCorelockLock ( SceKernelCorelock * corelock,
SceUInt32 firstcpu )

◆ sceKernelCorelockUnlock()

void sceKernelCorelockUnlock ( SceKernelCorelock * corelock)

◆ sceKernelCpuId()

SceUInt32 sceKernelCpuId ( void )

◆ sceKernelGetAssertLevel()

SceInt32 sceKernelGetAssertLevel ( void )

◆ sceKernelPrintfLevel()

void sceKernelPrintfLevel ( SceInt32 lvl,
const char * fmt,
... )

◆ sceKernelVAtoPA()

SceInt32 sceKernelVAtoPA ( const void * va,
SceUIntPAddr * pPA )

◆ smc_0x103()

int smc_0x103 ( void )

Variable Documentation

◆ _end

void _end
extern

◆ _fbss

void _fbss
extern

◆ VECTOR_TABLE

char VECTOR_TABLE[]
extern

◆ VECTOR_TABLE_SIZE

const SceSize VECTOR_TABLE_SIZE = 0x100

Definition at line 188 of file boot.c.