diff options
32 files changed, 1235 insertions, 981 deletions
diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt index e0203662f9e9..8da3a795083f 100644 --- a/Documentation/x86/boot.txt +++ b/Documentation/x86/boot.txt | |||
| @@ -50,6 +50,10 @@ Protocol 2.08: (Kernel 2.6.26) Added crc32 checksum and ELF format | |||
| 50 | Protocol 2.09: (Kernel 2.6.26) Added a field of 64-bit physical | 50 | Protocol 2.09: (Kernel 2.6.26) Added a field of 64-bit physical |
| 51 | pointer to single linked list of struct setup_data. | 51 | pointer to single linked list of struct setup_data. |
| 52 | 52 | ||
| 53 | Protocol 2.10: (Kernel 2.6.31) Added a protocol for relaxed alignment | ||
| 54 | beyond the kernel_alignment added, new init_size and | ||
| 55 | pref_address fields. Added extended boot loader IDs. | ||
| 56 | |||
| 53 | **** MEMORY LAYOUT | 57 | **** MEMORY LAYOUT |
| 54 | 58 | ||
| 55 | The traditional memory map for the kernel loader, used for Image or | 59 | The traditional memory map for the kernel loader, used for Image or |
| @@ -168,12 +172,13 @@ Offset Proto Name Meaning | |||
| 168 | 021C/4 2.00+ ramdisk_size initrd size (set by boot loader) | 172 | 021C/4 2.00+ ramdisk_size initrd size (set by boot loader) |
| 169 | 0220/4 2.00+ bootsect_kludge DO NOT USE - for bootsect.S use only | 173 | 0220/4 2.00+ bootsect_kludge DO NOT USE - for bootsect.S use only |
| 170 | 0224/2 2.01+ heap_end_ptr Free memory after setup end | 174 | 0224/2 2.01+ heap_end_ptr Free memory after setup end |
| 171 | 0226/2 N/A pad1 Unused | 175 | 0226/1 2.02+(3 ext_loader_ver Extended boot loader version |
| 176 | 0227/1 2.02+(3 ext_loader_type Extended boot loader ID | ||
| 172 | 0228/4 2.02+ cmd_line_ptr 32-bit pointer to the kernel command line | 177 | 0228/4 2.02+ cmd_line_ptr 32-bit pointer to the kernel command line |
| 173 | 022C/4 2.03+ ramdisk_max Highest legal initrd address | 178 | 022C/4 2.03+ ramdisk_max Highest legal initrd address |
| 174 | 0230/4 2.05+ kernel_alignment Physical addr alignment required for kernel | 179 | 0230/4 2.05+ kernel_alignment Physical addr alignment required for kernel |
| 175 | 0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not | 180 | 0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not |
| 176 | 0235/1 N/A pad2 Unused | 181 | 0235/1 2.10+ min_alignment Minimum alignment, as a power of two |
| 177 | 0236/2 N/A pad3 Unused | 182 | 0236/2 N/A pad3 Unused |
| 178 | 0238/4 2.06+ cmdline_size Maximum size of the kernel command line | 183 | 0238/4 2.06+ cmdline_size Maximum size of the kernel command line |
| 179 | 023C/4 2.07+ hardware_subarch Hardware subarchitecture | 184 | 023C/4 2.07+ hardware_subarch Hardware subarchitecture |
| @@ -182,6 +187,8 @@ Offset Proto Name Meaning | |||
| 182 | 024C/4 2.08+ payload_length Length of kernel payload | 187 | 024C/4 2.08+ payload_length Length of kernel payload |
| 183 | 0250/8 2.09+ setup_data 64-bit physical pointer to linked list | 188 | 0250/8 2.09+ setup_data 64-bit physical pointer to linked list |
| 184 | of struct setup_data | 189 | of struct setup_data |
| 190 | 0258/8 2.10+ pref_address Preferred loading address | ||
| 191 | 0260/4 2.10+ init_size Linear memory required during initialization | ||
| 185 | 192 | ||
| 186 | (1) For backwards compatibility, if the setup_sects field contains 0, the | 193 | (1) For backwards compatibility, if the setup_sects field contains 0, the |
| 187 | real value is 4. | 194 | real value is 4. |
| @@ -190,6 +197,8 @@ Offset Proto Name Meaning | |||
| 190 | field are unusable, which means the size of a bzImage kernel | 197 | field are unusable, which means the size of a bzImage kernel |
| 191 | cannot be determined. | 198 | cannot be determined. |
| 192 | 199 | ||
| 200 | (3) Ignored, but safe to set, for boot protocols 2.02-2.09. | ||
| 201 | |||
| 193 | If the "HdrS" (0x53726448) magic number is not found at offset 0x202, | 202 | If the "HdrS" (0x53726448) magic number is not found at offset 0x202, |
| 194 | the boot protocol version is "old". Loading an old kernel, the | 203 | the boot protocol version is "old". Loading an old kernel, the |
| 195 | following parameters should be assumed: | 204 | following parameters should be assumed: |
| @@ -343,18 +352,32 @@ Protocol: 2.00+ | |||
| 343 | 0xTV here, where T is an identifier for the boot loader and V is | 352 | 0xTV here, where T is an identifier for the boot loader and V is |
| 344 | a version number. Otherwise, enter 0xFF here. | 353 | a version number. Otherwise, enter 0xFF here. |
| 345 | 354 | ||
| 355 | For boot loader IDs above T = 0xD, write T = 0xE to this field and | ||
| 356 | write the extended ID minus 0x10 to the ext_loader_type field. | ||
| 357 | Similarly, the ext_loader_ver field can be used to provide more than | ||
| 358 | four bits for the bootloader version. | ||
| 359 | |||
| 360 | For example, for T = 0x15, V = 0x234, write: | ||
| 361 | |||
| 362 | type_of_loader <- 0xE4 | ||
| 363 | ext_loader_type <- 0x05 | ||
| 364 | ext_loader_ver <- 0x23 | ||
| 365 | |||
| 346 | Assigned boot loader ids: | 366 | Assigned boot loader ids: |
| 347 | 0 LILO (0x00 reserved for pre-2.00 bootloader) | 367 | 0 LILO (0x00 reserved for pre-2.00 bootloader) |
| 348 | 1 Loadlin | 368 | 1 Loadlin |
| 349 | 2 bootsect-loader (0x20, all other values reserved) | 369 | 2 bootsect-loader (0x20, all other values reserved) |
| 350 | 3 SYSLINUX | 370 | 3 Syslinux |
| 351 | 4 EtherBoot | 371 | 4 Etherboot/gPXE |
| 352 | 5 ELILO | 372 | 5 ELILO |
| 353 | 7 GRUB | 373 | 7 GRUB |
| 354 | 8 U-BOOT | 374 | 8 U-Boot |
| 355 | 9 Xen | 375 | 9 Xen |
| 356 | A Gujin | 376 | A Gujin |
| 357 | B Qemu | 377 | B Qemu |
| 378 | C Arcturus Networks uCbootloader | ||
| 379 | E Extended (see ext_loader_type) | ||
| 380 | F Special (0xFF = undefined) | ||
| 358 | 381 | ||
| 359 | Please contact <hpa@zytor.com> if you need a bootloader ID | 382 | Please contact <hpa@zytor.com> if you need a bootloader ID |
| 360 | value assigned. | 383 | value assigned. |
| @@ -453,6 +476,35 @@ Protocol: 2.01+ | |||
| 453 | Set this field to the offset (from the beginning of the real-mode | 476 | Set this field to the offset (from the beginning of the real-mode |
| 454 | code) of the end of the setup stack/heap, minus 0x0200. | 477 | code) of the end of the setup stack/heap, minus 0x0200. |
| 455 | 478 | ||
| 479 | Field name: ext_loader_ver | ||
| 480 | Type: write (optional) | ||
| 481 | Offset/size: 0x226/1 | ||
| 482 | Protocol: 2.02+ | ||
| 483 | |||
| 484 | This field is used as an extension of the version number in the | ||
| 485 | type_of_loader field. The total version number is considered to be | ||
| 486 | (type_of_loader & 0x0f) + (ext_loader_ver << 4). | ||
| 487 | |||
| 488 | The use of this field is boot loader specific. If not written, it | ||
| 489 | is zero. | ||
| 490 | |||
| 491 | Kernels prior to 2.6.31 did not recognize this field, but it is safe | ||
| 492 | to write for protocol version 2.02 or higher. | ||
| 493 | |||
| 494 | Field name: ext_loader_type | ||
| 495 | Type: write (obligatory if (type_of_loader & 0xf0) == 0xe0) | ||
| 496 | Offset/size: 0x227/1 | ||
| 497 | Protocol: 2.02+ | ||
| 498 | |||
| 499 | This field is used as an extension of the type number in | ||
| 500 | type_of_loader field. If the type in type_of_loader is 0xE, then | ||
| 501 | the actual type is (ext_loader_type + 0x10). | ||
| 502 | |||
| 503 | This field is ignored if the type in type_of_loader is not 0xE. | ||
| 504 | |||
| 505 | Kernels prior to 2.6.31 did not recognize this field, but it is safe | ||
| 506 | to write for protocol version 2.02 or higher. | ||
| 507 | |||
| 456 | Field name: cmd_line_ptr | 508 | Field name: cmd_line_ptr |
| 457 | Type: write (obligatory) | 509 | Type: write (obligatory) |
| 458 | Offset/size: 0x228/4 | 510 | Offset/size: 0x228/4 |
| @@ -482,11 +534,19 @@ Protocol: 2.03+ | |||
| 482 | 0x37FFFFFF, you can start your ramdisk at 0x37FE0000.) | 534 | 0x37FFFFFF, you can start your ramdisk at 0x37FE0000.) |
| 483 | 535 | ||
| 484 | Field name: kernel_alignment | 536 | Field name: kernel_alignment |
| 485 | Type: read (reloc) | 537 | Type: read/modify (reloc) |
| 486 | Offset/size: 0x230/4 | 538 | Offset/size: 0x230/4 |
| 487 | Protocol: 2.05+ | 539 | Protocol: 2.05+ (read), 2.10+ (modify) |
| 540 | |||
| 541 | Alignment unit required by the kernel (if relocatable_kernel is | ||
| 542 | true.) A relocatable kernel that is loaded at an alignment | ||
| 543 | incompatible with the value in this field will be realigned during | ||
| 544 | kernel initialization. | ||
| 488 | 545 | ||
| 489 | Alignment unit required by the kernel (if relocatable_kernel is true.) | 546 | Starting with protocol version 2.10, this reflects the kernel |
| 547 | alignment preferred for optimal performance; it is possible for the | ||
| 548 | loader to modify this field to permit a lesser alignment. See the | ||
| 549 | min_alignment and pref_address field below. | ||
| 490 | 550 | ||
| 491 | Field name: relocatable_kernel | 551 | Field name: relocatable_kernel |
| 492 | Type: read (reloc) | 552 | Type: read (reloc) |
| @@ -498,6 +558,22 @@ Protocol: 2.05+ | |||
| 498 | After loading, the boot loader must set the code32_start field to | 558 | After loading, the boot loader must set the code32_start field to |
| 499 | point to the loaded code, or to a boot loader hook. | 559 | point to the loaded code, or to a boot loader hook. |
| 500 | 560 | ||
| 561 | Field name: min_alignment | ||
| 562 | Type: read (reloc) | ||
| 563 | Offset/size: 0x235/1 | ||
| 564 | Protocol: 2.10+ | ||
| 565 | |||
| 566 | This field, if nonzero, indicates as a power of two the minimum | ||
| 567 | alignment required, as opposed to preferred, by the kernel to boot. | ||
| 568 | If a boot loader makes use of this field, it should update the | ||
| 569 | kernel_alignment field with the alignment unit desired; typically: | ||
| 570 | |||
| 571 | kernel_alignment = 1 << min_alignment | ||
| 572 | |||
| 573 | There may be a considerable performance cost with an excessively | ||
| 574 | misaligned kernel. Therefore, a loader should typically try each | ||
| 575 | power-of-two alignment from kernel_alignment down to this alignment. | ||
| 576 | |||
| 501 | Field name: cmdline_size | 577 | Field name: cmdline_size |
| 502 | Type: read | 578 | Type: read |
| 503 | Offset/size: 0x238/4 | 579 | Offset/size: 0x238/4 |
| @@ -582,6 +658,36 @@ Protocol: 2.09+ | |||
| 582 | sure to consider the case where the linked list already contains | 658 | sure to consider the case where the linked list already contains |
| 583 | entries. | 659 | entries. |
| 584 | 660 | ||
| 661 | Field name: pref_address | ||
| 662 | Type: read (reloc) | ||
| 663 | Offset/size: 0x258/8 | ||
| 664 | Protocol: 2.10+ | ||
| 665 | |||
| 666 | This field, if nonzero, represents a preferred load address for the | ||
| 667 | kernel. A relocating bootloader should attempt to load at this | ||
| 668 | address if possible. | ||
| 669 | |||
| 670 | A non-relocatable kernel will unconditionally move itself and to run | ||
| 671 | at this address. | ||
| 672 | |||
| 673 | Field name: init_size | ||
| 674 | Type: read | ||
| 675 | Offset/size: 0x25c/4 | ||
| 676 | |||
| 677 | This field indicates the amount of linear contiguous memory starting | ||
| 678 | at the kernel runtime start address that the kernel needs before it | ||
| 679 | is capable of examining its memory map. This is not the same thing | ||
| 680 | as the total amount of memory the kernel needs to boot, but it can | ||
| 681 | be used by a relocating boot loader to help select a safe load | ||
| 682 | address for the kernel. | ||
| 683 | |||
| 684 | The kernel runtime start address is determined by the following algorithm: | ||
| 685 | |||
| 686 | if (relocatable_kernel) | ||
| 687 | runtime_start = align_up(load_address, kernel_alignment) | ||
| 688 | else | ||
| 689 | runtime_start = pref_address | ||
| 690 | |||
| 585 | 691 | ||
| 586 | **** THE IMAGE CHECKSUM | 692 | **** THE IMAGE CHECKSUM |
| 587 | 693 | ||
diff --git a/arch/x86/Kbuild b/arch/x86/Kbuild new file mode 100644 index 000000000000..ad8ec356fb36 --- /dev/null +++ b/arch/x86/Kbuild | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | |||
| 2 | obj-$(CONFIG_KVM) += kvm/ | ||
| 3 | |||
| 4 | # Xen paravirtualization support | ||
| 5 | obj-$(CONFIG_XEN) += xen/ | ||
| 6 | |||
| 7 | # lguest paravirtualization support | ||
| 8 | obj-$(CONFIG_LGUEST_GUEST) += lguest/ | ||
| 9 | |||
| 10 | obj-y += kernel/ | ||
| 11 | obj-y += mm/ | ||
| 12 | |||
| 13 | obj-y += crypto/ | ||
| 14 | obj-y += vdso/ | ||
| 15 | obj-$(CONFIG_IA32_EMULATION) += ia32/ | ||
| 16 | |||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index b1d3f60525c0..aafae3b140de 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
| @@ -47,6 +47,11 @@ config X86 | |||
| 47 | select HAVE_KERNEL_BZIP2 | 47 | select HAVE_KERNEL_BZIP2 |
| 48 | select HAVE_KERNEL_LZMA | 48 | select HAVE_KERNEL_LZMA |
| 49 | 49 | ||
| 50 | config OUTPUT_FORMAT | ||
| 51 | string | ||
| 52 | default "elf32-i386" if X86_32 | ||
| 53 | default "elf64-x86-64" if X86_64 | ||
| 54 | |||
| 50 | config ARCH_DEFCONFIG | 55 | config ARCH_DEFCONFIG |
| 51 | string | 56 | string |
| 52 | default "arch/x86/configs/i386_defconfig" if X86_32 | 57 | default "arch/x86/configs/i386_defconfig" if X86_32 |
| @@ -1460,9 +1465,7 @@ config KEXEC_JUMP | |||
| 1460 | 1465 | ||
| 1461 | config PHYSICAL_START | 1466 | config PHYSICAL_START |
| 1462 | hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) | 1467 | hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) |
| 1463 | default "0x1000000" if X86_NUMAQ | 1468 | default "0x1000000" |
| 1464 | default "0x200000" if X86_64 | ||
| 1465 | default "0x100000" | ||
| 1466 | ---help--- | 1469 | ---help--- |
| 1467 | This gives the physical address where the kernel is loaded. | 1470 | This gives the physical address where the kernel is loaded. |
| 1468 | 1471 | ||
| @@ -1481,15 +1484,15 @@ config PHYSICAL_START | |||
| 1481 | to be specifically compiled to run from a specific memory area | 1484 | to be specifically compiled to run from a specific memory area |
| 1482 | (normally a reserved region) and this option comes handy. | 1485 | (normally a reserved region) and this option comes handy. |
| 1483 | 1486 | ||
| 1484 | So if you are using bzImage for capturing the crash dump, leave | 1487 | So if you are using bzImage for capturing the crash dump, |
| 1485 | the value here unchanged to 0x100000 and set CONFIG_RELOCATABLE=y. | 1488 | leave the value here unchanged to 0x1000000 and set |
| 1486 | Otherwise if you plan to use vmlinux for capturing the crash dump | 1489 | CONFIG_RELOCATABLE=y. Otherwise if you plan to use vmlinux |
| 1487 | change this value to start of the reserved region (Typically 16MB | 1490 | for capturing the crash dump change this value to start of |
| 1488 | 0x1000000). In other words, it can be set based on the "X" value as | 1491 | the reserved region. In other words, it can be set based on |
| 1489 | specified in the "crashkernel=YM@XM" command line boot parameter | 1492 | the "X" value as specified in the "crashkernel=YM@XM" |
| 1490 | passed to the panic-ed kernel. Typically this parameter is set as | 1493 | command line boot parameter passed to the panic-ed |
| 1491 | crashkernel=64M@16M. Please take a look at | 1494 | kernel. Please take a look at Documentation/kdump/kdump.txt |
| 1492 | Documentation/kdump/kdump.txt for more details about crash dumps. | 1495 | for more details about crash dumps. |
| 1493 | 1496 | ||
| 1494 | Usage of bzImage for capturing the crash dump is recommended as | 1497 | Usage of bzImage for capturing the crash dump is recommended as |
| 1495 | one does not have to build two kernels. Same kernel can be used | 1498 | one does not have to build two kernels. Same kernel can be used |
| @@ -1502,8 +1505,8 @@ config PHYSICAL_START | |||
| 1502 | Don't change this unless you know what you are doing. | 1505 | Don't change this unless you know what you are doing. |
| 1503 | 1506 | ||
| 1504 | config RELOCATABLE | 1507 | config RELOCATABLE |
| 1505 | bool "Build a relocatable kernel (EXPERIMENTAL)" | 1508 | bool "Build a relocatable kernel" |
| 1506 | depends on EXPERIMENTAL | 1509 | default y |
| 1507 | ---help--- | 1510 | ---help--- |
| 1508 | This builds a kernel image that retains relocation information | 1511 | This builds a kernel image that retains relocation information |
| 1509 | so it can be loaded someplace besides the default 1MB. | 1512 | so it can be loaded someplace besides the default 1MB. |
| @@ -1518,12 +1521,16 @@ config RELOCATABLE | |||
| 1518 | it has been loaded at and the compile time physical address | 1521 | it has been loaded at and the compile time physical address |
| 1519 | (CONFIG_PHYSICAL_START) is ignored. | 1522 | (CONFIG_PHYSICAL_START) is ignored. |
| 1520 | 1523 | ||
| 1524 | # Relocation on x86-32 needs some additional build support | ||
| 1525 | config X86_NEED_RELOCS | ||
| 1526 | def_bool y | ||
| 1527 | depends on X86_32 && RELOCATABLE | ||
| 1528 | |||
| 1521 | config PHYSICAL_ALIGN | 1529 | config PHYSICAL_ALIGN |
| 1522 | hex | 1530 | hex |
| 1523 | prompt "Alignment value to which kernel should be aligned" if X86_32 | 1531 | prompt "Alignment value to which kernel should be aligned" if X86_32 |
| 1524 | default "0x100000" if X86_32 | 1532 | default "0x1000000" |
| 1525 | default "0x200000" if X86_64 | 1533 | range 0x2000 0x1000000 |
| 1526 | range 0x2000 0x400000 | ||
| 1527 | ---help--- | 1534 | ---help--- |
| 1528 | This value puts the alignment restrictions on physical address | 1535 | This value puts the alignment restrictions on physical address |
| 1529 | where kernel is loaded and run from. Kernel is compiled for an | 1536 | where kernel is loaded and run from. Kernel is compiled for an |
diff --git a/arch/x86/Makefile b/arch/x86/Makefile index 8c86b72afdc2..edbd0ca62067 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile | |||
| @@ -7,8 +7,6 @@ else | |||
| 7 | KBUILD_DEFCONFIG := $(ARCH)_defconfig | 7 | KBUILD_DEFCONFIG := $(ARCH)_defconfig |
| 8 | endif | 8 | endif |
| 9 | 9 | ||
| 10 | core-$(CONFIG_KVM) += arch/x86/kvm/ | ||
| 11 | |||
| 12 | # BITS is used as extension for files which are available in a 32 bit | 10 | # BITS is used as extension for files which are available in a 32 bit |
| 13 | # and a 64 bit version to simplify shared Makefiles. | 11 | # and a 64 bit version to simplify shared Makefiles. |
| 14 | # e.g.: obj-y += foo_$(BITS).o | 12 | # e.g.: obj-y += foo_$(BITS).o |
| @@ -118,21 +116,8 @@ head-y += arch/x86/kernel/init_task.o | |||
| 118 | 116 | ||
| 119 | libs-y += arch/x86/lib/ | 117 | libs-y += arch/x86/lib/ |
| 120 | 118 | ||
| 121 | # Sub architecture files that needs linking first | 119 | # See arch/x86/Kbuild for content of core part of the kernel |
| 122 | core-y += $(fcore-y) | 120 | core-y += arch/x86/ |
| 123 | |||
| 124 | # Xen paravirtualization support | ||
| 125 | core-$(CONFIG_XEN) += arch/x86/xen/ | ||
| 126 | |||
| 127 | # lguest paravirtualization support | ||
| 128 | core-$(CONFIG_LGUEST_GUEST) += arch/x86/lguest/ | ||
| 129 | |||
| 130 | core-y += arch/x86/kernel/ | ||
| 131 | core-y += arch/x86/mm/ | ||
| 132 | |||
| 133 | core-y += arch/x86/crypto/ | ||
| 134 | core-y += arch/x86/vdso/ | ||
| 135 | core-$(CONFIG_IA32_EMULATION) += arch/x86/ia32/ | ||
| 136 | 121 | ||
| 137 | # drivers-y are linked after core-y | 122 | # drivers-y are linked after core-y |
| 138 | drivers-$(CONFIG_MATH_EMULATION) += arch/x86/math-emu/ | 123 | drivers-$(CONFIG_MATH_EMULATION) += arch/x86/math-emu/ |
diff --git a/arch/x86/boot/.gitignore b/arch/x86/boot/.gitignore index 172cf8a98bdd..851fe936d242 100644 --- a/arch/x86/boot/.gitignore +++ b/arch/x86/boot/.gitignore | |||
| @@ -3,6 +3,8 @@ bzImage | |||
| 3 | cpustr.h | 3 | cpustr.h |
| 4 | mkcpustr | 4 | mkcpustr |
| 5 | offsets.h | 5 | offsets.h |
| 6 | voffset.h | ||
| 7 | zoffset.h | ||
| 6 | setup | 8 | setup |
| 7 | setup.bin | 9 | setup.bin |
| 8 | setup.elf | 10 | setup.elf |
diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile index 6633b6e7505a..619d297aa2ba 100644 --- a/arch/x86/boot/Makefile +++ b/arch/x86/boot/Makefile | |||
| @@ -86,19 +86,27 @@ $(obj)/vmlinux.bin: $(obj)/compressed/vmlinux FORCE | |||
| 86 | 86 | ||
| 87 | SETUP_OBJS = $(addprefix $(obj)/,$(setup-y)) | 87 | SETUP_OBJS = $(addprefix $(obj)/,$(setup-y)) |
| 88 | 88 | ||
| 89 | sed-offsets := -e 's/^00*/0/' \ | 89 | sed-voffset := -e 's/^\([0-9a-fA-F]*\) . \(_text\|_end\)$$/\#define VO_\2 0x\1/p' |
| 90 | -e 's/^\([0-9a-fA-F]*\) . \(input_data\|input_data_end\)$$/\#define \2 0x\1/p' | ||
| 91 | 90 | ||
| 92 | quiet_cmd_offsets = OFFSETS $@ | 91 | quiet_cmd_voffset = VOFFSET $@ |
| 93 | cmd_offsets = $(NM) $< | sed -n $(sed-offsets) > $@ | 92 | cmd_voffset = $(NM) $< | sed -n $(sed-voffset) > $@ |
| 94 | 93 | ||
| 95 | $(obj)/offsets.h: $(obj)/compressed/vmlinux FORCE | 94 | targets += voffset.h |
| 96 | $(call if_changed,offsets) | 95 | $(obj)/voffset.h: vmlinux FORCE |
| 96 | $(call if_changed,voffset) | ||
| 97 | |||
| 98 | sed-zoffset := -e 's/^\([0-9a-fA-F]*\) . \(startup_32\|input_data\|_end\|z_.*\)$$/\#define ZO_\2 0x\1/p' | ||
| 99 | |||
| 100 | quiet_cmd_zoffset = ZOFFSET $@ | ||
| 101 | cmd_zoffset = $(NM) $< | sed -n $(sed-zoffset) > $@ | ||
| 102 | |||
| 103 | targets += zoffset.h | ||
| 104 | $(obj)/zoffset.h: $(obj)/compressed/vmlinux FORCE | ||
| 105 | $(call if_changed,zoffset) | ||
| 97 | 106 | ||
| 98 | targets += offsets.h | ||
| 99 | 107 | ||
| 100 | AFLAGS_header.o += -I$(obj) | 108 | AFLAGS_header.o += -I$(obj) |
| 101 | $(obj)/header.o: $(obj)/offsets.h | 109 | $(obj)/header.o: $(obj)/voffset.h $(obj)/zoffset.h |
| 102 | 110 | ||
| 103 | LDFLAGS_setup.elf := -T | 111 | LDFLAGS_setup.elf := -T |
| 104 | $(obj)/setup.elf: $(src)/setup.ld $(SETUP_OBJS) FORCE | 112 | $(obj)/setup.elf: $(src)/setup.ld $(SETUP_OBJS) FORCE |
diff --git a/arch/x86/boot/compressed/.gitignore b/arch/x86/boot/compressed/.gitignore index 63eff3b04d01..4a46fab7162e 100644 --- a/arch/x86/boot/compressed/.gitignore +++ b/arch/x86/boot/compressed/.gitignore | |||
| @@ -1,3 +1,6 @@ | |||
| 1 | relocs | 1 | relocs |
| 2 | vmlinux.bin.all | 2 | vmlinux.bin.all |
| 3 | vmlinux.relocs | 3 | vmlinux.relocs |
| 4 | vmlinux.lds | ||
| 5 | mkpiggy | ||
| 6 | piggy.S | ||
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile index 65551c9f8571..49c8a4c37d7c 100644 --- a/arch/x86/boot/compressed/Makefile +++ b/arch/x86/boot/compressed/Makefile | |||
| @@ -19,7 +19,9 @@ KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ | |||
| 19 | LDFLAGS := -m elf_$(UTS_MACHINE) | 19 | LDFLAGS := -m elf_$(UTS_MACHINE) |
| 20 | LDFLAGS_vmlinux := -T | 20 | LDFLAGS_vmlinux := -T |
| 21 | 21 | ||
| 22 | $(obj)/vmlinux: $(src)/vmlinux_$(BITS).lds $(obj)/head_$(BITS).o $(obj)/misc.o $(obj)/piggy.o FORCE | 22 | hostprogs-y := mkpiggy |
| 23 | |||
| 24 | $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/head_$(BITS).o $(obj)/misc.o $(obj)/piggy.o FORCE | ||
| 23 | $(call if_changed,ld) | 25 | $(call if_changed,ld) |
| 24 | @: | 26 | @: |
| 25 | 27 | ||
| @@ -29,7 +31,7 @@ $(obj)/vmlinux.bin: vmlinux FORCE | |||
| 29 | 31 | ||
| 30 | 32 | ||
| 31 | targets += vmlinux.bin.all vmlinux.relocs relocs | 33 | targets += vmlinux.bin.all vmlinux.relocs relocs |
| 32 | hostprogs-$(CONFIG_X86_32) += relocs | 34 | hostprogs-$(CONFIG_X86_NEED_RELOCS) += relocs |
| 33 | 35 | ||
| 34 | quiet_cmd_relocs = RELOCS $@ | 36 | quiet_cmd_relocs = RELOCS $@ |
| 35 | cmd_relocs = $(obj)/relocs $< > $@;$(obj)/relocs --abs-relocs $< | 37 | cmd_relocs = $(obj)/relocs $< > $@;$(obj)/relocs --abs-relocs $< |
| @@ -37,46 +39,22 @@ $(obj)/vmlinux.relocs: vmlinux $(obj)/relocs FORCE | |||
| 37 | $(call if_changed,relocs) | 39 | $(call if_changed,relocs) |
| 38 | 40 | ||
| 39 | vmlinux.bin.all-y := $(obj)/vmlinux.bin | 41 | vmlinux.bin.all-y := $(obj)/vmlinux.bin |
| 40 | vmlinux.bin.all-$(CONFIG_RELOCATABLE) += $(obj)/vmlinux.relocs | 42 | vmlinux.bin.all-$(CONFIG_X86_NEED_RELOCS) += $(obj)/vmlinux.relocs |
| 41 | quiet_cmd_relocbin = BUILD $@ | ||
| 42 | cmd_relocbin = cat $(filter-out FORCE,$^) > $@ | ||
| 43 | $(obj)/vmlinux.bin.all: $(vmlinux.bin.all-y) FORCE | ||
| 44 | $(call if_changed,relocbin) | ||
| 45 | |||
| 46 | ifeq ($(CONFIG_X86_32),y) | ||
| 47 | 43 | ||
| 48 | ifdef CONFIG_RELOCATABLE | 44 | $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE |
| 49 | $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin.all FORCE | ||
| 50 | $(call if_changed,gzip) | ||
| 51 | $(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin.all FORCE | ||
| 52 | $(call if_changed,bzip2) | ||
| 53 | $(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin.all FORCE | ||
| 54 | $(call if_changed,lzma) | ||
| 55 | else | ||
| 56 | $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE | ||
| 57 | $(call if_changed,gzip) | 45 | $(call if_changed,gzip) |
| 58 | $(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE | 46 | $(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE |
| 59 | $(call if_changed,bzip2) | 47 | $(call if_changed,bzip2) |
| 60 | $(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE | 48 | $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE |
| 61 | $(call if_changed,lzma) | 49 | $(call if_changed,lzma) |
| 62 | endif | ||
| 63 | LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T | ||
| 64 | 50 | ||
| 65 | else | 51 | suffix-$(CONFIG_KERNEL_GZIP) := gz |
| 52 | suffix-$(CONFIG_KERNEL_BZIP2) := bz2 | ||
| 53 | suffix-$(CONFIG_KERNEL_LZMA) := lzma | ||
| 66 | 54 | ||
| 67 | $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE | 55 | quiet_cmd_mkpiggy = MKPIGGY $@ |
| 68 | $(call if_changed,gzip) | 56 | cmd_mkpiggy = $(obj)/mkpiggy $< > $@ || ( rm -f $@ ; false ) |
| 69 | $(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE | ||
| 70 | $(call if_changed,bzip2) | ||
| 71 | $(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE | ||
| 72 | $(call if_changed,lzma) | ||
| 73 | |||
| 74 | LDFLAGS_piggy.o := -r --format binary --oformat elf64-x86-64 -T | ||
| 75 | endif | ||
| 76 | 57 | ||
| 77 | suffix_$(CONFIG_KERNEL_GZIP) = gz | 58 | targets += piggy.S |
| 78 | suffix_$(CONFIG_KERNEL_BZIP2) = bz2 | 59 | $(obj)/piggy.S: $(obj)/vmlinux.bin.$(suffix-y) $(obj)/mkpiggy FORCE |
| 79 | suffix_$(CONFIG_KERNEL_LZMA) = lzma | 60 | $(call if_changed,mkpiggy) |
| 80 | |||
| 81 | $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix_y) FORCE | ||
| 82 | $(call if_changed,ld) | ||
diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S index 3a8a866fb2e2..75e4f001e706 100644 --- a/arch/x86/boot/compressed/head_32.S +++ b/arch/x86/boot/compressed/head_32.S | |||
| @@ -12,16 +12,16 @@ | |||
| 12 | * the page directory. [According to comments etc elsewhere on a compressed | 12 | * the page directory. [According to comments etc elsewhere on a compressed |
| 13 | * kernel it will end up at 0x1000 + 1Mb I hope so as I assume this. - AC] | 13 | * kernel it will end up at 0x1000 + 1Mb I hope so as I assume this. - AC] |
| 14 | * | 14 | * |
| 15 | * Page 0 is deliberately kept safe, since System Management Mode code in | 15 | * Page 0 is deliberately kept safe, since System Management Mode code in |
| 16 | * laptops may need to access the BIOS data stored there. This is also | 16 | * laptops may need to access the BIOS data stored there. This is also |
| 17 | * useful for future device drivers that either access the BIOS via VM86 | 17 | * useful for future device drivers that either access the BIOS via VM86 |
| 18 | * mode. | 18 | * mode. |
| 19 | */ | 19 | */ |
| 20 | 20 | ||
| 21 | /* | 21 | /* |
| 22 | * High loaded stuff by Hans Lermen & Werner Almesberger, Feb. 1996 | 22 | * High loaded stuff by Hans Lermen & Werner Almesberger, Feb. 1996 |
| 23 | */ | 23 | */ |
| 24 | .text | 24 | .text |
| 25 | 25 | ||
| 26 | #include <linux/linkage.h> | 26 | #include <linux/linkage.h> |
| 27 | #include <asm/segment.h> | 27 | #include <asm/segment.h> |
| @@ -29,161 +29,151 @@ | |||
| 29 | #include <asm/boot.h> | 29 | #include <asm/boot.h> |
| 30 | #include <asm/asm-offsets.h> | 30 | #include <asm/asm-offsets.h> |
| 31 | 31 | ||
| 32 | .section ".text.head","ax",@progbits | 32 | .section ".text.head","ax",@progbits |
| 33 | ENTRY(startup_32) | 33 | ENTRY(startup_32) |
| 34 | cld | 34 | cld |
| 35 | /* test KEEP_SEGMENTS flag to see if the bootloader is asking | 35 | /* |
| 36 | * us to not reload segments */ | 36 | * Test KEEP_SEGMENTS flag to see if the bootloader is asking |
| 37 | testb $(1<<6), BP_loadflags(%esi) | 37 | * us to not reload segments |
| 38 | jnz 1f | 38 | */ |
| 39 | testb $(1<<6), BP_loadflags(%esi) | ||
| 40 | jnz 1f | ||
| 39 | 41 | ||
| 40 | cli | 42 | cli |
| 41 | movl $(__BOOT_DS),%eax | 43 | movl $__BOOT_DS, %eax |
| 42 | movl %eax,%ds | 44 | movl %eax, %ds |
| 43 | movl %eax,%es | 45 | movl %eax, %es |
| 44 | movl %eax,%fs | 46 | movl %eax, %fs |
| 45 | movl %eax,%gs | 47 | movl %eax, %gs |
| 46 | movl %eax,%ss | 48 | movl %eax, %ss |
| 47 | 1: | 49 | 1: |
| 48 | 50 | ||
| 49 | /* Calculate the delta between where we were compiled to run | 51 | /* |
| 52 | * Calculate the delta between where we were compiled to run | ||
| 50 | * at and where we were actually loaded at. This can only be done | 53 | * at and where we were actually loaded at. This can only be done |
| 51 | * with a short local call on x86. Nothing else will tell us what | 54 | * with a short local call on x86. Nothing else will tell us what |
| 52 | * address we are running at. The reserved chunk of the real-mode | 55 | * address we are running at. The reserved chunk of the real-mode |
| 53 | * data at 0x1e4 (defined as a scratch field) are used as the stack | 56 | * data at 0x1e4 (defined as a scratch field) are used as the stack |
| 54 | * for this calculation. Only 4 bytes are needed. | 57 | * for this calculation. Only 4 bytes are needed. |
| 55 | */ | 58 | */ |
| 56 | leal (0x1e4+4)(%esi), %esp | 59 | leal (BP_scratch+4)(%esi), %esp |
| 57 | call 1f | 60 | call 1f |
| 58 | 1: popl %ebp | 61 | 1: popl %ebp |
| 59 | subl $1b, %ebp | 62 | subl $1b, %ebp |
| 60 | 63 | ||
| 61 | /* %ebp contains the address we are loaded at by the boot loader and %ebx | 64 | /* |
| 65 | * %ebp contains the address we are loaded at by the boot loader and %ebx | ||
| 62 | * contains the address where we should move the kernel image temporarily | 66 | * contains the address where we should move the kernel image temporarily |
| 63 | * for safe in-place decompression. | 67 | * for safe in-place decompression. |
| 64 | */ | 68 | */ |
| 65 | 69 | ||
| 66 | #ifdef CONFIG_RELOCATABLE | 70 | #ifdef CONFIG_RELOCATABLE |
| 67 | movl %ebp, %ebx | 71 | movl %ebp, %ebx |
| 68 | addl $(CONFIG_PHYSICAL_ALIGN - 1), %ebx | 72 | movl BP_kernel_alignment(%esi), %eax |
| 69 | andl $(~(CONFIG_PHYSICAL_ALIGN - 1)), %ebx | 73 | decl %eax |
| 74 | addl %eax, %ebx | ||
| 75 | notl %eax | ||
| 76 | andl %eax, %ebx | ||
| 70 | #else | 77 | #else |
| 71 | movl $LOAD_PHYSICAL_ADDR, %ebx | 78 | movl $LOAD_PHYSICAL_ADDR, %ebx |
| 72 | #endif | 79 | #endif |
| 73 | 80 | ||
| 74 | /* Replace the compressed data size with the uncompressed size */ | 81 | /* Target address to relocate to for decompression */ |
| 75 | subl input_len(%ebp), %ebx | 82 | addl $z_extract_offset, %ebx |
| 76 | movl output_len(%ebp), %eax | 83 | |
| 77 | addl %eax, %ebx | 84 | /* Set up the stack */ |
| 78 | /* Add 8 bytes for every 32K input block */ | 85 | leal boot_stack_end(%ebx), %esp |
| 79 | shrl $12, %eax | 86 | |
| 80 | addl %eax, %ebx | 87 | /* Zero EFLAGS */ |
| 81 | /* Add 32K + 18 bytes of extra slack */ | 88 | pushl $0 |
| 82 | addl $(32768 + 18), %ebx | 89 | popfl |
| 83 | /* Align on a 4K boundary */ | 90 | |
| 84 | addl $4095, %ebx | 91 | /* |
| 85 | andl $~4095, %ebx | 92 | * Copy the compressed kernel to the end of our buffer |
| 86 | |||
| 87 | /* Copy the compressed kernel to the end of our buffer | ||
| 88 | * where decompression in place becomes safe. | 93 | * where decompression in place becomes safe. |
| 89 | */ | 94 | */ |
| 90 | pushl %esi | 95 | pushl %esi |
| 91 | leal _end(%ebp), %esi | 96 | leal (_bss-4)(%ebp), %esi |
| 92 | leal _end(%ebx), %edi | 97 | leal (_bss-4)(%ebx), %edi |
| 93 | movl $(_end - startup_32), %ecx | 98 | movl $(_bss - startup_32), %ecx |
| 99 | shrl $2, %ecx | ||
| 94 | std | 100 | std |
| 95 | rep | 101 | rep movsl |
| 96 | movsb | ||
| 97 | cld | 102 | cld |
| 98 | popl %esi | 103 | popl %esi |
| 99 | |||
| 100 | /* Compute the kernel start address. | ||
| 101 | */ | ||
| 102 | #ifdef CONFIG_RELOCATABLE | ||
| 103 | addl $(CONFIG_PHYSICAL_ALIGN - 1), %ebp | ||
| 104 | andl $(~(CONFIG_PHYSICAL_ALIGN - 1)), %ebp | ||
| 105 | #else | ||
| 106 | movl $LOAD_PHYSICAL_ADDR, %ebp | ||
| 107 | #endif | ||
| 108 | 104 | ||
| 109 | /* | 105 | /* |
| 110 | * Jump to the relocated address. | 106 | * Jump to the relocated address. |
| 111 | */ | 107 | */ |
| 112 | leal relocated(%ebx), %eax | 108 | leal relocated(%ebx), %eax |
| 113 | jmp *%eax | 109 | jmp *%eax |
| 114 | ENDPROC(startup_32) | 110 | ENDPROC(startup_32) |
| 115 | 111 | ||
| 116 | .section ".text" | 112 | .text |
| 117 | relocated: | 113 | relocated: |
| 118 | 114 | ||
| 119 | /* | 115 | /* |
| 120 | * Clear BSS | 116 | * Clear BSS (stack is currently empty) |
| 121 | */ | ||
| 122 | xorl %eax,%eax | ||
| 123 | leal _edata(%ebx),%edi | ||
| 124 | leal _end(%ebx), %ecx | ||
| 125 | subl %edi,%ecx | ||
| 126 | cld | ||
| 127 | rep | ||
| 128 | stosb | ||
| 129 | |||
| 130 | /* | ||
| 131 | * Setup the stack for the decompressor | ||
| 132 | */ | 117 | */ |
| 133 | leal boot_stack_end(%ebx), %esp | 118 | xorl %eax, %eax |
| 119 | leal _bss(%ebx), %edi | ||
| 120 | leal _ebss(%ebx), %ecx | ||
| 121 | subl %edi, %ecx | ||
| 122 | shrl $2, %ecx | ||
| 123 | rep stosl | ||
| 134 | 124 | ||
| 135 | /* | 125 | /* |
| 136 | * Do the decompression, and jump to the new kernel.. | 126 | * Do the decompression, and jump to the new kernel.. |
| 137 | */ | 127 | */ |
| 138 | movl output_len(%ebx), %eax | 128 | leal z_extract_offset_negative(%ebx), %ebp |
| 139 | pushl %eax | 129 | /* push arguments for decompress_kernel: */ |
| 140 | # push arguments for decompress_kernel: | 130 | pushl %ebp /* output address */ |
| 141 | pushl %ebp # output address | 131 | pushl $z_input_len /* input_len */ |
| 142 | movl input_len(%ebx), %eax | 132 | leal input_data(%ebx), %eax |
| 143 | pushl %eax # input_len | 133 | pushl %eax /* input_data */ |
| 144 | leal input_data(%ebx), %eax | 134 | leal boot_heap(%ebx), %eax |
| 145 | pushl %eax # input_data | 135 | pushl %eax /* heap area */ |
| 146 | leal boot_heap(%ebx), %eax | 136 | pushl %esi /* real mode pointer */ |
| 147 | pushl %eax # heap area | 137 | call decompress_kernel |
| 148 | pushl %esi # real mode pointer | 138 | addl $20, %esp |
| 149 | call decompress_kernel | ||
| 150 | addl $20, %esp | ||
| 151 | popl %ecx | ||
| 152 | 139 | ||
| 153 | #if CONFIG_RELOCATABLE | 140 | #if CONFIG_RELOCATABLE |
| 154 | /* Find the address of the relocations. | 141 | /* |
| 142 | * Find the address of the relocations. | ||
| 155 | */ | 143 | */ |
| 156 | movl %ebp, %edi | 144 | leal z_output_len(%ebp), %edi |
| 157 | addl %ecx, %edi | ||
| 158 | 145 | ||
| 159 | /* Calculate the delta between where vmlinux was compiled to run | 146 | /* |
| 147 | * Calculate the delta between where vmlinux was compiled to run | ||
| 160 | * and where it was actually loaded. | 148 | * and where it was actually loaded. |
| 161 | */ | 149 | */ |
| 162 | movl %ebp, %ebx | 150 | movl %ebp, %ebx |
| 163 | subl $LOAD_PHYSICAL_ADDR, %ebx | 151 | subl $LOAD_PHYSICAL_ADDR, %ebx |
| 164 | jz 2f /* Nothing to be done if loaded at compiled addr. */ | 152 | jz 2f /* Nothing to be done if loaded at compiled addr. */ |
| 165 | /* | 153 | /* |
| 166 | * Process relocations. | 154 | * Process relocations. |
| 167 | */ | 155 | */ |
| 168 | 156 | ||
| 169 | 1: subl $4, %edi | 157 | 1: subl $4, %edi |
| 170 | movl 0(%edi), %ecx | 158 | movl (%edi), %ecx |
| 171 | testl %ecx, %ecx | 159 | testl %ecx, %ecx |
| 172 | jz 2f | 160 | jz 2f |
| 173 | addl %ebx, -__PAGE_OFFSET(%ebx, %ecx) | 161 | addl %ebx, -__PAGE_OFFSET(%ebx, %ecx) |
| 174 | jmp 1b | 162 | jmp 1b |
| 175 | 2: | 163 | 2: |
| 176 | #endif | 164 | #endif |
| 177 | 165 | ||
| 178 | /* | 166 | /* |
| 179 | * Jump to the decompressed kernel. | 167 | * Jump to the decompressed kernel. |
| 180 | */ | 168 | */ |
| 181 | xorl %ebx,%ebx | 169 | xorl %ebx, %ebx |
| 182 | jmp *%ebp | 170 | jmp *%ebp |
| 183 | 171 | ||
| 184 | .bss | 172 | /* |
| 185 | /* Stack and heap for uncompression */ | 173 | * Stack and heap for uncompression |
| 186 | .balign 4 | 174 | */ |
| 175 | .bss | ||
| 176 | .balign 4 | ||
| 187 | boot_heap: | 177 | boot_heap: |
| 188 | .fill BOOT_HEAP_SIZE, 1, 0 | 178 | .fill BOOT_HEAP_SIZE, 1, 0 |
| 189 | boot_stack: | 179 | boot_stack: |
diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S index ed4a82948002..f62c284db9eb 100644 --- a/arch/x86/boot/compressed/head_64.S +++ b/arch/x86/boot/compressed/head_64.S | |||
| @@ -21,8 +21,8 @@ | |||
| 21 | /* | 21 | /* |
| 22 | * High loaded stuff by Hans Lermen & Werner Almesberger, Feb. 1996 | 22 | * High loaded stuff by Hans Lermen & Werner Almesberger, Feb. 1996 |
| 23 | */ | 23 | */ |
| 24 | .code32 | 24 | .code32 |
| 25 | .text | 25 | .text |
| 26 | 26 | ||
| 27 | #include <linux/linkage.h> | 27 | #include <linux/linkage.h> |
| 28 | #include <asm/segment.h> | 28 | #include <asm/segment.h> |
| @@ -33,12 +33,14 @@ | |||
| 33 | #include <asm/processor-flags.h> | 33 | #include <asm/processor-flags.h> |
| 34 | #include <asm/asm-offsets.h> | 34 | #include <asm/asm-offsets.h> |
| 35 | 35 | ||
| 36 | .section ".text.head" | 36 | .section ".text.head" |
| 37 | .code32 | 37 | .code32 |
| 38 | ENTRY(startup_32) | 38 | ENTRY(startup_32) |
| 39 | cld | 39 | cld |
| 40 | /* test KEEP_SEGMENTS flag to see if the bootloader is asking | 40 | /* |
| 41 | * us to not reload segments */ | 41 | * Test KEEP_SEGMENTS flag to see if the bootloader is asking |
| 42 | * us to not reload segments | ||
| 43 | */ | ||
| 42 | testb $(1<<6), BP_loadflags(%esi) | 44 | testb $(1<<6), BP_loadflags(%esi) |
| 43 | jnz 1f | 45 | jnz 1f |
| 44 | 46 | ||
| @@ -49,14 +51,15 @@ ENTRY(startup_32) | |||
| 49 | movl %eax, %ss | 51 | movl %eax, %ss |
| 50 | 1: | 52 | 1: |
| 51 | 53 | ||
| 52 | /* Calculate the delta between where we were compiled to run | 54 | /* |
| 55 | * Calculate the delta between where we were compiled to run | ||
| 53 | * at and where we were actually loaded at. This can only be done | 56 | * at and where we were actually loaded at. This can only be done |
| 54 | * with a short local call on x86. Nothing else will tell us what | 57 | * with a short local call on x86. Nothing else will tell us what |
| 55 | * address we are running at. The reserved chunk of the real-mode | 58 | * address we are running at. The reserved chunk of the real-mode |
| 56 | * data at 0x1e4 (defined as a scratch field) are used as the stack | 59 | * data at 0x1e4 (defined as a scratch field) are used as the stack |
| 57 | * for this calculation. Only 4 bytes are needed. | 60 | * for this calculation. Only 4 bytes are needed. |
| 58 | */ | 61 | */ |
| 59 | leal (0x1e4+4)(%esi), %esp | 62 | leal (BP_scratch+4)(%esi), %esp |
| 60 | call 1f | 63 | call 1f |
| 61 | 1: popl %ebp | 64 | 1: popl %ebp |
| 62 | subl $1b, %ebp | 65 | subl $1b, %ebp |
| @@ -70,32 +73,28 @@ ENTRY(startup_32) | |||
| 70 | testl %eax, %eax | 73 | testl %eax, %eax |
| 71 | jnz no_longmode | 74 | jnz no_longmode |
| 72 | 75 | ||
| 73 | /* Compute the delta between where we were compiled to run at | 76 | /* |
| 77 | * Compute the delta between where we were compiled to run at | ||
| 74 | * and where the code will actually run at. | 78 | * and where the code will actually run at. |
| 75 | */ | 79 | * |
| 76 | /* %ebp contains the address we are loaded at by the boot loader and %ebx | 80 | * %ebp contains the address we are loaded at by the boot loader and %ebx |
| 77 | * contains the address where we should move the kernel image temporarily | 81 | * contains the address where we should move the kernel image temporarily |
| 78 | * for safe in-place decompression. | 82 | * for safe in-place decompression. |
| 79 | */ | 83 | */ |
| 80 | 84 | ||
| 81 | #ifdef CONFIG_RELOCATABLE | 85 | #ifdef CONFIG_RELOCATABLE |
| 82 | movl %ebp, %ebx | 86 | movl %ebp, %ebx |
| 83 | addl $(PMD_PAGE_SIZE -1), %ebx | 87 | movl BP_kernel_alignment(%esi), %eax |
| 84 | andl $PMD_PAGE_MASK, %ebx | 88 | decl %eax |
| 89 | addl %eax, %ebx | ||
| 90 | notl %eax | ||
| 91 | andl %eax, %ebx | ||
| 85 | #else | 92 | #else |
| 86 | movl $CONFIG_PHYSICAL_START, %ebx | 93 | movl $LOAD_PHYSICAL_ADDR, %ebx |
| 87 | #endif | 94 | #endif |
| 88 | 95 | ||
| 89 | /* Replace the compressed data size with the uncompressed size */ | 96 | /* Target address to relocate to for decompression */ |
| 90 | subl input_len(%ebp), %ebx | 97 | addl $z_extract_offset, %ebx |
| 91 | movl output_len(%ebp), %eax | ||
| 92 | addl %eax, %ebx | ||
| 93 | /* Add 8 bytes for every 32K input block */ | ||
| 94 | shrl $12, %eax | ||
| 95 | addl %eax, %ebx | ||
| 96 | /* Add 32K + 18 bytes of extra slack and align on a 4K boundary */ | ||
| 97 | addl $(32768 + 18 + 4095), %ebx | ||
| 98 | andl $~4095, %ebx | ||
| 99 | 98 | ||
| 100 | /* | 99 | /* |
| 101 | * Prepare for entering 64 bit mode | 100 | * Prepare for entering 64 bit mode |
| @@ -114,7 +113,7 @@ ENTRY(startup_32) | |||
| 114 | /* | 113 | /* |
| 115 | * Build early 4G boot pagetable | 114 | * Build early 4G boot pagetable |
| 116 | */ | 115 | */ |
| 117 | /* Initialize Page tables to 0*/ | 116 | /* Initialize Page tables to 0 */ |
| 118 | leal pgtable(%ebx), %edi | 117 | leal pgtable(%ebx), %edi |
| 119 | xorl %eax, %eax | 118 | xorl %eax, %eax |
| 120 | movl $((4096*6)/4), %ecx | 119 | movl $((4096*6)/4), %ecx |
| @@ -155,7 +154,8 @@ ENTRY(startup_32) | |||
| 155 | btsl $_EFER_LME, %eax | 154 | btsl $_EFER_LME, %eax |
| 156 | wrmsr | 155 | wrmsr |
| 157 | 156 | ||
| 158 | /* Setup for the jump to 64bit mode | 157 | /* |
| 158 | * Setup for the jump to 64bit mode | ||
| 159 | * | 159 | * |
| 160 | * When the jump is performend we will be in long mode but | 160 | * When the jump is performend we will be in long mode but |
| 161 | * in 32bit compatibility mode with EFER.LME = 1, CS.L = 0, CS.D = 1 | 161 | * in 32bit compatibility mode with EFER.LME = 1, CS.L = 0, CS.D = 1 |
| @@ -184,7 +184,8 @@ no_longmode: | |||
| 184 | 184 | ||
| 185 | #include "../../kernel/verify_cpu_64.S" | 185 | #include "../../kernel/verify_cpu_64.S" |
| 186 | 186 | ||
| 187 | /* Be careful here startup_64 needs to be at a predictable | 187 | /* |
| 188 | * Be careful here startup_64 needs to be at a predictable | ||
| 188 | * address so I can export it in an ELF header. Bootloaders | 189 | * address so I can export it in an ELF header. Bootloaders |
| 189 | * should look at the ELF header to find this address, as | 190 | * should look at the ELF header to find this address, as |
| 190 | * it may change in the future. | 191 | * it may change in the future. |
| @@ -192,7 +193,8 @@ no_longmode: | |||
| 192 | .code64 | 193 | .code64 |
| 193 | .org 0x200 | 194 | .org 0x200 |
| 194 | ENTRY(startup_64) | 195 | ENTRY(startup_64) |
| 195 | /* We come here either from startup_32 or directly from a | 196 | /* |
| 197 | * We come here either from startup_32 or directly from a | ||
| 196 | * 64bit bootloader. If we come here from a bootloader we depend on | 198 | * 64bit bootloader. If we come here from a bootloader we depend on |
| 197 | * an identity mapped page table being provied that maps our | 199 | * an identity mapped page table being provied that maps our |
| 198 | * entire text+data+bss and hopefully all of memory. | 200 | * entire text+data+bss and hopefully all of memory. |
| @@ -209,50 +211,54 @@ ENTRY(startup_64) | |||
| 209 | movl $0x20, %eax | 211 | movl $0x20, %eax |
| 210 | ltr %ax | 212 | ltr %ax |
| 211 | 213 | ||
| 212 | /* Compute the decompressed kernel start address. It is where | 214 | /* |
| 215 | * Compute the decompressed kernel start address. It is where | ||
| 213 | * we were loaded at aligned to a 2M boundary. %rbp contains the | 216 | * we were loaded at aligned to a 2M boundary. %rbp contains the |
| 214 | * decompressed kernel start address. | 217 | * decompressed kernel start address. |
| 215 | * | 218 | * |
| 216 | * If it is a relocatable kernel then decompress and run the kernel | 219 | * If it is a relocatable kernel then decompress and run the kernel |
| 217 | * from load address aligned to 2MB addr, otherwise decompress and | 220 | * from load address aligned to 2MB addr, otherwise decompress and |
| 218 | * run the kernel from CONFIG_PHYSICAL_START | 221 | * run the kernel from LOAD_PHYSICAL_ADDR |
| 222 | * | ||
| 223 | * We cannot rely on the calculation done in 32-bit mode, since we | ||
| 224 | * may have been invoked via the 64-bit entry point. | ||
| 219 | */ | 225 | */ |
| 220 | 226 | ||
| 221 | /* Start with the delta to where the kernel will run at. */ | 227 | /* Start with the delta to where the kernel will run at. */ |
| 222 | #ifdef CONFIG_RELOCATABLE | 228 | #ifdef CONFIG_RELOCATABLE |
| 223 | leaq startup_32(%rip) /* - $startup_32 */, %rbp | 229 | leaq startup_32(%rip) /* - $startup_32 */, %rbp |
| 224 | addq $(PMD_PAGE_SIZE - 1), %rbp | 230 | movl BP_kernel_alignment(%rsi), %eax |
| 225 | andq $PMD_PAGE_MASK, %rbp | 231 | decl %eax |
| 226 | movq %rbp, %rbx | 232 | addq %rax, %rbp |
| 233 | notq %rax | ||
| 234 | andq %rax, %rbp | ||
| 227 | #else | 235 | #else |
| 228 | movq $CONFIG_PHYSICAL_START, %rbp | 236 | movq $LOAD_PHYSICAL_ADDR, %rbp |
| 229 | movq %rbp, %rbx | ||
| 230 | #endif | 237 | #endif |
| 231 | 238 | ||
| 232 | /* Replace the compressed data size with the uncompressed size */ | 239 | /* Target address to relocate to for decompression */ |
| 233 | movl input_len(%rip), %eax | 240 | leaq z_extract_offset(%rbp), %rbx |
| 234 | subq %rax, %rbx | 241 | |
| 235 | movl output_len(%rip), %eax | 242 | /* Set up the stack */ |
| 236 | addq %rax, %rbx | 243 | leaq boot_stack_end(%rbx), %rsp |
| 237 | /* Add 8 bytes for every 32K input block */ | 244 | |
| 238 | shrq $12, %rax | 245 | /* Zero EFLAGS */ |
| 239 | addq %rax, %rbx | 246 | pushq $0 |
| 240 | /* Add 32K + 18 bytes of extra slack and align on a 4K boundary */ | 247 | popfq |
| 241 | addq $(32768 + 18 + 4095), %rbx | 248 | |
| 242 | andq $~4095, %rbx | 249 | /* |
| 243 | 250 | * Copy the compressed kernel to the end of our buffer | |
| 244 | /* Copy the compressed kernel to the end of our buffer | ||
| 245 | * where decompression in place becomes safe. | 251 | * where decompression in place becomes safe. |
| 246 | */ | 252 | */ |
| 247 | leaq _end_before_pgt(%rip), %r8 | 253 | pushq %rsi |
| 248 | leaq _end_before_pgt(%rbx), %r9 | 254 | leaq (_bss-8)(%rip), %rsi |
| 249 | movq $_end_before_pgt /* - $startup_32 */, %rcx | 255 | leaq (_bss-8)(%rbx), %rdi |
| 250 | 1: subq $8, %r8 | 256 | movq $_bss /* - $startup_32 */, %rcx |
| 251 | subq $8, %r9 | 257 | shrq $3, %rcx |
| 252 | movq 0(%r8), %rax | 258 | std |
| 253 | movq %rax, 0(%r9) | 259 | rep movsq |
| 254 | subq $8, %rcx | 260 | cld |
| 255 | jnz 1b | 261 | popq %rsi |
| 256 | 262 | ||
| 257 | /* | 263 | /* |
| 258 | * Jump to the relocated address. | 264 | * Jump to the relocated address. |
| @@ -260,37 +266,28 @@ ENTRY(startup_64) | |||
| 260 | leaq relocated(%rbx), %rax | 266 | leaq relocated(%rbx), %rax |
| 261 | jmp *%rax | 267 | jmp *%rax |
| 262 | 268 | ||
| 263 | .section ".text" | 269 | .text |
| 264 | relocated: | 270 | relocated: |
| 265 | 271 | ||
| 266 | /* | 272 | /* |
| 267 | * Clear BSS | 273 | * Clear BSS (stack is currently empty) |
| 268 | */ | 274 | */ |
| 269 | xorq %rax, %rax | 275 | xorl %eax, %eax |
| 270 | leaq _edata(%rbx), %rdi | 276 | leaq _bss(%rip), %rdi |
| 271 | leaq _end_before_pgt(%rbx), %rcx | 277 | leaq _ebss(%rip), %rcx |
| 272 | subq %rdi, %rcx | 278 | subq %rdi, %rcx |
| 273 | cld | 279 | shrq $3, %rcx |
| 274 | rep | 280 | rep stosq |
| 275 | stosb | ||
| 276 | |||
| 277 | /* Setup the stack */ | ||
| 278 | leaq boot_stack_end(%rip), %rsp | ||
| 279 | |||
| 280 | /* zero EFLAGS after setting rsp */ | ||
| 281 | pushq $0 | ||
| 282 | popfq | ||
| 283 | 281 | ||
| 284 | /* | 282 | /* |
| 285 | * Do the decompression, and jump to the new kernel.. | 283 | * Do the decompression, and jump to the new kernel.. |
| 286 | */ | 284 | */ |
| 287 | pushq %rsi # Save the real mode argument | 285 | pushq %rsi /* Save the real mode argument */ |
| 288 | movq %rsi, %rdi # real mode address | 286 | movq %rsi, %rdi /* real mode address */ |
| 289 | leaq boot_heap(%rip), %rsi # malloc area for uncompression | 287 | leaq boot_heap(%rip), %rsi /* malloc area for uncompression */ |
| 290 | leaq input_data(%rip), %rdx # input_data | 288 | leaq input_data(%rip), %rdx /* input_data */ |
| 291 | movl input_len(%rip), %eax | 289 | movl $z_input_len, %ecx /* input_len */ |
| 292 | movq %rax, %rcx # input_len | 290 | movq %rbp, %r8 /* output target address */ |
| 293 | movq %rbp, %r8 # output | ||
| 294 | call decompress_kernel | 291 | call decompress_kernel |
| 295 | popq %rsi | 292 | popq %rsi |
| 296 | 293 | ||
| @@ -311,11 +308,21 @@ gdt: | |||
| 311 | .quad 0x0000000000000000 /* TS continued */ | 308 | .quad 0x0000000000000000 /* TS continued */ |
| 312 | gdt_end: | 309 | gdt_end: |
| 313 | 310 | ||
| 314 | .bss | 311 | /* |
| 315 | /* Stack and heap for uncompression */ | 312 | * Stack and heap for uncompression |
| 316 | .balign 4 | 313 | */ |
| 314 | .bss | ||
| 315 | .balign 4 | ||
| 317 | boot_heap: | 316 | boot_heap: |
| 318 | .fill BOOT_HEAP_SIZE, 1, 0 | 317 | .fill BOOT_HEAP_SIZE, 1, 0 |
| 319 | boot_stack: | 318 | boot_stack: |
| 320 | .fill BOOT_STACK_SIZE, 1, 0 | 319 | .fill BOOT_STACK_SIZE, 1, 0 |
| 321 | boot_stack_end: | 320 | boot_stack_end: |
| 321 | |||
| 322 | /* | ||
| 323 | * Space for page tables (not in .bss so not zeroed) | ||
| 324 | */ | ||
| 325 | .section ".pgtable","a",@nobits | ||
| 326 | .balign 4096 | ||
| 327 | pgtable: | ||
| 328 | .fill 6*4096, 1, 0 | ||
diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c index e45be73684ff..842b2a36174a 100644 --- a/arch/x86/boot/compressed/misc.c +++ b/arch/x86/boot/compressed/misc.c | |||
| @@ -325,21 +325,19 @@ asmlinkage void decompress_kernel(void *rmode, memptr heap, | |||
| 325 | free_mem_ptr = heap; /* Heap */ | 325 | free_mem_ptr = heap; /* Heap */ |
| 326 | free_mem_end_ptr = heap + BOOT_HEAP_SIZE; | 326 | free_mem_end_ptr = heap + BOOT_HEAP_SIZE; |
| 327 | 327 | ||
| 328 | if ((unsigned long)output & (MIN_KERNEL_ALIGN - 1)) | ||
| 329 | error("Destination address inappropriately aligned"); | ||
| 328 | #ifdef CONFIG_X86_64 | 330 | #ifdef CONFIG_X86_64 |
| 329 | if ((unsigned long)output & (__KERNEL_ALIGN - 1)) | 331 | if (heap > 0x3fffffffffffUL) |
| 330 | error("Destination address not 2M aligned"); | ||
| 331 | if ((unsigned long)output >= 0xffffffffffUL) | ||
| 332 | error("Destination address too large"); | 332 | error("Destination address too large"); |
| 333 | #else | 333 | #else |
| 334 | if ((u32)output & (CONFIG_PHYSICAL_ALIGN - 1)) | ||
| 335 | error("Destination address not CONFIG_PHYSICAL_ALIGN aligned"); | ||
| 336 | if (heap > ((-__PAGE_OFFSET-(512<<20)-1) & 0x7fffffff)) | 334 | if (heap > ((-__PAGE_OFFSET-(512<<20)-1) & 0x7fffffff)) |
| 337 | error("Destination address too large"); | 335 | error("Destination address too large"); |
| 336 | #endif | ||
| 338 | #ifndef CONFIG_RELOCATABLE | 337 | #ifndef CONFIG_RELOCATABLE |
| 339 | if ((u32)output != LOAD_PHYSICAL_ADDR) | 338 | if ((unsigned long)output != LOAD_PHYSICAL_ADDR) |
| 340 | error("Wrong destination address"); | 339 | error("Wrong destination address"); |
| 341 | #endif | 340 | #endif |
| 342 | #endif | ||
| 343 | 341 | ||
| 344 | if (!quiet) | 342 | if (!quiet) |
| 345 | putstr("\nDecompressing Linux... "); | 343 | putstr("\nDecompressing Linux... "); |
diff --git a/arch/x86/boot/compressed/mkpiggy.c b/arch/x86/boot/compressed/mkpiggy.c new file mode 100644 index 000000000000..bcbd36c41432 --- /dev/null +++ b/arch/x86/boot/compressed/mkpiggy.c | |||
| @@ -0,0 +1,97 @@ | |||
| 1 | /* ----------------------------------------------------------------------- * | ||
| 2 | * | ||
| 3 | * Copyright (C) 2009 Intel Corporation. All rights reserved. | ||
| 4 | * | ||
| 5 | * This program is free software; you can redistribute it and/or | ||
| 6 | * modify it under the terms of the GNU General Public License version | ||
| 7 | * 2 as published by the Free Software Foundation. | ||
| 8 | * | ||
| 9 | * This program is distributed in the hope that it will be useful, | ||
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | * GNU General Public License for more details. | ||
| 13 | * | ||
| 14 | * You should have received a copy of the GNU General Public License | ||
| 15 | * along with this program; if not, write to the Free Software | ||
| 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | ||
| 17 | * 02110-1301, USA. | ||
| 18 | * | ||
| 19 | * H. Peter Anvin <hpa@linux.intel.com> | ||
| 20 | * | ||
| 21 | * ----------------------------------------------------------------------- */ | ||
| 22 | |||
| 23 | /* | ||
| 24 | * Compute the desired load offset from a compressed program; outputs | ||
| 25 | * a small assembly wrapper with the appropriate symbols defined. | ||
| 26 | */ | ||
| 27 | |||
| 28 | #include <stdlib.h> | ||
| 29 | #include <stdio.h> | ||
| 30 | #include <string.h> | ||
| 31 | #include <inttypes.h> | ||
| 32 | |||
| 33 | static uint32_t getle32(const void *p) | ||
| 34 | { | ||
| 35 | const uint8_t *cp = p; | ||
| 36 | |||
| 37 | return (uint32_t)cp[0] + ((uint32_t)cp[1] << 8) + | ||
| 38 | ((uint32_t)cp[2] << 16) + ((uint32_t)cp[3] << 24); | ||
| 39 | } | ||
| 40 | |||
| 41 | int main(int argc, char *argv[]) | ||
| 42 | { | ||
| 43 | uint32_t olen; | ||
| 44 | long ilen; | ||
| 45 | unsigned long offs; | ||
| 46 | FILE *f; | ||
| 47 | |||
| 48 | if (argc < 2) { | ||
| 49 | fprintf(stderr, "Usage: %s compressed_file\n", argv[0]); | ||
| 50 | return 1; | ||
| 51 | } | ||
| 52 | |||
| 53 | /* Get the information for the compressed kernel image first */ | ||
| 54 | |||
| 55 | f = fopen(argv[1], "r"); | ||
| 56 | if (!f) { | ||
| 57 | perror(argv[1]); | ||
| 58 | return 1; | ||
| 59 | } | ||
| 60 | |||
| 61 | |||
| 62 | if (fseek(f, -4L, SEEK_END)) { | ||
| 63 | perror(argv[1]); | ||
| 64 | } | ||
| 65 | fread(&olen, sizeof olen, 1, f); | ||
| 66 | ilen = ftell(f); | ||
| 67 | olen = getle32(&olen); | ||
| 68 | fclose(f); | ||
| 69 | |||
| 70 | /* | ||
| 71 | * Now we have the input (compressed) and output (uncompressed) | ||
| 72 | * sizes, compute the necessary decompression offset... | ||
| 73 | */ | ||
| 74 | |||
| 75 | offs = (olen > ilen) ? olen - ilen : 0; | ||
| 76 | offs += olen >> 12; /* Add 8 bytes for each 32K block */ | ||
| 77 | offs += 32*1024 + 18; /* Add 32K + 18 bytes slack */ | ||
| 78 | offs = (offs+4095) & ~4095; /* Round to a 4K boundary */ | ||
| 79 | |||
| 80 | printf(".section \".rodata.compressed\",\"a\",@progbits\n"); | ||
| 81 | printf(".globl z_input_len\n"); | ||
| 82 | printf("z_input_len = %lu\n", ilen); | ||
| 83 | printf(".globl z_output_len\n"); | ||
| 84 | printf("z_output_len = %lu\n", (unsigned long)olen); | ||
| 85 | printf(".globl z_extract_offset\n"); | ||
| 86 | printf("z_extract_offset = 0x%lx\n", offs); | ||
| 87 | /* z_extract_offset_negative allows simplification of head_32.S */ | ||
| 88 | printf(".globl z_extract_offset_negative\n"); | ||
| 89 | printf("z_extract_offset_negative = -0x%lx\n", offs); | ||
| 90 | |||
| 91 | printf(".globl input_data, input_data_end\n"); | ||
| 92 | printf("input_data:\n"); | ||
| 93 | printf(".incbin \"%s\"\n", argv[1]); | ||
| 94 | printf("input_data_end:\n"); | ||
| 95 | |||
| 96 | return 0; | ||
| 97 | } | ||
diff --git a/arch/x86/boot/compressed/vmlinux_64.lds b/arch/x86/boot/compressed/vmlinux.lds.S index bef1ac891bce..cc353e1b3ffd 100644 --- a/arch/x86/boot/compressed/vmlinux_64.lds +++ b/arch/x86/boot/compressed/vmlinux.lds.S | |||
| @@ -1,6 +1,17 @@ | |||
| 1 | OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") | 1 | OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT) |
| 2 | |||
| 3 | #undef i386 | ||
| 4 | |||
| 5 | #include <asm/page_types.h> | ||
| 6 | |||
| 7 | #ifdef CONFIG_X86_64 | ||
| 2 | OUTPUT_ARCH(i386:x86-64) | 8 | OUTPUT_ARCH(i386:x86-64) |
| 3 | ENTRY(startup_64) | 9 | ENTRY(startup_64) |
| 10 | #else | ||
| 11 | OUTPUT_ARCH(i386) | ||
| 12 | ENTRY(startup_32) | ||
| 13 | #endif | ||
| 14 | |||
| 4 | SECTIONS | 15 | SECTIONS |
| 5 | { | 16 | { |
| 6 | /* Be careful parts of head_64.S assume startup_32 is at | 17 | /* Be careful parts of head_64.S assume startup_32 is at |
| @@ -33,16 +44,22 @@ SECTIONS | |||
| 33 | *(.data.*) | 44 | *(.data.*) |
| 34 | _edata = . ; | 45 | _edata = . ; |
| 35 | } | 46 | } |
| 47 | . = ALIGN(CONFIG_X86_L1_CACHE_BYTES); | ||
| 36 | .bss : { | 48 | .bss : { |
| 37 | _bss = . ; | 49 | _bss = . ; |
| 38 | *(.bss) | 50 | *(.bss) |
| 39 | *(.bss.*) | 51 | *(.bss.*) |
| 40 | *(COMMON) | 52 | *(COMMON) |
| 41 | . = ALIGN(8); | 53 | . = ALIGN(8); /* For convenience during zeroing */ |
| 42 | _end_before_pgt = . ; | ||
| 43 | . = ALIGN(4096); | ||
| 44 | pgtable = . ; | ||
| 45 | . = . + 4096 * 6; | ||
| 46 | _ebss = .; | 54 | _ebss = .; |
| 47 | } | 55 | } |
| 56 | #ifdef CONFIG_X86_64 | ||
| 57 | . = ALIGN(PAGE_SIZE); | ||
| 58 | .pgtable : { | ||
| 59 | _pgtable = . ; | ||
| 60 | *(.pgtable) | ||
| 61 | _epgtable = . ; | ||
| 62 | } | ||
| 63 | #endif | ||
| 64 | _end = .; | ||
| 48 | } | 65 | } |
diff --git a/arch/x86/boot/compressed/vmlinux.scr b/arch/x86/boot/compressed/vmlinux.scr deleted file mode 100644 index f02382ae5c48..000000000000 --- a/arch/x86/boot/compressed/vmlinux.scr +++ /dev/null | |||
| @@ -1,10 +0,0 @@ | |||
| 1 | SECTIONS | ||
| 2 | { | ||
| 3 | .rodata.compressed : { | ||
| 4 | input_len = .; | ||
| 5 | LONG(input_data_end - input_data) input_data = .; | ||
| 6 | *(.data) | ||
| 7 | output_len = . - 4; | ||
| 8 | input_data_end = .; | ||
| 9 | } | ||
| 10 | } | ||
diff --git a/arch/x86/boot/compressed/vmlinux_32.lds b/arch/x86/boot/compressed/vmlinux_32.lds deleted file mode 100644 index bb3c48379c40..000000000000 --- a/arch/x86/boot/compressed/vmlinux_32.lds +++ /dev/null | |||
| @@ -1,43 +0,0 @@ | |||
| 1 | OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") | ||
| 2 | OUTPUT_ARCH(i386) | ||
| 3 | ENTRY(startup_32) | ||
| 4 | SECTIONS | ||
| 5 | { | ||
| 6 | /* Be careful parts of head_32.S assume startup_32 is at | ||
| 7 | * address 0. | ||
| 8 | */ | ||
| 9 | . = 0; | ||
| 10 | .text.head : { | ||
| 11 | _head = . ; | ||
| 12 | *(.text.head) | ||
| 13 | _ehead = . ; | ||
| 14 | } | ||
| 15 | .rodata.compressed : { | ||
| 16 | *(.rodata.compressed) | ||
| 17 | } | ||
| 18 | .text : { | ||
| 19 | _text = .; /* Text */ | ||
| 20 | *(.text) | ||
| 21 | *(.text.*) | ||
| 22 | _etext = . ; | ||
| 23 | } | ||
| 24 | .rodata : { | ||
| 25 | _rodata = . ; | ||
| 26 | *(.rodata) /* read-only data */ | ||
| 27 | *(.rodata.*) | ||
| 28 | _erodata = . ; | ||
| 29 | } | ||
| 30 | .data : { | ||
| 31 | _data = . ; | ||
| 32 | *(.data) | ||
| 33 | *(.data.*) | ||
| 34 | _edata = . ; | ||
| 35 | } | ||
| 36 | .bss : { | ||
| 37 | _bss = . ; | ||
| 38 | *(.bss) | ||
| 39 | *(.bss.*) | ||
| 40 | *(COMMON) | ||
| 41 | _end = . ; | ||
| 42 | } | ||
| 43 | } | ||
diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S index 5d84d1c74e4c..1040f6e8010c 100644 --- a/arch/x86/boot/header.S +++ b/arch/x86/boot/header.S | |||
| @@ -22,7 +22,8 @@ | |||
| 22 | #include <asm/page_types.h> | 22 | #include <asm/page_types.h> |
| 23 | #include <asm/setup.h> | 23 | #include <asm/setup.h> |
| 24 | #include "boot.h" | 24 | #include "boot.h" |
| 25 | #include "offsets.h" | 25 | #include "voffset.h" |
| 26 | #include "zoffset.h" | ||
| 26 | 27 | ||
| 27 | BOOTSEG = 0x07C0 /* original address of boot-sector */ | 28 | BOOTSEG = 0x07C0 /* original address of boot-sector */ |
| 28 | SYSSEG = 0x1000 /* historical load address >> 4 */ | 29 | SYSSEG = 0x1000 /* historical load address >> 4 */ |
| @@ -115,7 +116,7 @@ _start: | |||
| 115 | # Part 2 of the header, from the old setup.S | 116 | # Part 2 of the header, from the old setup.S |
| 116 | 117 | ||
| 117 | .ascii "HdrS" # header signature | 118 | .ascii "HdrS" # header signature |
| 118 | .word 0x0209 # header version number (>= 0x0105) | 119 | .word 0x020a # header version number (>= 0x0105) |
| 119 | # or else old loadlin-1.5 will fail) | 120 | # or else old loadlin-1.5 will fail) |
| 120 | .globl realmode_swtch | 121 | .globl realmode_swtch |
| 121 | realmode_swtch: .word 0, 0 # default_switch, SETUPSEG | 122 | realmode_swtch: .word 0, 0 # default_switch, SETUPSEG |
| @@ -168,7 +169,11 @@ heap_end_ptr: .word _end+STACK_SIZE-512 | |||
| 168 | # end of setup code can be used by setup | 169 | # end of setup code can be used by setup |
| 169 | # for local heap purposes. | 170 | # for local heap purposes. |
| 170 | 171 | ||
| 171 | pad1: .word 0 | 172 | ext_loader_ver: |
| 173 | .byte 0 # Extended boot loader version | ||
| 174 | ext_loader_type: | ||
| 175 | .byte 0 # Extended boot loader type | ||
| 176 | |||
| 172 | cmd_line_ptr: .long 0 # (Header version 0x0202 or later) | 177 | cmd_line_ptr: .long 0 # (Header version 0x0202 or later) |
| 173 | # If nonzero, a 32-bit pointer | 178 | # If nonzero, a 32-bit pointer |
| 174 | # to the kernel command line. | 179 | # to the kernel command line. |
| @@ -200,7 +205,7 @@ relocatable_kernel: .byte 1 | |||
| 200 | #else | 205 | #else |
| 201 | relocatable_kernel: .byte 0 | 206 | relocatable_kernel: .byte 0 |
| 202 | #endif | 207 | #endif |
| 203 | pad2: .byte 0 | 208 | min_alignment: .byte MIN_KERNEL_ALIGN_LG2 # minimum alignment |
| 204 | pad3: .word 0 | 209 | pad3: .word 0 |
| 205 | 210 | ||
| 206 | cmdline_size: .long COMMAND_LINE_SIZE-1 #length of the command line, | 211 | cmdline_size: .long COMMAND_LINE_SIZE-1 #length of the command line, |
| @@ -212,13 +217,24 @@ hardware_subarch: .long 0 # subarchitecture, added with 2.07 | |||
| 212 | 217 | ||
| 213 | hardware_subarch_data: .quad 0 | 218 | hardware_subarch_data: .quad 0 |
| 214 | 219 | ||
| 215 | payload_offset: .long input_data | 220 | payload_offset: .long ZO_input_data |
| 216 | payload_length: .long input_data_end-input_data | 221 | payload_length: .long ZO_z_input_len |
| 217 | 222 | ||
| 218 | setup_data: .quad 0 # 64-bit physical pointer to | 223 | setup_data: .quad 0 # 64-bit physical pointer to |
| 219 | # single linked list of | 224 | # single linked list of |
| 220 | # struct setup_data | 225 | # struct setup_data |
| 221 | 226 | ||
| 227 | pref_address: .quad LOAD_PHYSICAL_ADDR # preferred load addr | ||
| 228 | |||
| 229 | #define ZO_INIT_SIZE (ZO__end - ZO_startup_32 + ZO_z_extract_offset) | ||
| 230 | #define VO_INIT_SIZE (VO__end - VO__text) | ||
| 231 | #if ZO_INIT_SIZE > VO_INIT_SIZE | ||
| 232 | #define INIT_SIZE ZO_INIT_SIZE | ||
| 233 | #else | ||
| 234 | #define INIT_SIZE VO_INIT_SIZE | ||
| 235 | #endif | ||
| 236 | init_size: .long INIT_SIZE # kernel initialization size | ||
| 237 | |||
| 222 | # End of setup header ##################################################### | 238 | # End of setup header ##################################################### |
| 223 | 239 | ||
| 224 | .section ".inittext", "ax" | 240 | .section ".inittext", "ax" |
diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig index 235b81d0f6f2..edb992ebef92 100644 --- a/arch/x86/configs/i386_defconfig +++ b/arch/x86/configs/i386_defconfig | |||
| @@ -1,12 +1,13 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.29-rc4 | 3 | # Linux kernel version: 2.6.30-rc2 |
| 4 | # Tue Feb 24 15:50:58 2009 | 4 | # Mon May 11 16:21:55 2009 |
| 5 | # | 5 | # |
| 6 | # CONFIG_64BIT is not set | 6 | # CONFIG_64BIT is not set |
| 7 | CONFIG_X86_32=y | 7 | CONFIG_X86_32=y |
| 8 | # CONFIG_X86_64 is not set | 8 | # CONFIG_X86_64 is not set |
| 9 | CONFIG_X86=y | 9 | CONFIG_X86=y |
| 10 | CONFIG_OUTPUT_FORMAT="elf32-i386" | ||
| 10 | CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" | 11 | CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" |
| 11 | CONFIG_GENERIC_TIME=y | 12 | CONFIG_GENERIC_TIME=y |
| 12 | CONFIG_GENERIC_CMOS_UPDATE=y | 13 | CONFIG_GENERIC_CMOS_UPDATE=y |
| @@ -33,6 +34,7 @@ CONFIG_ARCH_HAS_CPU_RELAX=y | |||
| 33 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 34 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
| 34 | CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y | 35 | CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y |
| 35 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y | 36 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y |
| 37 | CONFIG_HAVE_DYNAMIC_PER_CPU_AREA=y | ||
| 36 | # CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set | 38 | # CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set |
| 37 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 39 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
| 38 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 40 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
| @@ -40,15 +42,16 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y | |||
| 40 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 42 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
| 41 | # CONFIG_AUDIT_ARCH is not set | 43 | # CONFIG_AUDIT_ARCH is not set |
| 42 | CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y | 44 | CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y |
| 45 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
| 43 | CONFIG_GENERIC_HARDIRQS=y | 46 | CONFIG_GENERIC_HARDIRQS=y |
| 47 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
| 44 | CONFIG_GENERIC_IRQ_PROBE=y | 48 | CONFIG_GENERIC_IRQ_PROBE=y |
| 45 | CONFIG_GENERIC_PENDING_IRQ=y | 49 | CONFIG_GENERIC_PENDING_IRQ=y |
| 46 | CONFIG_X86_SMP=y | ||
| 47 | CONFIG_USE_GENERIC_SMP_HELPERS=y | 50 | CONFIG_USE_GENERIC_SMP_HELPERS=y |
| 48 | CONFIG_X86_32_SMP=y | 51 | CONFIG_X86_32_SMP=y |
| 49 | CONFIG_X86_HT=y | 52 | CONFIG_X86_HT=y |
| 50 | CONFIG_X86_BIOS_REBOOT=y | ||
| 51 | CONFIG_X86_TRAMPOLINE=y | 53 | CONFIG_X86_TRAMPOLINE=y |
| 54 | CONFIG_X86_32_LAZY_GS=y | ||
| 52 | CONFIG_KTIME_SCALAR=y | 55 | CONFIG_KTIME_SCALAR=y |
| 53 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 56 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
| 54 | 57 | ||
| @@ -60,10 +63,17 @@ CONFIG_LOCK_KERNEL=y | |||
| 60 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 63 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
| 61 | CONFIG_LOCALVERSION="" | 64 | CONFIG_LOCALVERSION="" |
| 62 | # CONFIG_LOCALVERSION_AUTO is not set | 65 | # CONFIG_LOCALVERSION_AUTO is not set |
| 66 | CONFIG_HAVE_KERNEL_GZIP=y | ||
| 67 | CONFIG_HAVE_KERNEL_BZIP2=y | ||
| 68 | CONFIG_HAVE_KERNEL_LZMA=y | ||
| 69 | CONFIG_KERNEL_GZIP=y | ||
| 70 | # CONFIG_KERNEL_BZIP2 is not set | ||
| 71 | # CONFIG_KERNEL_LZMA is not set | ||
| 63 | CONFIG_SWAP=y | 72 | CONFIG_SWAP=y |
| 64 | CONFIG_SYSVIPC=y | 73 | CONFIG_SYSVIPC=y |
| 65 | CONFIG_SYSVIPC_SYSCTL=y | 74 | CONFIG_SYSVIPC_SYSCTL=y |
| 66 | CONFIG_POSIX_MQUEUE=y | 75 | CONFIG_POSIX_MQUEUE=y |
| 76 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
| 67 | CONFIG_BSD_PROCESS_ACCT=y | 77 | CONFIG_BSD_PROCESS_ACCT=y |
| 68 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 78 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
| 69 | CONFIG_TASKSTATS=y | 79 | CONFIG_TASKSTATS=y |
| @@ -113,23 +123,26 @@ CONFIG_PID_NS=y | |||
| 113 | CONFIG_NET_NS=y | 123 | CONFIG_NET_NS=y |
| 114 | CONFIG_BLK_DEV_INITRD=y | 124 | CONFIG_BLK_DEV_INITRD=y |
| 115 | CONFIG_INITRAMFS_SOURCE="" | 125 | CONFIG_INITRAMFS_SOURCE="" |
| 126 | CONFIG_RD_GZIP=y | ||
| 127 | CONFIG_RD_BZIP2=y | ||
| 128 | CONFIG_RD_LZMA=y | ||
| 116 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 129 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
| 117 | CONFIG_SYSCTL=y | 130 | CONFIG_SYSCTL=y |
| 131 | CONFIG_ANON_INODES=y | ||
| 118 | # CONFIG_EMBEDDED is not set | 132 | # CONFIG_EMBEDDED is not set |
| 119 | CONFIG_UID16=y | 133 | CONFIG_UID16=y |
| 120 | CONFIG_SYSCTL_SYSCALL=y | 134 | CONFIG_SYSCTL_SYSCALL=y |
| 121 | CONFIG_KALLSYMS=y | 135 | CONFIG_KALLSYMS=y |
| 122 | CONFIG_KALLSYMS_ALL=y | 136 | CONFIG_KALLSYMS_ALL=y |
| 123 | CONFIG_KALLSYMS_EXTRA_PASS=y | 137 | CONFIG_KALLSYMS_EXTRA_PASS=y |
| 138 | # CONFIG_STRIP_ASM_SYMS is not set | ||
| 124 | CONFIG_HOTPLUG=y | 139 | CONFIG_HOTPLUG=y |
| 125 | CONFIG_PRINTK=y | 140 | CONFIG_PRINTK=y |
| 126 | CONFIG_BUG=y | 141 | CONFIG_BUG=y |
| 127 | CONFIG_ELF_CORE=y | 142 | CONFIG_ELF_CORE=y |
| 128 | CONFIG_PCSPKR_PLATFORM=y | 143 | CONFIG_PCSPKR_PLATFORM=y |
| 129 | # CONFIG_COMPAT_BRK is not set | ||
| 130 | CONFIG_BASE_FULL=y | 144 | CONFIG_BASE_FULL=y |
| 131 | CONFIG_FUTEX=y | 145 | CONFIG_FUTEX=y |
| 132 | CONFIG_ANON_INODES=y | ||
| 133 | CONFIG_EPOLL=y | 146 | CONFIG_EPOLL=y |
| 134 | CONFIG_SIGNALFD=y | 147 | CONFIG_SIGNALFD=y |
| 135 | CONFIG_TIMERFD=y | 148 | CONFIG_TIMERFD=y |
| @@ -139,6 +152,7 @@ CONFIG_AIO=y | |||
| 139 | CONFIG_VM_EVENT_COUNTERS=y | 152 | CONFIG_VM_EVENT_COUNTERS=y |
| 140 | CONFIG_PCI_QUIRKS=y | 153 | CONFIG_PCI_QUIRKS=y |
| 141 | CONFIG_SLUB_DEBUG=y | 154 | CONFIG_SLUB_DEBUG=y |
| 155 | # CONFIG_COMPAT_BRK is not set | ||
| 142 | # CONFIG_SLAB is not set | 156 | # CONFIG_SLAB is not set |
| 143 | CONFIG_SLUB=y | 157 | CONFIG_SLUB=y |
| 144 | # CONFIG_SLOB is not set | 158 | # CONFIG_SLOB is not set |
| @@ -154,6 +168,8 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
| 154 | CONFIG_HAVE_KPROBES=y | 168 | CONFIG_HAVE_KPROBES=y |
| 155 | CONFIG_HAVE_KRETPROBES=y | 169 | CONFIG_HAVE_KRETPROBES=y |
| 156 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 170 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
| 171 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
| 172 | # CONFIG_SLOW_WORK is not set | ||
| 157 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 173 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
| 158 | CONFIG_SLABINFO=y | 174 | CONFIG_SLABINFO=y |
| 159 | CONFIG_RT_MUTEXES=y | 175 | CONFIG_RT_MUTEXES=y |
| @@ -167,7 +183,6 @@ CONFIG_MODULE_FORCE_UNLOAD=y | |||
| 167 | CONFIG_STOP_MACHINE=y | 183 | CONFIG_STOP_MACHINE=y |
| 168 | CONFIG_BLOCK=y | 184 | CONFIG_BLOCK=y |
| 169 | # CONFIG_LBD is not set | 185 | # CONFIG_LBD is not set |
| 170 | CONFIG_BLK_DEV_IO_TRACE=y | ||
| 171 | CONFIG_BLK_DEV_BSG=y | 186 | CONFIG_BLK_DEV_BSG=y |
| 172 | # CONFIG_BLK_DEV_INTEGRITY is not set | 187 | # CONFIG_BLK_DEV_INTEGRITY is not set |
| 173 | 188 | ||
| @@ -194,12 +209,12 @@ CONFIG_HIGH_RES_TIMERS=y | |||
| 194 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 209 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
| 195 | CONFIG_SMP=y | 210 | CONFIG_SMP=y |
| 196 | CONFIG_SPARSE_IRQ=y | 211 | CONFIG_SPARSE_IRQ=y |
| 197 | CONFIG_X86_FIND_SMP_CONFIG=y | ||
| 198 | CONFIG_X86_MPPARSE=y | 212 | CONFIG_X86_MPPARSE=y |
| 213 | # CONFIG_X86_BIGSMP is not set | ||
| 214 | CONFIG_X86_EXTENDED_PLATFORM=y | ||
| 199 | # CONFIG_X86_ELAN is not set | 215 | # CONFIG_X86_ELAN is not set |
| 200 | # CONFIG_X86_GENERICARCH is not set | ||
| 201 | # CONFIG_X86_VSMP is not set | ||
| 202 | # CONFIG_X86_RDC321X is not set | 216 | # CONFIG_X86_RDC321X is not set |
| 217 | # CONFIG_X86_32_NON_STANDARD is not set | ||
| 203 | CONFIG_SCHED_OMIT_FRAME_POINTER=y | 218 | CONFIG_SCHED_OMIT_FRAME_POINTER=y |
| 204 | # CONFIG_PARAVIRT_GUEST is not set | 219 | # CONFIG_PARAVIRT_GUEST is not set |
| 205 | # CONFIG_MEMTEST is not set | 220 | # CONFIG_MEMTEST is not set |
| @@ -230,8 +245,10 @@ CONFIG_M686=y | |||
| 230 | # CONFIG_GENERIC_CPU is not set | 245 | # CONFIG_GENERIC_CPU is not set |
| 231 | CONFIG_X86_GENERIC=y | 246 | CONFIG_X86_GENERIC=y |
| 232 | CONFIG_X86_CPU=y | 247 | CONFIG_X86_CPU=y |
| 248 | CONFIG_X86_L1_CACHE_BYTES=64 | ||
| 249 | CONFIG_X86_INTERNODE_CACHE_BYTES=64 | ||
| 233 | CONFIG_X86_CMPXCHG=y | 250 | CONFIG_X86_CMPXCHG=y |
| 234 | CONFIG_X86_L1_CACHE_SHIFT=7 | 251 | CONFIG_X86_L1_CACHE_SHIFT=5 |
| 235 | CONFIG_X86_XADD=y | 252 | CONFIG_X86_XADD=y |
| 236 | # CONFIG_X86_PPRO_FENCE is not set | 253 | # CONFIG_X86_PPRO_FENCE is not set |
| 237 | CONFIG_X86_WP_WORKS_OK=y | 254 | CONFIG_X86_WP_WORKS_OK=y |
| @@ -247,7 +264,7 @@ CONFIG_X86_DEBUGCTLMSR=y | |||
| 247 | CONFIG_CPU_SUP_INTEL=y | 264 | CONFIG_CPU_SUP_INTEL=y |
| 248 | CONFIG_CPU_SUP_CYRIX_32=y | 265 | CONFIG_CPU_SUP_CYRIX_32=y |
| 249 | CONFIG_CPU_SUP_AMD=y | 266 | CONFIG_CPU_SUP_AMD=y |
| 250 | CONFIG_CPU_SUP_CENTAUR_32=y | 267 | CONFIG_CPU_SUP_CENTAUR=y |
| 251 | CONFIG_CPU_SUP_TRANSMETA_32=y | 268 | CONFIG_CPU_SUP_TRANSMETA_32=y |
| 252 | CONFIG_CPU_SUP_UMC_32=y | 269 | CONFIG_CPU_SUP_UMC_32=y |
| 253 | CONFIG_X86_DS=y | 270 | CONFIG_X86_DS=y |
| @@ -279,6 +296,7 @@ CONFIG_MICROCODE_AMD=y | |||
| 279 | CONFIG_MICROCODE_OLD_INTERFACE=y | 296 | CONFIG_MICROCODE_OLD_INTERFACE=y |
| 280 | CONFIG_X86_MSR=y | 297 | CONFIG_X86_MSR=y |
| 281 | CONFIG_X86_CPUID=y | 298 | CONFIG_X86_CPUID=y |
| 299 | # CONFIG_X86_CPU_DEBUG is not set | ||
| 282 | # CONFIG_NOHIGHMEM is not set | 300 | # CONFIG_NOHIGHMEM is not set |
| 283 | CONFIG_HIGHMEM4G=y | 301 | CONFIG_HIGHMEM4G=y |
| 284 | # CONFIG_HIGHMEM64G is not set | 302 | # CONFIG_HIGHMEM64G is not set |
| @@ -302,6 +320,8 @@ CONFIG_ZONE_DMA_FLAG=1 | |||
| 302 | CONFIG_BOUNCE=y | 320 | CONFIG_BOUNCE=y |
| 303 | CONFIG_VIRT_TO_BUS=y | 321 | CONFIG_VIRT_TO_BUS=y |
| 304 | CONFIG_UNEVICTABLE_LRU=y | 322 | CONFIG_UNEVICTABLE_LRU=y |
| 323 | CONFIG_HAVE_MLOCK=y | ||
| 324 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
| 305 | CONFIG_HIGHPTE=y | 325 | CONFIG_HIGHPTE=y |
| 306 | CONFIG_X86_CHECK_BIOS_CORRUPTION=y | 326 | CONFIG_X86_CHECK_BIOS_CORRUPTION=y |
| 307 | CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y | 327 | CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y |
| @@ -312,6 +332,7 @@ CONFIG_MTRR=y | |||
| 312 | CONFIG_X86_PAT=y | 332 | CONFIG_X86_PAT=y |
| 313 | CONFIG_EFI=y | 333 | CONFIG_EFI=y |
| 314 | CONFIG_SECCOMP=y | 334 | CONFIG_SECCOMP=y |
| 335 | # CONFIG_CC_STACKPROTECTOR is not set | ||
| 315 | # CONFIG_HZ_100 is not set | 336 | # CONFIG_HZ_100 is not set |
| 316 | # CONFIG_HZ_250 is not set | 337 | # CONFIG_HZ_250 is not set |
| 317 | # CONFIG_HZ_300 is not set | 338 | # CONFIG_HZ_300 is not set |
| @@ -322,8 +343,9 @@ CONFIG_KEXEC=y | |||
| 322 | CONFIG_CRASH_DUMP=y | 343 | CONFIG_CRASH_DUMP=y |
| 323 | # CONFIG_KEXEC_JUMP is not set | 344 | # CONFIG_KEXEC_JUMP is not set |
| 324 | CONFIG_PHYSICAL_START=0x1000000 | 345 | CONFIG_PHYSICAL_START=0x1000000 |
| 325 | # CONFIG_RELOCATABLE is not set | 346 | CONFIG_RELOCATABLE=y |
| 326 | CONFIG_PHYSICAL_ALIGN=0x200000 | 347 | CONFIG_X86_NEED_RELOCS=y |
| 348 | CONFIG_PHYSICAL_ALIGN=0x1000000 | ||
| 327 | CONFIG_HOTPLUG_CPU=y | 349 | CONFIG_HOTPLUG_CPU=y |
| 328 | # CONFIG_COMPAT_VDSO is not set | 350 | # CONFIG_COMPAT_VDSO is not set |
| 329 | # CONFIG_CMDLINE_BOOL is not set | 351 | # CONFIG_CMDLINE_BOOL is not set |
| @@ -363,7 +385,6 @@ CONFIG_ACPI_THERMAL=y | |||
| 363 | CONFIG_ACPI_BLACKLIST_YEAR=0 | 385 | CONFIG_ACPI_BLACKLIST_YEAR=0 |
| 364 | # CONFIG_ACPI_DEBUG is not set | 386 | # CONFIG_ACPI_DEBUG is not set |
| 365 | # CONFIG_ACPI_PCI_SLOT is not set | 387 | # CONFIG_ACPI_PCI_SLOT is not set |
| 366 | CONFIG_ACPI_SYSTEM=y | ||
| 367 | CONFIG_X86_PM_TIMER=y | 388 | CONFIG_X86_PM_TIMER=y |
| 368 | CONFIG_ACPI_CONTAINER=y | 389 | CONFIG_ACPI_CONTAINER=y |
| 369 | # CONFIG_ACPI_SBS is not set | 390 | # CONFIG_ACPI_SBS is not set |
| @@ -425,6 +446,7 @@ CONFIG_PCI_BIOS=y | |||
| 425 | CONFIG_PCI_DIRECT=y | 446 | CONFIG_PCI_DIRECT=y |
| 426 | CONFIG_PCI_MMCONFIG=y | 447 | CONFIG_PCI_MMCONFIG=y |
| 427 | CONFIG_PCI_DOMAINS=y | 448 | CONFIG_PCI_DOMAINS=y |
| 449 | # CONFIG_DMAR is not set | ||
| 428 | CONFIG_PCIEPORTBUS=y | 450 | CONFIG_PCIEPORTBUS=y |
| 429 | # CONFIG_HOTPLUG_PCI_PCIE is not set | 451 | # CONFIG_HOTPLUG_PCI_PCIE is not set |
| 430 | CONFIG_PCIEAER=y | 452 | CONFIG_PCIEAER=y |
| @@ -435,6 +457,7 @@ CONFIG_PCI_MSI=y | |||
| 435 | # CONFIG_PCI_DEBUG is not set | 457 | # CONFIG_PCI_DEBUG is not set |
| 436 | # CONFIG_PCI_STUB is not set | 458 | # CONFIG_PCI_STUB is not set |
| 437 | CONFIG_HT_IRQ=y | 459 | CONFIG_HT_IRQ=y |
| 460 | # CONFIG_PCI_IOV is not set | ||
| 438 | CONFIG_ISA_DMA_API=y | 461 | CONFIG_ISA_DMA_API=y |
| 439 | # CONFIG_ISA is not set | 462 | # CONFIG_ISA is not set |
| 440 | # CONFIG_MCA is not set | 463 | # CONFIG_MCA is not set |
| @@ -481,7 +504,6 @@ CONFIG_NET=y | |||
| 481 | # | 504 | # |
| 482 | # Networking options | 505 | # Networking options |
| 483 | # | 506 | # |
| 484 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
| 485 | CONFIG_PACKET=y | 507 | CONFIG_PACKET=y |
| 486 | CONFIG_PACKET_MMAP=y | 508 | CONFIG_PACKET_MMAP=y |
| 487 | CONFIG_UNIX=y | 509 | CONFIG_UNIX=y |
| @@ -639,6 +661,7 @@ CONFIG_LLC=y | |||
| 639 | # CONFIG_LAPB is not set | 661 | # CONFIG_LAPB is not set |
| 640 | # CONFIG_ECONET is not set | 662 | # CONFIG_ECONET is not set |
| 641 | # CONFIG_WAN_ROUTER is not set | 663 | # CONFIG_WAN_ROUTER is not set |
| 664 | # CONFIG_PHONET is not set | ||
| 642 | CONFIG_NET_SCHED=y | 665 | CONFIG_NET_SCHED=y |
| 643 | 666 | ||
| 644 | # | 667 | # |
| @@ -696,6 +719,7 @@ CONFIG_NET_SCH_FIFO=y | |||
| 696 | # | 719 | # |
| 697 | # CONFIG_NET_PKTGEN is not set | 720 | # CONFIG_NET_PKTGEN is not set |
| 698 | # CONFIG_NET_TCPPROBE is not set | 721 | # CONFIG_NET_TCPPROBE is not set |
| 722 | # CONFIG_NET_DROP_MONITOR is not set | ||
| 699 | CONFIG_HAMRADIO=y | 723 | CONFIG_HAMRADIO=y |
| 700 | 724 | ||
| 701 | # | 725 | # |
| @@ -706,12 +730,10 @@ CONFIG_HAMRADIO=y | |||
| 706 | # CONFIG_IRDA is not set | 730 | # CONFIG_IRDA is not set |
| 707 | # CONFIG_BT is not set | 731 | # CONFIG_BT is not set |
| 708 | # CONFIG_AF_RXRPC is not set | 732 | # CONFIG_AF_RXRPC is not set |
| 709 | # CONFIG_PHONET is not set | ||
| 710 | CONFIG_FIB_RULES=y | 733 | CONFIG_FIB_RULES=y |
| 711 | CONFIG_WIRELESS=y | 734 | CONFIG_WIRELESS=y |
| 712 | CONFIG_CFG80211=y | 735 | CONFIG_CFG80211=y |
| 713 | # CONFIG_CFG80211_REG_DEBUG is not set | 736 | # CONFIG_CFG80211_REG_DEBUG is not set |
| 714 | CONFIG_NL80211=y | ||
| 715 | CONFIG_WIRELESS_OLD_REGULATORY=y | 737 | CONFIG_WIRELESS_OLD_REGULATORY=y |
| 716 | CONFIG_WIRELESS_EXT=y | 738 | CONFIG_WIRELESS_EXT=y |
| 717 | CONFIG_WIRELESS_EXT_SYSFS=y | 739 | CONFIG_WIRELESS_EXT_SYSFS=y |
| @@ -789,6 +811,7 @@ CONFIG_MISC_DEVICES=y | |||
| 789 | # CONFIG_ICS932S401 is not set | 811 | # CONFIG_ICS932S401 is not set |
| 790 | # CONFIG_ENCLOSURE_SERVICES is not set | 812 | # CONFIG_ENCLOSURE_SERVICES is not set |
| 791 | # CONFIG_HP_ILO is not set | 813 | # CONFIG_HP_ILO is not set |
| 814 | # CONFIG_ISL29003 is not set | ||
| 792 | # CONFIG_C2PORT is not set | 815 | # CONFIG_C2PORT is not set |
| 793 | 816 | ||
| 794 | # | 817 | # |
| @@ -842,6 +865,7 @@ CONFIG_SCSI_SPI_ATTRS=y | |||
| 842 | # CONFIG_SCSI_LOWLEVEL is not set | 865 | # CONFIG_SCSI_LOWLEVEL is not set |
| 843 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set | 866 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set |
| 844 | # CONFIG_SCSI_DH is not set | 867 | # CONFIG_SCSI_DH is not set |
| 868 | # CONFIG_SCSI_OSD_INITIATOR is not set | ||
| 845 | CONFIG_ATA=y | 869 | CONFIG_ATA=y |
| 846 | # CONFIG_ATA_NONSTANDARD is not set | 870 | # CONFIG_ATA_NONSTANDARD is not set |
| 847 | CONFIG_ATA_ACPI=y | 871 | CONFIG_ATA_ACPI=y |
| @@ -940,6 +964,7 @@ CONFIG_DM_ZERO=y | |||
| 940 | CONFIG_MACINTOSH_DRIVERS=y | 964 | CONFIG_MACINTOSH_DRIVERS=y |
| 941 | CONFIG_MAC_EMUMOUSEBTN=y | 965 | CONFIG_MAC_EMUMOUSEBTN=y |
| 942 | CONFIG_NETDEVICES=y | 966 | CONFIG_NETDEVICES=y |
| 967 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
| 943 | # CONFIG_IFB is not set | 968 | # CONFIG_IFB is not set |
| 944 | # CONFIG_DUMMY is not set | 969 | # CONFIG_DUMMY is not set |
| 945 | # CONFIG_BONDING is not set | 970 | # CONFIG_BONDING is not set |
| @@ -977,6 +1002,8 @@ CONFIG_MII=y | |||
| 977 | CONFIG_NET_VENDOR_3COM=y | 1002 | CONFIG_NET_VENDOR_3COM=y |
| 978 | # CONFIG_VORTEX is not set | 1003 | # CONFIG_VORTEX is not set |
| 979 | # CONFIG_TYPHOON is not set | 1004 | # CONFIG_TYPHOON is not set |
| 1005 | # CONFIG_ETHOC is not set | ||
| 1006 | # CONFIG_DNET is not set | ||
| 980 | CONFIG_NET_TULIP=y | 1007 | CONFIG_NET_TULIP=y |
| 981 | # CONFIG_DE2104X is not set | 1008 | # CONFIG_DE2104X is not set |
| 982 | # CONFIG_TULIP is not set | 1009 | # CONFIG_TULIP is not set |
| @@ -1026,6 +1053,7 @@ CONFIG_E1000=y | |||
| 1026 | CONFIG_E1000E=y | 1053 | CONFIG_E1000E=y |
| 1027 | # CONFIG_IP1000 is not set | 1054 | # CONFIG_IP1000 is not set |
| 1028 | # CONFIG_IGB is not set | 1055 | # CONFIG_IGB is not set |
| 1056 | # CONFIG_IGBVF is not set | ||
| 1029 | # CONFIG_NS83820 is not set | 1057 | # CONFIG_NS83820 is not set |
| 1030 | # CONFIG_HAMACHI is not set | 1058 | # CONFIG_HAMACHI is not set |
| 1031 | # CONFIG_YELLOWFIN is not set | 1059 | # CONFIG_YELLOWFIN is not set |
| @@ -1040,6 +1068,7 @@ CONFIG_BNX2=y | |||
| 1040 | # CONFIG_QLA3XXX is not set | 1068 | # CONFIG_QLA3XXX is not set |
| 1041 | # CONFIG_ATL1 is not set | 1069 | # CONFIG_ATL1 is not set |
| 1042 | # CONFIG_ATL1E is not set | 1070 | # CONFIG_ATL1E is not set |
| 1071 | # CONFIG_ATL1C is not set | ||
| 1043 | # CONFIG_JME is not set | 1072 | # CONFIG_JME is not set |
| 1044 | CONFIG_NETDEV_10000=y | 1073 | CONFIG_NETDEV_10000=y |
| 1045 | # CONFIG_CHELSIO_T1 is not set | 1074 | # CONFIG_CHELSIO_T1 is not set |
| @@ -1049,6 +1078,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
| 1049 | # CONFIG_IXGBE is not set | 1078 | # CONFIG_IXGBE is not set |
| 1050 | # CONFIG_IXGB is not set | 1079 | # CONFIG_IXGB is not set |
| 1051 | # CONFIG_S2IO is not set | 1080 | # CONFIG_S2IO is not set |
| 1081 | # CONFIG_VXGE is not set | ||
| 1052 | # CONFIG_MYRI10GE is not set | 1082 | # CONFIG_MYRI10GE is not set |
| 1053 | # CONFIG_NETXEN_NIC is not set | 1083 | # CONFIG_NETXEN_NIC is not set |
| 1054 | # CONFIG_NIU is not set | 1084 | # CONFIG_NIU is not set |
| @@ -1058,6 +1088,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
| 1058 | # CONFIG_BNX2X is not set | 1088 | # CONFIG_BNX2X is not set |
| 1059 | # CONFIG_QLGE is not set | 1089 | # CONFIG_QLGE is not set |
| 1060 | # CONFIG_SFC is not set | 1090 | # CONFIG_SFC is not set |
| 1091 | # CONFIG_BE2NET is not set | ||
| 1061 | CONFIG_TR=y | 1092 | CONFIG_TR=y |
| 1062 | # CONFIG_IBMOL is not set | 1093 | # CONFIG_IBMOL is not set |
| 1063 | # CONFIG_IBMLS is not set | 1094 | # CONFIG_IBMLS is not set |
| @@ -1073,8 +1104,8 @@ CONFIG_WLAN_80211=y | |||
| 1073 | # CONFIG_LIBERTAS is not set | 1104 | # CONFIG_LIBERTAS is not set |
| 1074 | # CONFIG_LIBERTAS_THINFIRM is not set | 1105 | # CONFIG_LIBERTAS_THINFIRM is not set |
| 1075 | # CONFIG_AIRO is not set | 1106 | # CONFIG_AIRO is not set |
| 1076 | # CONFIG_HERMES is not set | ||
| 1077 | # CONFIG_ATMEL is not set | 1107 | # CONFIG_ATMEL is not set |
| 1108 | # CONFIG_AT76C50X_USB is not set | ||
| 1078 | # CONFIG_AIRO_CS is not set | 1109 | # CONFIG_AIRO_CS is not set |
| 1079 | # CONFIG_PCMCIA_WL3501 is not set | 1110 | # CONFIG_PCMCIA_WL3501 is not set |
| 1080 | # CONFIG_PRISM54 is not set | 1111 | # CONFIG_PRISM54 is not set |
| @@ -1084,21 +1115,21 @@ CONFIG_WLAN_80211=y | |||
| 1084 | # CONFIG_RTL8187 is not set | 1115 | # CONFIG_RTL8187 is not set |
| 1085 | # CONFIG_ADM8211 is not set | 1116 | # CONFIG_ADM8211 is not set |
| 1086 | # CONFIG_MAC80211_HWSIM is not set | 1117 | # CONFIG_MAC80211_HWSIM is not set |
| 1118 | # CONFIG_MWL8K is not set | ||
| 1087 | # CONFIG_P54_COMMON is not set | 1119 | # CONFIG_P54_COMMON is not set |
| 1088 | CONFIG_ATH5K=y | 1120 | CONFIG_ATH5K=y |
| 1089 | # CONFIG_ATH5K_DEBUG is not set | 1121 | # CONFIG_ATH5K_DEBUG is not set |
| 1090 | # CONFIG_ATH9K is not set | 1122 | # CONFIG_ATH9K is not set |
| 1123 | # CONFIG_AR9170_USB is not set | ||
| 1091 | # CONFIG_IPW2100 is not set | 1124 | # CONFIG_IPW2100 is not set |
| 1092 | # CONFIG_IPW2200 is not set | 1125 | # CONFIG_IPW2200 is not set |
| 1093 | # CONFIG_IWLCORE is not set | 1126 | # CONFIG_IWLWIFI is not set |
| 1094 | # CONFIG_IWLWIFI_LEDS is not set | ||
| 1095 | # CONFIG_IWLAGN is not set | ||
| 1096 | # CONFIG_IWL3945 is not set | ||
| 1097 | # CONFIG_HOSTAP is not set | 1127 | # CONFIG_HOSTAP is not set |
| 1098 | # CONFIG_B43 is not set | 1128 | # CONFIG_B43 is not set |
| 1099 | # CONFIG_B43LEGACY is not set | 1129 | # CONFIG_B43LEGACY is not set |
| 1100 | # CONFIG_ZD1211RW is not set | 1130 | # CONFIG_ZD1211RW is not set |
| 1101 | # CONFIG_RT2X00 is not set | 1131 | # CONFIG_RT2X00 is not set |
| 1132 | # CONFIG_HERMES is not set | ||
| 1102 | 1133 | ||
| 1103 | # | 1134 | # |
| 1104 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 1135 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
| @@ -1209,6 +1240,8 @@ CONFIG_INPUT_TABLET=y | |||
| 1209 | # CONFIG_TABLET_USB_KBTAB is not set | 1240 | # CONFIG_TABLET_USB_KBTAB is not set |
| 1210 | # CONFIG_TABLET_USB_WACOM is not set | 1241 | # CONFIG_TABLET_USB_WACOM is not set |
| 1211 | CONFIG_INPUT_TOUCHSCREEN=y | 1242 | CONFIG_INPUT_TOUCHSCREEN=y |
| 1243 | # CONFIG_TOUCHSCREEN_AD7879_I2C is not set | ||
| 1244 | # CONFIG_TOUCHSCREEN_AD7879 is not set | ||
| 1212 | # CONFIG_TOUCHSCREEN_FUJITSU is not set | 1245 | # CONFIG_TOUCHSCREEN_FUJITSU is not set |
| 1213 | # CONFIG_TOUCHSCREEN_GUNZE is not set | 1246 | # CONFIG_TOUCHSCREEN_GUNZE is not set |
| 1214 | # CONFIG_TOUCHSCREEN_ELO is not set | 1247 | # CONFIG_TOUCHSCREEN_ELO is not set |
| @@ -1303,6 +1336,7 @@ CONFIG_UNIX98_PTYS=y | |||
| 1303 | # CONFIG_LEGACY_PTYS is not set | 1336 | # CONFIG_LEGACY_PTYS is not set |
| 1304 | # CONFIG_IPMI_HANDLER is not set | 1337 | # CONFIG_IPMI_HANDLER is not set |
| 1305 | CONFIG_HW_RANDOM=y | 1338 | CONFIG_HW_RANDOM=y |
| 1339 | # CONFIG_HW_RANDOM_TIMERIOMEM is not set | ||
| 1306 | CONFIG_HW_RANDOM_INTEL=y | 1340 | CONFIG_HW_RANDOM_INTEL=y |
| 1307 | CONFIG_HW_RANDOM_AMD=y | 1341 | CONFIG_HW_RANDOM_AMD=y |
| 1308 | CONFIG_HW_RANDOM_GEODE=y | 1342 | CONFIG_HW_RANDOM_GEODE=y |
| @@ -1390,7 +1424,6 @@ CONFIG_I2C_I801=y | |||
| 1390 | # CONFIG_SENSORS_PCF8574 is not set | 1424 | # CONFIG_SENSORS_PCF8574 is not set |
| 1391 | # CONFIG_PCF8575 is not set | 1425 | # CONFIG_PCF8575 is not set |
| 1392 | # CONFIG_SENSORS_PCA9539 is not set | 1426 | # CONFIG_SENSORS_PCA9539 is not set |
| 1393 | # CONFIG_SENSORS_PCF8591 is not set | ||
| 1394 | # CONFIG_SENSORS_MAX6875 is not set | 1427 | # CONFIG_SENSORS_MAX6875 is not set |
| 1395 | # CONFIG_SENSORS_TSL2550 is not set | 1428 | # CONFIG_SENSORS_TSL2550 is not set |
| 1396 | # CONFIG_I2C_DEBUG_CORE is not set | 1429 | # CONFIG_I2C_DEBUG_CORE is not set |
| @@ -1424,6 +1457,7 @@ CONFIG_HWMON=y | |||
| 1424 | # CONFIG_SENSORS_ADT7475 is not set | 1457 | # CONFIG_SENSORS_ADT7475 is not set |
| 1425 | # CONFIG_SENSORS_K8TEMP is not set | 1458 | # CONFIG_SENSORS_K8TEMP is not set |
| 1426 | # CONFIG_SENSORS_ASB100 is not set | 1459 | # CONFIG_SENSORS_ASB100 is not set |
| 1460 | # CONFIG_SENSORS_ATK0110 is not set | ||
| 1427 | # CONFIG_SENSORS_ATXP1 is not set | 1461 | # CONFIG_SENSORS_ATXP1 is not set |
| 1428 | # CONFIG_SENSORS_DS1621 is not set | 1462 | # CONFIG_SENSORS_DS1621 is not set |
| 1429 | # CONFIG_SENSORS_I5K_AMB is not set | 1463 | # CONFIG_SENSORS_I5K_AMB is not set |
| @@ -1433,6 +1467,7 @@ CONFIG_HWMON=y | |||
| 1433 | # CONFIG_SENSORS_FSCHER is not set | 1467 | # CONFIG_SENSORS_FSCHER is not set |
| 1434 | # CONFIG_SENSORS_FSCPOS is not set | 1468 | # CONFIG_SENSORS_FSCPOS is not set |
| 1435 | # CONFIG_SENSORS_FSCHMD is not set | 1469 | # CONFIG_SENSORS_FSCHMD is not set |
| 1470 | # CONFIG_SENSORS_G760A is not set | ||
| 1436 | # CONFIG_SENSORS_GL518SM is not set | 1471 | # CONFIG_SENSORS_GL518SM is not set |
| 1437 | # CONFIG_SENSORS_GL520SM is not set | 1472 | # CONFIG_SENSORS_GL520SM is not set |
| 1438 | # CONFIG_SENSORS_CORETEMP is not set | 1473 | # CONFIG_SENSORS_CORETEMP is not set |
| @@ -1448,11 +1483,14 @@ CONFIG_HWMON=y | |||
| 1448 | # CONFIG_SENSORS_LM90 is not set | 1483 | # CONFIG_SENSORS_LM90 is not set |
| 1449 | # CONFIG_SENSORS_LM92 is not set | 1484 | # CONFIG_SENSORS_LM92 is not set |
| 1450 | # CONFIG_SENSORS_LM93 is not set | 1485 | # CONFIG_SENSORS_LM93 is not set |
| 1486 | # CONFIG_SENSORS_LTC4215 is not set | ||
| 1451 | # CONFIG_SENSORS_LTC4245 is not set | 1487 | # CONFIG_SENSORS_LTC4245 is not set |
| 1488 | # CONFIG_SENSORS_LM95241 is not set | ||
| 1452 | # CONFIG_SENSORS_MAX1619 is not set | 1489 | # CONFIG_SENSORS_MAX1619 is not set |
| 1453 | # CONFIG_SENSORS_MAX6650 is not set | 1490 | # CONFIG_SENSORS_MAX6650 is not set |
| 1454 | # CONFIG_SENSORS_PC87360 is not set | 1491 | # CONFIG_SENSORS_PC87360 is not set |
| 1455 | # CONFIG_SENSORS_PC87427 is not set | 1492 | # CONFIG_SENSORS_PC87427 is not set |
| 1493 | # CONFIG_SENSORS_PCF8591 is not set | ||
| 1456 | # CONFIG_SENSORS_SIS5595 is not set | 1494 | # CONFIG_SENSORS_SIS5595 is not set |
| 1457 | # CONFIG_SENSORS_DME1737 is not set | 1495 | # CONFIG_SENSORS_DME1737 is not set |
| 1458 | # CONFIG_SENSORS_SMSC47M1 is not set | 1496 | # CONFIG_SENSORS_SMSC47M1 is not set |
| @@ -1643,7 +1681,6 @@ CONFIG_FB_EFI=y | |||
| 1643 | # CONFIG_FB_3DFX is not set | 1681 | # CONFIG_FB_3DFX is not set |
| 1644 | # CONFIG_FB_VOODOO1 is not set | 1682 | # CONFIG_FB_VOODOO1 is not set |
| 1645 | # CONFIG_FB_VT8623 is not set | 1683 | # CONFIG_FB_VT8623 is not set |
| 1646 | # CONFIG_FB_CYBLA is not set | ||
| 1647 | # CONFIG_FB_TRIDENT is not set | 1684 | # CONFIG_FB_TRIDENT is not set |
| 1648 | # CONFIG_FB_ARK is not set | 1685 | # CONFIG_FB_ARK is not set |
| 1649 | # CONFIG_FB_PM3 is not set | 1686 | # CONFIG_FB_PM3 is not set |
| @@ -1652,6 +1689,7 @@ CONFIG_FB_EFI=y | |||
| 1652 | # CONFIG_FB_VIRTUAL is not set | 1689 | # CONFIG_FB_VIRTUAL is not set |
| 1653 | # CONFIG_FB_METRONOME is not set | 1690 | # CONFIG_FB_METRONOME is not set |
| 1654 | # CONFIG_FB_MB862XX is not set | 1691 | # CONFIG_FB_MB862XX is not set |
| 1692 | # CONFIG_FB_BROADSHEET is not set | ||
| 1655 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | 1693 | CONFIG_BACKLIGHT_LCD_SUPPORT=y |
| 1656 | # CONFIG_LCD_CLASS_DEVICE is not set | 1694 | # CONFIG_LCD_CLASS_DEVICE is not set |
| 1657 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | 1695 | CONFIG_BACKLIGHT_CLASS_DEVICE=y |
| @@ -1738,6 +1776,8 @@ CONFIG_SND_PCI=y | |||
| 1738 | # CONFIG_SND_INDIGO is not set | 1776 | # CONFIG_SND_INDIGO is not set |
| 1739 | # CONFIG_SND_INDIGOIO is not set | 1777 | # CONFIG_SND_INDIGOIO is not set |
| 1740 | # CONFIG_SND_INDIGODJ is not set | 1778 | # CONFIG_SND_INDIGODJ is not set |
| 1779 | # CONFIG_SND_INDIGOIOX is not set | ||
| 1780 | # CONFIG_SND_INDIGODJX is not set | ||
| 1741 | # CONFIG_SND_EMU10K1 is not set | 1781 | # CONFIG_SND_EMU10K1 is not set |
| 1742 | # CONFIG_SND_EMU10K1X is not set | 1782 | # CONFIG_SND_EMU10K1X is not set |
| 1743 | # CONFIG_SND_ENS1370 is not set | 1783 | # CONFIG_SND_ENS1370 is not set |
| @@ -1811,15 +1851,17 @@ CONFIG_USB_HIDDEV=y | |||
| 1811 | # | 1851 | # |
| 1812 | # Special HID drivers | 1852 | # Special HID drivers |
| 1813 | # | 1853 | # |
| 1814 | CONFIG_HID_COMPAT=y | ||
| 1815 | CONFIG_HID_A4TECH=y | 1854 | CONFIG_HID_A4TECH=y |
| 1816 | CONFIG_HID_APPLE=y | 1855 | CONFIG_HID_APPLE=y |
| 1817 | CONFIG_HID_BELKIN=y | 1856 | CONFIG_HID_BELKIN=y |
| 1818 | CONFIG_HID_CHERRY=y | 1857 | CONFIG_HID_CHERRY=y |
| 1819 | CONFIG_HID_CHICONY=y | 1858 | CONFIG_HID_CHICONY=y |
| 1820 | CONFIG_HID_CYPRESS=y | 1859 | CONFIG_HID_CYPRESS=y |
| 1860 | # CONFIG_DRAGONRISE_FF is not set | ||
| 1821 | CONFIG_HID_EZKEY=y | 1861 | CONFIG_HID_EZKEY=y |
| 1862 | CONFIG_HID_KYE=y | ||
| 1822 | CONFIG_HID_GYRATION=y | 1863 | CONFIG_HID_GYRATION=y |
| 1864 | CONFIG_HID_KENSINGTON=y | ||
| 1823 | CONFIG_HID_LOGITECH=y | 1865 | CONFIG_HID_LOGITECH=y |
| 1824 | CONFIG_LOGITECH_FF=y | 1866 | CONFIG_LOGITECH_FF=y |
| 1825 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | 1867 | # CONFIG_LOGIRUMBLEPAD2_FF is not set |
| @@ -1885,11 +1927,11 @@ CONFIG_USB_PRINTER=y | |||
| 1885 | # CONFIG_USB_TMC is not set | 1927 | # CONFIG_USB_TMC is not set |
| 1886 | 1928 | ||
| 1887 | # | 1929 | # |
| 1888 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | 1930 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
| 1889 | # | 1931 | # |
| 1890 | 1932 | ||
| 1891 | # | 1933 | # |
| 1892 | # see USB_STORAGE Help for more information | 1934 | # also be needed; see USB_STORAGE Help for more info |
| 1893 | # | 1935 | # |
| 1894 | CONFIG_USB_STORAGE=y | 1936 | CONFIG_USB_STORAGE=y |
| 1895 | # CONFIG_USB_STORAGE_DEBUG is not set | 1937 | # CONFIG_USB_STORAGE_DEBUG is not set |
| @@ -1931,7 +1973,6 @@ CONFIG_USB_LIBUSUAL=y | |||
| 1931 | # CONFIG_USB_LED is not set | 1973 | # CONFIG_USB_LED is not set |
| 1932 | # CONFIG_USB_CYPRESS_CY7C63 is not set | 1974 | # CONFIG_USB_CYPRESS_CY7C63 is not set |
| 1933 | # CONFIG_USB_CYTHERM is not set | 1975 | # CONFIG_USB_CYTHERM is not set |
| 1934 | # CONFIG_USB_PHIDGET is not set | ||
| 1935 | # CONFIG_USB_IDMOUSE is not set | 1976 | # CONFIG_USB_IDMOUSE is not set |
| 1936 | # CONFIG_USB_FTDI_ELAN is not set | 1977 | # CONFIG_USB_FTDI_ELAN is not set |
| 1937 | # CONFIG_USB_APPLEDISPLAY is not set | 1978 | # CONFIG_USB_APPLEDISPLAY is not set |
| @@ -1947,6 +1988,7 @@ CONFIG_USB_LIBUSUAL=y | |||
| 1947 | # | 1988 | # |
| 1948 | # OTG and related infrastructure | 1989 | # OTG and related infrastructure |
| 1949 | # | 1990 | # |
| 1991 | # CONFIG_NOP_USB_XCEIV is not set | ||
| 1950 | # CONFIG_UWB is not set | 1992 | # CONFIG_UWB is not set |
| 1951 | # CONFIG_MMC is not set | 1993 | # CONFIG_MMC is not set |
| 1952 | # CONFIG_MEMSTICK is not set | 1994 | # CONFIG_MEMSTICK is not set |
| @@ -1958,8 +2000,10 @@ CONFIG_LEDS_CLASS=y | |||
| 1958 | # | 2000 | # |
| 1959 | # CONFIG_LEDS_ALIX2 is not set | 2001 | # CONFIG_LEDS_ALIX2 is not set |
| 1960 | # CONFIG_LEDS_PCA9532 is not set | 2002 | # CONFIG_LEDS_PCA9532 is not set |
| 2003 | # CONFIG_LEDS_LP5521 is not set | ||
| 1961 | # CONFIG_LEDS_CLEVO_MAIL is not set | 2004 | # CONFIG_LEDS_CLEVO_MAIL is not set |
| 1962 | # CONFIG_LEDS_PCA955X is not set | 2005 | # CONFIG_LEDS_PCA955X is not set |
| 2006 | # CONFIG_LEDS_BD2802 is not set | ||
| 1963 | 2007 | ||
| 1964 | # | 2008 | # |
| 1965 | # LED Triggers | 2009 | # LED Triggers |
| @@ -1969,6 +2013,10 @@ CONFIG_LEDS_TRIGGERS=y | |||
| 1969 | # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set | 2013 | # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set |
| 1970 | # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set | 2014 | # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set |
| 1971 | # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set | 2015 | # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set |
| 2016 | |||
| 2017 | # | ||
| 2018 | # iptables trigger is under Netfilter config (LED target) | ||
| 2019 | # | ||
| 1972 | # CONFIG_ACCESSIBILITY is not set | 2020 | # CONFIG_ACCESSIBILITY is not set |
| 1973 | # CONFIG_INFINIBAND is not set | 2021 | # CONFIG_INFINIBAND is not set |
| 1974 | CONFIG_EDAC=y | 2022 | CONFIG_EDAC=y |
| @@ -2037,6 +2085,7 @@ CONFIG_DMADEVICES=y | |||
| 2037 | # DMA Devices | 2085 | # DMA Devices |
| 2038 | # | 2086 | # |
| 2039 | # CONFIG_INTEL_IOATDMA is not set | 2087 | # CONFIG_INTEL_IOATDMA is not set |
| 2088 | # CONFIG_AUXDISPLAY is not set | ||
| 2040 | # CONFIG_UIO is not set | 2089 | # CONFIG_UIO is not set |
| 2041 | # CONFIG_STAGING is not set | 2090 | # CONFIG_STAGING is not set |
| 2042 | CONFIG_X86_PLATFORM_DEVICES=y | 2091 | CONFIG_X86_PLATFORM_DEVICES=y |
| @@ -2071,6 +2120,7 @@ CONFIG_DMIID=y | |||
| 2071 | # | 2120 | # |
| 2072 | # CONFIG_EXT2_FS is not set | 2121 | # CONFIG_EXT2_FS is not set |
| 2073 | CONFIG_EXT3_FS=y | 2122 | CONFIG_EXT3_FS=y |
| 2123 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
| 2074 | CONFIG_EXT3_FS_XATTR=y | 2124 | CONFIG_EXT3_FS_XATTR=y |
| 2075 | CONFIG_EXT3_FS_POSIX_ACL=y | 2125 | CONFIG_EXT3_FS_POSIX_ACL=y |
| 2076 | CONFIG_EXT3_FS_SECURITY=y | 2126 | CONFIG_EXT3_FS_SECURITY=y |
| @@ -2101,6 +2151,11 @@ CONFIG_AUTOFS4_FS=y | |||
| 2101 | CONFIG_GENERIC_ACL=y | 2151 | CONFIG_GENERIC_ACL=y |
| 2102 | 2152 | ||
| 2103 | # | 2153 | # |
| 2154 | # Caches | ||
| 2155 | # | ||
| 2156 | # CONFIG_FSCACHE is not set | ||
| 2157 | |||
| 2158 | # | ||
| 2104 | # CD-ROM/DVD Filesystems | 2159 | # CD-ROM/DVD Filesystems |
| 2105 | # | 2160 | # |
| 2106 | CONFIG_ISO9660_FS=y | 2161 | CONFIG_ISO9660_FS=y |
| @@ -2151,6 +2206,7 @@ CONFIG_MISC_FILESYSTEMS=y | |||
| 2151 | # CONFIG_ROMFS_FS is not set | 2206 | # CONFIG_ROMFS_FS is not set |
| 2152 | # CONFIG_SYSV_FS is not set | 2207 | # CONFIG_SYSV_FS is not set |
| 2153 | # CONFIG_UFS_FS is not set | 2208 | # CONFIG_UFS_FS is not set |
| 2209 | # CONFIG_NILFS2_FS is not set | ||
| 2154 | CONFIG_NETWORK_FILESYSTEMS=y | 2210 | CONFIG_NETWORK_FILESYSTEMS=y |
| 2155 | CONFIG_NFS_FS=y | 2211 | CONFIG_NFS_FS=y |
| 2156 | CONFIG_NFS_V3=y | 2212 | CONFIG_NFS_V3=y |
| @@ -2164,7 +2220,6 @@ CONFIG_NFS_ACL_SUPPORT=y | |||
| 2164 | CONFIG_NFS_COMMON=y | 2220 | CONFIG_NFS_COMMON=y |
| 2165 | CONFIG_SUNRPC=y | 2221 | CONFIG_SUNRPC=y |
| 2166 | CONFIG_SUNRPC_GSS=y | 2222 | CONFIG_SUNRPC_GSS=y |
| 2167 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
| 2168 | CONFIG_RPCSEC_GSS_KRB5=y | 2223 | CONFIG_RPCSEC_GSS_KRB5=y |
| 2169 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 2224 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
| 2170 | # CONFIG_SMB_FS is not set | 2225 | # CONFIG_SMB_FS is not set |
| @@ -2251,6 +2306,7 @@ CONFIG_DEBUG_FS=y | |||
| 2251 | CONFIG_DEBUG_KERNEL=y | 2306 | CONFIG_DEBUG_KERNEL=y |
| 2252 | # CONFIG_DEBUG_SHIRQ is not set | 2307 | # CONFIG_DEBUG_SHIRQ is not set |
| 2253 | # CONFIG_DETECT_SOFTLOCKUP is not set | 2308 | # CONFIG_DETECT_SOFTLOCKUP is not set |
| 2309 | # CONFIG_DETECT_HUNG_TASK is not set | ||
| 2254 | # CONFIG_SCHED_DEBUG is not set | 2310 | # CONFIG_SCHED_DEBUG is not set |
| 2255 | CONFIG_SCHEDSTATS=y | 2311 | CONFIG_SCHEDSTATS=y |
| 2256 | CONFIG_TIMER_STATS=y | 2312 | CONFIG_TIMER_STATS=y |
| @@ -2266,6 +2322,7 @@ CONFIG_TIMER_STATS=y | |||
| 2266 | # CONFIG_LOCK_STAT is not set | 2322 | # CONFIG_LOCK_STAT is not set |
| 2267 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 2323 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
| 2268 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 2324 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
| 2325 | CONFIG_STACKTRACE=y | ||
| 2269 | # CONFIG_DEBUG_KOBJECT is not set | 2326 | # CONFIG_DEBUG_KOBJECT is not set |
| 2270 | # CONFIG_DEBUG_HIGHMEM is not set | 2327 | # CONFIG_DEBUG_HIGHMEM is not set |
| 2271 | CONFIG_DEBUG_BUGVERBOSE=y | 2328 | CONFIG_DEBUG_BUGVERBOSE=y |
| @@ -2289,13 +2346,19 @@ CONFIG_FRAME_POINTER=y | |||
| 2289 | # CONFIG_FAULT_INJECTION is not set | 2346 | # CONFIG_FAULT_INJECTION is not set |
| 2290 | # CONFIG_LATENCYTOP is not set | 2347 | # CONFIG_LATENCYTOP is not set |
| 2291 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 2348 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
| 2349 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
| 2292 | CONFIG_USER_STACKTRACE_SUPPORT=y | 2350 | CONFIG_USER_STACKTRACE_SUPPORT=y |
| 2351 | CONFIG_NOP_TRACER=y | ||
| 2293 | CONFIG_HAVE_FUNCTION_TRACER=y | 2352 | CONFIG_HAVE_FUNCTION_TRACER=y |
| 2294 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 2353 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
| 2295 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 2354 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
| 2296 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 2355 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
| 2297 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 2356 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
| 2298 | CONFIG_HAVE_HW_BRANCH_TRACER=y | 2357 | CONFIG_HAVE_HW_BRANCH_TRACER=y |
| 2358 | CONFIG_HAVE_FTRACE_SYSCALLS=y | ||
| 2359 | CONFIG_RING_BUFFER=y | ||
| 2360 | CONFIG_TRACING=y | ||
| 2361 | CONFIG_TRACING_SUPPORT=y | ||
| 2299 | 2362 | ||
| 2300 | # | 2363 | # |
| 2301 | # Tracers | 2364 | # Tracers |
| @@ -2305,13 +2368,21 @@ CONFIG_HAVE_HW_BRANCH_TRACER=y | |||
| 2305 | # CONFIG_SYSPROF_TRACER is not set | 2368 | # CONFIG_SYSPROF_TRACER is not set |
| 2306 | # CONFIG_SCHED_TRACER is not set | 2369 | # CONFIG_SCHED_TRACER is not set |
| 2307 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 2370 | # CONFIG_CONTEXT_SWITCH_TRACER is not set |
| 2371 | # CONFIG_EVENT_TRACER is not set | ||
| 2372 | # CONFIG_FTRACE_SYSCALLS is not set | ||
| 2308 | # CONFIG_BOOT_TRACER is not set | 2373 | # CONFIG_BOOT_TRACER is not set |
| 2309 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 2374 | # CONFIG_TRACE_BRANCH_PROFILING is not set |
| 2310 | # CONFIG_POWER_TRACER is not set | 2375 | # CONFIG_POWER_TRACER is not set |
| 2311 | # CONFIG_STACK_TRACER is not set | 2376 | # CONFIG_STACK_TRACER is not set |
| 2312 | # CONFIG_HW_BRANCH_TRACER is not set | 2377 | # CONFIG_HW_BRANCH_TRACER is not set |
| 2378 | # CONFIG_KMEMTRACE is not set | ||
| 2379 | # CONFIG_WORKQUEUE_TRACER is not set | ||
| 2380 | CONFIG_BLK_DEV_IO_TRACE=y | ||
| 2381 | # CONFIG_FTRACE_STARTUP_TEST is not set | ||
| 2382 | # CONFIG_MMIOTRACE is not set | ||
| 2313 | CONFIG_PROVIDE_OHCI1394_DMA_INIT=y | 2383 | CONFIG_PROVIDE_OHCI1394_DMA_INIT=y |
| 2314 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 2384 | # CONFIG_DYNAMIC_DEBUG is not set |
| 2385 | # CONFIG_DMA_API_DEBUG is not set | ||
| 2315 | # CONFIG_SAMPLES is not set | 2386 | # CONFIG_SAMPLES is not set |
| 2316 | CONFIG_HAVE_ARCH_KGDB=y | 2387 | CONFIG_HAVE_ARCH_KGDB=y |
| 2317 | # CONFIG_KGDB is not set | 2388 | # CONFIG_KGDB is not set |
| @@ -2321,7 +2392,6 @@ CONFIG_EARLY_PRINTK=y | |||
| 2321 | CONFIG_EARLY_PRINTK_DBGP=y | 2392 | CONFIG_EARLY_PRINTK_DBGP=y |
| 2322 | CONFIG_DEBUG_STACKOVERFLOW=y | 2393 | CONFIG_DEBUG_STACKOVERFLOW=y |
| 2323 | CONFIG_DEBUG_STACK_USAGE=y | 2394 | CONFIG_DEBUG_STACK_USAGE=y |
| 2324 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
| 2325 | # CONFIG_DEBUG_PER_CPU_MAPS is not set | 2395 | # CONFIG_DEBUG_PER_CPU_MAPS is not set |
| 2326 | # CONFIG_X86_PTDUMP is not set | 2396 | # CONFIG_X86_PTDUMP is not set |
| 2327 | CONFIG_DEBUG_RODATA=y | 2397 | CONFIG_DEBUG_RODATA=y |
| @@ -2329,7 +2399,7 @@ CONFIG_DEBUG_RODATA=y | |||
| 2329 | CONFIG_DEBUG_NX_TEST=m | 2399 | CONFIG_DEBUG_NX_TEST=m |
| 2330 | # CONFIG_4KSTACKS is not set | 2400 | # CONFIG_4KSTACKS is not set |
| 2331 | CONFIG_DOUBLEFAULT=y | 2401 | CONFIG_DOUBLEFAULT=y |
| 2332 | # CONFIG_MMIOTRACE is not set | 2402 | CONFIG_HAVE_MMIOTRACE_SUPPORT=y |
| 2333 | CONFIG_IO_DELAY_TYPE_0X80=0 | 2403 | CONFIG_IO_DELAY_TYPE_0X80=0 |
| 2334 | CONFIG_IO_DELAY_TYPE_0XED=1 | 2404 | CONFIG_IO_DELAY_TYPE_0XED=1 |
| 2335 | CONFIG_IO_DELAY_TYPE_UDELAY=2 | 2405 | CONFIG_IO_DELAY_TYPE_UDELAY=2 |
| @@ -2365,6 +2435,8 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y | |||
| 2365 | CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 | 2435 | CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 |
| 2366 | # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set | 2436 | # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set |
| 2367 | # CONFIG_SECURITY_SMACK is not set | 2437 | # CONFIG_SECURITY_SMACK is not set |
| 2438 | # CONFIG_SECURITY_TOMOYO is not set | ||
| 2439 | # CONFIG_IMA is not set | ||
| 2368 | CONFIG_CRYPTO=y | 2440 | CONFIG_CRYPTO=y |
| 2369 | 2441 | ||
| 2370 | # | 2442 | # |
| @@ -2380,10 +2452,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y | |||
| 2380 | CONFIG_CRYPTO_HASH=y | 2452 | CONFIG_CRYPTO_HASH=y |
| 2381 | CONFIG_CRYPTO_HASH2=y | 2453 | CONFIG_CRYPTO_HASH2=y |
| 2382 | CONFIG_CRYPTO_RNG2=y | 2454 | CONFIG_CRYPTO_RNG2=y |
| 2455 | CONFIG_CRYPTO_PCOMP=y | ||
| 2383 | CONFIG_CRYPTO_MANAGER=y | 2456 | CONFIG_CRYPTO_MANAGER=y |
| 2384 | CONFIG_CRYPTO_MANAGER2=y | 2457 | CONFIG_CRYPTO_MANAGER2=y |
| 2385 | # CONFIG_CRYPTO_GF128MUL is not set | 2458 | # CONFIG_CRYPTO_GF128MUL is not set |
| 2386 | # CONFIG_CRYPTO_NULL is not set | 2459 | # CONFIG_CRYPTO_NULL is not set |
| 2460 | CONFIG_CRYPTO_WORKQUEUE=y | ||
| 2387 | # CONFIG_CRYPTO_CRYPTD is not set | 2461 | # CONFIG_CRYPTO_CRYPTD is not set |
| 2388 | CONFIG_CRYPTO_AUTHENC=y | 2462 | CONFIG_CRYPTO_AUTHENC=y |
| 2389 | # CONFIG_CRYPTO_TEST is not set | 2463 | # CONFIG_CRYPTO_TEST is not set |
| @@ -2456,6 +2530,7 @@ CONFIG_CRYPTO_DES=y | |||
| 2456 | # Compression | 2530 | # Compression |
| 2457 | # | 2531 | # |
| 2458 | # CONFIG_CRYPTO_DEFLATE is not set | 2532 | # CONFIG_CRYPTO_DEFLATE is not set |
| 2533 | # CONFIG_CRYPTO_ZLIB is not set | ||
| 2459 | # CONFIG_CRYPTO_LZO is not set | 2534 | # CONFIG_CRYPTO_LZO is not set |
| 2460 | 2535 | ||
| 2461 | # | 2536 | # |
| @@ -2467,11 +2542,13 @@ CONFIG_CRYPTO_HW=y | |||
| 2467 | # CONFIG_CRYPTO_DEV_GEODE is not set | 2542 | # CONFIG_CRYPTO_DEV_GEODE is not set |
| 2468 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 2543 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
| 2469 | CONFIG_HAVE_KVM=y | 2544 | CONFIG_HAVE_KVM=y |
| 2545 | CONFIG_HAVE_KVM_IRQCHIP=y | ||
| 2470 | CONFIG_VIRTUALIZATION=y | 2546 | CONFIG_VIRTUALIZATION=y |
| 2471 | # CONFIG_KVM is not set | 2547 | # CONFIG_KVM is not set |
| 2472 | # CONFIG_LGUEST is not set | 2548 | # CONFIG_LGUEST is not set |
| 2473 | # CONFIG_VIRTIO_PCI is not set | 2549 | # CONFIG_VIRTIO_PCI is not set |
| 2474 | # CONFIG_VIRTIO_BALLOON is not set | 2550 | # CONFIG_VIRTIO_BALLOON is not set |
| 2551 | CONFIG_BINARY_PRINTF=y | ||
| 2475 | 2552 | ||
| 2476 | # | 2553 | # |
| 2477 | # Library routines | 2554 | # Library routines |
| @@ -2489,7 +2566,10 @@ CONFIG_CRC32=y | |||
| 2489 | # CONFIG_LIBCRC32C is not set | 2566 | # CONFIG_LIBCRC32C is not set |
| 2490 | CONFIG_AUDIT_GENERIC=y | 2567 | CONFIG_AUDIT_GENERIC=y |
| 2491 | CONFIG_ZLIB_INFLATE=y | 2568 | CONFIG_ZLIB_INFLATE=y |
| 2492 | CONFIG_PLIST=y | 2569 | CONFIG_DECOMPRESS_GZIP=y |
| 2570 | CONFIG_DECOMPRESS_BZIP2=y | ||
| 2571 | CONFIG_DECOMPRESS_LZMA=y | ||
| 2493 | CONFIG_HAS_IOMEM=y | 2572 | CONFIG_HAS_IOMEM=y |
| 2494 | CONFIG_HAS_IOPORT=y | 2573 | CONFIG_HAS_IOPORT=y |
| 2495 | CONFIG_HAS_DMA=y | 2574 | CONFIG_HAS_DMA=y |
| 2575 | CONFIG_NLATTR=y | ||
diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig index 27b8ce0f5908..cee1dd2e69b2 100644 --- a/arch/x86/configs/x86_64_defconfig +++ b/arch/x86/configs/x86_64_defconfig | |||
| @@ -1,12 +1,13 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.29-rc4 | 3 | # Linux kernel version: 2.6.30-rc2 |
| 4 | # Tue Feb 24 15:44:16 2009 | 4 | # Mon May 11 16:22:00 2009 |
| 5 | # | 5 | # |
| 6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
| 7 | # CONFIG_X86_32 is not set | 7 | # CONFIG_X86_32 is not set |
| 8 | CONFIG_X86_64=y | 8 | CONFIG_X86_64=y |
| 9 | CONFIG_X86=y | 9 | CONFIG_X86=y |
| 10 | CONFIG_OUTPUT_FORMAT="elf64-x86-64" | ||
| 10 | CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" | 11 | CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" |
| 11 | CONFIG_GENERIC_TIME=y | 12 | CONFIG_GENERIC_TIME=y |
| 12 | CONFIG_GENERIC_CMOS_UPDATE=y | 13 | CONFIG_GENERIC_CMOS_UPDATE=y |
| @@ -34,6 +35,7 @@ CONFIG_ARCH_HAS_CPU_RELAX=y | |||
| 34 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 35 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
| 35 | CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y | 36 | CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y |
| 36 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y | 37 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y |
| 38 | CONFIG_HAVE_DYNAMIC_PER_CPU_AREA=y | ||
| 37 | CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y | 39 | CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y |
| 38 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 40 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
| 39 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 41 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
| @@ -41,14 +43,14 @@ CONFIG_ZONE_DMA32=y | |||
| 41 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 43 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
| 42 | CONFIG_AUDIT_ARCH=y | 44 | CONFIG_AUDIT_ARCH=y |
| 43 | CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y | 45 | CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y |
| 46 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
| 44 | CONFIG_GENERIC_HARDIRQS=y | 47 | CONFIG_GENERIC_HARDIRQS=y |
| 48 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
| 45 | CONFIG_GENERIC_IRQ_PROBE=y | 49 | CONFIG_GENERIC_IRQ_PROBE=y |
| 46 | CONFIG_GENERIC_PENDING_IRQ=y | 50 | CONFIG_GENERIC_PENDING_IRQ=y |
| 47 | CONFIG_X86_SMP=y | ||
| 48 | CONFIG_USE_GENERIC_SMP_HELPERS=y | 51 | CONFIG_USE_GENERIC_SMP_HELPERS=y |
| 49 | CONFIG_X86_64_SMP=y | 52 | CONFIG_X86_64_SMP=y |
| 50 | CONFIG_X86_HT=y | 53 | CONFIG_X86_HT=y |
| 51 | CONFIG_X86_BIOS_REBOOT=y | ||
| 52 | CONFIG_X86_TRAMPOLINE=y | 54 | CONFIG_X86_TRAMPOLINE=y |
| 53 | # CONFIG_KTIME_SCALAR is not set | 55 | # CONFIG_KTIME_SCALAR is not set |
| 54 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 56 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
| @@ -61,10 +63,17 @@ CONFIG_LOCK_KERNEL=y | |||
| 61 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 63 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
| 62 | CONFIG_LOCALVERSION="" | 64 | CONFIG_LOCALVERSION="" |
| 63 | # CONFIG_LOCALVERSION_AUTO is not set | 65 | # CONFIG_LOCALVERSION_AUTO is not set |
| 66 | CONFIG_HAVE_KERNEL_GZIP=y | ||
| 67 | CONFIG_HAVE_KERNEL_BZIP2=y | ||
| 68 | CONFIG_HAVE_KERNEL_LZMA=y | ||
| 69 | CONFIG_KERNEL_GZIP=y | ||
| 70 | # CONFIG_KERNEL_BZIP2 is not set | ||
| 71 | # CONFIG_KERNEL_LZMA is not set | ||
| 64 | CONFIG_SWAP=y | 72 | CONFIG_SWAP=y |
| 65 | CONFIG_SYSVIPC=y | 73 | CONFIG_SYSVIPC=y |
| 66 | CONFIG_SYSVIPC_SYSCTL=y | 74 | CONFIG_SYSVIPC_SYSCTL=y |
| 67 | CONFIG_POSIX_MQUEUE=y | 75 | CONFIG_POSIX_MQUEUE=y |
| 76 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
| 68 | CONFIG_BSD_PROCESS_ACCT=y | 77 | CONFIG_BSD_PROCESS_ACCT=y |
| 69 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 78 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
| 70 | CONFIG_TASKSTATS=y | 79 | CONFIG_TASKSTATS=y |
| @@ -114,23 +123,26 @@ CONFIG_PID_NS=y | |||
| 114 | CONFIG_NET_NS=y | 123 | CONFIG_NET_NS=y |
| 115 | CONFIG_BLK_DEV_INITRD=y | 124 | CONFIG_BLK_DEV_INITRD=y |
| 116 | CONFIG_INITRAMFS_SOURCE="" | 125 | CONFIG_INITRAMFS_SOURCE="" |
| 126 | CONFIG_RD_GZIP=y | ||
| 127 | CONFIG_RD_BZIP2=y | ||
| 128 | CONFIG_RD_LZMA=y | ||
| 117 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 129 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
| 118 | CONFIG_SYSCTL=y | 130 | CONFIG_SYSCTL=y |
| 131 | CONFIG_ANON_INODES=y | ||
| 119 | # CONFIG_EMBEDDED is not set | 132 | # CONFIG_EMBEDDED is not set |
| 120 | CONFIG_UID16=y | 133 | CONFIG_UID16=y |
| 121 | CONFIG_SYSCTL_SYSCALL=y | 134 | CONFIG_SYSCTL_SYSCALL=y |
| 122 | CONFIG_KALLSYMS=y | 135 | CONFIG_KALLSYMS=y |
| 123 | CONFIG_KALLSYMS_ALL=y | 136 | CONFIG_KALLSYMS_ALL=y |
| 124 | CONFIG_KALLSYMS_EXTRA_PASS=y | 137 | CONFIG_KALLSYMS_EXTRA_PASS=y |
| 138 | # CONFIG_STRIP_ASM_SYMS is not set | ||
| 125 | CONFIG_HOTPLUG=y | 139 | CONFIG_HOTPLUG=y |
| 126 | CONFIG_PRINTK=y | 140 | CONFIG_PRINTK=y |
| 127 | CONFIG_BUG=y | 141 | CONFIG_BUG=y |
| 128 | CONFIG_ELF_CORE=y | 142 | CONFIG_ELF_CORE=y |
| 129 | CONFIG_PCSPKR_PLATFORM=y | 143 | CONFIG_PCSPKR_PLATFORM=y |
| 130 | # CONFIG_COMPAT_BRK is not set | ||
| 131 | CONFIG_BASE_FULL=y | 144 | CONFIG_BASE_FULL=y |
| 132 | CONFIG_FUTEX=y | 145 | CONFIG_FUTEX=y |
| 133 | CONFIG_ANON_INODES=y | ||
| 134 | CONFIG_EPOLL=y | 146 | CONFIG_EPOLL=y |
| 135 | CONFIG_SIGNALFD=y | 147 | CONFIG_SIGNALFD=y |
| 136 | CONFIG_TIMERFD=y | 148 | CONFIG_TIMERFD=y |
| @@ -140,6 +152,7 @@ CONFIG_AIO=y | |||
| 140 | CONFIG_VM_EVENT_COUNTERS=y | 152 | CONFIG_VM_EVENT_COUNTERS=y |
| 141 | CONFIG_PCI_QUIRKS=y | 153 | CONFIG_PCI_QUIRKS=y |
| 142 | CONFIG_SLUB_DEBUG=y | 154 | CONFIG_SLUB_DEBUG=y |
| 155 | # CONFIG_COMPAT_BRK is not set | ||
| 143 | # CONFIG_SLAB is not set | 156 | # CONFIG_SLAB is not set |
| 144 | CONFIG_SLUB=y | 157 | CONFIG_SLUB=y |
| 145 | # CONFIG_SLOB is not set | 158 | # CONFIG_SLOB is not set |
| @@ -155,6 +168,8 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
| 155 | CONFIG_HAVE_KPROBES=y | 168 | CONFIG_HAVE_KPROBES=y |
| 156 | CONFIG_HAVE_KRETPROBES=y | 169 | CONFIG_HAVE_KRETPROBES=y |
| 157 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 170 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
| 171 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
| 172 | # CONFIG_SLOW_WORK is not set | ||
| 158 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 173 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
| 159 | CONFIG_SLABINFO=y | 174 | CONFIG_SLABINFO=y |
| 160 | CONFIG_RT_MUTEXES=y | 175 | CONFIG_RT_MUTEXES=y |
| @@ -167,7 +182,6 @@ CONFIG_MODULE_FORCE_UNLOAD=y | |||
| 167 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 182 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
| 168 | CONFIG_STOP_MACHINE=y | 183 | CONFIG_STOP_MACHINE=y |
| 169 | CONFIG_BLOCK=y | 184 | CONFIG_BLOCK=y |
| 170 | CONFIG_BLK_DEV_IO_TRACE=y | ||
| 171 | CONFIG_BLK_DEV_BSG=y | 185 | CONFIG_BLK_DEV_BSG=y |
| 172 | # CONFIG_BLK_DEV_INTEGRITY is not set | 186 | # CONFIG_BLK_DEV_INTEGRITY is not set |
| 173 | CONFIG_BLOCK_COMPAT=y | 187 | CONFIG_BLOCK_COMPAT=y |
| @@ -195,11 +209,10 @@ CONFIG_HIGH_RES_TIMERS=y | |||
| 195 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 209 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
| 196 | CONFIG_SMP=y | 210 | CONFIG_SMP=y |
| 197 | CONFIG_SPARSE_IRQ=y | 211 | CONFIG_SPARSE_IRQ=y |
| 198 | CONFIG_X86_FIND_SMP_CONFIG=y | ||
| 199 | CONFIG_X86_MPPARSE=y | 212 | CONFIG_X86_MPPARSE=y |
| 200 | # CONFIG_X86_ELAN is not set | 213 | CONFIG_X86_EXTENDED_PLATFORM=y |
| 201 | # CONFIG_X86_GENERICARCH is not set | ||
| 202 | # CONFIG_X86_VSMP is not set | 214 | # CONFIG_X86_VSMP is not set |
| 215 | # CONFIG_X86_UV is not set | ||
| 203 | CONFIG_SCHED_OMIT_FRAME_POINTER=y | 216 | CONFIG_SCHED_OMIT_FRAME_POINTER=y |
| 204 | # CONFIG_PARAVIRT_GUEST is not set | 217 | # CONFIG_PARAVIRT_GUEST is not set |
| 205 | # CONFIG_MEMTEST is not set | 218 | # CONFIG_MEMTEST is not set |
| @@ -229,10 +242,10 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y | |||
| 229 | # CONFIG_MCORE2 is not set | 242 | # CONFIG_MCORE2 is not set |
| 230 | CONFIG_GENERIC_CPU=y | 243 | CONFIG_GENERIC_CPU=y |
| 231 | CONFIG_X86_CPU=y | 244 | CONFIG_X86_CPU=y |
| 232 | CONFIG_X86_L1_CACHE_BYTES=128 | 245 | CONFIG_X86_L1_CACHE_BYTES=64 |
| 233 | CONFIG_X86_INTERNODE_CACHE_BYTES=128 | 246 | CONFIG_X86_INTERNODE_CACHE_BYTES=64 |
| 234 | CONFIG_X86_CMPXCHG=y | 247 | CONFIG_X86_CMPXCHG=y |
| 235 | CONFIG_X86_L1_CACHE_SHIFT=7 | 248 | CONFIG_X86_L1_CACHE_SHIFT=6 |
| 236 | CONFIG_X86_WP_WORKS_OK=y | 249 | CONFIG_X86_WP_WORKS_OK=y |
| 237 | CONFIG_X86_TSC=y | 250 | CONFIG_X86_TSC=y |
| 238 | CONFIG_X86_CMPXCHG64=y | 251 | CONFIG_X86_CMPXCHG64=y |
| @@ -241,7 +254,7 @@ CONFIG_X86_MINIMUM_CPU_FAMILY=64 | |||
| 241 | CONFIG_X86_DEBUGCTLMSR=y | 254 | CONFIG_X86_DEBUGCTLMSR=y |
| 242 | CONFIG_CPU_SUP_INTEL=y | 255 | CONFIG_CPU_SUP_INTEL=y |
| 243 | CONFIG_CPU_SUP_AMD=y | 256 | CONFIG_CPU_SUP_AMD=y |
| 244 | CONFIG_CPU_SUP_CENTAUR_64=y | 257 | CONFIG_CPU_SUP_CENTAUR=y |
| 245 | CONFIG_X86_DS=y | 258 | CONFIG_X86_DS=y |
| 246 | CONFIG_X86_PTRACE_BTS=y | 259 | CONFIG_X86_PTRACE_BTS=y |
| 247 | CONFIG_HPET_TIMER=y | 260 | CONFIG_HPET_TIMER=y |
| @@ -268,6 +281,7 @@ CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y | |||
| 268 | CONFIG_X86_MCE=y | 281 | CONFIG_X86_MCE=y |
| 269 | CONFIG_X86_MCE_INTEL=y | 282 | CONFIG_X86_MCE_INTEL=y |
| 270 | CONFIG_X86_MCE_AMD=y | 283 | CONFIG_X86_MCE_AMD=y |
| 284 | CONFIG_X86_MCE_THRESHOLD=y | ||
| 271 | # CONFIG_I8K is not set | 285 | # CONFIG_I8K is not set |
| 272 | CONFIG_MICROCODE=y | 286 | CONFIG_MICROCODE=y |
| 273 | CONFIG_MICROCODE_INTEL=y | 287 | CONFIG_MICROCODE_INTEL=y |
| @@ -275,6 +289,7 @@ CONFIG_MICROCODE_AMD=y | |||
| 275 | CONFIG_MICROCODE_OLD_INTERFACE=y | 289 | CONFIG_MICROCODE_OLD_INTERFACE=y |
| 276 | CONFIG_X86_MSR=y | 290 | CONFIG_X86_MSR=y |
| 277 | CONFIG_X86_CPUID=y | 291 | CONFIG_X86_CPUID=y |
| 292 | # CONFIG_X86_CPU_DEBUG is not set | ||
| 278 | CONFIG_ARCH_PHYS_ADDR_T_64BIT=y | 293 | CONFIG_ARCH_PHYS_ADDR_T_64BIT=y |
| 279 | CONFIG_DIRECT_GBPAGES=y | 294 | CONFIG_DIRECT_GBPAGES=y |
| 280 | CONFIG_NUMA=y | 295 | CONFIG_NUMA=y |
| @@ -308,6 +323,8 @@ CONFIG_ZONE_DMA_FLAG=1 | |||
| 308 | CONFIG_BOUNCE=y | 323 | CONFIG_BOUNCE=y |
| 309 | CONFIG_VIRT_TO_BUS=y | 324 | CONFIG_VIRT_TO_BUS=y |
| 310 | CONFIG_UNEVICTABLE_LRU=y | 325 | CONFIG_UNEVICTABLE_LRU=y |
| 326 | CONFIG_HAVE_MLOCK=y | ||
| 327 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
| 311 | CONFIG_X86_CHECK_BIOS_CORRUPTION=y | 328 | CONFIG_X86_CHECK_BIOS_CORRUPTION=y |
| 312 | CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y | 329 | CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y |
| 313 | CONFIG_X86_RESERVE_LOW_64K=y | 330 | CONFIG_X86_RESERVE_LOW_64K=y |
| @@ -316,6 +333,7 @@ CONFIG_MTRR=y | |||
| 316 | CONFIG_X86_PAT=y | 333 | CONFIG_X86_PAT=y |
| 317 | CONFIG_EFI=y | 334 | CONFIG_EFI=y |
| 318 | CONFIG_SECCOMP=y | 335 | CONFIG_SECCOMP=y |
| 336 | # CONFIG_CC_STACKPROTECTOR is not set | ||
| 319 | # CONFIG_HZ_100 is not set | 337 | # CONFIG_HZ_100 is not set |
| 320 | # CONFIG_HZ_250 is not set | 338 | # CONFIG_HZ_250 is not set |
| 321 | # CONFIG_HZ_300 is not set | 339 | # CONFIG_HZ_300 is not set |
| @@ -324,9 +342,10 @@ CONFIG_HZ=1000 | |||
| 324 | CONFIG_SCHED_HRTICK=y | 342 | CONFIG_SCHED_HRTICK=y |
| 325 | CONFIG_KEXEC=y | 343 | CONFIG_KEXEC=y |
| 326 | CONFIG_CRASH_DUMP=y | 344 | CONFIG_CRASH_DUMP=y |
| 345 | # CONFIG_KEXEC_JUMP is not set | ||
| 327 | CONFIG_PHYSICAL_START=0x1000000 | 346 | CONFIG_PHYSICAL_START=0x1000000 |
| 328 | # CONFIG_RELOCATABLE is not set | 347 | CONFIG_RELOCATABLE=y |
| 329 | CONFIG_PHYSICAL_ALIGN=0x200000 | 348 | CONFIG_PHYSICAL_ALIGN=0x1000000 |
| 330 | CONFIG_HOTPLUG_CPU=y | 349 | CONFIG_HOTPLUG_CPU=y |
| 331 | # CONFIG_COMPAT_VDSO is not set | 350 | # CONFIG_COMPAT_VDSO is not set |
| 332 | # CONFIG_CMDLINE_BOOL is not set | 351 | # CONFIG_CMDLINE_BOOL is not set |
| @@ -369,7 +388,6 @@ CONFIG_ACPI_NUMA=y | |||
| 369 | CONFIG_ACPI_BLACKLIST_YEAR=0 | 388 | CONFIG_ACPI_BLACKLIST_YEAR=0 |
| 370 | # CONFIG_ACPI_DEBUG is not set | 389 | # CONFIG_ACPI_DEBUG is not set |
| 371 | # CONFIG_ACPI_PCI_SLOT is not set | 390 | # CONFIG_ACPI_PCI_SLOT is not set |
| 372 | CONFIG_ACPI_SYSTEM=y | ||
| 373 | CONFIG_X86_PM_TIMER=y | 391 | CONFIG_X86_PM_TIMER=y |
| 374 | CONFIG_ACPI_CONTAINER=y | 392 | CONFIG_ACPI_CONTAINER=y |
| 375 | # CONFIG_ACPI_SBS is not set | 393 | # CONFIG_ACPI_SBS is not set |
| @@ -435,6 +453,7 @@ CONFIG_PCI_MSI=y | |||
| 435 | # CONFIG_PCI_DEBUG is not set | 453 | # CONFIG_PCI_DEBUG is not set |
| 436 | # CONFIG_PCI_STUB is not set | 454 | # CONFIG_PCI_STUB is not set |
| 437 | CONFIG_HT_IRQ=y | 455 | CONFIG_HT_IRQ=y |
| 456 | # CONFIG_PCI_IOV is not set | ||
| 438 | CONFIG_ISA_DMA_API=y | 457 | CONFIG_ISA_DMA_API=y |
| 439 | CONFIG_K8_NB=y | 458 | CONFIG_K8_NB=y |
| 440 | CONFIG_PCCARD=y | 459 | CONFIG_PCCARD=y |
| @@ -480,7 +499,6 @@ CONFIG_NET=y | |||
| 480 | # | 499 | # |
| 481 | # Networking options | 500 | # Networking options |
| 482 | # | 501 | # |
| 483 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
| 484 | CONFIG_PACKET=y | 502 | CONFIG_PACKET=y |
| 485 | CONFIG_PACKET_MMAP=y | 503 | CONFIG_PACKET_MMAP=y |
| 486 | CONFIG_UNIX=y | 504 | CONFIG_UNIX=y |
| @@ -638,6 +656,7 @@ CONFIG_LLC=y | |||
| 638 | # CONFIG_LAPB is not set | 656 | # CONFIG_LAPB is not set |
| 639 | # CONFIG_ECONET is not set | 657 | # CONFIG_ECONET is not set |
| 640 | # CONFIG_WAN_ROUTER is not set | 658 | # CONFIG_WAN_ROUTER is not set |
| 659 | # CONFIG_PHONET is not set | ||
| 641 | CONFIG_NET_SCHED=y | 660 | CONFIG_NET_SCHED=y |
| 642 | 661 | ||
| 643 | # | 662 | # |
| @@ -695,6 +714,7 @@ CONFIG_NET_SCH_FIFO=y | |||
| 695 | # | 714 | # |
| 696 | # CONFIG_NET_PKTGEN is not set | 715 | # CONFIG_NET_PKTGEN is not set |
| 697 | # CONFIG_NET_TCPPROBE is not set | 716 | # CONFIG_NET_TCPPROBE is not set |
| 717 | # CONFIG_NET_DROP_MONITOR is not set | ||
| 698 | CONFIG_HAMRADIO=y | 718 | CONFIG_HAMRADIO=y |
| 699 | 719 | ||
| 700 | # | 720 | # |
| @@ -705,12 +725,10 @@ CONFIG_HAMRADIO=y | |||
| 705 | # CONFIG_IRDA is not set | 725 | # CONFIG_IRDA is not set |
| 706 | # CONFIG_BT is not set | 726 | # CONFIG_BT is not set |
| 707 | # CONFIG_AF_RXRPC is not set | 727 | # CONFIG_AF_RXRPC is not set |
| 708 | # CONFIG_PHONET is not set | ||
| 709 | CONFIG_FIB_RULES=y | 728 | CONFIG_FIB_RULES=y |
| 710 | CONFIG_WIRELESS=y | 729 | CONFIG_WIRELESS=y |
| 711 | CONFIG_CFG80211=y | 730 | CONFIG_CFG80211=y |
| 712 | # CONFIG_CFG80211_REG_DEBUG is not set | 731 | # CONFIG_CFG80211_REG_DEBUG is not set |
| 713 | CONFIG_NL80211=y | ||
| 714 | CONFIG_WIRELESS_OLD_REGULATORY=y | 732 | CONFIG_WIRELESS_OLD_REGULATORY=y |
| 715 | CONFIG_WIRELESS_EXT=y | 733 | CONFIG_WIRELESS_EXT=y |
| 716 | CONFIG_WIRELESS_EXT_SYSFS=y | 734 | CONFIG_WIRELESS_EXT_SYSFS=y |
| @@ -787,9 +805,8 @@ CONFIG_MISC_DEVICES=y | |||
| 787 | # CONFIG_TIFM_CORE is not set | 805 | # CONFIG_TIFM_CORE is not set |
| 788 | # CONFIG_ICS932S401 is not set | 806 | # CONFIG_ICS932S401 is not set |
| 789 | # CONFIG_ENCLOSURE_SERVICES is not set | 807 | # CONFIG_ENCLOSURE_SERVICES is not set |
| 790 | # CONFIG_SGI_XP is not set | ||
| 791 | # CONFIG_HP_ILO is not set | 808 | # CONFIG_HP_ILO is not set |
| 792 | # CONFIG_SGI_GRU is not set | 809 | # CONFIG_ISL29003 is not set |
| 793 | # CONFIG_C2PORT is not set | 810 | # CONFIG_C2PORT is not set |
| 794 | 811 | ||
| 795 | # | 812 | # |
| @@ -843,6 +860,7 @@ CONFIG_SCSI_SPI_ATTRS=y | |||
| 843 | # CONFIG_SCSI_LOWLEVEL is not set | 860 | # CONFIG_SCSI_LOWLEVEL is not set |
| 844 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set | 861 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set |
| 845 | # CONFIG_SCSI_DH is not set | 862 | # CONFIG_SCSI_DH is not set |
| 863 | # CONFIG_SCSI_OSD_INITIATOR is not set | ||
| 846 | CONFIG_ATA=y | 864 | CONFIG_ATA=y |
| 847 | # CONFIG_ATA_NONSTANDARD is not set | 865 | # CONFIG_ATA_NONSTANDARD is not set |
| 848 | CONFIG_ATA_ACPI=y | 866 | CONFIG_ATA_ACPI=y |
| @@ -939,6 +957,7 @@ CONFIG_DM_ZERO=y | |||
| 939 | CONFIG_MACINTOSH_DRIVERS=y | 957 | CONFIG_MACINTOSH_DRIVERS=y |
| 940 | CONFIG_MAC_EMUMOUSEBTN=y | 958 | CONFIG_MAC_EMUMOUSEBTN=y |
| 941 | CONFIG_NETDEVICES=y | 959 | CONFIG_NETDEVICES=y |
| 960 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
| 942 | # CONFIG_IFB is not set | 961 | # CONFIG_IFB is not set |
| 943 | # CONFIG_DUMMY is not set | 962 | # CONFIG_DUMMY is not set |
| 944 | # CONFIG_BONDING is not set | 963 | # CONFIG_BONDING is not set |
| @@ -976,6 +995,8 @@ CONFIG_MII=y | |||
| 976 | CONFIG_NET_VENDOR_3COM=y | 995 | CONFIG_NET_VENDOR_3COM=y |
| 977 | # CONFIG_VORTEX is not set | 996 | # CONFIG_VORTEX is not set |
| 978 | # CONFIG_TYPHOON is not set | 997 | # CONFIG_TYPHOON is not set |
| 998 | # CONFIG_ETHOC is not set | ||
| 999 | # CONFIG_DNET is not set | ||
| 979 | CONFIG_NET_TULIP=y | 1000 | CONFIG_NET_TULIP=y |
| 980 | # CONFIG_DE2104X is not set | 1001 | # CONFIG_DE2104X is not set |
| 981 | # CONFIG_TULIP is not set | 1002 | # CONFIG_TULIP is not set |
| @@ -1025,6 +1046,7 @@ CONFIG_E1000=y | |||
| 1025 | # CONFIG_E1000E is not set | 1046 | # CONFIG_E1000E is not set |
| 1026 | # CONFIG_IP1000 is not set | 1047 | # CONFIG_IP1000 is not set |
| 1027 | # CONFIG_IGB is not set | 1048 | # CONFIG_IGB is not set |
| 1049 | # CONFIG_IGBVF is not set | ||
| 1028 | # CONFIG_NS83820 is not set | 1050 | # CONFIG_NS83820 is not set |
| 1029 | # CONFIG_HAMACHI is not set | 1051 | # CONFIG_HAMACHI is not set |
| 1030 | # CONFIG_YELLOWFIN is not set | 1052 | # CONFIG_YELLOWFIN is not set |
| @@ -1039,6 +1061,7 @@ CONFIG_TIGON3=y | |||
| 1039 | # CONFIG_QLA3XXX is not set | 1061 | # CONFIG_QLA3XXX is not set |
| 1040 | # CONFIG_ATL1 is not set | 1062 | # CONFIG_ATL1 is not set |
| 1041 | # CONFIG_ATL1E is not set | 1063 | # CONFIG_ATL1E is not set |
| 1064 | # CONFIG_ATL1C is not set | ||
| 1042 | # CONFIG_JME is not set | 1065 | # CONFIG_JME is not set |
| 1043 | CONFIG_NETDEV_10000=y | 1066 | CONFIG_NETDEV_10000=y |
| 1044 | # CONFIG_CHELSIO_T1 is not set | 1067 | # CONFIG_CHELSIO_T1 is not set |
| @@ -1048,6 +1071,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
| 1048 | # CONFIG_IXGBE is not set | 1071 | # CONFIG_IXGBE is not set |
| 1049 | # CONFIG_IXGB is not set | 1072 | # CONFIG_IXGB is not set |
| 1050 | # CONFIG_S2IO is not set | 1073 | # CONFIG_S2IO is not set |
| 1074 | # CONFIG_VXGE is not set | ||
| 1051 | # CONFIG_MYRI10GE is not set | 1075 | # CONFIG_MYRI10GE is not set |
| 1052 | # CONFIG_NETXEN_NIC is not set | 1076 | # CONFIG_NETXEN_NIC is not set |
| 1053 | # CONFIG_NIU is not set | 1077 | # CONFIG_NIU is not set |
| @@ -1057,6 +1081,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
| 1057 | # CONFIG_BNX2X is not set | 1081 | # CONFIG_BNX2X is not set |
| 1058 | # CONFIG_QLGE is not set | 1082 | # CONFIG_QLGE is not set |
| 1059 | # CONFIG_SFC is not set | 1083 | # CONFIG_SFC is not set |
| 1084 | # CONFIG_BE2NET is not set | ||
| 1060 | CONFIG_TR=y | 1085 | CONFIG_TR=y |
| 1061 | # CONFIG_IBMOL is not set | 1086 | # CONFIG_IBMOL is not set |
| 1062 | # CONFIG_3C359 is not set | 1087 | # CONFIG_3C359 is not set |
| @@ -1071,8 +1096,8 @@ CONFIG_WLAN_80211=y | |||
| 1071 | # CONFIG_LIBERTAS is not set | 1096 | # CONFIG_LIBERTAS is not set |
| 1072 | # CONFIG_LIBERTAS_THINFIRM is not set | 1097 | # CONFIG_LIBERTAS_THINFIRM is not set |
| 1073 | # CONFIG_AIRO is not set | 1098 | # CONFIG_AIRO is not set |
| 1074 | # CONFIG_HERMES is not set | ||
| 1075 | # CONFIG_ATMEL is not set | 1099 | # CONFIG_ATMEL is not set |
| 1100 | # CONFIG_AT76C50X_USB is not set | ||
| 1076 | # CONFIG_AIRO_CS is not set | 1101 | # CONFIG_AIRO_CS is not set |
| 1077 | # CONFIG_PCMCIA_WL3501 is not set | 1102 | # CONFIG_PCMCIA_WL3501 is not set |
| 1078 | # CONFIG_PRISM54 is not set | 1103 | # CONFIG_PRISM54 is not set |
| @@ -1082,21 +1107,21 @@ CONFIG_WLAN_80211=y | |||
| 1082 | # CONFIG_RTL8187 is not set | 1107 | # CONFIG_RTL8187 is not set |
| 1083 | # CONFIG_ADM8211 is not set | 1108 | # CONFIG_ADM8211 is not set |
| 1084 | # CONFIG_MAC80211_HWSIM is not set | 1109 | # CONFIG_MAC80211_HWSIM is not set |
| 1110 | # CONFIG_MWL8K is not set | ||
| 1085 | # CONFIG_P54_COMMON is not set | 1111 | # CONFIG_P54_COMMON is not set |
| 1086 | CONFIG_ATH5K=y | 1112 | CONFIG_ATH5K=y |
| 1087 | # CONFIG_ATH5K_DEBUG is not set | 1113 | # CONFIG_ATH5K_DEBUG is not set |
| 1088 | # CONFIG_ATH9K is not set | 1114 | # CONFIG_ATH9K is not set |
| 1115 | # CONFIG_AR9170_USB is not set | ||
| 1089 | # CONFIG_IPW2100 is not set | 1116 | # CONFIG_IPW2100 is not set |
| 1090 | # CONFIG_IPW2200 is not set | 1117 | # CONFIG_IPW2200 is not set |
| 1091 | # CONFIG_IWLCORE is not set | 1118 | # CONFIG_IWLWIFI is not set |
| 1092 | # CONFIG_IWLWIFI_LEDS is not set | ||
| 1093 | # CONFIG_IWLAGN is not set | ||
| 1094 | # CONFIG_IWL3945 is not set | ||
| 1095 | # CONFIG_HOSTAP is not set | 1119 | # CONFIG_HOSTAP is not set |
| 1096 | # CONFIG_B43 is not set | 1120 | # CONFIG_B43 is not set |
| 1097 | # CONFIG_B43LEGACY is not set | 1121 | # CONFIG_B43LEGACY is not set |
| 1098 | # CONFIG_ZD1211RW is not set | 1122 | # CONFIG_ZD1211RW is not set |
| 1099 | # CONFIG_RT2X00 is not set | 1123 | # CONFIG_RT2X00 is not set |
| 1124 | # CONFIG_HERMES is not set | ||
| 1100 | 1125 | ||
| 1101 | # | 1126 | # |
| 1102 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 1127 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
| @@ -1207,6 +1232,8 @@ CONFIG_INPUT_TABLET=y | |||
| 1207 | # CONFIG_TABLET_USB_KBTAB is not set | 1232 | # CONFIG_TABLET_USB_KBTAB is not set |
| 1208 | # CONFIG_TABLET_USB_WACOM is not set | 1233 | # CONFIG_TABLET_USB_WACOM is not set |
| 1209 | CONFIG_INPUT_TOUCHSCREEN=y | 1234 | CONFIG_INPUT_TOUCHSCREEN=y |
| 1235 | # CONFIG_TOUCHSCREEN_AD7879_I2C is not set | ||
| 1236 | # CONFIG_TOUCHSCREEN_AD7879 is not set | ||
| 1210 | # CONFIG_TOUCHSCREEN_FUJITSU is not set | 1237 | # CONFIG_TOUCHSCREEN_FUJITSU is not set |
| 1211 | # CONFIG_TOUCHSCREEN_GUNZE is not set | 1238 | # CONFIG_TOUCHSCREEN_GUNZE is not set |
| 1212 | # CONFIG_TOUCHSCREEN_ELO is not set | 1239 | # CONFIG_TOUCHSCREEN_ELO is not set |
| @@ -1300,6 +1327,7 @@ CONFIG_UNIX98_PTYS=y | |||
| 1300 | # CONFIG_LEGACY_PTYS is not set | 1327 | # CONFIG_LEGACY_PTYS is not set |
| 1301 | # CONFIG_IPMI_HANDLER is not set | 1328 | # CONFIG_IPMI_HANDLER is not set |
| 1302 | CONFIG_HW_RANDOM=y | 1329 | CONFIG_HW_RANDOM=y |
| 1330 | # CONFIG_HW_RANDOM_TIMERIOMEM is not set | ||
| 1303 | # CONFIG_HW_RANDOM_INTEL is not set | 1331 | # CONFIG_HW_RANDOM_INTEL is not set |
| 1304 | # CONFIG_HW_RANDOM_AMD is not set | 1332 | # CONFIG_HW_RANDOM_AMD is not set |
| 1305 | CONFIG_NVRAM=y | 1333 | CONFIG_NVRAM=y |
| @@ -1381,7 +1409,6 @@ CONFIG_I2C_I801=y | |||
| 1381 | # CONFIG_SENSORS_PCF8574 is not set | 1409 | # CONFIG_SENSORS_PCF8574 is not set |
| 1382 | # CONFIG_PCF8575 is not set | 1410 | # CONFIG_PCF8575 is not set |
| 1383 | # CONFIG_SENSORS_PCA9539 is not set | 1411 | # CONFIG_SENSORS_PCA9539 is not set |
| 1384 | # CONFIG_SENSORS_PCF8591 is not set | ||
| 1385 | # CONFIG_SENSORS_MAX6875 is not set | 1412 | # CONFIG_SENSORS_MAX6875 is not set |
| 1386 | # CONFIG_SENSORS_TSL2550 is not set | 1413 | # CONFIG_SENSORS_TSL2550 is not set |
| 1387 | # CONFIG_I2C_DEBUG_CORE is not set | 1414 | # CONFIG_I2C_DEBUG_CORE is not set |
| @@ -1415,6 +1442,7 @@ CONFIG_HWMON=y | |||
| 1415 | # CONFIG_SENSORS_ADT7475 is not set | 1442 | # CONFIG_SENSORS_ADT7475 is not set |
| 1416 | # CONFIG_SENSORS_K8TEMP is not set | 1443 | # CONFIG_SENSORS_K8TEMP is not set |
| 1417 | # CONFIG_SENSORS_ASB100 is not set | 1444 | # CONFIG_SENSORS_ASB100 is not set |
| 1445 | # CONFIG_SENSORS_ATK0110 is not set | ||
| 1418 | # CONFIG_SENSORS_ATXP1 is not set | 1446 | # CONFIG_SENSORS_ATXP1 is not set |
| 1419 | # CONFIG_SENSORS_DS1621 is not set | 1447 | # CONFIG_SENSORS_DS1621 is not set |
| 1420 | # CONFIG_SENSORS_I5K_AMB is not set | 1448 | # CONFIG_SENSORS_I5K_AMB is not set |
| @@ -1424,6 +1452,7 @@ CONFIG_HWMON=y | |||
| 1424 | # CONFIG_SENSORS_FSCHER is not set | 1452 | # CONFIG_SENSORS_FSCHER is not set |
| 1425 | # CONFIG_SENSORS_FSCPOS is not set | 1453 | # CONFIG_SENSORS_FSCPOS is not set |
| 1426 | # CONFIG_SENSORS_FSCHMD is not set | 1454 | # CONFIG_SENSORS_FSCHMD is not set |
| 1455 | # CONFIG_SENSORS_G760A is not set | ||
| 1427 | # CONFIG_SENSORS_GL518SM is not set | 1456 | # CONFIG_SENSORS_GL518SM is not set |
| 1428 | # CONFIG_SENSORS_GL520SM is not set | 1457 | # CONFIG_SENSORS_GL520SM is not set |
| 1429 | # CONFIG_SENSORS_CORETEMP is not set | 1458 | # CONFIG_SENSORS_CORETEMP is not set |
| @@ -1439,11 +1468,14 @@ CONFIG_HWMON=y | |||
| 1439 | # CONFIG_SENSORS_LM90 is not set | 1468 | # CONFIG_SENSORS_LM90 is not set |
| 1440 | # CONFIG_SENSORS_LM92 is not set | 1469 | # CONFIG_SENSORS_LM92 is not set |
| 1441 | # CONFIG_SENSORS_LM93 is not set | 1470 | # CONFIG_SENSORS_LM93 is not set |
| 1471 | # CONFIG_SENSORS_LTC4215 is not set | ||
| 1442 | # CONFIG_SENSORS_LTC4245 is not set | 1472 | # CONFIG_SENSORS_LTC4245 is not set |
| 1473 | # CONFIG_SENSORS_LM95241 is not set | ||
| 1443 | # CONFIG_SENSORS_MAX1619 is not set | 1474 | # CONFIG_SENSORS_MAX1619 is not set |
| 1444 | # CONFIG_SENSORS_MAX6650 is not set | 1475 | # CONFIG_SENSORS_MAX6650 is not set |
| 1445 | # CONFIG_SENSORS_PC87360 is not set | 1476 | # CONFIG_SENSORS_PC87360 is not set |
| 1446 | # CONFIG_SENSORS_PC87427 is not set | 1477 | # CONFIG_SENSORS_PC87427 is not set |
| 1478 | # CONFIG_SENSORS_PCF8591 is not set | ||
| 1447 | # CONFIG_SENSORS_SIS5595 is not set | 1479 | # CONFIG_SENSORS_SIS5595 is not set |
| 1448 | # CONFIG_SENSORS_DME1737 is not set | 1480 | # CONFIG_SENSORS_DME1737 is not set |
| 1449 | # CONFIG_SENSORS_SMSC47M1 is not set | 1481 | # CONFIG_SENSORS_SMSC47M1 is not set |
| @@ -1634,6 +1666,7 @@ CONFIG_FB_EFI=y | |||
| 1634 | # CONFIG_FB_VIRTUAL is not set | 1666 | # CONFIG_FB_VIRTUAL is not set |
| 1635 | # CONFIG_FB_METRONOME is not set | 1667 | # CONFIG_FB_METRONOME is not set |
| 1636 | # CONFIG_FB_MB862XX is not set | 1668 | # CONFIG_FB_MB862XX is not set |
| 1669 | # CONFIG_FB_BROADSHEET is not set | ||
| 1637 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | 1670 | CONFIG_BACKLIGHT_LCD_SUPPORT=y |
| 1638 | # CONFIG_LCD_CLASS_DEVICE is not set | 1671 | # CONFIG_LCD_CLASS_DEVICE is not set |
| 1639 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | 1672 | CONFIG_BACKLIGHT_CLASS_DEVICE=y |
| @@ -1719,6 +1752,8 @@ CONFIG_SND_PCI=y | |||
| 1719 | # CONFIG_SND_INDIGO is not set | 1752 | # CONFIG_SND_INDIGO is not set |
| 1720 | # CONFIG_SND_INDIGOIO is not set | 1753 | # CONFIG_SND_INDIGOIO is not set |
| 1721 | # CONFIG_SND_INDIGODJ is not set | 1754 | # CONFIG_SND_INDIGODJ is not set |
| 1755 | # CONFIG_SND_INDIGOIOX is not set | ||
| 1756 | # CONFIG_SND_INDIGODJX is not set | ||
| 1722 | # CONFIG_SND_EMU10K1 is not set | 1757 | # CONFIG_SND_EMU10K1 is not set |
| 1723 | # CONFIG_SND_EMU10K1X is not set | 1758 | # CONFIG_SND_EMU10K1X is not set |
| 1724 | # CONFIG_SND_ENS1370 is not set | 1759 | # CONFIG_SND_ENS1370 is not set |
| @@ -1791,15 +1826,17 @@ CONFIG_USB_HIDDEV=y | |||
| 1791 | # | 1826 | # |
| 1792 | # Special HID drivers | 1827 | # Special HID drivers |
| 1793 | # | 1828 | # |
| 1794 | CONFIG_HID_COMPAT=y | ||
| 1795 | CONFIG_HID_A4TECH=y | 1829 | CONFIG_HID_A4TECH=y |
| 1796 | CONFIG_HID_APPLE=y | 1830 | CONFIG_HID_APPLE=y |
| 1797 | CONFIG_HID_BELKIN=y | 1831 | CONFIG_HID_BELKIN=y |
| 1798 | CONFIG_HID_CHERRY=y | 1832 | CONFIG_HID_CHERRY=y |
| 1799 | CONFIG_HID_CHICONY=y | 1833 | CONFIG_HID_CHICONY=y |
| 1800 | CONFIG_HID_CYPRESS=y | 1834 | CONFIG_HID_CYPRESS=y |
| 1835 | # CONFIG_DRAGONRISE_FF is not set | ||
| 1801 | CONFIG_HID_EZKEY=y | 1836 | CONFIG_HID_EZKEY=y |
| 1837 | CONFIG_HID_KYE=y | ||
| 1802 | CONFIG_HID_GYRATION=y | 1838 | CONFIG_HID_GYRATION=y |
| 1839 | CONFIG_HID_KENSINGTON=y | ||
| 1803 | CONFIG_HID_LOGITECH=y | 1840 | CONFIG_HID_LOGITECH=y |
| 1804 | CONFIG_LOGITECH_FF=y | 1841 | CONFIG_LOGITECH_FF=y |
| 1805 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | 1842 | # CONFIG_LOGIRUMBLEPAD2_FF is not set |
| @@ -1865,11 +1902,11 @@ CONFIG_USB_PRINTER=y | |||
| 1865 | # CONFIG_USB_TMC is not set | 1902 | # CONFIG_USB_TMC is not set |
| 1866 | 1903 | ||
| 1867 | # | 1904 | # |
| 1868 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | 1905 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
| 1869 | # | 1906 | # |
| 1870 | 1907 | ||
| 1871 | # | 1908 | # |
| 1872 | # see USB_STORAGE Help for more information | 1909 | # also be needed; see USB_STORAGE Help for more info |
| 1873 | # | 1910 | # |
| 1874 | CONFIG_USB_STORAGE=y | 1911 | CONFIG_USB_STORAGE=y |
| 1875 | # CONFIG_USB_STORAGE_DEBUG is not set | 1912 | # CONFIG_USB_STORAGE_DEBUG is not set |
| @@ -1911,7 +1948,6 @@ CONFIG_USB_LIBUSUAL=y | |||
| 1911 | # CONFIG_USB_LED is not set | 1948 | # CONFIG_USB_LED is not set |
| 1912 | # CONFIG_USB_CYPRESS_CY7C63 is not set | 1949 | # CONFIG_USB_CYPRESS_CY7C63 is not set |
| 1913 | # CONFIG_USB_CYTHERM is not set | 1950 | # CONFIG_USB_CYTHERM is not set |
| 1914 | # CONFIG_USB_PHIDGET is not set | ||
| 1915 | # CONFIG_USB_IDMOUSE is not set | 1951 | # CONFIG_USB_IDMOUSE is not set |
| 1916 | # CONFIG_USB_FTDI_ELAN is not set | 1952 | # CONFIG_USB_FTDI_ELAN is not set |
| 1917 | # CONFIG_USB_APPLEDISPLAY is not set | 1953 | # CONFIG_USB_APPLEDISPLAY is not set |
| @@ -1927,6 +1963,7 @@ CONFIG_USB_LIBUSUAL=y | |||
| 1927 | # | 1963 | # |
| 1928 | # OTG and related infrastructure | 1964 | # OTG and related infrastructure |
| 1929 | # | 1965 | # |
| 1966 | # CONFIG_NOP_USB_XCEIV is not set | ||
| 1930 | # CONFIG_UWB is not set | 1967 | # CONFIG_UWB is not set |
| 1931 | # CONFIG_MMC is not set | 1968 | # CONFIG_MMC is not set |
| 1932 | # CONFIG_MEMSTICK is not set | 1969 | # CONFIG_MEMSTICK is not set |
| @@ -1938,8 +1975,10 @@ CONFIG_LEDS_CLASS=y | |||
| 1938 | # | 1975 | # |
| 1939 | # CONFIG_LEDS_ALIX2 is not set | 1976 | # CONFIG_LEDS_ALIX2 is not set |
| 1940 | # CONFIG_LEDS_PCA9532 is not set | 1977 | # CONFIG_LEDS_PCA9532 is not set |
| 1978 | # CONFIG_LEDS_LP5521 is not set | ||
| 1941 | # CONFIG_LEDS_CLEVO_MAIL is not set | 1979 | # CONFIG_LEDS_CLEVO_MAIL is not set |
| 1942 | # CONFIG_LEDS_PCA955X is not set | 1980 | # CONFIG_LEDS_PCA955X is not set |
| 1981 | # CONFIG_LEDS_BD2802 is not set | ||
| 1943 | 1982 | ||
| 1944 | # | 1983 | # |
| 1945 | # LED Triggers | 1984 | # LED Triggers |
| @@ -1949,6 +1988,10 @@ CONFIG_LEDS_TRIGGERS=y | |||
| 1949 | # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set | 1988 | # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set |
| 1950 | # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set | 1989 | # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set |
| 1951 | # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set | 1990 | # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set |
| 1991 | |||
| 1992 | # | ||
| 1993 | # iptables trigger is under Netfilter config (LED target) | ||
| 1994 | # | ||
| 1952 | # CONFIG_ACCESSIBILITY is not set | 1995 | # CONFIG_ACCESSIBILITY is not set |
| 1953 | # CONFIG_INFINIBAND is not set | 1996 | # CONFIG_INFINIBAND is not set |
| 1954 | CONFIG_EDAC=y | 1997 | CONFIG_EDAC=y |
| @@ -2017,6 +2060,7 @@ CONFIG_DMADEVICES=y | |||
| 2017 | # DMA Devices | 2060 | # DMA Devices |
| 2018 | # | 2061 | # |
| 2019 | # CONFIG_INTEL_IOATDMA is not set | 2062 | # CONFIG_INTEL_IOATDMA is not set |
| 2063 | # CONFIG_AUXDISPLAY is not set | ||
| 2020 | # CONFIG_UIO is not set | 2064 | # CONFIG_UIO is not set |
| 2021 | # CONFIG_STAGING is not set | 2065 | # CONFIG_STAGING is not set |
| 2022 | CONFIG_X86_PLATFORM_DEVICES=y | 2066 | CONFIG_X86_PLATFORM_DEVICES=y |
| @@ -2050,6 +2094,7 @@ CONFIG_DMIID=y | |||
| 2050 | # | 2094 | # |
| 2051 | # CONFIG_EXT2_FS is not set | 2095 | # CONFIG_EXT2_FS is not set |
| 2052 | CONFIG_EXT3_FS=y | 2096 | CONFIG_EXT3_FS=y |
| 2097 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
| 2053 | CONFIG_EXT3_FS_XATTR=y | 2098 | CONFIG_EXT3_FS_XATTR=y |
| 2054 | CONFIG_EXT3_FS_POSIX_ACL=y | 2099 | CONFIG_EXT3_FS_POSIX_ACL=y |
| 2055 | CONFIG_EXT3_FS_SECURITY=y | 2100 | CONFIG_EXT3_FS_SECURITY=y |
| @@ -2081,6 +2126,11 @@ CONFIG_AUTOFS4_FS=y | |||
| 2081 | CONFIG_GENERIC_ACL=y | 2126 | CONFIG_GENERIC_ACL=y |
| 2082 | 2127 | ||
| 2083 | # | 2128 | # |
| 2129 | # Caches | ||
| 2130 | # | ||
| 2131 | # CONFIG_FSCACHE is not set | ||
| 2132 | |||
| 2133 | # | ||
| 2084 | # CD-ROM/DVD Filesystems | 2134 | # CD-ROM/DVD Filesystems |
| 2085 | # | 2135 | # |
| 2086 | CONFIG_ISO9660_FS=y | 2136 | CONFIG_ISO9660_FS=y |
| @@ -2131,6 +2181,7 @@ CONFIG_MISC_FILESYSTEMS=y | |||
| 2131 | # CONFIG_ROMFS_FS is not set | 2181 | # CONFIG_ROMFS_FS is not set |
| 2132 | # CONFIG_SYSV_FS is not set | 2182 | # CONFIG_SYSV_FS is not set |
| 2133 | # CONFIG_UFS_FS is not set | 2183 | # CONFIG_UFS_FS is not set |
| 2184 | # CONFIG_NILFS2_FS is not set | ||
| 2134 | CONFIG_NETWORK_FILESYSTEMS=y | 2185 | CONFIG_NETWORK_FILESYSTEMS=y |
| 2135 | CONFIG_NFS_FS=y | 2186 | CONFIG_NFS_FS=y |
| 2136 | CONFIG_NFS_V3=y | 2187 | CONFIG_NFS_V3=y |
| @@ -2144,7 +2195,6 @@ CONFIG_NFS_ACL_SUPPORT=y | |||
| 2144 | CONFIG_NFS_COMMON=y | 2195 | CONFIG_NFS_COMMON=y |
| 2145 | CONFIG_SUNRPC=y | 2196 | CONFIG_SUNRPC=y |
| 2146 | CONFIG_SUNRPC_GSS=y | 2197 | CONFIG_SUNRPC_GSS=y |
| 2147 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
| 2148 | CONFIG_RPCSEC_GSS_KRB5=y | 2198 | CONFIG_RPCSEC_GSS_KRB5=y |
| 2149 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 2199 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
| 2150 | # CONFIG_SMB_FS is not set | 2200 | # CONFIG_SMB_FS is not set |
| @@ -2231,6 +2281,7 @@ CONFIG_DEBUG_FS=y | |||
| 2231 | CONFIG_DEBUG_KERNEL=y | 2281 | CONFIG_DEBUG_KERNEL=y |
| 2232 | # CONFIG_DEBUG_SHIRQ is not set | 2282 | # CONFIG_DEBUG_SHIRQ is not set |
| 2233 | # CONFIG_DETECT_SOFTLOCKUP is not set | 2283 | # CONFIG_DETECT_SOFTLOCKUP is not set |
| 2284 | # CONFIG_DETECT_HUNG_TASK is not set | ||
| 2234 | # CONFIG_SCHED_DEBUG is not set | 2285 | # CONFIG_SCHED_DEBUG is not set |
| 2235 | CONFIG_SCHEDSTATS=y | 2286 | CONFIG_SCHEDSTATS=y |
| 2236 | CONFIG_TIMER_STATS=y | 2287 | CONFIG_TIMER_STATS=y |
| @@ -2246,6 +2297,7 @@ CONFIG_TIMER_STATS=y | |||
| 2246 | # CONFIG_LOCK_STAT is not set | 2297 | # CONFIG_LOCK_STAT is not set |
| 2247 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 2298 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
| 2248 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 2299 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
| 2300 | CONFIG_STACKTRACE=y | ||
| 2249 | # CONFIG_DEBUG_KOBJECT is not set | 2301 | # CONFIG_DEBUG_KOBJECT is not set |
| 2250 | CONFIG_DEBUG_BUGVERBOSE=y | 2302 | CONFIG_DEBUG_BUGVERBOSE=y |
| 2251 | # CONFIG_DEBUG_INFO is not set | 2303 | # CONFIG_DEBUG_INFO is not set |
| @@ -2268,13 +2320,19 @@ CONFIG_FRAME_POINTER=y | |||
| 2268 | # CONFIG_FAULT_INJECTION is not set | 2320 | # CONFIG_FAULT_INJECTION is not set |
| 2269 | # CONFIG_LATENCYTOP is not set | 2321 | # CONFIG_LATENCYTOP is not set |
| 2270 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 2322 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
| 2323 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
| 2271 | CONFIG_USER_STACKTRACE_SUPPORT=y | 2324 | CONFIG_USER_STACKTRACE_SUPPORT=y |
| 2325 | CONFIG_NOP_TRACER=y | ||
| 2272 | CONFIG_HAVE_FUNCTION_TRACER=y | 2326 | CONFIG_HAVE_FUNCTION_TRACER=y |
| 2273 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 2327 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
| 2274 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 2328 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
| 2275 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 2329 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
| 2276 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 2330 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
| 2277 | CONFIG_HAVE_HW_BRANCH_TRACER=y | 2331 | CONFIG_HAVE_HW_BRANCH_TRACER=y |
| 2332 | CONFIG_HAVE_FTRACE_SYSCALLS=y | ||
| 2333 | CONFIG_RING_BUFFER=y | ||
| 2334 | CONFIG_TRACING=y | ||
| 2335 | CONFIG_TRACING_SUPPORT=y | ||
| 2278 | 2336 | ||
| 2279 | # | 2337 | # |
| 2280 | # Tracers | 2338 | # Tracers |
| @@ -2284,13 +2342,21 @@ CONFIG_HAVE_HW_BRANCH_TRACER=y | |||
| 2284 | # CONFIG_SYSPROF_TRACER is not set | 2342 | # CONFIG_SYSPROF_TRACER is not set |
| 2285 | # CONFIG_SCHED_TRACER is not set | 2343 | # CONFIG_SCHED_TRACER is not set |
| 2286 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 2344 | # CONFIG_CONTEXT_SWITCH_TRACER is not set |
| 2345 | # CONFIG_EVENT_TRACER is not set | ||
| 2346 | # CONFIG_FTRACE_SYSCALLS is not set | ||
| 2287 | # CONFIG_BOOT_TRACER is not set | 2347 | # CONFIG_BOOT_TRACER is not set |
| 2288 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 2348 | # CONFIG_TRACE_BRANCH_PROFILING is not set |
| 2289 | # CONFIG_POWER_TRACER is not set | 2349 | # CONFIG_POWER_TRACER is not set |
| 2290 | # CONFIG_STACK_TRACER is not set | 2350 | # CONFIG_STACK_TRACER is not set |
| 2291 | # CONFIG_HW_BRANCH_TRACER is not set | 2351 | # CONFIG_HW_BRANCH_TRACER is not set |
| 2352 | # CONFIG_KMEMTRACE is not set | ||
| 2353 | # CONFIG_WORKQUEUE_TRACER is not set | ||
| 2354 | CONFIG_BLK_DEV_IO_TRACE=y | ||
| 2355 | # CONFIG_FTRACE_STARTUP_TEST is not set | ||
| 2356 | # CONFIG_MMIOTRACE is not set | ||
| 2292 | CONFIG_PROVIDE_OHCI1394_DMA_INIT=y | 2357 | CONFIG_PROVIDE_OHCI1394_DMA_INIT=y |
| 2293 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 2358 | # CONFIG_DYNAMIC_DEBUG is not set |
| 2359 | # CONFIG_DMA_API_DEBUG is not set | ||
| 2294 | # CONFIG_SAMPLES is not set | 2360 | # CONFIG_SAMPLES is not set |
| 2295 | CONFIG_HAVE_ARCH_KGDB=y | 2361 | CONFIG_HAVE_ARCH_KGDB=y |
| 2296 | # CONFIG_KGDB is not set | 2362 | # CONFIG_KGDB is not set |
| @@ -2300,14 +2366,13 @@ CONFIG_EARLY_PRINTK=y | |||
| 2300 | CONFIG_EARLY_PRINTK_DBGP=y | 2366 | CONFIG_EARLY_PRINTK_DBGP=y |
| 2301 | CONFIG_DEBUG_STACKOVERFLOW=y | 2367 | CONFIG_DEBUG_STACKOVERFLOW=y |
| 2302 | CONFIG_DEBUG_STACK_USAGE=y | 2368 | CONFIG_DEBUG_STACK_USAGE=y |
| 2303 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
| 2304 | # CONFIG_DEBUG_PER_CPU_MAPS is not set | 2369 | # CONFIG_DEBUG_PER_CPU_MAPS is not set |
| 2305 | # CONFIG_X86_PTDUMP is not set | 2370 | # CONFIG_X86_PTDUMP is not set |
| 2306 | CONFIG_DEBUG_RODATA=y | 2371 | CONFIG_DEBUG_RODATA=y |
| 2307 | # CONFIG_DEBUG_RODATA_TEST is not set | 2372 | # CONFIG_DEBUG_RODATA_TEST is not set |
| 2308 | CONFIG_DEBUG_NX_TEST=m | 2373 | CONFIG_DEBUG_NX_TEST=m |
| 2309 | # CONFIG_IOMMU_DEBUG is not set | 2374 | # CONFIG_IOMMU_DEBUG is not set |
| 2310 | # CONFIG_MMIOTRACE is not set | 2375 | CONFIG_HAVE_MMIOTRACE_SUPPORT=y |
| 2311 | CONFIG_IO_DELAY_TYPE_0X80=0 | 2376 | CONFIG_IO_DELAY_TYPE_0X80=0 |
| 2312 | CONFIG_IO_DELAY_TYPE_0XED=1 | 2377 | CONFIG_IO_DELAY_TYPE_0XED=1 |
| 2313 | CONFIG_IO_DELAY_TYPE_UDELAY=2 | 2378 | CONFIG_IO_DELAY_TYPE_UDELAY=2 |
| @@ -2343,6 +2408,8 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y | |||
| 2343 | CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 | 2408 | CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 |
| 2344 | # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set | 2409 | # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set |
| 2345 | # CONFIG_SECURITY_SMACK is not set | 2410 | # CONFIG_SECURITY_SMACK is not set |
| 2411 | # CONFIG_SECURITY_TOMOYO is not set | ||
| 2412 | # CONFIG_IMA is not set | ||
| 2346 | CONFIG_CRYPTO=y | 2413 | CONFIG_CRYPTO=y |
| 2347 | 2414 | ||
| 2348 | # | 2415 | # |
| @@ -2358,10 +2425,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y | |||
| 2358 | CONFIG_CRYPTO_HASH=y | 2425 | CONFIG_CRYPTO_HASH=y |
| 2359 | CONFIG_CRYPTO_HASH2=y | 2426 | CONFIG_CRYPTO_HASH2=y |
| 2360 | CONFIG_CRYPTO_RNG2=y | 2427 | CONFIG_CRYPTO_RNG2=y |
| 2428 | CONFIG_CRYPTO_PCOMP=y | ||
| 2361 | CONFIG_CRYPTO_MANAGER=y | 2429 | CONFIG_CRYPTO_MANAGER=y |
| 2362 | CONFIG_CRYPTO_MANAGER2=y | 2430 | CONFIG_CRYPTO_MANAGER2=y |
| 2363 | # CONFIG_CRYPTO_GF128MUL is not set | 2431 | # CONFIG_CRYPTO_GF128MUL is not set |
| 2364 | # CONFIG_CRYPTO_NULL is not set | 2432 | # CONFIG_CRYPTO_NULL is not set |
| 2433 | CONFIG_CRYPTO_WORKQUEUE=y | ||
| 2365 | # CONFIG_CRYPTO_CRYPTD is not set | 2434 | # CONFIG_CRYPTO_CRYPTD is not set |
| 2366 | CONFIG_CRYPTO_AUTHENC=y | 2435 | CONFIG_CRYPTO_AUTHENC=y |
| 2367 | # CONFIG_CRYPTO_TEST is not set | 2436 | # CONFIG_CRYPTO_TEST is not set |
| @@ -2413,6 +2482,7 @@ CONFIG_CRYPTO_SHA1=y | |||
| 2413 | # | 2482 | # |
| 2414 | CONFIG_CRYPTO_AES=y | 2483 | CONFIG_CRYPTO_AES=y |
| 2415 | # CONFIG_CRYPTO_AES_X86_64 is not set | 2484 | # CONFIG_CRYPTO_AES_X86_64 is not set |
| 2485 | # CONFIG_CRYPTO_AES_NI_INTEL is not set | ||
| 2416 | # CONFIG_CRYPTO_ANUBIS is not set | 2486 | # CONFIG_CRYPTO_ANUBIS is not set |
| 2417 | CONFIG_CRYPTO_ARC4=y | 2487 | CONFIG_CRYPTO_ARC4=y |
| 2418 | # CONFIG_CRYPTO_BLOWFISH is not set | 2488 | # CONFIG_CRYPTO_BLOWFISH is not set |
| @@ -2434,6 +2504,7 @@ CONFIG_CRYPTO_DES=y | |||
| 2434 | # Compression | 2504 | # Compression |
| 2435 | # | 2505 | # |
| 2436 | # CONFIG_CRYPTO_DEFLATE is not set | 2506 | # CONFIG_CRYPTO_DEFLATE is not set |
| 2507 | # CONFIG_CRYPTO_ZLIB is not set | ||
| 2437 | # CONFIG_CRYPTO_LZO is not set | 2508 | # CONFIG_CRYPTO_LZO is not set |
| 2438 | 2509 | ||
| 2439 | # | 2510 | # |
| @@ -2443,10 +2514,12 @@ CONFIG_CRYPTO_DES=y | |||
| 2443 | CONFIG_CRYPTO_HW=y | 2514 | CONFIG_CRYPTO_HW=y |
| 2444 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 2515 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
| 2445 | CONFIG_HAVE_KVM=y | 2516 | CONFIG_HAVE_KVM=y |
| 2517 | CONFIG_HAVE_KVM_IRQCHIP=y | ||
| 2446 | CONFIG_VIRTUALIZATION=y | 2518 | CONFIG_VIRTUALIZATION=y |
| 2447 | # CONFIG_KVM is not set | 2519 | # CONFIG_KVM is not set |
| 2448 | # CONFIG_VIRTIO_PCI is not set | 2520 | # CONFIG_VIRTIO_PCI is not set |
| 2449 | # CONFIG_VIRTIO_BALLOON is not set | 2521 | # CONFIG_VIRTIO_BALLOON is not set |
| 2522 | CONFIG_BINARY_PRINTF=y | ||
| 2450 | 2523 | ||
| 2451 | # | 2524 | # |
| 2452 | # Library routines | 2525 | # Library routines |
| @@ -2463,7 +2536,10 @@ CONFIG_CRC32=y | |||
| 2463 | # CONFIG_CRC7 is not set | 2536 | # CONFIG_CRC7 is not set |
| 2464 | # CONFIG_LIBCRC32C is not set | 2537 | # CONFIG_LIBCRC32C is not set |
| 2465 | CONFIG_ZLIB_INFLATE=y | 2538 | CONFIG_ZLIB_INFLATE=y |
| 2466 | CONFIG_PLIST=y | 2539 | CONFIG_DECOMPRESS_GZIP=y |
| 2540 | CONFIG_DECOMPRESS_BZIP2=y | ||
| 2541 | CONFIG_DECOMPRESS_LZMA=y | ||
| 2467 | CONFIG_HAS_IOMEM=y | 2542 | CONFIG_HAS_IOMEM=y |
| 2468 | CONFIG_HAS_IOPORT=y | 2543 | CONFIG_HAS_IOPORT=y |
| 2469 | CONFIG_HAS_DMA=y | 2544 | CONFIG_HAS_DMA=y |
| 2545 | CONFIG_NLATTR=y | ||
diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h index 6ba23dd9fc92..418e632d4a80 100644 --- a/arch/x86/include/asm/boot.h +++ b/arch/x86/include/asm/boot.h | |||
| @@ -8,11 +8,26 @@ | |||
| 8 | 8 | ||
| 9 | #ifdef __KERNEL__ | 9 | #ifdef __KERNEL__ |
| 10 | 10 | ||
| 11 | #include <asm/page_types.h> | ||
| 12 | |||
| 11 | /* Physical address where kernel should be loaded. */ | 13 | /* Physical address where kernel should be loaded. */ |
| 12 | #define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \ | 14 | #define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \ |
| 13 | + (CONFIG_PHYSICAL_ALIGN - 1)) \ | 15 | + (CONFIG_PHYSICAL_ALIGN - 1)) \ |
| 14 | & ~(CONFIG_PHYSICAL_ALIGN - 1)) | 16 | & ~(CONFIG_PHYSICAL_ALIGN - 1)) |
| 15 | 17 | ||
| 18 | /* Minimum kernel alignment, as a power of two */ | ||
| 19 | #ifdef CONFIG_x86_64 | ||
| 20 | #define MIN_KERNEL_ALIGN_LG2 PMD_SHIFT | ||
| 21 | #else | ||
| 22 | #define MIN_KERNEL_ALIGN_LG2 (PAGE_SHIFT+1) | ||
| 23 | #endif | ||
| 24 | #define MIN_KERNEL_ALIGN (_AC(1, UL) << MIN_KERNEL_ALIGN_LG2) | ||
| 25 | |||
| 26 | #if (CONFIG_PHYSICAL_ALIGN & (CONFIG_PHYSICAL_ALIGN-1)) || \ | ||
| 27 | (CONFIG_PHYSICAL_ALIGN < (_AC(1, UL) << MIN_KERNEL_ALIGN_LG2)) | ||
| 28 | #error "Invalid value for CONFIG_PHYSICAL_ALIGN" | ||
| 29 | #endif | ||
| 30 | |||
| 16 | #ifdef CONFIG_KERNEL_BZIP2 | 31 | #ifdef CONFIG_KERNEL_BZIP2 |
| 17 | #define BOOT_HEAP_SIZE 0x400000 | 32 | #define BOOT_HEAP_SIZE 0x400000 |
| 18 | #else /* !CONFIG_KERNEL_BZIP2 */ | 33 | #else /* !CONFIG_KERNEL_BZIP2 */ |
diff --git a/arch/x86/include/asm/bootparam.h b/arch/x86/include/asm/bootparam.h index 433adaebf9b6..1724e8de317c 100644 --- a/arch/x86/include/asm/bootparam.h +++ b/arch/x86/include/asm/bootparam.h | |||
| @@ -50,7 +50,8 @@ struct setup_header { | |||
| 50 | __u32 ramdisk_size; | 50 | __u32 ramdisk_size; |
| 51 | __u32 bootsect_kludge; | 51 | __u32 bootsect_kludge; |
| 52 | __u16 heap_end_ptr; | 52 | __u16 heap_end_ptr; |
| 53 | __u16 _pad1; | 53 | __u8 ext_loader_ver; |
| 54 | __u8 ext_loader_type; | ||
| 54 | __u32 cmd_line_ptr; | 55 | __u32 cmd_line_ptr; |
| 55 | __u32 initrd_addr_max; | 56 | __u32 initrd_addr_max; |
| 56 | __u32 kernel_alignment; | 57 | __u32 kernel_alignment; |
diff --git a/arch/x86/include/asm/page_64_types.h b/arch/x86/include/asm/page_64_types.h index d38c91b70248..e11900f2500e 100644 --- a/arch/x86/include/asm/page_64_types.h +++ b/arch/x86/include/asm/page_64_types.h | |||
| @@ -32,17 +32,9 @@ | |||
| 32 | */ | 32 | */ |
| 33 | #define __PAGE_OFFSET _AC(0xffff880000000000, UL) | 33 | #define __PAGE_OFFSET _AC(0xffff880000000000, UL) |
| 34 | 34 | ||
| 35 | #define __PHYSICAL_START CONFIG_PHYSICAL_START | 35 | #define __PHYSICAL_START ((CONFIG_PHYSICAL_START + \ |
| 36 | #define __KERNEL_ALIGN 0x200000 | 36 | (CONFIG_PHYSICAL_ALIGN - 1)) & \ |
| 37 | 37 | ~(CONFIG_PHYSICAL_ALIGN - 1)) | |
| 38 | /* | ||
| 39 | * Make sure kernel is aligned to 2MB address. Catching it at compile | ||
| 40 | * time is better. Change your config file and compile the kernel | ||
| 41 | * for a 2MB aligned address (CONFIG_PHYSICAL_START) | ||
| 42 | */ | ||
| 43 | #if (CONFIG_PHYSICAL_START % __KERNEL_ALIGN) != 0 | ||
| 44 | #error "CONFIG_PHYSICAL_START must be a multiple of 2MB" | ||
| 45 | #endif | ||
| 46 | 38 | ||
| 47 | #define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START) | 39 | #define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START) |
| 48 | #define __START_KERNEL_map _AC(0xffffffff80000000, UL) | 40 | #define __START_KERNEL_map _AC(0xffffffff80000000, UL) |
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h index fed93fec9764..6469866a7410 100644 --- a/arch/x86/include/asm/processor.h +++ b/arch/x86/include/asm/processor.h | |||
| @@ -815,6 +815,7 @@ extern unsigned int BIOS_revision; | |||
| 815 | 815 | ||
| 816 | /* Boot loader type from the setup header: */ | 816 | /* Boot loader type from the setup header: */ |
| 817 | extern int bootloader_type; | 817 | extern int bootloader_type; |
| 818 | extern int bootloader_version; | ||
| 818 | 819 | ||
| 819 | extern char ignore_fpu_irq; | 820 | extern char ignore_fpu_irq; |
| 820 | 821 | ||
diff --git a/arch/x86/kernel/asm-offsets_32.c b/arch/x86/kernel/asm-offsets_32.c index 5a6aa1c1162f..1a830cbd7015 100644 --- a/arch/x86/kernel/asm-offsets_32.c +++ b/arch/x86/kernel/asm-offsets_32.c | |||
| @@ -146,4 +146,5 @@ void foo(void) | |||
| 146 | OFFSET(BP_loadflags, boot_params, hdr.loadflags); | 146 | OFFSET(BP_loadflags, boot_params, hdr.loadflags); |
| 147 | OFFSET(BP_hardware_subarch, boot_params, hdr.hardware_subarch); | 147 | OFFSET(BP_hardware_subarch, boot_params, hdr.hardware_subarch); |
| 148 | OFFSET(BP_version, boot_params, hdr.version); | 148 | OFFSET(BP_version, boot_params, hdr.version); |
| 149 | OFFSET(BP_kernel_alignment, boot_params, hdr.kernel_alignment); | ||
| 149 | } | 150 | } |
diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c index e72f062fb4b5..898ecc47e129 100644 --- a/arch/x86/kernel/asm-offsets_64.c +++ b/arch/x86/kernel/asm-offsets_64.c | |||
| @@ -125,6 +125,7 @@ int main(void) | |||
| 125 | OFFSET(BP_loadflags, boot_params, hdr.loadflags); | 125 | OFFSET(BP_loadflags, boot_params, hdr.loadflags); |
| 126 | OFFSET(BP_hardware_subarch, boot_params, hdr.hardware_subarch); | 126 | OFFSET(BP_hardware_subarch, boot_params, hdr.hardware_subarch); |
| 127 | OFFSET(BP_version, boot_params, hdr.version); | 127 | OFFSET(BP_version, boot_params, hdr.version); |
| 128 | OFFSET(BP_kernel_alignment, boot_params, hdr.kernel_alignment); | ||
| 128 | 129 | ||
| 129 | BLANK(); | 130 | BLANK(); |
| 130 | DEFINE(PAGE_SIZE_asm, PAGE_SIZE); | 131 | DEFINE(PAGE_SIZE_asm, PAGE_SIZE); |
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S index 30683883e0cd..dc5ed4bdd88d 100644 --- a/arch/x86/kernel/head_32.S +++ b/arch/x86/kernel/head_32.S | |||
| @@ -608,13 +608,6 @@ ignore_int: | |||
| 608 | ENTRY(initial_code) | 608 | ENTRY(initial_code) |
| 609 | .long i386_start_kernel | 609 | .long i386_start_kernel |
| 610 | 610 | ||
| 611 | .section .text | ||
| 612 | /* | ||
| 613 | * Real beginning of normal "text" segment | ||
| 614 | */ | ||
| 615 | ENTRY(stext) | ||
| 616 | ENTRY(_stext) | ||
| 617 | |||
| 618 | /* | 611 | /* |
| 619 | * BSS section | 612 | * BSS section |
| 620 | */ | 613 | */ |
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 523bb697120d..7791eef95b91 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
| @@ -214,8 +214,8 @@ unsigned long mmu_cr4_features; | |||
| 214 | unsigned long mmu_cr4_features = X86_CR4_PAE; | 214 | unsigned long mmu_cr4_features = X86_CR4_PAE; |
| 215 | #endif | 215 | #endif |
| 216 | 216 | ||
| 217 | /* Boot loader ID as an integer, for the benefit of proc_dointvec */ | 217 | /* Boot loader ID and version as integers, for the benefit of proc_dointvec */ |
| 218 | int bootloader_type; | 218 | int bootloader_type, bootloader_version; |
| 219 | 219 | ||
| 220 | /* | 220 | /* |
| 221 | * Setup options | 221 | * Setup options |
| @@ -706,6 +706,12 @@ void __init setup_arch(char **cmdline_p) | |||
| 706 | #endif | 706 | #endif |
| 707 | saved_video_mode = boot_params.hdr.vid_mode; | 707 | saved_video_mode = boot_params.hdr.vid_mode; |
| 708 | bootloader_type = boot_params.hdr.type_of_loader; | 708 | bootloader_type = boot_params.hdr.type_of_loader; |
| 709 | if ((bootloader_type >> 4) == 0xe) { | ||
| 710 | bootloader_type &= 0xf; | ||
| 711 | bootloader_type |= (boot_params.hdr.ext_loader_type+0x10) << 4; | ||
| 712 | } | ||
| 713 | bootloader_version = bootloader_type & 0xf; | ||
| 714 | bootloader_version |= boot_params.hdr.ext_loader_ver << 4; | ||
| 709 | 715 | ||
| 710 | #ifdef CONFIG_BLK_DEV_RAM | 716 | #ifdef CONFIG_BLK_DEV_RAM |
| 711 | rd_image_start = boot_params.hdr.ram_size & RAMDISK_IMAGE_START_MASK; | 717 | rd_image_start = boot_params.hdr.ram_size & RAMDISK_IMAGE_START_MASK; |
diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S index 849ee611f013..4c85b2e2bb65 100644 --- a/arch/x86/kernel/vmlinux.lds.S +++ b/arch/x86/kernel/vmlinux.lds.S | |||
| @@ -1,5 +1,431 @@ | |||
| 1 | /* | ||
| 2 | * ld script for the x86 kernel | ||
| 3 | * | ||
| 4 | * Historic 32-bit version written by Martin Mares <mj@atrey.karlin.mff.cuni.cz> | ||
| 5 | * | ||
| 6 | * Modernisation, unification and other changes and fixes: | ||
| 7 | * Copyright (C) 2007-2009 Sam Ravnborg <sam@ravnborg.org> | ||
| 8 | * | ||
| 9 | * | ||
| 10 | * Don't define absolute symbols until and unless you know that symbol | ||
| 11 | * value is should remain constant even if kernel image is relocated | ||
| 12 | * at run time. Absolute symbols are not relocated. If symbol value should | ||
| 13 | * change if kernel is relocated, make the symbol section relative and | ||
| 14 | * put it inside the section definition. | ||
| 15 | */ | ||
| 16 | |||
| 1 | #ifdef CONFIG_X86_32 | 17 | #ifdef CONFIG_X86_32 |
| 2 | # include "vmlinux_32.lds.S" | 18 | #define LOAD_OFFSET __PAGE_OFFSET |
| 3 | #else | 19 | #else |
| 4 | # include "vmlinux_64.lds.S" | 20 | #define LOAD_OFFSET __START_KERNEL_map |
| 5 | #endif | 21 | #endif |
| 22 | |||
| 23 | #include <asm-generic/vmlinux.lds.h> | ||
| 24 | #include <asm/asm-offsets.h> | ||
| 25 | #include <asm/thread_info.h> | ||
| 26 | #include <asm/page_types.h> | ||
| 27 | #include <asm/cache.h> | ||
| 28 | #include <asm/boot.h> | ||
| 29 | |||
| 30 | #undef i386 /* in case the preprocessor is a 32bit one */ | ||
| 31 | |||
| 32 | OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT) | ||
| 33 | |||
| 34 | #ifdef CONFIG_X86_32 | ||
| 35 | OUTPUT_ARCH(i386) | ||
| 36 | ENTRY(phys_startup_32) | ||
| 37 | jiffies = jiffies_64; | ||
| 38 | #else | ||
| 39 | OUTPUT_ARCH(i386:x86-64) | ||
| 40 | ENTRY(phys_startup_64) | ||
| 41 | jiffies_64 = jiffies; | ||
| 42 | #endif | ||
| 43 | |||
| 44 | PHDRS { | ||
| 45 | text PT_LOAD FLAGS(5); /* R_E */ | ||
| 46 | data PT_LOAD FLAGS(7); /* RWE */ | ||
| 47 | #ifdef CONFIG_X86_64 | ||
| 48 | user PT_LOAD FLAGS(7); /* RWE */ | ||
| 49 | data.init PT_LOAD FLAGS(7); /* RWE */ | ||
| 50 | #ifdef CONFIG_SMP | ||
| 51 | percpu PT_LOAD FLAGS(7); /* RWE */ | ||
| 52 | #endif | ||
| 53 | data.init2 PT_LOAD FLAGS(7); /* RWE */ | ||
| 54 | #endif | ||
| 55 | note PT_NOTE FLAGS(0); /* ___ */ | ||
| 56 | } | ||
| 57 | |||
| 58 | SECTIONS | ||
| 59 | { | ||
| 60 | #ifdef CONFIG_X86_32 | ||
| 61 | . = LOAD_OFFSET + LOAD_PHYSICAL_ADDR; | ||
| 62 | phys_startup_32 = startup_32 - LOAD_OFFSET; | ||
| 63 | #else | ||
| 64 | . = __START_KERNEL; | ||
| 65 | phys_startup_64 = startup_64 - LOAD_OFFSET; | ||
| 66 | #endif | ||
| 67 | |||
| 68 | /* Text and read-only data */ | ||
| 69 | |||
| 70 | /* bootstrapping code */ | ||
| 71 | .text.head : AT(ADDR(.text.head) - LOAD_OFFSET) { | ||
| 72 | _text = .; | ||
| 73 | *(.text.head) | ||
| 74 | } :text = 0x9090 | ||
| 75 | |||
| 76 | /* The rest of the text */ | ||
| 77 | .text : AT(ADDR(.text) - LOAD_OFFSET) { | ||
| 78 | #ifdef CONFIG_X86_32 | ||
| 79 | /* not really needed, already page aligned */ | ||
| 80 | . = ALIGN(PAGE_SIZE); | ||
| 81 | *(.text.page_aligned) | ||
| 82 | #endif | ||
| 83 | . = ALIGN(8); | ||
| 84 | _stext = .; | ||
| 85 | TEXT_TEXT | ||
| 86 | SCHED_TEXT | ||
| 87 | LOCK_TEXT | ||
| 88 | KPROBES_TEXT | ||
| 89 | IRQENTRY_TEXT | ||
| 90 | *(.fixup) | ||
| 91 | *(.gnu.warning) | ||
| 92 | /* End of text section */ | ||
| 93 | _etext = .; | ||
| 94 | } :text = 0x9090 | ||
| 95 | |||
| 96 | NOTES :text :note | ||
| 97 | |||
| 98 | /* Exception table */ | ||
| 99 | . = ALIGN(16); | ||
| 100 | __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { | ||
| 101 | __start___ex_table = .; | ||
| 102 | *(__ex_table) | ||
| 103 | __stop___ex_table = .; | ||
| 104 | } :text = 0x9090 | ||
| 105 | |||
| 106 | RODATA | ||
| 107 | |||
| 108 | /* Data */ | ||
| 109 | . = ALIGN(PAGE_SIZE); | ||
| 110 | .data : AT(ADDR(.data) - LOAD_OFFSET) { | ||
| 111 | DATA_DATA | ||
| 112 | CONSTRUCTORS | ||
| 113 | |||
| 114 | #ifdef CONFIG_X86_64 | ||
| 115 | /* End of data section */ | ||
| 116 | _edata = .; | ||
| 117 | #endif | ||
| 118 | } :data | ||
| 119 | |||
| 120 | #ifdef CONFIG_X86_32 | ||
| 121 | /* 32 bit has nosave before _edata */ | ||
| 122 | . = ALIGN(PAGE_SIZE); | ||
| 123 | .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { | ||
| 124 | __nosave_begin = .; | ||
| 125 | *(.data.nosave) | ||
| 126 | . = ALIGN(PAGE_SIZE); | ||
| 127 | __nosave_end = .; | ||
| 128 | } | ||
| 129 | #endif | ||
| 130 | |||
| 131 | . = ALIGN(PAGE_SIZE); | ||
| 132 | .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) { | ||
| 133 | *(.data.page_aligned) | ||
| 134 | *(.data.idt) | ||
| 135 | } | ||
| 136 | |||
| 137 | #ifdef CONFIG_X86_32 | ||
| 138 | . = ALIGN(32); | ||
| 139 | #else | ||
| 140 | . = ALIGN(PAGE_SIZE); | ||
| 141 | . = ALIGN(CONFIG_X86_L1_CACHE_BYTES); | ||
| 142 | #endif | ||
| 143 | .data.cacheline_aligned : | ||
| 144 | AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) { | ||
| 145 | *(.data.cacheline_aligned) | ||
| 146 | } | ||
| 147 | |||
| 148 | /* rarely changed data like cpu maps */ | ||
| 149 | #ifdef CONFIG_X86_32 | ||
| 150 | . = ALIGN(32); | ||
| 151 | #else | ||
| 152 | . = ALIGN(CONFIG_X86_INTERNODE_CACHE_BYTES); | ||
| 153 | #endif | ||
| 154 | .data.read_mostly : AT(ADDR(.data.read_mostly) - LOAD_OFFSET) { | ||
| 155 | *(.data.read_mostly) | ||
| 156 | |||
| 157 | #ifdef CONFIG_X86_32 | ||
| 158 | /* End of data section */ | ||
| 159 | _edata = .; | ||
| 160 | #endif | ||
| 161 | } | ||
| 162 | |||
| 163 | #ifdef CONFIG_X86_64 | ||
| 164 | |||
| 165 | #define VSYSCALL_ADDR (-10*1024*1024) | ||
| 166 | #define VSYSCALL_PHYS_ADDR ((LOADADDR(.data.read_mostly) + \ | ||
| 167 | SIZEOF(.data.read_mostly) + 4095) & ~(4095)) | ||
| 168 | #define VSYSCALL_VIRT_ADDR ((ADDR(.data.read_mostly) + \ | ||
| 169 | SIZEOF(.data.read_mostly) + 4095) & ~(4095)) | ||
| 170 | |||
| 171 | #define VLOAD_OFFSET (VSYSCALL_ADDR - VSYSCALL_PHYS_ADDR) | ||
| 172 | #define VLOAD(x) (ADDR(x) - VLOAD_OFFSET) | ||
| 173 | |||
| 174 | #define VVIRT_OFFSET (VSYSCALL_ADDR - VSYSCALL_VIRT_ADDR) | ||
| 175 | #define VVIRT(x) (ADDR(x) - VVIRT_OFFSET) | ||
| 176 | |||
| 177 | . = VSYSCALL_ADDR; | ||
| 178 | .vsyscall_0 : AT(VSYSCALL_PHYS_ADDR) { | ||
| 179 | *(.vsyscall_0) | ||
| 180 | } :user | ||
| 181 | |||
| 182 | __vsyscall_0 = VSYSCALL_VIRT_ADDR; | ||
| 183 | |||
| 184 | . = ALIGN(CONFIG_X86_L1_CACHE_BYTES); | ||
| 185 | .vsyscall_fn : AT(VLOAD(.vsyscall_fn)) { | ||
| 186 | *(.vsyscall_fn) | ||
| 187 | } | ||
| 188 | |||
| 189 | . = ALIGN(CONFIG_X86_L1_CACHE_BYTES); | ||
| 190 | .vsyscall_gtod_data : AT(VLOAD(.vsyscall_gtod_data)) { | ||
| 191 | *(.vsyscall_gtod_data) | ||
| 192 | } | ||
| 193 | |||
| 194 | vsyscall_gtod_data = VVIRT(.vsyscall_gtod_data); | ||
| 195 | .vsyscall_clock : AT(VLOAD(.vsyscall_clock)) { | ||
| 196 | *(.vsyscall_clock) | ||
| 197 | } | ||
| 198 | vsyscall_clock = VVIRT(.vsyscall_clock); | ||
| 199 | |||
| 200 | |||
| 201 | .vsyscall_1 ADDR(.vsyscall_0) + 1024: AT(VLOAD(.vsyscall_1)) { | ||
| 202 | *(.vsyscall_1) | ||
| 203 | } | ||
| 204 | .vsyscall_2 ADDR(.vsyscall_0) + 2048: AT(VLOAD(.vsyscall_2)) { | ||
| 205 | *(.vsyscall_2) | ||
| 206 | } | ||
| 207 | |||
| 208 | .vgetcpu_mode : AT(VLOAD(.vgetcpu_mode)) { | ||
| 209 | *(.vgetcpu_mode) | ||
| 210 | } | ||
| 211 | vgetcpu_mode = VVIRT(.vgetcpu_mode); | ||
| 212 | |||
| 213 | . = ALIGN(CONFIG_X86_L1_CACHE_BYTES); | ||
| 214 | .jiffies : AT(VLOAD(.jiffies)) { | ||
| 215 | *(.jiffies) | ||
| 216 | } | ||
| 217 | jiffies = VVIRT(.jiffies); | ||
| 218 | |||
| 219 | .vsyscall_3 ADDR(.vsyscall_0) + 3072: AT(VLOAD(.vsyscall_3)) { | ||
| 220 | *(.vsyscall_3) | ||
| 221 | } | ||
| 222 | |||
| 223 | . = VSYSCALL_VIRT_ADDR + PAGE_SIZE; | ||
| 224 | |||
| 225 | #undef VSYSCALL_ADDR | ||
| 226 | #undef VSYSCALL_PHYS_ADDR | ||
| 227 | #undef VSYSCALL_VIRT_ADDR | ||
| 228 | #undef VLOAD_OFFSET | ||
| 229 | #undef VLOAD | ||
| 230 | #undef VVIRT_OFFSET | ||
| 231 | #undef VVIRT | ||
| 232 | |||
| 233 | #endif /* CONFIG_X86_64 */ | ||
| 234 | |||
| 235 | /* init_task */ | ||
| 236 | . = ALIGN(THREAD_SIZE); | ||
| 237 | .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { | ||
| 238 | *(.data.init_task) | ||
| 239 | } | ||
| 240 | #ifdef CONFIG_X86_64 | ||
| 241 | :data.init | ||
| 242 | #endif | ||
| 243 | |||
| 244 | /* | ||
| 245 | * smp_locks might be freed after init | ||
| 246 | * start/end must be page aligned | ||
| 247 | */ | ||
| 248 | . = ALIGN(PAGE_SIZE); | ||
| 249 | .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { | ||
| 250 | __smp_locks = .; | ||
| 251 | *(.smp_locks) | ||
| 252 | __smp_locks_end = .; | ||
| 253 | . = ALIGN(PAGE_SIZE); | ||
| 254 | } | ||
| 255 | |||
| 256 | /* Init code and data - will be freed after init */ | ||
| 257 | . = ALIGN(PAGE_SIZE); | ||
| 258 | .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { | ||
| 259 | __init_begin = .; /* paired with __init_end */ | ||
| 260 | _sinittext = .; | ||
| 261 | INIT_TEXT | ||
| 262 | _einittext = .; | ||
| 263 | } | ||
| 264 | |||
| 265 | .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { | ||
| 266 | INIT_DATA | ||
| 267 | } | ||
| 268 | |||
| 269 | . = ALIGN(16); | ||
| 270 | .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) { | ||
| 271 | __setup_start = .; | ||
| 272 | *(.init.setup) | ||
| 273 | __setup_end = .; | ||
| 274 | } | ||
| 275 | .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) { | ||
| 276 | __initcall_start = .; | ||
| 277 | INITCALLS | ||
| 278 | __initcall_end = .; | ||
| 279 | } | ||
| 280 | |||
| 281 | .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) { | ||
| 282 | __con_initcall_start = .; | ||
| 283 | *(.con_initcall.init) | ||
| 284 | __con_initcall_end = .; | ||
| 285 | } | ||
| 286 | |||
| 287 | .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) { | ||
| 288 | __x86_cpu_dev_start = .; | ||
| 289 | *(.x86_cpu_dev.init) | ||
| 290 | __x86_cpu_dev_end = .; | ||
| 291 | } | ||
| 292 | |||
| 293 | SECURITY_INIT | ||
| 294 | |||
| 295 | . = ALIGN(8); | ||
| 296 | .parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) { | ||
| 297 | __parainstructions = .; | ||
| 298 | *(.parainstructions) | ||
| 299 | __parainstructions_end = .; | ||
| 300 | } | ||
| 301 | |||
| 302 | . = ALIGN(8); | ||
| 303 | .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) { | ||
| 304 | __alt_instructions = .; | ||
| 305 | *(.altinstructions) | ||
| 306 | __alt_instructions_end = .; | ||
| 307 | } | ||
| 308 | |||
| 309 | .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) { | ||
| 310 | *(.altinstr_replacement) | ||
| 311 | } | ||
| 312 | |||
| 313 | /* | ||
| 314 | * .exit.text is discard at runtime, not link time, to deal with | ||
| 315 | * references from .altinstructions and .eh_frame | ||
| 316 | */ | ||
| 317 | .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { | ||
| 318 | EXIT_TEXT | ||
| 319 | } | ||
| 320 | |||
| 321 | .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { | ||
| 322 | EXIT_DATA | ||
| 323 | } | ||
| 324 | |||
| 325 | #ifdef CONFIG_BLK_DEV_INITRD | ||
| 326 | . = ALIGN(PAGE_SIZE); | ||
| 327 | .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { | ||
| 328 | __initramfs_start = .; | ||
| 329 | *(.init.ramfs) | ||
| 330 | __initramfs_end = .; | ||
| 331 | } | ||
| 332 | #endif | ||
| 333 | |||
| 334 | #if defined(CONFIG_X86_64) && defined(CONFIG_SMP) | ||
| 335 | /* | ||
| 336 | * percpu offsets are zero-based on SMP. PERCPU_VADDR() changes the | ||
| 337 | * output PHDR, so the next output section - __data_nosave - should | ||
| 338 | * start another section data.init2. Also, pda should be at the head of | ||
| 339 | * percpu area. Preallocate it and define the percpu offset symbol | ||
| 340 | * so that it can be accessed as a percpu variable. | ||
| 341 | */ | ||
| 342 | . = ALIGN(PAGE_SIZE); | ||
| 343 | PERCPU_VADDR(0, :percpu) | ||
| 344 | #else | ||
| 345 | PERCPU(PAGE_SIZE) | ||
| 346 | #endif | ||
| 347 | |||
| 348 | . = ALIGN(PAGE_SIZE); | ||
| 349 | |||
| 350 | /* freed after init ends here */ | ||
| 351 | .init.end : AT(ADDR(.init.end) - LOAD_OFFSET) { | ||
| 352 | __init_end = .; | ||
| 353 | } | ||
| 354 | |||
| 355 | #ifdef CONFIG_X86_64 | ||
| 356 | .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { | ||
| 357 | . = ALIGN(PAGE_SIZE); | ||
| 358 | __nosave_begin = .; | ||
| 359 | *(.data.nosave) | ||
| 360 | . = ALIGN(PAGE_SIZE); | ||
| 361 | __nosave_end = .; | ||
| 362 | } :data.init2 | ||
| 363 | /* use another section data.init2, see PERCPU_VADDR() above */ | ||
| 364 | #endif | ||
| 365 | |||
| 366 | /* BSS */ | ||
| 367 | . = ALIGN(PAGE_SIZE); | ||
| 368 | .bss : AT(ADDR(.bss) - LOAD_OFFSET) { | ||
| 369 | __bss_start = .; | ||
| 370 | *(.bss.page_aligned) | ||
| 371 | *(.bss) | ||
| 372 | . = ALIGN(4); | ||
| 373 | __bss_stop = .; | ||
| 374 | } | ||
| 375 | |||
| 376 | . = ALIGN(PAGE_SIZE); | ||
| 377 | .brk : AT(ADDR(.brk) - LOAD_OFFSET) { | ||
| 378 | __brk_base = .; | ||
| 379 | . += 64 * 1024; /* 64k alignment slop space */ | ||
| 380 | *(.brk_reservation) /* areas brk users have reserved */ | ||
| 381 | __brk_limit = .; | ||
| 382 | } | ||
| 383 | |||
| 384 | .end : AT(ADDR(.end) - LOAD_OFFSET) { | ||
| 385 | _end = .; | ||
| 386 | } | ||
| 387 | |||
| 388 | /* Sections to be discarded */ | ||
| 389 | /DISCARD/ : { | ||
| 390 | *(.exitcall.exit) | ||
| 391 | *(.eh_frame) | ||
| 392 | *(.discard) | ||
| 393 | } | ||
| 394 | |||
| 395 | STABS_DEBUG | ||
| 396 | DWARF_DEBUG | ||
| 397 | } | ||
| 398 | |||
| 399 | |||
| 400 | #ifdef CONFIG_X86_32 | ||
| 401 | ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE), | ||
| 402 | "kernel image bigger than KERNEL_IMAGE_SIZE") | ||
| 403 | #else | ||
| 404 | /* | ||
| 405 | * Per-cpu symbols which need to be offset from __per_cpu_load | ||
| 406 | * for the boot processor. | ||
| 407 | */ | ||
| 408 | #define INIT_PER_CPU(x) init_per_cpu__##x = per_cpu__##x + __per_cpu_load | ||
| 409 | INIT_PER_CPU(gdt_page); | ||
| 410 | INIT_PER_CPU(irq_stack_union); | ||
| 411 | |||
| 412 | /* | ||
| 413 | * Build-time check on the image size: | ||
| 414 | */ | ||
| 415 | ASSERT((_end - _text <= KERNEL_IMAGE_SIZE), | ||
| 416 | "kernel image bigger than KERNEL_IMAGE_SIZE") | ||
| 417 | |||
| 418 | #ifdef CONFIG_SMP | ||
| 419 | ASSERT((per_cpu__irq_stack_union == 0), | ||
| 420 | "irq_stack_union is not at start of per-cpu area"); | ||
| 421 | #endif | ||
| 422 | |||
| 423 | #endif /* CONFIG_X86_32 */ | ||
| 424 | |||
| 425 | #ifdef CONFIG_KEXEC | ||
| 426 | #include <asm/kexec.h> | ||
| 427 | |||
| 428 | ASSERT(kexec_control_code_size <= KEXEC_CONTROL_CODE_MAX_SIZE, | ||
| 429 | "kexec control code size is too big") | ||
| 430 | #endif | ||
| 431 | |||
diff --git a/arch/x86/kernel/vmlinux_32.lds.S b/arch/x86/kernel/vmlinux_32.lds.S deleted file mode 100644 index 62ad500d55f3..000000000000 --- a/arch/x86/kernel/vmlinux_32.lds.S +++ /dev/null | |||
| @@ -1,229 +0,0 @@ | |||
| 1 | /* ld script to make i386 Linux kernel | ||
| 2 | * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>; | ||
| 3 | * | ||
| 4 | * Don't define absolute symbols until and unless you know that symbol | ||
| 5 | * value is should remain constant even if kernel image is relocated | ||
| 6 | * at run time. Absolute symbols are not relocated. If symbol value should | ||
| 7 | * change if kernel is relocated, make the symbol section relative and | ||
| 8 | * put it inside the section definition. | ||
| 9 | */ | ||
| 10 | |||
| 11 | #define LOAD_OFFSET __PAGE_OFFSET | ||
| 12 | |||
| 13 | #include <asm-generic/vmlinux.lds.h> | ||
| 14 | #include <asm/thread_info.h> | ||
| 15 | #include <asm/page_types.h> | ||
| 16 | #include <asm/cache.h> | ||
| 17 | #include <asm/boot.h> | ||
| 18 | |||
| 19 | OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") | ||
| 20 | OUTPUT_ARCH(i386) | ||
| 21 | ENTRY(phys_startup_32) | ||
| 22 | jiffies = jiffies_64; | ||
| 23 | |||
| 24 | PHDRS { | ||
| 25 | text PT_LOAD FLAGS(5); /* R_E */ | ||
| 26 | data PT_LOAD FLAGS(7); /* RWE */ | ||
| 27 | note PT_NOTE FLAGS(0); /* ___ */ | ||
| 28 | } | ||
| 29 | SECTIONS | ||
| 30 | { | ||
| 31 | . = LOAD_OFFSET + LOAD_PHYSICAL_ADDR; | ||
| 32 | phys_startup_32 = startup_32 - LOAD_OFFSET; | ||
| 33 | |||
| 34 | .text.head : AT(ADDR(.text.head) - LOAD_OFFSET) { | ||
| 35 | _text = .; /* Text and read-only data */ | ||
| 36 | *(.text.head) | ||
| 37 | } :text = 0x9090 | ||
| 38 | |||
| 39 | /* read-only */ | ||
| 40 | .text : AT(ADDR(.text) - LOAD_OFFSET) { | ||
| 41 | . = ALIGN(PAGE_SIZE); /* not really needed, already page aligned */ | ||
| 42 | *(.text.page_aligned) | ||
| 43 | TEXT_TEXT | ||
| 44 | SCHED_TEXT | ||
| 45 | LOCK_TEXT | ||
| 46 | KPROBES_TEXT | ||
| 47 | IRQENTRY_TEXT | ||
| 48 | *(.fixup) | ||
| 49 | *(.gnu.warning) | ||
| 50 | _etext = .; /* End of text section */ | ||
| 51 | } :text = 0x9090 | ||
| 52 | |||
| 53 | NOTES :text :note | ||
| 54 | |||
| 55 | . = ALIGN(16); /* Exception table */ | ||
| 56 | __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { | ||
| 57 | __start___ex_table = .; | ||
| 58 | *(__ex_table) | ||
| 59 | __stop___ex_table = .; | ||
| 60 | } :text = 0x9090 | ||
| 61 | |||
| 62 | RODATA | ||
| 63 | |||
| 64 | /* writeable */ | ||
| 65 | . = ALIGN(PAGE_SIZE); | ||
| 66 | .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */ | ||
| 67 | DATA_DATA | ||
| 68 | CONSTRUCTORS | ||
| 69 | } :data | ||
| 70 | |||
| 71 | . = ALIGN(PAGE_SIZE); | ||
| 72 | .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { | ||
| 73 | __nosave_begin = .; | ||
| 74 | *(.data.nosave) | ||
| 75 | . = ALIGN(PAGE_SIZE); | ||
| 76 | __nosave_end = .; | ||
| 77 | } | ||
| 78 | |||
| 79 | . = ALIGN(PAGE_SIZE); | ||
| 80 | .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) { | ||
| 81 | *(.data.page_aligned) | ||
| 82 | *(.data.idt) | ||
| 83 | } | ||
| 84 | |||
| 85 | . = ALIGN(32); | ||
| 86 | .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) { | ||
| 87 | *(.data.cacheline_aligned) | ||
| 88 | } | ||
| 89 | |||
| 90 | /* rarely changed data like cpu maps */ | ||
| 91 | . = ALIGN(32); | ||
| 92 | .data.read_mostly : AT(ADDR(.data.read_mostly) - LOAD_OFFSET) { | ||
| 93 | *(.data.read_mostly) | ||
| 94 | _edata = .; /* End of data section */ | ||
| 95 | } | ||
| 96 | |||
| 97 | . = ALIGN(THREAD_SIZE); /* init_task */ | ||
| 98 | .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { | ||
| 99 | *(.data.init_task) | ||
| 100 | } | ||
| 101 | |||
| 102 | /* might get freed after init */ | ||
| 103 | . = ALIGN(PAGE_SIZE); | ||
| 104 | .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { | ||
| 105 | __smp_locks = .; | ||
| 106 | *(.smp_locks) | ||
| 107 | __smp_locks_end = .; | ||
| 108 | } | ||
| 109 | /* will be freed after init | ||
| 110 | * Following ALIGN() is required to make sure no other data falls on the | ||
| 111 | * same page where __smp_alt_end is pointing as that page might be freed | ||
| 112 | * after boot. Always make sure that ALIGN() directive is present after | ||
| 113 | * the section which contains __smp_alt_end. | ||
| 114 | */ | ||
| 115 | . = ALIGN(PAGE_SIZE); | ||
| 116 | |||
| 117 | /* will be freed after init */ | ||
| 118 | . = ALIGN(PAGE_SIZE); /* Init code and data */ | ||
| 119 | .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { | ||
| 120 | __init_begin = .; | ||
| 121 | _sinittext = .; | ||
| 122 | INIT_TEXT | ||
| 123 | _einittext = .; | ||
| 124 | } | ||
| 125 | .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { | ||
| 126 | INIT_DATA | ||
| 127 | } | ||
| 128 | . = ALIGN(16); | ||
| 129 | .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) { | ||
| 130 | __setup_start = .; | ||
| 131 | *(.init.setup) | ||
| 132 | __setup_end = .; | ||
| 133 | } | ||
| 134 | .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) { | ||
| 135 | __initcall_start = .; | ||
| 136 | INITCALLS | ||
| 137 | __initcall_end = .; | ||
| 138 | } | ||
| 139 | .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) { | ||
| 140 | __con_initcall_start = .; | ||
| 141 | *(.con_initcall.init) | ||
| 142 | __con_initcall_end = .; | ||
| 143 | } | ||
| 144 | .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) { | ||
| 145 | __x86_cpu_dev_start = .; | ||
| 146 | *(.x86_cpu_dev.init) | ||
| 147 | __x86_cpu_dev_end = .; | ||
| 148 | } | ||
| 149 | SECURITY_INIT | ||
| 150 | . = ALIGN(4); | ||
| 151 | .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) { | ||
| 152 | __alt_instructions = .; | ||
| 153 | *(.altinstructions) | ||
| 154 | __alt_instructions_end = .; | ||
| 155 | } | ||
| 156 | .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) { | ||
| 157 | *(.altinstr_replacement) | ||
| 158 | } | ||
| 159 | . = ALIGN(4); | ||
| 160 | .parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) { | ||
| 161 | __parainstructions = .; | ||
| 162 | *(.parainstructions) | ||
| 163 | __parainstructions_end = .; | ||
| 164 | } | ||
| 165 | /* .exit.text is discard at runtime, not link time, to deal with references | ||
| 166 | from .altinstructions and .eh_frame */ | ||
| 167 | .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { | ||
| 168 | EXIT_TEXT | ||
| 169 | } | ||
| 170 | .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { | ||
| 171 | EXIT_DATA | ||
| 172 | } | ||
| 173 | #if defined(CONFIG_BLK_DEV_INITRD) | ||
| 174 | . = ALIGN(PAGE_SIZE); | ||
| 175 | .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { | ||
| 176 | __initramfs_start = .; | ||
| 177 | *(.init.ramfs) | ||
| 178 | __initramfs_end = .; | ||
| 179 | } | ||
| 180 | #endif | ||
| 181 | PERCPU(PAGE_SIZE) | ||
| 182 | . = ALIGN(PAGE_SIZE); | ||
| 183 | /* freed after init ends here */ | ||
| 184 | |||
| 185 | .bss : AT(ADDR(.bss) - LOAD_OFFSET) { | ||
| 186 | __init_end = .; | ||
| 187 | __bss_start = .; /* BSS */ | ||
| 188 | *(.bss.page_aligned) | ||
| 189 | *(.bss) | ||
| 190 | . = ALIGN(4); | ||
| 191 | __bss_stop = .; | ||
| 192 | } | ||
| 193 | |||
| 194 | .brk : AT(ADDR(.brk) - LOAD_OFFSET) { | ||
| 195 | . = ALIGN(PAGE_SIZE); | ||
| 196 | __brk_base = . ; | ||
| 197 | . += 64 * 1024 ; /* 64k alignment slop space */ | ||
| 198 | *(.brk_reservation) /* areas brk users have reserved */ | ||
| 199 | __brk_limit = . ; | ||
| 200 | } | ||
| 201 | |||
| 202 | .end : AT(ADDR(.end) - LOAD_OFFSET) { | ||
| 203 | _end = . ; | ||
| 204 | } | ||
| 205 | |||
| 206 | /* Sections to be discarded */ | ||
| 207 | /DISCARD/ : { | ||
| 208 | *(.exitcall.exit) | ||
| 209 | *(.discard) | ||
| 210 | } | ||
| 211 | |||
| 212 | STABS_DEBUG | ||
| 213 | |||
| 214 | DWARF_DEBUG | ||
| 215 | } | ||
| 216 | |||
| 217 | /* | ||
| 218 | * Build-time check on the image size: | ||
| 219 | */ | ||
| 220 | ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE), | ||
| 221 | "kernel image bigger than KERNEL_IMAGE_SIZE") | ||
| 222 | |||
| 223 | #ifdef CONFIG_KEXEC | ||
| 224 | /* Link time checks */ | ||
| 225 | #include <asm/kexec.h> | ||
| 226 | |||
| 227 | ASSERT(kexec_control_code_size <= KEXEC_CONTROL_CODE_MAX_SIZE, | ||
| 228 | "kexec control code size is too big") | ||
| 229 | #endif | ||
diff --git a/arch/x86/kernel/vmlinux_64.lds.S b/arch/x86/kernel/vmlinux_64.lds.S deleted file mode 100644 index c8742507b030..000000000000 --- a/arch/x86/kernel/vmlinux_64.lds.S +++ /dev/null | |||
| @@ -1,298 +0,0 @@ | |||
| 1 | /* ld script to make x86-64 Linux kernel | ||
| 2 | * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>; | ||
| 3 | */ | ||
| 4 | |||
| 5 | #define LOAD_OFFSET __START_KERNEL_map | ||
| 6 | |||
| 7 | #include <asm-generic/vmlinux.lds.h> | ||
| 8 | #include <asm/asm-offsets.h> | ||
| 9 | #include <asm/page_types.h> | ||
| 10 | |||
| 11 | #undef i386 /* in case the preprocessor is a 32bit one */ | ||
| 12 | |||
| 13 | OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") | ||
| 14 | OUTPUT_ARCH(i386:x86-64) | ||
| 15 | ENTRY(phys_startup_64) | ||
| 16 | jiffies_64 = jiffies; | ||
| 17 | PHDRS { | ||
| 18 | text PT_LOAD FLAGS(5); /* R_E */ | ||
| 19 | data PT_LOAD FLAGS(7); /* RWE */ | ||
| 20 | user PT_LOAD FLAGS(7); /* RWE */ | ||
| 21 | data.init PT_LOAD FLAGS(7); /* RWE */ | ||
| 22 | #ifdef CONFIG_SMP | ||
| 23 | percpu PT_LOAD FLAGS(7); /* RWE */ | ||
| 24 | #endif | ||
| 25 | data.init2 PT_LOAD FLAGS(7); /* RWE */ | ||
| 26 | note PT_NOTE FLAGS(0); /* ___ */ | ||
| 27 | } | ||
| 28 | SECTIONS | ||
| 29 | { | ||
| 30 | . = __START_KERNEL; | ||
| 31 | phys_startup_64 = startup_64 - LOAD_OFFSET; | ||
| 32 | .text : AT(ADDR(.text) - LOAD_OFFSET) { | ||
| 33 | _text = .; /* Text and read-only data */ | ||
| 34 | /* First the code that has to be first for bootstrapping */ | ||
| 35 | *(.text.head) | ||
| 36 | _stext = .; | ||
| 37 | /* Then the rest */ | ||
| 38 | TEXT_TEXT | ||
| 39 | SCHED_TEXT | ||
| 40 | LOCK_TEXT | ||
| 41 | KPROBES_TEXT | ||
| 42 | IRQENTRY_TEXT | ||
| 43 | *(.fixup) | ||
| 44 | *(.gnu.warning) | ||
| 45 | _etext = .; /* End of text section */ | ||
| 46 | } :text = 0x9090 | ||
| 47 | |||
| 48 | NOTES :text :note | ||
| 49 | |||
| 50 | . = ALIGN(16); /* Exception table */ | ||
| 51 | __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { | ||
| 52 | __start___ex_table = .; | ||
| 53 | *(__ex_table) | ||
| 54 | __stop___ex_table = .; | ||
| 55 | } :text = 0x9090 | ||
| 56 | |||
| 57 | RODATA | ||
| 58 | |||
| 59 | . = ALIGN(PAGE_SIZE); /* Align data segment to page size boundary */ | ||
| 60 | /* Data */ | ||
| 61 | .data : AT(ADDR(.data) - LOAD_OFFSET) { | ||
| 62 | DATA_DATA | ||
| 63 | CONSTRUCTORS | ||
| 64 | _edata = .; /* End of data section */ | ||
| 65 | } :data | ||
| 66 | |||
| 67 | |||
| 68 | .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) { | ||
| 69 | . = ALIGN(PAGE_SIZE); | ||
| 70 | . = ALIGN(CONFIG_X86_L1_CACHE_BYTES); | ||
| 71 | *(.data.cacheline_aligned) | ||
| 72 | } | ||
| 73 | . = ALIGN(CONFIG_X86_INTERNODE_CACHE_BYTES); | ||
| 74 | .data.read_mostly : AT(ADDR(.data.read_mostly) - LOAD_OFFSET) { | ||
| 75 | *(.data.read_mostly) | ||
| 76 | } | ||
| 77 | |||
| 78 | #define VSYSCALL_ADDR (-10*1024*1024) | ||
| 79 | #define VSYSCALL_PHYS_ADDR ((LOADADDR(.data.read_mostly) + SIZEOF(.data.read_mostly) + 4095) & ~(4095)) | ||
| 80 | #define VSYSCALL_VIRT_ADDR ((ADDR(.data.read_mostly) + SIZEOF(.data.read_mostly) + 4095) & ~(4095)) | ||
| 81 | |||
| 82 | #define VLOAD_OFFSET (VSYSCALL_ADDR - VSYSCALL_PHYS_ADDR) | ||
| 83 | #define VLOAD(x) (ADDR(x) - VLOAD_OFFSET) | ||
| 84 | |||
| 85 | #define VVIRT_OFFSET (VSYSCALL_ADDR - VSYSCALL_VIRT_ADDR) | ||
| 86 | #define VVIRT(x) (ADDR(x) - VVIRT_OFFSET) | ||
| 87 | |||
| 88 | . = VSYSCALL_ADDR; | ||
| 89 | .vsyscall_0 : AT(VSYSCALL_PHYS_ADDR) { *(.vsyscall_0) } :user | ||
| 90 | __vsyscall_0 = VSYSCALL_VIRT_ADDR; | ||
| 91 | |||
| 92 | . = ALIGN(CONFIG_X86_L1_CACHE_BYTES); | ||
| 93 | .vsyscall_fn : AT(VLOAD(.vsyscall_fn)) { *(.vsyscall_fn) } | ||
| 94 | . = ALIGN(CONFIG_X86_L1_CACHE_BYTES); | ||
| 95 | .vsyscall_gtod_data : AT(VLOAD(.vsyscall_gtod_data)) | ||
| 96 | { *(.vsyscall_gtod_data) } | ||
| 97 | vsyscall_gtod_data = VVIRT(.vsyscall_gtod_data); | ||
| 98 | .vsyscall_clock : AT(VLOAD(.vsyscall_clock)) | ||
| 99 | { *(.vsyscall_clock) } | ||
| 100 | vsyscall_clock = VVIRT(.vsyscall_clock); | ||
| 101 | |||
| 102 | |||
| 103 | .vsyscall_1 ADDR(.vsyscall_0) + 1024: AT(VLOAD(.vsyscall_1)) | ||
| 104 | { *(.vsyscall_1) } | ||
| 105 | .vsyscall_2 ADDR(.vsyscall_0) + 2048: AT(VLOAD(.vsyscall_2)) | ||
| 106 | { *(.vsyscall_2) } | ||
| 107 | |||
| 108 | .vgetcpu_mode : AT(VLOAD(.vgetcpu_mode)) { *(.vgetcpu_mode) } | ||
| 109 | vgetcpu_mode = VVIRT(.vgetcpu_mode); | ||
| 110 | |||
| 111 | . = ALIGN(CONFIG_X86_L1_CACHE_BYTES); | ||
| 112 | .jiffies : AT(VLOAD(.jiffies)) { *(.jiffies) } | ||
| 113 | jiffies = VVIRT(.jiffies); | ||
| 114 | |||
| 115 | .vsyscall_3 ADDR(.vsyscall_0) + 3072: AT(VLOAD(.vsyscall_3)) | ||
| 116 | { *(.vsyscall_3) } | ||
| 117 | |||
| 118 | . = VSYSCALL_VIRT_ADDR + PAGE_SIZE; | ||
| 119 | |||
| 120 | #undef VSYSCALL_ADDR | ||
| 121 | #undef VSYSCALL_PHYS_ADDR | ||
| 122 | #undef VSYSCALL_VIRT_ADDR | ||
| 123 | #undef VLOAD_OFFSET | ||
| 124 | #undef VLOAD | ||
| 125 | #undef VVIRT_OFFSET | ||
| 126 | #undef VVIRT | ||
| 127 | |||
| 128 | .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { | ||
| 129 | . = ALIGN(THREAD_SIZE); /* init_task */ | ||
| 130 | *(.data.init_task) | ||
| 131 | }:data.init | ||
| 132 | |||
| 133 | .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) { | ||
| 134 | . = ALIGN(PAGE_SIZE); | ||
| 135 | *(.data.page_aligned) | ||
| 136 | } | ||
| 137 | |||
| 138 | .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { | ||
| 139 | /* might get freed after init */ | ||
| 140 | . = ALIGN(PAGE_SIZE); | ||
| 141 | __smp_alt_begin = .; | ||
| 142 | __smp_locks = .; | ||
| 143 | *(.smp_locks) | ||
| 144 | __smp_locks_end = .; | ||
| 145 | . = ALIGN(PAGE_SIZE); | ||
| 146 | __smp_alt_end = .; | ||
| 147 | } | ||
| 148 | |||
| 149 | . = ALIGN(PAGE_SIZE); /* Init code and data */ | ||
| 150 | __init_begin = .; /* paired with __init_end */ | ||
| 151 | .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { | ||
| 152 | _sinittext = .; | ||
| 153 | INIT_TEXT | ||
| 154 | _einittext = .; | ||
| 155 | } | ||
| 156 | .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { | ||
| 157 | __initdata_begin = .; | ||
| 158 | INIT_DATA | ||
| 159 | __initdata_end = .; | ||
| 160 | } | ||
| 161 | |||
| 162 | .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) { | ||
| 163 | . = ALIGN(16); | ||
| 164 | __setup_start = .; | ||
| 165 | *(.init.setup) | ||
| 166 | __setup_end = .; | ||
| 167 | } | ||
| 168 | .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) { | ||
| 169 | __initcall_start = .; | ||
| 170 | INITCALLS | ||
| 171 | __initcall_end = .; | ||
| 172 | } | ||
| 173 | .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) { | ||
| 174 | __con_initcall_start = .; | ||
| 175 | *(.con_initcall.init) | ||
| 176 | __con_initcall_end = .; | ||
| 177 | } | ||
| 178 | .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) { | ||
| 179 | __x86_cpu_dev_start = .; | ||
| 180 | *(.x86_cpu_dev.init) | ||
| 181 | __x86_cpu_dev_end = .; | ||
| 182 | } | ||
| 183 | SECURITY_INIT | ||
| 184 | |||
| 185 | . = ALIGN(8); | ||
| 186 | .parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) { | ||
| 187 | __parainstructions = .; | ||
| 188 | *(.parainstructions) | ||
| 189 | __parainstructions_end = .; | ||
| 190 | } | ||
| 191 | |||
| 192 | .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) { | ||
| 193 | . = ALIGN(8); | ||
| 194 | __alt_instructions = .; | ||
| 195 | *(.altinstructions) | ||
| 196 | __alt_instructions_end = .; | ||
| 197 | } | ||
| 198 | .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) { | ||
| 199 | *(.altinstr_replacement) | ||
| 200 | } | ||
| 201 | /* .exit.text is discard at runtime, not link time, to deal with references | ||
| 202 | from .altinstructions and .eh_frame */ | ||
| 203 | .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { | ||
| 204 | EXIT_TEXT | ||
| 205 | } | ||
| 206 | .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { | ||
| 207 | EXIT_DATA | ||
| 208 | } | ||
| 209 | |||
| 210 | #ifdef CONFIG_BLK_DEV_INITRD | ||
| 211 | . = ALIGN(PAGE_SIZE); | ||
| 212 | .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { | ||
| 213 | __initramfs_start = .; | ||
| 214 | *(.init.ramfs) | ||
| 215 | __initramfs_end = .; | ||
| 216 | } | ||
| 217 | #endif | ||
| 218 | |||
| 219 | #ifdef CONFIG_SMP | ||
| 220 | /* | ||
| 221 | * percpu offsets are zero-based on SMP. PERCPU_VADDR() changes the | ||
| 222 | * output PHDR, so the next output section - __data_nosave - should | ||
| 223 | * start another section data.init2. Also, pda should be at the head of | ||
| 224 | * percpu area. Preallocate it and define the percpu offset symbol | ||
| 225 | * so that it can be accessed as a percpu variable. | ||
| 226 | */ | ||
| 227 | . = ALIGN(PAGE_SIZE); | ||
| 228 | PERCPU_VADDR(0, :percpu) | ||
| 229 | #else | ||
| 230 | PERCPU(PAGE_SIZE) | ||
| 231 | #endif | ||
| 232 | |||
| 233 | . = ALIGN(PAGE_SIZE); | ||
| 234 | __init_end = .; | ||
| 235 | |||
| 236 | .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { | ||
| 237 | . = ALIGN(PAGE_SIZE); | ||
| 238 | __nosave_begin = .; | ||
| 239 | *(.data.nosave) | ||
| 240 | . = ALIGN(PAGE_SIZE); | ||
| 241 | __nosave_end = .; | ||
| 242 | } :data.init2 /* use another section data.init2, see PERCPU_VADDR() above */ | ||
| 243 | |||
| 244 | .bss : AT(ADDR(.bss) - LOAD_OFFSET) { | ||
| 245 | . = ALIGN(PAGE_SIZE); | ||
| 246 | __bss_start = .; /* BSS */ | ||
| 247 | *(.bss.page_aligned) | ||
| 248 | *(.bss) | ||
| 249 | __bss_stop = .; | ||
| 250 | } | ||
| 251 | |||
| 252 | .brk : AT(ADDR(.brk) - LOAD_OFFSET) { | ||
| 253 | . = ALIGN(PAGE_SIZE); | ||
| 254 | __brk_base = . ; | ||
| 255 | . += 64 * 1024 ; /* 64k alignment slop space */ | ||
| 256 | *(.brk_reservation) /* areas brk users have reserved */ | ||
| 257 | __brk_limit = . ; | ||
| 258 | } | ||
| 259 | |||
| 260 | _end = . ; | ||
| 261 | |||
| 262 | /* Sections to be discarded */ | ||
| 263 | /DISCARD/ : { | ||
| 264 | *(.exitcall.exit) | ||
| 265 | *(.eh_frame) | ||
| 266 | *(.discard) | ||
| 267 | } | ||
| 268 | |||
| 269 | STABS_DEBUG | ||
| 270 | |||
| 271 | DWARF_DEBUG | ||
| 272 | } | ||
| 273 | |||
| 274 | /* | ||
| 275 | * Per-cpu symbols which need to be offset from __per_cpu_load | ||
| 276 | * for the boot processor. | ||
| 277 | */ | ||
| 278 | #define INIT_PER_CPU(x) init_per_cpu__##x = per_cpu__##x + __per_cpu_load | ||
| 279 | INIT_PER_CPU(gdt_page); | ||
| 280 | INIT_PER_CPU(irq_stack_union); | ||
| 281 | |||
| 282 | /* | ||
| 283 | * Build-time check on the image size: | ||
| 284 | */ | ||
| 285 | ASSERT((_end - _text <= KERNEL_IMAGE_SIZE), | ||
| 286 | "kernel image bigger than KERNEL_IMAGE_SIZE") | ||
| 287 | |||
| 288 | #ifdef CONFIG_SMP | ||
| 289 | ASSERT((per_cpu__irq_stack_union == 0), | ||
| 290 | "irq_stack_union is not at start of per-cpu area"); | ||
| 291 | #endif | ||
| 292 | |||
| 293 | #ifdef CONFIG_KEXEC | ||
| 294 | #include <asm/kexec.h> | ||
| 295 | |||
| 296 | ASSERT(kexec_control_code_size <= KEXEC_CONTROL_CODE_MAX_SIZE, | ||
| 297 | "kexec control code size is too big") | ||
| 298 | #endif | ||
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index b2970d56fb76..6a463716ecbf 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
| @@ -731,6 +731,14 @@ static struct ctl_table kern_table[] = { | |||
| 731 | }, | 731 | }, |
| 732 | { | 732 | { |
| 733 | .ctl_name = CTL_UNNUMBERED, | 733 | .ctl_name = CTL_UNNUMBERED, |
| 734 | .procname = "bootloader_version", | ||
| 735 | .data = &bootloader_version, | ||
| 736 | .maxlen = sizeof (int), | ||
| 737 | .mode = 0444, | ||
| 738 | .proc_handler = &proc_dointvec, | ||
| 739 | }, | ||
| 740 | { | ||
| 741 | .ctl_name = CTL_UNNUMBERED, | ||
| 734 | .procname = "kstack_depth_to_print", | 742 | .procname = "kstack_depth_to_print", |
| 735 | .data = &kstack_depth_to_print, | 743 | .data = &kstack_depth_to_print, |
| 736 | .maxlen = sizeof(int), | 744 | .maxlen = sizeof(int), |
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index cba61ca403ca..2b706617c89a 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib | |||
| @@ -188,20 +188,34 @@ cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@ | |||
| 188 | # --------------------------------------------------------------------------- | 188 | # --------------------------------------------------------------------------- |
| 189 | 189 | ||
| 190 | quiet_cmd_gzip = GZIP $@ | 190 | quiet_cmd_gzip = GZIP $@ |
| 191 | cmd_gzip = gzip -f -9 < $< > $@ | 191 | cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -f -9 > $@) || \ |
| 192 | (rm -f $@ ; false) | ||
| 192 | 193 | ||
| 193 | 194 | ||
| 194 | # Bzip2 | 195 | # Bzip2 |
| 195 | # --------------------------------------------------------------------------- | 196 | # --------------------------------------------------------------------------- |
| 196 | 197 | ||
| 197 | # Bzip2 does not include size in file... so we have to fake that | 198 | # Bzip2 and LZMA do not include size in file... so we have to fake that; |
| 198 | size_append=$(CONFIG_SHELL) $(srctree)/scripts/bin_size | 199 | # append the size as a 32-bit littleendian number as gzip does. |
| 199 | 200 | size_append = echo -ne $(shell \ | |
| 200 | quiet_cmd_bzip2 = BZIP2 $@ | 201 | dec_size=0; \ |
| 201 | cmd_bzip2 = (bzip2 -9 < $< && $(size_append) $<) > $@ || (rm -f $@ ; false) | 202 | for F in $1; do \ |
| 203 | fsize=$$(stat -c "%s" $$F); \ | ||
| 204 | dec_size=$$(expr $$dec_size + $$fsize); \ | ||
| 205 | done; \ | ||
| 206 | printf "%08x" $$dec_size | \ | ||
| 207 | sed 's/\(..\)\(..\)\(..\)\(..\)/\\\\x\4\\\\x\3\\\\x\2\\\\x\1/g' \ | ||
| 208 | ) | ||
| 209 | |||
| 210 | quiet_cmd_bzip2 = BZIP2 $@ | ||
| 211 | cmd_bzip2 = (cat $(filter-out FORCE,$^) | \ | ||
| 212 | bzip2 -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ | ||
| 213 | (rm -f $@ ; false) | ||
| 202 | 214 | ||
| 203 | # Lzma | 215 | # Lzma |
| 204 | # --------------------------------------------------------------------------- | 216 | # --------------------------------------------------------------------------- |
| 205 | 217 | ||
| 206 | quiet_cmd_lzma = LZMA $@ | 218 | quiet_cmd_lzma = LZMA $@ |
| 207 | cmd_lzma = (lzma -9 -c $< && $(size_append) $<) >$@ || (rm -f $@ ; false) | 219 | cmd_lzma = (cat $(filter-out FORCE,$^) | \ |
| 220 | lzma -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ | ||
| 221 | (rm -f $@ ; false) | ||
diff --git a/scripts/bin_size b/scripts/bin_size deleted file mode 100644 index 43e1b360cee6..000000000000 --- a/scripts/bin_size +++ /dev/null | |||
| @@ -1,10 +0,0 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | if [ $# = 0 ] ; then | ||
| 4 | echo Usage: $0 file | ||
| 5 | fi | ||
| 6 | |||
| 7 | size_dec=`stat -c "%s" $1` | ||
| 8 | size_hex_echo_string=`printf "%08x" $size_dec | | ||
| 9 | sed 's/\(..\)\(..\)\(..\)\(..\)/\\\\x\4\\\\x\3\\\\x\2\\\\x\1/g'` | ||
| 10 | /bin/echo -ne $size_hex_echo_string | ||
