summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-xlnx/microblaze_Do_not_use_r6_in_head.S.patch
diff options
context:
space:
mode:
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.patch69
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 @@
1From: Michal Simek <michal.simek@xilinx.com>
2Subject: [LINUX PATCH 1/3] microblaze: Do not use r6 in head.S
3
4r6 stores pointer to ramdisk and shouldn't
5be used before it is passed to machine_early_init.
6
7Signed-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
12diff --git a/arch/microblaze/kernel/head.S b/arch/microblaze/kernel/head.S
13index 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--
671.8.2.1
68
69