Thanks, Nathan, for your help. It worked, with a little oddity I don't understand.
In my uEnv.txt, I set both fdt_high and initrd_high to 0x10000000 and fdt/initrd are now loaded to 1st 256 MB: Loading Kernel Image ... OK Loading Ramdisk to 0f44c000, end 0ffff2f2 ... OK Loading Device Tree to 0f443000, end 0f44bf40 ... OK However, with bootarg "mem=256MB", the kernel doesn't boot. With "mem=257M", it does: /proc/iomem: 00000000-100fffff : System RAM 00008000-00584b03 : Kernel code 005b6000-0061d5df : Kernel data I'd be OK with this, but just want to understand why I can't specify mem=256M? I could probably also lower initrd_high and fdt_high a bit more to make mem=256M work, but why would that be necessary? Also, in the device tree entry for memory, should I leave "reg = <0x0 0x20000000>" or change that to reflect 256MB? Changing it to "reg = <0x0 0x10000000>" didn't seem to have any effect. The mem bootarg seems to be the thing that actually works to limit the amount of memory Linux sees. On Mon, Jun 8, 2015 at 9:45 PM, Nathan Rossi <nat...@nathanrossi.com> wrote: > On Tue, Jun 9, 2015 at 4:06 AM, Edward Wingate <edwinga...@gmail.com> wrote: > > Those values are generated via u-boot based on the value of fdt_high > and initrd_high which are set in the u-boot environment. (At least for > Zynq) > > If you have a look at the default environment you will see them set to > 0x20000000: > http://git.denx.de/?p=u-boot.git;a=blob;f=include/configs/zynq-common.h;h=1a52e7d538261a9d36b078d61e00e60bf8918227;hb=HEAD#l217 > > You can override those environment variables with your uEnv.txt file, > setting it to 0x10000000 will make sure they fdt/initrd is loaded into > the first 256M. > > Regards, > Nathan > -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto