FAQ : NANDフラッシュモジュールを接続しないと、起動しません

対象製品: Armadillo-240Armadillo-230Armadillo-220

Armadillo-2x0シリーズの古いカーネルイメージ[1]では、 NANDモジュールの誤認識により、正常に起動できない場合があります[2]

この現象を回避するには最新のカーネルイメージを使用するか、下記に示す内容(NANDドライバを無効にする)のようにコンフィグレーションし直す必要があります。


Device Drivers  ---> 
    Memory Technology Devices (MTD)  ---> 
        NAND Flash Device Drivers  ---> 
            < > NAND Device Support 

NANDモジュールを使用しないときは、必ずNAND用デバイスドライバを無効にしてください。


[1] 誤認識をする可能性のあるカーネルイメージ

Target 該当するイメージバージョン
Armadillo-220 v1.06以前
Armadillo-230 v1.04以前
Armadillo-240 v1.05以前

[2] 誤認識時のカーネル起動ログ


Uncompressing  kernel.................................................................................done.
Uncompressing ramdisk.............................................................................................done.
Doing console=ttyAM0,115200
Doing mtdparts=armadillo2x0-nor:0x10000(bootloader)ro,0x170000(kernel),0x670000(userland),-(config)
Linux version 2.6.12.3-a9-11 (atmark@atde) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 Fri Oct 19 01:29:32 JST 2007
CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
Machine: Armadillo-230
ATAG_INITRD is deprecated; please update your bootloader.
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists
Kernel command line: console=ttyAM0,115200 mtdparts=armadillo2x0-nor:0x10000(bootloader)ro,0x170000(kernel),0x670000(userland),-(config)
PID hash table entries: 256 (order: 8, 4096 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 8MB 8MB 16MB = 32MB total
Memory: 21404KB available (2162K code, 506K data, 92K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd
Freeing initrd memory: 8192K
NET: Registered protocol family 16
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
Initializing Cryptographic API
gpio: Armadillo-2x0 GPIO driver, (C) 2005-2006 Atmark Techno, Inc.
led: Armadillo-2x0 LED driver, (C) 2005-2006 Atmark Techno, Inc.
ttyAM0 at MMIO 0x808c0000 (irq = 52) is a EP93XX
ttyAM1 at MMIO 0x808d0000 (irq = 54) is a EP93XX
ttyAM2 at MMIO 0x808e0000 (irq = 55) is a EP93XX
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
loop: loaded (max 8 devices)
i2c /dev entries driver
i2c-armadillo9: i2c Armadillo-9 driver, (C) 2004-2005 Atmark Techno, Inc.
i2c-at24cxx: i2c at24cxx eeprom driver, (C) 2003-2005 Atmark Techno, Inc.
eth1: LAN9115 (rev 18153473) at fe700000 IRQ 32
armadillo2x0-nor: Found 1 x16 devices at 0x0 in 16-bit bank
 Amd/Fujitsu Extended Query Table at 0x0040
armadillo2x0-nor: CFI does not contain boot bank location. Assuming top.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
4 cmdlinepart partitions found on MTD device armadillo2x0-nor
parse_mtd_partitions:4
Creating 4 MTD partitions on "armadillo2x0-nor":
0x00000000-0x00010000 : "bootloader"
0x00010000-0x00180000 : "kernel"
0x00180000-0x007f0000 : "userland"
0x007f0000-0x00800000 : "config"
NAND device: Manufacturer ID: 0xd3, Chip ID: 0xd3 (Unknown NAND 1GiB 3,3V 8-bit)
No oob scheme defined for oobsize 256
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0014000
[00000000] *pgd=00000000
Internal error: Oops: 805 [#1]
Modules linked in:
CPU: 0
PC is at nand_scan+0x740/0xb34
LR is at 0x1
pc : []    lr : [<00000001>]    Not tainted
sp : c02e1f80  ip : 00000000  fp : c02e1fb0
r10: 0000002d  r9 : 000000d3  r8 : 000000d3
r7 : c5344400  r6 : c5344568  r5 : c026b678  r4 : 00000001
r3 : 00000000  r2 : 00000000  r1 : 00000bd8  r0 : 0000002c
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  Segment kernel
Control: C000317F  Table: C0014000  DAC: 00000017
Process swapper (pid: 1, stack limit = 0xc02e0248)
Stack: (0xc02e1f80 to 0xc02e2000)
1f80: c0235e1c 00000001 c5344568 c5344400 c6052000 c02c1274 00000000 00000000
1fa0: 00000000 c02e1fd4 c02e1fb4 c0027f34 c014a604 00000000 c002cff4 00000000
1fc0: c02e0000 c02e0000 c02e1ff4 c02e1fd8 c002f0c0 c0027e2c 00000000 00000000
1fe0: 00000000 00000000 00000000 c02e1ff8 c00493c8 c002f038 c02e1ff8 c02e1ff8
Backtrace:
[] (nand_scan+0x0/0xb34) from [] (armadillo2x0_init+0x118/0x1dc)
[] (armadillo2x0_init+0x0/0x1dc) from [] (init+0x98/0x1d8)
 r7 = C02E0000  r6 = C02E0000  r5 = 00000000  r4 = C002CFF4
[] (init+0x0/0x1d8) from [] (do_exit+0x0/0xa9c)
 r7 = 00000000  r6 = 00000000  r5 = 00000000  r4 = 00000000
Code: 0a000003 e59f03a8 ebfbf18a e3a03000 (e5833000)
 <0>Kernel panic - not syncing: Attempted to kill init!