uboot挂起释放init内存216k - 屏幕空白

时间:2015-04-21 13:13:49

标签: android android-source imx6

我正在为定制板IMX6DL构建JB4.3 我将电路板连接到LVDS屏幕7英寸所有图像都闪存到SD卡,当我启动时,内核启动并运行直到释放启动内存:216k

我的构建环境如下:

bootdelay=3
baudrate=115200
netmask=255.0.0.0
loadaddr=0x10800000
rd_loadaddr=0x11000000
netdev=eth0
ethprime=FEC0
fastboot_dev=mmc2
bootcmd_android=booti mmc2
splashimage=0x30000000
splashpos=m,m
lvds_num=1
uboot=u-boot.bin
kernel=uImage
nfsroot=/nfsroot
mtdparts=mtdparts=gpmi-nand:512k(NBoot)ro,2m(UBoot)ro,256k(UBootEnv),256k(UserDef),6m(Kernel)ro,-(TargetFS)
bootargs_nfs=setenv bootargs ${bootargs} fec_mac=${ethaddr} root=/dev/nfs ip=${ipaddr} nfsroot=${serverip}:${nfsroot},v3,tcp
bootargs_nand=setenv bootargs ${bootargs} fec_mac=${ethaddr} ${mtdparts} gpmi_debug_init enable_wait_mode=off ubi.mtd=TargetFS root=ubi0:rootfs rootfstype=ubifs rootwait rw
bootargs_mmc=setenv bootargs ${bootargs} fec_mac=${ethaddr} root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw
bootcmd_net=run bootargs_nfs;tftpboot ${loadaddr} ${kernel}; bootm
bootcmd_net_mmc=run bootargs_mmc;tftpboot ${loadaddr} ${kernel}; bootm
bootcmd_mmc= for disk in 0 1 ; do mmc dev ${disk} ;for fs in fat ext2 ; do ${fs}load mmc ${disk}:1 ${loadaddr} /6q_bootscript && source ${loadaddr} ; done ; done
bootcmd_nand=run bootargs_nand;nand read ${loadaddr} Kernel 0x600000;bootm
loadcmd_nfs=nfs ${loadaddr} ${serverip}:/nfsroot/uImage
clearenv=sf probe 1 && sf erase 0xc0000 0x2000 && echo restored environment to factory default
upgradeu=for disk in 0 1 ; do mmc dev ${disk} ;for fs in fat ext2 ; do ${fs}load mmc ${disk}:1 ${loadaddr} /6q_upgrade && source ${loadaddr} ; done ; done
ethact=FEC0
serverip=10.0.0.92
ipaddr=10.0.0.251
ethaddr=00:05:00:08:ED:CO
mtdids=nand0=gpmi-nand
partition=nand0,0
mtddevnum=0
mtddevname=NBoot
bootcmd=run bootcmd_nand_mmc
bootcmd_nand_mmc=run bootargs_mmc;nand read ${loadaddr} Kernel 0x600000;booti $loadaddr
bootargs=console=ttymxc3,115200 init=/init video=mxcfb0:dev=ldb,LDB-WVGA,if=RGB666 video=mxcfb1:off fbmem=28M vmalloc=400M
bootargs=console=ttymxc3,115200 init=/init video=mxcfb0:dev=ldb,LDB-WVGA,if=RGB666 video=mxcfb1:off video=mxcfb2:off fbmem=28M vmalloc=400M
stdin=serial
stdout=serial
stderr=serial

Environment size: 2021/131068 bytes

启动内核时的输出代码是:

NAND read: device 0 offset 0x300000, size 0x600000
 6291456 bytes read: OK
kernel   @ 10008000 (4435508)
ramdisk  @ 11000000 (233989)
kernel cmdline:
        use uboot command line:
        console=ttymxc3,115200 init=/init video=mxcfb0:dev=ldb,LDB-WVGA,if=RGB666 video=mxcfb1:off fbmem=28M vmalloc=400M fec_mac=00:05:00:08:ED:CO root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw

Starting kernel ...

Initializing cgroup subsys cpu
Linux version 3.0.35-06428-ge1c0848-dirty (jonathan@jonathan-VirtualBox) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #14 SMP PREEMPT Fri Apr 17 11:20:00 CEST 2015
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: EfusA9 Quad/Solo
Memory policy: ECC disabled, Data cache writealloc
CPU identified as i.MX6DL/SOLO, silicon rev 1.2
PERCPU: Embedded 7 pages/cpu @80e69000 s5536 r8192 d14944 u32768
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 97280
Kernel command line: noinitrd loglevel=7 no_console_suspend console=ttymxc3,115200 init=/init video=mxcfb0:dev=ldb,LDB-WVGA,if=RGB666 video=mxcfb1:off fbmem=28M vmalloc=400M fec_mac=00:05:00:08:ED:CO root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw
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: 384MB = 384MB total
Memory: 377800k/377800k available, 146488k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    DMA     : 0xfbe00000 - 0xffe00000   (  64 MB)
    vmalloc : 0xa0800000 - 0xf2000000   (1304 MB)
    lowmem  : 0x80000000 - 0xa0000000   ( 512 MB)
    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
    modules : 0x7f000000 - 0x7fe00000   (  14 MB)
      .init : 0x80008000 - 0x8003e000   ( 216 kB)
      .text : 0x8003e000 - 0x8087fabc   (8455 kB)
      .data : 0x80880000 - 0x80911740   ( 582 kB)
       .bss : 0x80911764 - 0x80a63ad8   (1353 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Preemptible hierarchical RCU implementation.
NR_IRQS:624
MXC GPIO hardware
sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms
Set periph_clk's parent to pll2_pfd_400M!
arm_max_freq=1GHz
MXC_Early serial console at MMIO 0x21f0000 (options '115200')
bootconsole [ttymxc3] enabled
Console: colour dummy device 80x30
Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
Initializing cgroup subsys debug
Initializing cgroup subsys cpuacct
Initializing cgroup subsys freezer
CPU: Testing write buffer coherency: ok
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
Brought up 1 CPUs
SMP: Total of 1 processors activated (1581.05 BogoMIPS).
devtmpfs: initialized
print_constraints: dummy:
NET: Registered protocol family 16
print_constraints: vddpu: 725 <--> 1300 mV at 700 mV fast normal
print_constraints: vddcore: 725 <--> 1300 mV at 1150 mV fast normal
print_constraints: vddsoc: 725 <--> 1300 mV at 1200 mV fast normal
print_constraints: vdd2p5: 2000 <--> 2775 mV at 2400 mV fast normal
print_constraints: vdd1p1: 800 <--> 1400 mV at 1100 mV fast normal
print_constraints: vdd3p0: 2625 <--> 3400 mV at 3000 mV fast normal
### - HW config Board 0 Rev.0.0
MX6-Solo/Dual-Lite
---mx6_efusa9_board_init
hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
hw-breakpoint: 1 breakpoint(s) reserved for watchpoint single-step.
hw-breakpoint: maximum watchpoint size is 4 bytes.
L310 cache controller enabled
l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x32050000, Cache size: 524288 B
bio: create slab <bio-0> at 0
mxs-dma mxs-dma-apbh: initialized
print_constraints: VDDA: 3300 mV
print_constraints: VDDIO: 3300 mV
print_constraints: VDDD: 1500 mV
print_constraints: vmmc: 3300 mV
vgaarb: loaded
SCSI subsystem initialized
spi_imx imx6q-ecspi.0: probed
spi_imx imx6q-ecspi.1: probed
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Freescale USB OTG Driver loaded, $Revision: 1.55 $
imx-ipuv3 imx-ipuv3.0: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 driver probed
mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 dphy version is 0x3130302a
MIPI CSI2 driver module loaded
Advanced Linux Sound Architecture Driver Version 1.0.24.
Bluetooth: Core ver 2.16
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
Switching to clocksource mxc_timer1
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 5, 196608 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
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: 228K
Static Power Management for Freescale i.MX6
wait mode is enabled for i.MX6
cpaddr = a0820000 suspend_iram_base=a0890000
PM driver module loaded
iMX6 PCIe PCIe RC mode imx_pcie_pltfm_probe entering.
PCIE: imx_pcie_pltfm_probe start link up.
link up failed, DB_R0:0x00487200, DB_R1:0x08200000!
IMX PCIe port: link down with power supply 0!
IMX usb wakeup probe
add wake up source irq 75
IMX usb wakeup probe
cpu regulator mode:ldo_enable
i.MXC CPU frequency driver
ashmem: initialized
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
fuse init (API version 7.16)
msgmni has been set to 738
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver ldb
_regulator_get: get() with no identifier
Console: switching to colour frame buffer device 100x30
mxc_sdc_fb mxc_sdc_fb.1: Can't get fb option for mxcfb1!
imx-sdma imx-sdma: loaded firmware 1.1
imx-sdma imx-sdma: initialized
Serial: IMX driver
imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX
imx-uart.1: ttymxc1 at MMIO 0x21e8000 (irq = 59) is a IMX
imx-uart.3: ttymxc3 at MMIO 0x21f0000 (irq = 61) is a IMX
console [ttymxc3] enabled, bootconsole disabled
console [ttymxc3] enabled, bootconsole disabled
imx-uart.4: ttymxc4 at MMIO 0x21f4000 (irq = 62) is a IMX
[drm] Initialized drm 1.1.0 20060810
[drm] Initialized vivante 1.0.0 20120216 on minor 0
brd: module loaded
loop: module loaded
at24 0-0057: 2048 byte at24 EEPROM, writable, 8 bytes/write
m25p80 spi0.0: found m25p05-nonjedec, expected sst25vf016b
m25p80 spi0.0: m25p05-nonjedec (64 Kbytes)
Creating 2 MTD partitions on "m25p80":
0x000000000000-0x000000040000 : "bootloader"
mtd: partition "bootloader" extends beyond the end of device "m25p80" -- size truncated to 0x10000
0x000000010000-0x000000010000 : "kernel"
mtd: partition "kernel" is out of reach -- disabled
ONFI flash detected
ONFI param page 0 valid
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron MT29F2G08ABAEAH4)
gpmi-nand imx6q-gpmi-nand.0: enable asynchronous EDO mode 5
Scanning device for bad blocks
Bad eraseblock 16 at 0x000000200000
Bad eraseblock 17 at 0x000000220000
Bad eraseblock 18 at 0x000000240000
Creating 6 MTD partitions on "gpmi-nand":
0x000000000000-0x000000080000 : "NBoot"
0x000000080000-0x000000280000 : "UBoot"
0x000000280000-0x0000002c0000 : "UBootEnv"
0x0000002c0000-0x000000300000 : "UserDef"
0x000000300000-0x000000900000 : "Kernel"
0x000000900000-0x000010000000 : "TargetFS"
GPMI NAND driver registered. (IMX)
vcan: Virtual CAN interface driver
CAN device driver interface
flexcan netdevice driver
flexcan imx6q-flexcan.0: device registered (reg_base=a09b0000, irq=142)
flexcan imx6q-flexcan.1: device registered (reg_base=a09b8000, irq=143)
FEC Ethernet Driver
fec_enet_mii_bus: probed
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
fsl-ehci fsl-ehci.0: irq 75, io base 0x02184000
fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
add wake up source irq 72
fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 2
fsl-ehci fsl-ehci.1: irq 72, io base 0x02184200
fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
ARC USBOTG Device Controller driver (1 August 2005)
android_usb gadget: Mass Storage Function, version: 2009/09/11
android_usb gadget: Number of LUNs=1
 lun0: LUN: removable file: (no medium)
Gadget Android: controller 'fsl-usb2-udc' not recognized
android_usb gadget: android_usb ready
Suspend udc for OTG auto detect
fsl-usb2-udc: bind to driver android_usb
mousedev: PS/2 mouse device common for all mice
input: gpio-keys as /devices/platform/gpio-keys/input/input0
sx8655 1-0049: sx8655_probe()
sx8655 1-0049: write mask fail
sx8655: probe of 1-0049 failed with error -5
i2c-core: driver [isl29023] using legacy suspend method
i2c-core: driver [isl29023] using legacy resume method
rtc-pcf8563 0-0051: chip found, driver version 0.4.3
rtc-pcf8563 0-0051: low voltage detected, date/time is not reliable.
rtc-pcf8563 0-0051: retrieved date/time is not valid.
using rtc device, rtc-pcf8563, for alarms
rtc-pcf8563 0-0051: rtc core: registered rtc-pcf8563 as rtc0
i2c /dev entries driver
Linux video capture interface: v2.00
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video16
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video17
imx2-wdt imx2-wdt.0: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=1)
Bluetooth: HCI UART driver ver 2.2
Bluetooth: HCI H4 protocol initialized
Bluetooth: HCI BCSP protocol initialized
Bluetooth: HCILL protocol initialized
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci sdhci-esdhc-imx.2: no write-protect pin available!
sdhci sdhci-esdhc-imx.2: no card-detect pin available!
android_work: did not send uevent (0 0   (null))
mmc0: SDHCI controller on platform [sdhci-esdhc-imx.2] using ADMA
sdhci sdhci-esdhc-imx.1: no write-protect pin available!
sdhci sdhci-esdhc-imx.1: no card-detect pin available!
mmc1: SDHCI controller on platform [sdhci-esdhc-imx.1] using ADMA
sdhci sdhci-esdhc-imx.0: no write-protect pin available!
sdhci sdhci-esdhc-imx.0: no card-detect pin available!
mmc2: SDHCI controller on platform [sdhci-esdhc-imx.0] using ADMA
mxc_vdoa mxc_vdoa: i.MX Video Data Order Adapter(VDOA) driver probed
VPU initialized
android_work: sent uevent USB_STATE=CONNECTED
mxc_asrc registered
android_work: sent uevent USB_STATE=DISCONNECTED
Galcore version 4.6.9.6622
revserved_memory_account:viv_gpu registerd
Thermal calibration data is 0x54d4b869
Thermal sensor with ratio = 174
usb 2-1: new high speed USB device number 2 using fsl-ehci
Anatop Thermal registered as thermal_zone0
anatop_thermal_probe: default cooling device is cpufreq!
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
android_work: sent uevent USB_STATE=CONNECTED
logger: created 256K log 'log_main'
logger: created 256K log 'log_events'
logger: created 256K log 'log_radio'
logger: created 256K log 'log_system'
usbcore: registered new interface driver snd-usb-audio
Cirrus Logic CS42888 ALSA SoC Codec Driver
i2c-core: driver [cs42888] using legacy suspend method
i2c-core: driver [cs42888] using legacy resume method
+++ [arch/arm/mach-mx6/board-mx6q_efusa9.c 522]:mx6_efusa9_sgtl5000_init:  rate 22000000
sgtl5000 0-000a: sgtl5000 revision 17
hub 2-1:1.0: USB hub found
print_constraints: 0-000a: 850 <--> 1600 mV at 1200 mV normal
hub 2-1:1.0: 4 ports detected
android_work: sent uevent USB_STATE=DISCONNECTED
asoc: sgtl5000 <-> imx-ssi.1 mapping ok
Initialize HDMI-audio failed. Load HDMI-video first!
ALSA device list:
  #0: sgtl5000-audio
NET: Registered protocol family 26
TCP cubic registered
NET: Registered protocol family 17
android_work: sent uevent USB_STATE=CONNECTED
can: controller area network core (rev 20090105 abi 8)
android_work: sent uevent USB_STATE=DISCONNECTED
NET: Registered protocol family 29
can: raw protocol (rev 20090105)
can: broadcast manager protocol (rev 20090105 t)
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
lib80211: common routines for IEEE802.11 drivers
Registering the dns_resolver key type
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
Bus freq driver module loaded
Bus freq driver Enabled
mxc_dvfs_core_probe
android_work: sent uevent USB_STATE=CONNECTED
DVFS driver module loaded
regulator_init_complete: VDDD: incomplete constraints, leaving on
rtc-pcf8563 0-0051: low voltage detected, date/time is not reliable.
rtc-pcf8563 0-0051: retrieved date/time is not valid.
rtc-pcf8563 0-0051: hctosys: invalid date/time
Freeing init memory: 216K

对于代码的长度感到抱歉,任何帮助都会非常感激,我很卡住,在互联网上找不到任何可以解决这个问题的东西。

1 个答案:

答案 0 :(得分:0)

尽管我对这个平台不熟悉,而且这个问题已经年代久远了,但从启动Linux系统的角度来看,我认为总体上解决这个问题还是有帮助的。如果您查看有效的系统,则至少可以得到一个提示。

“释放内存”是内核在启动init之前要做的最后一件事。下一行应该是init开始并显示其版本(或它喜欢做的任何事情)。如果缺少init,则会出现内核崩溃,因此我想init本身就有问题。

这就是所有的意思

  • 引导程序成功运行
  • 引导程序找到并加载了内核
  • 内核启动,运行并完成了所有内核操作
  • 内核找到了一个文件系统(或ramfs)来运行所有启动程序
  • 内核完成了所有工作,现在移交给init,以便可以继续实际运行系统。

我要离开这里,因为我认为其他人可能也会遇到类似的问题,并且缺乏实际答案,这是一个开始。特别是,U-Boot没错。您能做的最坏的事情是告诉它要对init做一些奇怪的事情,但是“ init = / init”几乎是很简单的。