
Hello Idan,
On 31-03-15 06:02, Idan Noti wrote:
Why do you think caches have something to do with the problem?
By booting the image with the bootelf command you jump to it with some caches still enabled / not flushed (which is likely not what your debug interface does and your kernel might not really like that). A FreeBSD kernel doesn't / didn't at least and wouldn't boot.
I never checked, but I guess Linux doesn't like it either, but since it is typically booted by a bootm / bootz command it goes through e.g. arch/arm/lib/bootm.c, which calls cleanup_before_linux in arch/arm/cpu/arm926ejs/cpu.c, all caches are disables and flushes before jumping into it.
Of course I don't know if this is related to your problem, but it cannot do any harm to keep caches off until you have the board properly booting.
Also, how do I config the compilation to disable caches? The only configuration I'm aware about it modifying the header file: $(uboot_folder)/include/configs/davinci_dvevm.h
Yup, see README and doc/README.arm-caches. At least below knobs are documented. You can simply define these in mentioned file.
CONFIG_SYS_ICACHE_OFF - Do not enable instruction cache in U-Boot CONFIG_SYS_DCACHE_OFF - Do not enable data cache in U-Boot CONFIG_SYS_L2CACHE_OFF- Do not enable L2 cache in U-Boot
Regards, Jeroen