On Friday 23 January 2015 22:39:55 Pali Rohár wrote: > Hello, > > when I boot zImage with appended DT n900 in qemu > fdt_open_into() function called from file > arch/arm/boot/compressed/atags_to_fdt.c (in function > atags_to_fdt) always returns -FDT_ERR_NOSPACE. > > It means that all ATAGS (including cmdline arguments) passed > by bootloader are ignored. > > On real n900 device I see that booted DT version also ignore > cmdline arguments from bootloader. I cannot debug decompress > code on real device, but I think it is same problem as in > qemu.
Looks like this quick patch is fixing above problem:
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 68be901..4a7d75b 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -268,7 +268,7 @@ restart: adr r0, LC0
* area. No GOT fixup has occurred yet, but none of the
* code we're about to call uses any global variable.
*/
- add sp, sp, #0x10000
+ add sp, sp, #0x20000
stmfd sp!, {r0-r3, ip, lr}
mov r0, r8
mov r1, r6
@@ -289,7 +289,7 @@ restart: adr r0, LC0
bleq atags_to_fdt
ldmfd sp!, {r0-r3, ip, lr}
- sub sp, sp, #0x10000
+ sub sp, sp, #0x20000
#endif
mov r8, r6 @ use the appended device tree
--
Pali Rohár
[email protected]
signature.asc
Description: This is a digitally signed message part.

