summaryrefslogtreecommitdiffstats
path: root/arch/ppc/vmlinux.lds
blob: 9ca864b729e144063b6bb003330aabf33cda5640 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf?
   __DYNAMIC = 0;    */
SECTIONS
{
  /* Read-only sections, merged into text segment: */
  . = + SIZEOF_HEADERS;
  .interp : { *(.interp) }
  .hash          : { *(.hash)		}
  .dynsym        : { *(.dynsym)		}
  .dynstr        : { *(.dynstr)		}
  .rel.text      : { *(.rel.text)		}
  .rela.text     : { *(.rela.text) 	}
  .rel.data      : { *(.rel.data)		}
  .rela.data     : { *(.rela.data) 	}
  .rel.rodata    : { *(.rel.rodata) 	}
  .rela.rodata   : { *(.rela.rodata) 	}
  .rel.got       : { *(.rel.got)		}
  .rela.got      : { *(.rela.got)		}
  .rel.ctors     : { *(.rel.ctors)	}
  .rela.ctors    : { *(.rela.ctors)	}
  .rel.dtors     : { *(.rel.dtors)	}
  .rela.dtors    : { *(.rela.dtors)	}
  .rel.bss       : { *(.rel.bss)		}
  .rela.bss      : { *(.rela.bss)		}
  .rel.plt       : { *(.rel.plt)		}
  .rela.plt      : { *(.rela.plt)		}
/*  .init          : { *(.init)	} =0*/
  .plt : { *(.plt) }
  .text      :
  {
    *(.text)
    *(.fixup)
    *(.got1)
  }
  _etext = .;
  PROVIDE (etext = .);
  .rodata    :
  {
    *(.rodata)
    *(.rodata1)
  }
  .kstrtab   : { *(.kstrtab) }
  .fini      : { *(.fini)    } =0
  .ctors     : { *(.ctors)   }
  .dtors     : { *(.dtors)   }
  /* Read-write section, merged into data segment: */
  . = (. + 0x0FFF) & 0xFFFFF000;
  .data    :
  {
    *(.data)
    *(.data1)
    *(.sdata)
    *(.sdata2)
    *(.got.plt) *(.got)
    *(.dynamic)
    CONSTRUCTORS
  }
  _edata  =  .;
  PROVIDE (edata = .);

  .fixup   : { *(.fixup) }
  __start___ex_table = .;
  __ex_table : { *(__ex_table) }
  __stop___ex_table = .;

  __start___ksymtab = .;	/* Kernel symbol table */
  __ksymtab : { *(__ksymtab) }
  __stop___ksymtab = .;

  . = ALIGN(32);
  .data.cacheline_aligned : { *(.data.cacheline_aligned) }

  . = ALIGN(4096);
  __init_begin = .;
  .text.init : { *(.text.init) }
  .data.init : { 
    *(.data.init);
    __vtop_table_begin = .;
    *(.vtop_fixup);
    __vtop_table_end = .;
    __ptov_table_begin = .;
    *(.ptov_fixup);
    __ptov_table_end = .;
  }
  . = ALIGN(16);
  __setup_start = .;
  .setup.init : { *(.setup.init) }
  __setup_end = .;
  __initcall_start = .;
  .initcall.init : { *(.initcall.init) }
  __initcall_end = .;
  . = ALIGN(4096);
  __init_end = .;

  . = ALIGN(4096);
  __pmac_begin = .;
  .text.pmac : { *(.text.pmac) }
  .data.pmac : { *(.data.pmac) }
  . = ALIGN(4096);
  __pmac_end = .;

  . = ALIGN(4096);
  __prep_begin = .;
  .text.prep : { *(.text.prep) }
  .data.prep : { *(.data.prep) }
  . = ALIGN(4096);
  __prep_end = .;

  . = ALIGN(4096);
  __chrp_begin = .;
  .text.chrp : { *(.text.chrp) }
  .data.chrp : { *(.data.chrp) }
  . = ALIGN(4096);
  __chrp_end = .;

  . = ALIGN(4096);
  __apus_begin = .;
  .text.apus : { *(.text.apus) }
  .data.apus : { *(.data.apus) }
  . = ALIGN(4096);
  __apus_end = .;

  . = ALIGN(4096);
  __apus_begin = .;
  .text.apus : { *(.text.apus) }
  .data.apus : { *(.data.apus) }
  . = ALIGN(4096);
  __apus_end = .;

  . = ALIGN(4096);
  __openfirmware_begin = .;
  .text.openfirmware : { *(.text.openfirmware) }
  .data.openfirmware : { *(.data.openfirmware) }
  . = ALIGN(4096);
  __openfirmware_end = .;

  __bss_start = .;
  .bss       :
  {
   *(.sbss) *(.scommon)
   *(.dynbss)
   *(.bss)
   *(COMMON)
  }
  _end = . ;
  PROVIDE (end = .);
}
class='column1'>| | | | switch. All other FP programs have ST0_CU1 cleared in their thread_struct, so that they incur faults on first touching the FPU, and are made the FPU owner, aka last_task_used_math. used_math determines whether a thread has used the FPU before; if not, the FPU needs to be initialized before it can own the FPU. Note: a FP program that has already been using the fpu (not neccesarily the owner), must reinit the fpu if it uses the fpu in a signal handler; a sigreturn restores the original context, discarding the context of the handler. * Some infrastructure for supporting multiple pci busses on origin200/2000.Leo Dagum2000-05-116-197/+391 | | | | | | | nasid and widget id get incoded in pci_dev->irq. pcibr_setup() now does some rudimentary probing for bridge widgets hanging off its xbow. We're not seeing interrupts from remote devices at the cpu, so mscsi card's are turned off for now. * UP FPU state handling fixes: make sure to save the fpu state of theKanoj Sarcar2000-05-102-1/+5 | | | | | | | last fpu owner before we assign the fpu to a new math task. However is mips/mips64 working with this bug? Fix needs to be ported to 2.2/2.3 mips code. Additionally, the mips64 lazy_fpu_switch code seems to have a ".set reorder" at the wrong place. * Sony name change patches from Geert.Ralf Baechle2000-05-109-9/+9 | * SMP locking for IOC3 Ethernet driver. I've got more changes pendingRalf Baechle2000-05-101-8/+15 | | | | | but currently cannot test them on a SMP, so this is only the hopefully foolproof part. * Fix for multiple detection of ethernet interface.Florian Lohoff2000-05-101-1/+1 | | | | Thanks to Klaus Naumann <spock@mgnet.de> * *** empty log message ***Ulf Carlsson2000-05-101-2/+0 | * Add sys32_nanosleep to get syslogd working.Ulf Carlsson2000-05-102-3/+56 | | | | Add sys32_sched_rr_get_interval while I'm at it. * Add a forgotten `else' while I remember it.Ulf Carlsson2000-05-091-1/+1 | * Bomb little endian compiles for select32, so that the little endian guysKanoj Sarcar2000-05-081-0/+4 | | | | can look at the issue and develope code appropriately. * Forkdrop IA64 version of sys32_select. Forklift the sparc64 version.Kanoj Sarcar2000-05-071-18/+79 | | | | | When will I learn sparc64 is bigendian like mips64, and ia64 is little endian? * Revert kernel page allocationFlorian Lohoff2000-05-041-20/+0 | * Forklift sys32_select from IA64 code.Kanoj Sarcar2000-05-042-1/+103 | * Fix the way we use the watchlo/watchhi registers to get to the taskKanoj Sarcar2000-05-041-1/+3 | | | | | struct of the currently executing thread: handle sign extension on the watchlo register. * More low level debugging stuff that can be turned on with DEBUG_MIPS64.Kanoj Sarcar2000-05-033-0/+29 | * SMP bootup and slave processor wakeup needs to be improved, but forKanoj Sarcar2000-05-031-1/+1 | | | | now, allow smp kernels to boot up on single cpu systems at least. * Fix NUMA compile problem.Kanoj Sarcar2000-05-031-2/+0 | * Change the output format of /proc/cpuinfo slightly to report the numberKanoj Sarcar2000-05-021-0/+2 | | | | of cpus. * Multicpu boot fixes: 1. make sure each cpu only picks up the interruptsKanoj Sarcar2000-05-021-6/+31 | | | | | | | that are not masked on it. 2. hack around a single irq_action list, instead of a per cpu/hub irq_action list; for the intercpu intrs, the master cpu sets up the irq_action block, whereas all cpus just program their mask/hub registers to be able to receive the interrupts. * SMP debugging enhancements.Kanoj Sarcar2000-05-013-3/+4 | * Remove dead .text.Ralf Baechle2000-04-291-1/+0 | * Print out cpu number in debug statements for SMP debugging.Kanoj Sarcar2000-04-281-4/+4 | * Update defconfig files. Nastyness: 2.3.99 builds only with sysctlsRalf Baechle2000-04-284-6/+7 | | | | enabled and for headless systems Magic Sysrq disabled. * Merge with 2.3.99-pre6.Ralf Baechle2000-04-28