ARM: Exynos: DTB too large error

Vijay Kilari vijay.kilari at gmail.com
Tue Oct 15 03:30:53 EDT 2013


Hi,

  While loading kexec kernel, with the below command,

kexec -l vmlinux --command-line="console=ttySAC2,115200n8 root=
/dev/nfs rw ip=dhcp nfsroot=xxxx...."

Error reported is:

DTB too large!
Cannot load /opt/vmlinux

The error is reported from below piece of code

int zImage_arm_load(int argc, char **argv, const char *buf, off_t len,
        struct kexec_info *info)
{
        unsigned long base;
        unsigned int atag_offset = 0x1000; /* 4k offset from memory start */
        unsigned int offset = 0x8000;      /* 32k offset from memory start */

           .......
                if (base + atag_offset + dtb_length > base + offset) {
                        fprintf(stderr, "DTB too large!\n");
                        return -1;
                }

         ............
}

>From zImage_arm_load() function as shown above in
kexec/arch/arm/kexec-zImage-arm.c file,
offset is hard-coded to 32K. However the dtb file of Exynos is more than
32K

Please let me reason behind 32K limit?

Thanks & Regards
Vijay



More information about the kexec mailing list