I now have 2 360s which have been upgraded to the 2.0.4552.0 Kernel. Neither box will boot if a flash without the 4552 patch is used!!! I verified this with a brand new 360 Core (This one was bought in Munich, today and came with K/D 2.0.2241.0 and a Samsung MS25 - there's still some old stock floating around)
Test procedure:
1) Remove flash and dump, copy to spare flash
2) Install update 2.0.4552.0 (using copy on spare flash)
3) Reinstall original flash (2.0.2241.0) 360 will not boot, black screen for approx 45 seconds followed by flashing red lights
4) Reinstall updated copy on spare flash (2.0.4552.0) and 360 boots normally
WTF??? The original (completely untouched) flash delivered with the console will NOT boot after the 4552 patch has been applied. Something has been changed outside the flash that invalidates the Kernel if the 4552 patch is absent. Analysing the bus activity shows that the read sequence has changed, the Kernel is loaded as normal and both patches are read fully (previously only the most recent was loaded) the boot sequence then repeats.
One other oddity observed in the new flash is in the 512 byte at page 0
Bytes from block 0 of Xbox A:
00000000 FF 4F
07 60 00 00 00 00
00 00 80 00 00 06 C0 00 ÿO.`......€...À.
00000016 A9 20 32 30 30 34 2D 32 30 30 35 20 4D 69 63 72 © 2004-2005 Micr
00000032 6F 73 6F 66 74 20 43 6F 72 70 6F 72 61 74 69 6F osoft Corporatio
00000048 6E 2E 20 41 6C 6C 20 72 69 67 68 74 73 20 72 65 n. All rights re
00000064 73 65 72 76 65 64 2E 00 00 00 00 00 00 00 00 00 served..........
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000096 00 00 00 00 00
06 C0 00 00 02 07 12 00 00 40 00 ......À.......@.
00000112 00 00 00 00 00 00 00 00 00 00 30 00 00 00 10 00 ..........0.....
Base Kernel is 2.0.1888.0 (0x760)
Bring up code ("CB" Section) is at 0x8000, length 0x61E0, Version 1888
Kernel ("CD" Section) is at 0xE1E0
Patches ("CF" Sections) are at 0x6c000 and 0x7c000
Bytes from block 0 of Xbox B:
00000000 FF 4F
07 60 00 00 00 00
00 00 80 00 00 07 00 00 ÿO.`......€.....
00000010 A9 20 32 30 30 34 2D 32 30 30 35 20 4D 69 63 72 © 2004-2005 Micr
00000020 6F 73 6F 66 74 20 43 6F 72 70 6F 72 61 74 69 6F osoft Corporatio
00000030 6E 2E 20 41 6C 6C 20 72 69 67 68 74 73 20 72 65 n. All rights re
00000040 73 65 72 76 65 64 2E 00 00 00 00 00 00 00 00 00 served..........
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000060 00 00 00 00 00
07 00 00 00 02 07 12 00 00 40 00 ..............@.
00000070 00 00 00 00 00 00 00 00 00 00 30 00 00 00 10 00 ..........0.....
Base Kernel is 2.0.1888.0 (0x760)
Bring up code ("CB" Section) is at 0x8000, length 0x9310, Version 1903
Kernel ("CD" Section) is at 0x11310
Patches ("CF" Sections) are at 0x70000 and 0x80000
The "CB" code is aparently used to boot the main CPU
So, yeah Tiros, there is at least a pointer to the first patch and the second is always found 0x10000 bytes later
Pictures of my modified 360:
http://rapidshare.com/files/11603130/motherboard.rar.html. The pin header on the motherboard connects via 40 way ribbon to a board on the top of the 360 that carries the flash.
As for the programmer, really it's just the Embedded Artists LPC2148 module plus prototype board and some pin headers. See the "homegrown hynix reader" thread