I upgraded linux kernel from 2.6.32 to 3.0.7 but now bootloader isn't able to load the kernel image. Specifically, boot procedure freezes after:

Starting kernel ... 
Uncompressing Linux... done, booting the kernel.

The reason was that bootloader (U-Boot) wasn't properly configured, which was confirmed by the fact that between kernel 2.6.x and kernel 3.0.x the serial ports have been renamed from ttySx to ttyOx.

The next step was to edit an uEnv.txt, stored on boot partition, in order to get read during the boot procedure.


dvimode="hd720 omapfb.vram=0:8M,1:4M,2:4M"
console="tty0 console=ttyO2,115200n8"

Boot procedure fails with:

 Texas Instruments X-Loader 1.5.0 (Jun 14 2011 - 22:04:07)                    
Beagle xM                                                                    
Reading boot sector                                                          
Loading u-boot.bin from mmc             

U-Boot 2011.03-rc1-00000-g9a3cc57-dirty (Apr 01 2011 - 17:41:42)

OMAP36XX/37XX-GP ES2.1, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz
OMAP3 Beagle board + LPDDR/NAND
I2C:   ready
DRAM:  512 MiB
NAND:  0 MiB                                                                    
MMC:   OMAP SD/MMC: 0                                                           
*** Warning - readenv() failed, using default environment                       

In:    serial                                                                   
Out:   serial                                                                   
Err:   serial                                                                   
Beagle xM Rev C                                                                 
No EEPROM on expansion board                                                    
Die ID #7ba200029ff800000168300f0802900e                                        
Hit any key to stop autoboot:  0                                                
The user button is currently NOT pressed.                                       
SD/MMC found on device 0                                                        
reading uEnv.txt                                                                

135 bytes read                                                                  
Loaded environment from uEnv.txt                                                
Importing environment from mmc ...                                              
Loading file "/boot/uImage" from mmc device 0:2 (xxa2)                          
2495320 bytes read                                                              
Booting fromage at 80200000 ...                                                 
   Image Name:   Linux-3.0.7                                                    
   Image Type:   ARM Linux Kernel Image (uncompressed)                          
   Data Size:    2495256 Bytes = 2.4 MiB                                        
   Load Address: 80008000                                                       
   Entry Point:  80008000                                                       
   Verifying Checksum ... OK                                                    
   Loading Kernel Image ... OK                                                  

Starting kernel ...                                                             

Uncompressing Linux... done, booting the kernel.                                
Linux version 3.0.7 (root@beagleboard) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Sa4
CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f                 
CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache               
Machine: OMAP3 Beagle Board                                                     
Reserving 16777216 bytes SDRAM for VRAM                                         
Memory policy: ECC disabled, Data cache writeback                               
OMAP3630 ES1.2 (l2cache iva sgx neon isp 192mhz_clk )                           
SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x10000                       
Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz                              
Reprogramming SDRC clock to 332000000 Hz                                        
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 125952     
 omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait           
PID hash table entries: 2048 (order: 1, 8192 bytes)                             
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)                 
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)                  
Memory: 496MB = 496MB total                                                     
Memory: 498048k/498048k available, 26240k reserved, 0K highmem                  
Virtual kernel memory layout:                                                   
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)                               
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)                               
    DMA     : 0xffc00000 - 0xffe00000   (   2 MB)                               
    vmalloc : 0xe0800000 - 0xf8000000   ( 376 MB)                               
    lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)                               
    modules : 0xbf000000 - 0xc0000000   (  16 MB)                               
      .init : 0xc0008000 - 0xc0029000   ( 132 kB)                               
      .text : 0xc0029000 - 0xc04b46c8   (4654 kB)                               
      .data : 0xc04b6000 - 0xc04efec0   ( 232 kB)                               
       .bss : 0xc04efee4 - 0xc05311a4   ( 261 kB)                               
Preemptible hierarchical RCU implementation.                                    
IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts              
Total of 96 interrupts on 1 active controller                                   
omap_hwmod: gpt12_fck: missing clockdomain for gpt12_fck.                       
OMAP clockevent source: GPTIMER12 at 32768 Hz                                   
sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms      
Console: colour dummy device 80x30                                              
console [tty0] enabled                                                          
Calibrating delay loop... 331.40 BogoMIPS (lpj=1296384)                         
pid_max: default: 32768 minimum: 301                                            
Mount-cache hash table entries: 512                                             
CPU: Testing write buffer coherency: ok                                         
devtmpfs: initialized                                                           
omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l4_core               
omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l4_per                
omap_hwmod: _populate_mpu_rt_base found no _mpu_rt_va for l4_wkup               
omap_hwmod: i2c1: softreset failed (waited 10000 usec)                          
omap_hwmod: i2c2: softreset failed (waited 10000 usec)                          
omap_hwmod: i2c3: softreset failed (waited 10000 usec)                          
print_constraints: dummy:                                                       
GPMC revision 5.0                                                               
omap_device: omap_gpio.0: new worst case activate latency 0: 30517              
OMAP GPIO hardware version 2.5                                                  
OMAP GPIO hardware version 2.5                                                  
OMAP GPIO hardware version 2.5                                                  
OMAP GPIO hardware version 2.5                                                  
OMAP GPIO hardware version 2.5                                                  
OMAP GPIO hardware version 2.5                                                  
omap_mux_init: Add partition: #1: core, flags: 0                                
OMAP3 Beagle Rev: unknown 2                                                     
Unable to get DVI reset GPIO                                                    
hw-breakpoint: debug architecture 0x4 unsupported.                              
------------[ cut here ]------------                                            
WARNING: at arch/arm/mach-omap2/clock.c:455 omap2_clk_switch_mpurate_at_boot+0x)
clock: dpll1_ck: unable to set MPU rate to 1000: -22                            
[<c0032ee0>] (unwind_backtrace+0x0/0xec) from [<c00519d8>] (warn_slowpath_commo)
[<c00519d8>] (warn_slowpath_common+0x48/0x60) from [<c0051a84>] (warn_slowpath_)
[<c0051a84>] (warn_slowpath_fmt+0x30/0x40) from [<c000f8f4>] (omap2_clk_switch_)
[<c000f8f4>] (omap2_clk_switch_mpurate_at_boot+0x80/0xb4) from [<c000f934>] (om)
[<c000f934>] (omap3xxx_clk_arch_init+0xc/0x3c) from [<c0008370>] (do_one_initca)
[<c0008370>] (do_one_initcall+0x94/0x15c) from [<c00084e0>] (kernel_init+0x74/0)
[<c00084e0>] (kernel_init+0x74/0x11c) from [<c002f35c>] (kernel_thread_exit+0x0)
---[ end trace 1b75b31a2719ed1c ]---                                            
OMAP DMA hardware revision 5.0                                                  
bio: create slab <bio-0> at 0                                                   
SCSI subsystem initialized                                                      
omap_device: omap_i2c.1: new worst case activate latency 0: 30517               
omap_i2c omap_i2c.1: bus 1 rev4.0 at 2600 kHz                                   
twl4030: PIH (irq 7) chaining IRQs 368..375                                     
twl4030: power (irq 373) chaining IRQs 376..383                                 
twl4030: gpio (irq 368) chaining IRQs 384..401                                  
print_constraints: VMMC1: 1850 <--> 3150 mV at 3000 mV normal standby           
print_constraints: VDAC: 1800 mV normal standby                                 
print_constraints: VDVI: 1800 mV normal standby                                 
print_constraints: VSIM: 1800 <--> 3000 mV at 1800 mV normal standby            
omap_i2c omap_i2c.3: bus 3 rev4.0 at 100 kHz                                    
Switching to clocksource 32k_counter                                            
NTFS driver 2.1.30 [Flags: R/W].                                                
Btrfs loaded                                                                    
GFS2 installed                                                                  
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)            
io scheduler noop registered                                                    
io scheduler deadline registered                                                
io scheduler cfq registered (default)                                           
OMAP DSS rev 2.0                                                                
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled                         
omap_uart.0: ttyO0 at MMIO 0x4806a000 (irq = 72) is a OMAP UART0                
omap_uart.1: ttyO1 at MMIO 0x4806c000 (irq = 73) is a OMAP UART1                
omap_uart.2: ttyO2 at MMIO 0x49020000 (irq = 74) is a OMAP UART2                
console [ttyO2] enabled                                                         
omap_uart.3: ttyO3 at MMIO 0x49042000 (irq = 80) is a OMAP UART3                
SCSI Media Changer driver v0.25                                                 
mousedev: PS/2 mouse device common for all mice                                 
input: gpio-keys as /devices/platform/gpio-keys/input/input0                    
input: twl4030_pwrbutton as /devices/platform/omap/omap_i2c.1/i2c-1/1-0049/twl41
i2c /dev entries driver                                                         
lirc_dev: IR Remote Control driver registered, major 252                        
IR NEC protocol handler initialized                                             
IR RC5(x) protocol handler initialized                                          
IR RC6 protocol handler initialized                                             
IR JVC protocol handler initialized                                             
IR Sony protocol handler initialized                                            
IR RC5 (streamzap) protocol handler initialized                                 
IR LIRC bridge handler initialized                                              
Linux video capture interface: v2.00                                            
i2c-core: driver [msp3400] using legacy suspend method                          
i2c-core: driver [msp3400] using legacy resume method                           
vivi-000: V4L2 device registered as video0                                      
Video Technology Magazine Virtual Video Capture Board ver 0.8.0 successfully lo.
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3         
ThumbEE CPU extension supported.                                                
omap_voltage_late_init: Unable to create voltage debugfs main dir               
vdd_debugfs_init: Unable to create debugfs directory for vdd_mpu                
vdd_debugfs_init: Unable to create debugfs directory for vdd_core               
sr_init: No PMIC hook to init smartreflex                                       
smartreflex smartreflex.0: omap_sr_probe: SmartReflex driver initialized        
smartreflex: probe of smartreflex.0 failed with error -22                       
smartreflex smartreflex.1: omap_sr_probe: SmartReflex driver initialized        
smartreflex: probe of smartreflex.1 failed with error -22                       
sr_init: platform driver register failed for SR                                 
clock: disabling unused clocks to save power                                    
omapfb omapfb: no driver for display                                            
omapfb omapfb: failed to setup omapfb                                           
regulator_init_complete: VDVI: incomplete constraints, leaving on               
regulator_init_complete: VDAC: incomplete constraints, leaving on               
regulator_init_complete: VMMC1: incomplete constraints, leaving on              
omap_vout omap_vout: probed for an unknown device                               
Waiting for root device /dev/mmcblk0p2... 

The system that I 'm referring to, is a remote computer (BeagleBoard-xM) and the access is via serial cable.

My question is:

  • As far as I know, /dev/ttyO2 represents /dev/console which is the system administrator console, but how these interact with the boot procedure? In other words, the edit from console=ttyS2 to console=ttyO2, affect the boot procedure or is just for enabling remote human interaction via a terminal emulator?

Finally, what is the reason of booting failure? Is uEnv.txt correct?

  • This a great question that should not have been downvoted without comment, though, admittedly, the title could have been a little more specific. – mikeserv Apr 1 '14 at 19:59

The console=ttyO2 allows you to see the kernel and system messages on the corresponding serial port. It does not affect the boot process otherwise - the system will boot even without a console.

Remember to edit /etc/inittab - change ttyS2 to ttyO2 there to get a login prompt on the serial console once the system boots.

Your new kernel is probably missing the needed driver for your SD. Check the kernel configuration - compare it to the config of your old kernel. You need the driver compiled into the kernel.

EDIT: Your new kernel does not detect the SD. Check if it has the correct board configuration for your board.

  • I checked both kernel configuration files and mmc/sd drivers are installed. Any ideas why boot fails in this case? – dempap Apr 4 '14 at 13:21
  • What is the console output now - while booting the new kernel? – Zrin Apr 4 '14 at 13:44
  • I edited my question with the complete boot sequence. – dempap Apr 4 '14 at 14:00
  • edited the answer - is the kernels board config correct? – Zrin Apr 4 '14 at 15:12
  • You 're right. Kernel 3.0.7 wasn't properly configured. – dempap Apr 6 '14 at 15:23

I had the same issue but for me, I had not provided the correct port for the memory card. I had to edit the script.fex and generate another script.bin and the system booted successful. Different boards have different ports. My board was an ITEAD AW2041, and it previous hanged at the same point awaiting on the mmcblk0p2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.