This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PROCESSOR-SDK-AM335X: Stuck at 'Starting kernel' with RAM-Based Initrd – AM335x SDK Boot Issue

Part Number: PROCESSOR-SDK-AM335X

Tool/software:

Hi

I am currently working on a project involving the TI AM335x EVM (BeagleBone Black) and using the TI Processor SDK Linux version 05.00.00.15, as recommended by our client. The development environment is set up on Ubuntu 16.04 LTS.

Project Requirement:
We are specifically targeting a RAM-based root filesystem. The root filesystem has been manually constructed and is located at:
/home/user/rootfs/fs_tiny_feb/
The filesystem structure is as follows:
bin boot dev etc home init lib linuxrc media mnt proc run sbin sys tmp usr var
Boot Behavior:
We have followed the SDK's standard build and deployment steps. U-Boot, zImage, DTB, and initrd image are correctly loaded from the SD card. Below is the log captured from the serial console (using Minicom over /dev/ttyUSB0):

Problem Statement:
After the message Starting kernel ..., the boot process hangs, and no further kernel messages or console output appear. It seems the kernel is not mounting or transitioning into the RAM-based root filesystem.

Request for Help:
Could you please help us with the following:

Guidance or checklist on booting a RAM-based root filesystem on the AM335x platform.

Possible reasons why the kernel might hang after "Starting kernel ..." in this case.

Are there any known compatibility or configuration issues with SDK 05.00.00.15 when using a custom initramfs or minimal rootfs?

Any support or sample bootargs/uEnv.txt format for proper RAMFS boot would be highly appreciated.

Thank you for your support.

Best regards,

Vaishnavi

    

Welcome to minicom 2.7

OPTIONS: I18n                                                                
Compiled on Nov 15 2018, 20:18:47.                                           
Port /dev/ttyUSB0, 12:50:08                                                  
                                                                             
Press CTRL-A Z for help on special keys                                      
                                                                             
                                                                             
U-Boot SPL 2018.01-00228-g4579b13-dirty (May 03 2025 - 14:26:00)             
Trying to boot from MMC1                                                     
*** Warning - bad CRC, using default environment                             
                                                                             
reading u-boot.img                      
reading u-boot.img                      
reading u-boot.img                      
reading u-boot.img                      
                                        
                                        
U-Boot 2018.01-00228-g4579b13-dirty (May 03 2025 - 14:26:00 +0530)

CPU  : AM335X-GP rev 2.1
Model: TI AM335x BeagleBone Black                                               
DRAM:  512 MiB                                                                  
NAND:  0 MiB                                                                    
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1                                           
*** Warning - bad CRC, using default environment                                
                                                                                
<ethaddr> not set. Validating first E-fuse MAC                                  
Net:   cpsw, usb_ether                                                          
Hit any key to stop autoboot:  0                                                
switch to partitions #0, OK                                                     
mmc0 is current device                                                          
SD/MMC found on device 0                                                        
** Unable to read file boot.scr **                                              
reading uEnv.txt                                                                
554 bytes read in 3 ms (179.7 KiB/s)                                            
Loaded env from uEnv.txt                                                        
Importing environment from mmc0 ...                                             
Running uenvcmd ...                                                             
Booting from SD card with RAM-based rootfs...                                   
reading zImage                                                                  
27787776 bytes read in 1806 ms (14.7 MiB/s)                                     
reading am335x-boneblack.dtb                                                    
36793 bytes read in 6 ms (5.8 MiB/s)                                            
reading initrd.img.gz                                                           
20492772 bytes read in 1330 ms (14.7 MiB/s)                                     
## Flattened Device Tree blob at 88000000                                       
   Booting using the fdt blob at 0x88000000                                     
   Loading Ramdisk to 8ec74000, end 8ffff1e4 ... OK                             
   Loading Device Tree to 8ec68000, end 8ec73fb8 ... OK                         
                                                                                
Starting kernel ...                                                             
                                                                                

uEnv.txt file 

 this is uenv.txt but it is stopping till in the starting kernel i have loaded teh initrd.img
# Boot configuration for RAM-based rootfs
console=ttyO0,115200n8
fdtaddr=0x88000000
rdaddr=0x82000000
loadaddr=0x80007FC0
bootargs=console=${console} earlyprintk root=/dev/ram rw rdinit=/init
uenvcmd=echo Booting from SD card with RAM-based rootfs...; \
        load mmc 0:1 ${loadaddr} zImage; \
        load mmc 0:1 ${fdtaddr} am335x-boneblack.dtb; \
        load mmc 0:1 ${rdaddr} initrd.img.gz; \
        bootz ${loadaddr} ${rdaddr}:${filesize} ${fdtaddr}
   

  • Hi Vaishnavi,

    I don't see anything readily wrong here. What happens when you modify the `bootz` command to leave the ram disk loading out, to see what it does? The kernel should come up and print something. Like this...

    bootz ${loadaddr} - ${fdtaddr}

    The other thing you can try is to enable early prints in the Kernel to hopefully get more diagnostic information.

    And you can use JTAG to check what the processor is doing. This will help determine if it completely crashed (exception) or it's running and perhaps there's some issue with UART console printing.

    Regards, Andreas