
On Fri, Feb 23, 2018 at 04:47:06PM +0900, Jaehoon Chung wrote:
On 02/23/2018 04:58 AM, Alexander Kurtz wrote:
Hi!
I am using U-Boot to boot Debian Buster arm64 (standard kernel with a dracut-based initramfs) via an extlinux.conf on my Raspberry Pi 3.
Recently, the Debian kernel grew beyond 16 MiB:
4.13: /boot/vmlinuz-4.13.0-1-arm64 == 16448000 bytes (< 16 MiB) [0] 4.14: /boot/vmlinuz-4.14.0-3-arm64 == 17539584 bytes (> 16 MiB) [1] 4.15: /boot/vmlinuz-4.15.0-1-arm64 == 17867264 bytes (> 16 MiB) [2]
https://github.com/u-boot/u-boot/blob/master/include/configs/rpi.h#L129 says:
#define ENV_MEM_LAYOUT_SETTINGS \ "fdt_high=ffffffff\0" \ "initrd_high=ffffffff\0" \ "fdt_addr_r=0x00000100\0" \ "pxefile_addr_r=0x00100000\0" \ "kernel_addr_r=0x01000000\0" \ "scriptaddr=0x02000000\0" \ "ramdisk_addr_r=0x02100000\0" \
Am I correct in assuming that this default configuration will break with kernels > 16 MiB? The Readme [3] seems to confirm this, but I wanted to ask for explicit confirmation here.
Especially, this is occurred about arm64 kernel. Because it wil be overlapped with other image address, if kernel image is over than 16MB.
In my case, i'm using the private boot.scr.img for booting script. I had just added the kernel_addr_r=0x02d000000.
Just Refer to below: https://review.tizen.org/git/?p=platform/kernel/u-boot.git;a=commit;h=8fdfbb...
I would strongly recommend setting the values here based on what linux/Documentation/arm/Booting and linux/Documentation/arm64/boot.txt describe as the maximum limits for each of these locations. And take a peek at include/configs/ti_armv7_common.h in U-Boot on how I set these for the various TI platforms.