N64のメモリー領域の割り当ては下記一覧のようになっており
0x00000000 to 0x03EFFFFF RDRAM Memory 0x03F00000 to 0x03FFFFFF RDRAM Registers 0x04000000 to 0x040FFFFF SP Registers 0x04100000 to 0x041FFFFF DP Command Registers 0x04200000 to 0x042FFFFF DP Span Registers 0x04300000 to 0x043FFFFF MIPS Interface (MI) Registers 0x04400000 to 0x044FFFFF Video Interface (VI) Registers 0x04500000 to 0x045FFFFF Audio Interface (AI) Registers 0x04600000 to 0x046FFFFF Peripheral Interface (PI) Registers 0x04700000 to 0x047FFFFF RDRAM Interface (RI) Registers 0x04800000 to 0x048FFFFF Serial Interface (SI) Registers 0x04900000 to 0x04FFFFFF Unused 0x05000000 to 0x05FFFFFF Cartridge Domain 2 Address 1 0x06000000 to 0x07FFFFFF Cartridge Domain 1 Address 1 0x08000000 to 0x0FFFFFFF Cartridge Domain 2 Address 2 0x10000000 to 0x1FBFFFFF Cartridge Domain 1 Address 2 0x1FC00000 to 0x1FC007BF PIF Boot ROM 0x1FC007C0 to 0x1FC007FF PIF RAM 0x1FC00800 to 0x1FCFFFFF Reserved 0x1FD00000 to 0x7FFFFFFF Cartridge Domain 1 Address 3 0x80000000 to 0xFFFFFFFF External SysAD Device
その中の、0x1FC00000〜0x1FC007BFまでの1984バイトの領域をPIF Boot ROMやPIF ROMなどと呼んでいる。
PIF ROMは、PIFがCPUでNMIを解放した後、データを送信し、0xBFC00000からコードの実行を開始します(32ビットモードではコールドリセット、ソフトリセット、およびNMI例外がこのアドレスにベクトル化されます)。基本的に、PIF ROMはn64を起動し、ROMに有効なブートコード(CIC)とチェックサムがあることを検証します(ROMの最初の0x1000バイト)。 80000300で、ブートストラップは起動時にPIF(Peripheral Interface)およびCICから返されたいくつかの値を80000300にコピーします。
PIF BootROMの一部は、IMEMおよびDMEMをクリアし、以下のゲームエントリポイント/ Devise状態フラグにジャンプする直前にRSP IMEMで実行されました。
N64 Memory#Boot_Strap - en64 wiki
SI Registers Detailed#PIF_Usage - en64 wiki
n64dev/pif.S at master · mikeryan/n64dev · GitHub
(WIP) UltraPIF - Multi Region N64 PIF Replacement - Eure Projekte - Circuit-Board