1
linux/arch/sparc64/kernel
David S. Miller bff06d5522 [SPARC64]: Rewrite bootup sequence.
Instead of all of this cpu-specific code to remap the kernel
to the correct location, use portable firmware calls to do
this instead.

What we do now is the following in position independant
assembler:

	chosen_node = prom_finddevice("/chosen");
	prom_mmu_ihandle_cache = prom_getint(chosen_node, "mmu");
	vaddr = 4MB_ALIGN(current_text_addr());
	prom_translate(vaddr, &paddr_high, &paddr_low, &mode);
	prom_boot_mapping_mode = mode;
	prom_boot_mapping_phys_high = paddr_high;
	prom_boot_mapping_phys_low = paddr_low;
	prom_map(-1, 8 * 1024 * 1024, KERNBASE, paddr_low);

and that replaces the massive amount of by-hand TLB probing and
programming we used to do here.

The new code should also handle properly the case where the kernel
is mapped at the correct address already (think: future kexec
support).

Consequently, the bulk of remap_kernel() dies as does the entirety
of arch/sparc64/prom/map.S

We try to share some strings in the PROM library with the ones used
at bootup, and while we're here mark input strings to oplib.h routines
with "const" when appropriate.

There are many more simplifications now possible.  For one thing, we
can consolidate the two copies we now have of a lot of cpu setup code
sitting in head.S and trampoline.S.

This is a significant step towards CONFIG_DEBUG_PAGEALLOC support.

Signed-off-by: David S. Miller <davem@davemloft.net>
2005-09-22 20:11:33 -07:00
..
asm-offsets.c kbuild: frv,m32r,sparc64 introduce fake asm-offsets.h file 2005-09-09 22:47:53 +02:00
auxio.c [SPARC64]: Get rid of fast IRQ feature. 2005-06-27 17:04:45 -07:00
binfmt_aout32.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
binfmt_elf32.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
central.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
chmc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
devices.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dtlb_backend.S [SPARC64]: Kill SZ_BITS define from dtlb_backend.S 2005-09-21 19:23:48 -07:00
dtlb_base.S [SPARC64]: Move kernel TLB miss handling into a seperate file. 2005-09-21 18:50:51 -07:00
dtlb_prot.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ebus.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
entry.S [SPARC64]: Move kernel TLB miss handling into a seperate file. 2005-09-21 18:50:51 -07:00
etrap.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
head.S [SPARC64]: Rewrite bootup sequence. 2005-09-22 20:11:33 -07:00
idprom.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
init_task.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ioctl32.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iommu_common.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iommu_common.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irq.c [SPARC64]: Privatize sun5_timer. 2005-07-24 19:36:13 -07:00
isa.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
itlb_base.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
kprobes.c [PATCH] Kprobes: prevent possible race conditions sparc64 changes 2005-09-07 16:58:00 -07:00
ktlb.S [SPARC64]: Remove ktlb.S instruction patching. 2005-09-21 21:49:32 -07:00
Makefile [SPARC64]: Move kernel unaligned trap handlers into assembler file. 2005-08-19 15:55:33 -07:00
module.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci_common.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci_impl.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci_iommu.c [SPARC64]: More fully work around Spitfire Errata 51. 2005-08-29 12:46:22 -07:00
pci_psycho.c [PATCH] Make sparc64 use setup-res.c 2005-09-08 14:57:25 -07:00
pci_sabre.c [PATCH] Make sparc64 use setup-res.c 2005-09-08 14:57:25 -07:00
pci_schizo.c [PATCH] Make sparc64 use setup-res.c 2005-09-08 14:57:25 -07:00
pci.c [PATCH] Make sparc64 use setup-res.c 2005-09-08 14:57:25 -07:00
power.c [PATCH] Don't export machine_restart, machine_halt, or machine_power_off. 2005-07-26 14:35:42 -07:00
process.c [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
ptrace.c [SPARC64]: Move DCACHE_ALIASING_POSSIBLE define to asm/page.h 2005-09-19 20:11:57 -07:00
rtrap.S [SPARC64]: Eliminate irq_cpustat_t. 2005-08-29 22:46:43 -07:00
sbus.c [SPARC64]: More fully work around Spitfire Errata 51. 2005-08-29 12:46:22 -07:00
semaphore.c [SPARC64]: Avoid membar instructions in delay slots. 2005-06-27 15:42:04 -07:00
setup.c [SPARC64]: Rewrite bootup sequence. 2005-09-22 20:11:33 -07:00
signal32.c [SPARC64]: More fully work around Spitfire Errata 51. 2005-08-29 12:46:22 -07:00
signal.c [PATCH] convert signal handling of NODEFER to act like other Unix boxes. 2005-08-29 10:03:11 -07:00
smp.c [SPARC64]: More fully work around Spitfire Errata 51. 2005-08-29 12:46:22 -07:00
sparc64_ksyms.c [LIB]: Consolidate _atomic_dec_and_lock() 2005-09-14 21:47:01 -07:00
starfire.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sunos_ioctl32.c [SPARC64]: Fix set/get MTU cases in sunos_ioctl() 2005-09-06 20:12:15 -07:00
sys32.S [SPARC]: Add ioprio system call support. 2005-07-10 15:11:45 -07:00
sys_sparc32.c [PATCH] remove duplicated sys_open32() code from 64bit archs 2005-09-07 16:57:43 -07:00
sys_sparc.c [PATCH] Avoiding mmap fragmentation 2005-06-21 18:46:16 -07:00
sys_sunos32.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
systbls.S [SPARC]: Add inotify syscall entries. 2005-07-27 14:14:39 -07:00
time.c [PATCH] NTP: ntp-helper functions 2005-09-07 16:57:34 -07:00
trampoline.S [SPARC64]: Rewrite bootup sequence. 2005-09-22 20:11:33 -07:00
traps.c [SPARC64]: Revamp Spitfire error trap handling. 2005-08-29 12:45:11 -07:00
ttable.S [SPARC64]: Revamp Spitfire error trap handling. 2005-08-29 12:45:11 -07:00
una_asm.S [SPARC64]: Handle little-endian unaligned loads/stores correctly. 2005-09-19 19:56:06 -07:00
unaligned.c [SPARC64]: Handle little-endian unaligned loads/stores correctly. 2005-09-19 19:56:06 -07:00
us2e_cpufreq.c [SPARC64]: Fix 2 bugs in cpufreq drivers. 2005-08-18 14:35:38 -07:00
us3_cpufreq.c [SPARC64]: Fix 2 bugs in cpufreq drivers. 2005-08-18 14:35:38 -07:00
vmlinux.lds.S [PATCH] Kprobes: prevent possible race conditions sparc64 changes 2005-09-07 16:58:00 -07:00
winfixup.S [SPARC64]: Revamp Spitfire error trap handling. 2005-08-29 12:45:11 -07:00