Error can t get kernel image

I keep getting this error when booting linux on ARM cortex A9 based xilinx chip: U-Boot 2013.07 (Mar 31 2014 - 16:34:50) Memory: ECC disabled DRAM: 1 GiB MMC: zynq_sdhci: 0 SF: Detected N25Q128A

I keep getting this error when booting linux on ARM cortex A9 based xilinx chip:

U-Boot 2013.07 (Mar 31 2014 - 16:34:50)

Memory: ECC disabled
DRAM:  1 GiB
MMC:   zynq_sdhci: 0
SF: Detected N25Q128A with page size 64 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   Gem.e000b000
U-BOOT for Xilinx-ZC702-2013.3

Gem.e000b000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5

Retry count exceeded
Hit any key to stop autoboot:  0
SF: Detected N25Q128A with page size 64 KiB, total 16 MiB
SF: 11010048 bytes @ 0x520000 Read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!
U-Boot-PetaLinux>

Even explicitly giving the command did not work:

U-Boot-PetaLinux> run sfboot
SF: Detected N25Q128A with page size 64 KiB, total 16 MiB
SF: 11010048 bytes @ 0x520000 Read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!
U-Boot-PetaLinux>

And my env variable:

U-Boot-PetaLinux> printenv bootcmd
bootcmd=setenv var "if test ${dtbsize} -le 0; then run sfboot; else run dtbboot; fi"; run var; setenv var

I am using uImage,which I got after converting zImage using mkimage tool.

Any idea what is wrong with the Image format?

Hi Everyone,

This is my first post to the Community.

I am posting this procedure for those poor souls out there, which like me have experienced this issue (there are several similar posting on this forum with no solution).  It took me several valuable hours to get this.

This is the procedure to get your Netgear Managed Switch up and running to be able to do detailed diagnostics (in my case it turned out the flash partitions for the 2 image packages were toasted)

1. Download a Firmware Image file for the M3400 from the Netgear Support website

2. Extract the Firmware Image file from the downloaded Zip file to your PC/Laptop

3. Ensure you have a TFTP Server installed on your PC/Laptop

4. Connect to the M3400 via a Console cable

5. Power on the M3400

6. let all the Errors display and wait for the U-Boot «m4300r2>» prompt to appear 

7. enter «printenv» and check that the following Environment variables have the following values :

   — ipaddr=192.168.0.10

   — serverip=192.168.0.100

8. if values don’t match above, enter the following commands

   — «setenv ipaddr 192.168.0.10»

   — «setenv netmask 255.255.255.0»

   — «setenv gatewayip 192.168.0.1»

   — «setenv serverip 192.168.0.100»

9. Set your PC/Laptop Ethernet interface IP to 192.168.0.100

10. Connect PC/Laptop Ethernet interface to the OOB Ethernet port on the front of the M3400

11. Start your TFTP Server on your PC/Laptop and set the root directory to the location of the extracted Firmware Image file

12. Enter the command «run bootargs_set»

13. Enter the command «tftpboot 0x62000000 m4300v12.0.13.8.stk» [Note: I used ver 12.0.13.8, use whatever filename is in the Firmware package]

14. Wait for the Firmware to upload to the M3400

15. Do NOT disconnect the Ethernet  connection

16. Enter the command «bootm 0x62000074#ranger2»

17. The M3400 will begin to load the Application file and error again — don’t panick

18. The M3400 will again automatically load the Firmware Image file from the TFTP Server

19. Then Finally, at last, the M3400 will boot to a fully operational condition

20. Optional: Enter the commands «#delete 1 image1» and/or «#delete 1 image2»

21. Optional: Enter the commands «copy tftp://192.168.0.100/m4300v12.0.13.8.stk image1» and/or

«copy tftp://192.168.0.100/m4300v12.0.13.8.stk image2»

22. Optional: Enter the commands «boot system 1 image1» and/or «boot system 1 image2»

In my case the last 3 commands all failed as the Flash was obviously damaged :disappointed_face:

PS: Why Netgear does not publish recovery instructions for the M3400 series is baffling to me, given there are many request on this forum and others requesting it . . . . anyway thought I would share . . . . hope it works out for you

Model: GSM4352PA|M4300-52G-PoE+ — 48x1G PoE+ Stackable Managed Switch with 2x10GBASE-T and 2xSFP+ (550W PSU)

Hello! After a complete reset, the device (L-71) stopped booting. I attach part of the log.

Saving the environment to NAND…
Erasing NAND…
Erasing at 0x280000 — 100% complete.
I write NANDA … OK
bootargs=boardFlavor=alpine_db_s1 console status = ttyS0, 115200 noExtPorts= maxcpus=2 cp_net_config=3,(00:1C:7e:7e:27:07)(00:1C:7e:7e:27: 08)(00:1C:7e:7e:27:09) uboot_ver=85 pci=pcie_bus_perf meme=1022M ramoops. mem_address=0x3fe00000 ramoops. mem_size=0x100000 ramoops. record_size=0x10000
device offset 0 0x380000, size 0x3fc80000
do_nand: setting the main section of the message=380000

NAND read: device 0 offset 0x380000, size 0x1000000
16777216 bytes read: OK
Incorrect image format for the bootm command
MISTAKE: can’t get the kernel image!
Setting bootaddr to 0x8000200
Enabling network ports…
done.

Welcome to Gaia’s built-in Boot Menu :

1. Start in normal mode
2. Start in debug mode
3. Start in maintenance mode
4. Restore factory default settings (locally)
5. Install/Update the image from the network
6. Restart the bootloader
7. Run hardware diagnostics
8. Download the preset configuration file
9. Delete the preset configuration file

The following variables in your environment are different from a normal environment:

bootargs

bootargs_root

bootcmd

console

usb_scan

(also the variables which are unique for your dockstar, but those are normal: cesvcid, ethaddr, ipaddr, serverip)

The «usb_scan» variable got truncated somehow. The variable should not end on «Found e». The usb_scan variable should list like this:

usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 && ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done

Right now the boot loader doesn’t get to that part though, because of the other variables. The way the rest of the scripts are set up, bootargs and bootargs_root are not needed, as they’re set depending on the boot medium by the other scripts. These other scripts expect the console variable to be just the parameter value, not name=value as in your environment. That only affects the kernel console output, but you should still correct it. The console variable should be

console=ttyS0,115200

(not console=console=ttyS0,115200)

The real culprit is the bootcmd variable. That’s supposed to refer to the other boot scripts, but in your environment it directly loads 3MB from the mtd1 partition and tries to boot that as a kernel image. If the kernel is bigger than 3MB, then that’s going to fail. The bootcmd value should be

bootcmd=usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset

To correct the environment, execute these commands at the uboot prompt:

setenv bootargs
setenv bootargs_root
setenv console 'ttyS0,115200'
setenv bootcmd 'usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset'
setenv usb_scan 'usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 && ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done'
saveenv

The setenv commands modify the environment in RAM, the saveenv writes the modified environment to flash memory. After writing the environment to flash, reset the Dockstar. It should then follow the expected boot sequence.

Понравилась статья? Поделить с друзьями:
  • Error can not get i2c device data
  • Error cameralist not match
  • Error calling startservicebyname
  • Error calling setupdigetdeviceregistrypropertyw 122 x360ce как исправить
  • Error calling python module function wbadmin testinstancesettingbyname