EDIT - THIS POST IS DEPRECATED. You shouldn't be using one of the release 1 posts.
How to change the pagepool size (version 1 only - not needed for version 2 - use the pagepool_changer application):
- Open os.payload.nb in a hex editor (I use XVI32)
- Go to address 0x7A0E0. Verify you see the following hex string: 03 15 A0 03 03 15 A0 13
- Change the 03s shown above in bold to 1/4 of your desired pagepool. Or change 03 15 to nn 16 where nn is 1/4 the pagepool size in MB. For example, to go for 8MB, change to 02 15. To go for 9MB, change to 09 16. Change both instances.
- Save and re-cook.
Note - I have not tested this - but it should work as described. Here is the code in NK.EXE in the XIP that is being changed (note the addresses below are NOT the same addresses in os.payload.nb):
0005a06c: e59f3758 ldr r3,#0x5a7cc ; = #0xba0810c0 ; Load R3 with 0xba0810c0
0005a070: e59f0750 ldr r0,#0x5a7c8 ; = #0x80006b90 ; Unrelated register load, might be used in called sub
0005a074: e5933000 ldr r3,[r3,#0] ; Load R3 with data at address 0xba0810c0 + 0x00
0005a078: e3530c01 cmp r3,#0x100 ; Compare R3 with value of 0x100
0005a07c: e59f3740 ldr r3,#0x5a7c4 ; = #0x803d6350 ; Load R3 with 0x803d6350 (pointer to PP size constant)
0005a080: 03a01503 moveq r1,#0xc00000 ; If R3 compare was equal, load R1 with 0value xC00000
0005a084: 13a01606 movne r1,#0x600000 ; If R3 compare was not equal, load R1 with value 0x600000
0005a088: e5831000 str r1,[r3,#0] ; Store R1 at address 0x803D6350 (location of PP size)
This is how it was stock. In the os.payload.nb I changed the 600000 to C0000. This could be patched to allow the pagepool changer app to work, but I trust this more.