Skip to content

Commit

Permalink
powerpc/ps3: Fix system hang with GCC 5 builds
Browse files Browse the repository at this point in the history
[ Upstream commit 6dff5b6 ]

GCC 5 generates different code for this bootwrapper null check that
causes the PS3 to hang very early in its bootup. This check is of
limited value, so just get rid of it.

Cc: [email protected]
Signed-off-by: Geoff Levand <[email protected]>
Signed-off-by: Michael Ellerman <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
  • Loading branch information
glevand authored and Sasha Levin committed Jan 15, 2017
1 parent f7face1 commit 28d39c2
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 12 deletions.
5 changes: 0 additions & 5 deletions arch/powerpc/boot/ps3-head.S
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,6 @@ __system_reset_overlay:
bctr

1:
/* Save the value at addr zero for a null pointer write check later. */

li r4, 0
lwz r3, 0(r4)

/* Primary delays then goes to _zimage_start in wrapper. */

or 31, 31, 31 /* db16cyc */
Expand Down
8 changes: 1 addition & 7 deletions arch/powerpc/boot/ps3.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,13 +119,12 @@ void ps3_copy_vectors(void)
flush_cache((void *)0x100, 512);
}

void platform_init(unsigned long null_check)
void platform_init(void)
{
const u32 heapsize = 0x1000000 - (u32)_end; /* 16MiB */
void *chosen;
unsigned long ft_addr;
u64 rm_size;
unsigned long val;

console_ops.write = ps3_console_write;
platform_ops.exit = ps3_exit;
Expand Down Expand Up @@ -153,11 +152,6 @@ void platform_init(unsigned long null_check)

printf(" flat tree at 0x%lx\n\r", ft_addr);

val = *(unsigned long *)0;

if (val != null_check)
printf("null check failed: %lx != %lx\n\r", val, null_check);

((kernel_entry_t)0)(ft_addr, 0, NULL);

ps3_exit();
Expand Down

0 comments on commit 28d39c2

Please sign in to comment.