It looks to me like we can completely automate this as follows:
change the link-boot.ld script to generate a symbol at the end of bss (e.g. _end). Make everything that refers to MEMISOSIZE refer to &_end - &_start
Done

I tested this on my cam (with both diskboot and .fir), and it appears to work fine. Displaying the values of _start and _end give the correct values.
Am I missing something here ?
edit:
attached patch against trunk. Note, each platform needs a minor change, only a540 is done
debug->size stuff shows the values of _start (should = MEMISOSTART) _end (should = MEMISOSTART + size reported in build) and difference (should = size reported in build)
edit:
difference is what is used for MEMISOSIZE
edit:
updated patch, string for mbox shouldn't be on the stack

edit:
added full patch, will check in if no one one points out serious problems.