linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Problem with 745x errata in 2.6.8
@ 2004-09-17 22:03 Ken Moffat
  2004-09-18  0:01 ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 10+ messages in thread
From: Ken Moffat @ 2004-09-17 22:03 UTC (permalink / raw)
  To: linuxppc-dev

Hi,

 I'm trying to get the port to the AmigaOne/Teron into a fit state to
attempt to submit it.  I've got it working adequately in 2.6.7 (no ide
dma, obviously, and no floppy disk, plus other minor issues) but
obviously I need to get it up to the current version before asking for
your comments on what needs to be changed to make it acceptable.

 Unfortunately, the following changes in 2.6.8-rc3 stop my 7455 from
booting (with a vga console, it stops after the console: colour VGA+
80x25 message, and also the top of the screen is blank).  If I revert
these, it runs.  I'm totally out of my depth here, I don't even know how
to work out which sort of 7455 I've got, much less what this is all
doing.  Can anybody offer me some pointers, please ?

Ken

--- linux-2.6.8-rc2/arch/ppc/kernel/cputable.c=092004-09-17 15:26:38.000000=
000 +0100
+++ linux-2.6.8-rc3/arch/ppc/kernel/cputable.c=092004-09-17 15:27:45.000000=
000 +0100
@@ -55,7 +55,8 @@ extern void __setup_cpu_generic(unsigned
 #endif

 /* We need to mark all pages as being coherent if we're SMP or we
- * have a 754x and an MPC107 host bridge. */
+ * have a 754x and an MPC107 host bridge.
+ */
 #if defined(CONFIG_SMP) || defined(CONFIG_MPC10X_BRIDGE)
 #define CPU_FTR_COMMON                  CPU_FTR_NEED_COHERENT
 #else
@@ -263,7 +264,7 @@ struct cpu_spec=09cpu_specs[] =3D {
 =09CPU_FTR_COMMON |
     =09CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB |
 =09CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
-=09CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450,
+=09CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NEED_COHERENT,
 =09COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
 =0932, 32,
 =09__setup_cpu_745x
@@ -274,7 +275,7 @@ struct cpu_spec=09cpu_specs[] =3D {
     =09CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
 =09CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
 =09CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
-=09CPU_FTR_L3_DISABLE_NAP,
+=09CPU_FTR_L3_DISABLE_NAP | CPU_FTR_NEED_COHERENT,
 =09COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
 =0932, 32,
 =09__setup_cpu_745x
@@ -284,7 +285,8 @@ struct cpu_spec=09cpu_specs[] =3D {
 =09CPU_FTR_COMMON |
     =09CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
 =09CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
-=09CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR,
+=09CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
+=09CPU_FTR_NEED_COHERENT,
 =09COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
 =0932, 32,
 =09__setup_cpu_745x
@@ -294,7 +296,8 @@ struct cpu_spec=09cpu_specs[] =3D {
 =09CPU_FTR_COMMON |
     =09CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB |
 =09CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
-=09CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_HAS_HIGH_BATS,
+=09CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_HAS_HIGH_BATS |
+=09CPU_FTR_NEED_COHERENT,
 =09COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
 =0932, 32,
 =09__setup_cpu_745x
@@ -305,7 +308,7 @@ struct cpu_spec=09cpu_specs[] =3D {
     =09CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
 =09CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
 =09CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
-=09CPU_FTR_L3_DISABLE_NAP | CPU_FTR_HAS_HIGH_BATS,
+=09CPU_FTR_L3_DISABLE_NAP | CPU_FTR_NEED_COHERENT | CPU_FTR_HAS_HIGH_BATS,
 =09COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
 =0932, 32,
 =09__setup_cpu_745x
@@ -316,18 +319,40 @@ struct cpu_spec=09cpu_specs[] =3D {
     =09CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
 =09CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
 =09CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
-=09CPU_FTR_HAS_HIGH_BATS,
+=09CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT,
+=09COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
+=0932, 32,
+=09__setup_cpu_745x
+    },
+    {=09/* 7447/7457 Rev 1.0 */
+    =090xffffffff, 0x80020100, "7447/7457",
+=09CPU_FTR_COMMON |
+    =09CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
+=09CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
+=09CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
+=09CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT | CPU_FTR_NO_BTIC,
+=09COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
+=0932, 32,
+=09__setup_cpu_745x
+    },
+    {=09/* 7447/7457 Rev 1.1 */
+    =090xffffffff, 0x80020101, "7447/7457",
+=09CPU_FTR_COMMON |
+    =09CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
+=09CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
+=09CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
+=09CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT | CPU_FTR_NO_BTIC,
 =09COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
 =0932, 32,
 =09__setup_cpu_745x
     },
-    {=09/* 7457 */
-    =090xffff0000, 0x80020000, "7457",
+    {=09/* 7447/7457 Rev 1.2 and later */
+    =090xffff0000, 0x80020000, "7447/7457",
 =09CPU_FTR_COMMON |
     =09CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
 =09CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
 =09CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
-=09CPU_FTR_HAS_HIGH_BATS,
+=09CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT,
 =09COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
 =0932, 32,
 =09__setup_cpu_745x
@@ -338,7 +363,7 @@ struct cpu_spec=09cpu_specs[] =3D {
     =09CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
 =09CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP |
 =09CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
-=09CPU_FTR_HAS_HIGH_BATS,
+=09CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT,
 =09COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
 =0932, 32,
 =09__setup_cpu_745x
@@ -351,8 +376,8 @@ struct cpu_spec=09cpu_specs[] =3D {
 =0932, 32,
 =09__setup_cpu_603
     },
-    {=09/* 8280 is a G2_LE (603e core, plus some) */
-=090x7fff0000, 0x00820000, "8280",
+    {=09/* All G2_LE (603e core, plus some) have the same pvr */
+=090x7fff0000, 0x00820000, "G2_LE",
 =09CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_CAN_DOZE | CPU_FTR_USE_TB |
 =09CPU_FTR_CAN_NAP | CPU_FTR_HAS_HIGH_BATS,
 =09COMMON_PPC,

--=20
 das eine Mal als Trag=F6die, das andere Mal als Farce

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Problem with 745x errata in 2.6.8
  2004-09-17 22:03 Problem with 745x errata in 2.6.8 Ken Moffat
@ 2004-09-18  0:01 ` Benjamin Herrenschmidt
  2004-09-18  9:39   ` Ken Moffat
  0 siblings, 1 reply; 10+ messages in thread
From: Benjamin Herrenschmidt @ 2004-09-18  0:01 UTC (permalink / raw)
  To: Ken Moffat; +Cc: linuxppc-dev

On Sat, 2004-09-18 at 08:03, Ken Moffat wrote:
> Hi,
> 
>  I'm trying to get the port to the AmigaOne/Teron into a fit state to
> attempt to submit it.  I've got it working adequately in 2.6.7 (no ide
> dma, obviously, and no floppy disk, plus other minor issues) but
> obviously I need to get it up to the current version before asking for
> your comments on what needs to be changed to make it acceptable.
> 
>  Unfortunately, the following changes in 2.6.8-rc3 stop my 7455 from
> booting (with a vga console, it stops after the console: colour VGA+
> 80x25 message, and also the top of the screen is blank).  If I revert
> these, it runs.  I'm totally out of my depth here, I don't even know how
> to work out which sort of 7455 I've got, much less what this is all
> doing.  Can anybody offer me some pointers, please ?

What exact PVR do you have ? It could be your nortbridge not beeing
properly setup for the kind of snoop cycles issued when the M bit
is set on all pages ? In this case, it has to be fixed at that level
(contact AmigaOne/Teron) as I will not revert that fix.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Problem with 745x errata in 2.6.8
  2004-09-18  0:01 ` Benjamin Herrenschmidt
@ 2004-09-18  9:39   ` Ken Moffat
  2004-09-18 10:09     ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 10+ messages in thread
From: Ken Moffat @ 2004-09-18  9:39 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev

On Sat, 18 Sep 2004, Benjamin Herrenschmidt wrote:

> On Sat, 2004-09-18 at 08:03, Ken Moffat wrote:
> > Hi,
> >
> >  I'm trying to get the port to the AmigaOne/Teron into a fit state to
> > attempt to submit it.  I've got it working adequately in 2.6.7 (no ide
> > dma, obviously, and no floppy disk, plus other minor issues) but
> > obviously I need to get it up to the current version before asking for
> > your comments on what needs to be changed to make it acceptable.
> >
> >  Unfortunately, the following changes in 2.6.8-rc3 stop my 7455 from
> > booting (with a vga console, it stops after the console: colour VGA+
> > 80x25 message, and also the top of the screen is blank).  If I revert
> > these, it runs.  I'm totally out of my depth here, I don't even know ho=
w
> > to work out which sort of 7455 I've got, much less what this is all
> > doing.  Can anybody offer me some pointers, please ?
>
> What exact PVR do you have ? It could be your nortbridge not beeing
> properly setup for the kind of snoop cycles issued when the M bit
> is set on all pages ? In this case, it has to be fixed at that level
> (contact AmigaOne/Teron) as I will not revert that fix.
>

 Ben, thanks for the response.  Until 2 minutes ago I didn't know what
this usage of PVR was, so at the moment I haven't got a clue about what
it contains or how to read it, but I guess that's where the values in
the cpu_sec struct come from so I'll start looking.  Your comment on the
northbridge sounds depressingly likely.

Ken
--=20
 das eine Mal als Trag=F6die, das andere Mal als Farce

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Problem with 745x errata in 2.6.8
  2004-09-18  9:39   ` Ken Moffat
@ 2004-09-18 10:09     ` Benjamin Herrenschmidt
  2004-09-18 11:36       ` Ken Moffat
  0 siblings, 1 reply; 10+ messages in thread
From: Benjamin Herrenschmidt @ 2004-09-18 10:09 UTC (permalink / raw)
  To: Ken Moffat; +Cc: linuxppc-dev


> this usage of PVR was, so at the moment I haven't got a clue about what
> it contains or how to read it, but I guess that's where the values in
> the cpu_sec struct come from so I'll start looking.  Your comment on the
> northbridge sounds depressingly likely.

PVR is the Processor Version Register, indicates which CPU you have

Ben.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Problem with 745x errata in 2.6.8
  2004-09-18 10:09     ` Benjamin Herrenschmidt
@ 2004-09-18 11:36       ` Ken Moffat
  2004-09-18 16:37         ` Ken Moffat
  2004-09-19  4:21         ` Benjamin Herrenschmidt
  0 siblings, 2 replies; 10+ messages in thread
From: Ken Moffat @ 2004-09-18 11:36 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev

On Sat, 18 Sep 2004, Benjamin Herrenschmidt wrote:

>
> > this usage of PVR was, so at the moment I haven't got a clue about what
> > it contains or how to read it, but I guess that's where the values in
> > the cpu_sec struct come from so I'll start looking.  Your comment on th=
e
> > northbridge sounds depressingly likely.
>
> PVR is the Processor Version Register, indicates which CPU you have
>
> Ben.
>
 Thanks, I'd already found that on google.  First attempt to dump mine
into a printk is building - don't hold your breathe ;-)

Ken
--=20
 das eine Mal als Trag=F6die, das andere Mal als Farce

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Problem with 745x errata in 2.6.8
  2004-09-18 11:36       ` Ken Moffat
@ 2004-09-18 16:37         ` Ken Moffat
  2004-09-19  4:25           ` Benjamin Herrenschmidt
  2004-09-19  4:21         ` Benjamin Herrenschmidt
  1 sibling, 1 reply; 10+ messages in thread
From: Ken Moffat @ 2004-09-18 16:37 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev

On Sat, 18 Sep 2004, Ken Moffat wrote:

> On Sat, 18 Sep 2004, Benjamin Herrenschmidt wrote:
>
> >
> > PVR is the Processor Version Register, indicates which CPU you have
> >
> > Ben.
> >
>  Thanks, I'd already found that on google.  First attempt to dump mine
> into a printk is building - don't hold your breathe ;-)
>

 The PVR is 80010201 so it uses the "7455 others" code.

Ken
--=20
 das eine Mal als Trag=F6die, das andere Mal als Farce

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Problem with 745x errata in 2.6.8
  2004-09-18 11:36       ` Ken Moffat
  2004-09-18 16:37         ` Ken Moffat
@ 2004-09-19  4:21         ` Benjamin Herrenschmidt
  1 sibling, 0 replies; 10+ messages in thread
From: Benjamin Herrenschmidt @ 2004-09-19  4:21 UTC (permalink / raw)
  To: Ken Moffat; +Cc: linuxppc-dev

On Sat, 2004-09-18 at 21:36, Ken Moffat wrote:
> On Sat, 18 Sep 2004, Benjamin Herrenschmidt wrote:
> 
> >
> > > this usage of PVR was, so at the moment I haven't got a clue about what
> > > it contains or how to read it, but I guess that's where the values in
> > > the cpu_sec struct come from so I'll start looking.  Your comment on the
> > > northbridge sounds depressingly likely.
> >
> > PVR is the Processor Version Register, indicates which CPU you have
> >
> > Ben.
> >
>  Thanks, I'd already found that on google.  First attempt to dump mine
> into a printk is building - don't hold your breathe ;-)

It's in /proc/cpuinfo ;)

Ben.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Problem with 745x errata in 2.6.8
  2004-09-18 16:37         ` Ken Moffat
@ 2004-09-19  4:25           ` Benjamin Herrenschmidt
  2004-09-19 10:16             ` Ken Moffat
  0 siblings, 1 reply; 10+ messages in thread
From: Benjamin Herrenschmidt @ 2004-09-19  4:25 UTC (permalink / raw)
  To: Ken Moffat; +Cc: linuxppc-dev

On Sun, 2004-09-19 at 02:37, Ken Moffat wrote:
> On Sat, 18 Sep 2004, Ken Moffat wrote:
> 
> > On Sat, 18 Sep 2004, Benjamin Herrenschmidt wrote:
> >
> > >
> > > PVR is the Processor Version Register, indicates which CPU you have
> > >
> > > Ben.
> > >
> >  Thanks, I'd already found that on google.  First attempt to dump mine
> > into a printk is building - don't hold your breathe ;-)
> >
> 
>  The PVR is 80010201 so it uses the "7455 others" code.

Hrm... I invite you to read the gazillion errata for this chip rev :(

You should also contact the AmigaOS folks, they might have configured
something in the northbridge in a way that won't work when the M bit is
set but there might be a workaround. I suppose their northbridge spec is
kept behind closed door though, as it is common nowadays :(

Ben.

-- 
Benjamin Herrenschmidt <benh@kernel.crashing.org>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Problem with 745x errata in 2.6.8
  2004-09-19  4:25           ` Benjamin Herrenschmidt
@ 2004-09-19 10:16             ` Ken Moffat
  2004-09-19 10:23               ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 10+ messages in thread
From: Ken Moffat @ 2004-09-19 10:16 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev

On Sun, 19 Sep 2004, Benjamin Herrenschmidt wrote:

> On Sun, 2004-09-19 at 02:37, Ken Moffat wrote:
> > On Sat, 18 Sep 2004, Ken Moffat wrote:
> >
> > > On Sat, 18 Sep 2004, Benjamin Herrenschmidt wrote:
> > >
> > > >
> > > > PVR is the Processor Version Register, indicates which CPU you have
> > > >
> > > > Ben.
> > > >
> > >  Thanks, I'd already found that on google.  First attempt to dump min=
e
> > > into a printk is building - don't hold your breathe ;-)
> > >
> >
> >  The PVR is 80010201 so it uses the "7455 others" code.
>
> Hrm... I invite you to read the gazillion errata for this chip rev :(
>

 Are they available online ?  Would I understand them ?

> You should also contact the AmigaOS folks, they might have configured
> something in the northbridge in a way that won't work when the M bit is
> set but there might be a workaround. I suppose their northbridge spec is
> kept behind closed door though, as it is common nowadays :(
>
> Ben.
>
>

 Actually, I think it's kept in a locked cupboard in a room labelled
"beware of the leopard", in a basement at the bottom of some broken
stairs.  FWIW, the option biting me is CPU_FTR_NEED_COHERENT - no real
surprises there.

 I'll have another go at trying to talk to them.  Thanks for your
responses.

Ken
--
 das eine Mal als Trag=F6die, das andere Mal als Farce

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Problem with 745x errata in 2.6.8
  2004-09-19 10:16             ` Ken Moffat
@ 2004-09-19 10:23               ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 10+ messages in thread
From: Benjamin Herrenschmidt @ 2004-09-19 10:23 UTC (permalink / raw)
  To: Ken Moffat; +Cc: linuxppc-dev

On Sun, 2004-09-19 at 20:16, Ken Moffat wrote:

>  Actually, I think it's kept in a locked cupboard in a room labelled
> "beware of the leopard", in a basement at the bottom of some broken
> stairs.  FWIW, the option biting me is CPU_FTR_NEED_COHERENT - no real
> surprises there.
> 
>  I'll have another go at trying to talk to them.  Thanks for your
> responses.

Yes, we have to set the "M" (coherent) bit on all memory pages even
when not running SMP on those CPUs to work around a CPU bug.

Ben.
 

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2004-09-19 10:24 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-17 22:03 Problem with 745x errata in 2.6.8 Ken Moffat
2004-09-18  0:01 ` Benjamin Herrenschmidt
2004-09-18  9:39   ` Ken Moffat
2004-09-18 10:09     ` Benjamin Herrenschmidt
2004-09-18 11:36       ` Ken Moffat
2004-09-18 16:37         ` Ken Moffat
2004-09-19  4:25           ` Benjamin Herrenschmidt
2004-09-19 10:16             ` Ken Moffat
2004-09-19 10:23               ` Benjamin Herrenschmidt
2004-09-19  4:21         ` Benjamin Herrenschmidt

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).