You're basically asking how a computer boots up? My understanding is that the CPU always jumps to a hard-wired address on boot-up. The instructions at this location could be the location that the CPU executes from indefinitely if it's a small program on a self-contained MCU. On a processor, these instructions might just be boot instructions that tell the processor to look elsewhere in memory (i.e. external non-volatile memory) and execute from there, or to grab data from non-volatile memory, either internal or external, and load it into RAM (either internal or external) and then continue executing from RAM. Of course if external RAM is used then there are other instructions in this same location that must be run first to tell the CPU what RAM is available for use beyond the internal RAM that is already present.
Is this flash internal or external? And does the CPU have some internal flash? I think CPUs that have internal flash but are intended to execute off external flash can be wired up so that it directly jumps to a preset address over the external bus, bypassing the internal flash entirely. Or the internal flash (which the CPU jumps to by default) is programmed separately from external flash to tell the CPU that external flash exists and there is stuff there to execute.
On a PC, all this stuff exists in the BIOS flash. PC CPUs are built to jump to a pre-defined address externally (since they have no internal ROM anyways) to which this BIOS flash is connected to. In turn, the BIOS flash tells the address on which harddrive to search for the OS, etc.
But I don't think that's what you're asking because I'm under the impression you already understand that. Is there some difference or special case about the timing register values in .bin file that you are unsure about? Maybe you feel like those values have to be somehow written before the CPU can execute any instructions at all?
Or are you not sure how the CPU header file which just contains values and no instructions ends up being executed by the CPU? If this one is the case, then the functions executing instructions that grab those header values are buried somewhere inside your compiler configuration files. But I'm under the impression you know that too?
Or do you just require a super detailed explanation for your presentation?