This is an overview of all versions of roms I know of for the xda-1 and xda-2.


these are all 262144 byte images from 80000000 - 80040000
the bootloader version is clearly visible if you look for 'version'
or use something like
strings bl.nb0|grep "\.[0-9][0-9]"

you can check the version of the bootloader in your device, by booting it in bootloader mode ( hold powerbutton ( upper left ), while pressing reset ( lower left hole ) )

if you have a bootloader not listed here, please mail it to me. a pocketpc tool to extract the bootloader is here.
versionbuilt atmd5sum
V5.142002-04-18 12:25:544ebb788f8ca96cc59a2d5cc5363cf99d
V5.152002-06-06 20:29:170f31faf04f069668e9dc93fba545bfa3
V5.172002-08-13 18:19:238a9c7166d7e9ea7e78c94b5a2360cd33
V5.222003-05-15 17:46:555c937d26ffe5d87d8895a556d8922954
V6.222003-05-15 18:26:47866b7a2acf859a7137fd5ad1f04cbb1a

xda-ii bootloaders
0.23 1.26 2003-07-09 21:14:169a6b0ecdafd2914ea464ecaff193f0f8
0.26b 1.28c2003-08-19 17:29:264003a006e156c041f22061f1d0a38bc6
1.01 1.28 2003-09-15 22:22:132954f492f74688b4a2529702cf24623a
1.02 1.29 2003-09-24 18:17:06d37e44ead0e1a3f25ae66b7424e70080
1.03 1.32b2003-12-10 14:54:397032daf451e7c9a0600afd614aba3689


these are all 32243712 byte images from 80040000-81f00000
if your rom is larger, truncate it using
dd if=large.nb1 of=nk.nb1 count=492 bs=64k
to extract the nk.nb1 from a .bin or .nbf file, use
perl nk.nbf -wo nk.nb1
the version and date can be found with
strings -el os.nb1  | grep ".\...\... [A-Z]\|[0-9]/[0-9][0-9]/[0-9]"

3.00.01 ENG02euro 2002-05-185fce81938ab70a056675e52660dd975e
3.02.00 GER02de 2002-05-279f00aad6276bd08c8de3703156c503ad
3.04.00 ENGo2/PPC2003PE 2002-06-12390506bb206c69746419958a4a9def86 this rom is larger
3.12.07 ENGo2asia 2002-08-13fd0b8c338c0928df04a4a5f4caa83945
3.13.07 GERtmobile 2002-09-10a51e3924b417182ea80869c25b91c2fa
3.14.13 ENGO2euro 2002-10-09f88a15831fdad726f14422b81d508aa9
3.14.16 GERo2de 2002-10-11a41c258562c784c1a5655b536187b8ea
3.14.17 ENGO2asia 2002-10-11754cc7175f151082f6208e4900a91ad6
3.14.40 ENGTMobile-US 2002-11-26c06909d3b3a80e6926d2be97be989d71
3.15.15 ENGO2euro 2002-12-11bf3880df78c5932a812a6ff460611dd7
3.16.13 ENGQtek 2003-01-093dfdcdbe68ec16be572a43b053490aad
3.16.43 ENGT-MobCZ-test 2003-02-251e96c46df80176f6fa9de2220f27d1ca
3.16.52 ENGXDASER-10 2003-03-10411632ff1afb8e2213ee7e416381eca6
3.16.52 ENGqtek 2003-03-103a08e87551432c3ebaf9de76b434f104
3.17.03 ENGo2euro 2003-05-15c6208ebe96667e7955f53e109cbc1f8c
3.17.03 ENGXDASER-11 2003-05-150aefe8c7a303b59b2ba9e7cd073eb419
3.17.03 ENGXDASER-12 2003-05-15ca41689053b028301ffa3914120adcca
A.20.17 ENGSX56-AT&T2003-05-15dfe90f07a7a9038d2d0e54f5b70cb74f
4.00.01 ENGPPC2003 2003-05-16c29b82c444eb5b4f5db68cafc376e74f
3.18.07 CHSdopod 2003-05-2607b57cd00ad1c028eb78882be942a50a
3.19.01 GERo2euro 2003-05-278d88f5354955e77ebb815f33d1616d05
3.19.03 GERo2euro 2003-05-314b99a0459776ea8e03d99a0736a2c430
4.00.05 ENGppc2003 2003-06-05368a3eacc902f446c3337004737bc624
4.00.10 ENGppc2003 2003-06-20dad2e3cad6095282bf1d58ccf12171e8
4.00.11 ENGppc2003 2003-06-231cd007bbffa268b12b7968cabb7cc75f
4.00.16 ENGppc2003 2003-07-108ac9fd0d069f71b6113785cf724315ac
3.20.06 ENGo2asia 2003-07-30fdd86b4c1815435a497e223f0bc4d17e
4.00.33 GERppc2003 2003-09-155997e3d491028f6dc7336e9ad8b4cbc1
4.01.00 ENGppc2003 2003-10-27aa187a457bc801c2d3f31a721a189495
A.30.07 ENGSX56-AT&T2003-12-1271121a205908655c7cbaed50b5593c4e
A.30.09 ENGSX56-AT&T2004-01-018f269afc9292e6fc5bcdc42eea048805

xda-ii roms
1.01.00 USAo2 xdaii 2003-08-016582475979705a99e478c56161e48ef4
1.03.00 USAo2 xdaii 2003-08-0176f743f921bd527b7b5ef603e30893ab
1.60.00 WWEtmo xdaii 2003-10-14b35c7cf8584928e37d7acb76a9ff9187
1.60.00 GERtmo xdaii 2003-10-143e5ecea5bc0b41d5604e30e6d2d25601

radio images

these are md5sums of files contained in the update package. after running the upgrade executable, look in the directory "C:\Program Files\Programme B" and open the .CAB file using your favorite archiving tool. the file RSUPGR~1.004 ( which should be the largest, about 4 M ) is RSUpgrade.cp64

these the versions are not very clear. you can find something that most often looks like the version by extracting the binary from the .cp64 file with

perl RSUpgrade.cp64 -l 4 -w -o rsu
and then looking for 32S54, the version string is near there. like this
strings rsu-00300000.bin | grep -9 32S54 | grep "\."|sed s/^F//|grep -v "1\.3\.2"
but it is not always clear to me how they relate to the 'real version'
and, btw, you should ignore the 'F's before the version numbers, 'F' is part of the alignment filler for the arm processor.

the dates of the roms can be found with:

strings rsu-00020000.bin| perl -ne "print qq($3-$2-$1\n) if (m{clearcase.*(..)/(..)/(..)})" | sort | tail -1

305B 4.06 ---- 604C02-07-251bca8b15b33888417d38161b352b7f99
3.07 4.07 ---- 6.0802-08-14ded10b60c904f46e260e699fee87dcff
3.14 ---- ---- 6.1402-10-11df0d5a142ef1e766a9152bc7ef626fcc
4.16 ---- ---- 6.1602-11-152a1e8c24216ef9a9988b07f8d042b75c
316C ---- A.10 6.1802-11-193618c287952710d357277d0e2cdddf70us tmobile
3.19 4.18 A.12 6.2003-01-1040d5725af6592bc09c53076ebc34bf96norway
3.21 4.20 A.20 6.2203-01-249499a5444724aaf87efefa6559bfdf31
3.23 4.20 A.20 6.2303-03-126ccf1ffd4ec70e8ae0f9d0414e694f95tmobile
3.23 4.20 A.20 6.2303-03-178df944291ebecfc8be2946b35d953904
3.24 4.21 A.20 6.2303-04-0929fb6283a7a411802fab527bc0ca6a27
3.25 4.21 A.20 6.2303-05-13ca468bcff1660b342e19489e335f853fsx56
3.25 4.21 X.XX 6.2403-06-06a1f4fcfb743ce1225b3309eeb40fb1e6tmob2003
3.25 4.21 X.XX 6.2403-09-0527e79e7bd232fcc8c78a29a1396c5313tmob2003 4.01.00
C.33 .02 A.33 6.3303-11-25ceb39c2a669898ba3e4ee4cf5f2e23cdsx56 a.30.09
I noticed that the .cab file is language dependend. while the .cp64 file stays the same.

since the 03-01-24 version the 'at%ureg' command is restricted, and 'at%erase' no longer works.

If you find a rom not listed on this page, please let me know.