1,146 bytes added
, 02:57, 29 May 2022
'''FS''' is an [[IOS]] module responsible for handling [[Hardware/NAND|NAND]] operations, both in the filesystem and in other areas such as [[boot2]].
== Devices ==
* [[:/dev/boot2]]
* [[:/dev/flash]]
* [[:/dev/fs]]
* Any path that exists in the NAND filesystem can also be opened
== Flavors ==
FS comes in 4 flavors:
* FS is present in [[IOS28]] and below, as well as all [[System Menu]] IOSes prior to [[3.4]].
* FFS is present in non-System Menu IOSes starting with [[IOS31]] but prior to [[IOS37]] (excluding [[IOS38]]).
* FSP is present in System Menu IOSes starting at 3.4.
* FFSP is present in non-System Menu IOSes (including stubs of System Menu IOSes) starting in IOS37.
FS and FFS seem to have a completely different layout in the assembly, so the functional differences are not known.
== Configuration ==
FS has multiple config structs. Numerical values currently listed are measured in powers of 2.
<pre>
struct SFFSConfig {
u32 unknown;
u32 superblockAreaSize;
}
struct SFFSConfig2 {
u32 off1;
u32 off2; // off1 + off2 is the offset to superblocks
}
struct NANDChipConfig {
u32 unknown[9];
u32 pagesPerCluster;
}
</pre>