summaryrefslogtreecommitdiff
path: root/arch/powerpc/cpu/mpc85xx/start.S
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2014-04-11 17:09:45 +0200
committerYork Sun <yorksun@freescale.com>2014-04-22 17:58:45 -0700
commitfa08d39517773882b07965ca4330777c6d6697ae (patch)
treecb16ee896b29f9d9cc72abfef804a375291f178c /arch/powerpc/cpu/mpc85xx/start.S
parentfd96ea4dd9a22ee380f1c59939a42744aa196ad0 (diff)
downloadu-boot-imx-fa08d39517773882b07965ca4330777c6d6697ae.zip
u-boot-imx-fa08d39517773882b07965ca4330777c6d6697ae.tar.gz
u-boot-imx-fa08d39517773882b07965ca4330777c6d6697ae.tar.bz2
PPC 85xx: Add qemu-ppce500 machine
For KVM we have a special PV machine type called "ppce500". This machine is inspired by the MPC8544DS board, but implements a lot less features than that one. It also provides more PCI slots and is supposed to be enumerated by device tree only. This patch adds support for the generic ppce500 machine and tries to rely solely on device tree for device enumeration. Signed-off-by: Alexander Graf <agraf@suse.de> Acked-by: Scott Wood <scottwood@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
Diffstat (limited to 'arch/powerpc/cpu/mpc85xx/start.S')
-rw-r--r--arch/powerpc/cpu/mpc85xx/start.S11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/powerpc/cpu/mpc85xx/start.S b/arch/powerpc/cpu/mpc85xx/start.S
index 691bd3a..6b0380f 100644
--- a/arch/powerpc/cpu/mpc85xx/start.S
+++ b/arch/powerpc/cpu/mpc85xx/start.S
@@ -78,6 +78,13 @@ _start_e500:
li r1,MSR_DE
mtmsr r1
+ /*
+ * If we got an ePAPR device tree pointer passed in as r3, we need that
+ * later in cpu_init_early_f(). Save it to a safe register before we
+ * clobber it so that we can fetch it from there later.
+ */
+ mr r24, r3
+
#ifdef CONFIG_SYS_FSL_ERRATUM_A004510
mfspr r3,SPRN_SVR
rlwinm r3,r3,0,0xff
@@ -1142,6 +1149,10 @@ _start_cont:
mr r1,r3 /* Transfer to SP(r1) */
GET_GOT
+
+ /* Pass our potential ePAPR device tree pointer to cpu_init_early_f */
+ mr r3, r24
+
bl cpu_init_early_f
/* switch back to AS = 0 */