Editing Loaders
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
[[Category:Software]] | |||
= Explaination = | = Explaination = | ||
Loaders are used for loading other modules. | Loaders are used for loading other modules. | ||
Line 8: | Line 9: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Loader !! Location !! Type | ! Loader !! Location !! Type !! Remarks | ||
|- | |- | ||
| bootldr || [[Flash]] || Boot Loader || | | bootldr || [[Flash]] || Boot Loader || primairy loader from chain of trust | ||
|- | |- | ||
| metldr || [[Flash]] || Meta Loader | | metldr || [[Flash]] || Meta Loader || aka asecure_loader. Loads other loaders | ||
|- | |- | ||
| appldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Application Loader | | appldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Application Loader || loads [[VSH|vsh.self]] (Userspace Module) | ||
|- | |- | ||
| isoldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Isolation Loader | | isoldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Isolation Loader || loading [[Iso module|isolated SPU modules]] | ||
|- | |- | ||
| lv1ldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Hypervisor Loader | | lv1ldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Hypervisor Loader || loads [[lv1.self]] ([[Hypervisor_Reverse_Engineering|Hypervisor]]) | ||
|- | |- | ||
| lv2ldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Supervisor Loader | | lv2ldr || [[Boot_Order#CoreOS_PKG_Filelisting|CoreOS]] || Supervisor Loader || loads lv2_kernel.self (Supervisor kernel) | ||
|- | |- | ||
|} | |} | ||
Line 74: | Line 32: | ||
| 0x30 || isoldr/appldr || Version mismatch (isoldr version differs from version returned by SPU channel 73). | | 0x30 || isoldr/appldr || Version mismatch (isoldr version differs from version returned by SPU channel 73). | ||
|- | |- | ||
| 0x16 || isoldr || | | 0x16 || isoldr || | ||
|- | |- | ||
| 0x27 || appldr || SPU arg at 0x3E840 | | 0x27 || appldr || SPU arg at 0x3E840 | ||
|- | |- | ||
|} | |} | ||
Line 103: | Line 53: | ||
=== lv1ldr === | === lv1ldr === | ||
Used for loading the hypervisor (lv1.self) | Used for loading the hypervisor (lv1.self) | ||
==== LS Parameters Layout ==== | ==== LS Parameters Layout ==== | ||
Line 109: | Line 59: | ||
|- | |- | ||
! Address !! Usage !! Comments | ! Address !! Usage !! Comments | ||
|- | |- | ||
| 0x3E000 || Wait flag || If (flag==0){wait;} // use 0xFF00000000ULL | | 0x3E000 || Wait flag || If (flag==0){wait;} // use 0xFF00000000ULL | ||
|- | |- | ||
| 0x3E800 || Arguments || | | 0x3E800 || Arguments || | ||
|} | |} | ||
Line 277: | Line 82: | ||
|- | |- | ||
| 0x3F000 || Program revoke list || | | 0x3F000 || Program revoke list || | ||
|} | |} | ||
Line 319: | Line 97: | ||
|u64 || *spu_module || SPU - address in ram | |u64 || *spu_module || SPU - address in ram | ||
|- | |- | ||
|u64 || *spu_module_arg1 || Profile - address in ram | |u64 || *spu_module_arg1 || Profile - address in ram || | ||
|- | |- | ||
|u64 || spu_module_arg1_size || sizeof(profile) | |u64 || spu_module_arg1_size || sizeof(profile) || | ||
|- | |- | ||
|u64 || *spu_module_arg2 || Not used | |u64 || *spu_module_arg2 || Not used || | ||
|- | |- | ||
|u64 || spu_module_arg2_size || Not used | |u64 || spu_module_arg2_size || Not used || | ||
|- | |- | ||
|u8 || res1[16] || Unknown | |u8 || res1[16] || Unknown | ||
Line 344: | Line 122: | ||
|u64 || *spu_module || SPU - address in ram | |u64 || *spu_module || SPU - address in ram | ||
|- | |- | ||
|u64 || *spu_module_arg1 || | |u64 || *spu_module_arg1 || aim_spu args - address in ram || | ||
|- | |- | ||
|u64 || spu_module_arg1_size || 0x80 | |u64 || spu_module_arg1_size || 0x80 || | ||
|- | |- | ||
|u64 || *spu_module_arg2 || eid0 - address in ram | |u64 || *spu_module_arg2 || eid0 - address in ram || | ||
|- | |- | ||
|u64 || spu_module_arg2_size || sizeof(eid0) | |u64 || spu_module_arg2_size || sizeof(eid0) || | ||
|- | |- | ||
|u64 || field48 || 3 | |u64 || field48 || 3 | ||
|} | |} | ||
< | <code> | ||
union | union aim_args { | ||
struct { | struct { | ||
void *buf; // debug_info buffer address | void *buf; // debug_info buffer address | ||
Line 367: | Line 145: | ||
} out; | } out; | ||
}; | }; | ||
</ | </code> | ||