Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 495162df authored by Michal Simek's avatar Michal Simek
Browse files

microblaze: Optimize BE/LE bootup detecting



Save 0x1 word to rodata section and remove online value
loading if DTB is passed from bootloader. It saves two
asm instructions in bootup.

Signed-off-by: default avatarMichal Simek <monstr@monstr.eu>
parent 60114977
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -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 */