diff options
Diffstat (limited to 'recipes-kernel/linux/linux-xlnx/microblaze_Do_not_use_r6_in_head.S.patch')
-rw-r--r-- | recipes-kernel/linux/linux-xlnx/microblaze_Do_not_use_r6_in_head.S.patch | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-xlnx/microblaze_Do_not_use_r6_in_head.S.patch b/recipes-kernel/linux/linux-xlnx/microblaze_Do_not_use_r6_in_head.S.patch new file mode 100644 index 00000000..abed47cc --- /dev/null +++ b/recipes-kernel/linux/linux-xlnx/microblaze_Do_not_use_r6_in_head.S.patch | |||
@@ -0,0 +1,69 @@ | |||
1 | From: Michal Simek <michal.simek@xilinx.com> | ||
2 | Subject: [LINUX PATCH 1/3] microblaze: Do not use r6 in head.S | ||
3 | |||
4 | r6 stores pointer to ramdisk and shouldn't | ||
5 | be used before it is passed to machine_early_init. | ||
6 | |||
7 | Signed-off-by: Michal Simek <michal.simek@xilinx.com> | ||
8 | --- | ||
9 | arch/microblaze/kernel/head.S | 20 ++++++++++---------- | ||
10 | 1 file changed, 10 insertions(+), 10 deletions(-) | ||
11 | |||
12 | diff --git a/arch/microblaze/kernel/head.S b/arch/microblaze/kernel/head.S | ||
13 | index eef84de..a8ce682 100644 | ||
14 | --- a/arch/microblaze/kernel/head.S | ||
15 | +++ b/arch/microblaze/kernel/head.S | ||
16 | @@ -112,16 +112,16 @@ no_fdt_arg: | ||
17 | * copy command line directly to cmd_line placed in data section. | ||
18 | */ | ||
19 | beqid r5, skip /* Skip if NULL pointer */ | ||
20 | - or r6, r0, r0 /* incremment */ | ||
21 | + or r11, r0, r0 /* incremment */ | ||
22 | ori r4, r0, cmd_line /* load address of command line */ | ||
23 | tophys(r4,r4) /* convert to phys address */ | ||
24 | ori r3, r0, COMMAND_LINE_SIZE - 1 /* number of loops */ | ||
25 | _copy_command_line: | ||
26 | /* r2=r5+r6 - r5 contain pointer to command line */ | ||
27 | - lbu r2, r5, r6 | ||
28 | + lbu r2, r5, r11 | ||
29 | beqid r2, skip /* Skip if no data */ | ||
30 | - sb r2, r4, r6 /* addr[r4+r6]= r2*/ | ||
31 | - addik r6, r6, 1 /* increment counting */ | ||
32 | + sb r2, r4, r11 /* addr[r4+r6]= r2*/ | ||
33 | + addik r11, r11, 1 /* increment counting */ | ||
34 | bgtid r3, _copy_command_line /* loop for all entries */ | ||
35 | addik r3, r3, -1 /* decrement loop */ | ||
36 | addik r5, r4, 0 /* add new space for command line */ | ||
37 | @@ -131,13 +131,13 @@ skip: | ||
38 | |||
39 | #ifdef NOT_COMPILE | ||
40 | /* save bram context */ | ||
41 | - or r6, r0, r0 /* incremment */ | ||
42 | + or r11, r0, r0 /* incremment */ | ||
43 | ori r4, r0, TOPHYS(_bram_load_start) /* save bram context */ | ||
44 | ori r3, r0, (LMB_SIZE - 4) | ||
45 | _copy_bram: | ||
46 | - lw r7, r0, r6 /* r7 = r0 + r6 */ | ||
47 | - sw r7, r4, r6 /* addr[r4 + r6] = r7*/ | ||
48 | - addik r6, r6, 4 /* increment counting */ | ||
49 | + lw r7, r0, r11 /* r7 = r0 + r6 */ | ||
50 | + sw r7, r4, r11 /* addr[r4 + r6] = r7*/ | ||
51 | + addik r11, r11, 4 /* increment counting */ | ||
52 | bgtid r3, _copy_bram /* loop for all entries */ | ||
53 | addik r3, r3, -4 /* descrement loop */ | ||
54 | #endif | ||
55 | @@ -303,8 +303,8 @@ jump_over2: | ||
56 | * the exception vectors, using a 4k real==virtual mapping. | ||
57 | */ | ||
58 | /* Use temporary TLB_ID for LMB - clear this temporary mapping later */ | ||
59 | - ori r6, r0, MICROBLAZE_LMB_TLB_ID | ||
60 | - mts rtlbx,r6 | ||
61 | + ori r11, r0, MICROBLAZE_LMB_TLB_ID | ||
62 | + mts rtlbx,r11 | ||
63 | |||
64 | ori r4,r0,(TLB_WR | TLB_EX) | ||
65 | ori r3,r0,(TLB_VALID | TLB_PAGESZ(PAGESZ_4K)) | ||
66 | -- | ||
67 | 1.8.2.1 | ||
68 | |||
69 | |||