Ver código fonte

MIPS: lantiq: Force the crossbar to big endian

Signed-off-by: John Crispin <blogic@openwrt.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/11450/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
John Crispin 9 anos atrás
pai
commit
9eb8c69e0b
1 arquivos alterados com 8 adições e 0 exclusões
  1. 8 0
      arch/mips/lantiq/xway/reset.c

+ 8 - 0
arch/mips/lantiq/xway/reset.c

@@ -40,6 +40,10 @@
 #define RCU_GFS_ADD2_XRX330	0x00AC
 #define RCU_GFS_ADD3_XRX330	0x0264
 
+/* xbar BE flag */
+#define RCU_AHB_ENDIAN          0x004C
+#define RCU_VR9_BE_AHB1S        0x00000008
+
 /* reboot bit */
 #define RCU_RD_GPHY0_XRX200	BIT(31)
 #define RCU_RD_SRST		BIT(30)
@@ -369,6 +373,10 @@ static int __init mips_reboot_setup(void)
 	    of_machine_is_compatible("lantiq,vr9"))
 		ltq_usb_init();
 
+	if (of_machine_is_compatible("lantiq,vr9"))
+		ltq_rcu_w32(ltq_rcu_r32(RCU_AHB_ENDIAN) | RCU_VR9_BE_AHB1S,
+			    RCU_AHB_ENDIAN);
+
 	_machine_restart = ltq_machine_restart;
 	_machine_halt = ltq_machine_halt;
 	pm_power_off = ltq_machine_power_off;