Burn write Uboot/kernel This paper introduces the general method of burning write Uboot/bootloader/kernel in embedded system, and how to re-burn uboot/kernel if uboot or kernel error, boot failure, and so on. Burn Write uboot/ Kernel generally have two ways, one is in the Linux itself (shell), directly uboot/kernel image files (binary files) using the command to burn Flash write to the flash specific partition, and the other is on the Uboot interface, By configuring SERVERIP,IPADDR, use the TFTP command to download Uboot/kernel to flash on the example below://One, burning the UBOOT/KERNELMTD write command in the shell of Linux is the custom burn-write Flash command. Burn Write Uboot,/dev/mtd0 is bootloader specific partition MTD write u-boot.bin/dev/mtd0//burn write kernel, MTD1 is kernel specific partition MTD write Vmlinux.elf/ dev/mtd1//Restart reboot//two, burn write Uboot/kernel in Uboot interface, kernel for example//in Bootloader interface//native uboot IP address setenv ipaddr 10.10.167.10 Server IP address setenv serverip 10.10.167.249//download the Linux kernel vmlinux52tftpboot 0 vmlinux52//write to Flash. The 0x20000000 is the storage location of the vmlinux52. 0x1dd00000 is the starting position of the system kernel (each device location is different),//+0x600000 is the file length upgrade 0x20000000 0x1dd00000 +0x600000//Restart linuxbootoctliux***** * * If the boot fails due to uboot or kernel errors, and the card is dead, then you need to determine whether the problem is in the uboot phase or the Linux phase. This can be judged by observing the debug information during startup, if the uboot problem is troublesome, because it requires a flash chip with the correct uboot/bootloader as the boot and reboots the system to the Uboot interface., and then re-burn the uboot to flash in the system itself, then burn the kernel (if necessary). One, re-burn write uboot first need a specific PCLL (Flash chip), this PCLL cured a correct bootloader, through this bootloader can successfully enter the Bootloader interface, under this condition to re-burn write uboot/ Bootloader The procedure for using this PLCC is to boot the system from external flash (i.e., PLCC) and then power up the system by using a jumper/dial switch, etc., when the system is under power, and then start from the PLCC. After successful launch, go to the Uboot interface, which is the command line display Dream 5220# # (similar to a command line prompt) at this point the version of the card will be started from nor flash. Then re-burn write uboot to this nor flash. Then use the Kermit to operate. Kermit is a serial service tool, similar to minicom, features more than minicom. Kermit/usb0.cfg is a Kermit configuration file in which you can configure/dev/ttyusb0 and other paths kermit-y kermit/usb0.cfg-y kermit/usb0.cfg the specified profile. The file reads as follows:/*set line/dev/ttyusb0 Set speed 115200set Carrier-watch off set hardshake noneset flow-control nonerobustset file Type bin Set file name lit Set REC pack 1000set Send Pack 1000set window 5*/This file in the home directory, named: kermit/usb0.cfg (customizable) after the execution into the Kermit interface, press C Enter the serial interface (that is, the device interface) switch back to the Kermit interface shortcut: Ctrl + \, then press C. Performed: Dream 5220# # Detect display: Checking for NOR Flash ... Flash DetecT 33554432Mb This indicates that flash is in good condition. Let the serial port enter the receiving state. Dream 5220# # loadb into the Kermit interface: CTRL + \ Press C to execute: Send Uboot.bin is the current directory of the Uboot.bin file sent to the serial port. When finished, enter the serial interface. Performed: Dream 5220# # Upgrade 0x20000000 0x1dc00000 +0xe00000x20000000 is the default address that Kermit send a file to after it executes send. Write the file to nor Flash's first address: 0x1dc00000 +0xe0000 is the length of the write. Execution: RESET. Let the system restart. /* At this point, the new Uboot finish, after reset, if still unsuccessful, then the problem must be in the Linux startup phase or the new uboot still have a problem, this can be started by the debug information in the process to see a, if the kernel has a problem, Cause Linux does not enter the shell interface, to re-enter the Uboot environment, that is, after reset, always press CTRL + C, so that after the Uboot start, will not enter the kernel start phase, but stay in the Uboot command line, in this uboot environment , burning new kernels, configuring Ipaddr,serverip, and so on, is the same as in the first example. Native uboot IP address setenv ipaddr 10.10.167.10//server IP address setenv serverip 10.10.167.249//download Linux kernel vmlinux52// In the server's Tftpboot directory exists the corresponding file, set up to the TFTP service environment Tftpboot 0 vmlinux52//burned to flash. The 0x20000000 is the storage location of the vmlinux52. 0x1dd00000 is the starting position of the system kernel (each device location is different),//+0x600000 is the file length upgrade 0x20000000 0x1dd00000 +0x600000 before reset, the environment variables are usually set. such as Setenv Linux_args mtdparts=octeon_nor0:1m (BOOT), 7m (Linux), 21m (CONFIG), 3m (MD) setenv bootcmd ' Bootoctlinux 0x1dd00000 Coremask=0x3 mem=700 '//Save Saveenvbootoctliux Two, if the newly burned uboot itself has a problem, then modify the Uboot code, compile through, use PLCC repeat the above burning process.
General methods for burning uboot/bootloader/kernel in embedded systems