* 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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox