At the moment it was only tested with Action Replay 1.06 There seem to be problems with 3rd party memory cards. I'm using a nintendo memcard-59.
MAKE A BACKUP OF YOUR MEMORY CARD! It takes only a minute to do it with ctr-gcs, so don't complain if you loose any data! I normally make both an image of the card and a copy of each individual file.
(Did you make a backup? No? Do it now!)
If everything went right you should have three additional files on your card: level2.bin (BIN icon), level3.dol (DOL icon) and ipl.dol (DOL icon)
You can load your own DOL files using nc (netcat):
nc 192.168.0.15 4000 < ctr-gcs.dol
(The address is set up to 192.168.0.15. If you have the source to tmbinc's bootloader you can change it to something else. Maybe I change it so that the IPL uses a settings file on memcard. Or some unused bytes in SRAM? There is some dhcp code in lwip as well. Suggestions or code are welcome!)
It supports uploading of ELF and DOL programs, so the message "no elf image at address xxx" is normal. DOL programs have the advantage that they are directly loaded to the correct address, while ELF files are read into a buffer and then copied.
Alternatively you can put the 64-byte gci header in front of your own DOL files and upload them to your memcard. Download level3.dol from the card for an example. Or you can modify the installer to include a different file.
The Action Replay code is a tiny piece of code that reads one block (8192 byte) from the memorycard into RAM and jumps to the start. This is the reason why you need the installer as well: The address of this block is only known after level2.bin has been written to the card. This block contains a more advanced loader that can search on the memorycard for a file and can use the filesystem to read the correct blocks. The file that is read is just a normal DOL file, with the address selected to not conflict with the loader