After spending literally my entire work day solving this, I did manage to get the last-ish patch out!
So what caused me to be busy all day?
init/main.o: In function `start_kernel':
init/main.o(.text.init+0x444): undefined reference to `__virt_to_phys'
arch/armnommu/kernel/kernel.o: In function `request_standard_resources':
arch/armnommu/kernel/kernel.o(.text.init+0x914): undefined reference to `__virt_to_bus'
arch/armnommu/kernel/kernel.o(.text.init+0x92c): undefined reference to `__virt_to_bus'
What turns out to be maybe relatively easy, wasn't so easy to find, in part two 2 changes upstream.
include/asm-armnommu/memory.h enabled a #if 0 guard around the above mentioned __virt_to_phys routines, claiming the other macro's should be used instead. In conjunction with that change, include/asm-armnommu/page.h removed the reference to memory.h (Whilst using the __virt_to_phys macro's itself). So far, in the 2.4 tree, I haven't found a workaround, but we'll see when we use a later kernel version.
So removing the guard, and re-adding the include, solves all headaches. I'll finish sorting out the diff's and build a nice kernel for the final patch-set!
So here it is, the final patch-set, with the architecture specific changes from the BSP.
As mentioned before, I had forgotten some include files that where supposed to go with other settings.
http://schinagl.nl/~oliver/openipcam/009_usb.diffhttp://schinagl.nl/~oliver/openipcam/009_char.diffhttp://schinagl.nl/~oliver/openipcam/009_parport.diffThen something needed or else the whole thing won't build.
http://schinagl.nl/~oliver/openipcam/009_upstreamfix.diffAnd finally, the architectural changes.
http://schinagl.nl/~oliver/openipcam/009_arch-w90n745.diffLots of patches, Makes one wonder if the produced binary actually still works.
Some minor changes from the top of my head, are to the armnommu/config.in file, I think it should make slightly more sense now, useless/silly includes etc reverted etc.
http://schinagl.nl/~oliver/openipcam/linux.bin-2.4.20-uc1-09 86c610206880a6ae0c9981f844a3f60b
and a final image, which is without the mtdblock stuff I mentioned in build 08
http://schinagl.nl/~oliver/openipcam/linux.bin-2.4.20-uc1-10 11b3d5c1c18bd965a99738c23e4eb331
This binary should be possible to achieve with uClinux-2.4.20-uc1 +all diffs!
So with all these diffs and changes, the cleansed uncompressed patch is 1.2MB; 176KB bzip2 compressed in size! I'd call that a big win

Compare that to the previous 14MB, 2.1MB bzip2 compressed diff we had before, it quickly becomes very obvious that there was a lot of useless junk that should have been there. Assuming it works.
The only odd thing, is that I don't get yet, is that the linux binary, went up in size. From 846KB for the BSP kernel, to 943KB for our 'patched' kernel. Might be the uC1 changes or ... something.
So what am I going to do now? Get a 2.4.20 vanilla kernel, patch it up to uc1 and apply these patches. Probably in a different order and hopefully combine the right ones, creating more sensible patches

After that, compare them to the latest nuvoton BSP and try and get in touch with winbond/nuvoton and have hem signoff the patch as GPL, maing it possible to integrate it into <anything>?
Back to work for now

P.S. I won't update svn anymore, everything is committed afaik, and I might use the patches from the ~public_html bit anyway. So once git is update; i'll pull from that and use that exclusively.