* Re: jffs2 and unaligned access
[not found] <20080507102724.GE4326@pengutronix.de>
@ 2008-05-07 10:53 ` David Woodhouse
2008-05-07 13:25 ` Sascha Hauer
2008-05-07 20:42 ` Segher Boessenkool
0 siblings, 2 replies; 5+ messages in thread
From: David Woodhouse @ 2008-05-07 10:53 UTC (permalink / raw)
To: Sascha Hauer; +Cc: linuxppc-dev, linux-mtd
On Wed, 2008-05-07 at 12:27 +0200, Sascha Hauer wrote:
> memcpy_from/to_io() use word aligned accesses on the io side of memory.
> The MPC5200 local plus bus where our flashes are connected does not
> allow unaligned accesses, so we have to use the io versions of memcpy.
But this region of flash is marked as suitable for execute-in-place,
otherwise the point() function wouldn't be working to give a direct
pointer to it. It sounds like we shouldn't be allowing that.
Which in turn means that perhaps we should have a property in the
corresponding node in the device-tree which indicates that it's not
suitable for direct access?
--
dwmw2
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: jffs2 and unaligned access
2008-05-07 10:53 ` jffs2 and unaligned access David Woodhouse
@ 2008-05-07 13:25 ` Sascha Hauer
2008-06-05 21:38 ` Jon Smirl
2008-05-07 20:42 ` Segher Boessenkool
1 sibling, 1 reply; 5+ messages in thread
From: Sascha Hauer @ 2008-05-07 13:25 UTC (permalink / raw)
To: David Woodhouse; +Cc: linuxppc-dev, linux-mtd
On Wed, May 07, 2008 at 11:53:49AM +0100, David Woodhouse wrote:
> On Wed, 2008-05-07 at 12:27 +0200, Sascha Hauer wrote:
> > memcpy_from/to_io() use word aligned accesses on the io side of memory.
> > The MPC5200 local plus bus where our flashes are connected does not
> > allow unaligned accesses, so we have to use the io versions of memcpy.
>
> But this region of flash is marked as suitable for execute-in-place,
> otherwise the point() function wouldn't be working to give a direct
> pointer to it. It sounds like we shouldn't be allowing that.
It actually is suitable for execute-in-place. It's the flash U-Boot
starts from. The compiler will generate a proper alignment for you.
>
> Which in turn means that perhaps we should have a property in the
> corresponding node in the device-tree which indicates that it's not
> suitable for direct access?
So far we did not work with the device-tree flash binding but with the
physmap-flash driver, but ok, this is subject to change anyway.
I gave it a quick try to disable direct accesses. It works, but has a
1:10 performance impact on mounting a jffs2. At least it's a clean
solution.
Sascha
--
Pengutronix e.K. - Linux Solutions for Science and Industry
-----------------------------------------------------------
Kontakt-Informationen finden Sie im Header dieser Mail oder
auf der Webseite -> http://www.pengutronix.de/impressum/ <-
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: jffs2 and unaligned access
2008-05-07 10:53 ` jffs2 and unaligned access David Woodhouse
2008-05-07 13:25 ` Sascha Hauer
@ 2008-05-07 20:42 ` Segher Boessenkool
2008-05-08 13:19 ` Detlev Zundel
1 sibling, 1 reply; 5+ messages in thread
From: Segher Boessenkool @ 2008-05-07 20:42 UTC (permalink / raw)
To: David Woodhouse; +Cc: linuxppc-dev, linux-mtd
>> memcpy_from/to_io() use word aligned accesses on the io side of
>> memory.
>> The MPC5200 local plus bus where our flashes are connected does not
>> allow unaligned accesses, so we have to use the io versions of memcpy.
>
> But this region of flash is marked as suitable for execute-in-place,
> otherwise the point() function wouldn't be working to give a direct
> pointer to it. It sounds like we shouldn't be allowing that.
>
> Which in turn means that perhaps we should have a property in the
> corresponding node in the device-tree which indicates that it's not
> suitable for direct access?
This isn't usually a property of the flash device, but of the various
buses/controllers above the flash device. The device tree should mimic
reality (and it does, it just seems the kernel doesn't use this
information
yet?)
Segher
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: jffs2 and unaligned access
2008-05-07 20:42 ` Segher Boessenkool
@ 2008-05-08 13:19 ` Detlev Zundel
0 siblings, 0 replies; 5+ messages in thread
From: Detlev Zundel @ 2008-05-08 13:19 UTC (permalink / raw)
To: linuxppc-dev; +Cc: linux-mtd
Hi,
>>> memcpy_from/to_io() use word aligned accesses on the io side of
>>> memory.
>>> The MPC5200 local plus bus where our flashes are connected does not
>>> allow unaligned accesses, so we have to use the io versions of memcpy.
>>
>> But this region of flash is marked as suitable for execute-in-place,
>> otherwise the point() function wouldn't be working to give a direct
>> pointer to it. It sounds like we shouldn't be allowing that.
>>
>> Which in turn means that perhaps we should have a property in the
>> corresponding node in the device-tree which indicates that it's not
>> suitable for direct access?
>
> This isn't usually a property of the flash device, but of the various
> buses/controllers above the flash device.
I wholeheartedly agree. After all, its the Local+ bus playing games
here. And fixing that for JFFS2 only ignores that other devices can
*and will* be connected on this bus. Unaligned accesses to such devices
will also fail (likely from mtd unrelated code) - and fail silently,
taking quite a while to figure out what is going wrong where.
> The device tree should mimic reality (and it does, it just seems the
> kernel doesn't use this information yet?)
How is this exactly supposed to work?
Cheers
Detlev
--
In the topologic hell the beer is packed in Klein's bottles.
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu@denx.de
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: jffs2 and unaligned access
2008-05-07 13:25 ` Sascha Hauer
@ 2008-06-05 21:38 ` Jon Smirl
0 siblings, 0 replies; 5+ messages in thread
From: Jon Smirl @ 2008-06-05 21:38 UTC (permalink / raw)
To: Sascha Hauer; +Cc: linux-mtd, David Woodhouse, linuxppc-dev
On 5/7/08, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> On Wed, May 07, 2008 at 11:53:49AM +0100, David Woodhouse wrote:
> > On Wed, 2008-05-07 at 12:27 +0200, Sascha Hauer wrote:
> > > memcpy_from/to_io() use word aligned accesses on the io side of memory.
> > > The MPC5200 local plus bus where our flashes are connected does not
> > > allow unaligned accesses, so we have to use the io versions of memcpy.
> >
> > But this region of flash is marked as suitable for execute-in-place,
> > otherwise the point() function wouldn't be working to give a direct
> > pointer to it. It sounds like we shouldn't be allowing that.
>
>
> It actually is suitable for execute-in-place. It's the flash U-Boot
> starts from. The compiler will generate a proper alignment for you.
>
>
> >
> > Which in turn means that perhaps we should have a property in the
> > corresponding node in the device-tree which indicates that it's not
> > suitable for direct access?
>
>
> So far we did not work with the device-tree flash binding but with the
> physmap-flash driver, but ok, this is subject to change anyway.
>
> I gave it a quick try to disable direct accesses. It works, but has a
> 1:10 performance impact on mounting a jffs2. At least it's a clean
> solution.
How did this get resolved? The thread died without any final solution
being proposed.
>
>
> Sascha
>
>
>
> --
> Pengutronix e.K. - Linux Solutions for Science and Industry
> -----------------------------------------------------------
> Kontakt-Informationen finden Sie im Header dieser Mail oder
> auf der Webseite -> http://www.pengutronix.de/impressum/ <-
>
--
Jon Smirl
jonsmirl@gmail.com
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-06-05 21:38 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20080507102724.GE4326@pengutronix.de>
2008-05-07 10:53 ` jffs2 and unaligned access David Woodhouse
2008-05-07 13:25 ` Sascha Hauer
2008-06-05 21:38 ` Jon Smirl
2008-05-07 20:42 ` Segher Boessenkool
2008-05-08 13:19 ` Detlev Zundel
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).