From 3ade69dd4a70f086e9934ecf51893178c6db500f Mon Sep 17 00:00:00 2001 From: WeebDataHoarder <57538841+weebdatahoarder@users.noreply.github.com> Date: Tue, 3 Aug 2021 03:01:19 +0200 Subject: [PATCH] Use shift offsets for entrypoint SET bitfields --- src/entrypoint.asm | 62 ++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/src/entrypoint.asm b/src/entrypoint.asm index 93ecdc4..ae8d998 100644 --- a/src/entrypoint.asm +++ b/src/entrypoint.asm @@ -28,7 +28,7 @@ entrypoint: CALL @init_startClocks FASTCALL @init_setClockSource, bootCfg_systimeClockSource FASTCALL @init_setPcieSplitMode, bootCfg_pep0_mode, bootCfg_pep2_mode, bootCfg_pep4_mode, bootCfg_pep6_mode - SET DEVICE_CFG, 0xff80, 0xff80 ; Set PCIeEnable[0-8] to enabled + SET DEVICE_CFG, 0x1ff <7, 0x1ff <7; Set PCIeEnable[0-8] to enabled CALL @init_markClockStable CALL @init_markSbusBooted FASTCALL @init_memoryRepairConfig, bootCfg_skipMemRepair @@ -99,57 +99,65 @@ entrypoint: ; TODO: move this to pcie.asm and make it a function BNE DEVICE_CFG, 1 <7, 1 <7, @.skip_PEP0_masking; Is PCIeEnable != 1 - SET SOFT_RESET 0x00002000, 0x00002000 ; Set PEP PCIeActive = 1 + SET SOFT_RESET 1 <13, 1 <13 ; Set PEP PCIeActive = 1 MOV~10 PCIE_IB, R0 ; Copy interrupt settings - SET SOFT_RESET 0x00000000, 0x00002000 ; Set PEP PCIeActive = 0 - .skip_PEP0_masking: ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 + SET SOFT_RESET 0x00000000, 1 <13 ; Set PEP PCIeActive = 0 + .skip_PEP0_masking: + ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 BNE DEVICE_CFG, 1 <8, 1 <8, @.skip_PEP1_masking; Is PCIeEnable != 1 - SET SOFT_RESET 0x00004000, 0x00004000 ; Set PEP PCIeActive = 1 + SET SOFT_RESET 1 <14, 1 <14 ; Set PEP PCIeActive = 1 MOV~10 PCIE_IB, R0 ; Copy interrupt settings - SET SOFT_RESET 0x00000000, 0x00004000 ; Set PEP PCIeActive = 0 - .skip_PEP1_masking: ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 + SET SOFT_RESET 0x00000000, 1 <14 ; Set PEP PCIeActive = 0 + .skip_PEP1_masking: + ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 BNE DEVICE_CFG, 1 <9, 1 <9, @.skip_PEP2_masking; Is PCIeEnable != 1 - SET SOFT_RESET 0x00008000, 0x00008000 ; Set PEP PCIeActive = 1 + SET SOFT_RESET 1 <15, 1 <15 ; Set PEP PCIeActive = 1 MOV~10 PCIE_IB, R0 ; Copy interrupt settings - SET SOFT_RESET 0x00000000, 0x00008000 ; Set PEP PCIeActive = 0 - .skip_PEP2_masking: ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 + SET SOFT_RESET 0x00000000, 1 <15 ; Set PEP PCIeActive = 0 + .skip_PEP2_masking: + ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 BNE DEVICE_CFG, 1 <10, 1 <10, @.skip_PEP3_masking; Is PCIeEnable != 1 - SET SOFT_RESET 0x00010000, 0x00010000 ; Set PEP PCIeActive = 1 + SET SOFT_RESET 1 <16, 1 <16 ; Set PEP PCIeActive = 1 MOV~10 PCIE_IB, R0 ; Copy interrupt settings - SET SOFT_RESET 0x00000000, 0x00010000 ; Set PEP PCIeActive = 0 - .skip_PEP3_masking: ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 + SET SOFT_RESET 0x00000000, 1 <16 ; Set PEP PCIeActive = 0 + .skip_PEP3_masking: + ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 BNE DEVICE_CFG, 1 <11, 1 <11, @.skip_PEP4_masking; Is PCIeEnable != 1 - SET SOFT_RESET 0x00020000, 0x00020000 ; Set PEP PCIeActive = 1 + SET SOFT_RESET 1 <17, 1 <17 ; Set PEP PCIeActive = 1 MOV~10 PCIE_IB, R0 ; Copy interrupt settings - SET SOFT_RESET 0x00000000, 0x00020000 ; Set PEP PCIeActive = 0 - .skip_PEP4_masking: ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 + SET SOFT_RESET 0x00000000, 1 <17 ; Set PEP PCIeActive = 0 + .skip_PEP4_masking: + ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 BNE DEVICE_CFG, 1 <12, 1 <12, @.skip_PEP5_masking; Is PCIeEnable != 1 - SET SOFT_RESET 0x00040000, 0x00040000 ; Set PEP PCIeActive = 1 + SET SOFT_RESET 1 <18, 1 <18 ; Set PEP PCIeActive = 1 MOV~10 PCIE_IB, R0 ; Copy interrupt settings - SET SOFT_RESET 0x00000000, 0x00040000 ; Set PEP PCIeActive = 0 - .skip_PEP5_masking: ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 + SET SOFT_RESET 0x00000000, 1 <18 ; Set PEP PCIeActive = 0 + .skip_PEP5_masking: + ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 BNE DEVICE_CFG, 1 <13, 1 <13, @.skip_PEP6_masking; Is PCIeEnable != 1 - SET SOFT_RESET 0x00080000, 0x00080000 ; Set PEP PCIeActive = 1 + SET SOFT_RESET 1 <19, 1 <19 ; Set PEP PCIeActive = 1 MOV~10 PCIE_IB, R0 ; Copy interrupt settings - SET SOFT_RESET 0x00000000, 0x00080000 ; Set PEP PCIeActive = 0 - .skip_PEP6_masking: ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 + SET SOFT_RESET 0x00000000, 1 <19 ; Set PEP PCIeActive = 0 + .skip_PEP6_masking: + ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 BNE DEVICE_CFG, 1 <14, 1 <14, @.skip_PEP7_masking; Is PCIeEnable != 1 - SET SOFT_RESET 0x00100000, 0x00100000 ; Set PEP PCIeActive = 1 + SET SOFT_RESET 1 <20, 1 <20 ; Set PEP PCIeActive = 1 MOV~10 PCIE_IB, R0 ; Copy interrupt settings - SET SOFT_RESET 0x00000000, 0x00100000 ; Set PEP PCIeActive = 0 - .skip_PEP7_masking: ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 + SET SOFT_RESET 0x00000000, 1 <20 ; Set PEP PCIeActive = 0 + .skip_PEP7_masking: + ADD BSM_ADDR_OFFSET_1, BSM_ADDR_OFFSET_1, 0x100000 BNE DEVICE_CFG, 1 <15, 1 <15, @.skip_PEP8_masking; Is PCIeEnable != 1 - SET SOFT_RESET 0x00200000, 0x00200000 ; Set PEP PCIeActive = 1 + SET SOFT_RESET 1 <21, 1 <21 ; Set PEP PCIeActive = 1 MOV~10 PCIE_IB, R0 ; Copy interrupt settings - SET SOFT_RESET 0x00000000, 0x00200000 ; Set PEP PCIeActive = 0 + SET SOFT_RESET 0x00000000, 1 <21 ; Set PEP PCIeActive = 0 .skip_PEP8_masking: