In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

/dev/boot2: Difference between revisions

From WiiBrew
Jump to navigation Jump to search
Hallowizer (talk | contribs)
/dev/boot2 IOS_Ioctl: added in and out columns
Hallowizer (talk | contribs)
/dev/boot2 IOS_Ioctl: more ideas on these ioctls (I think 3 is certain now)
Line 20: Line 20:
| Nothing
| Nothing
| Nothing
| Nothing
| Possibly writes padding to the end of the main boot2 copy?
| Possibly writes ECC data to the main copy of boot2?
|-
|-
| 3
| 3
| 4 bytes: boot2 size
| 4 bytes: boot2 size
| Nothing
| Nothing
| Possibly copies the main boot2 copy over to the backup? Will be called by boot2 recovery if [[:/sys/boot.sys]] exists.
| Seems to copy the main boot2 copy over to the backup copy. Generates ECC data a second time?
|}
|}



Revision as of 07:48, 6 March 2022

/dev/boot2 can presumably be written to to install a new boot2. THIS HAS NOT BEEN VERIFIED, DO NOT RELY ON THIS TO INSTALL A CUSTOM BOOT2.

This accepts the following commands: open, close, read, write, seek, ioctl, ioctlv

IOCTL example:

14 ioctl(0,4,12 return -101)

ioctlv 4,12,14 last only in IOS56+

/dev/boot2 IOS_Ioctl

Number In Out Description
1 Nothing Nothing Possibly writes ECC data to the main copy of boot2?
3 4 bytes: boot2 size Nothing Seems to copy the main boot2 copy over to the backup copy. Generates ECC data a second time?

/dev/boot2 IOS_Ioctlv

number name in count out count vec entry target vec entry size [bytes] libogc prototype Description
0xC ? 1 2 ? 0x40 No ?
? 0x4
? 0x4
0x4 ? 1/2 1/2 ? 0x40 No Can be used with 1 In and 1 Out or 2 In and 2
? 0x4
? (only if you use 2 In/Out)(if this is 0 it is the same as use only 1 in and Out) 0x4
? (only if you use 2 In/Out) Different each time(0xD* 2.in)
0xE ? minimal 1 0 ? ? No ?

/dev/boot2 error codes

Note: POSIX is a standardized system that helps maintain compatibility between many different operating systems. So, each error code shown below has a given POSIX equivalent (not known yet). Other OS's many have different error code numbers, but if their POSIX equivalent is the same, they mean the same thing.

Error code POSIX equivalent Notes
-101 ? This can refer to: Invalid Wrong IN or OUT size, wrong size for a part of the vector, vector alignment problems, non-existant ioctl, or wrong structure.
-102 ? ?
-104 ? ?
-106 ? ?
-107 ? ?
-108 ? ?