Hi! I can't get u-boot to work properly on my Mini2440-1GB. I've done everything like explained in the different tutorials and forums. But when I load my uImage file to ram and send "bootm 0x30008000" I get the message "starting kernel" and u-boot hangs. No reply until reset. I've also tried to load a zImage to ram. When I send "go 0x30008000", I can watch the kernel getting decompressed and then the system hangs. Does anybody have an idea? Thanks Dirk
u-boot hangs by starting kernel
Whick u-boot? Which kernel? This one: http://www.friendlyarm.net/dl.php?file=linux-zImage_20100925.zip This tutorial? http://narnia.cs.ttu.edu/drupal/node/131 Keeping in mind that it is for a 64M machine and may need some mods. davef
Hi, when kernel hang try to compile kernel with DEBUG_LL (in kernel hacking) to see why it hangs. marek
I've tried several kernels and several versions of u-boot. It's always the same. My last try was buserrors u-boot: "git://repo.or.cz/u-boot-openmoko/mini2440.git" and kernel from: "http://repo.or.cz/w/linux-2.6/mini2440.git" Do I need gdb if I use "DEBUG_LL"? And if so, how do I debug with serial line? Thanks so far! Dirk
I've tried with low level debugging: MINI2440 # bootm 30008000 ## Booting kernel from Legacy Image at 30008000 ... Image Name: Linux(git) Created: 2011-01-24 20:36:21 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2095376 Bytes = 2 MB Load Address: 30008000 Entry Point: 30008000 Verifying Checksum ... OK XIP Kernel Image ... OK Starting kernel ... Uncompressing Linux........................................................................... ......................................................... crc error -- System resetting How can I fix this? Kind regards Dirk
Hello Marek, thank you for your help! I've now tried to load the zImage file and got the following output: MINI2440 # go 30008000 ## Starting application at 0x30008000 ... Uncompressing Linux........................................................................... ......................................................... done, booting the kernel. Error: unrecognized/unsupported machine ID (r1 = 0x33d5fe68). Available machine support: ID (hex) NAME 000007cf MINI2440 Please check your kernel config and/or bootloader. in the file u-boot/board/mini2440/mini2440.c there is a part: #ifndef MACH_TYPE_MINI2440 #define MACH_TYPE_MINI2440 1999 #endif in the kernel dir there is a file: "arch/arm/tools/mach-types", where one line says: "mini2440 MACH_MINI2440 MINI2440 1999" I am now wondering which of the shown ids in the u-boot output belongs to what? u-boot? Kernel? I used "make mini2440_defconfig" and added low level debugging.
make mini2440_defconfig and then configured it for your touchscreen in menuconfig? Maybe http://code.google.com/p/friendlyarm/wiki/Linux_Tutorial will help.
I've used make mini2440_defconfig and then added low-level debugging. Can't I configure touchscreen by bootparameter later? I haven't found the right hint. I'm wondering in which direction the output has to be understood: is "Error: unrecognized/unsupported machine ID (r1 = 0x33d5fe68)" the ID of my kernel or the ID of u-boot? If I take a look on all the other defines 0x33d5fe68 seems to be completely out of range. I would guess on some uninitialised memory. I've checked code of u-boot so far. There it seems to be 1999(000007cf) Is there a possibility to set the id manually when configuring kernel? There are also some defines like "#MACH_TYPE_MINI2440 1999". Kind Regards Dirk
Dirk, output is from kernel. Suppose you not properly compile kernel. try: make mrproper; make mini2440_defconfig ARCH=arm; make ARCH=arm CROSS_COMPILE=<your arm toolchain> then it should be OK ;) marek
Hello Marek, I've tried to recompile my kernel, and I was not lucky :-( I tried zImage_X35(from the download section) and it doesn't boot either. I have understood, that the output is from kernel. At this poit it has taken over. I was wondering which id belongs to kernel and which one belongs to u-boot. 0x33d5fe68 -> kernel 0x000007cf -> u-boot or vice versa. on u-boot bdinfo says: U-Boot 1.3.2-mini2440 (Jan 21 2011 - 02:57:43) MINI2440 # bdinfo arch_number = 0x000007CF env_t = 0x00000000 boot_params = 0x30000100 DRAM bank = 0x00000000 -> start = 0x30000000 -> size = 0x04000000 ethaddr = 08:08:11:18:12:27 ip_addr = 10.0.0.111 baudrate = 115200 bps so I think u-boot has the 7cf. Kind Regards Dirk
Strange, could you post steps what you done for kernel compilation? Also please post .config from kernel. 0x7cf is correct is machine ID for mini2440. What output you get with DEBUG_LL enabled (paste also). marek
That is my output with low level debugging. Without that option I see nothing. For compiling kernel I just did export ARCH=arm export CROSS-COMPILE=arm-linux- export PATH=$PATH:[toolchaindir] mkdir linux cd linux git clone .... make mini2440_defconfig make menuconfig (only enabled low level debugging) make and then I took ./arch/arm/zImage - file If I try kernel from download zImage_X35 it doesn't boot either. So maybe there is a problem about u-boot? I've created my toolchain with buildroot. Is there maybe a problem? Kind regards Dirk
Hi, u-boot could run only uImage. Try: make uImage (you need to have installed mkimage). Load it then must work ;) marek
I've tried that. Now I get this output. Is it possible, that my toolchain has a problem with crc? MINI2440 # fatload mmc 0 30008000 uImage.bin reading uImage.bin 2035232 bytes read MINI2440 # bootm 30008000 ## Booting kernel from Legacy Image at 30008000 ... Image Name: Linux(git) Created: 2011-01-26 17:07:43 UTC Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 2035168 Bytes = 1.9 MB Load Address: 30008000 Entry Point: 30008000 Verifying Checksum ... OK Uncompressing Kernel Image ... Error: Bad gzipped data GUNZIP: uncompress or overwrite error - must RESET board to recover U-Boot 1.3.2-mini2440 (Jan 21 2011 - 02:57:43) I2C: ready DRAM: 64 MB NOR Flash not found. Use hardware switch and 'flinit' Flash: 0 kB NAND: 1024 MiB Found Environment offset in OOB.. USB: S3C2410 USB Deviced In: serial Out: serial Err: serial MAC: 08:08:11:18:12:27 Hit any key to stop autoboot: 0 MINI2440 #
My kernel is from here: git://repo.or.cz/linux-2.6/mini2440.git I've started to do everything from zero yesterday night. I got buildroot from git: "make mini2440_defconfig" changed kernel-debug and tried a different version of gcc and uclibc I will test this afternoon. One question: For what does buildroot needs kernel-headers, seperately from building kernel? It is not possible, to select a local file there, so kernel-headers don't fit to kernel. Kind regards Dirk
Still booting kernel from u-boot doesn't work. I've tested barebox. I cannot boot from nand I think, but if i run it from u-boot, kernel starts and runs to the part, where rootfs would be needed. My Mini2440-Board is brand new, it got the (new?) X35 touchscreen. Is it possible, that there are some slight changes in hardware so that it is not compatible with u-boot? Some additional initialization needed for example? Getting barebox to run would also help. Kind regards Dirk
Hi Dirk, I've seen that your kernel is build with your own toolchain, can you post the result of arm-linux-gcc -v ? Maybe you've forgot to add --with-cpu=arm920t on buildroot options ? I've also build kernel with my own toolchain (buildroot) and it's works : Target: arm-unknown-linux-uclibcgnueabi Configured with: /home/murlock/prog/mini2440/src/buildroot-2010.11/output/toolchain/gcc-4.4.5/con figure --prefix=/opt/arm-mini2440/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-unknown-linux-uclibcgnueabi --enable-languages=c,c++ --with-sysroot=/opt/arm-mini2440 --with-build-time-tools=/opt/arm-mini2440/usr/arm-unknown-linux-uclibcgnueabi/bi n --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --disable-libssp --disable-multilib --disable-tls --enable-shared --with-gmp=/home/murlock/prog/mini2440/src/buildroot-2010.11/output/toolchain/gm p --with-mpfr=/home/murlock/prog/mini2440/src/buildroot-2010.11/output/toolchain/m pfr --disable-nls --enable-threads --disable-decimal-float --with-float=soft --with-abi=aapcs-linux --with-arch=armv4t --with-tune=arm920t --with-arch=armv4t --with-cpu=arm920t --with-tune=arm920t --with-pkgversion='Buildroot 2010.11' --with-bugurl=http://bugs.buildroot.net/ Thread model: posix gcc version 4.4.5 (Buildroot 2010.11)
This is my output: Using built-in specs. Target: arm-unknown-linux-uclibcgnueabi Configured with: /root/buildroot/buildroot/output/toolchain/gcc-4.3.5/configure --prefix=/root/buildroot/buildroot/output/host/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-unknown-linux-uclibcgnueabi --enable-languages=c --with-sysroot=/root/buildroot/buildroot/output/host/usr/arm-unknown-linux-uclib cgnueabi/sysroot --with-build-time-tools=/root/buildroot/buildroot/output/host/usr/arm-unknown-li nux-uclibcgnueabi/bin --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --disable-libssp --disable-multilib --disable-tls --enable-shared --with-gmp=/root/buildroot/buildroot/output/host/usr --with-mpfr=/root/buildroot/buildroot/output/host/usr --disable-nls --enable-threads --disable-decimal-float --with-float=soft --with-abi=aapcs-linux --with-arch=armv4t --with-tune=arm920t --disable-largefile --with-pkgversion='Buildroot 2011.02-git-00342-g0fa46e5' --with-bugurl=http://bugs.buildroot.net/ Thread model: posix gcc version 4.3.5 (Buildroot 2011.02-git-00342-g0fa46e5) It seems that this parameter is missing. Can I put it to "() Additional gcc options" In the toolchain menu of menuconfig? Kind Regards Dirk
Still doesn't boot. Have I mentioned that I have the same problem, if I take u-boot.bin and zImage_X35 from this site? What I got working: U-Boot loading Barebox from SD Barebox then loading kernel via tftp/nfs Kind Regards Dirk
Can you provide us your kernel in zimage and the result of mkimage ? In my case, after building zimage, $SRC/uboot/mini2440/tools/mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d $SRC/linux-2.6.32.2/arch/arm/boot/zImage mini2440.img And I use bootp / bootm in uboot, not go
Dirk, your error is still the same. As Michael said you can't use go command. GO just jump to address and thats all. You need to have properly set atags for kernel startup so need to use bootm. This is your error r1=undefined number because through r1 u-boot pass to kernel machine type. There is a lot of how-to's compile kernel for mini2440. Why not to try one (with correct toolchain). marek
Hi, I am trying to boot with a linux-2.6.36.2 (with mini2440_defconfig and arm-none-linux-gnueabi toolchain) but I've got the following errors : mini2440 # bootm 0x30000000 ## Booting kernel from Legacy Image at 30000000 ... Image Name: Linux-2.6.36.2 Created: 2011-01-30 16:30:48 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3143540 Bytes = 3 MB Load Address: 30008000 Entry Point: 30008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux... done, booting the kernel. [ 0.000000] Linux version 2.6.36.2 (mk3@mk3-laptop) (gcc version 4.4.1 (Sourcery G++ Lite 21 [ 0.000000] CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177 [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] Machine: MINI2440 [ 0.000000] Memory policy: ECC disabled, Data cache writeback [ 0.000000] CPU S3C2440A (id 0x32440001) [ 0.000000] S3C24XX Clocks, Copyright 2004 Simtec Electronics [ 0.000000] S3C244X: core 405.000 MHz, memory 101.250 MHz, peripheral 50.625 MHz [ 0.000000] CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 [ 0.000000] Kernel command line: init=linuxrc console=ttySAC0 root=/dev/nfs nfsroot=192.168f [ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes) [ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Memory: 64MB = 64MB total [ 0.000000] Memory: 58512k/58512k available, 7024k reserved, 0K highmem [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) [ 0.000000] DMA : 0xffc00000 - 0xffe00000 ( 2 MB) [ 0.000000] vmalloc : 0xc4800000 - 0xe0000000 ( 440 MB) [ 0.000000] lowmem : 0xc0000000 - 0xc4000000 ( 64 MB) [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB) [ 0.000000] .init : 0xc0008000 - 0xc0032000 ( 168 kB) [ 0.000000] .text : 0xc0032000 - 0xc05d9000 (5788 kB) [ 0.000000] .data : 0xc05da000 - 0xc060d5c0 ( 206 kB) [ 0.000000] SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] Hierarchical RCU implementation. [ 0.000000] RCU-based detection of stalled CPUs is disabled. [ 0.000000] Verbose stalled-CPUs detection is disabled. [ 0.000000] NR_IRQS:85 [ 0.000000] irq: clearing pending ext status 00000300 [ 0.000000] irq: clearing subpending status 00000003 [ 0.000000] irq: clearing subpending status 00000002 [ 0.000000] Console: colour dummy device 80x30 [ 0.000000] console [ttySAC0] enabled [ 0.015000] Calibrating delay loop... 201.93 BogoMIPS (lpj=504832) [ 0.115000] pid_max: default: 32768 minimum: 301 [ 0.115000] Mount-cache hash table entries: 512 [ 0.120000] CPU: Testing write buffer coherency: ok [ 0.135000] gpiochip_add: gpios 288..303 (GPIOK) failed to register [ 0.135000] gpiochip_add: gpios 320..334 (GPIOL) failed to register [ 0.140000] gpiochip_add: gpios 352..353 (GPIOM) failed to register [ 0.145000] NET: Registered protocol family 16 [ 0.180000] MINI2440: Option string mini2440=0tb [ 0.180000] MINI2440: 't' ignored, touchscreen not compiled in [ 0.185000] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 0.185000] pgd = c0004000 [ 0.185000] [00000000] *pgd=00000000 [ 0.185000] Internal error: Oops: 80000005 [#1] [ 0.185000] last sysfs file: [ 0.185000] CPU: 0 Not tainted (2.6.36.2 #1) [ 0.185000] PC is at 0x0 [ 0.185000] LR is at s3c_gpio_setpull+0x60/0x74 [ 0.185000] pc : [<00000000>] lr : [<c003dad8>] psr: a0000093 [ 0.185000] sp : c3825f48 ip : 00000010 fp : c3825f58 [ 0.185000] r10: 00000000 r9 : 00000000 r8 : 00000000 [ 0.185000] r7 : 00000013 r6 : 00000000 r5 : c000b518 r4 : a0000013 [ 0.185000] r3 : c05e0820 r2 : 00000002 r1 : 00000001 r0 : c05e042c [ 0.185000] Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel [ 0.185000] Control: c000717f Table: 30004000 DAC: 00000017 [ 0.185000] Process swapper (pid: 1, stack limit = 0xc3824260) [ 0.185000] Stack: (0xc3825f48 to 0xc3826000) [ 0.185000] 5f40: 00000003 c3825f9c c3825f5c c000de28 c003da88 00000002 [ 0.185000] 5f60: 00000003 00000000 c05df8e0 c05ded3c 00000000 00000000 00000000 00000000 [ 0.185000] 5f80: 00000000 00000000 c0029f74 c000b518 c3825fac c3825fa0 c000b538 c000dc94 [ 0.185000] 5fa0: c3825fe0 c3825fb0 c0008460 c000b528 00000054 c000856c c0047b8c c0029f74 [ 0.185000] 5fc0: c000856c c0047b8c 00000013 00000000 00000000 c3825ff4 c3825fe4 c000860c [ 0.185000] 5fe0: c00083a0 00000000 00000000 c3825ff8 c0047b8c c000857c 00000000 00000000 [ 0.185000] Backtrace: [ 0.185000] [<c003da78>] (s3c_gpio_setpull+0x0/0x74) from [<c000de28>] (mini2440_init+0x1a4) [ 0.185000] r4:00000003 [ 0.185000] [<c000dc84>] (mini2440_init+0x0/0x340) from [<c000b538>] (customize_machine+0x2) [ 0.185000] r5:c000b518 r4:c0029f74 [ 0.185000] [<c000b518>] (customize_machine+0x0/0x2c) from [<c0008460>] (do_one_initcall+0x) [ 0.185000] [<c0008390>] (do_one_initcall+0x0/0x1a4) from [<c000860c>] (kernel_init+0xa0/0x) [ 0.185000] [<c000856c>] (kernel_init+0x0/0x150) from [<c0047b8c>] (do_exit+0x0/0x5c4) [ 0.185000] r4:00000000 [ 0.185000] Code: bad PC value [ 0.190000] ---[ end trace 1b75b31a2719ed1c ]--- [ 0.195000] Kernel panic - not syncing: Attempted to kill init! [ 0.200000] Backtrace: [ 0.205000] [<c0036368>] (dump_backtrace+0x0/0x114) from [<c045e484>] (dump_stack+0x18/0x1c) [ 0.210000] r6:c3822000 r5:0000000b r4:c060dd84 [ 0.215000] [<c045e46c>] (dump_stack+0x0/0x1c) from [<c045e4e8>] (panic+0x60/0x194) [ 0.220000] [<c045e488>] (panic+0x0/0x194) from [<c0047bfc>] (do_exit+0x70/0x5c4) [ 0.225000] r3:c05e3750 r2:c3825d80 r1:00000001 r0:c0589334 [ 0.230000] [<c0047b8c>] (do_exit+0x0/0x5c4) from [<c00367c8>] (die+0x1bc/0x1ec) [ 0.235000] [<c003660c>] (die+0x0/0x1ec) from [<c0037c20>] (__do_kernel_fault+0x6c/0x8c) [ 0.240000] r8:00000000 r7:80000005 r6:00000000 r5:c3825f00 r4:00000000 [ 0.250000] [<c0037bb4>] (__do_kernel_fault+0x0/0x8c) from [<c0037dfc>] (do_page_fault+0x1b) [ 0.255000] r8:00000000 r7:00000000 r6:00000000 r5:c3825f00 r4:c3822000 [ 0.265000] [<c0037c40>] (do_page_fault+0x0/0x1d4) from [<c0037eac>] (do_translation_fault+) [ 0.270000] [<c0037e88>] (do_translation_fault+0x0/0xac) from [<c0032254>] (do_PrefetchAbor) [ 0.275000] r7:c3825f00 r6:00000000 r5:c05de56c r4:00000005 [ 0.280000] [<c0032218>] (do_PrefetchAbort+0x0/0xa0) from [<c0032a24>] (__pabt_svc+0x44/0x8) [ 0.285000] Exception stack(0xc3825f00 to 0xc3825f48) [ 0.290000] 5f00: c05e042c 00000001 00000002 c05e0820 a0000013 c000b518 00000000 00000013 [ 0.295000] 5f20: 00000000 00000000 00000000 c3825f58 00000010 c3825f48 c003dad8 00000000 [ 0.300000] 5f40: a0000093 ffffffff [ 0.305000] r7:00000013 r6:00000000 r5:c3825f34 r4:ffffffff [ 0.310000] [<c003da78>] (s3c_gpio_setpull+0x0/0x74) from [<c000de28>] (mini2440_init+0x1a4) [ 0.315000] r4:00000003 [ 0.315000] [<c000dc84>] (mini2440_init+0x0/0x340) from [<c000b538>] (customize_machine+0x2) [ 0.320000] r5:c000b518 r4:c0029f74 [ 0.325000] [<c000b518>] (customize_machine+0x0/0x2c) from [<c0008460>] (do_one_initcall+0x) [ 0.330000] [<c0008390>] (do_one_initcall+0x0/0x1a4) from [<c000860c>] (kernel_init+0xa0/0x) [ 0.335000] [<c000856c>] (kernel_init+0x0/0x150) from [<c0047b8c>] (do_exit+0x0/0x5c4) [ 0.340000] r4:00000000 Is there any changes to do with the kernel to make it working with u-boot? Please let me know if it is, I join my kernel image in attachment. Best regards. Kamel.
Hi kamel : At first, I see that you've used bootm at 0x30000000, my default uboot use 0x32000000 but I think it's not an error. Can you post the result of printenv in uboot ? Since mini2440=0tb is a default value, it look like somes parts is missing in your kernel [ 0.180000] MINI2440: Option string mini2440=0tb [ 0.180000] MINI2440: 't' ignored, touchscreen not compiled in ... Which kernel config has been used for building your kernel ( config_mini2440_x35 / ... ? )
Hi, Thanks for the quick reply, here is the printenv result: mini2440 # printenv bootcmd=nand read 0x31000000 60000 200000; bootm 0x31000000 bootdelay=2 baudrate=115200 ethaddr=08:00:3e:26:0a:5b ipaddr=192.192.192.200 serverip=192.192.192.105 netmask=255.255.255.0 install-bootloader=tftp 30000000 u-boot.bin;nand erase 0 40000;nand write 300000 install-kernel=tftp 30000000 uImage;nand erase 60000 200000;nand write 300000000 install-filesystem=tftp 30000000 filesystem.yaffs;nand erase 260000 1c50240;nan0 bootargs=init=linuxrc console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.160:/armLf stdin=serial stdout=serial stderr=serial Environment size: 716/131068 bytes I used the mini2440_defconfig.
Can you post your kernel image ? I'll try on my mini2440 Your mini2440_defconfig is located in ./arch/arm/configs/ ? On http://friendlyarm.net/dl.php?file=linux-2.6.32.2-mini2440_20100609.tgz, there also at root of archive somes files beginning with config_mini2440_*. I've copied the proper config file, in my case config_mini2440_x35, to .config and ran make menuconfig.
Ok I joined my kernel uImage, let me know if its works for you please. I am using the arch/arm/configs/mini2440_defconfig, whats the difference with the config_mini2440_x35? I will try you config file it may change something. Thank you Michael ;) !
Hi, Sorry I thought it was joined, but now it is ! I've tried the kernel you advise me with the config_mini2440_t35 file but it's the same problem, the kernel hold on decompressing state. Did you know if the u-boot machine ID is good here: mini2440 # bdinfo arch_number = 0x0000147C env_t = 0x00000000 boot_params = 0x30000100 DRAM bank = 0x00000000 -> start = 0x30000000 -> size = 0x04000000 ethaddr = 08:00:3E:26:0A:5B ip_addr = 192.192.192.200 baudrate = 115200 bps I think it can be the problem because on the kernel source (arch/arm/tools/mach-types) it seems to be 5244 for the machine ID so it don't match with the u-boot ID. Whenever I changed the ID but it still don't work for me ... Thanks for you reply! Regards.
MINI2440 # bdinfo arch_number = 0x000007CF env_t = 0x00000000 boot_params = 0x30000100 DRAM bank = 0x00000000 -> start = 0x30000000 -> size = 0x04000000 ethaddr = 08:08:11:18:12:27 ip_addr = 192.168.1.1 baudrate = 115200 bps I can confirm that your kernel doesn't work : I've got the same error, can you post all steps you use to build your kernel ? Because if you've used a config_mini2440_t35, your kernel should be named 2.6.32.2-FriendlyARM, not 2.6.36.2. With toolchain in PATH, steps should be $ tar xf linux-2.6.32.2-mini2440_20100609.tgz $ cd linux-2.6.32 $ cp config_mini2440_t35 .config $ make ... $ mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d arch/arm/boot/zImage uImage
I've tried "bootm 30008000" and did mkimage as described above. I still got the CRC error message(see below). Could please anybody test my kernel? Kind regards Dirk MINI2440 # bootm 30008000 ## Booting kernel from Legacy Image at 30008000 ... Image Name: Created: 2011-02-01 4:22:27 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2133440 Bytes = 2 MB Load Address: 30008000 Entry Point: 30008000 Verifying Checksum ... OK XIP Kernel Image ... OK Starting kernel ... Uncompressing Linux........................................................................... ............................................................ crc error -- System halted
Hi, I've tried what said me step bye step but it still don't work can you give me your kernel compilate, please, I want to try it, maybe it's my toolchain (arm-none-linux-gnueabi). Thanks.
Dear Mr Dirk, I've just test your kernel image (for fun ^^) and look the error I get : mini2440 # tftpboot 0x30000000 uImage dm9000 i/o: 0x18000300, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 08:00:3e:26:0a:5b TFTP from server 192.192.192.105; our IP address is 192.192.192.200 Filename 'uImage'. Load address: 0x30000000 Loading: T ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ########################### done Bytes transferred = 2133504 (208e00 hex) mini2440 # bootm 0x30000000 ## Booting kernel from Legacy Image at 30000000 ... Image Name: Created: 2011-02-01 22:00:18 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2133440 Bytes = 2 MB Load Address: 30008000 Entry Point: 30008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux............................................................. Error: unrecognized/unsupported machine ID (r1 = 0x0000147c). Available machine support: ID (hex) NAME 000007cf MINI2440 Please check your kernel config and/or bootloader. I'am fixed now, that's an ID problem because my u-boot mini2440 ID is : mini2440 # bdinfo arch_number = 0x0000147C SO my last question will be, can we change the u-boot ID without recompiling u-boot and flashing it again ??? Regards.
Dear Kamel, Thank you for that test. I don't know a way to change id without recompiling. Which version of u-boot are you using? If you have a look at: http://lxr.linux.no/#linux+v2.6.37/arch/arm/tools/mach-types Your ID is not valid ----------- Please load Kernel to 30008000 If you look on your bdinfo output: mini2440 # bdinfo <-- --> boot_params = 0x30000100 <-- overwritten by your kernel (if it starts at 30000000) <-- -->
Dear Marek, I've tried to boot your kernel: it stops with "starting kernel" Could you please upload your u-boot? MINI2440 # bootm 30008000 ## Booting kernel from Legacy Image at 30008000 ... Image Name: Linux-2.6.32-rc8 Created: 2010-12-17 8:39:44 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2124440 Bytes = 2 MB Load Address: 30008000 Entry Point: 30008000 Verifying Checksum ... OK XIP Kernel Image ... OK Starting kernel ... Kind Regards Dirk
Hello Marek, I hit the same issue of kernel stopping at "Starting Kernel". I have enabled CONFIG_DEBUG_LL, but still no information. I am working with Angstrom kernel. How to verify if my uboot machine id and the kernel machine id are same? I assumed that u-boot doesnt require a change even if I change the uImage. Is that a wrong assumption? Thanks Pradeep
On U-Boot side: bdinfo if you try your zImage by go <offset> you will provoce a missmatch and kernel will tell you his id. Dirk
same problem here ______________________________________________ U-Boot 1.3.2-mini2440 (Feb 24 2010 - 13:04:49) I2C: ready DRAM: 64 MB Flash: 2 MB NAND: 256 MiB Found Environment offset in OOB.. USB: S3C2410 USB Deviced In: serial Out: serial Err: serial MAC: 08:08:11:18:12:27 Hit any key to stop autoboot: 0 Loading from NAND 256MiB 3,3V 8-bit, offset 0x60000 Image Name: Created: 2013-01-28 11:28:22 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1168832 Bytes = 1.1 MB Load Address: 30000000 Entry Point: 30000000 ## Booting kernel from Legacy Image at 32000000 ... Image Name: Created: 2013-01-28 11:28:22 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1168832 Bytes = 1.1 MB Load Address: 30000000 Entry Point: 30000000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... ____________________________________________________ And i thought ## Booting kernel from Legacy Image at 32000000 ... takes the address starting 32000000 so I change my uImage Load point address to same and then try booting it And I get this ___________________________________________________ U-Boot 1.3.2-mini2440 (Feb 24 2010 - 13:04:49) I2C: ready DRAM: 64 MB Flash: 2 MB NAND: 256 MiB Found Environment offset in OOB.. USB: S3C2410 USB Deviced In: serial Out: serial Err: serial MAC: 08:08:11:18:12:27 Hit any key to stop autoboot: 0 Loading from NAND 256MiB 3,3V 8-bit, offset 0x60000 Image Name: DRTSK Created: 2013-01-28 12:11:58 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1168832 Bytes = 1.1 MB Load Address: 32000000 Entry Point: 32000000 ## Booting kernel from Legacy Image at 32000000 ... Image Name: DRTSK Created: 2013-01-28 12:11:58 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1168832 Bytes = 1.1 MB Load Address: 32000000 Entry Point: 32000000 Verifying Checksum ... OK XIP Kernel Image ... OK Starting kernel ... _________________________________________________________ Only change observed is last but one line at address 0x30000000 says Loading Kernel Image ... OK at address 0x32000000 says XIP Kernel Image ... OK -- what does it mean ? -- what is a legacy Image ? -- I have used ADS 1.2 to compile codes ; used mkimage to make image __________________________________________________ mkimage -A arm -O linux -T kernel -C none -a 0x32000000 -n "-----" -d my.bin uImage ______________________________________________ it gives the following info :- __________________________________________ Image Name: ----- Created: Mon Jan 28 17:41:58 2013 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1168832 Bytes = 1141.44 kB = 1.11 MB Load Address: 32000000 Entry Point: 32000000 _______________________________________________________ can you spot any error?
Data cache must be off before starting the kernel. see http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html I use u-boot-2013.07, it puts "WARNING: Caches not enabled". so, I add enable_caches() in mini2440.c: void enable_caches(void) { icache_enable(); dcache_enable(); } and when booting the kernel, it hangs. If i remove the dcache_enable(), the kernel works OK.
Dear all, I have s3c2410 ARM9 board,SMDK2410,ARM920T,64 MB Flash. I have vivi boot loader which came with board. I want to transplant latest U-Boot loader to my board. Any one have U-Boot bin file or steps how to modify the U-boot source code,compile for s3c2410 board. I am struggling since from 1 year.Please help me. You can send to my mail id aprakash@ueic.com Thanks.
Hi All, No one helped me. Finally I worked hard to solve the U-boot-1.3.2 transplantation to my S3c2410 board. I have succeeded in it. Now I am stuck with DM9000 Ethernet chip porting to my board. I am getting error "DM9000 not found 0x28000000 at id 0x2B2A2928" Can any body help me.
Hi Dirk, Although this is year old, I am pinging to know about the solution. Did you solved the problem of booting on Mini2440 board? I also ran into the same problem, trying to find solution, thought it would be helpful to know how others solved it. your help much appreciated. Does anyone(experts) have the solution to the kernel hang problem? Please respond. Thanks
My kernel is not booting after Uncompressing Linux.........booting Done message Am using i.mx6sl arm cortex A9 processor.My task is to upgrade the existing u-boot and kernel to uboot and kernel which has device tree support.