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

Commit 035ca59f authored by Matt Fleming's avatar Matt Fleming
Browse files

sh: Use correct mask when comparing PMB DATA array values



Previously we were masking the PMB DATA array values with the value of
__MEMORY_START | PMB_V, which misses some PFN bits off the mask.

Signed-off-by: default avatarMatt Fleming <matt@console-pimps.org>
parent c7b03fa0
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -131,6 +131,7 @@ ENTRY(_stext)
 *	r8 = scratch register
 *	r9 = scratch register
 *	r10 = number of PMB entries we've setup
 *	r11 = scratch register
 */

	mov.l	.LMMUCR, r1	/* Flush the TLB */
@@ -167,8 +168,9 @@ ENTRY(_stext)

.Lvalidate_existing_mappings:

	mov.l	.LPMB_DATA_MASK, r11
	mov.l	@r7, r8
	and	r0, r8
	and	r11, r8
	cmp/eq	r0, r8		/* Check for valid __MEMORY_START mappings */
	bt	.Lpmb_done

@@ -341,6 +343,7 @@ ENTRY(stack_start)
#ifdef CONFIG_PMB
.LPMB_ADDR:		.long	PMB_ADDR
.LPMB_DATA:		.long	PMB_DATA
.LPMB_DATA_MASK:	.long	PMB_PFN_MASK | PMB_V
.LFIRST_ADDR_ENTRY:	.long	PAGE_OFFSET | PMB_V
.LFIRST_DATA_ENTRY:	.long	__MEMORY_START | PMB_V
.LMMUCR:		.long	MMUCR