[PATCH] ppc64: Fix issue with non zero boot cpu
The new version of the flattened device tree passes the boot cpuid in the header instead of via a linux,boot-cpu property. We need to update the in kernel OF parsing code to do this, otherwise machines with a non zero boot cpuid fail to come up. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
d6dbf42ee3
commit
1bc2a3bb86
1 changed files with 2 additions and 1 deletions
|
@ -1711,6 +1711,7 @@ static void __init flatten_device_tree(void)
|
|||
unsigned long offset = reloc_offset();
|
||||
unsigned long mem_start, mem_end, room;
|
||||
struct boot_param_header *hdr;
|
||||
struct prom_t *_prom = PTRRELOC(&prom);
|
||||
char *namep;
|
||||
u64 *rsvmap;
|
||||
|
||||
|
@ -1765,6 +1766,7 @@ static void __init flatten_device_tree(void)
|
|||
RELOC(dt_struct_end) = PAGE_ALIGN(mem_start);
|
||||
|
||||
/* Finish header */
|
||||
hdr->boot_cpuid_phys = _prom->cpu;
|
||||
hdr->magic = OF_DT_HEADER;
|
||||
hdr->totalsize = RELOC(dt_struct_end) - RELOC(dt_header_start);
|
||||
hdr->off_dt_struct = RELOC(dt_struct_start) - RELOC(dt_header_start);
|
||||
|
@ -1854,7 +1856,6 @@ static void __init prom_find_boot_cpu(void)
|
|||
|
||||
cpu_pkg = call_prom("instance-to-package", 1, 1, prom_cpu);
|
||||
|
||||
prom_setprop(cpu_pkg, "linux,boot-cpu", NULL, 0);
|
||||
prom_getprop(cpu_pkg, "reg", &getprop_rval, sizeof(getprop_rval));
|
||||
_prom->cpu = getprop_rval;
|
||||
|
||||
|
|
Reference in a new issue