I have successfully built updater.sb/updater_ivt.sb and imx28_linux.sb/imx28_ivt_linux.sb from LTIB. And successfully flash NAND flash with Mfgtools-Rel-1.1.0_130205_MX28_UPDATER.
However, when I tried to boot it on i.MX28 EVK board, "VFS: Cannot open root device "(null)" or unknown-block(0,0)" error appeared.
The full console log is as below.
HTLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLC
PowerPrep start initialize power...
Battery Voltage = 4.24V
boot from battery. 5v input not detected
LLLCSep 30 201413:38:49
FRAC 0x92925552
memory type is DDR2
Wait for ddr ready 1power 0x00820710
Frac 0x92925552
start change cpu freq
hbus 0x00000003
cpu 0x00010001
LLLLLLLFLCLLJUncompressing Linux... done, booting the kernel.
Linux version 2.6.35.3-670-g914558e (hong@hong-desktop) (gcc version 4.4.4 (4.4.4_09.06.2010) ) #2 Tue Sep 30 14:09:03 EDT 2014
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Freescale MX28EVK board
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: -e console=ttyAM0,115200 rdinit=/linuxrc rw gpmi
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 120304k/120304k available, 10768k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xfde00000 - 0xffe00000 ( 32 MB)
vmalloc : 0xc8800000 - 0xf0000000 ( 632 MB)
lowmem : 0xc0000000 - 0xc8000000 ( 128 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.init : 0xc0008000 - 0xc0027000 ( 124 kB)
.text : 0xc0027000 - 0xc0305000 (2936 kB)
.data : 0xc0306000 - 0xc0324fc0 ( 124 kB)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
RCU-based detection of stalled CPUs is disabled.
Verbose stalled-CPUs detection is disabled.
NR_IRQS:288
Console: colour dummy device 80x30
console [ttyAM0] enabled
Calibrating delay loop... 226.09 BogoMIPS (lpj=1130496)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
regulator: core version 0.5
NET: Registered protocol family 16
regulator: vddd: 800 <--> 1575 mV at 1500 mV fast normal
regulator: vdddbo: 800 <--> 1575 mV fast normal
regulator: vdda: 1500 <--> 2275 mV at 1800 mV fast normal
vddio = 3380000, val=10
regulator: vddio: 2880 <--> 3680 mV at 3380 mV fast normal
regulator: overall_current: fast normal
regulator: vbus5v:
regulator: mxs-duart-1: fast normal
regulator: mxs-bl-1: fast normal
regulator: mxs-i2c-1: fast normal
regulator: mmc_ssp-1: fast normal
regulator: mmc_ssp-2: fast normal
regulator: charger-1: fast normal
regulator: power-test-1: fast normal
regulator: cpufreq-1: fast normal
i.MX IRAM pool: 124 KB@0xc8820000
Initializing GPMI pins
usb DR wakeup device is registered
IMX usb wakeup probe
audit: cannot initialize inotify handle
bio: create slab <bio-0> at 0
SCSI subsystem initialized
Switching to clocksource mxs clock source
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (uncompression error); looks like an initrd
Freeing initrd memory: 6144K
Bus freq driver module loaded
mxs_cpu_init: cpufreq init finished
audit: initializing netlink socket (disabled)
type=2000 audit(0.510:1): initialized
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 246
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
io scheduler noop registered (default)
Console: switching to colour frame buffer device 100x30
mxs-duart.0: ttyAM0 at MMIO 0x80074000 (irq = 47) is a DebugUART
mxs-auart.0: ttySP0 at MMIO 0x8006a000 (irq = 112) is a mxs-auart.0
Found APPUART 3.1.0
mxs-auart.1: ttySP1 at MMIO 0x8006c000 (irq = 113) is a mxs-auart.1
Found APPUART 3.1.0
mxs-auart.2: ttySP2 at MMIO 0x8006e000 (irq = 114) is a mxs-auart.2
Found APPUART 3.1.0
mxs-auart.3: ttySP3 at MMIO 0x80070000 (irq = 115) is a mxs-auart.3
Found APPUART 3.1.0
mxs-auart.4: ttySP4 at MMIO 0x80072000 (irq = 116) is a mxs-auart.4
Found APPUART 3.1.0
brd: module loaded
loop: module loaded
Loading iSCSI transport class v2.0-870.
i.MX GPMI NFC
NFC: Version 1, 8-chip GPMI and BCH
Boot ROM: Version 1, Single-chip boot area, block mark swapping supported
Scanning for NAND Flash chips...
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron NAND 256MiB 3,3V 8-bit)
-----------------------------
NAND Flash Device Information
-----------------------------
Manufacturer : Micron (0x2c)
Device Code : 0xda
Cell Technology : SLC
Chip Size : 256 MiB
Pages per Block : 64
Page Geometry : 2048+64
ECC Strength : 4 bits
ECC Size : 512 B
Data Setup Time : 20 ns
Data Hold Time : 10 ns
Address Setup Time: 10 ns
GPMI Sample Delay : 6 ns
tREA : Unknown
tRLOH : Unknown
tRHOH : Unknown
Description : MT29F2G08
-----------------
Physical Geometry
-----------------
Chip Count : 1
Page Data Size in Bytes: 2048 (0x800)
Page OOB Size in Bytes : 64
Block Size in Bytes : 131072 (0x20000)
Block Size in Pages : 64 (0x40)
Chip Size in Bytes : 268435456 (0x10000000)
Chip Size in Pages : 131072 (0x20000)
Chip Size in Blocks : 2048 (0x800)
Medium Size in Bytes : 268435456 (0x10000000)
------------
NFC Geometry
------------
ECC Algorithm : BCH
ECC Strength : 8
Page Size in Bytes : 2112
Metadata Size in Bytes : 10
ECC Chunk Size in Bytes: 512
ECC Chunk Count : 4
Payload Size in Bytes : 2048
Auxiliary Size in Bytes: 16
Auxiliary Status Offset: 12
Block Mark Byte Offset : 1999
Block Mark Bit Offset : 0
-----------------
Boot ROM Geometry
-----------------
Boot Area Count : 1
Boot Area Size in Bytes : 20971520 (0x1400000)
Stride Size in Pages : 64
Search Area Stride Exponent: 2
Scanning device for bad blocks
Bad eraseblock 100 at 0x000000c80000
Bad eraseblock 101 at 0x000000ca0000
Boot area protection is enabled.
Creating 2 MTD partitions on "gpmi-nfc-main":
0x000000000000-0x000001400000 : "gpmi-nfc-0-boot"
0x000001400000-0x000010000000 : "gpmi-nfc-general-use"
ARC USBOTG Device Controller driver (1 August 2005)
check_parameters:UTP settings are in place now, overriding defaults
g_file_storage gadget: File-backed Storage Gadget, version: 20 November 2008
g_file_storage gadget: Number of LUNs=1
fsl-usb2-udc: bind to driver g_file_storage
mice: PS/2 mouse device common for all mice
input: mxs-kbd as /devices/platform/mxs-kbd.0/input/input0
input: MXS touchscreen as /devices/virtual/input/input1
MXS RTC driver v1.0 hardware v2.3.0
mxs-rtc mxs-rtc.0: rtc core: registered mxs-rtc as rtc0
mxs-mmc: MXS SSP Controller MMC Interface driver
__mxs_reset_block(f0010000): timeout when resetting
mxs-mmc mxs-mmc.0: mmc0: MXS SSP MMC DMAIRQ 82 ERRIRQ 96
mxs-rtc mxs-rtc.0: setting system clock to 1970-01-01 00:00:03 UTC (3)
RAMDISK: gzip image found at block 0
uncompression error
VFS: Cannot open root device "(null)" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00 20480 mtdblock0 (driver?)
1f01 241664 mtdblock1 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Backtrace:
[<c002b724>] (dump_backtrace+0x0/0x114) from [<c027e634>] (dump_stack+0x18/0x1c)
r7:c0021a14 r6:00008000 r5:c7c14000 r4:c0325eb8
[<c027e61c>] (dump_stack+0x0/0x1c) from [<c027e698>] (panic+0x60/0xdc)
[<c027e638>] (panic+0x0/0xdc) from [<c0008f9c>] (mount_block_root+0x25c/0x2ac)
r3:00000000 r2:00000000 r1:c7c27f60 r0:c02ccb85
[<c0008d40>] (mount_block_root+0x0/0x2ac) from [<c0009040>] (mount_root+0x54/0x6c)
[<c0008fec>] (mount_root+0x0/0x6c) from [<c00091c4>] (prepare_namespace+0x16c/0x1c4)
r5:c0020940 r4:c0325280
[<c0009058>] (prepare_namespace+0x0/0x1c4) from [<c00084e8>] (kernel_init+0x118/0x158)
r5:c0020940 r4:c0325040
[<c00083d0>] (kernel_init+0x0/0x158) from [<c0044bf8>] (do_exit+0x0/0x5f0)
r5:c00083d0 r4:00000000
Could some one help me with that ?
Thanks
Hi Hong
had you applied patch below ?
L2.6.35_1.1.1_UPDATER_PATCH_UP : The purpose of this patch release is Fix the
updater.sb boot issue in the i.MX28 Linux BSP L2.6.35_1.1.0 release..
Best regards
igor
Hi, Igor,
Thank you very much for the response.
I did apply the patch into UPDATER.SB generation. Before that, the same issue happened during I flashed NAND flash with Mfgtools. However, after applying this patch, I can flash NAND successfully. But it happens again when I set iMX28 EVK mode switch to 0100(boot from NAND) and try to boot to busybox linux.
Do you have a step by step description of how to generate UPDATER.SB file and flash it into NAND flash?
Best Regards
Hong
Hi, Igor,
Yes, I followed this instructions before. After add initramfs.cpio.gz file into UPDATER.SB, flashing to NAND with Mfgtools is successful too. But when booting to linux, “UTP: Waiting for device to appear” error appeared and stopped there. See below for console log.
HTLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLC
PowerPrep start initialize power...
Battery Voltage = 4.24V
boot from battery. 5v input not detected
LLLCAug 16 201420:58:12
FRAC 0x92925552
memory type is DDR2
Wait for ddr ready 1power 0x00820710
Frac 0x92925552
start change cpu freq
hbus 0x00000003
cpu 0x00010001
LLLLLLLFLCLLJUncompressing Linux... done, booting the kernel.
Linux version 2.6.35.3-670-g914558e (hong@hong-desktop) (gcc version 4.4.4 (4.4.4_09.06.2010) ) #5 Wed Aug 20 11:49:50 EDT 2014
CPU: ARM926EJ-S revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Freescale MX28EVK board
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: -e console=ttyAM0,115200 rdinit=/linuxrc rw gpmi
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 116112k/116112k available, 14960k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xfde00000 - 0xffe00000 ( 32 MB)
vmalloc : 0xc8800000 - 0xf0000000 ( 632 MB)
lowmem : 0xc0000000 - 0xc8000000 ( 128 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.init : 0xc0008000 - 0xc043e000 (4312 kB)
.text : 0xc043e000 - 0xc071d000 (2940 kB)
.data : 0xc071e000 - 0xc073cfc0 ( 124 kB)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
RCU-based detection of stalled CPUs is disabled.
Verbose stalled-CPUs detection is disabled.
NR_IRQS:288
Console: colour dummy device 80x30
console enabled
Calibrating delay loop... 226.09 BogoMIPS (lpj=1130496)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
regulator: core version 0.5
NET: Registered protocol family 16
regulator: vddd: 800 <--> 1575 mV at 1500 mV fast normal
regulator: vdddbo: 800 <--> 1575 mV fast normal
regulator: vdda: 1500 <--> 2275 mV at 1800 mV fast normal
vddio = 3380000, val=10
regulator: vddio: 2880 <--> 3680 mV at 3380 mV fast normal
regulator: overall_current: fast normal
regulator: vbus5v:
regulator: mxs-duart-1: fast normal
regulator: mxs-bl-1: fast normal
regulator: mxs-i2c-1: fast normal
regulator: mmc_ssp-1: fast normal
regulator: mmc_ssp-2: fast normal
regulator: charger-1: fast normal
regulator: power-test-1: fast normal
regulator: cpufreq-1: fast normal
i.MX IRAM pool: 124 KB@0xc8820000
Initializing GPMI pins
usb DR wakeup device is registered
IMX usb wakeup probe
audit: cannot initialize inotify handle
bio: create slab <bio-0> at 0
SCSI subsystem initialized
Switching to clocksource mxs clock source
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (junk in compressed archive); looks like an initrd
Freeing initrd memory: 6144K
Bus freq driver module loaded
mxs_cpu_init: cpufreq init finished
audit: initializing netlink socket (disabled)
type=2000 audit(3.080:1): initialized
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 238
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
io scheduler noop registered (default)
Console: switching to colour frame buffer device 100x30
mxs-duart.0: ttyAM0 at MMIO 0x80074000 (irq = 47) is a DebugUART
mxs-auart.0: ttySP0 at MMIO 0x8006a000 (irq = 112) is a mxs-auart.0
Found APPUART 3.1.0
mxs-auart.1: ttySP1 at MMIO 0x8006c000 (irq = 113) is a mxs-auart.1
Found APPUART 3.1.0
mxs-auart.2: ttySP2 at MMIO 0x8006e000 (irq = 114) is a mxs-auart.2
Found APPUART 3.1.0
mxs-auart.3: ttySP3 at MMIO 0x80070000 (irq = 115) is a mxs-auart.3
Found APPUART 3.1.0
mxs-auart.4: ttySP4 at MMIO 0x80072000 (irq = 116) is a mxs-auart.4
Found APPUART 3.1.0
brd: module loaded
loop: module loaded
Loading iSCSI transport class v2.0-870.
i.MX GPMI NFC
NFC: Version 1, 8-chip GPMI and BCH
Boot ROM: Version 1, Single-chip boot area, block mark swapping supported
Scanning for NAND Flash chips...
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron NAND 256MiB 3,3V 8-bit)
what filesystem did you use for nand: jffs2 or ubifs ?
~igor
Hi Hong
one needs to use ubifs, please look below
https://community.freescale.com/thread/242215
http://www.mxic.com.tw/Lists/MoreSoftware/Attachments/52/imx28evk_nand_flash_build.pdf
Best regards
igor
Hi, Igor,
Thank you very much for the info.
I am following mxic AN to generate UBIFS. However, it fails at first time booting from SD card. What I did was to build updater.sb, updater_ivt.sb, imx28_linux.sb, imx28_ivt_linux.sb, imx28_uboot.sb, imx28_ivt_uboot.sb, rootfs.tar.bz2 with LTIB, then burned them into SD card with Mfgtools, selecting SD(with uboot). Burning is successful and NAND flash is identified too. But, when I tried to boot EVK from SD card, it failed. See attached for console display dump. XML script file is also attached. It's strange that NAND flash is not identified any more.
I tried to use jffs2, but not successful too. Do you have an idea about it ?
Best Regards
Hong
Hi Hong
jffs2 is not supported by Freescale for i.MX28.
Regarding SD boot, first probably you may wish to test it
Best regards
igor
Hi, Igor,
L2.6.35_1.1.0_DEMO_IMAGE <http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCIMX28EVKJ&fpsp=1&tab=Design_Tools_Tab> is able to boot to linux. I also tried Mfgtools original files(updater.sb, updater_ivt.sb, imx28_linux.sb, imx28_ivt_linux.sb, imx28_uboot.sb, imx28_ivt_uboot.sb, rootfs.tar.bz2), it works too. However, both are not able to identify NAND since there is no NAND driver. After re-configuring by using LTIB, previous issue appeared again. Later on, I’ll tried to build kernel by using original source code(L2.6.35_1.1.0_ER_SOURCE) without re-configuring to see what’s going on.
Best Regards
Hong
Hi Hong
you can try to build mfgtools files without any modifications,
just to test if procedure is correct
MX28: Build Manufacturing Firmware -blog archive
Best regards
igor
Hi, Igor,
I agree with you. Below is what I did to build mfgtools files from a fresh L2.6.35_1.1.0 source code without modification. The result is still fail.
1. Configure the firmware build profile
$ ./ltib -selectype
Choose the following:
--- Choose the platform type
Selection (imx28) --->
--- Choose the packages profile
Selection (mfg firmware profile) --->
2. Toolschain selection
Toolchain (ARM, gcc-4.4.4, multilib, neon optimized)
3. Check -- Always rebuild the kernel
4. Build i.MX28 Linux L2.6.35_1.1.0 BSP by using below command
./ltib
5. In the ~/ltib directory, extract the boot stream source file by running below command
./ltib -p boot_stream.spec -m prep
6. Copy below patch file to ~/ltib/rpm/imx-bootlets-src-2.6.35.3-1.1.0 folder
0001-ENGR00243127-MX28-mfg-updater.sb-can-not-run-success.patch
7. Run below command to apply the patch.
patch -p1 -i 0001-ENGR00243127-MX28-mfg-updater.sb-can-not-run-success.patch
8. In the ~/ltib directory, run below command.
./ltib -p boot_stream.spec -f
and then I generate updater.sb, updater_ivt.sb, imx28_ivt_linux.sb, imx28_ivt_uboot.sb, imx28_linux.sb, imx28_uboot.sb, uImage, zImage.
9. Generate rootfs.tar.bz2 from ltib/rootfs
10. Use updater.sb, updater_ivt.sb to replace the files in Mfgtools Profiles\MX28 Linux Update\OS Firmware directory, and imx28_ivt_linux.sb, imx28_ivt_uboot.sb, imx28_linux.sb, imx28_uboot.sb, uImage, zImage, rootfs.tar.bz2 to replace files in Mfgtools Profiles\MX28 Linux Update\OS Firmware\files directory. Burn SD card. Programming is successful.
11. Change EVK boot mode to SD card, and boot EVK. I encountered the same issue(see attached log file).
Something should be wrong here. Could you please check and let me know?
Thanks
Hong
will it boot OK with untouched MFG Tools ?
~igor
Hi Hong
probably you may try to rebuild whole image from scratch:
./ltib -m distclean
Also do you have another versions ltib/ or yocto bullds installed
on the same machine ? It is better to have one version, since different
versions may invoke wrong compilations.
~igor
Hi, Igor,
I think it’s UBIFS. Below are settings I used for LTIB build.
In ./ltib –m config, settings are as below.
->Target Image Generation
->Option
->Choose your root file system image type
-> Target Image
-> UBIFS
In kernel configuration, settings are as below
"Device Drivers"
-> "Memory Technology Device (MTD) support"
-> "UBI - Unsorted block images",
"File systems"
-> "Miscellaneous filesystems"
-> "UBIFS file system support"
"File systems"
-> " Second extended fs support "
Regards
Hong