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

Commit 7c732cba authored by Kevin Hao's avatar Kevin Hao Committed by Scott Wood
Browse files

powerpc/fsl_booke: protect the access to MAS7



The e500v1 doesn't implement the MAS7, so we should avoid to access
this register on that implementations. In the current kernel, the
access to MAS7 are protected by either CONFIG_PHYS_64BIT or
MMU_FTR_BIG_PHYS. Since some code are executed before the code
patching, we have to use CONFIG_PHYS_64BIT in these cases.

Signed-off-by: default avatarKevin Hao <haokexin@gmail.com>
Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
parent d2dc13b5
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -82,7 +82,9 @@ _ENTRY(_start);
	and	r19,r3,r18		/* r19 = page offset */
	and	r19,r3,r18		/* r19 = page offset */
	andc	r31,r20,r18		/* r31 = page base */
	andc	r31,r20,r18		/* r31 = page base */
	or	r31,r31,r19		/* r31 = devtree phys addr */
	or	r31,r31,r19		/* r31 = devtree phys addr */
#ifdef CONFIG_PHYS_64BIT
	mfspr	r30,SPRN_MAS7
	mfspr	r30,SPRN_MAS7
#endif


	li	r25,0			/* phys kernel start (low) */
	li	r25,0			/* phys kernel start (low) */
	li	r24,0			/* CPU number */
	li	r24,0			/* CPU number */
+2 −1
Original line number Original line Diff line number Diff line
@@ -103,6 +103,7 @@ void book3e_hugetlb_preload(struct vm_area_struct *vma, unsigned long ea,
	if (mmu_has_feature(MMU_FTR_USE_PAIRED_MAS)) {
	if (mmu_has_feature(MMU_FTR_USE_PAIRED_MAS)) {
		mtspr(SPRN_MAS7_MAS3, mas7_3);
		mtspr(SPRN_MAS7_MAS3, mas7_3);
	} else {
	} else {
		if (mmu_has_feature(MMU_FTR_BIG_PHYS))
			mtspr(SPRN_MAS7, upper_32_bits(mas7_3));
			mtspr(SPRN_MAS7, upper_32_bits(mas7_3));
		mtspr(SPRN_MAS3, lower_32_bits(mas7_3));
		mtspr(SPRN_MAS3, lower_32_bits(mas7_3));
	}
	}