Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91AR9200+SDRAM глюки
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Страницы: 1, 2
Piligrim1158
Имеем AT91AR9200+SDRAM 48LC16M16A2 в принципи грузимся нормально:

U-Boot 1.1.1 (Oct 10 2006 - 20:28:51)

U-Boot code: 21F80000 -> 21F9B960 BSS: -> 21FD070C
RAM Configuration:
Bank #0: 20000000 64 MB
Atmel: AT49BV1614 (16Mbit)
Flash: 2 MB
DataFlash:AT45DB161
Nb pages: 4096
Page Size: 528
Size= 2162688 bytes
Logical address: 0xC0000000
Area 0:C0000000 to C0007FFF (RO)
Area 1:C0008000 to C001FFFF (RO)
Area 2:C0020000 to C0027FFF
Area 3:C0028000 to C020FFFF
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
MAC: error during MII initialization
*** ERROR: `serverip' not set
## Booting image at 22000000 ...
Image Name: RT9200 Kernel Image
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 1111691 Bytes = 1.1 MB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK

Starting kernel ...

Linux version 2.6.19-rc4 (root@at9200) (gcc version 4.1.2 20060901 (prerelease) (Debian 4.1.1-13+b1)) #23 Fri Nov 3 02:44:20 MSK 2006
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=40003177
Machine: Generic AT91RM9200 board
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 192 MHz, master 64 MHz, main 18.432 MHz
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
Built 1 zonelists. Total pages: 16256
Kernel command line: root=/dev/mmcblk0p1 mem=64M
AT91: 96 gpio irqs in 3 banks
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
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: 62592KB available (1832K code, 407K data, 76K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
NET: Registered protocol family 2
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 2048 bind 1024)
TCP reno registered
NetWinder Floating Point Emulator V0.97 (double precision)
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
atmel_usart.1: ttyS1 at MMIO 0xfffc0000 (irq = 6) is a ATMEL_SERIAL
atmel_usart.2: ttyS2 at MMIO 0xfffc4000 (irq = 7) is a ATMEL_SERIAL
atmel_usart.3: ttyS3 at MMIO 0xfffc8000 (irq = 8) is a ATMEL_SERIAL
atmel_usart.4: ttyS4 at MMIO 0xfffcc000 (irq = 9) is a ATMEL_SERIAL
eth0: Link now 100-FullDuplex
eth0: AT91 ethernet at 0xfefbc000 int=24 100-FullDuplex (00:de:ad:11:22:33)
eth0: Realtek RTL8201(cool.gifL PHY
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
ide-at91rm9200rt: registering channel 0 at c480601c, irq 25
ide-at91rm9200rt: unable to register
mice: PS/2 mouse device common for all mice
at91_rtc at91_rtc: rtc intf: dev (254:0)
at91_rtc at91_rtc: rtc core: registered at91_rtc as rtc0
AT91 Real Time Clock driver.
MMC: 4 wire bus mode not supported by this driver - using 1 wire
mmcblk0: mmc0:0001 509184KiB
mmcblk0:<6>TCP cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 1
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
at91_rtc at91_rtc: setting the system clock to 2007-08-02 09:24:56 (1186046696)
p1
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 76K
INIT: version 2.86 booting
Setting hostname to 'at9200'...done.
[33m*[39;49m Files under mount point '/dev/pts' will be hidden.
Setting parameters of disc: (none).
Activating swap:.
Will now check root file system:fsck 1.40-WIP (02-Oct-2006)
[/sbin/fsck.ext2 (1) -- /] fsck.ext2 -a -C0 /dev/mmcblk0p1
/dev/mmcblk0p1: clean, 31506/127512 files, 445832/508992 blocks
.
Cleaning up ifupdown....
Loading modules...
All modules loaded.
Loading device-mapper support.
Will now check all file systems.
fsck 1.40-WIP (02-Oct-2006)
Checking all file systems.
Done checking file systems.
A log is being saved in /var/log/fsck/checkfs if that location is writable.
Will now mount local filesystems:.
Will now activate swapfile swap:done.
Cleaning /tmp...done.
Cleaning /var/run...done.
Cleaning /var/lock...done.
Setting up networking....
Configuring network interfaces...eth0: Link now 100-FullDuplex
done.
Setting the system clock again..
System Clock set. Local time: Thu Aug 2 09:25:11 UTC 2007.
Initializing random number generator...done.
INIT: Entering runlevel: 2
Starting system log daemon: syslogd.
Starting kernel log daemon: klogd.
Starting chai-1.2.4: Uniform CAN Interface Driver (unican) v. 5.60: supports CAN-bus-ISA, CAN-bus-MicroPC, CAN-bus-PCI in PeliCAN mode, © 1999-2003 Marathon Ltd.
unican: CAN-bus-QMbus board detected:
first chip SJA1000 at: 0x30000000, Irq 26, channel(minor) 0
second chip SJA1000 at: 0x30000080, Irq 26, channel(minor) 1
unican: total 2 CAN controllers on 1 boards found
OK
Starting internet superserver: inetd.
Starting OpenBSD Secure Shell server: sshd.
ProFTPd is started from inetd/xinetd.
Starting periodic command scheduler: crond.
Running local boot scripts (/etc/rc.local).

Debian GNU/Linux 3.1 at9200 ttyS0

at9200 login: root
Password:
Linux at9200 2.6.19-rc4 #23 Fri Nov 3 02:44:20 MSK 2006 armv4tl


и без проблем причем грузимся и с первого раза даже)). но есть маленькая проблема)) при запуске теста памяти вылетаем напрочь. вот что пишет нам:


root@at9200:/usr/memtester-4.0.7# memtester
memtester version 4.0.7 (32-bit)
Copyright © 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
need memory argument, in MB

root@at9200:/usr/memtester-4.0.7# memtester
memtester version 4.0.7 (32-bit)
Copyright © 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).
pagesize is 4096
pagesizemask is 0xfffff000
need memory argument, in MB

root@at9200:/usr/memtester-4.0.7# memtester 50 1
memtester version 4.0.7 (32-bit)
Copyright © 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 50MB (52428800 bytes)
got 50MB (52428800 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : setting 5)5)mu5)%=mu5)55)AU5)A5)%J}}5)mumu95)5)5)5)5)%IE%E5MY}M5)5)Q5)A5)M5)5)5)5)5)5)A5)

и усе. висим напрочь. Что посоветуете? стоят продольники на линии данных и адреса по 62 ома. может и несмертельно конечно, но хочется просто понять почему падаем напрочь.
slava2005
Цитата(Piligrim1158 @ Aug 2 2007, 14:00) *
root@at9200:/usr/memtester-4.0.7# memtester 50 1



Где взяли сию утилиту ?

Ибо при попытке apt-get -y install memtester ставиться немножко другое, которое правильно работает 07.gif
Piligrim1158
Цитата(slava2005 @ Aug 3 2007, 18:36) *
Где взяли сию утилиту ?

Ибо при попытке apt-get -y install memtester ставиться немножко другое, которое правильно работает 07.gif


http://pyropus.ca/software/memtester/ - тама брал.

перекомпилил, вот что имеем:


root@at9200:~# memtester
memtester version 4.0.7 (32-bit)
Copyright © 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
need memory argument, in MB
root@at9200:~# memtester 1 1
memtester version 4.0.7 (32-bit)
Copyright © 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 1MB (1048576 bytes)
got 1MB (1048576 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : testing 0Segmentation fault
root@at9200:~# memtester 10 1
memtester version 4.0.7 (32-bit)
Copyright © 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 10MB (10485760 bytes)
got 10MB (10485760 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : testing 0FAILURE: 0x7ffeae8b != 0xffffffff at offset 0x000002be.
Segmentation fault
root@at9200:~# memtester 10 1
memtester version 4.0.7 (32-bit)
Copyright © 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 10MB (10485760 bytes)
got 10MB (10485760 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : testing 0Segmentation fault


один хрен вылетаем) причем запутил 10 удаленных терминалов mc и поиск -> "*", в top-е смотрю загрузку проца и мозгоз, проц на 93% в мозгах свободно 1.5 метра и пашем 3,5 часа без сбоев. а тест падает) запустил его на отладочной плате, прошел блин без сбоев(((

перекомпилил, вот что имеем:


root@at9200:~# memtester
memtester version 4.0.7 (32-bit)
Copyright © 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
need memory argument, in MB
root@at9200:~# memtester 1 1
memtester version 4.0.7 (32-bit)
Copyright © 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 1MB (1048576 bytes)
got 1MB (1048576 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : testing 0Segmentation fault
root@at9200:~# memtester 10 1
memtester version 4.0.7 (32-bit)
Copyright © 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 10MB (10485760 bytes)
got 10MB (10485760 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : testing 0FAILURE: 0x7ffeae8b != 0xffffffff at offset 0x000002be.
Segmentation fault
root@at9200:~# memtester 10 1
memtester version 4.0.7 (32-bit)
Copyright © 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 10MB (10485760 bytes)
got 10MB (10485760 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : testing 0Segmentation fault


один хрен вылетаем) причем запутил 10 удаленных терминалов mc и поиск -> "*", в top-е смотрю загрузку проца и мозгоз, проц на 93% в мозгах свободно 1.5 метра и пашем 3,5 часа без сбоев. а тест падает) запустил его на отладочной плате, прошел блин без сбоев(((
slava2005
Цитата(Piligrim1158 @ Aug 6 2007, 18:46) *
memtester version 4.0.7 (32-bit)
Copyright © 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).


Попробуйте memtest v. 2.93.1 - по крайней мере она у меня работает на ура.
Piligrim1158
Цитата(slava2005 @ Aug 7 2007, 13:38) *
Попробуйте memtest v. 2.93.1 - по крайней мере она у меня работает на ура.


попробую, но думаю что проблема всетаки в ОЗУ-хе. правда понять немогу где именно...
Piligrim1158
прикол получается в другом, разабрал тут тесты надосуге. Валимся на тестах, которые сначала пишут нули, а потом забивают память еденицами. а когда пишем разные значения, то все проходит. Складывается впечатление что питание мозгам нехватает))) хотя ампер на них легко с болока может идти ... должно хватать. Может кто знает где хоть капать?
v_shamaev
Аналогичная проблема - AT91SAM9260 + K4M513233C-DN75. Собраны несколько экземпляров, есть полностью работоспособные, есть экземпляры, на которых не распаковывается Linux (если отключить кеш - распаковывается и стартует, но быстро сваливается), и есть экземпляры, на которых грузится и стартует Linux, но тесты (именно solidbits) исполняются с ошибками. Кое-что удалось посмотреть осциллографом - на синхросигнале ОЗУ появляется всплеск до половины уровня - синхронно с фронтами адресного строба. Самое интересное - на работающих платах - такой же всплеск.

Кто что по этому поводу может сказать?
dch
Цитата(v_shamaev @ Jul 22 2008, 14:16) *
Кто что по этому поводу может сказать?

memtester неплохо переделать в стэндэлоне или в крайнем случае в програмку которая грузится u-boot-ом. Тогда будет понятно. Была у меня похожая проблемка - там на партии микросхем на отдельных тестах выдавалось не ok а ошибка, у Вас похоже память похуже и выдается segmentation fault. Я тогда отказался от микроновской и перехел на самсунговскую. И проблемма снялась.
v_shamaev
Цитата(dch @ Jul 23 2008, 11:35) *
memtester неплохо переделать в стэндэлоне или в крайнем случае в програмку которая грузится u-boot-ом. Тогда будет понятно. Была у меня похожая проблемка - там на партии микросхем на отдельных тестах выдавалось не ok а ошибка, у Вас похоже память похуже и выдается segmentation fault. Я тогда отказался от микроновской и перехел на самсунговскую. И проблемма снялась.


Спасибо за ответ - я примерно так и думал, хорошо если получиться не переразводить плату.

Как раз сейчас перетаскиваю тесты. Задача осложняется тем фактом, что при выключенных MMU и кешах - все работает. Пытаюсь воспроизвести условия для тестов, как в Linux.
AVR
Извините что встреваю, говорят в ядре 2.6.26 там есть встроенный в ядро memtest... и вроде как помечает "битые" области памяти на этапе начальной загрузки ядра и обходит их в работе - это правда?.. Если да то это просто фантастика, получается и на в меру побитой памяти работать можно... smile.gif
Piligrim1158
Цитата(v_shamaev @ Jul 22 2008, 14:16) *
Аналогичная проблема - AT91SAM9260 + K4M513233C-DN75. Собраны несколько экземпляров, есть полностью работоспособные, есть экземпляры, на которых не распаковывается Linux (если отключить кеш - распаковывается и стартует, но быстро сваливается), и есть экземпляры, на которых грузится и стартует Linux, но тесты (именно solidbits) исполняются с ошибками. Кое-что удалось посмотреть осциллографом - на синхросигнале ОЗУ появляется всплеск до половины уровня - синхронно с фронтами адресного строба. Самое интересное - на работающих платах - такой же всплеск.

Кто что по этому поводу может сказать?


Проблема решена следующим образом: Переразвод платы выравниванием всех адресных и линий данных(петель на плате куча)). Ну и линий управления. Все они одной длинны -+5%. Установлены продолные рзисторы 47 Ом. Плата пашет на ура)))
3.14
Цитата
Проблема решена следующим образом ...
Для чистоты эксперимента, на плату ставили "проблемный" ARM?
В противном случае, Вам могло просто "повезти" ...
Из своего опыта, из десятка плат при работе стандалон приложений все крутится на полной скорости, половина может померать на старте ядра (от производителя SDRAM не зависит) sad.gif
ИМХО склонен полагать что это баг силикона, пока пользуюсь А ревизией, может с В чего изменится ...
v_shamaev
Цитата(AVR @ Jul 23 2008, 13:53) *
Извините что встреваю, говорят в ядре 2.6.26 там есть встроенный в ядро memtest... и вроде как помечает "битые" области памяти на этапе начальной загрузки ядра и обходит их в работе - это правда?.. Если да то это просто фантастика, получается и на в меру побитой памяти работать можно... smile.gif

Про 2.6.26 не знаю - пока 2.6.24. Ну и дефект проявляется - или ядро не распаковывается, след. не стартует, или только на отдельных тестах и не сразу. Так что в моем случае - не спасет. Подозреваю, что даже с ECC не спасет, т.к. наиболее частая ошибка - адреса.

Цитата(3.14 @ Jul 23 2008, 14:59) *
Для чистоты эксперимента, на плату ставили "проблемный" ARM?
В противном случае, Вам могло просто "повезти" ...
Из своего опыта, из десятка плат при работе стандалон приложений все крутится на полной скорости, половина может померать на старте ядра (от производителя SDRAM не зависит) sad.gif
ИМХО склонен полагать что это баг силикона, пока пользуюсь А ревизией, может с В чего изменится ...


Подозреваю, что если бы это был неискоренимый баг атмела - вой стоял бы на всю вселенную. Слишком много брака. Standalone у вас исполняются при включенном MMU и кеш-ах?
Полагаю, что есть необходимость обобщить опыт - грабли слишком тяжелые. К тому же у меня - 9260, а у Piligrim1158 - 9200 - старый заслуженный камень.

Цитата(Piligrim1158 @ Jul 23 2008, 14:05) *
Проблема решена следующим образом: Переразвод платы выравниванием всех адресных и линий данных(петель на плате куча)). Ну и линий управления. Все они одной длинны -+5%. Установлены продолные рзисторы 47 Ом. Плата пашет на ура)))

Спасибо за ответ, позвольте уточнить - тираж платы какой-нибудь был, или единственный экземпляр? И какие-нибудь еще изменения в данной части были?
3.14
2 v_shamaev
под стандаломном принимал u-boot ...
"Вырвал" одну "проблемную" плату (двухслойка, один чип SDRAM, длина самой длинной линий не более 1.5см). Имею: работоспособный u-boot и его тест памяти, виснет на старте ядра.
Скручиваю тактовую SDRAM на 80МГц, все без изменений, скручиваю тактовую на 120МГц, без изменеий, менял производителя SDRAM (Samsung и Micron), без изменений. выключаю кеш данных, начинает работать, отключаю кеш данных еще на десятке "проблемных" плат - "оживают" ...
v_shamaev
Цитата(3.14 @ Jul 23 2008, 15:54) *
2 v_shamaev
под стандаломном принимал u-boot ...
"Вырвал" одну "проблемную" плату (двухслойка, один чип SDRAM, длина самой длинной линий не более 1.5см). Имею: работоспособный u-boot и его тест памяти, виснет на старте ядра.
Скручиваю тактовую SDRAM на 80МГц, все без изменений, скручиваю тактовую на 120МГц, без изменеий, менял производителя SDRAM (Samsung и Micron), без изменений. выключаю кеш данных, начинает работать, отключаю кеш данных еще на десятке "проблемных" плат - "оживают" ...

Позвольте несколько уточнений:
1. Резисторы в шины, как Атмел рекомендует, ставили?
2. У вас то же 9260?
3. С отключенным кешем платы полностью работоспособны - пробовали ли гонять memtest(er) и как долго?

В общем, симптомы практически 1:1 - под u-boot или загружаемые через j-tag тесты безупречно исполняются, как встроенные в u-boot, peedi, так и перетащенные memtester. Linux падает при распаковке. Коллега, что разводил плату, сказал что линии адреса и данных ему полностью выровнять не удалось, резисторы в линиях не стоят. Не работает примерно 40% собранных плат (общее количество пока не велико, поэтому цифра весьма условна).
3.14
1) на линиях в 2 см согласующие резисторы не нужны, равнять шину при 130М (не DDR) ИМХО излишество ...
Хотя, недавно разводил под PXA320, выровнять шины не смог, посмотрю что получится smile.gif
2) да
3) memtest не пробовал, mtest в u-boot на одной плате около суток гонял, да и просто периодически на ночь оставляю с линухом
v_shamaev
Цитата(3.14 @ Jul 23 2008, 16:34) *
3) memtest не пробовал, mtest в u-boot на одной плате около суток гонял, да и просто периодически на ночь оставляю с линухом


По моим ощущениям - для нагрузочной проверки лучше бы запустить тест под Linux-ом на несколько дней - для уверенности в железке. Наблюдается явная корреляция - там, где тесты проходят без сбоев, и прикладная программа работает, и наоборот. Правда, прикладная программа весьма монстроидальна.
АДИКМ
Цитата(3.14 @ Jul 23 2008, 15:34) *
1) на линиях в 2 см согласующие резисторы не нужны, равнять шину при 130М (не DDR) ИМХО излишество ...
Хотя, недавно разводил под PXA320, выровнять шины не смог, посмотрю что получится smile.gif
2) да
3) memtest не пробовал, mtest в u-boot на одной плате около суток гонял, да и просто периодически на ночь оставляю с линухом


в еррате есть ошибка по EBI и они очень рекомендуют ставить резисторы. в первой плате я не ставил - в двух экземплярах работало без пролблем. и микрон и самсунг. во второй плате поставил резисторы. первый экземпляр работает без проблем, второй не запускается.
v_shamaev
Цитата(АДИКМ @ Jul 23 2008, 18:47) *
в еррате есть ошибка по EBI и они очень рекомендуют ставить резисторы. в первой плате я не ставил - в двух экземплярах работало без пролблем. и микрон и самсунг. во второй плате поставил резисторы. первый экземпляр работает без проблем, второй не запускается.

А на каком этапе падает?
dch
mtest из u-boot не очень хорошо показывает - те видел когда он давал норму а memtester валился чипы брал в точке опоры и это уже в четвертый раз - есть подозрение что под платочку любые сделают, они то в кино снимаются
MTh
Сейчас в наличии
1. AS-9260 на которой стоит Samsung
2. Самопальная плата прибора на которой такой-же набор периферии+FPGA+SED и память Micron
Крутиться Linux+прога+3 самописных драйвера
Напоролись на одно непонятное зависание, которое проявляется только при работе с SED при большом количестве обращений. Причем. Сделали небольшую прогу-тестик который 100% заваливает плату с Micron. Тот же тест на AS-9260 проходит на ура... ждем Samsung....
v_shamaev
Цитата(MTh @ Jul 24 2008, 03:32) *
Сейчас в наличии
1. AS-9260 на которой стоит Samsung
2. Самопальная плата прибора на которой такой-же набор периферии+FPGA+SED и память Micron
Крутиться Linux+прога+3 самописных драйвера
Напоролись на одно непонятное зависание, которое проявляется только при работе с SED при большом количестве обращений. Причем. Сделали небольшую прогу-тестик который 100% заваливает плату с Micron. Тот же тест на AS-9260 проходит на ура... ждем Samsung....


Уточните, пожалуйста:
1. Тест проверяет только память или что-то еще, или комбинированный?
2. Тест под Linux или standalone?
3. memtester пробовали прогонять на вашей плате?
4. Выравнивание задержек сигналов по шинам при разводке производилось?
5. Резисторы в шинах, как рекомендует Atmel, установленны?
6. Экземпляр единичный или серия?

Если не трудно, киньте исходники - прогоню на своих платах, результаты сообщу.
dENIM
чтоб не плодить темы, задам свой нубский вопрос тут:

в 9260 в регистре SDRAMC_CR необходимо выставить количество бит в строке и столбце.

в примере от атмела стоит соответственно 13 и 9

откуда это брать ваще? О_о
aaarrr
Из даташита на SDRAM.
MTh
Цитата(v_shamaev @ Jul 24 2008, 10:36) *
Уточните, пожалуйста:
1. Тест проверяет только память или что-то еще, или комбинированный?

тест не совсем тест - просто пишет через SMC на SED (рисует кучу линии "отбалды")
Цитата
2. Тест под Linux или standalone?

Под Linux причем исключительно для нашей периферии и для нашего драйвера
Цитата
3. memtester пробовали прогонять на вашей плате?

нет
Цитата
4. Выравнивание задержек сигналов по шинам при разводке производилось?

да
Цитата
5. Резисторы в шинах, как рекомендует Atmel, установленны?

нет. И на AS-9260 их тоже нет
Цитата
6. Экземпляр единичный или серия?

Будет серия. Если победим этот глюк smile.gif
Цитата
Если не трудно, киньте исходники - прогоню на своих платах, результаты сообщу.


Спасибо, но к сожалению не могу, кроме того конфигурация железа должна совпадать или по крайней мере канал SMC должен быть свободен.
v_shamaev
Цитата(АДИКМ @ Jul 23 2008, 18:47) *
в еррате есть ошибка по EBI и они очень рекомендуют ставить резисторы. в первой плате я не ставил - в двух экземплярах работало без пролблем. и микрон и самсунг. во второй плате поставил резисторы. первый экземпляр работает без проблем, второй не запускается.

В еррате указанный баг приведен применительно к статической памяти.
SimpleSoft
День добрый. Победил проблему с помощью подтяжки в 470кОм SD_CS до +3.3В.
Мемтест проходит на ура даже при включенном D-Cache. Проверял плату даже в термокамере - работает без сбоев. До запайки со включенным D-Cache не распаковывался ROOTFS.

Процессор SAM9260, 32MB SDRAM

Если есть у кого возможность - проверьте у себя.

Код
[@CAMBOARD]$./memtester 20
memtester version 4.0.8 (32-bit)
Copyright (C) 2007 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 20MB (20971520 bytes)
got  20MB (20971520 bytes), trying mlock ...locked.
Loop 1:
  Stuck Address       : ok
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok
  Block Sequential    : ok
  Checkerboard        : ok
  Bit Spread          : ok
  Bit Flip            : ok
  Walking Ones        : ok
  Walking Zeroes      : ok

Loop 2:
  Stuck Address       : ok
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok
  Block Sequential    : ok
  Checkerboard        : ok
  Bit Spread          : ok
  Bit Flip            : ok
  Walking Ones        : ok
SimpleSoft
Цитата(SimpleSoft @ Aug 29 2008, 09:36) *
День добрый. Победил проблему с помощью подтяжки в 470кОм SD_CS до +3.3В.
Мемтест проходит на ура даже при включенном D-Cache. Проверял плату даже в термокамере - работает без сбоев. До запайки со включенным D-Cache не распаковывался ROOTFS.

Процессор SAM9260, 32MB SDRAM

Если есть у кого возможность - проверьте у себя.

Код
[@CAMBOARD]$./memtester 20
memtester version 4.0.8 (32-bit)
Copyright (C) 2007 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 20MB (20971520 bytes)
got  20MB (20971520 bytes), trying mlock ...locked.
Loop 1:
  Stuck Address       : ok
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok
  Block Sequential    : ok
  Checkerboard        : ok
  Bit Spread          : ok
  Bit Flip            : ok
  Walking Ones        : ok
  Walking Zeroes      : ok

Loop 2:
  Stuck Address       : ok
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok
  Block Sequential    : ok
  Checkerboard        : ok
  Bit Spread          : ok
  Bit Flip            : ok
  Walking Ones        : ok


Баг вылез снова.. хотя косание пальцем SDRAM решает проблему.
aaarrr
Цитата(SimpleSoft @ Aug 29 2008, 10:36) *
Победил проблему с помощью подтяжки в 470кОм SD_CS до +3.3В.

...
Цитата(SimpleSoft @ Aug 31 2008, 18:21) *
Баг вылез снова.. хотя косание пальцем SDRAM решает проблему.

Лечение, увы, одно - грамотная переразводка платы sad.gif
MTh
Таки дождались мы новую память. Сейчас стоит SAMSUNG K4S561632J-UI75.
Девайс работает стабильно, и быстрее.
Приговор МИКРОНовской памяти или АТМЕЛу (что видимо более вероятно).
Где-то на форуме читал что люди меняли задержки и вроде как работало лучше. Нас на данный момент работа девайса устраивает копаться дальше видимо не будем - времени уже вагон убили.
tturist
тоже напоролся на глюки с памятью (9260 + память от микрон) - не грузится линукс. плату разводили в четырех слоях, с выравниванием длины линий, проходных резисторов нет. в плате один слой отдан под землю, но конструктор отделил землю SDRAM от земли процессора и свел их вместе отдельно. наверное думал что так будет лучше. экспериментальным путем выяснилось что это не так - пробовал восстановить разрыв перемычками - глюков поубавилось. но запустить memtest под линуксом удалось только понизив частоту SDRAM до 50 МГц.
интересно другое. у меня на столе есть отладочная плата от olimex (9260 + память от самсунга). так вот на ней присутствует интересная доработка - под ножку процессора, что выдает 100 МГц клок на память, подсунут проходной резистор 47 Ом (т.е. натурально - отогнули ножку и подсунули резистор 07.gif ), в конце этой линии у мк/сх памяти линия нагружена тоже резистром 47 Ом в параллель с конденсатором 10 пик (ну или меньше). если эту доработку порушить - память отказывается работать напрочь - проверял. smile.gif
ну и напоследок - никто мне не может объяснить почему 9260 спокойно грузится у меня (и у olimex тоже) из nand-flash? вроде как по errata не должен же. процессор конечно ревизии А - других достать невозможно.
starterkit
Попрбуйте в SDRAMC_HSR записать 1 (во время инита) ...
Насчет загрузки из NAND, массово не проверял, но тоже замечал что грузится, видимо дело вероятностное (зря в еррате писать не будут smile.gif) ...
tturist
при конфигурации "enable decode cycle" в SDRAMC_HSR у меня на плате memtest на 100 МГц пошел нормально однако. знать бы теперь что это такое. smile.gif в последнем даташите от атмела такой регистр не описан. не ткнете меня в какой-ндь документ? или тоже только в .h файле этот регистр нашли? smile.gif
starterkit
Да, в даташитах про него ни слова (по крайней мере пару месяцев назад), не помню уже точно, этот бит (там один 0 бит в регистре), как следует из названия, добавляет такт ...
Чудодейственная штука wink.gif
mdmitry
google находит много ссылок на SDRAMC_HSR. В первую очередь видел для AT91SAM9260 и других. В datasheet на AT91SAM9260 не нашел (может плохо искал). Посмотрите тексты ядра.
tturist
э... гуглить тоже пробовал - большинство ссылок ведет именно на .h файлы, а не на документацию. из документов нашел только AppNote: Using the AVR32 SDRAM controller , но и там только написано что такой регистр есть и больше ничего. что же касается ядра, то оно память конфигурировать не должно (как мне кажется). это дело загрузчиков. ни bootstrap ни u-boot этот регистр не использует.
так что темное какое-то дело. недокументированные вещи - дело стремное...
мы лучше плату переразведем. smile.gif
но эксперимент был интересный, спасибо. smile.gif
starterkit
Цитата
мы лучше плату переразведем.

Скорее всего ничего не изменится, если конечно возвратные токи по земле не очень далеко обходят ...
Вы ради эксперимента попробуйте чип сменить (желательно из другой партии), 50/50 что и проблемы как бы нет smile.gif ...
tturist
если в серию пойдет, то все равно плату переразводить - ошибки поправить. когда (и если) случится - отпишусь по результатам.
ну а чипов других под рукой нет... из одной партии микросхемы менять не хочется.
cioma
Итог обсуждения - добро пожаловать в целостность сигналов smile.gif)
А в целостности сигналов важна не частота прямоугольных импульсов, а крутизна их фронтов. И если SDRAM рассчитана на 133 MHz, то от уменьшения рабочей частоты до 1 Hz ситуация принципиально не улучшится, едиственное что из-за увеличения задержек возможно будет иногда работать.

Ну и конечно устройства такого класса требуют (!) как минимум двух слоев питания (gnd+vcc). Я знаю что "и на двухслойке отлично работает" wink.gif, но если Вы думаете о качестве, то про такой вариант нужно сразу забыть.
tturist
ну про двухслойный платы никто и не говорит - это я тоже не сторонник.
ну а по поводу частоты я бы поспорил. мне кажется что уменьшение частоты снижает требования к качеству этих самых фронтов - крутизне и времени переходных процессов. по временной диаграмме что получается - если сигналы ставятся по одному фронту clk, то считываются они по другому фронту clk. соответственно на частоте 1 Гц все будет работать железно - к приходу следующего фронта все переходные процессы гарантированно закончатся. ну если только сам clk не будет "звенеть" так, что сформирует ложные срабатывания, конечно. но с этим на низкой частоте можно легко бороться.
да и питание на низкой частоте возможно станет почище - из-за уменьшения среднего потребления и более качественной фильтрации. так что...
cioma
Железно на 1 Hz будет работать если фронты будут монотонными и не будет over- и undershoot выше допустимого уровня, в чем я не уверен (для данного примера). А остальные мысли поддерживаю smile.gif
HyperLynx и ICX Pro в помощь топикстартеру.
AlexandrY
Вообще-то плохо развести SDRAM это надо очень постараться.
Если проц и RAM не дальше 3-х см друг от друга можно смело разводить как заблагорассудится.
Никаких опасных овершутингов там не возникнет на частоте 133 МГц так точно.
Тем более, что часто у процов и RAM можно регулировать силу драйверов.
Всякие резисторы тем более незачем если шина только между RAM и процом.
HyperLynx - здесь пустая трата времени, достаточно выдержать зазоры и очень приблизительно волновое сопротивление.

Большинство вышеперечисленных траблов с RAM-ом очень напоминают элементарную некорректную инициализацию или конфликты на внутренних шинах самого процессора.


Цитата(cioma @ Dec 18 2008, 18:16) *
Железно на 1 Hz будет работать если фронты будут монотонными и не будет over- и undershoot выше допустимого уровня, в чем я не уверен (для данного примера). А остальные мысли поддерживаю smile.gif
HyperLynx и ICX Pro в помощь топикстартеру.
MTh
Сейчас опять всплыла проблема... теперь уже с нормальными микросхемами... от Samsung... запускаем наш тест (просто постоянно и максимально быстро рисует квадратики с заливкой черным/белым цветом на дисплее). В партии из 10 приборов 4 прибора валятся через 2-10 секунд после запуска.

Впаял в линию SCK для SDRAM резистор на 18 Ом... время работы увеличилось до 4 минут... потом повисло. Впаял 100 Ом работает уже больше 40 минут... никаких проблем.

Проц SAM9260.

memtester прошла
MTh
Проверили на 6 приборах - повторяемость 100%
dch
а у Вас к слову что на процах написано. Я както с пообщался - понял что с 9260 надо уходить на 9XE
MTh
Цитата(dch @ Jul 24 2009, 05:56) *
а у Вас к слову что на процах написано.

AT91SAM9260QU Rev. A
Цитата(dch @ Jul 24 2009, 05:56) *
Я както с пообщался - понял что с 9260 надо уходить на 9XE

Аргументы?
dch
отзывы отрицательные, на двуслойке вроде ни у кого нормально не получилось то что описано в топике вобще ужас. Для 9260 дают совет ставить SDRAM почти в плотную с длиной проводника 5 сантиметров, это непонятно как достичь при одностороннем монтаже и исключить NAND flash и обычную а бутится со SPI это в общемто не нормально, но если цена камней мала то можно попробовать
MTh
Цитата(dch @ Jul 29 2009, 00:00) *
отзывы отрицательные, на двуслойке вроде ни у кого нормально не получилось то что описано в топике вобще ужас. Для 9260 дают совет ставить SDRAM почти в плотную с длиной проводника 5 сантиметров, это непонятно как достичь при одностороннем монтаже и исключить NAND flash и обычную а бутится со SPI это в общемто не нормально, но если цена камней мала то можно попробовать

Я так понимаю это камушек в огород SAM9260? Если да, то:
Во-первых, невозможность сделать на двуслойке плату - имеется ввиду в домашних условиях?
SD-RAM - совет советом, но посмотрите EK от аргуса... Второй момент, там скорости обмена достаточно высокие, далеко впринципе вынести нельзя без специализированных фокусов в разводке. SDRAM разводится в два слоя. Где-то помниться видел что сделали плату в два слоя в домашних условиях...
NAND исключить можно...
С SPI бут идет при самом старте, потом все через SDRAM...

Цена камня в районе 400 рублей. Для сравнения ATMega128 стоит также. Правда ее одной достаточно, а тут обвеса надо многовато.

Камень мне нравится. Косяки в нем есть, но не думаю что есть МК где вообще нет косяков.
Zlumd
Цитата(MTh @ Jul 29 2009, 06:54) *
Цена камня в районе 400 рублей. Для сравнения ATMega128 стоит также.
Мы последний раз ATМегу128 брали за 160 руб. в кол-ве всего 10 шт.
MTh
Маленько я отстал от жизни smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.