* Au1000 PCMCIA broken in 2.6.20
@ 2007-02-21 7:38 Manuel Lauss
2007-02-21 8:19 ` Ulrich Eckhardt
2007-02-21 9:37 ` Ralf Baechle
0 siblings, 2 replies; 4+ messages in thread
From: Manuel Lauss @ 2007-02-21 7:38 UTC (permalink / raw)
To: linux-mips
Hello,
PCMCIA is broken on my Au1200 platform. Seems to me that accesses to Attribute
memory are broken; a dump of the CIS reveals the following:
1.0: ParseTuple: Bad CIS tuple
00000000 01 03 ff ff ff 1c 04 ff ff ff ff 18 02 ff ff 20 |............... |
00000010 04 98 00 00 00 15 20 04 ff ff ff ff ff ff ff ff |...... .........|
00000020 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00000030 ff ff ff ff ff ff ff 21 02 04 01 22 02 ff ff 22 |.......!..."..."|
00000040 03 ff ff ff 1a 05 ff ff ff ff ff 1b 08 ff ff ff |................|
00000050 ff ff ff ff ff 1b 06 ff ff ff ff ff ff 1b 0a ff |................|
00000060 ff ff ff ff ff ff ff ff ff 1b 06 ff ff ff ff ff |................|
00000070 ff 1b 0f ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00000080 ff ff 1b 06 ff ff ff ff ff ff 1b 0f ff ff ff ff |................|
00000090 ff ff ff ff ff ff ff ff ff ff ff 1b 06 ff ff ff |................|
000000a0 ff ff ff 14 00 |.....|
it should look like this:
00000000 01 03 d9 01 ff 1c 04 03 d9 01 ff 18 02 df 01 20 |............... |
00000010 04 98 00 00 00 15 20 04 01 54 4f 53 48 49 42 41 |...... ..TOSHIBA|
00000020 20 54 48 4e 43 46 32 35 36 4d 50 47 20 00 00 00 | THNCF256MPG ...|
00000030 00 00 00 00 00 00 ff 21 02 04 01 22 02 01 01 22 |.......!..."..."|
00000040 03 02 0c 0f 1a 05 01 03 00 02 0f 1b 08 c0 c0 a1 |................|
00000050 01 55 08 00 20 1b 06 00 01 21 b5 1e 4d 1b 0a c1 |.U.. ....!..M...|
00000060 41 99 01 55 64 f0 ff ff 20 1b 06 01 01 21 b5 1e |A..Ud... ....!..|
00000070 4d 1b 0f c2 41 99 01 55 ea 61 f0 01 07 f6 03 01 |M...A..U.a......|
00000080 ee 20 1b 06 02 01 21 b5 1e 4d 1b 0f c3 41 99 01 |. ....!..M...A..|
00000090 55 ea 61 70 01 07 76 03 01 ee 20 1b 06 03 01 21 |U.ap..v... ....!|
000000a0 b5 1e 4d 14 00 |..M..|
Reverting "[PATCH] Generic ioremap_page_range: mips conversion" makes it
work again:
http://www.linux-mips.org/git?p=linux.git;a=commitdiff_plain;h=8e087929df884dbb13e383d49d192bdd6928ecbf;hp=62dfb5541a025b47df9405ff0219c7829a97d83b
The socket driver I use is a simplified version of au1000_generic and
au1000_db1x00 combined. None of those have received any updates since
the above mentioned patch went it.
Thanks!
--
ml.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Au1000 PCMCIA broken in 2.6.20
2007-02-21 7:38 Au1000 PCMCIA broken in 2.6.20 Manuel Lauss
@ 2007-02-21 8:19 ` Ulrich Eckhardt
2007-02-21 8:44 ` Manuel Lauss
2007-02-21 9:37 ` Ralf Baechle
1 sibling, 1 reply; 4+ messages in thread
From: Ulrich Eckhardt @ 2007-02-21 8:19 UTC (permalink / raw)
To: linux-mips
On Wednesday 21 February 2007 08:38, Manuel Lauss wrote:
> PCMCIA is broken on my Au1200 platform. Seems to me that accesses to
> Attribute memory are broken; a dump of the CIS reveals the following:
>
> 1.0: ParseTuple: Bad CIS tuple
> 00000000 01 03 ff ff ff 1c 04 ff ff ff ff 18 02 ff ff 20
> 00000010 04 98 00 00 00 15 20 04 ff ff ff ff ff ff ff ff
> 00000020 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> 00000030 ff ff ff ff ff ff ff 21 02 04 01 22 02 ff ff 22
[...]
> it should look like this:
> 00000000 01 03 d9 01 ff 1c 04 03 d9 01 ff 18 02 df 01 20
> 00000010 04 98 00 00 00 15 20 04 01 54 4f 53 48 49 42 41
> 00000020 20 54 48 4e 43 46 32 35 36 4d 50 47 20 00 00 00
Can you rule out a timing problem, i.e. that the system bus is configured
correctly? The reason I ask is that some values seem to be read correctly but
others not. I seem to remember something like that keeping me busy trying to
get an Au1100 to run. Also, try a different card, too, I experienced hard
lockups with CF cards of one brand that (on an electronic level) seemed to
behave badly and cause the system to break.
> Reverting "[PATCH] Generic ioremap_page_range: mips conversion" makes it
> work again:
> http://www.linux-mips.org/git?p=linux.git;a=commitdiff_plain;h=8e087929df88
>4dbb13e383d49d192bdd6928ecbf;hp=62dfb5541a025b47df9405ff0219c7829a97d83b
I see one thing that disturbs me a lot in this code (before but even more
after this changeset): use of casts in the calls to remap_area_pages or
ioremap_page_range. Those typically only serve to hide errors and
specifically on the Au1100 (probably also on Au1200) because there the
physical addresses are 36 bit while virtual addresses are 32 bit. If there is
a truncation going on due to wrong datatypes, these casts will disable the
compiler warnings.
Apropos, the switching between 32 and 36 bit physical addresses was done via a
configuration setting in 2.4, try toggling that one, too, if it still exists.
Uli
--
Sator Laser GmbH
Geschäftsführer: Ronald Boers Steuernummer: 02/892/02900
Amtsgericht Hamburg HR B62 932 USt-Id.Nr.: DE183047360
**************************************************************************************
Visit our website at <http://www.satorlaser.de/>
**************************************************************************************
Diese E-Mail einschließlich sämtlicher Anhänge ist nur für den Adressaten bestimmt und kann vertrauliche Informationen enthalten. Bitte benachrichtigen Sie den Absender umgehend, falls Sie nicht der beabsichtigte Empfänger sein sollten. Die E-Mail ist in diesem Fall zu löschen und darf weder gelesen, weitergeleitet, veröffentlicht oder anderweitig benutzt werden.
E-Mails können durch Dritte gelesen werden und Viren sowie nichtautorisierte Änderungen enthalten. Sator Laser GmbH ist für diese Folgen nicht verantwortlich.
**************************************************************************************
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Au1000 PCMCIA broken in 2.6.20
2007-02-21 8:19 ` Ulrich Eckhardt
@ 2007-02-21 8:44 ` Manuel Lauss
0 siblings, 0 replies; 4+ messages in thread
From: Manuel Lauss @ 2007-02-21 8:44 UTC (permalink / raw)
To: Ulrich Eckhardt; +Cc: linux-mips
Hi Ulrich,
On Wed, Feb 21, 2007 at 09:19:16AM +0100, Ulrich Eckhardt wrote:
> On Wednesday 21 February 2007 08:38, Manuel Lauss wrote:
> > PCMCIA is broken on my Au1200 platform. Seems to me that accesses to
> > Attribute memory are broken; a dump of the CIS reveals the following:
> >
> > 1.0: ParseTuple: Bad CIS tuple
> > 00000000 01 03 ff ff ff 1c 04 ff ff ff ff 18 02 ff ff 20
> > 00000010 04 98 00 00 00 15 20 04 ff ff ff ff ff ff ff ff
> > 00000020 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> > 00000030 ff ff ff ff ff ff ff 21 02 04 01 22 02 ff ff 22
> [...]
> > it should look like this:
> > 00000000 01 03 d9 01 ff 1c 04 03 d9 01 ff 18 02 df 01 20
> > 00000010 04 98 00 00 00 15 20 04 01 54 4f 53 48 49 42 41
> > 00000020 20 54 48 4e 43 46 32 35 36 4d 50 47 20 00 00 00
>
> Can you rule out a timing problem, i.e. that the system bus is configured
> correctly? The reason I ask is that some values seem to be read correctly but
> others not. I seem to remember something like that keeping me busy trying to
No timing problems. For testing purposes I set timings as slow as possible
(at least the hw people told me the timings they gave me were slowest
possible).
> get an Au1100 to run. Also, try a different card, too, I experienced hard
> lockups with CF cards of one brand that (on an electronic level) seemed to
> behave badly and cause the system to break.
I have tested lots of cf cards from different vendors on 2.6.19 and none
locked the system or behaved badly in any way. So I think I can rule out
any hardware issues.
> > Reverting "[PATCH] Generic ioremap_page_range: mips conversion" makes it
> > work again:
> > http://www.linux-mips.org/git?p=linux.git;a=commitdiff_plain;h=8e087929df88
> >4dbb13e383d49d192bdd6928ecbf;hp=62dfb5541a025b47df9405ff0219c7829a97d83b
>
> I see one thing that disturbs me a lot in this code (before but even more
> after this changeset): use of casts in the calls to remap_area_pages or
> ioremap_page_range. Those typically only serve to hide errors and
> specifically on the Au1100 (probably also on Au1200) because there the
> physical addresses are 36 bit while virtual addresses are 32 bit. If there is
> a truncation going on due to wrong datatypes, these casts will disable the
> compiler warnings.
> Apropos, the switching between 32 and 36 bit physical addresses was done via a
> configuration setting in 2.4, try toggling that one, too, if it still exists.
pcmcia does not work without 64 bit mode anyway (CONFIG_64BIT_PHYS_ADDR=y)
As I stated, simply reverting the patch fixes all pcmcia issues for me.
CF cards and ethernet work absolutely fine without it.
So I think it's that the upper 4 of the 36 bits addresses get lost somewhere
in the new ioremap path. I hope someone with more kernel knowledge is
willing to look into it.
Thanks!
--
ml.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Au1000 PCMCIA broken in 2.6.20
2007-02-21 7:38 Au1000 PCMCIA broken in 2.6.20 Manuel Lauss
2007-02-21 8:19 ` Ulrich Eckhardt
@ 2007-02-21 9:37 ` Ralf Baechle
1 sibling, 0 replies; 4+ messages in thread
From: Ralf Baechle @ 2007-02-21 9:37 UTC (permalink / raw)
To: Manuel Lauss; +Cc: linux-mips
On Wed, Feb 21, 2007 at 08:38:48AM +0100, Manuel Lauss wrote:
> Date: Wed, 21 Feb 2007 08:38:48 +0100
> From: Manuel Lauss <mano@roarinelk.homelinux.net>
> To: linux-mips@linux-mips.org
> Subject: Au1000 PCMCIA broken in 2.6.20
> Content-Type: text/plain; charset=us-ascii
>
> Hello,
>
> PCMCIA is broken on my Au1200 platform. Seems to me that accesses to Attribute
> memory are broken; a dump of the CIS reveals the following:
>
> 1.0: ParseTuple: Bad CIS tuple
> 00000000 01 03 ff ff ff 1c 04 ff ff ff ff 18 02 ff ff 20 |............... |
> 00000010 04 98 00 00 00 15 20 04 ff ff ff ff ff ff ff ff |...... .........|
> 00000020 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
> 00000030 ff ff ff ff ff ff ff 21 02 04 01 22 02 ff ff 22 |.......!..."..."|
> 00000040 03 ff ff ff 1a 05 ff ff ff ff ff 1b 08 ff ff ff |................|
> 00000050 ff ff ff ff ff 1b 06 ff ff ff ff ff ff 1b 0a ff |................|
> 00000060 ff ff ff ff ff ff ff ff ff 1b 06 ff ff ff ff ff |................|
> 00000070 ff 1b 0f ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
> 00000080 ff ff 1b 06 ff ff ff ff ff ff 1b 0f ff ff ff ff |................|
> 00000090 ff ff ff ff ff ff ff ff ff ff ff 1b 06 ff ff ff |................|
> 000000a0 ff ff ff 14 00 |.....|
>
> it should look like this:
> 00000000 01 03 d9 01 ff 1c 04 03 d9 01 ff 18 02 df 01 20 |............... |
> 00000010 04 98 00 00 00 15 20 04 01 54 4f 53 48 49 42 41 |...... ..TOSHIBA|
> 00000020 20 54 48 4e 43 46 32 35 36 4d 50 47 20 00 00 00 | THNCF256MPG ...|
> 00000030 00 00 00 00 00 00 ff 21 02 04 01 22 02 01 01 22 |.......!..."..."|
> 00000040 03 02 0c 0f 1a 05 01 03 00 02 0f 1b 08 c0 c0 a1 |................|
> 00000050 01 55 08 00 20 1b 06 00 01 21 b5 1e 4d 1b 0a c1 |.U.. ....!..M...|
> 00000060 41 99 01 55 64 f0 ff ff 20 1b 06 01 01 21 b5 1e |A..Ud... ....!..|
> 00000070 4d 1b 0f c2 41 99 01 55 ea 61 f0 01 07 f6 03 01 |M...A..U.a......|
> 00000080 ee 20 1b 06 02 01 21 b5 1e 4d 1b 0f c3 41 99 01 |. ....!..M...A..|
> 00000090 55 ea 61 70 01 07 76 03 01 ee 20 1b 06 03 01 21 |U.ap..v... ....!|
> 000000a0 b5 1e 4d 14 00 |..M..|
>
> Reverting "[PATCH] Generic ioremap_page_range: mips conversion" makes it
> work again:
> http://www.linux-mips.org/git?p=linux.git;a=commitdiff_plain;h=8e087929df884dbb13e383d49d192bdd6928ecbf;hp=62dfb5541a025b47df9405ff0219c7829a97d83b
>
> The socket driver I use is a simplified version of au1000_generic and
> au1000_db1x00 combined. None of those have received any updates since
> the above mentioned patch went it.
Yes, the patch indeed is bogus; the MIPS version is capable of dealing with
longer addresses - which only makes a difference for Alchemy. The Alchemy
designers did quite a nice job except on the address space layout which
really sucks rocks through a straw.
Ralf
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-02-21 9:38 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-21 7:38 Au1000 PCMCIA broken in 2.6.20 Manuel Lauss
2007-02-21 8:19 ` Ulrich Eckhardt
2007-02-21 8:44 ` Manuel Lauss
2007-02-21 9:37 ` Ralf Baechle
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.