|
LPC32xx ошибки при старте Linux, jffs2_scan_inode_node(): CRC failed on node ... |
|
|
|
Sep 17 2010, 08:25
|

Участник

Группа: Участник
Сообщений: 67
Регистрация: 8-05-09
Из: Томск
Пользователь №: 48 809

|
Плата EA3250. Скачал LTIB, собрал u-boot.bin, rootfs.jffs2, uImage. Залил все в отладочную плату, поменял какие нужно параметры в u-boot, чтобы он все правильно грузил. Все запустилось как надо, но при повторном запуске появились ошибки CRC (при первом запуске ошибок не было). Повторно перешиваю rootfs.jffs2 в NAND - опять ошибок нет. Перегружаю - снова ошибки CRC. Лог загрузки с ошибками: CODE U-Boot 2009.03-rc1 (Sep 09 2010 - 16:43:56)
DRAM: 64 MB NAND: 128 MiB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0
Loading from NAND 128MiB 3,3V 8-bit, offset 0xfe0000 Image Name: Linux-2.6.34 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1880384 Bytes = 1.8 MB Load Address: 80008000 Entry Point: 80008000 ## Booting kernel from Legacy Image at 80100000 ... Image Name: Linux-2.6.34 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1880384 Bytes = 1.8 MB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel. Linux version 2.6.34 (user@user-desktop) (gcc version 4.1.2) #2 PREEMPT Tue Sep 14 09:42:05 NOVST 2010 CPU: ARM926EJ-S [41069264] revision 4 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: Embedded Artists LPC3250 OEM board with the LPC3250 Microcontroller Memory policy: ECC disabled, Data cache writeback Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 Kernel command line: root=/dev/mtdblock4 rw rootfstype=jffs2 ip=192.168.5.234 ethaddr=00:1a:f1:00:00:00 console=ttyS0,115200n8 PID hash table entries: 256 (order: -2, 1024 bytes) Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Memory: 64MB = 64MB total Memory: 60988k/60988k available, 4548k reserved, 0K highmem Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) DMA : 0xffc00000 - 0xffe00000 ( 2 MB) vmalloc : 0xc4800000 - 0xf0000000 ( 696 MB) lowmem : 0xc0000000 - 0xc4000000 ( 64 MB) modules : 0xbf000000 - 0xc0000000 ( 16 MB) .init : 0xc0008000 - 0xc0028000 ( 128 kB) .text : 0xc0028000 - 0xc039b000 (3532 kB) .data : 0xc039c000 - 0xc03c0ee0 ( 148 kB) Hierarchical RCU implementation. NR_IRQS:96 Console: colour dummy device 80x30 Calibrating delay loop... 103.83 BogoMIPS (lpj=519168) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok NET: Registered protocol family 16 LPC32XX unique ID: 00000000000000000000000000000000 bio: create slab <bio-0> at 0 SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb Advanced Linux Sound Architecture Driver Version 1.0.22.1. Switching to clocksource lpc32xx_clksrc NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 2048 (order: 2, 16384 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) TCP reno registered UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. NetWinder Floating Point Emulator V0.97 (double precision) JFFS2 version 2.2. (NAND) В© 2001-2006 Red Hat, Inc. msgmni has been set to 119 alg: No test for stdrng (krng) io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0x40090000 (irq = 9) is a 16550A console [ttyS0] enabled brd: module loaded loop: module loaded NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit) Scanning device for bad blocks Bad eraseblock 0 at 0x000000000000 Bad eraseblock 100 at 0x000000c80000 Bad eraseblock 934 at 0x0000074c0000 Creating 5 MTD partitions on "lpc32xx_nand": 0x000000000000-0x000000320000 : "ea3250-boot" 0x000000320000-0x000000fa0000 : "ea3250-uboot" 0x000000fa0000-0x000000fe0000 : "ea3250-ubt-prms" 0x000000fe0000-0x0000013e0000 : "ea3250-kernel" 0x0000013e0000-0x000008000000 : "ea3250-jffs2" lpc_mii_bus: probed eth0: using RMII interface eth0: LPC mac at 0x31060000 irq 29 eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:01, irq=-1) usbmon: debugfs is not available ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver ISP1301 Vendor ID : 0x04cc ISP1301 Product ID : 0x1301 ISP1301 Version ID : 0x0210 usb-ohci usb-ohci: at 0xf3120000, irq 0 usb-ohci usb-ohci: pnx4008 OHCI usb-ohci usb-ohci: new USB bus registered, assigned bus number 1 usb-ohci usb-ohci: irq 59, io mem 0xf3120000 usb usb1: New USB device found, idVendor=1d6b, idProduct=0001 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: pnx4008 OHCI usb usb1: Manufacturer: Linux 2.6.34 ohci_hcd usb usb1: SerialNumber: usb-ohci hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. usbcore: registered new interface driver libusual mice: PS/2 mouse device common for all mice rtc-lpc32xx rtc-lpc32xx: rtc core: registered rtc-lpc32xx as rtc0 i2c /dev entries driver PNX4008-WDT: PNX4008 Watchdog Timer: heartbeat 19 sec cpuidle: using governor ladder cpuidle: using governor menu No device for DAI lpc3xxx-i2s0 No device for DAI lpc3xxx-i2s1 ALSA device list: No soundcards found. TCP cubic registered NET: Registered protocol family 17 ssp-pl022 dev:ssp0: ARM PL022 driver, device ID: 0x00041022 pl022: mapped registers from 0x20084000 to c4882000 ads7846 spi0.0: touchscreen, irq 64 input: ADS7846 Touchscreen as /class/input/input0 CLCD: Embedded Artists 3.2 inch LCD hardware, QVGA portrait display Console: switching to colour frame buffer device 30x40 VFP support v0.3: implementor 41 architecture 1 part 10 variant 9 rev 1 rtc-lpc32xx rtc-lpc32xx: setting system clock to 1970-01-01 15:47:28 UTC (56848) usb 1-1: new full speed USB device using usb-ohci and address 2 usb 1-1: New USB device found, idVendor=0951, idProduct=1614 usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-1: Product: DataTraveler 400 usb 1-1: Manufacturer: Kingston usb 1-1: SerialNumber: 200706200000000059188553 scsi0 : usb-storage 1-1:1.0 IP-Config: Guessing netmask 255.255.255.0 IP-Config: Complete: device=eth0, addr=192.168.5.234, mask=255.255.255.0, gw=255.255.255.255, host=192.168.5.234, domain=, nis-domain=(none), bootserver=255.255.255.255, rootserver=255.255.255.255, rootpath= scsi 0:0:0:0: Direct-Access Kingston DataTraveler 400 1.00 PQ: 0 ANSI: 2 sd 0:0:0:0: [sda] 3915776 512-byte logical blocks: (2.00 GB/1.86 GiB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Assuming drive cache: write through sd 0:0:0:0: [sda] Assuming drive cache: write through sda: sda1 sd 0:0:0:0: [sda] Assuming drive cache: write through sd 0:0:0:0: [sda] Attached SCSI removable disk mtd->read(0x1ef34 bytes from 0x2e10cc) returned ECC error mtd->read(0x1830c bytes from 0x2e7cf4) returned ECC error Empty flash at 0x002e7cf0 ends at 0x002e8000 jffs2_scan_inode_node(): CRC failed on node at 0x002e80f4: Read 0xc9241539, calculated 0xfa92ba2f VFS: Mounted root (jffs2 filesystem) on device 31:4. Freeing init memory: 128K mtd->read(0x784 bytes from 0x2ea07c) returned ECC error mtd->read(0x784 bytes from 0x2e807c) returned ECC error init started: BusyBox v1.11.2 (mtd->read(0x784 bytes from 0x2ea07c) returned ECC error ) mtd->read(0x784 bytes from 0x2e807c) returned ECC error starting pid 379, tty '': '/etc/rc.d/rcS' Mounting /proc and /sys Setting the hostname to nxp Mounting filesystems mtd->read(0x7d4 bytes from 0x2ea02c) returned ECC error mount: mounting usbfs on /proc/bus/usb failed: No such file or directory Starting syslogd and klogd Running sysctl Setting up networking on loopback device: Setting up networking on eth0: /etc/rc.d/init.d/network: line 162: udhcpc: not found Starting inetd: Starting the boa webserver: mtd->read(0x714 bytes from 0x2ea0ec) returned ECC error mtd->read(0x714 bytes from 0x2e98ec) returned ECC error mtd->read(0x714 bytes from 0x2e90ec) returned ECC error mtd->read(0x714 bytes from 0x2e88ec) returned ECC error mtd->read(0x44 bytes from 0x2ea0ec) returned ECC error mtd->read(0x758 bytes from 0x2ea0a8) returned ECC error mtd->read(0x758 bytes from 0x2e98a8) returned ECC error mtd->read(0x758 bytes from 0x2e90a8) returned ECC error mtd->read(0x758 bytes from 0x2e88a8) returned ECC error mtd->read(0x750 bytes from 0x2e80b0) returned ECC error mtd->read(0x44 bytes from 0x2ea0a8) returned ECC error starting pid 435, tty '': '-/bin/sh' [root@nxp /]# Как побороть эти ошибки CRC?
Сообщение отредактировал alvy - Sep 17 2010, 08:28
|
|
|
|
|
Sep 17 2010, 09:52
|

Участник

Группа: Участник
Сообщений: 67
Регистрация: 8-05-09
Из: Томск
Пользователь №: 48 809

|
Файлы rootfs.jffs2 и uImage скидываю в корень USB-флешки (FAT32), далее в u-boot: Код run update_fs Получаю в логе: CODE uboot> run update_fs (Re)start USB... USB: ISP1301 Vendor ID : 0x04cc ISP1301 Product ID : 0x1301 ISP1301 Version ID : 0x0210 scanning bus for devices... 2 USB Device(s) found scanning bus for storage devices... 1 Storage Device(s) found reading rootfs.jffs2 . . ................................................................................ ................................................................................ . ................................................................................ . ................................................................................ . ................................................................................ . ................................................................................ . ......................... .
5242880 bytes read stopping USB..
NAND erase: device 0 offset 0x13e0000, size 0x500000 Erasing at 0x18c0000 -- 100% complete. OK
NAND write: device 0 offset 0x13e0000, size 0x500000 5242880 bytes written: OK uboot> Далее run mtdboot (ядро считывается с USB-флешки). Ошибок никаких не наблюдаю. После перезагрузки - появляются.
Сообщение отредактировал alvy - Sep 17 2010, 09:54
|
|
|
|
|
Sep 17 2010, 10:19
|

Участник

Группа: Участник
Сообщений: 67
Регистрация: 8-05-09
Из: Томск
Пользователь №: 48 809

|
Цитата(sasamy @ Sep 17 2010, 17:15)  Не пробовали полностью затереть nand из u-boot ? правда это может оказаться чревато плохими последствиями.. Пока еще не пробовал - там расположен в частности загрузчик S1L, сейчас только читаю как его можно прошить после стирания NAND
|
|
|
|
|
Sep 18 2010, 09:55
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 8-01-09
Пользователь №: 43 014

|
Пожалуйста проверьте, если завершать работу Linux правильно (shutdown -h 0 или reboot), появляются ли данные ошибки?
|
|
|
|
|
Sep 20 2010, 03:10
|

Участник

Группа: Участник
Сообщений: 67
Регистрация: 8-05-09
Из: Томск
Пользователь №: 48 809

|
Цитата(ra9ftm @ Sep 18 2010, 16:55)  Пожалуйста проверьте, если завершать работу Linux правильно (shutdown -h 0 или reboot), появляются ли данные ошибки? Про shutdown пишет "-/bin/sh: shutdown: not found", а после reboot ошибки также появляются (причем с каждым разом все больше).
|
|
|
|
|
Sep 20 2010, 04:49
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 8-01-09
Пользователь №: 43 014

|
У меня на phy3250 подобное. При первом пуске все нормально, потом есть ошибки. Но если нормально завершить работу после первого пуска, такого не наблюдается. Вобщем не известно пока как с этим бороться. В uboot при загрузке ставлю quite и всё работает. Цитата(alvy @ Sep 20 2010, 06:10)  Про shutdown пишет "-/bin/sh: shutdown: not found", а после reboot ошибки также появляются (причем с каждым разом все больше).
|
|
|
|
|
Sep 20 2010, 05:25
|

Участник

Группа: Участник
Сообщений: 67
Регистрация: 8-05-09
Из: Томск
Пользователь №: 48 809

|
Цитата(ra9ftm @ Sep 20 2010, 11:49)  В uboot при загрузке ставлю quite и всё работает. За что этот ключ отвечает? За вывод в терминал?
|
|
|
|
|
Sep 20 2010, 13:13
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 8-01-09
Пользователь №: 43 014

|
Да, вывод данных при загрузке. Загружается значительно быстрее. Ошибки можно посмотреть после загрузки командой dmesg.
|
|
|
|
|
Sep 22 2010, 14:19
|

Профессионал
    
Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661

|
Это у Вас сильно напоминает знаете что, в начале она запустилась и всё нормально CRC везде та, а в процессе работы файловая система перезаписывается, и при перезаписи пишется не тот CRC, это может быть когда под файловой системой лежит какбы не та флэш, те у Вас jffs2, под ним лежит MTD, а там есть файлец которые непосредственно работает с флэшью, и вот это файлец задаёт какими кусками и как можно затирать флэш, её перезаписывать, её читать. У Вас нанд флэш я не очень помню как там сделано, а на параллельной сделано так.
Сообщение отредактировал dch - Sep 22 2010, 14:22
|
|
|
|
|
Sep 22 2010, 14:41
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(dch @ Sep 22 2010, 17:19)  Это у Вас сильно напоминает знаете что, в начале она запустилась и всё нормально CRC везде та, а в процессе работы файловая система перезаписывается, и при перезаписи пишется не тот CRC, это может быть когда под файловой системой лежит какбы не та флэш, те у Вас jffs2, под ним лежит MTD, а там есть файлец которые непосредственно работает с флэшью, и вот это файлец задаёт какими кусками и как можно затирать флэш, её перезаписывать, её читать. У Вас нанд флэш я не очень помню как там сделано, а на параллельной сделано так. Как минумум у LPC3250 есть два разных контроллера NAND : SLC и MLC. При этом, как ни странно, их ROM загрузчик для SLC NAND использует MLC контроллер и это работает. А у этих контроллеров принципиально разные подходы к расчету ECC и его размещению непосредственно в блоке. Т.е. записать можно одним, а прочитать другим, но ECC будет естественно с ошибкой и данные будут повреждены даже если отключить контроль ECC при чтении.
|
|
|
|
|
Sep 28 2010, 02:58
|

Участник

Группа: Участник
Сообщений: 67
Регистрация: 8-05-09
Из: Томск
Пользователь №: 48 809

|
Цитата(ra9ftm @ Sep 24 2010, 11:00)  такого рода ошибки по моему мнению могли возникнуть еще после выпуска патча ядра v1.02.
Там был произведен переход на работу с NAND через DMA и использование ECC на "железном" (hardware) уровне. Я постараюсь это проверить на phytec 3250. Есть какие-нибудь успехи? У меня до выходных времени не будет проверить - пытаюсь telnet запустить, а он все "permission denied"
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|