* enable padlock on x86_64
[not found] <49B83002.9040705@tobiasvolk.de>
@ 2009-03-14 11:24 ` Sebastian Andrzej Siewior
2009-03-14 11:47 ` Ingo Molnar
2009-03-14 11:24 ` [PATCH 1/2] x86/centaur: merge 32 & 64 bit version Sebastian Andrzej Siewior
2009-03-14 11:24 ` [PATCH 2/2] crypto/padlock: enable on x86_64 Sebastian Andrzej Siewior
2 siblings, 1 reply; 9+ messages in thread
From: Sebastian Andrzej Siewior @ 2009-03-14 11:24 UTC (permalink / raw)
To: linux-crypto; +Cc: tglx, mingo, hpa, linux-kernel, herbert, mail
To enable the padlock unit, two msr bits have to flipped. This is allready
done in the 32bit path and is missing in the other. Instead of copy paste
the code, I merged the 64bit part into the 32bit part. The things that
changed during the merge:
- the fixups from x86_64 (family 6, model >= 15) were not present in 32bit
path but are now. They might be usefull if this CPU is booted in 32bit
mode.
- the fixups which are executed via ->c_early_init() are now executed
again via ->c_init(). This was done in the 64bit path and without this I
lost the constant_tsc flag. However, tsc is not useable due to
| [ 2.023006] Marking TSC unstable due to TSC halts in idle
| [ 2.500082] Clocksource tsc unstable (delta = -326436711 ns)
The two patches are against the current tip tree. A version of patch 1
against current -rc8 is available at [0].
[0] http://download.breakpoint.cc/0001-x86-centaur-merge-32-64-bit-version.patch
Sebastian
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] x86/centaur: merge 32 & 64 bit version
[not found] <49B83002.9040705@tobiasvolk.de>
2009-03-14 11:24 ` enable padlock on x86_64 Sebastian Andrzej Siewior
@ 2009-03-14 11:24 ` Sebastian Andrzej Siewior
2009-03-14 15:30 ` [tip:x86/cpu] " Sebastian Andrzej Siewior
2009-03-14 11:24 ` [PATCH 2/2] crypto/padlock: enable on x86_64 Sebastian Andrzej Siewior
2 siblings, 1 reply; 9+ messages in thread
From: Sebastian Andrzej Siewior @ 2009-03-14 11:24 UTC (permalink / raw)
To: linux-crypto
Cc: tglx, mingo, hpa, linux-kernel, herbert, mail, Sebastian Andrzej Siewior
there should be no difference, except
* the 64bit variant now also initializes the padlock unit.
* ->c_early_init() is executed again from ->c_init()
* the 64bit fixups made into 32bit path.
Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
---
arch/x86/Kconfig.cpu | 17 +----------------
arch/x86/kernel/cpu/Makefile | 3 +--
arch/x86/kernel/cpu/centaur.c | 30 +++++++++++++++++++++++++-----
arch/x86/kernel/cpu/centaur_64.c | 37 -------------------------------------
4 files changed, 27 insertions(+), 60 deletions(-)
delete mode 100644 arch/x86/kernel/cpu/centaur_64.c
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index a95eaf0..924e156 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -456,24 +456,9 @@ config CPU_SUP_AMD
If unsure, say N.
-config CPU_SUP_CENTAUR_32
+config CPU_SUP_CENTAUR
default y
bool "Support Centaur processors" if PROCESSOR_SELECT
- depends on !64BIT
- ---help---
- This enables detection, tunings and quirks for Centaur processors
-
- You need this enabled if you want your kernel to run on a
- Centaur CPU. Disabling this option on other types of CPUs
- makes the kernel a tiny bit smaller. Disabling it on a Centaur
- CPU might render the kernel unbootable.
-
- If unsure, say N.
-
-config CPU_SUP_CENTAUR_64
- default y
- bool "Support Centaur processors" if PROCESSOR_SELECT
- depends on 64BIT
---help---
This enables detection, tunings and quirks for Centaur processors
diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile
index 24733b4..3efcb2b 100644
--- a/arch/x86/kernel/cpu/Makefile
+++ b/arch/x86/kernel/cpu/Makefile
@@ -19,8 +19,7 @@ obj-$(CONFIG_X86_CPU_DEBUG) += cpu_debug.o
obj-$(CONFIG_CPU_SUP_INTEL) += intel.o
obj-$(CONFIG_CPU_SUP_AMD) += amd.o
obj-$(CONFIG_CPU_SUP_CYRIX_32) += cyrix.o
-obj-$(CONFIG_CPU_SUP_CENTAUR_32) += centaur.o
-obj-$(CONFIG_CPU_SUP_CENTAUR_64) += centaur_64.o
+obj-$(CONFIG_CPU_SUP_CENTAUR) += centaur.o
obj-$(CONFIG_CPU_SUP_TRANSMETA_32) += transmeta.o
obj-$(CONFIG_CPU_SUP_UMC_32) += umc.o
diff --git a/arch/x86/kernel/cpu/centaur.c b/arch/x86/kernel/cpu/centaur.c
index 983e083..946814a 100644
--- a/arch/x86/kernel/cpu/centaur.c
+++ b/arch/x86/kernel/cpu/centaur.c
@@ -276,7 +276,7 @@ static void __cpuinit init_c3(struct cpuinfo_x86 *c)
*/
c->x86_capability[5] = cpuid_edx(0xC0000001);
}
-
+#ifdef CONFIG_X86_32
/* Cyrix III family needs CX8 & PGE explicitly enabled. */
if (c->x86_model >= 6 && c->x86_model <= 9) {
rdmsr(MSR_VIA_FCR, lo, hi);
@@ -288,6 +288,11 @@ static void __cpuinit init_c3(struct cpuinfo_x86 *c)
/* Before Nehemiah, the C3's had 3dNOW! */
if (c->x86_model >= 6 && c->x86_model < 9)
set_cpu_cap(c, X86_FEATURE_3DNOW);
+#endif
+ if (c->x86 == 0x6 && c->x86_model >= 0xf) {
+ c->x86_cache_alignment = c->x86_clflush_size * 2;
+ set_cpu_cap(c, X86_FEATURE_REP_GOOD);
+ }
display_cacheinfo(c);
}
@@ -316,16 +321,25 @@ enum {
static void __cpuinit early_init_centaur(struct cpuinfo_x86 *c)
{
switch (c->x86) {
+#ifdef CONFIG_X86_32
case 5:
/* Emulate MTRRs using Centaur's MCR. */
set_cpu_cap(c, X86_FEATURE_CENTAUR_MCR);
break;
+#endif
+ case 6:
+ if (c->x86_model >= 0xf)
+ set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
+ break;
}
+#ifdef CONFIG_X86_64
+ set_cpu_cap(c, X86_FEATURE_SYSENTER32);
+#endif
}
static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
{
-
+#ifdef CONFIG_X86_32
char *name;
u32 fcr_set = 0;
u32 fcr_clr = 0;
@@ -337,8 +351,10 @@ static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
* 3DNow is IDd by bit 31 in extended CPUID (1*32+31) anyway
*/
clear_cpu_cap(c, 0*32+31);
-
+#endif
+ early_init_centaur(c);
switch (c->x86) {
+#ifdef CONFIG_X86_32
case 5:
switch (c->x86_model) {
case 4:
@@ -442,16 +458,20 @@ static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
}
sprintf(c->x86_model_id, "WinChip %s", name);
break;
-
+#endif
case 6:
init_c3(c);
break;
}
+#ifdef CONFIG_X86_64
+ set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC);
+#endif
}
static unsigned int __cpuinit
centaur_size_cache(struct cpuinfo_x86 *c, unsigned int size)
{
+#ifdef CONFIG_X86_32
/* VIA C3 CPUs (670-68F) need further shifting. */
if ((c->x86 == 6) && ((c->x86_model == 7) || (c->x86_model == 8)))
size >>= 8;
@@ -464,7 +484,7 @@ centaur_size_cache(struct cpuinfo_x86 *c, unsigned int size)
if ((c->x86 == 6) && (c->x86_model == 9) &&
(c->x86_mask == 1) && (size == 65))
size -= 1;
-
+#endif
return size;
}
diff --git a/arch/x86/kernel/cpu/centaur_64.c b/arch/x86/kernel/cpu/centaur_64.c
deleted file mode 100644
index 51b09c4..0000000
--- a/arch/x86/kernel/cpu/centaur_64.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <linux/init.h>
-#include <linux/smp.h>
-
-#include <asm/cpufeature.h>
-#include <asm/processor.h>
-
-#include "cpu.h"
-
-static void __cpuinit early_init_centaur(struct cpuinfo_x86 *c)
-{
- if (c->x86 == 0x6 && c->x86_model >= 0xf)
- set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
-
- set_cpu_cap(c, X86_FEATURE_SYSENTER32);
-}
-
-static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
-{
- early_init_centaur(c);
-
- if (c->x86 == 0x6 && c->x86_model >= 0xf) {
- c->x86_cache_alignment = c->x86_clflush_size * 2;
- set_cpu_cap(c, X86_FEATURE_REP_GOOD);
- }
- set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC);
-}
-
-static const struct cpu_dev centaur_cpu_dev __cpuinitconst = {
- .c_vendor = "Centaur",
- .c_ident = { "CentaurHauls" },
- .c_early_init = early_init_centaur,
- .c_init = init_centaur,
- .c_x86_vendor = X86_VENDOR_CENTAUR,
-};
-
-cpu_dev_register(centaur_cpu_dev);
-
--
1.6.2
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/2] crypto/padlock: enable on x86_64
[not found] <49B83002.9040705@tobiasvolk.de>
2009-03-14 11:24 ` enable padlock on x86_64 Sebastian Andrzej Siewior
2009-03-14 11:24 ` [PATCH 1/2] x86/centaur: merge 32 & 64 bit version Sebastian Andrzej Siewior
@ 2009-03-14 11:24 ` Sebastian Andrzej Siewior
2 siblings, 0 replies; 9+ messages in thread
From: Sebastian Andrzej Siewior @ 2009-03-14 11:24 UTC (permalink / raw)
To: linux-crypto
Cc: tglx, mingo, hpa, linux-kernel, herbert, mail, Sebastian Andrzej Siewior
almost everything stays the same, we need just to use the extended registers
on the bit variant.
Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
---
drivers/crypto/Kconfig | 2 +-
drivers/crypto/padlock-aes.c | 13 +++++++++++++
2 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
index e522144..62ed61b 100644
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
@@ -12,7 +12,7 @@ if CRYPTO_HW
config CRYPTO_DEV_PADLOCK
tristate "Support for VIA PadLock ACE"
- depends on X86_32 && !UML
+ depends on !UML
select CRYPTO_ALGAPI
help
Some VIA processors come with an integrated crypto engine
diff --git a/drivers/crypto/padlock-aes.c b/drivers/crypto/padlock-aes.c
index 3f0fdd1..ddd27c7 100644
--- a/drivers/crypto/padlock-aes.c
+++ b/drivers/crypto/padlock-aes.c
@@ -154,7 +154,11 @@ static inline void padlock_reset_key(struct cword *cword)
int cpu = raw_smp_processor_id();
if (cword != per_cpu(last_cword, cpu))
+#ifndef CONFIG_X86_64
asm volatile ("pushfl; popfl");
+#else
+ asm volatile ("pushfq; popfq");
+#endif
}
static inline void padlock_store_cword(struct cword *cword)
@@ -208,10 +212,19 @@ static inline void padlock_xcrypt_ecb(const u8 *input, u8 *output, void *key,
asm volatile ("test $1, %%cl;"
"je 1f;"
+#ifndef CONFIG_X86_64
"lea -1(%%ecx), %%eax;"
"mov $1, %%ecx;"
+#else
+ "lea -1(%%rcx), %%rax;"
+ "mov $1, %%rcx;"
+#endif
".byte 0xf3,0x0f,0xa7,0xc8;" /* rep xcryptecb */
+#ifndef CONFIG_X86_64
"mov %%eax, %%ecx;"
+#else
+ "mov %%rax, %%rcx;"
+#endif
"1:"
".byte 0xf3,0x0f,0xa7,0xc8" /* rep xcryptecb */
: "+S"(input), "+D"(output)
--
1.6.2
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: enable padlock on x86_64
2009-03-14 11:24 ` enable padlock on x86_64 Sebastian Andrzej Siewior
@ 2009-03-14 11:47 ` Ingo Molnar
2009-03-14 11:53 ` Sebastian Andrzej Siewior
0 siblings, 1 reply; 9+ messages in thread
From: Ingo Molnar @ 2009-03-14 11:47 UTC (permalink / raw)
To: Sebastian Andrzej Siewior
Cc: linux-crypto, tglx, mingo, hpa, linux-kernel, herbert, mail
* Sebastian Andrzej Siewior <sebastian@breakpoint.cc> wrote:
> To enable the padlock unit, two msr bits have to flipped. This is allready
> done in the 32bit path and is missing in the other. Instead of copy paste
> the code, I merged the 64bit part into the 32bit part. The things that
> changed during the merge:
> - the fixups from x86_64 (family 6, model >= 15) were not present in 32bit
> path but are now. They might be usefull if this CPU is booted in 32bit
> mode.
> - the fixups which are executed via ->c_early_init() are now executed
> again via ->c_init(). This was done in the 64bit path and without this I
> lost the constant_tsc flag. However, tsc is not useable due to
> | [ 2.023006] Marking TSC unstable due to TSC halts in idle
> | [ 2.500082] Clocksource tsc unstable (delta = -326436711 ns)
>
> The two patches are against the current tip tree. A version of
> patch 1 against current -rc8 is available at [0].
thanks, looks good. We can apply #1 to -tip just fine - but a
drivers/crypto/ change should go via the crypto tree. Can the
crypto tree apply #2 without having #1 right away? [i.e. will it
still build and boot fine - even though the padlock
functionality might not be fully present on 32-bit? ]
Then in 2.6.30 once both the x86 tree and the crypto tree are
merged we'll have both changes combined.
Does that sound good?
Ingo
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: enable padlock on x86_64
2009-03-14 11:47 ` Ingo Molnar
@ 2009-03-14 11:53 ` Sebastian Andrzej Siewior
2009-03-14 13:24 ` Herbert Xu
0 siblings, 1 reply; 9+ messages in thread
From: Sebastian Andrzej Siewior @ 2009-03-14 11:53 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-crypto, tglx, mingo, hpa, linux-kernel, herbert, mail
* Ingo Molnar | 2009-03-14 12:47:32 [+0100]:
>thanks, looks good. We can apply #1 to -tip just fine - but a
>drivers/crypto/ change should go via the crypto tree. Can the
>crypto tree apply #2 without having #1 right away? [i.e. will it
>still build and boot fine - even though the padlock
>functionality might not be fully present on 32-bit? ]
Yep, it is fine.
#1 in, #2 not will not result in any difference to what we have now.
#2 in, #1 not will result in "padlock not detected" while loading the
module and -ENODEV.
>Then in 2.6.30 once both the x86 tree and the crypto tree are
>merged we'll have both changes combined.
>
>Does that sound good?
I'm fine with this, but last word is Herbert's :)
> Ingo
Sebastian
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: enable padlock on x86_64
2009-03-14 11:53 ` Sebastian Andrzej Siewior
@ 2009-03-14 13:24 ` Herbert Xu
2009-04-20 22:09 ` Chuck Ebbert
0 siblings, 1 reply; 9+ messages in thread
From: Herbert Xu @ 2009-03-14 13:24 UTC (permalink / raw)
To: Sebastian Andrzej Siewior
Cc: Ingo Molnar, linux-crypto, tglx, mingo, hpa, linux-kernel, mail
On Sat, Mar 14, 2009 at 12:53:07PM +0100, Sebastian Andrzej Siewior wrote:
>
> Yep, it is fine.
> #1 in, #2 not will not result in any difference to what we have now.
> #2 in, #1 not will result in "padlock not detected" while loading the
> module and -ENODEV.
Let's merge #1 right now and I'll pick up #2 once #1 shows up
in linux-net.
Thanks,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 9+ messages in thread
* [tip:x86/cpu] x86/centaur: merge 32 & 64 bit version
2009-03-14 11:24 ` [PATCH 1/2] x86/centaur: merge 32 & 64 bit version Sebastian Andrzej Siewior
@ 2009-03-14 15:30 ` Sebastian Andrzej Siewior
0 siblings, 0 replies; 9+ messages in thread
From: Sebastian Andrzej Siewior @ 2009-03-14 15:30 UTC (permalink / raw)
To: linux-tip-commits; +Cc: linux-kernel, hpa, mingo, sebastian, tglx, mingo
Commit-ID: 48f4c485c275e9550fa1a1191768689cc3ae0037
Gitweb: http://git.kernel.org/tip/48f4c485c275e9550fa1a1191768689cc3ae0037
Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
AuthorDate: Sat, 14 Mar 2009 12:24:02 +0100
Commit: Ingo Molnar <mingo@elte.hu>
CommitDate: Sat, 14 Mar 2009 16:27:29 +0100
x86/centaur: merge 32 & 64 bit version
there should be no difference, except:
* the 64bit variant now also initializes the padlock unit.
* ->c_early_init() is executed again from ->c_init()
* the 64bit fixups made into 32bit path.
Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Cc: herbert@gondor.apana.org.au
LKML-Reference: <1237029843-28076-2-git-send-email-sebastian@breakpoint.cc>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
arch/x86/Kconfig.cpu | 17 +----------------
arch/x86/kernel/cpu/Makefile | 3 +--
arch/x86/kernel/cpu/centaur.c | 34 +++++++++++++++++++++++++++-------
arch/x86/kernel/cpu/centaur_64.c | 37 -------------------------------------
4 files changed, 29 insertions(+), 62 deletions(-)
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index a95eaf0..924e156 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -456,24 +456,9 @@ config CPU_SUP_AMD
If unsure, say N.
-config CPU_SUP_CENTAUR_32
+config CPU_SUP_CENTAUR
default y
bool "Support Centaur processors" if PROCESSOR_SELECT
- depends on !64BIT
- ---help---
- This enables detection, tunings and quirks for Centaur processors
-
- You need this enabled if you want your kernel to run on a
- Centaur CPU. Disabling this option on other types of CPUs
- makes the kernel a tiny bit smaller. Disabling it on a Centaur
- CPU might render the kernel unbootable.
-
- If unsure, say N.
-
-config CPU_SUP_CENTAUR_64
- default y
- bool "Support Centaur processors" if PROCESSOR_SELECT
- depends on 64BIT
---help---
This enables detection, tunings and quirks for Centaur processors
diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile
index d4356f8..4e242f9 100644
--- a/arch/x86/kernel/cpu/Makefile
+++ b/arch/x86/kernel/cpu/Makefile
@@ -19,8 +19,7 @@ obj-$(CONFIG_X86_CPU_DEBUG) += cpu_debug.o
obj-$(CONFIG_CPU_SUP_INTEL) += intel.o
obj-$(CONFIG_CPU_SUP_AMD) += amd.o
obj-$(CONFIG_CPU_SUP_CYRIX_32) += cyrix.o
-obj-$(CONFIG_CPU_SUP_CENTAUR_32) += centaur.o
-obj-$(CONFIG_CPU_SUP_CENTAUR_64) += centaur_64.o
+obj-$(CONFIG_CPU_SUP_CENTAUR) += centaur.o
obj-$(CONFIG_CPU_SUP_TRANSMETA_32) += transmeta.o
obj-$(CONFIG_CPU_SUP_UMC_32) += umc.o
diff --git a/arch/x86/kernel/cpu/centaur.c b/arch/x86/kernel/cpu/centaur.c
index 983e083..c95e831 100644
--- a/arch/x86/kernel/cpu/centaur.c
+++ b/arch/x86/kernel/cpu/centaur.c
@@ -1,11 +1,11 @@
+#include <linux/bitops.h>
#include <linux/kernel.h>
#include <linux/init.h>
-#include <linux/bitops.h>
#include <asm/processor.h>
-#include <asm/msr.h>
#include <asm/e820.h>
#include <asm/mtrr.h>
+#include <asm/msr.h>
#include "cpu.h"
@@ -276,7 +276,7 @@ static void __cpuinit init_c3(struct cpuinfo_x86 *c)
*/
c->x86_capability[5] = cpuid_edx(0xC0000001);
}
-
+#ifdef CONFIG_X86_32
/* Cyrix III family needs CX8 & PGE explicitly enabled. */
if (c->x86_model >= 6 && c->x86_model <= 9) {
rdmsr(MSR_VIA_FCR, lo, hi);
@@ -288,6 +288,11 @@ static void __cpuinit init_c3(struct cpuinfo_x86 *c)
/* Before Nehemiah, the C3's had 3dNOW! */
if (c->x86_model >= 6 && c->x86_model < 9)
set_cpu_cap(c, X86_FEATURE_3DNOW);
+#endif
+ if (c->x86 == 0x6 && c->x86_model >= 0xf) {
+ c->x86_cache_alignment = c->x86_clflush_size * 2;
+ set_cpu_cap(c, X86_FEATURE_REP_GOOD);
+ }
display_cacheinfo(c);
}
@@ -316,16 +321,25 @@ enum {
static void __cpuinit early_init_centaur(struct cpuinfo_x86 *c)
{
switch (c->x86) {
+#ifdef CONFIG_X86_32
case 5:
/* Emulate MTRRs using Centaur's MCR. */
set_cpu_cap(c, X86_FEATURE_CENTAUR_MCR);
break;
+#endif
+ case 6:
+ if (c->x86_model >= 0xf)
+ set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
+ break;
}
+#ifdef CONFIG_X86_64
+ set_cpu_cap(c, X86_FEATURE_SYSENTER32);
+#endif
}
static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
{
-
+#ifdef CONFIG_X86_32
char *name;
u32 fcr_set = 0;
u32 fcr_clr = 0;
@@ -337,8 +351,10 @@ static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
* 3DNow is IDd by bit 31 in extended CPUID (1*32+31) anyway
*/
clear_cpu_cap(c, 0*32+31);
-
+#endif
+ early_init_centaur(c);
switch (c->x86) {
+#ifdef CONFIG_X86_32
case 5:
switch (c->x86_model) {
case 4:
@@ -442,16 +458,20 @@ static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
}
sprintf(c->x86_model_id, "WinChip %s", name);
break;
-
+#endif
case 6:
init_c3(c);
break;
}
+#ifdef CONFIG_X86_64
+ set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC);
+#endif
}
static unsigned int __cpuinit
centaur_size_cache(struct cpuinfo_x86 *c, unsigned int size)
{
+#ifdef CONFIG_X86_32
/* VIA C3 CPUs (670-68F) need further shifting. */
if ((c->x86 == 6) && ((c->x86_model == 7) || (c->x86_model == 8)))
size >>= 8;
@@ -464,7 +484,7 @@ centaur_size_cache(struct cpuinfo_x86 *c, unsigned int size)
if ((c->x86 == 6) && (c->x86_model == 9) &&
(c->x86_mask == 1) && (size == 65))
size -= 1;
-
+#endif
return size;
}
diff --git a/arch/x86/kernel/cpu/centaur_64.c b/arch/x86/kernel/cpu/centaur_64.c
deleted file mode 100644
index 51b09c4..0000000
--- a/arch/x86/kernel/cpu/centaur_64.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <linux/init.h>
-#include <linux/smp.h>
-
-#include <asm/cpufeature.h>
-#include <asm/processor.h>
-
-#include "cpu.h"
-
-static void __cpuinit early_init_centaur(struct cpuinfo_x86 *c)
-{
- if (c->x86 == 0x6 && c->x86_model >= 0xf)
- set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
-
- set_cpu_cap(c, X86_FEATURE_SYSENTER32);
-}
-
-static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
-{
- early_init_centaur(c);
-
- if (c->x86 == 0x6 && c->x86_model >= 0xf) {
- c->x86_cache_alignment = c->x86_clflush_size * 2;
- set_cpu_cap(c, X86_FEATURE_REP_GOOD);
- }
- set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC);
-}
-
-static const struct cpu_dev centaur_cpu_dev __cpuinitconst = {
- .c_vendor = "Centaur",
- .c_ident = { "CentaurHauls" },
- .c_early_init = early_init_centaur,
- .c_init = init_centaur,
- .c_x86_vendor = X86_VENDOR_CENTAUR,
-};
-
-cpu_dev_register(centaur_cpu_dev);
-
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: enable padlock on x86_64
2009-03-14 13:24 ` Herbert Xu
@ 2009-04-20 22:09 ` Chuck Ebbert
2009-04-21 5:59 ` Herbert Xu
0 siblings, 1 reply; 9+ messages in thread
From: Chuck Ebbert @ 2009-04-20 22:09 UTC (permalink / raw)
To: Herbert Xu
Cc: Sebastian Andrzej Siewior, Ingo Molnar, linux-crypto, tglx,
mingo, hpa, linux-kernel, mail
On Sat, 14 Mar 2009 21:24:20 +0800
Herbert Xu <herbert@gondor.apana.org.au> wrote:
> On Sat, Mar 14, 2009 at 12:53:07PM +0100, Sebastian Andrzej Siewior wrote:
> >
> > Yep, it is fine.
> > #1 in, #2 not will not result in any difference to what we have now.
> > #2 in, #1 not will result in "padlock not detected" while loading the
> > module and -ENODEV.
>
> Let's merge #1 right now and I'll pick up #2 once #1 shows up
> in linux-net.
>
#1 is in 2.6.30-rc now but I don't see #2 pending anywhere.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: enable padlock on x86_64
2009-04-20 22:09 ` Chuck Ebbert
@ 2009-04-21 5:59 ` Herbert Xu
0 siblings, 0 replies; 9+ messages in thread
From: Herbert Xu @ 2009-04-21 5:59 UTC (permalink / raw)
To: Chuck Ebbert
Cc: Sebastian Andrzej Siewior, Ingo Molnar, linux-crypto, tglx,
mingo, hpa, linux-kernel, mail
On Mon, Apr 20, 2009 at 06:09:31PM -0400, Chuck Ebbert wrote:
>
> #1 is in 2.6.30-rc now but I don't see #2 pending anywhere.
Thanks for the reminder. I've now added it to cryptodev.
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-04-21 6:00 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <49B83002.9040705@tobiasvolk.de>
2009-03-14 11:24 ` enable padlock on x86_64 Sebastian Andrzej Siewior
2009-03-14 11:47 ` Ingo Molnar
2009-03-14 11:53 ` Sebastian Andrzej Siewior
2009-03-14 13:24 ` Herbert Xu
2009-04-20 22:09 ` Chuck Ebbert
2009-04-21 5:59 ` Herbert Xu
2009-03-14 11:24 ` [PATCH 1/2] x86/centaur: merge 32 & 64 bit version Sebastian Andrzej Siewior
2009-03-14 15:30 ` [tip:x86/cpu] " Sebastian Andrzej Siewior
2009-03-14 11:24 ` [PATCH 2/2] crypto/padlock: enable on x86_64 Sebastian Andrzej Siewior
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®