37 lines
1.1 KiB
Diff
37 lines
1.1 KiB
Diff
|
--- a/arch/mips/include/asm/mach-ralink/mt7621.h
|
||
|
+++ b/arch/mips/include/asm/mach-ralink/mt7621.h
|
||
|
@@ -13,6 +13,9 @@
|
||
|
#ifndef _MT7621_REGS_H_
|
||
|
#define _MT7621_REGS_H_
|
||
|
|
||
|
+#define MT7621_PALMBUS_BASE 0x1C000000
|
||
|
+#define MT7621_PALMBUS_SIZE 0x03FFFFFF
|
||
|
+
|
||
|
#define MT7621_SYSC_BASE 0x1E000000
|
||
|
|
||
|
#define SYSC_REG_CHIP_NAME0 0x00
|
||
|
--- a/arch/mips/ralink/mt7621.c
|
||
|
+++ b/arch/mips/ralink/mt7621.c
|
||
|
@@ -204,6 +204,21 @@ void prom_soc_init(struct ralink_soc_inf
|
||
|
mips_cm_probe();
|
||
|
mips_cpc_probe();
|
||
|
|
||
|
+ if (mips_cm_numiocu()) {
|
||
|
+ /* mips_cm_probe() wipes out bootloader
|
||
|
+ config for CM regions and we have to configure them
|
||
|
+ again. This SoC cannot talk to pamlbus devices
|
||
|
+ witout proper iocu region set up.
|
||
|
+
|
||
|
+ FIXME: it would be better to do this with values
|
||
|
+ from DT, but we need this very early because
|
||
|
+ without this we cannot talk to pretty much anything
|
||
|
+ including serial.
|
||
|
+ */
|
||
|
+ write_gcr_reg0_base(MT7621_PALMBUS_BASE);
|
||
|
+ write_gcr_reg0_mask(~MT7621_PALMBUS_SIZE | CM_GCR_REGn_MASK_CMTGT_IOCU0);
|
||
|
+ }
|
||
|
+
|
||
|
if (!register_cps_smp_ops())
|
||
|
return;
|
||
|
if (!register_cmp_smp_ops())
|