__setup_cpu_be problem
Benjamin Herrenschmidt
benh at kernel.crashing.org
Fri Feb 10 14:01:15 EST 2006
On Tue, 2006-02-07 at 12:37 -0800, Geoff Levand wrote:
> Arnd,
>
> It seems HID6 is a hypervisor resource... Can we just have
> '.cpu_setup = __setup_cpu_power4', and you setup your
> page sizes somewhere else?
Or better test if MSR:HV is set ? :) But yeah, he shouldn't have to set
the page sizes there anyway, I would expect the firmware to do it and
pass the right sizes via the device-tree since that's what the kernel
expects. (Though you really want LP0 to be 16M and not 1M as the kernel
can't really deal with the later properly anyway with the current page
table layouts).
> -Geoff
>
> struct cpu_spec cpu_specs[] = {
> { /* Cell Broadband Engine */
> .cpu_setup = __setup_cpu_be,
> },
>
> _GLOBAL(__setup_cpu_be)
> /* Set large page sizes LP=0: 16MB, LP=1: 64KB */
> addi r3, 0, 0
> ori r3, r3, HID6_LB
> sldi r3, r3, 32
> nor r3, r3, r3
> mfspr r4, SPRN_HID6
> and r4, r4, r3
> addi r3, 0, 0x02000
> sldi r3, r3, 32
> or r4, r4, r3
> mtspr SPRN_HID6, r4
> blr
>
> _______________________________________________
> Linuxppc64-dev mailing list
> Linuxppc64-dev at ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc64-dev
More information about the Linuxppc64-dev
mailing list