summaryrefslogtreecommitdiff
path: root/arch/microblaze/kernel/head.S
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-10-07 16:08:40 +0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-10-07 16:08:40 +0400
commit5cad3598ea0cdb817681f74518d3213583a04f7a (patch)
tree792786bea205f6eef7274b65e1e1e63d21df511d /arch/microblaze/kernel/head.S
parent638c87a91666df1f16866badee862ce38bf31e4a (diff)
parent94fda49a948a5999699359313a2f857f9d11ff19 (diff)
downloadlinux-5cad3598ea0cdb817681f74518d3213583a04f7a.tar.xz
Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze
Pull microblaze arch updates from Michal Simek. * 'next' of git://git.monstr.eu/linux-2.6-microblaze: Revert "microblaze_mmu_v2: Update signal returning address" microblaze: Added more support for PCI microblaze: Prefer to use pr_XXX instead of printk(KERN_XX) microblaze: Fix bug with passing command line microblaze: Remove PAGE properties duplication microblaze: Remove additional andi which has been already done microblaze: Use predefined macro for ESR_DIZ microblaze: Support 4k/16k/64k pages microblaze: Do not used hardcoded value in exception handler microblaze: Added fdt chosen capability for timer microblaze: Add support for ioreadXX/iowriteXX_rep microblaze: Improve failure handling for GPIO reset microblaze: clinkage.h
Diffstat (limited to 'arch/microblaze/kernel/head.S')
-rw-r--r--arch/microblaze/kernel/head.S14
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/microblaze/kernel/head.S b/arch/microblaze/kernel/head.S
index 98b17f9f904b..eef84de5e8c8 100644
--- a/arch/microblaze/kernel/head.S
+++ b/arch/microblaze/kernel/head.S
@@ -109,20 +109,24 @@ no_fdt_arg:
#ifndef CONFIG_CMDLINE_BOOL
/*
* handling command line
- * copy command line to __init_end. There is space for storing command line.
+ * copy command line directly to cmd_line placed in data section.
*/
+ beqid r5, skip /* Skip if NULL pointer */
or r6, r0, r0 /* incremment */
- ori r4, r0, __init_end /* load address of command line */
+ ori r4, r0, cmd_line /* load address of command line */
tophys(r4,r4) /* convert to phys address */
ori r3, r0, COMMAND_LINE_SIZE - 1 /* number of loops */
_copy_command_line:
- lbu r2, r5, r6 /* r2=r5+r6 - r5 contain pointer to command line */
- sb r2, r4, r6 /* addr[r4+r6]= r2*/
+ /* r2=r5+r6 - r5 contain pointer to command line */
+ lbu r2, r5, r6
+ beqid r2, skip /* Skip if no data */
+ sb r2, r4, r6 /* addr[r4+r6]= r2*/
addik r6, r6, 1 /* increment counting */
bgtid r3, _copy_command_line /* loop for all entries */
- addik r3, r3, -1 /* descrement loop */
+ addik r3, r3, -1 /* decrement loop */
addik r5, r4, 0 /* add new space for command line */
tovirt(r5,r5)
+skip:
#endif /* CONFIG_CMDLINE_BOOL */
#ifdef NOT_COMPILE