Improved init_PCIE_EACH_SERDES_SPICO to do full init in a single loop
This commit is contained in:
parent
7cd116b2c8
commit
eefee10ef3
55
src/pcie.asm
55
src/pcie.asm
|
@ -435,66 +435,51 @@ init_PCIE_EACH_SERDES_SPICO:
|
|||
|
||||
MOV R0, 2 ; Current SERDES device index
|
||||
MOV R1, 0x00e00ff0 ; Current data to write
|
||||
MOV R2, 0x000000d0 ; Current data to write to odd (PCS)
|
||||
|
||||
.do:
|
||||
FASTCALL @execute_SBus_PCIE_Command, 0xfd, R0, 0, R1 ; Execute command
|
||||
BNE RRET, 1, 0x1, @.failCommand ; Command failed
|
||||
ADD R0, R0, 2 ; Increase index for next spico
|
||||
BEQ, R0, 1, 0x1 .commandOddPcs; Is it odd (PCS)?
|
||||
FASTCALL @execute_SBus_PCIE_Command, 0xfd, R0, 0, R1 ; Execute command
|
||||
BNE RRET, 1, 0x1, @.failCommand ; Command failed
|
||||
JUMP .nextItem
|
||||
.commandOddPcs:
|
||||
; Do odd number init (PCS)
|
||||
FASTCALL @execute_SBus_PCIE_Command, 0x24, R0, 0, R2 ; Execute command
|
||||
BNE RRET, 1, 0x1, @.failCommand ; Command failed
|
||||
|
||||
.nextItem:
|
||||
ADD R0, R0, 1 ; Increase index for next spico
|
||||
|
||||
.check0: BNE, R0, 0x0a, 0xFFFFFFFF, @.check1
|
||||
BEQ DEVICE_CFG, 0, 0x01, @.check1 ; PEP0 is 8x8x
|
||||
MOV R1, 0x00e10ff0
|
||||
MOV R2, 0x000000d1
|
||||
.check1: BNE, R0, 0x12, 0xFFFFFFFF, @.check2
|
||||
MOV R1, 0x00e20ff0
|
||||
MOV R2, 0x000000d2
|
||||
|
||||
.check2: BNE, R0, 0x1a, 0xFFFFFFFF, @.check3
|
||||
BEQ DEVICE_CFG, 0, 0x02, @.check3 ; PEP2 is 8x8x
|
||||
MOV R1, 0x00e30ff0
|
||||
MOV R2, 0x000000d3
|
||||
.check3: BNE, R0, 0x22, 0xFFFFFFFF, @.check4
|
||||
MOV R1, 0x00e40ff0
|
||||
MOV R2, 0x000000d4
|
||||
|
||||
.check4: BNE, R0, 0x3a, 0xFFFFFFFF, @.check5
|
||||
BEQ DEVICE_CFG, 0, 0x04, @.check5 ; PEP4 is 8x8x
|
||||
MOV R1, 0x00e50ff0
|
||||
MOV R2, 0x000000d5
|
||||
.check5: BNE, R0, 0x32, 0xFFFFFFFF, @.check6
|
||||
MOV R1, 0x00e60ff0
|
||||
MOV R2, 0x000000d6
|
||||
|
||||
.check6: BNE, R0, 0x4a, 0xFFFFFFFF, @.continue
|
||||
BEQ DEVICE_CFG, 0, 0x08, @.continue ; PEP6 is 8x8x
|
||||
MOV R1, 0x00e70ff0
|
||||
MOV R2, 0x000000d7
|
||||
.continue:
|
||||
BNE R0, platform_SERDES_SPICO_COUNT, 0xFFFFFFFF, @.do
|
||||
|
||||
MOV R0, 3 ; Current SERDES device index, odd, for PCS access
|
||||
MOV R1, 0x000000d0 ; Current data to write
|
||||
.do2:
|
||||
FASTCALL @execute_SBus_PCIE_Command, 0x24, R0, 0, R1 ; Execute command
|
||||
BNE RRET, 1, 0x1, @.failCommand ; Command failed
|
||||
ADD R0, R0, 2 ; Increase index for next spico
|
||||
|
||||
.check20: BNE, R0, 0x0b, 0xFFFFFFFF, @.check21
|
||||
BEQ DEVICE_CFG, 0, 0x01, @.check21 ; PEP0 is 8x8x
|
||||
MOV R1, 0x000000d1
|
||||
.check21: BNE, R0, 0x13, 0xFFFFFFFF, @.check22
|
||||
MOV R1, 0x000000d2
|
||||
|
||||
.check22: BNE, R0, 0x1b, 0xFFFFFFFF, @.check23
|
||||
BEQ DEVICE_CFG, 0, 0x02, @.check23 ; PEP2 is 8x8x
|
||||
MOV R1, 0x000000d3
|
||||
.check23: BNE, R0, 0x23, 0xFFFFFFFF, @.check24
|
||||
MOV R1, 0x000000d4
|
||||
|
||||
.check24: BNE, R0, 0x3b, 0xFFFFFFFF, @.check25
|
||||
BEQ DEVICE_CFG, 0, 0x04, @.check25 ; PEP4 is 8x8x
|
||||
MOV R1, 0x000000d5
|
||||
.check25: BNE, R0, 0x33, 0xFFFFFFFF, @.check26
|
||||
MOV R1, 0x000000d6
|
||||
|
||||
.check26: BNE, R0, 0x4b, 0xFFFFFFFF, @.continue2
|
||||
BEQ DEVICE_CFG, 0, 0x08, @.continue2 ; PEP6 is 8x8x
|
||||
MOV R1, 0x000000d7
|
||||
.continue2:
|
||||
BNE R0, platform_SERDES_SPICO_COUNT +1, 0xFFFFFFFF, @.do2
|
||||
BNE R0, platform_SERDES_SPICO_COUNT + 1, 0xFFFFFFFF, @.do
|
||||
|
||||
MOV RRET, 1 ; Success
|
||||
MOV api_SERDES_OOR_STATUS_PASS_1, 0
|
||||
|
|
Loading…
Reference in a new issue