mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
microblaze_v8: assembler files head.S, entry-nommu.S, syscall_table.S
Reviewed-by: Ingo Molnar <mingo@elte.hu> Acked-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com> Acked-by: John Linn <john.linn@xilinx.com> Acked-by: John Williams <john.williams@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
56
arch/microblaze/kernel/head.S
Normal file
56
arch/microblaze/kernel/head.S
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (C) 2007-2009 Michal Simek <monstr@monstr.eu>
|
||||
* Copyright (C) 2007-2009 PetaLogix
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/thread_info.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
.text
|
||||
ENTRY(_start)
|
||||
mfs r1, rmsr
|
||||
andi r1, r1, ~2
|
||||
mts rmsr, r1
|
||||
|
||||
/* save fdt to kernel location */
|
||||
/* r7 stores pointer to fdt blob */
|
||||
beqi r7, no_fdt_arg
|
||||
or r11, r0, r0 /* incremment */
|
||||
ori r4, r0, TOPHYS(_fdt_start) /* save bram context */
|
||||
ori r3, r0, (0x4000 - 4)
|
||||
_copy_fdt:
|
||||
lw r12, r7, r11 /* r12 = r7 + r11 */
|
||||
sw r12, r4, r11 /* addr[r4 + r11] = r12 */
|
||||
addik r11, r11, 4 /* increment counting */
|
||||
bgtid r3, _copy_fdt /* loop for all entries */
|
||||
addik r3, r3, -4 /* descrement loop */
|
||||
no_fdt_arg:
|
||||
|
||||
/* Initialize small data anchors */
|
||||
la r13, r0, _KERNEL_SDA_BASE_
|
||||
la r2, r0, _KERNEL_SDA2_BASE_
|
||||
|
||||
/* Initialize stack pointer */
|
||||
la r1, r0, init_thread_union + THREAD_SIZE - 4
|
||||
|
||||
/* Initialize r31 with current task address */
|
||||
la r31, r0, init_task
|
||||
|
||||
/*
|
||||
* Call platform dependent initialize function.
|
||||
* Please see $(ARCH)/mach-$(SUBARCH)/setup.c for
|
||||
* the function.
|
||||
*/
|
||||
la r8, r0, machine_early_init
|
||||
brald r15, r8
|
||||
nop
|
||||
|
||||
la r15, r0, machine_halt
|
||||
braid start_kernel
|
||||
nop
|
||||
Reference in New Issue
Block a user