Hi All, Thanks a lot for your effort to solve the boot problems. Unfortunately, this patch doesn't work for the Nemo board. I need the patch created by Olof Johansson. diff -rupN linux-3.13/arch/powerpc/kernel/head_64.S linux-3.13-nemo/arch/powerpc/kernel/head_64.S --- linux-3.13/arch/powerpc/kernel/head_64.S 2014-01-05 00:12:14.000000000 +0100 +++ linux-3.13-nemo/arch/powerpc/kernel/head_64.S 2014-01-05 23:06:13.001618802 +0100 @@ -69,6 +69,13 @@ _GLOBAL(__start) /* NOP this out unconditionally */ BEGIN_FTR_SECTION FIXUP_ENDIAN +/* Hack for PWRficient platforms: Due to CFE(?) bug, the 64-bit + * word at 0x8 needs to be set to 0. Patch it up here once we're + * done executing it (we can be lazy and avoid invalidating + * icache) + */ +li r0,0 +std 0,8(0) b .__start_initialization_multiplatform END_FTR_SECTION(0, 1) Is it possible to integrate Olof's patch into the kernel sources? All the best, Christian Am 15.01.14 21:01, schrieb Christian Zigotzky: > author Linus Torvalds 2014-01-13 > 03:59:05 (GMT) > committer Linus Torvalds 2014-01-13 > 03:59:05 (GMT) > commit a6da83f98267bc8ee4e34aa899169991eb0ceb93 > > (patch > ) > > tree 84c228e0a87475dbdb0f72621c137cce8253131b > > > parent 061f49ec2d722f485237870f04544d8bec15a778 > > (diff > ) > > parent 10348f5976830e5d8f74e8abb04a9a057a5e8478 > > (diff > ) > > > Merge branch 'merge' of > git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc > Pull powerpc fix from Ben Herrenschmidt: "Here's one regression fix > for 3.13 that I would appreciate if you could still pull in. It was an > "interesting" one to debug, basically it's an old bug that got > somewhat "exposed" by new code breaking the boot on PA Semi boards > (yes, it does appear that some people are still using these!)" * > 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: > powerpc: Check return value of instance-to-package OF call > Diffstat > > -rw-r--r-- arch/powerpc/kernel/prom_init.c > > 22 > > > > > 1 files changed, 13 insertions, 9 deletions > diff --git a/arch/powerpc/kernel/prom_init.c > b/arch/powerpc/kernel/prom_init.c > index cb64a6e..078145a 100644 > --- a/arch/powerpc/kernel/prom_init.c > > +++ b/arch/powerpc/kernel/prom_init.c > > @@ -1986,19 +1986,23 @@ static void __init prom_init_stdout(void) > /* Get the full OF pathname of the stdout device */ > memset(path, 0, 256); > call_prom("instance-to-path", 3, 1, prom.stdout, path, 255); > - stdout_node = call_prom("instance-to-package", 1, 1, prom.stdout); > - val = cpu_to_be32(stdout_node); > - prom_setprop(prom.chosen, "/chosen", "linux,stdout-package", > - &val, sizeof(val)); > prom_printf("OF stdout device is: %s\n", of_stdout_device); > prom_setprop(prom.chosen, "/chosen", "linux,stdout-path", > path, strlen(path) + 1); > - /* If it's a display, note it */ > - memset(type, 0, sizeof(type)); > - prom_getprop(stdout_node, "device_type", type, sizeof(type)); > - if (strcmp(type, "display") == 0) > - prom_setprop(stdout_node, path, "linux,boot-display", NULL, 0); > + /* instance-to-package fails on PA-Semi */ > + stdout_node = call_prom("instance-to-package", 1, 1, prom.stdout); > + if (stdout_node != PROM_ERROR) { > + val = cpu_to_be32(stdout_node); > + prom_setprop(prom.chosen, "/chosen", "linux,stdout-package", > + &val, sizeof(val)); > + > + /* If it's a display, note it */ > + memset(type, 0, sizeof(type)); > + prom_getprop(stdout_node, "device_type", type, sizeof(type)); > + if (strcmp(type, "display") == 0) > + prom_setprop(stdout_node, path, "linux,boot-display", NULL, 0); > + } > } > static int __init prom_find_machine_type(void) >