[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Etrax 100 MCM SDRAM problem



Hi.
The R_SDRAM_CONFIG and R_SDRAM_TIMING values are correct. The reason
it is not working correctly for you is that the initialisation sequence
run by etrax100boot is incorrect (old tools version). I have sent you a
patch 
separately that you can add to
the devboard_lx release 2_1_0 and then things will hopefully work better. We
will soon have
a new devboard_lx release and there will be better support for the MCM in
that release.

Best regards
/Magnus

  

-----Original Message-----
From: Nagy Zsolt [mailto:nzsolt@xxxxxxx.com]
Sent: den 17 september 2002 13:20
To: dev-etrax@xxxxxxx.com
Subject: Etrax 100 MCM SDRAM problem


Hi,

I am trying to use Etrax 100 MCM in our prototype board.
I have a problem with SDRAM.
We use the internal SDRAM only in 16-bit mode.
The conf signals are connected like this:
conf0 - A01
conf1 - A09
conf2 - A11
conf3 - A12
conf4 - A13

The register settings are:
R_WAIT_STATES = 000095f8 ,same as the default for the developer board
R_BUS_CONFIG = 00000104 ,same as the default for the developer board
R_SDRAM_CONFIG = 00601515 ,is it OK?
R_SDRAM_TIMING = 80008002, as it is suggested in the MCM Designer's
Reference

I test the board with an etrax100boot command that sets the registers,
initializes the SDRAM, downloads a file to c0004000 and dumps ff length
of memory from the same address.

The command looks like this:

etrax100boot\
 --device eth1\
 --setreg b0000000 000095f8\
 --setreg b0000004 00000104\
 --setreg b000000c 00601515\
 --setreg b0000008 8000c002\
 --pause 20000\
 --setreg b0000008 8000c602\
 --setreg b0000008 8000c002\
 --setreg b0000008 8000c402\
 --setreg b0000008 8000c002\
 --setreg b0000008 8000c402\
 --setreg b0000008 8000c002\
 --setreg b0000008 8000c402\
 --setreg b0000008 8000c002\
 --setreg b0000008 8000c402\
 --setreg b0000008 8000c002\
 --setreg b0000008 8000c402\
 --setreg b0000008 8000c002\
 --setreg b0000008 8000c402\
 --setreg b0000008 8000c002\
 --setreg b0000008 8000c402\
 --setreg b0000008 8000c002\
 --setreg b0000008 8000c402\
 --setreg b0000008 8000c002\
 --setreg b0000008 8030c202\
 --setreg b0000008 8000c002\
 --setreg b0000008 80008002\
 --setreg b0000030 00001df0\
 --setreg b0000038 00001ef3\
 --file README c0004000\
 --memdump c0004000 c00040ff

The result is this output on the ser0 debug port:

Serial interface initialized.


Device ID = 0x0000ED47
This bootloader hacked by nzsolt Mon Jul 29 14:29:02 CEST 2002.
Checksum of bootloader is 0x000A3A31
Waiting for load info.
Checksum of file is 0x000038AA
Got load info.
SET_REGISTER
0xB0000000
0x000095F8
SET_REGISTER
0xB0000004
0x00000104
SET_REGISTER
0xB000000C
0x00601515
SET_REGISTER
0xB0000008
0x8000C002
PAUSE_LOOP
0x00020000
SET_REGISTER
0xB0000008
0x8000C602
SET_REGISTER
0xB0000008
0x8000C002
SET_REGISTER
0xB0000008
0x8000C402
SET_REGISTER
0xB0000008
0x8000C002
SET_REGISTER
0xB0000008
0x8000C402
SET_REGISTER
0xB0000008
0x8000C002
SET_REGISTER
0xB0000008
0x8000C402
SET_REGISTER
0xB0000008
0x8000C002
SET_REGISTER
0xB0000008
0x8000C402
SET_REGISTER
0xB0000008
0x8000C002
SET_REGISTER
0xB0000008
0x8000C402
SET_REGISTER
0xB0000008
0x8000C002
SET_REGISTER
0xB0000008
0x8000C402
SET_REGISTER
0xB0000008
0x8000C002
SET_REGISTER
0xB0000008
0x8000C402
SET_REGISTER
0xB0000008
0x8000C002
SET_REGISTER
0xB0000008
0x8000C402
SET_REGISTER
0xB0000008
0x8000C002
SET_REGISTER
0xB0000008
0x8030C202
SET_REGISTER
0xB0000008
0x8000C002
SET_REGISTER
0xB0000008
0x80008002
SET_REGISTER
0xB0000030
0x00001DF0
SET_REGISTER
0xB0000038
0x00001EF3
PACKET_INFO
0xC0004000
0x00000173
Checksum of file is 0x00008235
MEM_DUMP
0xC0004000
0xC00040FF
0xC0004000 : 0x65766576 0x65706570 0x6F426F42 0x20642064
0xC0004010 : 0x53205320 0x77747774 0x20652065 0x73727372
0xC0004020 : 0x206E206E 0x2E312E31 0x540A540A 0x20732073
0xC0004030 : 0x646F646F 0x20742074 0x73657365 0x6E696E69
0xC0004040 : 0x32203220 0x312E312E 0x62206220 0x6E206E20
0xC0004050 : 0x73647364 0x6D6F6D6F 0x666F666F 0x65686568
0xC0004060 : 0x6E756E75 0x6F696F69 0x696C696C 0x6F206F20
0xC0004070 : 0x75667566 0x65726572 0x72657265 0x6E6F6E6F
0xC0004080 : 0x666F666F 0x6E696E69 0x28202820 0x2E672E67
0xC0004090 : 0x61686168 0x73657365 0x746F746F 0x74657465
0xC00040A0 : 0x6D6F6D6F 0x74747474 0x74207420 0x72617261
0xC00040B0 : 0x632F632F 0x20732073 0x74207420 0x6F0A6F0A
0xC00040C0 : 0x63696369 0x206C206C 0x756E756E 0x6F736F73
0xC00040D0 : 0x65636563 0x646F646F 0x72747274 0x2E292E29
0xC00040E0 : 0x65686568 0x6F666F66 0x61206120 0x74617461
0xC00040F0 : 0x68206820 0x62206220 0x206E206E 0x65646564
END

When dumping the memory the same values appear on the higher 16 bits
and the lower 16 bits of each 32-bit words. Actually the higher 16 bits
are OK, but the lower 16 bits contain the duplication of the higher 16 bits.

I don't known what can be wrong with the SDRAM configuration or
initialization.

Thanks for any help.

Regards,

Zsolt Nagy
nzsolt@xxxxxxx.com
http://www.analogic-computers.com