__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