diff options
author | Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> | 2005-05-01 11:58:54 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-01 11:58:54 -0400 |
commit | c45166be3cc666ce88fe623ad79276c943e74eff (patch) | |
tree | db59fdfb6834c112c99a5ab8692fe8372d7961ba | |
parent | b05d85a87d9711f5f5f2eb05c79038d5d5ff1f44 (diff) |
[PATCH] uml: support AES i586 crypto driver
We want to make possible, for the user, to enable the i586 AES implementation.
This requires a restructure.
- Add a CONFIG_UML_X86 to notify that we are building a UML for i386.
- Rename CONFIG_64_BIT to CONFIG_64BIT as is used for all other archs
- Tell crypto/Kconfig that UML_X86 is as good as X86
- Tell it that it must exclude not X86_64 but 64BIT, which will give the
same results.
- Tell kbuild to descend down into arch/i386/crypto/ to build what's needed.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/um/Kconfig | 1 | ||||
-rw-r--r-- | arch/um/Kconfig_i386 | 6 | ||||
-rw-r--r-- | arch/um/Kconfig_x86_64 | 6 | ||||
-rw-r--r-- | arch/um/Makefile-i386 | 2 | ||||
-rw-r--r-- | arch/um/defconfig | 10 | ||||
-rw-r--r-- | crypto/Kconfig | 4 | ||||
-rw-r--r-- | include/asm-um/elf.h | 2 | ||||
-rw-r--r-- | include/asm-um/page.h | 2 | ||||
-rw-r--r-- | include/asm-um/pgtable-3level.h | 2 |
9 files changed, 22 insertions, 13 deletions
diff --git a/arch/um/Kconfig b/arch/um/Kconfig index 9a23df182123..c5292181a664 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig | |||
@@ -244,6 +244,7 @@ config KERNEL_HALF_GIGS | |||
244 | 244 | ||
245 | config HIGHMEM | 245 | config HIGHMEM |
246 | bool "Highmem support" | 246 | bool "Highmem support" |
247 | depends on !64BIT | ||
247 | 248 | ||
248 | config KERNEL_STACK_ORDER | 249 | config KERNEL_STACK_ORDER |
249 | int "Kernel stack size order" | 250 | int "Kernel stack size order" |
diff --git a/arch/um/Kconfig_i386 b/arch/um/Kconfig_i386 index 203c242201b6..e41f3748d30f 100644 --- a/arch/um/Kconfig_i386 +++ b/arch/um/Kconfig_i386 | |||
@@ -1,4 +1,8 @@ | |||
1 | config 64_BIT | 1 | config UML_X86 |
2 | bool | ||
3 | default y | ||
4 | |||
5 | config 64BIT | ||
2 | bool | 6 | bool |
3 | default n | 7 | default n |
4 | 8 | ||
diff --git a/arch/um/Kconfig_x86_64 b/arch/um/Kconfig_x86_64 index 768dc6626a8d..fd8d7e8982b1 100644 --- a/arch/um/Kconfig_x86_64 +++ b/arch/um/Kconfig_x86_64 | |||
@@ -1,4 +1,8 @@ | |||
1 | config 64_BIT | 1 | config UML_X86 |
2 | bool | ||
3 | default y | ||
4 | |||
5 | config 64BIT | ||
2 | bool | 6 | bool |
3 | default y | 7 | default y |
4 | 8 | ||
diff --git a/arch/um/Makefile-i386 b/arch/um/Makefile-i386 index 97b223bfa78e..f9e3c0f06541 100644 --- a/arch/um/Makefile-i386 +++ b/arch/um/Makefile-i386 | |||
@@ -1,4 +1,4 @@ | |||
1 | SUBARCH_CORE := arch/um/sys-i386/ | 1 | SUBARCH_CORE := arch/um/sys-i386/ arch/i386/crypto/ |
2 | 2 | ||
3 | TOP_ADDR := $(CONFIG_TOP_ADDR) | 3 | TOP_ADDR := $(CONFIG_TOP_ADDR) |
4 | 4 | ||
diff --git a/arch/um/defconfig b/arch/um/defconfig index fc3075c589d8..4067c3aa5b60 100644 --- a/arch/um/defconfig +++ b/arch/um/defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.12-rc1-bk1 | 3 | # Linux kernel version: 2.6.12-rc3-skas3-v9-pre2 |
4 | # Sun Mar 20 16:53:00 2005 | 4 | # Sun Apr 24 19:46:10 2005 |
5 | # | 5 | # |
6 | CONFIG_GENERIC_HARDIRQS=y | 6 | CONFIG_GENERIC_HARDIRQS=y |
7 | CONFIG_UML=y | 7 | CONFIG_UML=y |
@@ -15,7 +15,8 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y | |||
15 | # | 15 | # |
16 | CONFIG_MODE_TT=y | 16 | CONFIG_MODE_TT=y |
17 | CONFIG_MODE_SKAS=y | 17 | CONFIG_MODE_SKAS=y |
18 | # CONFIG_64_BIT is not set | 18 | CONFIG_UML_X86=y |
19 | # CONFIG_64BIT is not set | ||
19 | CONFIG_TOP_ADDR=0xc0000000 | 20 | CONFIG_TOP_ADDR=0xc0000000 |
20 | # CONFIG_3_LEVEL_PGTABLES is not set | 21 | # CONFIG_3_LEVEL_PGTABLES is not set |
21 | CONFIG_ARCH_HAS_SC_SIGNALS=y | 22 | CONFIG_ARCH_HAS_SC_SIGNALS=y |
@@ -41,6 +42,7 @@ CONFIG_UML_REAL_TIME_CLOCK=y | |||
41 | CONFIG_EXPERIMENTAL=y | 42 | CONFIG_EXPERIMENTAL=y |
42 | CONFIG_CLEAN_COMPILE=y | 43 | CONFIG_CLEAN_COMPILE=y |
43 | CONFIG_BROKEN_ON_SMP=y | 44 | CONFIG_BROKEN_ON_SMP=y |
45 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
44 | 46 | ||
45 | # | 47 | # |
46 | # General setup | 48 | # General setup |
@@ -158,7 +160,6 @@ CONFIG_UML_NET_SLIRP=y | |||
158 | # | 160 | # |
159 | CONFIG_PACKET=y | 161 | CONFIG_PACKET=y |
160 | CONFIG_PACKET_MMAP=y | 162 | CONFIG_PACKET_MMAP=y |
161 | # CONFIG_NETLINK_DEV is not set | ||
162 | CONFIG_UNIX=y | 163 | CONFIG_UNIX=y |
163 | # CONFIG_NET_KEY is not set | 164 | # CONFIG_NET_KEY is not set |
164 | CONFIG_INET=y | 165 | CONFIG_INET=y |
@@ -412,6 +413,5 @@ CONFIG_DEBUG_INFO=y | |||
412 | # CONFIG_DEBUG_FS is not set | 413 | # CONFIG_DEBUG_FS is not set |
413 | CONFIG_FRAME_POINTER=y | 414 | CONFIG_FRAME_POINTER=y |
414 | CONFIG_PT_PROXY=y | 415 | CONFIG_PT_PROXY=y |
415 | # CONFIG_GPROF is not set | ||
416 | # CONFIG_GCOV is not set | 416 | # CONFIG_GCOV is not set |
417 | # CONFIG_SYSCALL_DEBUG is not set | 417 | # CONFIG_SYSCALL_DEBUG is not set |
diff --git a/crypto/Kconfig b/crypto/Kconfig index 536754faf4d2..90d6089d60ed 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig | |||
@@ -146,7 +146,7 @@ config CRYPTO_SERPENT | |||
146 | 146 | ||
147 | config CRYPTO_AES | 147 | config CRYPTO_AES |
148 | tristate "AES cipher algorithms" | 148 | tristate "AES cipher algorithms" |
149 | depends on CRYPTO && !(X86 && !X86_64) | 149 | depends on CRYPTO && !((X86 || UML_X86) && !64BIT) |
150 | help | 150 | help |
151 | AES cipher algorithms (FIPS-197). AES uses the Rijndael | 151 | AES cipher algorithms (FIPS-197). AES uses the Rijndael |
152 | algorithm. | 152 | algorithm. |
@@ -166,7 +166,7 @@ config CRYPTO_AES | |||
166 | 166 | ||
167 | config CRYPTO_AES_586 | 167 | config CRYPTO_AES_586 |
168 | tristate "AES cipher algorithms (i586)" | 168 | tristate "AES cipher algorithms (i586)" |
169 | depends on CRYPTO && (X86 && !X86_64) | 169 | depends on CRYPTO && ((X86 || UML_X86) && !64BIT) |
170 | help | 170 | help |
171 | AES cipher algorithms (FIPS-197). AES uses the Rijndael | 171 | AES cipher algorithms (FIPS-197). AES uses the Rijndael |
172 | algorithm. | 172 | algorithm. |
diff --git a/include/asm-um/elf.h b/include/asm-um/elf.h index b3a7258f9971..7908f8fe8231 100644 --- a/include/asm-um/elf.h +++ b/include/asm-um/elf.h | |||
@@ -13,7 +13,7 @@ extern long elf_aux_hwcap; | |||
13 | 13 | ||
14 | #define elf_check_arch(x) (1) | 14 | #define elf_check_arch(x) (1) |
15 | 15 | ||
16 | #ifdef CONFIG_64_BIT | 16 | #ifdef CONFIG_64BIT |
17 | #define ELF_CLASS ELFCLASS64 | 17 | #define ELF_CLASS ELFCLASS64 |
18 | #else | 18 | #else |
19 | #define ELF_CLASS ELFCLASS32 | 19 | #define ELF_CLASS ELFCLASS32 |
diff --git a/include/asm-um/page.h b/include/asm-um/page.h index 3620a08dc9f3..102eb3df1aaf 100644 --- a/include/asm-um/page.h +++ b/include/asm-um/page.h | |||
@@ -27,7 +27,7 @@ struct page; | |||
27 | #define clear_user_page(page, vaddr, pg) clear_page(page) | 27 | #define clear_user_page(page, vaddr, pg) clear_page(page) |
28 | #define copy_user_page(to, from, vaddr, pg) copy_page(to, from) | 28 | #define copy_user_page(to, from, vaddr, pg) copy_page(to, from) |
29 | 29 | ||
30 | #if defined(CONFIG_3_LEVEL_PGTABLES) && !defined(CONFIG_64_BIT) | 30 | #if defined(CONFIG_3_LEVEL_PGTABLES) && !defined(CONFIG_64BIT) |
31 | 31 | ||
32 | typedef struct { unsigned long pte_low, pte_high; } pte_t; | 32 | typedef struct { unsigned long pte_low, pte_high; } pte_t; |
33 | typedef struct { unsigned long long pmd; } pmd_t; | 33 | typedef struct { unsigned long long pmd; } pmd_t; |
diff --git a/include/asm-um/pgtable-3level.h b/include/asm-um/pgtable-3level.h index bdbc3f97e20b..d309f3a9e6f6 100644 --- a/include/asm-um/pgtable-3level.h +++ b/include/asm-um/pgtable-3level.h | |||
@@ -145,7 +145,7 @@ static inline pmd_t pfn_pmd(pfn_t page_nr, pgprot_t pgprot) | |||
145 | */ | 145 | */ |
146 | #define PTE_FILE_MAX_BITS 32 | 146 | #define PTE_FILE_MAX_BITS 32 |
147 | 147 | ||
148 | #ifdef CONFIG_64_BIT | 148 | #ifdef CONFIG_64BIT |
149 | 149 | ||
150 | #define pte_to_pgoff(p) ((p).pte >> 32) | 150 | #define pte_to_pgoff(p) ((p).pte >> 32) |
151 | 151 | ||