2015-08-04 21:57:37 -04:00
|
|
|
/*
|
|
|
|
|
* firm.h
|
2016-03-23 02:27:53 +01:00
|
|
|
* by Reisyukaku / Aurora Wright
|
|
|
|
|
* Copyright (c) 2016 All Rights Reserved
|
2015-08-04 21:57:37 -04:00
|
|
|
*/
|
2016-03-06 03:41:07 +01:00
|
|
|
|
2016-03-11 15:08:05 +01:00
|
|
|
#pragma once
|
2015-08-04 21:57:37 -04:00
|
|
|
|
2015-08-21 14:11:23 -04:00
|
|
|
#include "types.h"
|
|
|
|
|
|
2016-03-23 02:27:53 +01:00
|
|
|
#define PDN_MPCORE_CFG (*(vu8 *)0x10140FFC)
|
|
|
|
|
#define PDN_SPI_CNT (*(vu8 *)0x101401C0)
|
|
|
|
|
#define CFG_BOOTENV (*(vu8 *)0x10010000)
|
2016-02-08 03:37:03 +01:00
|
|
|
|
2016-03-11 15:08:05 +01:00
|
|
|
//FIRM Header layout
|
|
|
|
|
typedef struct firmSectionHeader {
|
|
|
|
|
u32 offset;
|
|
|
|
|
u8 *address;
|
|
|
|
|
u32 size;
|
|
|
|
|
u32 procType;
|
|
|
|
|
u8 hash[0x20];
|
|
|
|
|
} firmSectionHeader;
|
|
|
|
|
|
|
|
|
|
typedef struct firmHeader {
|
|
|
|
|
u32 magic;
|
|
|
|
|
u32 reserved1;
|
|
|
|
|
u8 *arm11Entry;
|
|
|
|
|
u8 *arm9Entry;
|
|
|
|
|
u8 reserved2[0x30];
|
|
|
|
|
firmSectionHeader section[4];
|
|
|
|
|
} firmHeader;
|
|
|
|
|
|
2016-02-25 20:19:20 +01:00
|
|
|
void setupCFW(void);
|
2016-03-23 03:45:32 +01:00
|
|
|
void loadFirm(void);
|
|
|
|
|
void patchFirm(void);
|
2016-03-11 15:08:05 +01:00
|
|
|
void launchFirm(void);
|