реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> LPC32xx ошибки при старте Linux, jffs2_scan_inode_node(): CRC failed on node ...
alvy
сообщение Sep 17 2010, 08:25
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 17 2010, 09:44
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(alvy @ Sep 17 2010, 12:25) *
Повторно перешиваю rootfs.jffs2 в NAND - опять ошибок нет. Перегружаю - снова ошибки CRC.


А как заливаете ? Тут похоже ошибка в драйвере nand либо шьете чем-то не тем.
Go to the top of the page
 
+Quote Post
alvy
сообщение Sep 17 2010, 09:52
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 17 2010, 10:15
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(alvy @ Sep 17 2010, 13:52) *
далее в u-boot:


Если через u-boot то нормально. Насколько криво портирован Linux на этот контроллер я не знаю - не приходилось работать с ним, очень похоже на ошибки драйвера при работе с ECC. Не пробовали полностью затереть nand из u-boot ? правда это может оказаться чревато плохими последствиями..
Go to the top of the page
 
+Quote Post
alvy
сообщение Sep 17 2010, 10:19
Сообщение #5


Участник
*

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



Цитата(sasamy @ Sep 17 2010, 17:15) *
Не пробовали полностью затереть nand из u-boot ? правда это может оказаться чревато плохими последствиями..
Пока еще не пробовал - там расположен в частности загрузчик S1L, сейчас только читаю как его можно прошить после стирания NAND
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 17 2010, 10:33
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(alvy @ Sep 17 2010, 14:19) *
Пока еще не пробовал - там расположен в частности загрузчик S1L, сейчас только читаю как его можно прошить после стирания NAND


С затиранием лучше не спешить конешно, я бы посмотрел драйвер nand - можно ли там отладочную информацию включить - в частности удостовериться что он тайминги для этого слмсунга правильно определяет ну или вручную выставить железобетонные, пусть тормозит пока но главное найти причину.

Сообщение отредактировал sasamy - Sep 17 2010, 10:38
Go to the top of the page
 
+Quote Post
ra9ftm
сообщение Sep 18 2010, 09:55
Сообщение #7


Участник
*

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



Пожалуйста проверьте, если завершать работу Linux правильно (shutdown -h 0 или reboot), появляются ли данные ошибки?
Go to the top of the page
 
+Quote Post
alvy
сообщение Sep 20 2010, 03:10
Сообщение #8


Участник
*

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



Цитата(ra9ftm @ Sep 18 2010, 16:55) *
Пожалуйста проверьте, если завершать работу Linux правильно (shutdown -h 0 или reboot), появляются ли данные ошибки?
Про shutdown пишет "-/bin/sh: shutdown: not found", а после reboot ошибки также появляются (причем с каждым разом все больше).
Go to the top of the page
 
+Quote Post
ra9ftm
сообщение Sep 20 2010, 04:49
Сообщение #9


Участник
*

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



У меня на phy3250 подобное. При первом пуске все нормально, потом есть ошибки. Но если нормально завершить работу после первого пуска, такого не наблюдается.
Вобщем не известно пока как с этим бороться. В uboot при загрузке ставлю quite и всё работает.

Цитата(alvy @ Sep 20 2010, 06:10) *
Про shutdown пишет "-/bin/sh: shutdown: not found", а после reboot ошибки также появляются (причем с каждым разом все больше).

Go to the top of the page
 
+Quote Post
alvy
сообщение Sep 20 2010, 05:25
Сообщение #10


Участник
*

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



Цитата(ra9ftm @ Sep 20 2010, 11:49) *
В uboot при загрузке ставлю quite и всё работает.
За что этот ключ отвечает? За вывод в терминал?
Go to the top of the page
 
+Quote Post
ra9ftm
сообщение Sep 20 2010, 13:13
Сообщение #11


Участник
*

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



Да, вывод данных при загрузке. Загружается значительно быстрее. Ошибки можно посмотреть после загрузки командой dmesg.
Go to the top of the page
 
+Quote Post
dch
сообщение Sep 22 2010, 14:19
Сообщение #12


Профессионал
*****

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



Это у Вас сильно напоминает знаете что, в начале она запустилась и всё нормально CRC везде та, а в процессе работы файловая система перезаписывается, и при перезаписи пишется не тот CRC, это может быть когда под файловой системой лежит какбы не та флэш, те у Вас jffs2, под ним лежит MTD, а там есть файлец которые непосредственно работает с флэшью, и вот это файлец задаёт какими кусками и как можно затирать флэш, её перезаписывать, её читать. У Вас нанд флэш я не очень помню как там сделано, а на параллельной сделано так.

Сообщение отредактировал dch - Sep 22 2010, 14:22
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 22 2010, 14:41
Сообщение #13


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 при чтении.
Go to the top of the page
 
+Quote Post
ra9ftm
сообщение Sep 24 2010, 04:00
Сообщение #14


Участник
*

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



такого рода ошибки по моему мнению могли возникнуть еще после выпуска патча ядра v1.02.
Цитата
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

Там был произведен переход на работу с NAND через DMA и использование ECC на "железном" (hardware) уровне. Я постараюсь это проверить на phytec 3250.
Чтобы проверить нужно вручную скачать патч отсюда ftp://lpclinux.com/lpc32x0/linux/linux-2....0.patch.tar.bz2 и попробовать.
У меня еще есть подозрение, что и u-boot нужно тоже откатить на более раннюю версию ftp://lpclinux.com/lpc32x0/u-boot/u-boot-...0.patch.tar.bz2. Там тоже в 1.02 этой же датой (16.07.2010) добавили hardware ECC + DMA для работы с NAND.
Подробнее история версий здесь
http://lpclinux.com/Downloads/Release32xxLinux2_6_34
http://lpclinux.com/Downloads/Release32xxUboot2009_03

А проблема похожая на вашу обсуждается здесь http://lpclinux.com/Forums/ForumLPC32xx0016

Go to the top of the page
 
+Quote Post
alvy
сообщение Sep 28 2010, 02:58
Сообщение #15


Участник
*

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



Цитата(ra9ftm @ Sep 24 2010, 11:00) *
такого рода ошибки по моему мнению могли возникнуть еще после выпуска патча ядра v1.02.

Там был произведен переход на работу с NAND через DMA и использование ECC на "железном" (hardware) уровне. Я постараюсь это проверить на phytec 3250.
Есть какие-нибудь успехи? У меня до выходных времени не будет проверить - пытаюсь telnet запустить, а он все "permission denied" sad.gif
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 17:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01517 секунд с 7
ELECTRONIX ©2004-2016