Skip to content

Commit

Permalink
sh64: fix up memory offset calculation.
Browse files Browse the repository at this point in the history
The linker script offsets were broken by the recent 29/32-bit
integration, so this fixes it up for sh64.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed Feb 12, 2010
1 parent b0f3ae0 commit 19f6b8b
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 14 deletions.
8 changes: 8 additions & 0 deletions arch/sh/include/asm/vmlinux.lds.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,12 @@
#define DWARF_EH_FRAME
#endif

#ifdef CONFIG_SUPERH64
#define EXTRA_TEXT \
*(.text64) \
*(.text..SHmedia32)
#else
#define EXTRA_TEXT
#endif

#endif /* __ASM_SH_VMLINUX_LDS_H */
19 changes: 5 additions & 14 deletions arch/sh/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,23 @@
* Written by Niibe Yutaka and Paul Mundt
*/
#ifdef CONFIG_SUPERH64
#define LOAD_OFFSET CONFIG_PAGE_OFFSET
#define LOAD_OFFSET PAGE_OFFSET
#define MEMORY_OFFSET __MEMORY_START
OUTPUT_ARCH(sh:sh5)
#else
#define LOAD_OFFSET 0
#define MEMORY_OFFSET 0
OUTPUT_ARCH(sh)
#endif

#include <asm/thread_info.h>
#include <asm/cache.h>
#include <asm/vmlinux.lds.h>

#if defined(CONFIG_32BIT) && !defined(CONFIG_PMB_LEGACY)
#define MEMORY_OFFSET 0
#else
#define MEMORY_OFFSET (CONFIG_MEMORY_START & 0x1fffffff)
#endif

ENTRY(_start)
SECTIONS
{
. = CONFIG_PAGE_OFFSET + MEMORY_OFFSET + CONFIG_ZERO_PAGE_OFFSET;
. = PAGE_OFFSET + MEMORY_OFFSET + CONFIG_ZERO_PAGE_OFFSET;

_text = .; /* Text and read-only data */

Expand All @@ -34,12 +30,7 @@ SECTIONS
.text : AT(ADDR(.text) - LOAD_OFFSET) {
HEAD_TEXT
TEXT_TEXT

#ifdef CONFIG_SUPERH64
*(.text64)
*(.text..SHmedia32)
#endif

EXTRA_TEXT
SCHED_TEXT
LOCK_TEXT
KPROBES_TEXT
Expand Down

0 comments on commit 19f6b8b

Please sign in to comment.