Forum: Mikrocontroller und Digitale Elektronik FRAM auslesen


von Nobody (Gast)


Lesenswert?

Hallo zusammen,

ich habe hier ein FRAM von Cypress Typ FM25V20 im pg format.
Dieser FRAM kommuniziert über SPI. Mehrere versuche diesen FRAM 
auszulesen scheiterten leider alle.

Ich probiere es aktuell mit einem Raspberry Pi 3b+ und dem tool 
Flashrom.
1
 pi@test:~ $ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=2000 -f -V -r test.bin
2
flashrom v0.9.9-r1954 on Linux 4.19.42-v7+ (armv7l)
3
flashrom is free software, get the source code at https://flashrom.org
4
5
flashrom was built with libpci 3.3.1, GCC 5.3.1 20160205, little endian
6
Command line (6 args): flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=2000 -f -V -r test.bin
7
Calibrating delay loop... OS timer resolution is 1 usecs, 696M loops per second, 10 myus = 10 us, 100 myus = 101 us, 1000 myus = 1011 us, 10000 myus = 10155 us, 4 myus = 4 us, OK.
8
Initializing linux_spi programmer
9
Using device /dev/spidev0.0
10
Using 2000 kHz clock
11
The following protocols are supported: SPI.
12
Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f7f
13
Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f7f
14
Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f7f
15
Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f7f
16
Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f7f
17
Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f7f
18
Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f7f
19
Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f7f
20
Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f7f
21
Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f7f
22
Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f7f
23
Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
24
Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
25
Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
26
Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
27
Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
28
Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
29
Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
30
Probing for AMIC A25LQ16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
31
Probing for AMIC A25LQ032/A25LQ32A, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
32
Probing for AMIC A25LQ64, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
33
Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
34
Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
35
Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
36
Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
37
Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
38
Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
39
Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
40
Probing for Atmel AT25DF641(A), 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
41
Probing for Atmel AT25DL081, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
42
Probing for Atmel AT25DL161, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
43
Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
44
Probing for Atmel AT25F512, 64 kB: probe_spi_at25f: id1 0x00, id2 0x00
45
Probing for Atmel AT25F512A, 64 kB: probe_spi_at25f: id1 0x00, id2 0x00
46
Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
47
Probing for Atmel AT25F1024(A), 128 kB: probe_spi_at25f: id1 0x00, id2 0x00
48
Probing for Atmel AT25F2048, 256 kB: probe_spi_at25f: id1 0x00, id2 0x00
49
Probing for Atmel AT25F4096, 512 kB: probe_spi_at25f: id1 0x00, id2 0x00
50
Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
51
Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
52
Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
53
Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
54
Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
55
Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
56
Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
57
Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
58
Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
59
Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
60
Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
61
Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
62
Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
63
Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
64
Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
65
Probing for Atmel AT45DB321E, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
66
Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
67
Probing for ESMT F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
68
Probing for ESMT F25L32PA, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
69
Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
70
Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
71
Probing for Eon EN25P05, 64 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
72
Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
73
Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
74
Probing for Eon EN25P10, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
75
Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
76
Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
77
Probing for Eon EN25P20, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
78
Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
79
Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
80
Probing for Eon EN25P40, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
81
Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
82
Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
83
Probing for Eon EN25P80, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
84
Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
85
Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
86
Probing for Eon EN25P16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
87
Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
88
Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
89
Probing for Eon EN25P32, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
90
Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
91
Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
92
Probing for Eon EN25P64, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
93
Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
94
Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
95
Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
96
Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
97
Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
98
Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
99
Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
100
Probing for Eon EN25F64, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
101
Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
102
Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
103
Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
104
Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
105
Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
106
Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
107
Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
108
Probing for Eon EN25QH32, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
109
Probing for Eon EN25QH64, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
110
Probing for Eon EN25QH128, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
111
Probing for Eon EN25S10, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
112
Probing for Eon EN25S20, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
113
Probing for Eon EN25S40, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
114
Probing for Eon EN25S80, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
115
Probing for Eon EN25S16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
116
Probing for Eon EN25S32, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
117
Probing for Eon EN25S64, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
118
Probing for ESI ES25P40, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
119
Probing for ESI ES25P80, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
120
Probing for ESI ES25P16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
121
Probing for GigaDevice GD25LQ40, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
122
Probing for GigaDevice GD25LQ80, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
123
Probing for GigaDevice GD25LQ16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
124
Probing for GigaDevice GD25LQ32, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
125
Probing for GigaDevice GD25LQ64(B), 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
126
Probing for GigaDevice GD25LQ128, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
127
Probing for GigaDevice GD25Q512, 64 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
128
Probing for GigaDevice GD25Q10, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
129
Probing for GigaDevice GD25Q20(B), 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
130
Probing for GigaDevice GD25Q40(B), 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
131
Probing for GigaDevice GD25Q80(B), 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
132
Probing for GigaDevice GD25Q16(B), 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
133
Probing for GigaDevice GD25Q32(B), 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
134
Probing for GigaDevice GD25Q64(B), 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
135
Probing for GigaDevice GD25Q128B, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
136
Probing for GigaDevice GD25Q128C, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
137
Probing for GigaDevice GD25T80, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
138
Probing for GigaDevice GD25VQ21B, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
139
Probing for GigaDevice GD25VQ40C, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
140
Probing for GigaDevice GD25VQ41B, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
141
Probing for GigaDevice GD25VQ80C, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
142
Probing for GigaDevice GD25VQ16C, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
143
Probing for Intel 25F160S33B8, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
144
Probing for Intel 25F160S33T8, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
145
Probing for Intel 25F320S33B8, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
146
Probing for Intel 25F320S33T8, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
147
Probing for Intel 25F640S33B8, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
148
Probing for Intel 25F640S33T8, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
149
Probing for Macronix MX23L1654, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
150
Probing for Macronix MX23L3254, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
151
Probing for Macronix MX23L6454, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
152
Probing for Macronix MX23L12854, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
153
Probing for Macronix MX25L512(E)/MX25V512(C), 64 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
154
Probing for Macronix MX25L1005(C)/MX25L1006E, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
155
Probing for Macronix MX25L2005(C)/MX25L2006E, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
156
Probing for Macronix MX25L4005(A/C)/MX25L4006E, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
157
Probing for Macronix MX25L8005/MX25L8006E/MX25L8008E/MX25V8005, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
158
Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
159
Probing for Macronix MX25L1605A/MX25L1606E/MX25L1608E, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
160
Probing for Macronix MX25L1605D/MX25L1608D/MX25L1673E, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
161
Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
162
Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
163
Probing for Macronix MX25L3205(A), 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
164
Probing for Macronix MX25L3205D/MX25L3208D, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
165
Probing for Macronix MX25L3206E/MX25L3208E, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
166
Probing for Macronix MX25L3273E, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
167
Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
168
Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
169
Probing for Macronix MX25L6405D, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
170
Probing for Macronix MX25L6406E/MX25L6408E, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
171
Probing for Macronix MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
172
Probing for Macronix MX25L12805D, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
173
Probing for Macronix MX25L12835F/MX25L12845E/MX25L12865E, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
174
Probing for Macronix MX25U1635E, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
175
Probing for Macronix MX25U3235E/F, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
176
Probing for Macronix MX25U6435E/F, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
177
Probing for Macronix MX25U12835F, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
178
Probing for Macronix MX25L6495F, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
179
Probing for Micron/Numonyx/ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
180
Probing for Micron/Numonyx/ST M25P05, 64 kB: Ignoring RES in favour of RDID.
181
Probing for Micron/Numonyx/ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
182
Probing for Micron/Numonyx/ST M25P10, 128 kB: Ignoring RES in favour of RDID.
183
Probing for Micron/Numonyx/ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
184
Probing for Micron/Numonyx/ST M25P20-old, 256 kB: Ignoring RES in favour of RDID.
185
Probing for Micron/Numonyx/ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
186
Probing for Micron/Numonyx/ST M25P40-old, 512 kB: Ignoring RES in favour of RDID.
187
Probing for Micron/Numonyx/ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
188
Probing for Micron/Numonyx/ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
189
Probing for Micron/Numonyx/ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
190
Probing for Micron/Numonyx/ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
191
Probing for Micron/Numonyx/ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
192
Probing for Micron/Numonyx/ST M25PE10, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
193
Probing for Micron/Numonyx/ST M25PE20, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
194
Probing for Micron/Numonyx/ST M25PE40, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
195
Probing for Micron/Numonyx/ST M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
196
Probing for Micron/Numonyx/ST M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
197
Probing for Micron/Numonyx/ST M25PX80, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
198
Probing for Micron/Numonyx/ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
199
Probing for Micron/Numonyx/ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
200
Probing for Micron/Numonyx/ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
201
Probing for Micron/Numonyx/ST M45PE10, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
202
Probing for Micron/Numonyx/ST M45PE20, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
203
Probing for Micron/Numonyx/ST M45PE40, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
204
Probing for Micron/Numonyx/ST M45PE80, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
205
Probing for Micron/Numonyx/ST M45PE16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
206
Probing for Micron/Numonyx/ST N25Q016, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
207
Probing for Micron/Numonyx/ST N25Q032..1E, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
208
Probing for Micron/Numonyx/ST N25Q032..3E, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
209
Probing for Micron/Numonyx/ST N25Q064..1E, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
210
Probing for Micron/Numonyx/ST N25Q064..3E, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
211
Probing for Micron/Numonyx/ST N25Q128..1E, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
212
Probing for Micron/Numonyx/ST N25Q128..3E, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
213
Probing for Nantronics N25S10, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
214
Probing for Nantronics N25S20, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
215
Probing for Nantronics N25S40, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
216
Probing for Nantronics N25S80, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
217
Probing for Nantronics N25S16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
218
Probing for PMC Pm25LD256C, 32 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
219
Probing for PMC Pm25LD512(C), 64 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
220
Probing for PMC Pm25LD010(C), 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
221
Probing for PMC Pm25LD020(C), 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
222
Probing for PMC Pm25LD040(C), 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
223
Probing for PMC Pm25LQ020, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
224
Probing for PMC Pm25LQ040, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
225
Probing for PMC Pm25LQ080, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
226
Probing for PMC Pm25LQ016, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
227
Probing for PMC Pm25LQ032C, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
228
Probing for PMC Pm25LV512(A), 64 kB: probe_spi_res2: id1 0x0, id2 0x0
229
Probing for PMC Pm25LV010, 128 kB: probe_spi_res2: id1 0x0, id2 0x0
230
Probing for PMC Pm25LV010A, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
231
Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
232
Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
233
Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
234
Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
235
Probing for Sanyo LE25FW106, 128 kB: probe_spi_res2: id1 0x0, id2 0x0
236
Probing for Sanyo LE25FW406A, 512 kB: probe_spi_res2: id1 0x0, id2 0x0
237
Probing for Sanyo LE25FU406B, 512 kB: probe_spi_res2: id1 0x0, id2 0x0
238
Probing for Sanyo LE25FU406C/LE25U40CMC, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
239
Probing for Sanyo LE25FW203A, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
240
Probing for Sanyo LE25FW403A, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
241
Probing for Sanyo LE25FW418A, 512 kB: probe_spi_res2: id1 0x0, id2 0x0
242
Probing for Sanyo LE25FW806, 1024 kB: probe_spi_res2: id1 0x0, id2 0x0
243
Probing for Sanyo LE25FW808, 1024 kB: probe_spi_res2: id1 0x0, id2 0x0
244
Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
245
Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
246
Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
247
Probing for Spansion S25FL032A/P, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
248
Probing for Spansion S25FL064A/P, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
249
Probing for Spansion S25FL204K, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
250
Probing for Spansion S25FL208K, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
251
Probing for Spansion S25FL116K/S25FL216K, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
252
Probing for Spansion S25FL132K, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
253
Probing for Spansion S25FL164K, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
254
Probing for Spansion S25FL127S-64kB, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
255
Probing for Spansion S25FL127S-256kB, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
256
Probing for Spansion S25FL128P......0, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
257
Probing for Spansion S25FL128P......1, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
258
Probing for Spansion S25FL128S......0, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
259
Probing for Spansion S25FL128S......1, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
260
Probing for Spansion S25FL129P......0, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
261
Probing for Spansion S25FL129P......1, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
262
Probing for SST SST25LF020A, 256 kB: probe_spi_rems: id1 0x0, id2 0x0
263
Probing for SST SST25LF040A, 512 kB: probe_spi_res2: id1 0x0, id2 0x0
264
Probing for SST SST25LF080(A), 1024 kB: probe_spi_res2: id1 0x0, id2 0x0
265
Probing for SST SST25VF512(A), 64 kB: probe_spi_rems: id1 0x0, id2 0x0
266
Probing for SST SST25VF010(A), 128 kB: probe_spi_rems: id1 0x0, id2 0x0
267
Probing for SST SST25VF020, 256 kB: probe_spi_rems: id1 0x0, id2 0x0
268
Probing for SST SST25VF020B, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
269
Probing for SST SST25VF040, 512 kB: probe_spi_rems: id1 0x0, id2 0x0
270
Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
271
Probing for SST SST25VF040B.REMS, 512 kB: probe_spi_rems: id1 0x0, id2 0x0
272
Probing for SST SST25WF020A, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
273
Probing for SST SST25WF040B, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
274
Probing for SST SST25WF080B, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
275
Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
276
Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
277
Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
278
Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
279
Probing for SST SST25WF512, 64 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
280
Probing for SST SST25WF010, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
281
Probing for SST SST25WF020, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
282
Probing for SST SST25WF040, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
283
Probing for SST SST25WF080, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
284
Probing for Winbond W25Q40.V, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
285
Probing for Winbond W25Q80.V, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
286
Probing for Winbond W25Q16.V, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
287
Probing for Winbond W25Q32.V, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
288
Probing for Winbond W25Q64.V, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
289
Probing for Winbond W25Q128.V, 16384 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
290
Probing for Winbond W25Q20.W, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
291
Probing for Winbond W25Q40.W, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
292
Probing for Winbond W25Q80.W, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
293
Probing for Winbond W25Q16.W, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
294
Probing for Winbond W25Q32.W, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
295
Probing for Winbond W25Q64.W, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
296
Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
297
Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
298
Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
299
Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
300
Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
301
Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
302
Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
303
Probing for Unknown SFDP-capable chip, 0 kB: No SFDP signature found.
304
Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f7f
305
Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
306
Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
307
Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
308
Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
309
Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
310
Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
311
Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
312
Probing for Winbond unknown Winbond (ex Nexcom) SPI chip, 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
313
Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
314
Found Generic flash chip "unknown SPI chip (RDID)" (0 kB, SPI) on linux_spi.
315
Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0x0, id2 0x0
316
Found Generic flash chip "unknown SPI chip (RDID)" (0 kB, SPI).
317
===
318
This flash part has status NOT WORKING for operations: PROBE READ ERASE WRITE
319
The test status of this chip may have been updated in the latest development
320
version of flashrom. If you are running the latest development version,
321
please email a report to flashrom@flashrom.org if any of the above operations
322
work correctly for you with this flash chip. Please include the flashrom log
323
file for all operations you tested (see the man page for details), and mention
324
which mainboard or programmer you tested in the subject line.
325
Thanks for your help!
326
Read is not working on this chip. Continuing anyway.
327
flashrom has no read function for this flash chip.
328
Aborting.

Wahrscheinlich ist dieser Typ von Flashrom einfach nicht unterstützt, 
ich hatte nur die Hoffnung, dasss es als "Genereic unknown" 
funktionieren könnte.

Ich brauche ein bisschen Input was ich noch probieren könnte. Zur 
Verfügung steht ein Raspberry mit Breadboard, ein ATMEL Evaluation Board 
2.0.1 und der mysmartusb light Programmer. Windows 10 und Linux.

Bin gespannt auf eure Ideen:)

von Sherlock Holmes (Gast)


Lesenswert?

Nobody schrieb:
> ich habe hier ein FRAM von Cypress Typ FM25V20 im pg format.

Nobody schrieb:
> Dieser FRAM kommuniziert über SPI.

Was ist ein pg format?
Nein, ein FRAM kommuniziert nicht, sondern allerhöchstens
ein Programmer oder in deinem Fall ein Raspberry.
Ein FRAM reagiert nur auf SPI Kommandos, kommuniziert also nicht.

Allein deine Ausdrucksweise signalisiert dass du nicht recht
weisst was du tust.

Nobody schrieb:
> Bin gespannt auf eure Ideen:)

Ich habe ein grossartige: Zeige deinen Schaltplan sowie den
Aufbau deiner Testanordnung.

Erst dann wird man dir sagen können ob und was du falsch machst.

von Nobody (Gast)


Angehängte Dateien:

Lesenswert?

Nobody schrieb:
> ich habe hier ein FRAM von Cypress Typ FM25V20 im pg format.

Nobody schrieb:
> Dieser FRAM kommuniziert über SPI.

Was ist ein pg format?
>> darf ich hier verlinken? sonst einfach nach FM25V20-pg suchen. Also ein DIP 
Gehäuse.

Nein, ein FRAM kommuniziert nicht, sondern allerhöchstens
ein Programmer oder in deinem Fall ein Raspberry.
Ein FRAM reagiert nur auf SPI Kommandos, kommuniziert also nicht.
>> Ich habe mich eher auf das Problem an sich konzentriert und weniger auf die 
Ausdrucksweise ob hier kommuniziert oder "befohlen" und "ausgeführt" wird. Aber ja 
du hast recht.

Allein deine Ausdrucksweise signalisiert dass du nicht recht
weisst was du tust.
>> Lasse ich jetzt mal so stehen

Nobody schrieb:
> Bin gespannt auf eure Ideen:)

Ich habe ein grossartige: Zeige deinen Schaltplan sowie den
Aufbau deiner Testanordnung.
>> Ich habe mal drei Fotos angehängt. Ich wollte mit den Leitungen möglichst nah 
an die Pins deswegen ist es etwas unübersichtlich.

Raspberry------------------------FRAM
PIN 17 +3,3V---------------------PIN 8 VDD
PIN 19 MOSI----------------------PIN 5 SI
PIN 21 MISO----------------------PIN 2 SO
PIN 23 SCLK----------------------PIN 6 SCK
PIN 25 GND-----------------------PIN 4 VSS
PIN 24 CE0-----------------------PIN 1 CS
---------------------------------PIN 3 WP->PIN 8 VDD
---------------------------------PIN 7 HOLD-> PIN 8 VDD

Ich glaube das ganze funktioniert nicht richtig, da im Datasheet davon 
die rede ist, dass das Lesekommando erst nach der fallenden Flanke von 
CS beginnt und Flashrom das vielleicht nicht tut.
Oder sehe ich da was falsch?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Bitte lerne korrekt zu zitieren. Was Du da gerade abgeliefert hast, ist 
vornehm umschrieben "wirr".

Vor Deine Antworten auf zitierte Fragen gehört keine einzige 
Spitzklammer.

von A. B. (Gast)


Lesenswert?

Softwareseitig ist ein SPI-FRAM wie ein SPI-Flash zu behandeln, da 
gibt's (außer dass das Programmieren ein "wenig" schneller geht und ein 
vorheriges Löschen entbehrlich ist) kaum einen Unterschied.

Da die ID dem flashrom allerdings unbekannt ist, weiß das gute Stück ja 
nicht einmal über die Kapazität Bescheid - und nicht, ob z. B. 3- oder 
4-Byte-Adressierung nötig ist ...

Es bleibt also nur, in Erfahrung zu bringen, ob bzw. wie man beim 
flashrom die ganzen Parameter des Chips manuell vorgeben kann. Wenn das 
nicht geht, müsste man halt den Sourcecode vom flashrom etwas patchen. 
Eine neue ID mit den Parametern in die vorhandenen Tabellen einbauen 
dürfte simpel sein --- wäre da nicht das Problem mit der ID-Länge. Die 
meisten Programmierer lesen wohl nur die ersten 3 Bytes aus, hier sind 
dummerweise 9 für die eindeutige Identifizierung nötig. Eine 
Quick&Dirty-Lösung wäre, als ID einfach 0x7F, 0x7F, 0x7F einzutragen.

Die ID (oder vielmehr ihr Anfang) sieht ja schon man richtig aus, nur 
sind diese "continuation codes" etwas lästig, aber ansonsten sieht es 
hardwaremäßig völlig in Ordnung aus.

von pegel (Gast)


Lesenswert?

Falls es auf ein eigenes Programm hinaus läuft, für den FM25V10 hat 
schon jemand etwas veröffentlicht. Ist zwar für einen AD µC, das 
betrifft aber nur die Test asm Befehle. C sollte passen.

Da es der FM25V20 ist, muss evtl die ID irgendwo angepasst werden.
Muss aber nicht sein, wenn die nicht benutzt wird.

https://github.com/pkrich/FM25V10

von Helmut -. (dc3yc)


Lesenswert?

Wie wär's, wenn du erst mal den fehlenden Abblochkondensator an die 
Betriebsspannung hängst? Bei 20cm Leitungslänge ein "Muss"!

von A. B. (Gast)


Lesenswert?

pegel schrieb:
> Falls es auf ein eigenes Programm hinaus läuft, für den FM25V10 hat
> schon jemand etwas veröffentlicht. Ist zwar für einen AD µC, das
> betrifft aber nur die Test asm Befehle. C sollte passen.

Wow, ein extra Programm für so'ne kümmerliche Ausleseaktion? Ist das 
nicht ein bisserl übertrieben? Wie schon gesagt, SPI-FRAM ist wie 
SPI-Flash ...

von Nobody (Gast)


Lesenswert?

A. B. schrieb:
> pegel schrieb:
>> Falls es auf ein eigenes Programm hinaus läuft, für den FM25V10 hat
>> schon jemand etwas veröffentlicht. Ist zwar für einen AD µC, das
>> betrifft aber nur die Test asm Befehle. C sollte passen.
>
> Wow, ein extra Programm für so'ne kümmerliche Ausleseaktion? Ist das
> nicht ein bisserl übertrieben? Wie schon gesagt, SPI-FRAM ist wie
> SPI-Flash ...


Ich glaube da brauche ich noch etwas mehr Hilfe.
Ich habe leider keinerlei Programmierkenntnisse. Ich habe mich jetzt mal 
durch ein paar flashrom wikis durchgelesen.
Ich habe folgendes in meine flashchips.c ergänzt:
1
{
2
    .vendor    = "Cypress",
3
    .name    = "FM25V20",
4
    .bustype  = BUS_SPI,
5
    .model_id  = CYPRESS_FM25V20,
6
    .total_size  = 256,
7
    .page_size  = 256,
8
    .tested    = TEST_OK_PR,
9
    .probe    = probe_jedec,
10
    .probe_timing  = TIMING_ZERO,
11
    .write    = write_jedec_1,
12
    .read    = read_memmapped,
13
    .voltage  = {2000, 3700},
14
  },

und folgendes in flashchips.h:
1
#define  CYPRESS_ID    0x7F
2
#define CYPRESS_FM25V20 0x7F, 0x7F, 0x7F

das war aber eher alles vergleichen/testen/probieren da ich davon leider 
keinerlei Ahnung habe.
Da sind wahrscheinlich Fehler drin.
Das Kompilieren funktioniert nur beim testen kriege ich jetzt 
"Bus-Zugriffsfehler".

@Helmut: Was für einen Kondensator empfiehlst du hier?

Danke schonmal für die Antworten

von A. B. (Gast)


Lesenswert?

Nobody schrieb:
> Ich habe folgendes in meine flashchips.c ergänzt:
>
>
1
> {
2
>     .vendor    = "Cypress",
3
>     .name    = "FM25V20",
4
>     .bustype  = BUS_SPI,
5
>     .model_id  = CYPRESS_FM25V20,
6
>     .total_size  = 256,
7
>     .page_size  = 256,
8
>     .tested    = TEST_OK_PR,
9
>     .probe    = probe_jedec,
10
>     .probe_timing  = TIMING_ZERO,
11
>     .write    = write_jedec_1,
12
>     .read    = read_memmapped,
13
>     .voltage  = {2000, 3700},
14
>   },
15
>

Warum so kompliziert? Einfach einen SPI-Flash mit gleicher Kapazität 
suchen, die entsprechende Manufacturer ID auf 0x7F ändern,
die Chip-ID auf 0x7F7F (oder der Eintrag kopieren und ensprechend 
ändern, dann sollte "name" natürlich auch geändert werden), und das 
war's.

> und folgendes in flashchips.h:
>
>
1
> #define CYPRESS_FM25V20 0x7F, 0x7F, 0x7F
2
>

Das geht nicht, denn die 3-Byte-ID wird innerhalb flashrom in zwei Teile 
zerlegt, erstes Byte die Manufacturer-ID, und die restlichen beiden 
Bytes zusammen sind die Chip-ID, also "0x7F7F", nicht "0x7f, 0x7F, 
0x7F". Nicht umsonst sieht man in der Ausgabe jeweils "id1 0x7f7f, id2 
0x7f".
"name" anzupassen, ist nur Kosmetik und für eine einmalige Aktion 
überflüssig.

von Nobody (Gast)


Lesenswert?

A. B. schrieb:
> Warum so kompliziert? Einfach einen SPI-Flash mit gleicher Kapazität
> suchen, die entsprechende Manufacturer ID auf 0x7F ändern,
> die Chip-ID auf 0x7F7F (oder der Eintrag kopieren und ensprechend
> ändern, dann sollte "name" natürlich auch geändert werden), und das
> war's.
>
>> und folgendes in flashchips.h:
>>
>>> #define CYPRESS_FM25V20 0x7F, 0x7F, 0x7F
>>
> Das geht nicht, denn die 3-Byte-ID wird innerhalb flashrom in zwei Teile
> zerlegt, erstes Byte die Manufacturer-ID, und die restlichen beiden
> Bytes zusammen sind die Chip-ID, also "0x7F7F", nicht "0x7f, 0x7F,
> 0x7F". Nicht umsonst sieht man in der Ausgabe jeweils "id1 0x7f7f, id2
> 0x7f".
> "name" anzupassen, ist nur Kosmetik und für eine einmalige Aktion
> überflüssig.

So kompliziert wars jetzt gar nicht. Ich habe flashchips.c jetz so 
angepasst.
1
{
2
    .vendor    = "Cypress",
3
    .name    = "FM25V20",
4
    .bustype  = BUS_SPI,
5
    .manufacture_id  = CYPRESS_ID,
6
    .model_id  = CYPRESS_FM25V20,
7
    .total_size  = 256,
8
    .page_size  = 256,
9
    .tested    = TEST_UNTESTED,
10
    .probe    = probe_spi_rdid,
11
    .probe_timing  = TIMING_ZERO,
12
    .write    = write_jedec_1,
13
    .read    = read_memmapped,
14
    .voltage  = {2000, 3700},
15
  },

und flashchips.h
1
#define CYPRESS_ID    0x7F7F
2
#define CYPRESS_FM25V20 0x7F
so findet er jetzt auch den FRAM.
1
...
2
Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
3
Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
4
Probing for Winbond unknown Winbond (ex Nexcom) SPI chip, 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
5
Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0x7f7f, id2 0x7f
6
Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0x0, id2 0x0
7
Found Cypress flash chip "FM25V20" (256 kB, SPI).
8
===

Das auslesen läuft durch nur erhalte ich jetzt eine leere datei:
1
pi@test:~/git/flashrom $ hexdump test.bin
2
0000000 0000 0000 0000 0000 0000 0000 0000 0000
3
*
4
0040000

Auch wenn das jetzt komplizierter war als du vorgeschlagen hast ist das 
so korrekt? Er findet ja den richtigen typen. jetzt ist nur die frage, 
warum ich eine leere Datei bekomme. Im FRAM sollten Daten gespeichert 
sein. Zudem kommt mir die Datei etwas klein vor oder ist das richtig so?

von A. B. (Gast)


Lesenswert?

Nobody schrieb:
>
1
> {
2
>     .vendor    = "Cypress",
3
>     .name    = "FM25V20",
4
>     .bustype  = BUS_SPI,
5
>     .manufacture_id  = CYPRESS_ID,
6
>     .model_id  = CYPRESS_FM25V20,
7
>     .total_size  = 256,
8
>     .page_size  = 256,
9
>     .tested    = TEST_UNTESTED,
10
>     .probe    = probe_spi_rdid,
11
>     .probe_timing  = TIMING_ZERO,
12
>     .write    = write_jedec_1,
13
>     .read    = read_memmapped,
14
15
Das müsste aber 
16
17
      .read           = spi_chip_read,
18
19
lauten, analog beim .write. Deshalb hatte ich gerade vorgeschlagen, einen Eintrag von einem entsprechenden SPI-Flash zu nehmen ;-)
20
21
>     .voltage  = {2000, 3700},
22
>   },
23
>
>
> und flashchips.h
>
1
> #define CYPRESS_ID    0x7F7F
2
> #define CYPRESS_FM25V20 0x7F
3
>
> so findet er jetzt auch den FRAM.

Das sollte eigentlich genau anders herum sein: Manufacturer ist ein(!)
Byte und die eigentliche Chip-ID zwei(!) Bytes.

> Das auslesen läuft durch nur erhalte ich jetzt eine leere datei:
>
1
> pi@test:~/git/flashrom $ hexdump test.bin
2
> 0000000 0000 0000 0000 0000 0000 0000 0000 0000
3
> *
4
> 0040000
5
>

> Auch wenn das jetzt komplizierter war als du vorgeschlagen hast ist das
> so korrekt? Er findet ja den richtigen typen. jetzt ist nur die frage,
> warum ich eine leere Datei bekomme. Im FRAM sollten Daten gespeichert
> sein. Zudem kommt mir die Datei etwas klein vor oder ist das richtig so?

Die Länge der Datei ist doch 0x40000 (auch wenn nur ein Teil ausgegeben 
wird, '*' steht für "usw."), das sind 256 kByte, das passt doch.

von Nobody (Gast)


Lesenswert?

A. B. schrieb:
> Nobody schrieb:
>>> {
>>     .vendor    = "Cypress",
>>     .name    = "FM25V20",
>>     .bustype  = BUS_SPI,
>>     .manufacture_id  = CYPRESS_ID,
>>     .model_id  = CYPRESS_FM25V20,
>>     .total_size  = 256,
>>     .page_size  = 256,
>>     .tested    = TEST_UNTESTED,
>>     .probe    = probe_spi_rdid,
>>     .probe_timing  = TIMING_ZERO,
>>     .write    = write_jedec_1,
>>     .read    = read_memmapped,
>
> Das müsste aber
>
>       .read           = spi_chip_read,
>
> lauten, analog beim .write. Deshalb hatte ich gerade vorgeschlagen,
> einen Eintrag von einem entsprechenden SPI-Flash zu nehmen ;-)
>
>>     .voltage  = {2000, 3700},
>>   },
>> >
>> und flashchips.h
>>> #define CYPRESS_ID    0x7F7F
>> #define CYPRESS_FM25V20 0x7F
>> > so findet er jetzt auch den FRAM.
>
> Das sollte eigentlich genau anders herum sein: Manufacturer ist ein(!)
> Byte und die eigentliche Chip-ID zwei(!) Bytes.
>
>> Das auslesen läuft durch nur erhalte ich jetzt eine leere datei:
>>> pi@test:~/git/flashrom $ hexdump test.bin
>> 0000000 0000 0000 0000 0000 0000 0000 0000 0000
>> *
>> 0040000
>>
>> Auch wenn das jetzt komplizierter war als du vorgeschlagen hast ist das
>> so korrekt? Er findet ja den richtigen typen. jetzt ist nur die frage,
>> warum ich eine leere Datei bekomme. Im FRAM sollten Daten gespeichert
>> sein. Zudem kommt mir die Datei etwas klein vor oder ist das richtig so?
>
> Die Länge der Datei ist doch 0x40000 (auch wenn nur ein Teil ausgegeben
> wird, '*' steht für "usw."), das sind 256 kByte, das passt doch.

Okay das read und write habe ich angepasst. Write gab es zweimal, 
spi_chip_write1 und spi_write_chip256.
Ich habe write1 probiert.
1
{
2
    .vendor    = "Cypress",
3
    .name    = "FM25V20",
4
    .bustype  = BUS_SPI,
5
    .manufacture_id  = CYPRESS_ID,
6
    .model_id  = CYPRESS_FM25V20,
7
    .total_size  = 256,
8
    .page_size  = 256,
9
    .tested    = TEST_UNTESTED,
10
    .probe    = probe_spi_rdid,
11
    .probe_timing  = TIMING_ZERO,
12
    .write    = spi_chip_write_1,
13
    .read    = spi_chip_read,
14
    .voltage  = {2000, 3700},
15
  },

Im Header hab ich es nochmal versucht mit CYPRESS_ID 0x75 und 
CYPRESS_FM25V20 0x7F7F. Dann erkennt er aber den Chip nicht mehr und 
sagt gerenic unknown flash chip.

Angenommen der Flash ist wirklich leer und der Output wäre korrekt würde 
ich gerne noch die gegenprobe machen und daten auf den Chip schreiben. 
Ich habe mir mit dd eine Datei erzeugt und versucht diese zu schreiben 
jedoch möchte flashrom unbedingt vorher löschen obwohl ich auch den 
eraseblock teil raus genommen habe.

https://www.flashrom.org/Easy_projects#Add_.28ferroelectric.2C_F-RAM.29_SPI_chips_made_by_Cypress_.2F_Ramtron

Hier steht auch, dass bei Cypress Chips ein löschen nicht notwendig ist. 
Ich weiß leider nicht wo ich das noch deaktivieren muss damit flashrom 
die daten schreibt ohne zu löschen.

Kannst du mir da auch helfen?
Lg

von A. B. (Gast)


Lesenswert?

Löschen einfach ignorieren: Das FRAM kennt das entsprechende Kommando 
nicht und sollte daher nach dessen Empfang gar nichts tun. Ärgerlich 
wär's nur, wenn flashrom nach dem Löschen automatisch prüft, ob überall 
0xFF drinsteht, aber das macht es wahrscheinlich nicht.

Zu Frage leer oder nicht leer: Wo kommt das FRAM her? Frisch oder 
irgendwo ausgebaut? Im ersten Fall wär's nicht verwunderlich. Leider 
weiß ich nicht mehr, wie der Ursprungszustand bei den FRAMs ist, hatte 
schon verschiedene ausprobiert, auch von Fujitsu. Im Datenblatt habe ich 
dazu auf die Schnelle keinen Kommentar gesehen, müsste man noch mal 
gründlich durchlesen ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.