Commit d96b8153 authored by David S. Miller's avatar David S. Miller
Browse files

[SPARC64]: Add sun4v case to __GET_CPUID() patch tables.

parent e1c21c4f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -520,6 +520,9 @@ static void __init per_cpu_patch(void)
			else
				insns = &p->cheetah_safari[0];
			break;
		case hypervisor:
			insns = &p->sun4v[0];
			break;
		default:
			prom_printf("Unknown cpu type, halting.\n");
			prom_halt();
+8 −0
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ struct cpuid_patch_entry {
	unsigned int	cheetah_safari[4];
	unsigned int	cheetah_jbus[4];
	unsigned int	starfire[4];
	unsigned int	sun4v[4];
};
extern struct cpuid_patch_entry __cpuid_patch, __cpuid_patch_end;
#endif
@@ -79,6 +80,8 @@ extern struct cpuid_patch_entry __cpuid_patch, __cpuid_patch_end;

#define TRAP_BLOCK_SZ_SHIFT	6

#include <asm/scratchpad.h>

#ifdef CONFIG_SMP

#define __GET_CPUID(REG)				\
@@ -105,6 +108,11 @@ extern struct cpuid_patch_entry __cpuid_patch, __cpuid_patch_end;
	sllx		REG, 9, REG;			\
	or		REG, 0xd0, REG;			\
	lduwa		[REG] ASI_PHYS_BYPASS_EC_E, REG;\
	/* sun4v implementation. */			\
	mov		SCRATCHPAD_CPUID, REG;		\
	nop;						\
	ldxa		[REG] ASI_SCRATCHPAD, REG;	\
	nop;						\
	.previous;

/* Clobbers TMP, current address space PGD phys address into DEST.  */