am64x/am243x: hdsl: Fix reset behaviour after triggering manual reset

- Remove HALT instructions
- Clear all registers after reset

Fixes: PINDSW-6492

Signed-off-by: Dhaval Khandla <dhavaljk@ti.com>
This commit is contained in:
Dhaval Khandla 2023-08-22 12:05:04 +05:30
parent 36a591f12b
commit 6b8d4c32cc
3 changed files with 44 additions and 54 deletions

View File

@ -1402,7 +1402,6 @@ calculation_for_wait_done:
mov REG_TMP11, RET_ADDR1 mov REG_TMP11, RET_ADDR1
qbeq send_stuffing_no_stuffing, NUM_STUFFING, 0 qbeq send_stuffing_no_stuffing, NUM_STUFFING, 0
;check if we have stuffing ;check if we have stuffing
;halt
READ_CYCLCNT REG_TMP0 READ_CYCLCNT REG_TMP0
rsb REG_TMP2, REG_TMP0, (5*(CLKDIV_NORMAL+1)+4);(6*(CLKDIV_NORMAL+1)+4) rsb REG_TMP2, REG_TMP0, (5*(CLKDIV_NORMAL+1)+4);(6*(CLKDIV_NORMAL+1)+4)
mov REG_FNC.b3, NUM_STUFFING mov REG_FNC.b3, NUM_STUFFING
@ -1600,10 +1599,6 @@ qm_add:
and QM, QM, 0x7f and QM, QM, 0x7f
;check if negative (bit 7 indicates there is a link -> check bit 6) ;check if negative (bit 7 indicates there is a link -> check bit 6)
qbbc qm_add_no_reset, QM, 6 qbbc qm_add_no_reset, QM, 6
; set EDIO28
;ldi32 REG_TMP1, 0x02e300
;sbbo &REG_TMP1.b0, REG_TMP1, 0x13, 1
halt
ldi QM, 0 ldi QM, 0
;update MASTER_QM ;update MASTER_QM
sbco &QM, MASTER_REGS_CONST, MASTER_QM, 1 sbco &QM, MASTER_REGS_CONST, MASTER_QM, 1

View File

@ -54,10 +54,10 @@
relocatable0: relocatable0:
datalink_init_start: datalink_init_start:
datalink_reset:
;State RESET ;State RESET
zero &r0, 124 zero &r0, 124
;send 2 times ;send 2 times
datalink_reset:
;setup ICSS encoder peripheral for Hiperface DSL ;setup ICSS encoder peripheral for Hiperface DSL
ldi DISPARITY, 0x00 ldi DISPARITY, 0x00
@ -546,7 +546,6 @@ datalink_learn_end:
qba datalink_learn2_before qba datalink_learn2_before
;-------------------------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------------------------
datalink_abort2: datalink_abort2:
halt
qbbs datalink_abort2_no_wait, r30, RX_ENABLE ;changed here from 24 to 26 qbbs datalink_abort2_no_wait, r30, RX_ENABLE ;changed here from 24 to 26
WAIT_TX_DONE WAIT_TX_DONE
.if $defined("FREERUN_300_MHZ") .if $defined("FREERUN_300_MHZ")
@ -561,7 +560,6 @@ datalink_abort2:
NOP_2 NOP_2
.endif .endif
datalink_abort3: datalink_abort3:
halt
datalink_abort2_no_wait: datalink_abort2_no_wait:
lbco &REG_TMP0.b0, MASTER_REGS_CONST, NUM_RESETS, 1 lbco &REG_TMP0.b0, MASTER_REGS_CONST, NUM_RESETS, 1
add REG_TMP0.b0, REG_TMP0.b0, 1 add REG_TMP0.b0, REG_TMP0.b0, 1

View File

@ -55,7 +55,7 @@
*/ */
const unsigned int Hiperface_DSL2_0[]= { const unsigned int Hiperface_DSL2_0[]= {
0x21067d00, 0x21067a00,
0x24000125, 0x24000125,
0x2eff818f, 0x2eff818f,
0x24001d8d, 0x24001d8d,
@ -151,7 +151,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0xd104ff00, 0xd104ff00,
0xd703ffff, 0xd703ffff,
0x24002f1e, 0x24002f1e,
0x23046c9d, 0x23046b9d,
0x05014545, 0x05014545,
0x4f0045d2, 0x4f0045d2,
0x24000070, 0x24000070,
@ -170,7 +170,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x1e05cdcd, 0x1e05cdcd,
0x0b018001, 0x0b018001,
0x14000130, 0x14000130,
0x230277d1, 0x230276d1,
0x6f0005f7, 0x6f0005f7,
0x240120eb, 0x240120eb,
0xf0cd0b0d, 0xf0cd0b0d,
@ -189,7 +189,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x1e05cdcd, 0x1e05cdcd,
0x0b018001, 0x0b018001,
0x14000130, 0x14000130,
0x230277d1, 0x230276d1,
0x6f0005f7, 0x6f0005f7,
0x24000001, 0x24000001,
0x1c2d5050, 0x1c2d5050,
@ -212,7 +212,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x1f00cdcd, 0x1f00cdcd,
0x0b018021, 0x0b018021,
0x14002130, 0x14002130,
0x230277d1, 0x230276d1,
0x110fcdc0, 0x110fcdc0,
0x240168eb, 0x240168eb,
0xf0c00b00, 0xf0c00b00,
@ -237,7 +237,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x1e05cdcd, 0x1e05cdcd,
0x0b018001, 0x0b018001,
0x14000130, 0x14000130,
0x230277d1, 0x230276d1,
0x6f0005f7, 0x6f0005f7,
0x240120eb, 0x240120eb,
0xf0cd0b0d, 0xf0cd0b0d,
@ -256,7 +256,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x1e05cdcd, 0x1e05cdcd,
0x0b018001, 0x0b018001,
0x14000130, 0x14000130,
0x230277d1, 0x230276d1,
0x6f0005f7, 0x6f0005f7,
0x24000001, 0x24000001,
0x1c2d5050, 0x1c2d5050,
@ -279,7 +279,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x1f00cdcd, 0x1f00cdcd,
0x0b018021, 0x0b018021,
0x14002130, 0x14002130,
0x230277d1, 0x230276d1,
0x110fcdc0, 0x110fcdc0,
0x240168eb, 0x240168eb,
0xf0c00b00, 0xf0c00b00,
@ -296,7 +296,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x20d10000, 0x20d10000,
0x24000605, 0x24000605,
0x2eff8283, 0x2eff8283,
0x230262d1, 0x230261d1,
0x240000c0, 0x240000c0,
0x2400002d, 0x2400002d,
0x230069d1, 0x230069d1,
@ -451,9 +451,9 @@ const unsigned int Hiperface_DSL2_0[]= {
0x808113c1, 0x808113c1,
0xc901c405, 0xc901c405,
0x69084502, 0x69084502,
0x21028400, 0x21028300,
0x69074502, 0x69074502,
0x2102df00, 0x2102de00,
0x51000c2b, 0x51000c2b,
0x51015b04, 0x51015b04,
0x100c0c02, 0x100c0c02,
@ -523,14 +523,14 @@ const unsigned int Hiperface_DSL2_0[]= {
0x12006d6d, 0x12006d6d,
0x09064d4d, 0x09064d4d,
0xc901c402, 0xc901c402,
0x2103dd00, 0x2103dc00,
0xd104ff00, 0xd104ff00,
0xd703ffff, 0xd703ffff,
0x106d6d1e, 0x106d6d1e,
0x511f0d03, 0x511f0d03,
0x51190d02, 0x51190d02,
0x79000003, 0x79000003,
0x230644d1, 0x230641d1,
0x7900001a, 0x7900001a,
0xd104ff00, 0xd104ff00,
0xd703ffff, 0xd703ffff,
@ -542,7 +542,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x511f0d12, 0x511f0d12,
0x51190d11, 0x51190d11,
0xc901c402, 0xc901c402,
0x21032200, 0x21032100,
0x910c3c81, 0x910c3c81,
0x240117e0, 0x240117e0,
0x04e1e0e0, 0x04e1e0e0,
@ -637,7 +637,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x1f00c0c0, 0x1f00c0c0,
0x1f008181, 0x1f008181,
0x81505880, 0x81505880,
0x2104f700, 0x2104f500,
0x91042580, 0x91042580,
0xd708e0ff, 0xd708e0ff,
0x91042580, 0x91042580,
@ -651,11 +651,10 @@ const unsigned int Hiperface_DSL2_0[]= {
0xcf08e0ff, 0xcf08e0ff,
0x20d10000, 0x20d10000,
0x117f6666, 0x117f6666,
0xc9066605, 0xc9066604,
0x2a000000,
0x24000066, 0x24000066,
0x81031866, 0x81031866,
0x7f0000da, 0x7f0000db,
0x710f6602, 0x710f6602,
0x24000f66, 0x24000f66,
0x590e6604, 0x590e6604,
@ -770,7 +769,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x813a188d, 0x813a188d,
0x24000019, 0x24000019,
0x79000002, 0x79000002,
0x2304d6d1, 0x2304d5d1,
0x10535300, 0x10535300,
0x10333320, 0x10333320,
0x10131340, 0x10131340,
@ -933,7 +932,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x24003001, 0x24003001,
0xd1066b0e, 0xd1066b0e,
0x2400010d, 0x2400010d,
0x23066fd1, 0x23066cd1,
0x68ab8d45, 0x68ab8d45,
0x13803b3b, 0x13803b3b,
0x913d1880, 0x913d1880,
@ -946,7 +945,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x81531800, 0x81531800,
0x7900003b, 0x7900003b,
0x2400020d, 0x2400020d,
0x23066fd1, 0x23066cd1,
0x688b8d38, 0x688b8d38,
0x8137184b, 0x8137184b,
0x13803b3b, 0x13803b3b,
@ -989,7 +988,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x1d09c4c4, 0x1d09c4c4,
0x2400040d, 0x2400040d,
0x24003001, 0x24003001,
0x23066fd1, 0x23066cd1,
0x15ff8d9c, 0x15ff8d9c,
0x69005c34, 0x69005c34,
0x51009c33, 0x51009c33,
@ -1230,7 +1229,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x108787c7, 0x108787c7,
0x04c98087, 0x04c98087,
0x108080c9, 0x108080c9,
0x2304bdd1, 0x2304bcd1,
0x108b8b9d, 0x108b8b9d,
0x91aa1800, 0x91aa1800,
0x1f018000, 0x1f018000,
@ -1250,7 +1249,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x108787c7, 0x108787c7,
0x04c98087, 0x04c98087,
0x108080c9, 0x108080c9,
0x2304bdd1, 0x2304bcd1,
0x91983880, 0x91983880,
0x10eeeee1, 0x10eeeee1,
0x24000061, 0x24000061,
@ -1343,7 +1342,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x810b1800, 0x810b1800,
0x81441800, 0x81441800,
0x2eff8383, 0x2eff8383,
0x23027c9d, 0x23027b9d,
0x24000866, 0x24000866,
0x2400000c, 0x2400000c,
0x2400002c, 0x2400002c,
@ -1373,7 +1372,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x9101185b, 0x9101185b,
0x51005b0e, 0x51005b0e,
0x7900000d, 0x7900000d,
0x23062cd1, 0x230629d1,
0x91dc388c, 0x91dc388c,
0x240000e2, 0x240000e2,
0x91e21882, 0x91e21882,
@ -1381,7 +1380,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x100c0c2a, 0x100c0c2a,
0x106c6c4a, 0x106c6c4a,
0x102c2c6a, 0x102c2c6a,
0x23062cd1, 0x230629d1,
0x0b01e2e2, 0x0b01e2e2,
0x0501e2e2, 0x0501e2e2,
0x4f00e2ff, 0x4f00e2ff,
@ -1504,15 +1503,14 @@ const unsigned int Hiperface_DSL2_0[]= {
0x0b077200, 0x0b077200,
0x12001313, 0x12001313,
0x0901f2f2, 0x0901f2f2,
0x230638d1, 0x230635d1,
0x510e6506, 0x510e6506,
0x6f010df6, 0x6f010df6,
0x10656546, 0x10656546,
0x05012525, 0x05012525,
0x4f002595, 0x4f002595,
0x7900001c, 0x7900001a,
0x2a000000, 0xd118fe0b,
0xd118fe0c,
0xd105ff00, 0xd105ff00,
0x31010001, 0x31010001,
0x31010001, 0x31010001,
@ -1523,7 +1521,6 @@ const unsigned int Hiperface_DSL2_0[]= {
0x31010001, 0x31010001,
0x31010001, 0x31010001,
0x31010001, 0x31010001,
0x2a000000,
0x91a91800, 0x91a91800,
0x01010000, 0x01010000,
0x81a91800, 0x81a91800,
@ -1537,34 +1534,34 @@ const unsigned int Hiperface_DSL2_0[]= {
0x813d1800, 0x813d1800,
0xc9022002, 0xc9022002,
0x2400269f, 0x2400269f,
0x7f00002d, 0x7f00002e,
0x24000925, 0x24000925,
0xd104ff00, 0xd104ff00,
0xd703ffff, 0xd703ffff,
0x24001b8d, 0x24001b8d,
0x23016a9d, 0x23016a9d,
0x2305fe9d, 0x2305fb9d,
0x230638d1, 0x230635d1,
0x6f010dea, 0x6f010deb,
0x05012525, 0x05012525,
0x4f0025f8, 0x4f0025f8,
0x24001025, 0x24001025,
0x24001c8d, 0x24001c8d,
0x23016a9d, 0x23016a9d,
0x2305fe9d, 0x2305fb9d,
0x230638d1, 0x230635d1,
0x6f010dd6, 0x6f010dd8,
0x05012525, 0x05012525,
0x4f0025fa, 0x4f0025fa,
0x810a1846, 0x810a1846,
0x24001d8d, 0x24001d8d,
0x23016a9d, 0x23016a9d,
0x2300ef9d, 0x2300ef9d,
0x6e0403cf, 0x6e0403d1,
0x6e2423ce, 0x6e2423d0,
0x110f4300, 0x110f4300,
0x0b044320, 0x0b044320,
0x6e2000cb, 0x6e2000cd,
0x10848480, 0x10848480,
0x10434340, 0x10434340,
0x10404001, 0x10404001,
@ -1590,7 +1587,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x2301f7d1, 0x2301f7d1,
0x21001600, 0x21001600,
0x24002005, 0x24002005,
0x230262d1, 0x230261d1,
0x24000080, 0x24000080,
0x2405a4eb, 0x2405a4eb,
0x2eff8992, 0x2eff8992,
@ -1603,7 +1600,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x10000020, 0x10000020,
0x0b018001, 0x0b018001,
0x14000130, 0x14000130,
0x230277d1, 0x230276d1,
0x6f0005f6, 0x6f0005f6,
0x24001d05, 0x24001d05,
0xc918ff00, 0xc918ff00,
@ -1615,7 +1612,7 @@ const unsigned int Hiperface_DSL2_0[]= {
0x10000020, 0x10000020,
0x0b018001, 0x0b018001,
0x14000130, 0x14000130,
0x230277d1, 0x230276d1,
0x6f0105f6, 0x6f0105f6,
0xc918ff00, 0xc918ff00,
0x101f1f00, 0x101f1f00,
@ -1719,4 +1716,4 @@ const unsigned int Hiperface_DSL2_0[]= {
0x91003c82, 0x91003c82,
0x1308e2e2, 0x1308e2e2,
0x81003c82, 0x81003c82,
0x2104f600 }; 0x2104f500 };