All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.