~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to arch/microblaze/kernel/head.S

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
#include <asm/mmu.h>
40
40
#include <asm/processor.h>
41
41
 
42
 
.data
 
42
.section .data
43
43
.global empty_zero_page
44
44
.align 12
45
45
empty_zero_page:
50
50
 
51
51
#endif /* CONFIG_MMU */
52
52
 
 
53
.section .rodata
 
54
.align 4
 
55
endian_check:
 
56
        .word   1
 
57
 
53
58
        __HEAD
54
59
ENTRY(_start)
55
60
#if CONFIG_KERNEL_BASE_ADDR == 0
79
84
/* Does r7 point to a valid FDT? Load HEADER magic number */
80
85
        /* Run time Big/Little endian platform */
81
86
        /* Save 1 as word and load byte - 0 - BIG, 1 - LITTLE */
82
 
        addik   r11, r0, 0x1 /* BIG/LITTLE checking value */
83
 
        /* __bss_start will be zeroed later - it is just temp location */
84
 
        swi     r11, r0, TOPHYS(__bss_start)
85
 
        lbui    r11, r0, TOPHYS(__bss_start)
 
87
        lbui    r11, r0, TOPHYS(endian_check)
86
88
        beqid   r11, big_endian /* DO NOT break delay stop dependency */
87
89
        lw      r11, r0, r7 /* Big endian load in delay slot */
88
90
        lwr     r11, r0, r7 /* Little endian load */
222
224
#endif /* CONFIG_MMU */
223
225
 
224
226
        /* Initialize small data anchors */
225
 
        la      r13, r0, _KERNEL_SDA_BASE_
226
 
        la      r2, r0, _KERNEL_SDA2_BASE_
 
227
        addik   r13, r0, _KERNEL_SDA_BASE_
 
228
        addik   r2, r0, _KERNEL_SDA2_BASE_
227
229
 
228
230
        /* Initialize stack pointer */
229
 
        la      r1, r0, init_thread_union + THREAD_SIZE - 4
 
231
        addik   r1, r0, init_thread_union + THREAD_SIZE - 4
230
232
 
231
233
        /* Initialize r31 with current task address */
232
 
        la      r31, r0, init_task
 
234
        addik   r31, r0, init_task
233
235
 
234
236
        /*
235
237
         * Call platform dependent initialize function.
236
238
         * Please see $(ARCH)/mach-$(SUBARCH)/setup.c for
237
239
         * the function.
238
240
         */
239
 
        la      r9, r0, machine_early_init
 
241
        addik   r9, r0, machine_early_init
240
242
        brald   r15, r9
241
243
        nop
242
244
 
243
245
#ifndef CONFIG_MMU
244
 
        la      r15, r0, machine_halt
 
246
        addik   r15, r0, machine_halt
245
247
        braid   start_kernel
246
248
        nop
247
249
#else