|
@@ -39,7 +39,7 @@
|
|
|
#include <asm/mmu.h>
|
|
|
#include <asm/processor.h>
|
|
|
|
|
|
-.data
|
|
|
+.section .data
|
|
|
.global empty_zero_page
|
|
|
.align 12
|
|
|
empty_zero_page:
|
|
@@ -50,6 +50,11 @@ swapper_pg_dir:
|
|
|
|
|
|
#endif /* CONFIG_MMU */
|
|
|
|
|
|
+.section .rodata
|
|
|
+.align 4
|
|
|
+endian_check:
|
|
|
+ .word 1
|
|
|
+
|
|
|
__HEAD
|
|
|
ENTRY(_start)
|
|
|
#if CONFIG_KERNEL_BASE_ADDR == 0
|
|
@@ -79,10 +84,7 @@ real_start:
|
|
|
/* Does r7 point to a valid FDT? Load HEADER magic number */
|
|
|
/* Run time Big/Little endian platform */
|
|
|
/* Save 1 as word and load byte - 0 - BIG, 1 - LITTLE */
|
|
|
- addik r11, r0, 0x1 /* BIG/LITTLE checking value */
|
|
|
- /* __bss_start will be zeroed later - it is just temp location */
|
|
|
- swi r11, r0, TOPHYS(__bss_start)
|
|
|
- lbui r11, r0, TOPHYS(__bss_start)
|
|
|
+ lbui r11, r0, TOPHYS(endian_check)
|
|
|
beqid r11, big_endian /* DO NOT break delay stop dependency */
|
|
|
lw r11, r0, r7 /* Big endian load in delay slot */
|
|
|
lwr r11, r0, r7 /* Little endian load */
|