diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2024-07-20 09:03:36 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2024-07-20 09:03:36 -0700 |
commit | d2be38b9a5514dbc7dc0c96a2a7f619fcddce00d (patch) | |
tree | 8588d09562d7171ab95b07d9c00fa18b6b691bd3 /arch/mips/kernel/smp-bmips.c | |
parent | 3c3ff7be9729959699eb6cbc7fd7303566d74069 (diff) | |
parent | bb2d63500b5c8fd1ea425caffe2d44c931fefc6b (diff) | |
download | linux-d2be38b9a5514dbc7dc0c96a2a7f619fcddce00d.tar.gz linux-d2be38b9a5514dbc7dc0c96a2a7f619fcddce00d.tar.bz2 linux-d2be38b9a5514dbc7dc0c96a2a7f619fcddce00d.zip |
Merge tag 'mips_6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
Pull MIPS updates from Thomas Bogendoerfer:
- add support for Realtek RTL9302C
- add support for Mobileye EyeQ6H
- add support for Mobileye EyeQ OLB system controller
- improve r4k clocksource
- add mode for emulating ieee754 NAN2008
- rework for BMIPS CBR address handling
- fixes for Loongson 2K1000
- defconfig updates
- cleanups and fixes
* tag 'mips_6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (58 commits)
MIPS: config: Add ip30_defconfig
MIPS: config: lemote2f: Regenerate defconfig
MIPS: config: generic: Add board-litex
MIPS: config: Enable MSA and virtualization for MIPS64R6
MIPS: Fix fallback march for SB1
mips: dts: realtek: Add RTL9302C board
mips: generic: add fdt fixup for Realtek reference board
mips: select REALTEK_OTTO_TIMER for Realtek platforms
dt-bindings: interrupt-controller: realtek,rtl-intc: Add rtl9300-intc
dt-bindings: mips: realtek: Add rtl930x-soc compatible
dt-bindings: vendor-prefixes: Add Cameo Communications
mips: dts: realtek: add device_type property to cpu node
mips: dts: realtek: use "serial" instead of "uart" in node name
MIPS: Implement ieee754 NAN2008 emulation mode
MIPS: lantiq: improve USB initialization
MIPS: GIC: Generate redirect block accessors
MIPS: CPS: Add a couple of multi-cluster utility functions
MIPS: Octeron: remove source file executable bit
MAINTAINERS: Mobileye: add OLB drivers and dt-bindings
MIPS: mobileye: eyeq5: add OLB system-controller node
...
Diffstat (limited to 'arch/mips/kernel/smp-bmips.c')
-rw-r--r-- | arch/mips/kernel/smp-bmips.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/arch/mips/kernel/smp-bmips.c b/arch/mips/kernel/smp-bmips.c index b3dbf9ecb0d6..35b8d810833c 100644 --- a/arch/mips/kernel/smp-bmips.c +++ b/arch/mips/kernel/smp-bmips.c @@ -518,7 +518,7 @@ static void bmips_set_reset_vec(int cpu, u32 val) info.val = val; bmips_set_reset_vec_remote(&info); } else { - void __iomem *cbr = BMIPS_GET_CBR(); + void __iomem *cbr = bmips_cbr_addr; if (cpu == 0) __raw_writel(val, cbr + BMIPS_RELO_VECTOR_CONTROL_0); @@ -591,7 +591,8 @@ asmlinkage void __weak plat_wired_tlb_setup(void) void bmips_cpu_setup(void) { - void __iomem __maybe_unused *cbr = BMIPS_GET_CBR(); + void __iomem __maybe_unused *cbr = bmips_cbr_addr; + u32 __maybe_unused rac_addr; u32 __maybe_unused cfg; switch (current_cpu_type()) { @@ -620,6 +621,23 @@ void bmips_cpu_setup(void) __raw_readl(cbr + BMIPS_RAC_ADDRESS_RANGE); break; + case CPU_BMIPS4350: + rac_addr = BMIPS_RAC_CONFIG_1; + + if (!(read_c0_brcm_cmt_local() & (1 << 31))) + rac_addr = BMIPS_RAC_CONFIG; + + /* Enable data RAC */ + cfg = __raw_readl(cbr + rac_addr); + __raw_writel(cfg | 0xf, cbr + rac_addr); + __raw_readl(cbr + rac_addr); + + /* Flush stale data out of the readahead cache */ + cfg = __raw_readl(cbr + BMIPS_RAC_CONFIG); + __raw_writel(cfg | 0x100, cbr + BMIPS_RAC_CONFIG); + __raw_readl(cbr + BMIPS_RAC_CONFIG); + break; + case CPU_BMIPS4380: /* CBG workaround for early BMIPS4380 CPUs */ switch (read_c0_prid()) { |