After handling some MMU related things <board_init_lowlevel> can be called (if not disabled). This is a board specific function for SDRAM setup for example. As its board specific, your can do whatever you need to bring your board up.
In the case the boot happens from NAND flash memory, further steps are required. Most of the known processor devices are reading the first few blocks from the NAND flash memory into some kind of internal SRAM. This small part must be able to initialize the SDRAM controller and to read the remaining rest of the barebox binary from the NAND flash memory prior returning from <board_init_lowlevel>.
When <board_init_lowlevel> returns it will be assumed there is now a working RAM that can be used for all further steps.
Next step is relocation of barebox itself (if not already done). It gets copied to RAM and the last assembler instruction is a jump into start_barebox(). This target address is the first C instruction in barebox. At this point of time:
"runtime address == link address".
1.5.6