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.

Android Initramfs Boot Issue

Other Parts Discussed in Thread: PMP

 

Hello All,

I have been encountering a problem when trying to boot the Android GingerBread 2.3 SDK 2.0 pre-built kernel and rootfs image when using an initramfs.

In my boot scanario i am using tftp to transfer both the kernel image and the root file system as an initramfs archive. However although the kernel appears to start successfully the graphics kernel modules do not load and the android init process enters loop, see the console output attached. insmod for vpss appears to fail, but it is not clear why this should be the case as the kernel and rootfs are unchanged from the versions that I can successfully boot on an SD card or using NFS. Volatile storage is not an option in my application.

I have not modified the image apart from packaging it as an initramfs archive using:

find . -print0 | cpio --null -ov --format=newc | gzip -9 > ../initramdisk.gz

mkimage -A arm -T ramdisk -n 'Ramdisk' -C none -d initramdisk.gz initramfs.img

The u-boot kernel bootargs are:

console=ttyO2,115200n8 rootwait androidboot.console=ttyO2 rw earlyprintk mem=166M@0x80000000 mem=768M@0x90000000 

and the boot script:

dhcp; tftpboot 0x9125F820 /srv/tftpboot/initramfs.img; tftpboot 0x91000000 /srv/tftpboot/androidimage; bootm 0x91000000 0x9125F820

where androidimage is the uImage from the SDK pre-built kernel image. I have tried moving the initial load addresses of the images without success.

I would be grateful if anyone has successfully booted with this approach, or any pointer as to where I might be going wrong.

Thanks.

 

U-Boot 2010.06 (Nov 29 2011 - 09:41:03)

TI8168-GP rev 1.1

ARM clk: 987MHz

DDR clk: 796MHz


I2C:   ready

DRAM:  2 GiB

NAND:  HW ECC Hamming Code selected

256 MiB

*** Warning - bad CRC or NAND, using default environment


Net:   <ethaddr> not set. Reading from E-fuse

Detected MACID:90:d7:eb:3e:fe:70

Ethernet PHY: GENERIC @ 0x01

DaVinci EMAC

Hit any key to stop autoboot:  0

LINUX BOOT

BOOTP broadcast 1

DHCP client bound to address 192.178.1.3

Using DaVinci EMAC device

TFTP from server 192.178.1.2; our IP address is 192.178.1.3

Filename '/srv/tftpboot/initramfs.img'.

Load address: 0x9125f820

Loading: #################################################################

AND SO ON...

         ############################

done

Bytes transferred = 48111362 (2de1f02 hex)

Using DaVinci EMAC device

TFTP from server 192.178.1.2; our IP address is 192.178.1.3

Filename '/srv/tftpboot/androidimage'.

Load address: 0x91000000

Loading: #################################################################

         #################################################################

         ########################################

done

Bytes transferred = 2488352 (25f820 hex)

## Booting kernel from Legacy Image at 91000000 ...

   Image Name:   Linux-2.6.37+

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    2488288 Bytes = 2.4 MiB

   Load Address: 80008000

   Entry Point:  80008000

   Verifying Checksum ... OK

## Loading init Ramdisk from Legacy Image at 9125f820 ...

   Image Name:   Ramdisk

   Image Type:   ARM Linux RAMDisk Image (uncompressed)

   Data Size:    48111298 Bytes = 45.9 MiB

   Load Address: 00000000

   Entry Point:  00000000

   Verifying Checksum ... OK

   Loading Kernel Image ... OK

OK


Starting kernel ...


Uncompressing Linux... done, booting the kernel.

Linux version 2.6.37+ (a0393957@swubn01) (gcc version 4.4.3 (GCC) ) #1 Tue Apr 2

6 11:43:48 IST 2011

CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f

CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: ti8168evm

reserved size = 52428800 at 0

FB: Reserving 52428800 bytes SDRAM for VRAM

Memory policy: ECC disabled, Data cache writeback

Truncating RAM at 90000000-bfffffff to -afffffff (vmalloc region overlap).

OMAP chip is TI8168 1.1

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 172032

Kernel command line: console=ttyO2,115200n8 rootwait androidboot.console=ttyO2 r

w earlyprintk mem=166M@0x80000000 mem=768M@0x90000000

PID hash table entries: 4096 (order: 2, 16384 bytes)

Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)

Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)

Memory: 166MB 718MB = 884MB total

Memory: 635288k/635288k available, 58984k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    DMA     : 0xffc00000 - 0xffe00000   (   2 MB)

    vmalloc : 0xf0800000 - 0xf8000000   ( 120 MB)

    lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)

    modules : 0xbf000000 - 0xc0000000   (  16 MB)

      .init : 0xc0008000 - 0xc0036000   ( 184 kB)

      .text : 0xc0036000 - 0xc04ac000   (4568 kB)

      .data : 0xc04ac000 - 0xc04ed8e0   ( 263 kB)

SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

NR_IRQS:407

IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts

Total of 128 interrupts on 1 active controller

GPMC revision 6.0

Trying to install interrupt handler for IRQ400

Trying to install interrupt handler for IRQ401

Trying to install interrupt handler for IRQ402

Trying to install interrupt handler for IRQ403

Trying to install interrupt handler for IRQ404

Trying to install interrupt handler for IRQ405

Trying to install interrupt handler for IRQ406

Trying to install type control for IRQ407

Trying to set irq flags for IRQ407

OMAP clockevent source: GPTIMER1 at 27000000 Hz

Console: colour dummy device 80x30

Calibrating delay loop... 986.31 BogoMIPS (lpj=4931584)

pid_max: default: 32768 minimum: 301

Security Framework initialized

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

devtmpfs: initialized

omap_voltage_early_init: voltage driver support not added

regulator: core version 0.5

regulator: dummy:

NET: Registered protocol family 16

OMAP GPIO hardware version 0.1

OMAP GPIO hardware version 0.1

omap_mux_init: Add partition: #1: core, flags: 0

_omap_mux_get_by_name: Could not find signal i2c2_scl.i2c2_scl

_omap_mux_get_by_name: Could not find signal i2c2_sda.i2c2_sda

NOR: Can't request GPMC CS

registered ti816x_vpss device

pm_dbg_init: only OMAP3 supported

Registered ti81xx_fb device

ti816x_pcie: Invoking PCI BIOS...

ti816x_pcie: Setting up Host Controller...

ti816x_pcie: Register base mapped @0xf0820000

ti816x_pcie: Starting PCI scan...

PCI: bus0: Fast back to back transfers enabled

bio: create slab <bio-0> at 0

vgaarb: loaded

SCSI subsystem initialized

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

omap_i2c omap_i2c.1: bus 1 rev4.0 at 100 kHz

omap_i2c omap_i2c.2: bus 2 rev4.0 at 100 kHz

Advanced Linux Sound Architecture Driver Version 1.0.23.

Switching to clocksource gp timer

musb-hdrc: version 6.0, host, debug=0

musb-hdrc musb-hdrc.0: dma type: dma-cppi41

registerd cppi-dma Intr @ IRQ 17

Cppi41 Init Done

musb-hdrc: kernel must blacklist external hubs

musb-hdrc musb-hdrc.0: MUSB HDRC host driver

musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1

usb usb1: New USB device found, idVendor=1d6b, idProduct=0002

usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1

usb usb1: Product: MUSB HDRC host driver

usb usb1: Manufacturer: Linux 2.6.37+ musb-hcd

usb usb1: SerialNumber: musb-hdrc.0

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 1 port detected

musb-hdrc musb-hdrc.0: USB Host mode controller at f080c000 using DMA, IRQ 18

musb-hdrc musb-hdrc.1: dma type: dma-cppi41

musb-hdrc: kernel must blacklist external hubs

musb-hdrc musb-hdrc.1: MUSB HDRC host driver

musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 2

usb usb2: New USB device found, idVendor=1d6b, idProduct=0002

usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1

usb usb2: Product: MUSB HDRC host driver

usb usb2: Manufacturer: Linux 2.6.37+ musb-hcd

usb usb2: SerialNumber: musb-hdrc.1

hub 2-0:1.0: USB hub found

hub 2-0:1.0: 1 port detected

musb-hdrc musb-hdrc.1: USB Host mode controller at f081e800 using DMA, IRQ 19

NET: Registered protocol family 2

IP route cache hash table entries: 32768 (order: 5, 131072 bytes)

TCP established hash table entries: 131072 (order: 8, 1048576 bytes)

TCP bind hash table entries: 65536 (order: 6, 262144 bytes)

TCP: Hash tables configured (established 131072 bind 65536)

TCP reno registered

UDP hash table entries: 512 (order: 1, 8192 bytes)

UDP-Lite hash table entries: 512 (order: 1, 8192 bytes)

NET: Registered protocol family 1

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

RPC: Registered tcp NFSv4.1 backchannel transport module.

Trying to unpack rootfs image as initramfs...

Freeing initrd memory: 46984K

NetWinder Floating Point Emulator V0.97 (double precision)

sr1_fck HVT rate = 125000000

sr2_fck SVT rate = 125000000

SR NTarget value for HVT 0x998692

SR NTarget value for SVT 0xaac3d7

SmartReflex Driver initialized

omap-iommu omap-iommu.0: ducati registered

omap-iommu omap-iommu.1: sys registered

ashmem: initialized

JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.

msgmni has been set to 1332

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled

omap_uart.0: ttyO0 at MMIO 0x48020000 (irq = 72) is a OMAP UART0

omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1

omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2

console [ttyO2] enabled

brd: module loaded

loop: module loaded

ahci ahci.0: forcing PORTS_IMPL to 0x3

ahci ahci.0: AHCI 0001.0100 32 slots 2 ports 3 Gbps 0x3 impl platform mode

ahci ahci.0: flags: ncq sntf pm led clo only pmp pio slum part ccc

scsi0 : ahci_platform

scsi1 : ahci_platform

ata1: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a150fff] port 0x100 irq 16

ata2: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a150fff] port 0x180 irq 16

m25p80 spi1.0: w25x32 (4096 Kbytes)

Creating 4 MTD partitions on "spi_flash":

0x000000000000-0x000000040000 : "U-Boot"

0x000000040000-0x000000042000 : "U-Boot Env"

0x000000042000-0x0000002c2000 : "Kernel"

0x0000002c2000-0x000000400000 : "File System"

omap2-nand driver initializing

NAND device: Manufacturer ID: 0x2c, Chip ID: 0xca (Micron )

Creating 5 MTD partitions on "omap2-nand.0":

0x000000000000-0x000000260000 : "U-Boot"

0x000000260000-0x000000280000 : "U-Boot Env"

0x000000280000-0x0000006c0000 : "Kernel"

0x0000006c0000-0x00000cee0000 : "File System"

0x00000cee0000-0x000010000000 : "Reserved"

davinci_mdio davinci_mdio.0: davinci mdio revision 1.6

davinci_mdio davinci_mdio.0: detected phy mask fffffff9

davinci_mdio.0: probed

davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown

davinci_mdio davinci_mdio.0: phy[2]: device 0:02, driver unknown

usbcore: registered new interface driver cdc_ether

usbcore: registered new interface driver dm9601

Initializing USB Mass Storage driver...

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.

mice: PS/2 mouse device common for all mice

i2c /dev entries driver

Linux video capture interface: v2.00

usbcore: registered new interface driver uvcvideo

USB Video Class driver (v1.0.0)

OMAP Watchdog Timer Rev 0x00: initial timeout 60 sec

device-mapper: ioctl: 4.18.0-ioctl (2010-06-29) initialised: dm-devel@redhat.com


PSTATE 1f20001

usbcore: registered new interface driver usbhid

usbhid: USB HID core driver

logger: created 64K log 'log_main'

logger: created 256K log 'log_events'

logger: created 64K log 'log_radio'

logger: created 64K log 'log_system'

usbcore: registered new interface driver snd-usb-audio

1-0018 supply IOVDD not found, using dummy regulator

1-0018 supply DVDD not found, using dummy regulator

1-0018 supply AVDD not found, using dummy regulator

1-0018 supply DRVDD not found, using dummy regulator

asoc: tlv320aic3x-hifi <-> davinci-mcasp.2 mapping ok

ALSA device list:

  #0: TI81XX EVM

TCP cubic registered

NET: Registered protocol family 17

VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3

omap_voltage_late_init: Voltage driver support not added

drivers/rtc/hctosys.c: unable to open rtc device (rtc0)

ata1: SATA link down (SStatus 0 SControl 300)

ata2: SATA link down (SStatus 0 SControl 300)

Freeing init memory: 184K

init (1): /proc/1/oom_adj is deprecated, please use /proc/1/oom_score_adj instea

d.

init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'

# SysLink version : 02.00.00.67_alpha2

SysLink module created on Date:Apr 26 2011 Time:11:44:28

Entered KnlUtilsDrv_initializeModule

traceMask value: 0x0

Leaving KnlUtilsDrv_initializeModule 0x0

omaplfb: OMAPLFB_Init: OMAPLFBInit failed

vpss: probe of vpss failed with error -22

ti81xxfb ti81xxfb: no grpxs

ti81xxfb: probe of ti81xxfb failed with error -22

omaplfb: OMAPLFB_Init: OMAPLFBInit failed

omaplfb: OMAPLFB_Init: OMAPLFBInit failed

warning: `zygote' uses 32-bit capabilities (legacy support in use)

alarm_set_rtc: no RTC, time will be lost on reboot

request_suspend_state: wakeup (3->0) at 14278993558 (1970-01-02 00:00:00.4706004

44 UTC)

init: untracked pid 61 exited

request_suspend_state: wakeup (0->0) at 17545259817 (1970-01-02 00:00:03.7368669

26 UTC)

init: untracked pid 124 exited

omaplfb: OMAPLFB_Init: OMAPLFBInit failed

request_suspend_state: wakeup (0->0) at 22682194188 (1970-01-02 00:00:08.8738012

97 UTC)

init: untracked pid 140 exited

omaplfb: OMAPLFB_Init: OMAPLFBInit failed

request_suspend_state: wakeup (0->0) at 27816056040 (1970-01-02 00:00:14.0076630

00 UTC)

init: untracked pid 164 exited