Hi All,
I have a question about image configuration for MCIMX53-START-R.
I've been working Android with MCIMX53-START, and I'm now trying to work it on MCIMX53-START-R, but the Android system doesn't start running.
Firstly I've just tried to use the Android microSD with MCIMX53-START-R, but there is no console log omitted and even u-boot doesn't run. On the other hand, I also tried use the Ubuntu microSD packed in MCIMX53-START-R with MCIMX53-START, and the system can weirdly successfully boot up.
I've anyway copied MBR and u-boot of the Ubuntu microSD to the Android's microSD, and u-boot could barely run. Then I arranged the partitions of the microSD with fdisk as the original Android's one was cofigured. (6 partitions in total) However, when QSB is turned on, kernel doesn't boot up, omitting the following log.
----------------------------------------------------------------------------------------------------------------
MMC read: dev # 0, block # 2048, count 6144 ... 6144 blocks read: OK
## Booting kernel from Legacy Image at 70800000 ...
Image Name: Linux-2.6.35.3-01073-g813d2d6-di
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3269184 Bytes = 3.1 MB
Load Address: 70008000
Entry Point: 70008000
Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!
MX53-LOCO U-Boot >
----------------------------------------------------------------------------------------------------------------
Does anyone know how to configure the Android image for MCIMX53-START-R?
Best Regards,
Takashi Kawamoto
In that case, you should not see the warnings about USB. Can you try building again using the default kernel configuration?
Hi,
Thanks for your prompt comment. I'm using r4_2.
Best Regards,
Takashi Kawamoto
Hi,
It looks like you might be using an incorrect configuration for your kernel. You normally should not see the warnings about USB errors. There might be other issues as well, preventing you from booting. I can also tell that the MC34708 PMIC has not been detected, so you will experience power issues.
Are you using the binaries that are part of the release or did you generate them yourself? Can you try to use release r4.2?
Best regards,
Remi Lorriaux - Adeneo Embedded
I've made it by setting an u-boot parameter as "setenv set_display 'run vga'".
Thank you all.
Best Regards,
Takashi Kawamoto
Thank you. I understand the boot architecture.
As long as I see in "out" directory of Freescale Android source tree, the init doesn't exist there as well as init.rc after building the system image. So I guess the init should be automatically generated as a file and located at root directory when kernel boots up. But I'm not sure what to do...
That kernel panic message is indicating that it can't find a /bin/init, /sbin/init, /etc/init or /bin/sh within your rootfs. I would check to make sure you are mounting the correct rootfs, if you have multiple rootfs on your card, or make sure that the roofs that you are mounting has one (or all) of those init binaries/scripts available.
To give a little insight, you can looked at the static noinline init_post() function (this is the method that is being called when the kernel is initializing the kernel userspace) within the init/main.c source of the 2.6.35.3 kernel source tree.
Exactly as you mentioned, just correcting root parameter enables mounting rootfs. Thank you.
Unfortunately, however, another kernel panic appears that says init is not found anywhere as seen in the attached console log.
------------------------------------------------------------------------------
EXT4-fs (mmcblk0p2): recovery complete
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext2 filesystem) on device 179:2.
Freeing init memory: 196K
Kernel panic - not syncing: No init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
[<8003e578>] (unwind_backtrace+0x0/0xf0) from [<8046e880>] (panic+0x6c/0xe0)
[<8046e880>] (panic+0x6c/0xe0) from [<800395a0>] (init_post+0xac/0xd4)
[<800395a0>] (init_post+0xac/0xd4) from [<800084a4>] (kernel_init+0x124/0x168)
unwind: Unknown symbol address 800084a4
unwind: Index not found 800084a4
------------------------------------------------------------------------------
I tried to explicitly define init parameter as "/init" on u-boot, but it made no sense.
Best Regards,
Takashi Kawamoto
Looking at the log you posted, the garbled output after the "Starting Kernel..." message is concerning, but it looks like the bootloader/kernel corrected itself and began displaying messages properly. The kernel panic at the end of the log file seems to be indicate that it can't find the rootfs. How is the kernel boot command defined in u-boot? Is it pointing to the correct device and parition where your rootfs is located? I know for my microSD configuration with only one partition, my boot command looked like this within u-boot:
Where root was pointing to the first partition (p1), which contained my rootfs, on the microSD (/dev/mmcblk0). I'm sure you are already familiar with the various boot parameters, but I'm just explaining it here to be thorough.
Regards,
Donald R. Poole, Jr.
Thanks to your advice, I've managed to boot up kernel by changing the read count.
As seen in the attached console log, however, a kernel panic occurs due to mount rootfs.
I will further investigate if my system image is surely written at the correct address.
If you find something incorrect in the log, please tell me.
Best Regards,
Takashi Kawamoto
That is puzzling. I would try making the read count larger. So, instead of a read count of 0x1800 (6144), try a read count of 0x2000 (8192). Usually when I receive checksum errors like that it's because I wasn't reading in enough blocks, which resulted in only part of the kernel being loaded.
Thank you.
I made sure that the following option were enabled.
----------------------------------------------------------------------
CONFIG_REGULATOR_MC34708=y
CONFIG_MXC_PMIC_MC34708=y
CONFIG_MXC_MC34708_ADC=y
CONFIG_MXC_MC34708_RTC=y
CONFIG_MXC_MC34708_BATTERY=m
----------------------------------------------------------------------
I think the main cause is checksum error, but I can't understand why this error is specific to the MCIMX53-START-R.
I've got completely lost...
The main difference that I can tell between the two boards is that the MCIMX53-START-R uses the MC34708 Power Management Integrate Circuit (PMIC) and the MCIMX53-START uses the Dialog DA9053 PMIC. The kernel needs to be configure to work with one (or both) of these hardware devices. I think you are experiencing boot problems because your kernel doesn't know how to interface to the MC34708 PMIC since it doesn't have the drivers compiled to support the device. Likewise, u-boot might not have adequate support for the MC34708 either.
Those are my thoughts
Hi,
There is nothing special to do, besides using Adeneo's release r4.2. From what I can tell, it looks like your kernel image has been incorrectly flashed or built since U-Boot fails to load it.
Remi Lorriaux - Adeneo Embedded