1. 12 May, 2009 7 commits
    • H. Peter Anvin's avatar
      x86: add extension fields for bootloader type and version · 5031296c
      H. Peter Anvin authored
      A long ago, in days of yore, it all began with a god named Thor.
      There were vikings and boats and some plans for a Linux kernel
      header.  Unfortunately, a single 8-bit field was used for bootloader
      type and version.  This has generally worked without *too* much pain,
      but we're getting close to flat running out of ID fields.
      
      Add extension fields for both type and version.  The type will be
      extended if it the old field is 0xE; the version is a simple MSB
      extension.
      
      Keep /proc/sys/kernel/bootloader_type containing
      (type << 4) + (ver & 0xf) for backwards compatiblity, but also add
      /proc/sys/kernel/bootloader_version which contains the full version
      number.
      
      [ Impact: new feature to support more bootloaders ]
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      5031296c
    • H. Peter Anvin's avatar
      x86, defconfig: update kernel position parameters · fe83fcc0
      H. Peter Anvin authored
      Update CONFIG_RELOCATABLE, CONFIG_PHYSICAL_START and
      CONFIG_PHYSICAL_ALIGN to reflect the current defaults.
      
      [ Impact: make defconfig match Kconfig defaults ]
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      fe83fcc0
    • H. Peter Anvin's avatar
      x86, defconfig: update to current, no material changes · c4a99464
      H. Peter Anvin authored
      Update defconfigs to reflect current configuration files.  No other
      changes.
      
      [ Impact: updates defconfigs to match what "make defconfig" generates ]
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      c4a99464
    • H. Peter Anvin's avatar
      x86: make CONFIG_RELOCATABLE the default · 26717808
      H. Peter Anvin authored
      Remove the EXPERIMENTAL tag from CONFIG_RELOCATABLE and make it the
      default.  Relocatable kernels have been used for a while now, and
      should now have identical semantics to non-relocatable kernels when
      loaded by a non-relocating bootloader.
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      26717808
    • H. Peter Anvin's avatar
      x86: default CONFIG_PHYSICAL_START and CONFIG_PHYSICAL_ALIGN to 16 MB · ceefccc9
      H. Peter Anvin authored
      Default CONFIG_PHYSICAL_START and CONFIG_PHYSICAL_ALIGN each to 16 MB,
      so that both non-relocatable and relocatable kernels are loaded at
      16 MB by a non-relocating bootloader.  This is somewhat hacky, but it
      appears to be the only way to do this that does not break some some
      set of existing bootloaders.
      
      We want to avoid the bottom 16 MB because of large page breakup,
      memory holes, and ZONE_DMA.  Embedded systems may need to reduce this,
      or update their bootloaders to be aware of the new min_alignment field.
      
      [ Impact: performance improvement, avoids problems on some systems ]
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      ceefccc9
    • H. Peter Anvin's avatar
      x86: document new bzImage fields · d297366b
      H. Peter Anvin authored
      Document the new bzImage fields for kernel memory placement.
      
      [ Impact: adds documentation ]
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      d297366b
    • H. Peter Anvin's avatar
      x86, boot: make kernel_alignment adjustable; new bzImage fields · 37ba7ab5
      H. Peter Anvin authored
      Make the kernel_alignment field adjustable; this allows us to set it
      to a large value (intended to be 16 MB to avoid ZONE_DMA contention,
      memory holes and other weirdness) while a smart bootloader can still
      force a loading at a lesser alignment if absolutely necessary.
      
      Also export pref_address (preferred loading address, corresponding to
      the link-time address) and init_size, the total amount of linear
      memory the kernel will require during initialization.
      
      [ Impact: allows better kernel placement, gives bootloader more info ]
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      37ba7ab5
  2. 11 May, 2009 3 commits
  3. 09 May, 2009 13 commits
  4. 30 Apr, 2009 1 commit
  5. 29 Apr, 2009 15 commits
    • Ingo Molnar's avatar
      x86, vmlinux.lds: fix relocatable symbols · fd073194
      Ingo Molnar authored
      __init_begin/_end symbols should be inside sections as well,
      otherwise the relocatable kernel gets confused when freeing
      init sections in the wrong place.
      
      [ Impact: fix bootup crash ]
      
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <20090429105056.GA28720@uranus.ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      fd073194
    • Ingo Molnar's avatar
      x86, vmlinux.lds: add copyright · 91fd7fe8
      Ingo Molnar authored
      Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-2-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      91fd7fe8
    • Sam Ravnborg's avatar
      x86, vmlinux.lds: unify remaining parts · 091e52c3
      Sam Ravnborg authored
      32 bit:
      - explicit page align .bss
      - move ALING() out of .brk output section
      - discard *(.eh_frame)
      
      64 bit:
      - move ALIGN() out of .bss output section
      - move ALIGN() out of .brk output section
      - use a dedicated section to define _end
      
      [ Impact: unify and fix section alignments in linker script ]
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-13-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      091e52c3
    • Sam Ravnborg's avatar
      x86, vmlinux.lds: unify percpu · 9d16e783
      Sam Ravnborg authored
      32 bit:
      - move __init_end outside the .bss output section
        It really did not belong in there
      
      [ Impact: 64-bit: cleanup, 32-bit: refactor linker script ]
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-12-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      9d16e783
    • Sam Ravnborg's avatar
      x86, vmlinux.lds: unify .exit.* and .init.ramfs · bf6a5741
      Sam Ravnborg authored
      [ Impact: cleanup ]
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-11-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      bf6a5741
    • Sam Ravnborg's avatar
      x86, vmlinux.lds: unify parainstructions · ae618362
      Sam Ravnborg authored
      32 bit:
      
       - increase alignment from 4 to 8 for .parainstructions
       - increase alignment from 4 to 8 for .altinstructions
      
      64 bit:
      
       - move ALIGN() outside output section for .altinstructions
      
      None of the above should result in any functional change.
      
      [ Impact: refactor and unify linker script ]
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-10-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      ae618362
    • Sam Ravnborg's avatar
      x86, vmlinux.lds: unify first part of initdata · e58bdaa8
      Sam Ravnborg authored
      32-bit:
      
       - Move definition of __init_begin outside output_section
         because it covers more than one section
       - Move ALIGN() for end-of-section inside .smp_locks output section.
         Same effect but the intent is better documented that
         we need both start and end aligned.
      
      64-bit:
      
       - Move ALIGN() outside output section in .init.setup
       - Deleted unused __smp_alt_* symbols
      
      None of the above should result in any functional change.
      
      [ Impact: refactor and unify linker script ]
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-9-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      e58bdaa8
    • Sam Ravnborg's avatar
      x86, vmlinux.lds: move vsyscall output sections · ff6f87e1
      Sam Ravnborg authored
      [ Impact: cleanup ]
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-8-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      ff6f87e1
    • Sam Ravnborg's avatar
      x86, vmlinux.lds: unify data output sections · 1f6397ba
      Sam Ravnborg authored
      For 64 bit the following functional changes are introduced:
      
       - .data.page_aligned has moved
       - .data.cacheline_aligned has moved
       - .data.read_mostly has moved
       - ALIGN() moved out of output section for .data.cacheline_aligned
       - ALIGN() moved out of output section for .data.page_aligned
      
      Notice that 32 bit and 64 bit has different location of _edata.
      .data_nosave is 32 bit only as 64 bit is special due to PERCPU.
      
      [ Impact: 32-bit: cleanup, 64-bit: use 32-bit linker script ]
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-7-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      1f6397ba
    • Sam Ravnborg's avatar
      x86, vmlinux.lds: unify exception table · 448bc3ab
      Sam Ravnborg authored
      [ Impact: cleanup ]
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-6-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      448bc3ab
    • Sam Ravnborg's avatar
      x86, vmlinux.lds: unify .text output sections · dfc20895
      Sam Ravnborg authored
      32 bit x86 had a dedicated .text.head output section,
      whereas 64 bit had it all in a single output section.
      
      In the unified version the dedicated .text.head output section
      was kept to have full control over the head code.
      
      32 bit:
      
      - Moved definition of _stext to the linker script.
        The definition is located _after_ .text.page_aligned as this
        is what 32 bit did before.
      
      The ALIGN(8) was introduced so we hit the exact same address
      (on the tested config) before and after the move.
      
      I assume that it is a bug that _stext did not cover the
      .text.page_aligned section - if this is true it can be fixed
      in a follow-up patch (and the ugly ALIGN() can be dropped).
      
      [ Impact: 64-bit: cleanup, 32-bit: use the 64-bit linker script ]
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-5-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      dfc20895
    • Sam Ravnborg's avatar
      x86, vmlinux.lds: unify start/end of SECTIONS · 444e0ae4
      Sam Ravnborg authored
      [ Impact: cleanup ]
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-4-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      444e0ae4
    • Sam Ravnborg's avatar
      x86, vmlinux.lds: unify PHDRS · afb8095a
      Sam Ravnborg authored
      PHDRS are not equal for the two - so
      use ifdefs to cover up for that.
      
      On the assumption that they may become equal the ifdef
      is inside the PHDRS definiton.
      
      [ Impact: cleanup ]
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-3-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      afb8095a
    • Sam Ravnborg's avatar
      x86, vmlinux.lds: unify header/footer · 17ce265d
      Sam Ravnborg authored
      Merge everything except PHDRS and SECTIONS into
      vmlinux.lds.S.
      
      [ Impact: cleanup ]
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-2-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      17ce265d
    • Sam Ravnborg's avatar
      x86: beautify vmlinux_32.lds.S · aee6a166
      Sam Ravnborg authored
      Beautify vmlinux_32.lds.S:
      
       - Use tabs for indent
       - Located curly braces like in C code
       - Rearranged a few comments
      
      To see actual differences use "git diff -b" which
      ignore 'whitespace' changes.
      
      The beautification is done to prepare a unification
      of the _32 and _64 variants of the linker scripts.
      
      [ Impact: cleanup ]
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Tim Abbott <tabbott@MIT.EDU>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <1240991249-27117-1-git-send-email-sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      aee6a166
  6. 27 Apr, 2009 1 commit
    • Linus Torvalds's avatar
      x86: unify arch/x86/boot/compressed/vmlinux_*.lds · 51b26ada
      Linus Torvalds authored
      Look at the:
      
      	diff -u arch/x86/boot/compressed/vmlinux_*.lds
      
      output and realize that they're basially exactly the same except for
      trivial naming differences, and the fact that the 64-bit version has a
      "pgtable" thing.
      
      So unify them.
      
      There's some trivial cleanup there (make the output format a Kconfig thing
      rather than doing #ifdef's for it, and unify both 32-bit and 64-bit BSS
      end to "_ebss", where 32-bit used to use the traditional "_end"), but
      other than that it's really very mindless and straigt conversion.
      
      For example, I think we should aim to remove "startup_32" vs "startup_64",
      and just call it "startup", and get rid of one more difference. I didn't
      do that.
      
      Also, notice the comment in the unified vmlinux.lds.S talks about
      "head_64" and "startup_32" which is an odd and incorrect mix, but that was
      actually what the old 64-bit only lds file had, so the confusion isn't
      new, and now that mixing is arguably more accurate thanks to the
      vmlinux.lds.S file being shared between the two cases ;)
      
      [ Impact: cleanup, unification ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      51b26ada