I did some backtracking and reading through the bootloader code... I think I figured out how to load AUTOEXEC.BIN. Only thing is, I don't know where it's loaded yet and I don't know if it needs a special header (but I think not). Anyway, it seems that, besides 'BOOTDISK', the CF card needs to be named EOS_DEVELOP. Judging by the offsets of the two tests, it can boot from FAT12/16 AND FAT32. So.. my guess isFAT12/16:Volume label (0x2B) EOS_DEVELOP0x40 BOOTDISK
I hope there is somebody else with 400D, becose I'm now aiming at full camera restart without pulling the battery out. The bootloader is quite simple, and the adress is 0x80000. The procedure loading .bin and .fir are the same - in bin it just don't do the encryption. And the procedure enabling the bootdisk run is in the firmware (eventproc_EnableBootDisk ;-)
Problem is: we really don't know, becose:When the firmware entry point is run - it don't restart properly.
1. garbage in memory which isn't initialized during startupor 2. Multi-tasking-related CPU-settings are still active and code (other tasks) is run although it isn't valid anymore.
I threw some wild data somewhere and it caused a complete reboot.
I tired all initialize code I could think of.
Quote from: ASalina on 04 / June / 2008, 17:36:40I threw some wild data somewhere and it caused a complete reboot.This is not what we need. We need a "controlled reboot" which 1. resets the hardware2. lets us decide what code to execute afterwards.Your "approach" probably didn't meet the second requirement.