| .. | .. |
|---|
| 34 | 34 | #define REG_BCM6328_OTP ((void __iomem *)CKSEG1ADDR(0x1000062c)) |
|---|
| 35 | 35 | #define BCM6328_TP1_DISABLED BIT(9) |
|---|
| 36 | 36 | |
|---|
| 37 | +extern bool bmips_rac_flush_disable; |
|---|
| 38 | + |
|---|
| 37 | 39 | static const unsigned long kbase = VMLINUX_LOAD_ADDRESS & 0xfff00000; |
|---|
| 38 | 40 | |
|---|
| 39 | 41 | struct bmips_quirk { |
|---|
| .. | .. |
|---|
| 103 | 105 | * disable SMP for now |
|---|
| 104 | 106 | */ |
|---|
| 105 | 107 | bmips_smp_enabled = 0; |
|---|
| 108 | + |
|---|
| 109 | + /* |
|---|
| 110 | + * RAC flush causes kernel panics on BCM6358 when booting from TP1 |
|---|
| 111 | + * because the bootloader is not initializing it properly. |
|---|
| 112 | + */ |
|---|
| 113 | + bmips_rac_flush_disable = !!(read_c0_brcm_cmt_local() & (1 << 31)); |
|---|
| 106 | 114 | } |
|---|
| 107 | 115 | |
|---|
| 108 | 116 | static void bcm6368_quirks(void) |
|---|