]> www.infradead.org Git - users/jedix/linux-maple.git/commit
MIPS: Allow using more than 32-bit addresses for reset vectors when possible
authorGregory CLEMENT <gregory.clement@bootlin.com>
Fri, 11 Oct 2024 13:34:08 +0000 (15:34 +0200)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Wed, 30 Oct 2024 22:45:48 +0000 (23:45 +0100)
commit6f14293257309a02a6d451e80e4ef1d78560479e
treee264da4888750425fbe3e99e894e6366138e957e
parentda09935975c8f8c90d6f57be2422dee5557206cd
MIPS: Allow using more than 32-bit addresses for reset vectors when possible

While most MIPS64 CPUs use 32-bit values for their VP Local Reset
Exception Base registers, some I6500 CPUs can utilize a 64-bit value,
allowing addressing up to 47 bits of physical memory.

For the EyeQ6H CPU, where physical memory addresses exceed the 4GB
limit, utilizing this feature is mandatory to enable SMP support.

Unfortunately, there is no way to detect this capability based solely
on the ID of the CPU. According to Imagination, which designed the
CPU, the only reliable method is to fill the reset base field with
0xFF and then read back its value. If the upper part of the read-back
value is zero, it indicates that the address space is limited to 32
bits.

Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
arch/mips/include/asm/mips-cm.h
arch/mips/kernel/smp-cps.c