Ah, that is a good catch. Feel free to update the wiki (and we'll
need to update the menu item to say something other than "Write
MBR").
> 2. The offsets you show are for FAT32 disks only (I have some fat16 CF cards
> from my older canon SLR that require the FAT16 offsets). I know, any CF
> card used for video is likely to be >= 4GB and thus FAT32.
That's true. I don't have any FAT16 cards and didn't realize that
the 5D even supported them.
> 3. Your make-bootable script uses hex offsets for dd, but dd doesn't parse
> offsets in hex. At least not any version of dd I've ever used.
OS X handles them, which means that the BSD ones probably do, too.
> After the above corrections, I can make my 7D detect the boot disk. By
> detect I mean the camera just halts trying to read the card instead of
> turning on normally. The system seems to not run any autoexec.bat I've
> tested with.
The file must be called AUTOEXEC.BIN, not .bat.
> I banged my head on this for a while before realizing this
> must just be because I don't have the diskboot flag set.
>
> Yet I don't think I can set that flag without using a custom .fir file
> first. So I don't get why you recommend the autoboot procedure as a
> starting point.
The 7D dumping firmware that you ran also set the flag for you as a
side benefit. If the flag were not set, the camera would ignore the
bootable partition -- the fact that your camera hangs indicates that
it was attempting to find the autoboot binary.
> I'm thinking that in order to get the flag set to non-zero at 0xF800,0008 I
> have to hunt down the 7D address for the "call" function and invoke it with
> call("EnableBootDisk"), and wrap that all up into a custom .fir; Or does
> that routine even work before dryos is running?
In this case you must look for the function in the flasher binary,
not in the ROM dump since the dumper code is running the RAM image
of DryOS rather than the firmware version. According to my code it
is at:
void (*EnableBootDisk)(void) = (void*) 0x836978;
Attached is my incredibly hacked up, messy, and not ready for
prime-time 7D dumper.c program. From the number of "#if 0", you can
tell that this is a work-in-progress and I've been trying different
things.
--
Trammell
OS X handles them, which means that the BSD ones probably do, too.
> 3. Your make-bootable script uses hex offsets for dd, but dd doesn't parse
> offsets in hex. At least not any version of dd I've ever used.
The file must be called AUTOEXEC.BIN, not .bat.
> After the above corrections, I can make my 7D detect the boot disk. By
> detect I mean the camera just halts trying to read the card instead of
> turning on normally. The system seems to not run any autoexec.bat I've
> tested with.
The 7D dumping firmware that you ran also set the flag for you as a
side benefit.