bootloader
目的:把Image load至sdram上並且執行
The following high-level overview lists the tasks that the boot loader performs in a semi-chronological order, immediately following a CPU reset:
- Early CPU initialization.
- Enter supervisor mode.
- Clear the instruction and data caches.
- Clear the translation look-aside buffers (TLBs).
- Drain the write and fill buffers.
- Configure and enable the RAM controller.
- Ensure that interrupts are cleared and masked.
- Initialize any required phase-locked loops (PLLs) or timebases such as RTC and tick counter.
- Optionally relocate the run-time image to RAM. The boot loader may initially run in flash memory after reset.
- Optionally enable the MMU and caches
- Copy the copy-section data to its final location. This instantiates initialized global data.
- Create and populate a reserved memory area to be shared with the OS. This boot arguments or boot args area is used to pass along various bits of information to the OS.
- Early board-level initialization.
- Set up debug UART.
- Optionally provide a user menu for configuring loader options.
- Initialize the Ethernet controller.
- Optionally obtain an IP address for the target from a DHCP server. An alternative would be to assign a static IP address to the device.
- Initialize the TFTP connection. Platform Builder uses the TFTP protocol to
- download .bin files from the development workstation.
Download the .bin file as individual records, then verify each with a checksum, and then store the data where each record indicates it needs to be stored. The operation is slightly different if the run-time image is to be stored in flash memory.
Obtain various user settings from Platform Builder, such as boot clean and whether to establish a passive KITL connection, as well as IP and port address information for various Platform Builder service connections.
Execute the downloaded .bin file by ensuring the system state is configured appropriately and then jumping to the run-time image's startup address.
Comments