diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S
index 80548eb..fa486e9 100644
--- a/arch/arm/lib/crt0.S
+++ b/arch/arm/lib/crt0.S
@@ -86,6 +86,28 @@
 	bl	board_init_f_mem
 	mov	sp, r0
 
+#ifdef CONFIG_ARCH_IPQ807x
+	ldr	r0, =__bss_start	/* this is auto-relocated! */
+
+#ifdef CONFIG_USE_ARCH_MEMSET
+	ldr	r3, =__bss_end		/* this is auto-relocated! */
+	mov	r1, #0x00000000		/* prepare zero to clear BSS */
+
+	subs	r2, r3, r0		/* r2 = memset len */
+	bl	memset
+#else
+	ldr	r1, =__bss_end		/* this is auto-relocated! */
+	mov	r2, #0x00000000		/* prepare zero to clear BSS */
+
+clbss_l:cmp	r0, r1			/* while not at end of BSS */
+#if defined(CONFIG_CPU_V7M)
+	itt	lo
+#endif
+	strlo	r2, [r0]		/* clear 32-bit BSS word */
+	addlo	r0, r0, #4		/* move to next */
+	blo	clbss_l
+#endif
+#endif /* CONFIG_ARCH_IPQ807x clear bss */
 	mov	r0, #0
 	bl	board_init_f
 
@@ -134,6 +156,7 @@
 	cmp	r0, #0
 	movne	sp, r0
 # endif
+#ifndef CONFIG_ARCH_IPQ807x
 	ldr	r0, =__bss_start	/* this is auto-relocated! */
 
 #ifdef CONFIG_USE_ARCH_MEMSET
@@ -154,6 +177,7 @@
 	addlo	r0, r0, #4		/* move to next */
 	blo	clbss_l
 #endif
+#endif /* CONFIG_ARCH_IPQ807x  bss is already cleared */
 
 #if ! defined(CONFIG_SPL_BUILD)
 	bl coloured_LED_init
diff --git a/common/board_f.c b/common/board_f.c
index 8094ac4..7e4352e 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -423,14 +423,26 @@
 		defined(CONFIG_ARM)
 static int reserve_mmu(void)
 {
-	/* reserve TLB table */
-	gd->arch.tlb_size = PGTABLE_SIZE;
-	gd->relocaddr -= gd->arch.tlb_size;
+	/* If relocation is skipped, there is no need to use relocaddr
+	 * as base for tlb
+	 */
+	if (gd->flags & GD_FLG_SKIP_RELOC) {
+		/* reserve TLB table */
+		gd->arch.tlb_size = PGTABLE_SIZE;
+		gd->arch.tlb_addr = CONFIG_SYS_TEXT_BASE + gd->mon_len;
+		gd->arch.tlb_addr += (0x10000 - 1);
+		gd->arch.tlb_addr &= ~(0x10000 - 1);
+	} else {
+		/* reserve TLB table */
+		gd->arch.tlb_size = PGTABLE_SIZE;
+		gd->relocaddr -= gd->arch.tlb_size;
 
-	/* round down to next 64 kB limit */
-	gd->relocaddr &= ~(0x10000 - 1);
+		/* round down to next 64 kB limit */
+		gd->relocaddr &= ~(0x10000 - 1);
 
-	gd->arch.tlb_addr = gd->relocaddr;
+		gd->arch.tlb_addr = gd->relocaddr;
+	}
+
 	debug("TLB table from %08lx to %08lx\n", gd->arch.tlb_addr,
 	      gd->arch.tlb_addr + gd->arch.tlb_size);
 	return 0;
@@ -478,6 +490,12 @@
 
 static int reserve_uboot(void)
 {
+	/* If relocation is disabled then no need to relocate stack too */
+	if (gd->flags & GD_FLG_SKIP_RELOC) {
+		gd->start_addr_sp = CONFIG_SYS_TEXT_BASE;
+		return 0;
+	}
+
 	/*
 	 * reserve memory for U-Boot code, data & bss
 	 * round down to next 4 kB limit
@@ -511,6 +529,9 @@
 static int reserve_board(void)
 {
 	if (!gd->bd) {
+		if (gd->flags & GD_FLG_SKIP_RELOC)
+			gd->start_addr_sp -= 0x40;
+
 		gd->start_addr_sp -= sizeof(bd_t);
 		gd->bd = (bd_t *)map_sysmem(gd->start_addr_sp, sizeof(bd_t));
 		memset(gd->bd, '\0', sizeof(bd_t));
@@ -535,12 +556,19 @@
 	gd->new_gd = (gd_t *)map_sysmem(gd->start_addr_sp, sizeof(gd_t));
 	debug("Reserving %zu Bytes for Global Data at: %08lx\n",
 			sizeof(gd_t), gd->start_addr_sp);
+
+	if (gd->flags & GD_FLG_SKIP_RELOC)
+		gd->start_addr_sp -= CONFIG_SYS_MALLOC_F_LEN;
+
 	return 0;
 }
 
 static int reserve_fdt(void)
 {
 #ifndef CONFIG_OF_EMBED
+	/* If relocation is disabled, lets not relocate FDT too */
+	if (gd->flags & GD_FLG_SKIP_RELOC)
+		return 0;
 	/*
 	 * If the device tree is sitting immediately above our image then we
 	 * must relocate it. If it is embedded in the data section, then it
@@ -707,6 +735,9 @@
 static int setup_reloc(void)
 {
 	if (gd->flags & GD_FLG_SKIP_RELOC) {
+		gd->relocaddr = CONFIG_SYS_TEXT_BASE;
+		gd->reloc_off = gd->relocaddr - CONFIG_SYS_TEXT_BASE;
+
 		debug("Skipping relocation due to flag\n");
 		return 0;
 	}
@@ -1030,6 +1061,10 @@
 	gd->flags = boot_flags;
 	gd->have_console = 0;
 
+#ifdef CONFIG_ARCH_IPQ807x
+	gd->flags |= GD_FLG_SKIP_RELOC;
+#endif
+
 	if (initcall_run_list(init_sequence_f))
 		hang();
 
diff --git a/common/init/board_init.c b/common/init/board_init.c
index 1c6126d..28291b1 100644
--- a/common/init/board_init.c
+++ b/common/init/board_init.c
@@ -10,6 +10,7 @@
 #include <common.h>
 
 DECLARE_GLOBAL_DATA_PTR;
+#define STACK_MARKER_LEN 32
 
 /*
  * It isn't trivial to figure out whether memcpy() exists. The arch-specific
@@ -55,5 +56,7 @@
 	gd->malloc_base = top;
 #endif
 
+	top -= STACK_MARKER_LEN;
+
 	return top;
 }
