|
@@ -379,11 +379,23 @@ invalidate_bats:
|
|
|
mtspr IBAT1U, r0
|
|
|
mtspr IBAT2U, r0
|
|
|
mtspr IBAT3U, r0
|
|
|
+#ifdef CONFIG_750FX
|
|
|
+ mtspr IBAT4U, r0
|
|
|
+ mtspr IBAT5U, r0
|
|
|
+ mtspr IBAT6U, r0
|
|
|
+ mtspr IBAT7U, r0
|
|
|
+#endif
|
|
|
isync
|
|
|
mtspr DBAT0U, r0
|
|
|
mtspr DBAT1U, r0
|
|
|
mtspr DBAT2U, r0
|
|
|
mtspr DBAT3U, r0
|
|
|
+#ifdef CONFIG_750FX
|
|
|
+ mtspr DBAT4U, r0
|
|
|
+ mtspr DBAT5U, r0
|
|
|
+ mtspr DBAT6U, r0
|
|
|
+ mtspr DBAT7U, r0
|
|
|
+#endif
|
|
|
isync
|
|
|
sync
|
|
|
blr
|
|
@@ -465,6 +477,80 @@ setup_bats:
|
|
|
mtspr DBAT3U, r3
|
|
|
isync
|
|
|
|
|
|
+#ifdef CONFIG_750FX
|
|
|
+ /* IBAT 4 */
|
|
|
+ addis r4, r0, CFG_IBAT4L@h
|
|
|
+ ori r4, r4, CFG_IBAT4L@l
|
|
|
+ addis r3, r0, CFG_IBAT4U@h
|
|
|
+ ori r3, r3, CFG_IBAT4U@l
|
|
|
+ mtspr IBAT4L, r4
|
|
|
+ mtspr IBAT4U, r3
|
|
|
+ isync
|
|
|
+
|
|
|
+ /* DBAT 4 */
|
|
|
+ addis r4, r0, CFG_DBAT4L@h
|
|
|
+ ori r4, r4, CFG_DBAT4L@l
|
|
|
+ addis r3, r0, CFG_DBAT4U@h
|
|
|
+ ori r3, r3, CFG_DBAT4U@l
|
|
|
+ mtspr DBAT4L, r4
|
|
|
+ mtspr DBAT4U, r3
|
|
|
+ isync
|
|
|
+
|
|
|
+ /* IBAT 5 */
|
|
|
+ addis r4, r0, CFG_IBAT5L@h
|
|
|
+ ori r4, r4, CFG_IBAT5L@l
|
|
|
+ addis r3, r0, CFG_IBAT5U@h
|
|
|
+ ori r3, r3, CFG_IBAT5U@l
|
|
|
+ mtspr IBAT5L, r4
|
|
|
+ mtspr IBAT5U, r3
|
|
|
+ isync
|
|
|
+
|
|
|
+ /* DBAT 5 */
|
|
|
+ addis r4, r0, CFG_DBAT5L@h
|
|
|
+ ori r4, r4, CFG_DBAT5L@l
|
|
|
+ addis r3, r0, CFG_DBAT5U@h
|
|
|
+ ori r3, r3, CFG_DBAT5U@l
|
|
|
+ mtspr DBAT5L, r4
|
|
|
+ mtspr DBAT5U, r3
|
|
|
+ isync
|
|
|
+
|
|
|
+ /* IBAT 6 */
|
|
|
+ addis r4, r0, CFG_IBAT6L@h
|
|
|
+ ori r4, r4, CFG_IBAT6L@l
|
|
|
+ addis r3, r0, CFG_IBAT6U@h
|
|
|
+ ori r3, r3, CFG_IBAT6U@l
|
|
|
+ mtspr IBAT6L, r4
|
|
|
+ mtspr IBAT6U, r3
|
|
|
+ isync
|
|
|
+
|
|
|
+ /* DBAT 6 */
|
|
|
+ addis r4, r0, CFG_DBAT6L@h
|
|
|
+ ori r4, r4, CFG_DBAT6L@l
|
|
|
+ addis r3, r0, CFG_DBAT6U@h
|
|
|
+ ori r3, r3, CFG_DBAT6U@l
|
|
|
+ mtspr DBAT6L, r4
|
|
|
+ mtspr DBAT6U, r3
|
|
|
+ isync
|
|
|
+
|
|
|
+ /* IBAT 7 */
|
|
|
+ addis r4, r0, CFG_IBAT7L@h
|
|
|
+ ori r4, r4, CFG_IBAT7L@l
|
|
|
+ addis r3, r0, CFG_IBAT7U@h
|
|
|
+ ori r3, r3, CFG_IBAT7U@l
|
|
|
+ mtspr IBAT7L, r4
|
|
|
+ mtspr IBAT7U, r3
|
|
|
+ isync
|
|
|
+
|
|
|
+ /* DBAT 7 */
|
|
|
+ addis r4, r0, CFG_DBAT7L@h
|
|
|
+ ori r4, r4, CFG_DBAT7L@l
|
|
|
+ addis r3, r0, CFG_DBAT7U@h
|
|
|
+ ori r3, r3, CFG_DBAT7U@l
|
|
|
+ mtspr DBAT7L, r4
|
|
|
+ mtspr DBAT7U, r3
|
|
|
+ isync
|
|
|
+#endif
|
|
|
+
|
|
|
/* bats are done, now invalidate the TLBs */
|
|
|
|
|
|
addis r3, 0, 0x0000
|