Index: boot/arch/mips32/src/asm.S
===================================================================
--- boot/arch/mips32/src/asm.S	(revision 63a045c41ff533abb66be65fc068415be77ad7df)
+++ boot/arch/mips32/src/asm.S	(revision 3e828ea40985ce126affd5d7faa6ba679802b4db)
@@ -36,4 +36,15 @@
 .section BOOTSTRAP
 
+/*
+ * Registers on entry:
+ *
+ *   a0: kernel argument count (kargc)
+ *   a1: kernel argument vector (kargv) of kargc elements
+ *   a2: unused here (kenvp on Malta)
+ *   a3: RAM size on Malta
+ *
+ * This is the case on Malta.
+ * msim clears these registers, so it is de facto correct as well.
+ */
 SYMBOL(start)
 	/*
@@ -43,8 +54,8 @@
 	 *  - Disable 64-bit user addressing mode
 	 */
-	mfc0 $a0, $status
-	la $a1, 0xffffff1f
-	and $a0, $a1, $a0
-	mtc0 $a0, $status
+	mfc0 $t0, $status
+	la $t1, 0xffffff1f
+	and $t0, $t1, $t0
+	mtc0 $t0, $status
 
 #if defined(MACHINE_lmalta) || defined(MACHINE_bmalta)
@@ -52,6 +63,6 @@
 	 * Remember the size of the SDRAM in bootinfo.
 	 */
-	la $a0, PA2KA(BOOTINFO_OFFSET)
-	sw $a3, 0($a0)
+	la $t0, PA2KA(BOOTINFO_OFFSET)
+	sw $a3, 0($t0)
 #endif
 
@@ -61,47 +72,47 @@
 	 * but it not an issue).
 	 */
-	la $a0, PA2KA(CPUMAP_OFFSET)
+	la $t0, PA2KA(CPUMAP_OFFSET)
 
-	sw $zero, 0($a0)
-	sw $zero, 4($a0)
-	sw $zero, 8($a0)
-	sw $zero, 12($a0)
+	sw $zero, 0($t0)
+	sw $zero, 4($t0)
+	sw $zero, 8($t0)
+	sw $zero, 12($t0)
 
-	sw $zero, 16($a0)
-	sw $zero, 20($a0)
-	sw $zero, 24($a0)
-	sw $zero, 28($a0)
+	sw $zero, 16($t0)
+	sw $zero, 20($t0)
+	sw $zero, 24($t0)
+	sw $zero, 28($t0)
 
-	sw $zero, 32($a0)
-	sw $zero, 36($a0)
-	sw $zero, 40($a0)
-	sw $zero, 44($a0)
+	sw $zero, 32($t0)
+	sw $zero, 36($t0)
+	sw $zero, 40($t0)
+	sw $zero, 44($t0)
 
-	sw $zero, 48($a0)
-	sw $zero, 52($a0)
-	sw $zero, 56($a0)
-	sw $zero, 60($a0)
+	sw $zero, 48($t0)
+	sw $zero, 52($t0)
+	sw $zero, 56($t0)
+	sw $zero, 60($t0)
 
-	sw $zero, 64($a0)
-	sw $zero, 68($a0)
-	sw $zero, 72($a0)
-	sw $zero, 76($a0)
+	sw $zero, 64($t0)
+	sw $zero, 68($t0)
+	sw $zero, 72($t0)
+	sw $zero, 76($t0)
 
-	sw $zero, 80($a0)
-	sw $zero, 84($a0)
-	sw $zero, 88($a0)
-	sw $zero, 92($a0)
+	sw $zero, 80($t0)
+	sw $zero, 84($t0)
+	sw $zero, 88($t0)
+	sw $zero, 92($t0)
 
-	sw $zero, 96($a0)
-	sw $zero, 100($a0)
-	sw $zero, 104($a0)
-	sw $zero, 108($a0)
+	sw $zero, 96($t0)
+	sw $zero, 100($t0)
+	sw $zero, 104($t0)
+	sw $zero, 108($t0)
 
-	sw $zero, 112($a0)
-	sw $zero, 116($a0)
-	sw $zero, 120($a0)
-	sw $zero, 124($a0)
+	sw $zero, 112($t0)
+	sw $zero, 116($t0)
+	sw $zero, 120($t0)
+	sw $zero, 124($t0)
 
-	lui $a1, 1
+	lui $t1, 1
 
 #ifdef MACHINE_msim
@@ -119,7 +130,7 @@
 
 	/* Record CPU presence */
-	sll $a2, $k1, 2
-	addu $a2, $a2, $a0
-	sw $a1, ($a2)
+	sll $t2, $k1, 2
+	addu $t2, $t2, $t0
+	sw $t1, ($t2)
 
 	loop:
@@ -131,9 +142,10 @@
 	bsp:
 		/* Record CPU presence */
-		sw $a1, ($a0)
+		sw $t1, ($t0)
 
 		/* Setup initial stack */
 		la $sp, PA2KA(STACK_OFFSET)
 
+		/* a0=kargc, a1=kargv */
 		j bootstrap
 		nop
