@@ -1132,6 +1132,42 @@.dcache_bsize=32,.platform="ppc440",},+{/* 440EPX - with Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008D0,+.cpu_name="440EPX - with Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE|PPC_FEATURE_HAS_FPU,/* 440EPX has an FPU */+.icache_bsize=32,+.dcache_bsize=32,+},+{/* 440EPX - without Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008D4,+.cpu_name="440EPX - no Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE|PPC_FEATURE_HAS_FPU,/* 440EPX has an FPU */+.icache_bsize=32,+.dcache_bsize=32,+},+{/* 440GRX - with Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008D8,+.cpu_name="440GRX - with Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE,/* 440GRX has no FPU */+.icache_bsize=32,+.dcache_bsize=32,+},+{/* 440GRX - without Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008DC,+.cpu_name="440GRX - no Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE,/* 440GRX has no FPU */+.icache_bsize=32,+.dcache_bsize=32,+},{/* 440GP Rev. B */.pvr_mask=0xf0000fff,.pvr_value=0x40000440,
@@ -36,6 +44,13 @@selectPPC_FPUselectIBM440EP_ERR42+config440EPX+bool+selectPPC_FPU+# Disabled until the new EMAC Driver is merged.+# select IBM_NEW_EMAC_EMAC4+# select IBM_NEW_EMAC_ZMII+config440GPbool# Disabled until the new EMAC Driver is merged.
@@ -49,7 +64,7 @@config440Abool-depends on440GX+depends on440GX||440EPXdefaulty# 44x errata/workaround config symbols, selected by the CPU models above
@@ -1132,6 +1132,42 @@.dcache_bsize=32,.platform="ppc440",},+{/* 440EPX - with Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008D0,+.cpu_name="440EPX - with Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE|PPC_FEATURE_HAS_FPU,/* 440EPX has an FPU */+.icache_bsize=32,+.dcache_bsize=32,+},+{/* 440EPX - without Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008D4,+.cpu_name="440EPX - no Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE|PPC_FEATURE_HAS_FPU,/* 440EPX has an FPU */+.icache_bsize=32,+.dcache_bsize=32,+},
Since the with/without Security/Kasumi versions have no differences in
their cputable entry other than the PVR, couldn't you just remove the
relevant PVR bit from the mask and use a single entry?
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
Since the with/without Security/Kasumi versions have no differences in
their cputable entry other than the PVR, couldn't you just remove the
relevant PVR bit from the mask and use a single entry?
And get rid of the stupid "has an FPU" comment at the same time
please :-)
Segher
Since the with/without Security/Kasumi versions have no differences in
their cputable entry other than the PVR, couldn't you just remove the
relevant PVR bit from the mask and use a single entry?
And get rid of the stupid "has an FPU" comment at the same time
please :-)
Actually that comment may be worthwhile if expanded a little. I think
the point is that 440EPx *unlike most other 4xx chips* has an FPU. So
the point of the comment is not explaining the feature bit, which is
obvious, but as a "no, really, it does".
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
Since the with/without Security/Kasumi versions have no differences in
their cputable entry other than the PVR, couldn't you just remove the
relevant PVR bit from the mask and use a single entry?
And get rid of the stupid "has an FPU" comment at the same time
please :-)
Actually that comment may be worthwhile if expanded a little. I think
the point is that 440EPx *unlike most other 4xx chips* has an FPU. So
the point of the comment is not explaining the feature bit, which is
obvious, but as a "no, really, it does".
Right. 440EP(x) are the only currently available 44x chips that
contain an FPU, so I also think the comment can stay.
josh
@@ -1132,6 +1132,42 @@.dcache_bsize=32,.platform="ppc440",},+{/* 440EPX - with Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008D0,+.cpu_name="440EPX - with Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE|PPC_FEATURE_HAS_FPU,/* 440EPX has an FPU */+.icache_bsize=32,+.dcache_bsize=32,+},+{/* 440EPX - without Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008D4,+.cpu_name="440EPX - no Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE|PPC_FEATURE_HAS_FPU,/* 440EPX has an FPU */+.icache_bsize=32,+.dcache_bsize=32,+},+{/* 440GRX - with Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008D8,+.cpu_name="440GRX - with Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE,/* 440GRX has no FPU */+.icache_bsize=32,+.dcache_bsize=32,+},+{/* 440GRX - without Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008DC,+.cpu_name="440GRX - no Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE,/* 440GRX has no FPU */+.icache_bsize=32,+.dcache_bsize=32,+},
Should the 440GRX PVR additions be done in a separate patch? Or is the
PVR and cpu features truly the only difference between 440EPx and
440GRx?
Should the 440GRX PVR additions be done in a separate patch? Or is the
PVR and cpu features truly the only difference between 440EPx and
440GRx?
I think it makes sense to add the 440GRx with this patchset too. The 440GRx is
a subset of the 440EPx, missing some stuff like USB, FPU. And the AMCC
Rainier 440GRx eval board is a subset of the Sequoia eval board. So no new
board specific sources should be necessary to support the Rainier, just a
different defconfig file.
Best regards,
Stefan
Since the with/without Security/Kasumi versions have no
differences in
their cputable entry other than the PVR, couldn't you just
remove the
relevant PVR bit from the mask and use a single entry?
And get rid of the stupid "has an FPU" comment at the same time
please :-)
Actually that comment may be worthwhile if expanded a little. I
think
the point is that 440EPx *unlike most other 4xx chips* has an
FPU. So
the point of the comment is not explaining the feature bit, which is
obvious, but as a "no, really, it does".
Right. 440EP(x) are the only currently available 44x chips that
contain an FPU, so I also think the comment can stay.
I agree w/Segher the comment is redundant. Just make a note of the
fact that we really have FPU in the commit message.
- k
@@ -1132,6 +1132,42 @@.dcache_bsize=32,.platform="ppc440",},+{/* 440EPX - with Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008D0,+.cpu_name="440EPX - with Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE|PPC_FEATURE_HAS_FPU,/* 440EPX has an FPU */+.icache_bsize=32,+.dcache_bsize=32,+},+{/* 440EPX - without Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008D4,+.cpu_name="440EPX - no Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE|PPC_FEATURE_HAS_FPU,/* 440EPX has an FPU */+.icache_bsize=32,+.dcache_bsize=32,+},+{/* 440GRX - with Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008D8,+.cpu_name="440GRX - with Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE,/* 440GRX has no FPU */+.icache_bsize=32,+.dcache_bsize=32,+},+{/* 440GRX - without Security/Kasumi */+.pvr_mask=0xf0000fff,+.pvr_value=0x200008DC,+.cpu_name="440GRX - no Security/Kasumi",+.cpu_features=CPU_FTRS_44X,+.cpu_user_features=COMMON_USER_BOOKE,/* 440GRX has no FPU */+.icache_bsize=32,+.dcache_bsize=32,+},
Should the 440GRX PVR additions be done in a separate patch? Or is the
PVR and cpu features truly the only difference between 440EPx and
440GRx?
440GRx Doesn't have USB (host/device) controllers and and FPU.
Actually, I have a 440GRx board with the same PVR valus as 440EPx has.
HW bug may be?
I think I'll remove 440GRx for now.
Should the 440GRX PVR additions be done in a separate patch? Or is the
PVR and cpu features truly the only difference between 440EPx and
440GRx?
I think it makes sense to add the 440GRx with this patchset too. The 440GRx is
a subset of the 440EPx, missing some stuff like USB, FPU. And the AMCC
Rainier 440GRx eval board is a subset of the Sequoia eval board. So no new
board specific sources should be necessary to support the Rainier, just a
different defconfig file.
Best regards,
Stefan
I have a Rainier 440GRx board and the PVR is equal to the 440EPx one
(0x200008D0). This has to be handled somehow, since the
PPC_FEATURE_HAS_FPU flag should *not* be set for 440GRx.
I'm really not sure how though. Any ideas are greatly appreciated :)
Is it a h/w bug?
Thanks,
Valentine.
From: Stefan Roese <sr@denx.de> Date: 2007-08-03 12:23:22
On Friday 03 August 2007, Valentine Barshak wrote:
quoted
quoted
Should the 440GRX PVR additions be done in a separate patch? Or is the
PVR and cpu features truly the only difference between 440EPx and
440GRx?
I think it makes sense to add the 440GRx with this patchset too. The
440GRx is a subset of the 440EPx, missing some stuff like USB, FPU. And
the AMCC Rainier 440GRx eval board is a subset of the Sequoia eval board.
So no new board specific sources should be necessary to support the
Rainier, just a different defconfig file.
Best regards,
Stefan
I have a Rainier 440GRx board and the PVR is equal to the 440EPx one
(0x200008D0). This has to be handled somehow, since the
PPC_FEATURE_HAS_FPU flag should *not* be set for 440GRx.
I'm really not sure how though. Any ideas are greatly appreciated :)
Is it a h/w bug?
Depends on interpretation. IIRC currently the same die is used for 440EPx and
440GRx. I could be wrong here though and it is just a bug in the chip. But
anyway we should support this somehow. Could be that I missed this in the
current 440GRx (Rainier) arch/ppc support too. I have to admit, that no
clever solution comes to my mind right away though.
Best regards,
Stefan
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> Date: 2007-08-03 12:35:44
Depends on interpretation. IIRC currently the same die is used for 440EPx and
440GRx. I could be wrong here though and it is just a bug in the chip. But
anyway we should support this somehow. Could be that I missed this in the
current 440GRx (Rainier) arch/ppc support too. I have to admit, that no
clever solution comes to my mind right away though.
We can always come up with some kind of runtime detection, by turning on
MSR:FP, issuing an fp instruction and catching the illegal instruction
fault if any :-)
Ben.
Since the with/without Security/Kasumi versions have no
differences in
their cputable entry other than the PVR, couldn't you just
remove the
relevant PVR bit from the mask and use a single entry?
And get rid of the stupid "has an FPU" comment at the same time
please :-)
Actually that comment may be worthwhile if expanded a little. I
think
the point is that 440EPx *unlike most other 4xx chips* has an
FPU. So
the point of the comment is not explaining the feature bit, which is
obvious, but as a "no, really, it does".
Right. 440EP(x) are the only currently available 44x chips that
contain an FPU, so I also think the comment can stay.
I agree w/Segher the comment is redundant. Just make a note of the
fact that we really have FPU in the commit message.
Fine. I don't really care either way because in the grand scheme of
things, it has no significant impact either way. It's just a comment.
josh
Depends on interpretation. IIRC currently the same die is used for 440EPx and
440GRx. I could be wrong here though and it is just a bug in the chip. But
anyway we should support this somehow. Could be that I missed this in the
current 440GRx (Rainier) arch/ppc support too. I have to admit, that no
clever solution comes to my mind right away though.
We can always come up with some kind of runtime detection, by turning on
MSR:FP, issuing an fp instruction and catching the illegal instruction
fault if any :-)
Ben.
Is it OK to workaround the GRX/EPX having the same PVR issue using
device tree?
Say, check the PVR value and if we have 440EPx PVR, but 440GRX node in
the device tree, fix the cputable entry and omit FPU initialization code.
Thanks,
Valentine.
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> Date: 2007-10-05 22:17:58
On Fri, 2007-10-05 at 22:36 +0400, Valentine Barshak wrote:
Benjamin Herrenschmidt wrote:
quoted
quoted
Depends on interpretation. IIRC currently the same die is used for 440EPx and
440GRx. I could be wrong here though and it is just a bug in the chip. But
anyway we should support this somehow. Could be that I missed this in the
current 440GRx (Rainier) arch/ppc support too. I have to admit, that no
clever solution comes to my mind right away though.
We can always come up with some kind of runtime detection, by turning on
MSR:FP, issuing an fp instruction and catching the illegal instruction
fault if any :-)
Ben.
Is it OK to workaround the GRX/EPX having the same PVR issue using
device tree?
Say, check the PVR value and if we have 440EPx PVR, but 440GRX node in
the device tree, fix the cputable entry and omit FPU initialization code.
Fixing the CPU features based on the tree is definitely legit. We do
that on pseries. In fact, with paulus latest patch, the cputable is
__initdata and the cur CPU features is a -copy- which makes it even more
legitimate to whack it.
Ben.