uboot needs to initialize certain peripherals for its own use. For instance, uboot has the option to boot via tftp (which requires networking), local storage (which requires the storage bus/filesystem info, etc), or even just jump to a spot in memory and execute code there. In order for it to do this, it must have put those systems into a known good state.
Many times, the kernel will re-initialize these without harm. Be careful though. On some boards, this double initialization WILL cause problems (specifically with certain devices, ex: FPGAs, that aren't expecting re-initialization). This is why vendors who ship BSPs typically have extensive sets of patches to apply to the kernel.
|