FS (IOS)

From WiiBrew
Jump to navigation Jump to search

FS is an IOS module responsible for handling NAND operations, both in the filesystem and in other areas such as boot2.

Devices

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.

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;
}