On Mon, Jul 10, 2017 at 7:16 PM, Kenny Koller
<
ke...@understoryweather.com> wrote:
>
> I am assuming the following which may be incorrect so please correct as
> necessary:
>
> The load address of the SPL (MLO) is determined by the PPL/ROM code.
>
> The SPL (MLO) must know the load address of U-Boot as it is not interactive.
Correct, it does...
http://git.denx.de/?p=u-boot.git;a=tree
Somewhere in teh u-boot tree you'll find, these magic numbers:
sudo dd if=./u-boot/MLO of=${DISK} count=1 seek=1 bs=128k
sudo dd if=./u-boot/u-boot.img of=${DISK} count=2 seek=1 bs=384k
>
> U-Boot must be linked with the above address in mind.
>
> U-Boot can load the DTB and the kernel anywhere it likes. The DTB address
> can be passed to the kernel (I believe through a register). The kernel
> itself must loaded at the address at which is was linked.
>
> I'd like to understand where each of these are defined so I can
> intelligently configure U-Boot to do the right things (rather than simply
> copy a uEnv.txt and assume it is correct).
http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/ti_armv7_common.h;h=a4676d3a7ffb98d896d562172ef6941700b6135c;hb=HEAD#l33
33 /*
34 * We setup defaults based on constraints from the Linux kernel, which should
35 * also be safe elsewhere. We have the default load at 32MB into DDR (for
36 * the kernel), FDT above 128MB (the maximum location for the end of the
37 * kernel), and the ramdisk 512KB above that (allowing for hopefully never
38 * seen large trees). We say all of this must be within the first 256MB
39 * as that will normally be within the kernel lowmem and thus visible via
40 * bootm_size and we only run on platforms with 256MB or more of memory.
41 */
42 #define DEFAULT_LINUX_BOOT_ENV \
43 "loadaddr=0x82000000\0" \
44 "kernel_addr_r=0x82000000\0" \
45 "fdtaddr=0x88000000\0" \
46 "fdt_addr_r=0x88000000\0" \
47 "rdaddr=0x88080000\0" \
48 "ramdisk_addr_r=0x88080000\0" \
49 "scriptaddr=0x80000000\0" \
50 "pxefile_addr_r=0x80100000\0" \
51 "bootm_size=0x10000000\0" \
52 "boot_fdt=try\0"
>
> I'm using Yocto/Poky Pyro. Where do I find all these bits of information so
> I can tie everything together?
aka, use ^ those variables.. Best of all, they are distro_boot
defaults, so it's transferable to different boards.
Regards,
--
Robert Nelson
https://rcn-ee.com/