3.1 --- a/stage2/entry.S Tue Apr 26 18:02:51 2016 +0200
3.2 +++ b/stage2/entry.S Wed May 04 16:59:15 2016 +0200
3.3 @@ -17,6 +17,9 @@
3.4 * along with this program. If not, see <http://www.gnu.org/licenses/>.
3.5 */
3.6
3.7 +#include "mips.h"
3.8 +#include "paging.h"
3.9 +
3.10 .text
3.11 .extern interrupt_handler
3.12 .extern current_registers
3.13 @@ -27,12 +30,10 @@
3.14 .globl _end_entries
3.15 .set noreorder
3.16
3.17 -#include "paging.h"
3.18 -
3.19 _tlb_entry:
3.20 /* Get the bad address. */
3.21
3.22 - mfc0 $k0, $10 /* CP0_ENTRYHI */
3.23 + mfc0 $k0, CP0_ENTRYHI
3.24 nop
3.25 andi $k1, $k0, 0xff /* ASID */
3.26
3.27 @@ -49,18 +50,18 @@
3.28 li $k1, page_table_start /* page_table */
3.29 addu $k1, $k0, $k1 /* page_table[ASID] */
3.30
3.31 - mfc0 $k0, $4 /* CP0_CONTEXT */
3.32 + mfc0 $k0, CP0_CONTEXT
3.33 nop
3.34 srl $k0, $k0, 1 /* use 8 byte - not 16 byte - entries */
3.35 addu $k0, $k0, $k1 /* page_table[ASID][entry] */
3.36
3.37 lw $k1, 0($k0) /* page_table[ASID][entry][0] */
3.38 - mtc0 $k1, $2 /* CP0_ENTRYLO0 */
3.39 + mtc0 $k1, CP0_ENTRYLO0
3.40
3.41 lw $k1, 4($k0) /* page_table[ASID][entry][1] */
3.42 - mtc0 $k1, $3 /* CP0_ENTRYLO1 */
3.43 + mtc0 $k1, CP0_ENTRYLO1
3.44 /* page size is 4KB */
3.45 - mtc0 $zero, $5 /* CP0_PAGEMASK */
3.46 + mtc0 $zero, CP0_PAGEMASK
3.47 nop
3.48
3.49 tlbwr
3.50 @@ -77,11 +78,11 @@
3.51 srl $k0, $k0, 6 /* PFN (maintain 8KB resolution, bit 6 remaining zero) */
3.52 ori $k0, $k0, 0x1e /* flags */
3.53
3.54 - mtc0 $k0, $2 /* CP0_ENTRYLO0 */
3.55 + mtc0 $k0, CP0_ENTRYLO0
3.56 ori $k0, $k0, 0x40 /* page size is 4KB (bit 6 set) */
3.57 - mtc0 $k0, $3 /* CP0_ENTRYLO1 */
3.58 + mtc0 $k0, CP0_ENTRYLO1
3.59 nop /* page size is 4KB */
3.60 - mtc0 $zero, $5 /* CP0_PAGEMASK */
3.61 + mtc0 $zero, CP0_PAGEMASK
3.62 nop
3.63
3.64 tlbwr
3.65 @@ -93,7 +94,7 @@
3.66 _exc_entry:
3.67 /* Handle TLB refill exceptions. */
3.68
3.69 - mfc0 $k0, $13 /* CP0_CAUSE */
3.70 + mfc0 $k0, CP0_CAUSE
3.71 li $k1, 0x0000007c
3.72 and $k0, $k0, $k1 /* ExcCode << 2 */
3.73 srl $k0, $k0, 2 /* ExcCode */
3.74 @@ -109,7 +110,7 @@
3.75 _irq_entry:
3.76 /* Set the ASID. */
3.77
3.78 - mtc0 $zero, $10 /* CP0_ENTRYHI */
3.79 + mtc0 $zero, CP0_ENTRYHI
3.80 nop
3.81
3.82 /* Obtain the kernel global offset table. */
4.1 --- a/stage2/handlers.S Tue Apr 26 18:02:51 2016 +0200
4.2 +++ b/stage2/handlers.S Wed May 04 16:59:15 2016 +0200
4.3 @@ -18,6 +18,8 @@
4.4 * along with this program. If not, see <http://www.gnu.org/licenses/>.
4.5 */
4.6
4.7 +#include "mips.h"
4.8 +
4.9 .text
4.10 .extern irq_handle
4.11 .extern current_registers
4.12 @@ -49,7 +51,7 @@
4.13
4.14 la $k0, current_task
4.15 lw $k1, 0($k0)
4.16 - mtc0 $k1, $10 /* CP0_ENTRYHI */
4.17 + mtc0 $k1, CP0_ENTRYHI
4.18 nop
4.19
4.20 /* Obtain the current task's registers. */
4.21 @@ -92,7 +94,7 @@
4.22
4.23 sw $fp, 108($k1)
4.24
4.25 - mfc0 $k0, $14 /* CP0_EPC */
4.26 + mfc0 $k0, CP0_EPC
4.27 nop
4.28 sw $k0, 116($k1)
4.29
4.30 @@ -140,7 +142,7 @@
4.31 lw $ra, 112($k1)
4.32
4.33 lw $k0, 116($k1)
4.34 - mtc0 $k0, $14 /* CP0_EPC */
4.35 + mtc0 $k0, CP0_EPC
4.36 nop
4.37
4.38 lw $k0, 120($k1)
5.1 --- a/stage2/head2.S Tue Apr 26 18:02:51 2016 +0200
5.2 +++ b/stage2/head2.S Wed May 04 16:59:15 2016 +0200
5.3 @@ -20,6 +20,7 @@
5.4 * along with this program. If not, see <http://www.gnu.org/licenses/>.
5.5 */
5.6
5.7 +#include "mips.h"
5.8 #include "sdram.h"
5.9
5.10 .text
5.11 @@ -99,7 +100,7 @@
5.12 /* Enable caching. */
5.13
5.14 li $t0, CONFIG_CM_CACHABLE_NONCOHERENT
5.15 - mtc0 $t0, $16 /* CP0_CONFIG */
5.16 + mtc0 $t0, CP0_CONFIG
5.17 nop
5.18
5.19 /* Start the program. */