diff --git a/arch/sparc/include/asm/processor.h b/arch/sparc/include/asm/processor.h
new file mode 100644
index 0000000000000000000000000000000000000000..d3af5f521fc7e8e42d99c78c97c503ac151f1fb2
--- /dev/null
+++ b/arch/sparc/include/asm/processor.h
@@ -0,0 +1,26 @@
+/**
+ * @file arch/sparc/include/asm/processor.h
+ */
+
+#ifndef _SPARC_PROCESSOR_H_
+#define _SPARC_PROCESSOR_H_
+
+#include <asm/leon.h>
+#include <asm/io.h>
+
+#ifdef CONFIG_MPPB
+/* write/read the leon2 power down register */
+#define cpu_relax() do {					\
+		iowrite32be(0xFEE1DEAD, (void *) 0x80000018);	\
+		ioread32be((void *) 0x80000018);		\
+		} while(0);
+
+#else
+/* XXX should not assume that this is always a valid physical address
+ * (see also LEON3FT Cache Controller Power Down erratum
+ */
+#define cpu_relax() leon3_powerdown_safe(0x40000000)
+#endif
+
+#endif /* _SPARC_PROCESSOR_H_ */
+