06 Oct, 2009

1 commit

  • As a side effect, this patch changes the .init.ramfs data to be
    PAGE_SIZE-aligned, instead of 32-byte aligned. Also, the init data is
    moved into its own output sections rather than the .init output
    section.

    There should be no other changes to the resulting vmlinux as a result
    of this patch.

    Signed-off-by: Nelson Elhage
    Signed-off-by: Tim Abbott
    Cc: Haavard Skinnemoen
    Signed-off-by: Haavard Skinnemoen

    Nelson Elhage
     

09 Jul, 2009

1 commit

  • Discarded sections in different archs share some commonality but have
    considerable differences. This led to linker script for each arch
    implementing its own /DISCARD/ definition, which makes maintaining
    tedious and adding new entries error-prone.

    This patch makes all linker scripts to move discard definitions to the
    end of the linker script and use the common DISCARDS macro. As ld
    uses the first matching section definition, archs can include default
    discarded sections by including them earlier in the linker script.

    ia64 is notable because it first throws away some ia64 specific
    subsections and then include the rest of the sections into the final
    image, so those sections must be discarded before the inclusion.

    defconfig compile tested for x86, x86-64, powerpc, powerpc64, ia64,
    alpha, sparc, sparc64 and s390. Michal Simek tested microblaze.

    Signed-off-by: Tejun Heo
    Acked-by: Paul Mundt
    Acked-by: Mike Frysinger
    Tested-by: Michal Simek
    Cc: linux-arch@vger.kernel.org
    Cc: Michal Simek
    Cc: microblaze-uclinux@itee.uq.edu.au
    Cc: Sam Ravnborg
    Cc: Tony Luck

    Tejun Heo
     

24 Jun, 2009

1 commit

  • x86 throws away .discard section but no other archs do. Also,
    .discard is not thrown away while linking modules. Make every arch
    and module linking throw it away. This will be used to define dummy
    variables for percpu declarations and definitions.

    This patch is based on Ivan Kokshaysky's alpha percpu patch.

    [ Impact: always throw away everything in .discard ]

    Signed-off-by: Tejun Heo
    Cc: Ivan Kokshaysky
    Cc: Richard Henderson
    Cc: Russell King
    Cc: Haavard Skinnemoen
    Cc: Bryan Wu
    Cc: Mikael Starvik
    Cc: Jesper Nilsson
    Cc: David Howells
    Cc: Yoshinori Sato
    Cc: Tony Luck
    Cc: Hirokazu Takata
    Cc: Geert Uytterhoeven
    Cc: Michal Simek
    Cc: Ralf Baechle
    Cc: Kyle McMartin
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Paul Mundt
    Cc: David S. Miller
    Cc: Jeff Dike
    Cc: Chris Zankel
    Cc: Rusty Russell
    Cc: Ingo Molnar

    Tejun Heo
     

15 Jul, 2008

1 commit


02 Jul, 2008

1 commit

  • Instead of storing physical addresses along with page flags in the
    PGD, store virtual addresses and use NULL to indicate a not present
    second-level page table. A non-page-aligned page table indicates a bad
    PMD.

    This simplifies the TLB miss handler since it no longer has to check
    the Present bit and no longer has to convert the PGD entry from
    physical to virtual address. Instead, it has to check for a NULL
    entry, which is slightly cheaper than either.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     

27 Jun, 2008

1 commit


25 May, 2008

1 commit


29 Jan, 2008

1 commit


07 Dec, 2007

1 commit

  • The current debug trap handling code does a number of things that are
    illegal according to the AVR32 Architecture manual. Most importantly,
    it may try to schedule from Debug Mode, thus clearing the D bit, which
    can lead to "undefined behaviour".

    It seems like this works in most cases, but several people have
    observed somewhat unstable behaviour when debugging programs,
    including soft lockups. So there's definitely something which is not
    right with the existing code.

    The new code will never schedule from Debug mode, it will always exit
    Debug mode with a "retd" instruction, and if something not running in
    Debug mode needs to do something debug-related (like doing a single
    step), it will enter debug mode through a "breakpoint" instruction.
    The monitor code will then return directly to user space, bypassing
    its own saved registers if necessary (since we don't actually care
    about the trapped context, only the one that came before.)

    This adds three instructions to the common exception handling code,
    including one branch. It does not touch super-hot paths like the TLB
    miss handler.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     

11 Oct, 2007

3 commits

  • __init_end, which comes immediately before .text, is already page
    aligned, and that should be more than enough for the .text section.

    The reason why we need to align the .text section is because the
    interrupt handler offset is ORed with EVBA, so we need to provide
    enough alignment of EVBA that this OR operation works as an ADD.

    Currently, the last interrupt handler is not nearly a full page away
    from EVBA, so it won't be a problem.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • Use PAGE_SIZE, THREAD_SIZE and L1_CACHE_BYTES instead of harcoded
    constants in places where that's what we really mean.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • Rename vmlinux.lds to a .S file to match other architectures.
    Simplify Makefile to match the rename and deleted the unused
    USE_STANDARD_AS_RULE

    Signed-off-by: Sam Ravnborg
    Signed-off-by: Haavard Skinnemoen

    Sam Ravnborg