* 64-bit Data Flash Access Problem [MPC8245]
@ 2003-09-24 17:04 Augustine Nebu Philips
2003-09-24 18:13 ` Dan Malek
0 siblings, 1 reply; 7+ messages in thread
From: Augustine Nebu Philips @ 2003-09-24 17:04 UTC (permalink / raw)
To: linuxppc-embedded
Hi
I have a set of 8 1GB data flash chips (Samsung) on an MPC8245 Ref. Board. These are on a 64-bit bus-mode.
-------DBUS_SIZ[0-1]:DBUS_SIZ[2] = 110b -------
All 8 chips are selected by a single chip select (RCS1). Trying a 32-bit read from the Data Address Location after giving the Command to Access the flash IDs, only 4 flashes on a common byte lane seem to be responding. 32-bit writes appear only on the DH[0-31] and not on DL[0-31].
I am not very clear as to:
(a) How do we perform writes to send out data out on
all 64-bits of the bus..?
(b) How would we ideally access 64-bit data through 32- bit reads..?
(c) Or must we *have* 64- bit read/write
instructions..?
many thanks in advance for any response ..
Regards
Nebu
Need a new email address that people can remember
Check out the new EudoraMail at
http://www.eudoramail.com
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: 64-bit Data Flash Access Problem [MPC8245]
@ 2003-09-24 17:31 Steven Blakeslee
0 siblings, 0 replies; 7+ messages in thread
From: Steven Blakeslee @ 2003-09-24 17:31 UTC (permalink / raw)
To: 'nebuphilips@eudoramail.com', linuxppc-embedded
Are you sure you are not using software floating points?
-----Original Message-----
From: Augustine Nebu Philips [mailto:nebuphilips@eudoramail.com]
Sent: Wednesday, September 24, 2003 1:05 PM
To: linuxppc-embedded@lists.linuxppc.org
Subject: 64-bit Data Flash Access Problem [MPC8245]
Hi
I have a set of 8 1GB data flash chips (Samsung) on an MPC8245 Ref. Board.
These are on a 64-bit bus-mode.
-------DBUS_SIZ[0-1]:DBUS_SIZ[2] = 110b -------
All 8 chips are selected by a single chip select (RCS1). Trying a 32-bit
read from the Data Address Location after giving the Command to Access the
flash IDs, only 4 flashes on a common byte lane seem to be responding.
32-bit writes appear only on the DH[0-31] and not on DL[0-31].
I am not very clear as to:
(a) How do we perform writes to send out data out on
all 64-bits of the bus..?
(b) How would we ideally access 64-bit data through 32- bit reads..?
(c) Or must we *have* 64- bit read/write
instructions..?
many thanks in advance for any response ..
Regards
Nebu
Need a new email address that people can remember
Check out the new EudoraMail at
http://www.eudoramail.com
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: 64-bit Data Flash Access Problem [MPC8245]
@ 2003-09-24 17:34 Augustine Nebu Philips
0 siblings, 0 replies; 7+ messages in thread
From: Augustine Nebu Philips @ 2003-09-24 17:34 UTC (permalink / raw)
To: linuxppc-embedded
Steve,
I tried to use fp assembly instructions (like lfd). But my assembler has problems and doesnt let me generate my binary. I'm sorry I couldnt properly get you... Should I make use of sw floating points..? That means, should I access 64-bit data only through 64-bit operations..?
Thanks and Regards
Nebu
--------- Original Message ---------
DATE: Wed, 24 Sep 2003 13:31:50
From: Steven Blakeslee <BlakesleeS@embeddedplanet.com>
>Are you sure you are not using software floating points?
>
>Subject: 64-bit Data Flash Access Problem [MPC8245]
>
>
>
>Hi
>I have a set of 8 1GB data flash chips (Samsung) on an MPC8245 Ref. Board.
>These are on a 64-bit bus-mode.
>
>-------DBUS_SIZ[0-1]:DBUS_SIZ[2] = 110b -------
>
>All 8 chips are selected by a single chip select (RCS1). Trying a 32-bit
>read from the Data Address Location after giving the Command to Access the
>flash IDs, only 4 flashes on a common byte lane seem to be responding.
>32-bit writes appear only on the DH[0-31] and not on DL[0-31].
>
>I am not very clear as to:
>
>(a) How do we perform writes to send out data out on
> all 64-bits of the bus..?
>(b) How would we ideally access 64-bit data through 32- bit reads..?
>(c) Or must we *have* 64- bit read/write
> instructions..?
>
>many thanks in advance for any response ..
>
>Regards
>Nebu
>
>
>Need a new email address that people can remember
>Check out the new EudoraMail at
>http://www.eudoramail.com
>
>
Need a new email address that people can remember
Check out the new EudoraMail at
http://www.eudoramail.com
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 64-bit Data Flash Access Problem [MPC8245]
[not found] <0000C657.C22236@eudoramail.com>
@ 2003-09-24 17:43 ` Jerry Van Baren
0 siblings, 0 replies; 7+ messages in thread
From: Jerry Van Baren @ 2003-09-24 17:43 UTC (permalink / raw)
To: linuxppc-embedded
32 bit reads should be easy: reading 32 bits should cause a 64 (full width)
read since you only have one chip select and the processor will ignore the
32 bits it doesn't want. I'm confused when you say you have only one chip
select but then say only 4 chips respond when you do a 32 bit read. How do
the other 4 chips know _not_ to respond?
Writing is much more complicated. If you have what you say you have, 64
bit wide flash with no provisions for selecting upper/lower, you will need
to do 64 bit write operations. This requires a "trick": using a floating
point store operation, which is a 64 bit write. As an alternative, you can
enable cache, do your write, and then flush the cache (also a 64 bit
write), but that is much more complex because you have the cache as an
intermediary between you and your flash and it will do things you didn't
expect it to do :-(.
gvb
At 12:04 PM 9/24/2003 -0400, nebuphilips@eudoramail.com wrote:
>
>I have a set of 8 1GB data flash chips (Samsung) on an MPC8245 Ref.
>Board. These are on a 64-bit bus-mode.
>
>-------DBUS_SIZ[0-1]:DBUS_SIZ[2] = 110b -------
>
>All 8 chips are selected by a single chip select (RCS1). Trying a
>32-bit read from the Data Address Location after giving the Command
>to Access the flash IDs, only 4 flashes on a common byte lane seem to
>be responding. 32-bit writes appear only on the DH[0-31] and not on
>DL[0-31].
>
>I am not very clear as to:
>
>(a) How do we perform writes to send out data out on
> all 64-bits of the bus..?
>(b) How would we ideally access 64-bit data through 32-bit reads..?
>(c) Or must we *have* 64- bit read/write
> instructions..?
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: 64-bit Data Flash Access Problem [MPC8245]
@ 2003-09-24 18:03 Steven Blakeslee
0 siblings, 0 replies; 7+ messages in thread
From: Steven Blakeslee @ 2003-09-24 18:03 UTC (permalink / raw)
To: 'nebuphilips@eudoramail.com', linuxppc-embedded
It sounded like the problem you were describing is caused by software
floating points. If the bus size is 64bit then you must write 64bit.
Software floating points cheat this by doing two consecutive 32bit writes,
the 8245 will not allow this.
-----Original Message-----
From: Augustine Nebu Philips [mailto:nebuphilips@eudoramail.com]
Sent: Wednesday, September 24, 2003 1:35 PM
To: linuxppc-embedded@lists.linuxppc.org
Subject: RE: 64-bit Data Flash Access Problem [MPC8245]
Steve,
I tried to use fp assembly instructions (like lfd). But my assembler has
problems and doesnt let me generate my binary. I'm sorry I couldnt properly
get you... Should I make use of sw floating points..? That means, should I
access 64-bit data only through 64-bit operations..?
Thanks and Regards
Nebu
--------- Original Message ---------
DATE: Wed, 24 Sep 2003 13:31:50
From: Steven Blakeslee <BlakesleeS@embeddedplanet.com>
>Are you sure you are not using software floating points?
>
>Subject: 64-bit Data Flash Access Problem [MPC8245]
>
>
>
>Hi
>I have a set of 8 1GB data flash chips (Samsung) on an MPC8245 Ref. Board.
>These are on a 64-bit bus-mode.
>
>-------DBUS_SIZ[0-1]:DBUS_SIZ[2] = 110b -------
>
>All 8 chips are selected by a single chip select (RCS1). Trying a 32-bit
>read from the Data Address Location after giving the Command to Access the
>flash IDs, only 4 flashes on a common byte lane seem to be responding.
>32-bit writes appear only on the DH[0-31] and not on DL[0-31].
>
>I am not very clear as to:
>
>(a) How do we perform writes to send out data out on
> all 64-bits of the bus..?
>(b) How would we ideally access 64-bit data through 32- bit reads..?
>(c) Or must we *have* 64- bit read/write
> instructions..?
>
>many thanks in advance for any response ..
>
>Regards
>Nebu
>
>
>Need a new email address that people can remember
>Check out the new EudoraMail at
>http://www.eudoramail.com
>
>
Need a new email address that people can remember
Check out the new EudoraMail at
http://www.eudoramail.com
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: 64-bit Data Flash Access Problem [MPC8245]
@ 2003-09-24 18:07 Milliorn Gary-rxcr80
0 siblings, 0 replies; 7+ messages in thread
From: Milliorn Gary-rxcr80 @ 2003-09-24 18:07 UTC (permalink / raw)
To: 'nebuphilips@eudoramail.com', linuxppc-embedded
> -----Original Message-----
> From: Augustine Nebu Philips [mailto:nebuphilips@eudoramail.com]
>...
> I have a set of 8 1GB data flash chips (Samsung) on an MPC8245 Ref.
> Board. These are on a 64-bit bus-mode.
>
> -------DBUS_SIZ[0-1]:DBUS_SIZ[2] = 110b -------
>
> All 8 chips are selected by a single chip select (RCS1). Trying a
> 32-bit read from the Data Address Location after giving the Command
> to Access the flash IDs, only 4 flashes on a common byte lane seem to
> be responding. 32-bit writes appear only on the DH[0-31] and not on
> DL[0-31].
Is this under Linux, or something else?
> I am not very clear as to:
>
> (a) How do we perform writes to send out data out on all 64-bits of
> the bus..?
stfd is the only way to do that. You'll need floating
point enabled on the code generation. stfd works regardless
of general FP emulation support, but if code is interrupted
and the FPRs are not restored, it breaks.
> (b) How would we ideally access 64-bit data through 32-bit reads..?
For reads? Any way you want. The 8245 will gather the
data for you. You could load 64 bits with lfd, but
transferring data from the FPRs to the GPRS would lose
any advantage over just doing two 32-bit reads.
> (c) Or must we *have* 64- bit read/write instructions..?
Since there is a common WE* line, you must write all
the flash commands at the same time. Attempting to
write two 32-bit command sets (i.e UNLOCK to flashaddr[0]
and flashaddr[4]) would result in a second write of the CFI
pattern, resetting it.
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: 64-bit Data Flash Access Problem [MPC8245]
2003-09-24 17:04 64-bit Data Flash Access Problem [MPC8245] Augustine Nebu Philips
@ 2003-09-24 18:13 ` Dan Malek
0 siblings, 0 replies; 7+ messages in thread
From: Dan Malek @ 2003-09-24 18:13 UTC (permalink / raw)
To: nebuphilips; +Cc: linuxppc-embedded
Augustine Nebu Philips wrote:
> I am not very clear as to:
>
> (a) How do we perform writes to send out data out on
> all 64-bits of the bus..?
> (b) How would we ideally access 64-bit data through 32- bit reads..?
> (c) Or must we *have* 64- bit read/write
> instructions..?
This has been discussed before and you can probably find more details
in the mailing list archives. There are two approaches. One is to use
floating point registers, another is to use cache line operations. Floating
point isn't enabled in the kernel, so you will have to make some modifications
to context switching if you choose that mode (not my recommendation). You
can use the cache line instructions to zero/load/store cache lines that
represent I/O to the flash parts. The best solution is to not use 64-bit
wide flash arrays....
If you write a user space application and mmap() the flash, which is a
common method, either solution is available to you.
good luck.
-- Dan
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2003-09-24 18:13 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-24 17:04 64-bit Data Flash Access Problem [MPC8245] Augustine Nebu Philips
2003-09-24 18:13 ` Dan Malek
-- strict thread matches above, loose matches on Subject: below --
2003-09-24 17:31 Steven Blakeslee
2003-09-24 17:34 Augustine Nebu Philips
[not found] <0000C657.C22236@eudoramail.com>
2003-09-24 17:43 ` Jerry Van Baren
2003-09-24 18:03 Steven Blakeslee
2003-09-24 18:07 Milliorn Gary-rxcr80
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).