blob: a271f55ea1a7950d2a0d367d3b8ccd8701885487 [file] [log] [blame]
Patrick Williams213cb262021-08-07 19:21:33 -05001From b77c5a67d4ac2513d0b4bab5e4dd1c33b339689b Mon Sep 17 00:00:00 2001
Andrew Geissler635e0e42020-08-21 15:58:33 -05002From: Zhenhua Luo <zhenhua.luo@nxp.com>
3Date: Sat, 11 Jun 2016 22:08:29 -0500
Andrew Geisslerd1e89492021-02-12 15:35:20 -06004Subject: [PATCH] fix the incorrect assembling for ppc wait mnemonic
Andrew Geissler635e0e42020-08-21 15:58:33 -05005
Andrew Geissler595f6302022-01-24 19:11:47 +00006The wait mnemonic for ppc targets is incorrectly assembled into 0x7c00003c due
7to duplicated address definition with waitasec instruction. The issue causes
8kernel boot calltrace for ppc targets when wait instruction is executed.
9
Andrew Geissler635e0e42020-08-21 15:58:33 -050010Signed-off-by: Zhenhua Luo <zhenhua.luo@nxp.com>
11
12Upstream-Status: Pending
13---
14 opcodes/ppc-opc.c | 4 +---
15 1 file changed, 1 insertion(+), 3 deletions(-)
16
17diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
Patrick Williams213cb262021-08-07 19:21:33 -050018index 13d8b6c3c07..cd979f9c80c 100644
Andrew Geissler635e0e42020-08-21 15:58:33 -050019--- a/opcodes/ppc-opc.c
20+++ b/opcodes/ppc-opc.c
Patrick Williams213cb262021-08-07 19:21:33 -050021@@ -6378,8 +6378,6 @@ const struct powerpc_opcode powerpc_opcodes[] = {
Andrew Geissler635e0e42020-08-21 15:58:33 -050022 {"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}},
Patrick Williams213cb262021-08-07 19:21:33 -050023 {"waitrsv", XWCPL(31,30,1,0),0xffffffff, POWER10, EXT, {0}},
24 {"pause_short", XWCPL(31,30,2,0),0xffffffff, POWER10, EXT, {0}},
Andrew Geissler635e0e42020-08-21 15:58:33 -050025-{"wait", X(31,30), XWCPL_MASK, POWER10, 0, {WC, PL}},
26-{"wait", X(31,30), XWC_MASK, POWER9, POWER10, {WC}},
27
28 {"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
29
Patrick Williams213cb262021-08-07 19:21:33 -050030@@ -6433,7 +6431,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
Andrew Geissler635e0e42020-08-21 15:58:33 -050031
Patrick Williams213cb262021-08-07 19:21:33 -050032 {"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, EXT, {0}},
33 {"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, EXT, {0}},
Andrew Geissler635e0e42020-08-21 15:58:33 -050034-{"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}},
35+{"wait", X(31,62), XWC_MASK, E500MC|PPCA2|POWER9|POWER10, 0, {WC}},
36
37 {"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
38