Right, the bootloader must be compiled and programmed onto the board with Codewarrior. Once programmed onto the board, it allows you to load code generated with gcc. I would rather not involve Codewarrior at any stage of the process, but I don't have any open-source tools for accessing the 51QE's BDM interface.
I have attached a header file with register definitions for the 51QE that works with gcc. I will also add this to the example tarball on my website.