alvy 0 17 сентября, 2010 Опубликовано 17 сентября, 2010 (изменено) · Жалоба Плата EA3250. Скачал LTIB, собрал u-boot.bin, rootfs.jffs2, uImage. Залил все в отладочную плату, поменял какие нужно параметры в u-boot, чтобы он все правильно грузил. Все запустилось как надо, но при повторном запуске появились ошибки CRC (при первом запуске ошибок не было). Повторно перешиваю rootfs.jffs2 в NAND - опять ошибок нет. Перегружаю - снова ошибки CRC. Лог загрузки с ошибками: 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? Изменено 17 сентября, 2010 пользователем alvy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 9 17 сентября, 2010 Опубликовано 17 сентября, 2010 · Жалоба Повторно перешиваю rootfs.jffs2 в NAND - опять ошибок нет. Перегружаю - снова ошибки CRC. А как заливаете ? Тут похоже ошибка в драйвере nand либо шьете чем-то не тем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alvy 0 17 сентября, 2010 Опубликовано 17 сентября, 2010 (изменено) · Жалоба Файлы rootfs.jffs2 и uImage скидываю в корень USB-флешки (FAT32), далее в u-boot: run update_fs Получаю в логе: 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-флешки). Ошибок никаких не наблюдаю. После перезагрузки - появляются. Изменено 17 сентября, 2010 пользователем alvy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 9 17 сентября, 2010 Опубликовано 17 сентября, 2010 · Жалоба далее в u-boot: Если через u-boot то нормально. Насколько криво портирован Linux на этот контроллер я не знаю - не приходилось работать с ним, очень похоже на ошибки драйвера при работе с ECC. Не пробовали полностью затереть nand из u-boot ? правда это может оказаться чревато плохими последствиями.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alvy 0 17 сентября, 2010 Опубликовано 17 сентября, 2010 · Жалоба Не пробовали полностью затереть nand из u-boot ? правда это может оказаться чревато плохими последствиями.. Пока еще не пробовал - там расположен в частности загрузчик S1L, сейчас только читаю как его можно прошить после стирания NAND Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 9 17 сентября, 2010 Опубликовано 17 сентября, 2010 (изменено) · Жалоба Пока еще не пробовал - там расположен в частности загрузчик S1L, сейчас только читаю как его можно прошить после стирания NAND С затиранием лучше не спешить конешно, я бы посмотрел драйвер nand - можно ли там отладочную информацию включить - в частности удостовериться что он тайминги для этого слмсунга правильно определяет ну или вручную выставить железобетонные, пусть тормозит пока но главное найти причину. Изменено 17 сентября, 2010 пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ra9ftm 0 18 сентября, 2010 Опубликовано 18 сентября, 2010 · Жалоба Пожалуйста проверьте, если завершать работу Linux правильно (shutdown -h 0 или reboot), появляются ли данные ошибки? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alvy 0 20 сентября, 2010 Опубликовано 20 сентября, 2010 · Жалоба Пожалуйста проверьте, если завершать работу Linux правильно (shutdown -h 0 или reboot), появляются ли данные ошибки? Про shutdown пишет "-/bin/sh: shutdown: not found", а после reboot ошибки также появляются (причем с каждым разом все больше). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ra9ftm 0 20 сентября, 2010 Опубликовано 20 сентября, 2010 · Жалоба У меня на phy3250 подобное. При первом пуске все нормально, потом есть ошибки. Но если нормально завершить работу после первого пуска, такого не наблюдается. Вобщем не известно пока как с этим бороться. В uboot при загрузке ставлю quite и всё работает. Про shutdown пишет "-/bin/sh: shutdown: not found", а после reboot ошибки также появляются (причем с каждым разом все больше). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alvy 0 20 сентября, 2010 Опубликовано 20 сентября, 2010 · Жалоба В uboot при загрузке ставлю quite и всё работает. За что этот ключ отвечает? За вывод в терминал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ra9ftm 0 20 сентября, 2010 Опубликовано 20 сентября, 2010 · Жалоба Да, вывод данных при загрузке. Загружается значительно быстрее. Ошибки можно посмотреть после загрузки командой dmesg. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dch 0 22 сентября, 2010 Опубликовано 22 сентября, 2010 (изменено) · Жалоба Это у Вас сильно напоминает знаете что, в начале она запустилась и всё нормально CRC везде та, а в процессе работы файловая система перезаписывается, и при перезаписи пишется не тот CRC, это может быть когда под файловой системой лежит какбы не та флэш, те у Вас jffs2, под ним лежит MTD, а там есть файлец которые непосредственно работает с флэшью, и вот это файлец задаёт какими кусками и как можно затирать флэш, её перезаписывать, её читать. У Вас нанд флэш я не очень помню как там сделано, а на параллельной сделано так. Изменено 22 сентября, 2010 пользователем dch Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 22 сентября, 2010 Опубликовано 22 сентября, 2010 · Жалоба Это у Вас сильно напоминает знаете что, в начале она запустилась и всё нормально CRC везде та, а в процессе работы файловая система перезаписывается, и при перезаписи пишется не тот CRC, это может быть когда под файловой системой лежит какбы не та флэш, те у Вас jffs2, под ним лежит MTD, а там есть файлец которые непосредственно работает с флэшью, и вот это файлец задаёт какими кусками и как можно затирать флэш, её перезаписывать, её читать. У Вас нанд флэш я не очень помню как там сделано, а на параллельной сделано так. Как минумум у LPC3250 есть два разных контроллера NAND : SLC и MLC. При этом, как ни странно, их ROM загрузчик для SLC NAND использует MLC контроллер и это работает. А у этих контроллеров принципиально разные подходы к расчету ECC и его размещению непосредственно в блоке. Т.е. записать можно одним, а прочитать другим, но ECC будет естественно с ошибкой и данные будут повреждены даже если отключить контроль ECC при чтении. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ra9ftm 0 24 сентября, 2010 Опубликовано 24 сентября, 2010 · Жалоба такого рода ошибки по моему мнению могли возникнуть еще после выпуска патча ядра 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alvy 0 28 сентября, 2010 Опубликовано 28 сентября, 2010 · Жалоба такого рода ошибки по моему мнению могли возникнуть еще после выпуска патча ядра v1.02. Там был произведен переход на работу с NAND через DMA и использование ECC на "железном" (hardware) уровне. Я постараюсь это проверить на phytec 3250. Есть какие-нибудь успехи? У меня до выходных времени не будет проверить - пытаюсь telnet запустить, а он все "permission denied" :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться