From c4be0da68c336a25812e7129fc483de7be2f118e Mon Sep 17 00:00:00 2001 From: Karun Koppula Date: Tue, 2 Apr 2024 15:05:12 -0400 Subject: [PATCH 01/41] updated l4plus and l5 rcc registers --- data/registers/rcc_l4plus.yaml | 24 ++++++++++++------------ data/registers/rcc_l5.yaml | 18 +++++++++--------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/data/registers/rcc_l4plus.yaml b/data/registers/rcc_l4plus.yaml index c07e84d..17e9f27 100644 --- a/data/registers/rcc_l4plus.yaml +++ b/data/registers/rcc_l4plus.yaml @@ -311,7 +311,7 @@ fieldset/AHB2ENR: description: Random Number Generator clock enable bit_offset: 18 bit_size: 1 - - name: OSPIMEN + - name: OCTOSPIMEN description: OctoSPI IO manager clock enable bit_offset: 20 bit_size: 1 @@ -390,7 +390,7 @@ fieldset/AHB2RSTR: description: Random number generator reset bit_offset: 18 bit_size: 1 - - name: OSPIMRST + - name: OCTOSPIMRST description: OCTOSPI IO manager reset bit_offset: 20 bit_size: 1 @@ -485,7 +485,7 @@ fieldset/AHB2SMENR: description: Random Number Generator clocks enable during Sleep and Stop modes bit_offset: 18 bit_size: 1 - - name: OSPIMSMEN + - name: OCTOSPIMSMEN description: OctoSPI IO manager clocks enable during Sleep and Stop modes bit_offset: 20 bit_size: 1 @@ -504,11 +504,11 @@ fieldset/AHB3ENR: description: Flexible memory controller clock enable bit_offset: 0 bit_size: 1 - - name: OSPI1EN + - name: OCTOSPI1EN description: OctoSPI1 memory interface clock enable bit_offset: 8 bit_size: 1 - - name: OSPI2EN + - name: OCTOSPI2EN description: OSPI2EN memory interface clock enable bit_offset: 9 bit_size: 1 @@ -519,11 +519,11 @@ fieldset/AHB3RSTR: description: Flexible memory controller reset bit_offset: 0 bit_size: 1 - - name: OSPI1RST + - name: OCTOSPI1RST description: OctoSPI1 memory interface reset bit_offset: 8 bit_size: 1 - - name: OSPI2RST + - name: OCTOSPI2RST description: OctOSPI2 memory interface reset bit_offset: 9 bit_size: 1 @@ -534,11 +534,11 @@ fieldset/AHB3SMENR: description: Flexible memory controller clocks enable during Sleep and Stop modes bit_offset: 0 bit_size: 1 - - name: OSPI1SMEN + - name: OCTOSPI1SMEN description: OctoSPI1 memory interface clocks enable during Sleep and Stop modes bit_offset: 8 bit_size: 1 - - name: OCTOSPI2 + - name: OCTOSPI2SMEN description: OctoSPI2 memory interface clocks enable during Sleep and Stop modes bit_offset: 9 bit_size: 1 @@ -1197,11 +1197,11 @@ fieldset/CCIPR2: description: division factor for LTDC clock bit_offset: 16 bit_size: 2 - - name: OSPISEL + - name: OCTOSPISEL description: Octospi clock source selection bit_offset: 20 bit_size: 2 - enum: OSPISEL + enum: OCTOSPISEL fieldset/CFGR: description: Clock configuration register fields: @@ -1962,7 +1962,7 @@ enum/MSIRGSEL: - name: CR description: MSI Range is provided by MSIRANGE[3:0] in the RCC_CR register value: 1 -enum/OSPISEL: +enum/OCTOSPISEL: bit_size: 2 variants: - name: SYS diff --git a/data/registers/rcc_l5.yaml b/data/registers/rcc_l5.yaml index 947f3c3..d77b0cd 100644 --- a/data/registers/rcc_l5.yaml +++ b/data/registers/rcc_l5.yaml @@ -556,8 +556,8 @@ fieldset/AHB3ENR: description: Flexible memory controller clock enable bit_offset: 0 bit_size: 1 - - name: OSPI1EN - description: OSPI1EN + - name: OCTOSPI1EN + description: OCTOSPI1EN bit_offset: 8 bit_size: 1 fieldset/AHB3RSTR: @@ -567,8 +567,8 @@ fieldset/AHB3RSTR: description: Flexible memory controller reset bit_offset: 0 bit_size: 1 - - name: OSPI1RST - description: OSPI1RST + - name: OCTOSPI1RST + description: OCTOSPI1RST bit_offset: 8 bit_size: 1 fieldset/AHB3SECSR: @@ -578,8 +578,8 @@ fieldset/AHB3SECSR: description: FSMCSECF bit_offset: 0 bit_size: 1 - - name: OSPI1SECF - description: OSPI1SECF + - name: OCTOSPI1SECF + description: OCTOSPI1SECF bit_offset: 8 bit_size: 1 fieldset/AHB3SMENR: @@ -589,8 +589,8 @@ fieldset/AHB3SMENR: description: Flexible memory controller clocks enable during Sleep and Stop modes bit_offset: 0 bit_size: 1 - - name: OSPI1SMEN - description: OSPI1SMEN + - name: OCTOSPI1SMEN + description: OCTOSPI1SMEN bit_offset: 8 bit_size: 1 fieldset/APB1ENR1: @@ -1412,7 +1412,7 @@ fieldset/CCIPR2: description: SDMMC clock selection bit_offset: 14 bit_size: 1 - - name: OSPISEL + - name: OCTOSPISEL description: Octospi clock source selection bit_offset: 20 bit_size: 2 From e7b493c058e6a1dd22db597a7b320a3e71453a3b Mon Sep 17 00:00:00 2001 From: Romain Goyet Date: Tue, 2 Apr 2024 20:30:35 -0400 Subject: [PATCH 02/41] Add TSC support for STM32WBA --- stm32-data-gen/src/chips.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index f0f127c..bacb4b6 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -602,6 +602,7 @@ impl PeriMatcher { ("STM32F0x[128].*:TSC:.*", ("tsc", "v1", "TSC")), ("STM32F3[07][123].*:TSC:.*", ("tsc", "v1", "TSC")), ("STM32WB55.*:TSC:.*", ("tsc", "v2", "TSC")), + ("STM32WBA.*:TSC:.*", ("tsc", "v1", "TSC")), ("STM32L[045].*:TSC:.*", ("tsc", "v3", "TSC")), ("STM32U5.*:TSC:.*", ("tsc", "v3", "TSC")), ("*:VREFINTCAL:.*", ("vrefintcal", "v1", "VREFINTCAL")), From ad31d48657c0a2340a2a14c4943af4cc45f8914b Mon Sep 17 00:00:00 2001 From: Karun Koppula Date: Wed, 3 Apr 2024 13:16:08 -0400 Subject: [PATCH 03/41] Fix mislabeling for h7ab octospi rcc registers --- data/registers/rcc_h7ab.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/data/registers/rcc_h7ab.yaml b/data/registers/rcc_h7ab.yaml index c58645e..554992a 100644 --- a/data/registers/rcc_h7ab.yaml +++ b/data/registers/rcc_h7ab.yaml @@ -486,8 +486,8 @@ fieldset/AHB3ENR: description: FMC Peripheral Clocks Enable bit_offset: 12 bit_size: 1 - - name: QUADSPIEN - description: QUADSPI and QUADSPI Delay Clock Enable + - name: OCTOSPI1EN + description: OCTOSPI1 and OCTOSPI1 Delay Clock Enable bit_offset: 14 bit_size: 1 - name: SDMMC1EN @@ -549,8 +549,8 @@ fieldset/AHB3LPENR: description: FMC Peripheral Clocks Enable During CSleep Mode bit_offset: 12 bit_size: 1 - - name: QUADSPILPEN - description: QUADSPI and QUADSPI Delay Clock Enable During CSleep Mode + - name: OCTOSPI1LPEN + description: OCTOSPI1 and OCTOSPI1 Delay Clock Enable During CSleep Mode bit_offset: 14 bit_size: 1 - name: SDMMC1LPEN @@ -608,8 +608,8 @@ fieldset/AHB3RSTR: description: FMC block reset bit_offset: 12 bit_size: 1 - - name: QUADSPIRST - description: QUADSPI and QUADSPI delay block reset + - name: OCTOSPI1RST + description: OCTOSPI1 and OCTOSPI1 delay block reset bit_offset: 14 bit_size: 1 - name: SDMMC1RST From ac23a24b9bad4a6758f33f49d59f5e69a23a1819 Mon Sep 17 00:00:00 2001 From: eZio Pan Date: Thu, 4 Apr 2024 18:30:07 +0800 Subject: [PATCH 04/41] extract lptim_v2h5 from h573 lptim1 --- data/registers/lptim_v2h5.yaml | 524 +++++++++++++++++++++++++++++++++ 1 file changed, 524 insertions(+) create mode 100644 data/registers/lptim_v2h5.yaml diff --git a/data/registers/lptim_v2h5.yaml b/data/registers/lptim_v2h5.yaml new file mode 100644 index 0000000..0728ec4 --- /dev/null +++ b/data/registers/lptim_v2h5.yaml @@ -0,0 +1,524 @@ +block/LPTIM1: + description: Low power timer. + items: + - name: ISR_intput + description: LPTIM interrupt and status register. + byte_offset: 0 + fieldset: ISR_intput + - name: ISR_output + description: LPTIM interrupt and status register. + byte_offset: 0 + fieldset: ISR_output + - name: ICR_intput + description: LPTIM interrupt clear register. + byte_offset: 4 + fieldset: ICR_intput + - name: ICR_output + description: LPTIM interrupt clear register. + byte_offset: 4 + fieldset: ICR_output + - name: DIER_intput + description: LPTIM interrupt enable register. + byte_offset: 8 + fieldset: DIER_intput + - name: DIER_output + description: LPTIM interrupt enable register. + byte_offset: 8 + fieldset: DIER_output + - name: CFGR + description: LPTIM configuration register. + byte_offset: 12 + fieldset: CFGR + - name: CR + description: LPTIM control register. + byte_offset: 16 + fieldset: CR + - name: CCR1 + description: LPTIM compare register 1. + byte_offset: 20 + fieldset: CCR1 + - name: ARR + description: LPTIM autoreload register. + byte_offset: 24 + fieldset: ARR + - name: CNT + description: LPTIM counter register. + byte_offset: 28 + fieldset: CNT + - name: CFGR2 + description: LPTIM configuration register 2. + byte_offset: 36 + fieldset: CFGR2 + - name: RCR + description: LPTIM repetition register. + byte_offset: 40 + fieldset: RCR + - name: CCMR1 + description: LPTIM capture/compare mode register 1. + byte_offset: 44 + fieldset: CCMR1 + - name: CCR2 + description: LPTIM compare register 2. + byte_offset: 52 + fieldset: CCR2 +fieldset/ARR: + description: LPTIM autoreload register. + fields: + - name: ARR + description: Auto reload value ARR is the autoreload value for the LPTIM. This value must be strictly greater than the CCRx[15:0] value. + bit_offset: 0 + bit_size: 16 +fieldset/CCMR1: + description: LPTIM capture/compare mode register 1. + fields: + - name: CC1SEL + description: Capture/compare 1 selection This bitfield defines the direction of the channel input (capture) or output mode. + bit_offset: 0 + bit_size: 1 + - name: CC1E + description: Capture/compare 1 output enable. This bit determines if a capture of the counter value can actually be done into the input capture/compare register 1 (LPTIM_CCR1) or not. + bit_offset: 1 + bit_size: 1 + - name: CC1P + description: Capture/compare 1 output polarity. Only bit2 is used to set polarity when output mode is enabled, bit3 is don't care. This field is used to select the IC1 polarity for capture operations. + bit_offset: 2 + bit_size: 2 + - name: IC1PSC + description: Input capture 1 prescaler This bitfield defines the ratio of the prescaler acting on the CC1 input (IC1). + bit_offset: 8 + bit_size: 2 + - name: IC1F + description: Input capture 1 filter This bitfield defines the number of consecutive equal samples that should be detected when a level change occurs on an external input capture signal before it is considered as a valid level transition. An internal clock source must be present to use this feature. + bit_offset: 12 + bit_size: 2 + - name: CC2SEL + description: Capture/compare 2 selection This bitfield defines the direction of the channel, input (capture) or output mode. + bit_offset: 16 + bit_size: 1 + - name: CC2E + description: Capture/compare 2 output enable. This bit determines if a capture of the counter value can actually be done into the input capture/compare register 2 (LPTIM_CCR2) or not. + bit_offset: 17 + bit_size: 1 + - name: CC2P + description: Capture/compare 2 output polarity. Only bit2 is used to set polarity when output mode is enabled, bit3 is don't care. This field is used to select the IC2 polarity for capture operations. + bit_offset: 18 + bit_size: 2 + - name: IC2PSC + description: Input capture 2 prescaler This bitfield defines the ratio of the prescaler acting on the CC2 input (IC2). + bit_offset: 24 + bit_size: 2 + - name: IC2F + description: Input capture 2 filter This bitfield defines the number of consecutive equal samples that should be detected when a level change occurs on an external input capture signal before it is considered as a valid level transition. An internal clock source must be present to use this feature. + bit_offset: 28 + bit_size: 2 +fieldset/CCR1: + description: LPTIM compare register 1. + fields: + - name: CCR1 + description: 'Capture/compare 1 value If channel CC1 is configured as output: CCR1 is the value to be loaded in the capture/compare 1 register. Depending on the PRELOAD option, the CCR1 register is immediately updated if the PRELOAD bit is reset and updated at next LPTIM update event if PREOAD bit is reset. The capture/compare register 1 contains the value to be compared to the counter LPTIM_CNT and signaled on OC1 output. If channel CC1 is configured as input: CCR1 contains the counter value transferred by the last input capture 1 event. The LPTIM_CCR1 register is read-only and cannot be programmed. If LPTIM does not implement any channel: The compare register 1 contains the value to be compared to the counter LPTIM_CNT and signaled on LPTIM output.' + bit_offset: 0 + bit_size: 16 +fieldset/CCR2: + description: LPTIM compare register 2. + fields: + - name: CCR2 + description: 'Capture/compare 2 value If channel CC2 is configured as output: CCR2 is the value to be loaded in the capture/compare 2 register. Depending on the PRELOAD option, the CCR2 register is immediately updated if the PRELOAD bit is reset and updated at next LPTIM update event if PREOAD bit is reset. The capture/compare register 2 contains the value to be compared to the counter LPTIM_CNT and signaled on OC2 output. If channel CC2 is configured as input: CCR2 contains the counter value transferred by the last input capture 2 event. The LPTIM_CCR2 register is read-only and cannot be programmed.' + bit_offset: 0 + bit_size: 16 +fieldset/CFGR: + description: LPTIM configuration register. + fields: + - name: CKSEL + description: Clock selector The CKSEL bit selects which clock source the LPTIM uses:. + bit_offset: 0 + bit_size: 1 + - name: CKPOL + description: 'Clock Polarity When the LPTIM is clocked by an external clock source, CKPOL bits is used to configure the active edge or edges used by the counter: If the LPTIM is configured in Encoder mode (ENC bit is set), the encoder sub-mode 1 is active. If the LPTIM is configured in Encoder mode (ENC bit is set), the encoder sub-mode 2 is active. Refer to for more details about Encoder mode sub-modes.' + bit_offset: 1 + bit_size: 2 + - name: CKFLT + description: Configurable digital filter for external clock The CKFLT value sets the number of consecutive equal samples that should be detected when a level change occurs on an external clock signal before it is considered as a valid level transition. An internal clock source must be present to use this feature. + bit_offset: 3 + bit_size: 2 + - name: TRGFLT + description: Configurable digital filter for trigger The TRGFLT value sets the number of consecutive equal samples that should be detected when a level change occurs on an internal trigger before it is considered as a valid level transition. An internal clock source must be present to use this feature. + bit_offset: 6 + bit_size: 2 + - name: PRESC + description: Clock prescaler The PRESC bits configure the prescaler division factor. It can be one among the following division factors:. + bit_offset: 9 + bit_size: 3 + - name: TRIGSEL + description: 'Trigger selector The TRIGSEL bits select the trigger source that serves as a trigger event for the LPTIM among the below 8 available sources: See for details.' + bit_offset: 13 + bit_size: 3 + - name: TRIGEN + description: Trigger enable and polarity The TRIGEN bits controls whether the LPTIM counter is started by an external trigger or not. If the external trigger option is selected, three configurations are possible for the trigger active edge:. + bit_offset: 17 + bit_size: 2 + - name: TIMOUT + description: Timeout enable The TIMOUT bit controls the Timeout feature. + bit_offset: 19 + bit_size: 1 + - name: WAVE + description: Waveform shape The WAVE bit controls the output shape. + bit_offset: 20 + bit_size: 1 + - name: WAVPOL + description: 'Waveform shape polarity The WAVEPOL bit controls the output polarity Note: If the LPTIM implements at least one capture/compare channel, this bit is reserved. Please refer to.' + bit_offset: 21 + bit_size: 1 + - name: PRELOAD + description: Registers update mode The PRELOAD bit controls the LPTIM_ARR, LPTIM_RCR and the LPTIM_CCRx registers update modality. + bit_offset: 22 + bit_size: 1 + - name: COUNTMODE + description: counter mode enabled The COUNTMODE bit selects which clock source is used by the LPTIM to clock the counter:. + bit_offset: 23 + bit_size: 1 + - name: ENC + description: 'Encoder mode enable The ENC bit controls the Encoder mode Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 24 + bit_size: 1 +fieldset/CFGR2: + description: LPTIM configuration register 2. + fields: + - name: IN1SEL + description: LPTIM input 1 selection The IN1SEL bits control the LPTIM input 1 multiplexer, which connects LPTIM input 1 to one of the available inputs. For connection details refer to. + bit_offset: 0 + bit_size: 2 + - name: IN2SEL + description: LPTIM input 2 selection The IN2SEL bits control the LPTIM input 2 multiplexer, which connects LPTIM input 2 to one of the available inputs. For connection details refer to. + bit_offset: 4 + bit_size: 2 + - name: IC1SEL + description: LPTIM input capture 1 selection The IC1SEL bits control the LPTIM Input capture 1 multiplexer, which connects LPTIM Input capture 1 to one of the available inputs. For connection details refer to. + bit_offset: 16 + bit_size: 2 + - name: IC2SEL + description: LPTIM input capture 2 selection The IC2SEL bits control the LPTIM Input capture 2 multiplexer, which connects LPTIM Input capture 2 to one of the available inputs. For connection details refer to. + bit_offset: 20 + bit_size: 2 +fieldset/CNT: + description: LPTIM counter register. + fields: + - name: CNT + description: Counter value When the LPTIM is running with an asynchronous clock, reading the LPTIM_CNT register may return unreliable values. So in this case it is necessary to perform two consecutive read accesses and verify that the two returned values are identical. + bit_offset: 0 + bit_size: 16 +fieldset/CR: + description: LPTIM control register. + fields: + - name: ENABLE + description: LPTIM enable The ENABLE bit is set and cleared by software. + bit_offset: 0 + bit_size: 1 + - name: SNGSTRT + description: LPTIM start in Single mode This bit is set by software and cleared by hardware. In case of software start (TRIGEN[1:0] = ‘00’), setting this bit starts the LPTIM in single pulse mode. If the software start is disabled (TRIGEN[1:0] different than ‘00’), setting this bit starts the LPTIM in single pulse mode as soon as an external trigger is detected. If this bit is set when the LPTIM is in continuous counting mode, then the LPTIM stops at the following match between LPTIM_ARR and LPTIM_CNT registers. This bit can only be set when the LPTIM is enabled. It is automatically reset by hardware. + bit_offset: 1 + bit_size: 1 + - name: CNTSTRT + description: Timer start in Continuous mode This bit is set by software and cleared by hardware. In case of software start (TRIGEN[1:0] = ‘00’), setting this bit starts the LPTIM in Continuous mode. If the software start is disabled (TRIGEN[1:0] different than ‘00’), setting this bit starts the timer in Continuous mode as soon as an external trigger is detected. If this bit is set when a single pulse mode counting is ongoing, then the timer does not stop at the next match between the LPTIM_ARR and LPTIM_CNT registers and the LPTIM counter keeps counting in Continuous mode. This bit can be set only when the LPTIM is enabled. It is automatically reset by hardware. + bit_offset: 2 + bit_size: 1 + - name: COUNTRST + description: Counter reset This bit is set by software and cleared by hardware. When set to '1' this bit triggers a synchronous reset of the LPTIM_CNT counter register. Due to the synchronous nature of this reset, it only takes place after a synchronization delay of 3 LPTimer core clock cycles (LPTimer core clock may be different from APB clock). This bit can be set only when the LPTIM is enabled. It is automatically reset by hardware. COUNTRST must never be set to '1' by software before it is already cleared to '0' by hardware. Software should consequently check that COUNTRST bit is already cleared to '0' before attempting to set it to '1'. + bit_offset: 3 + bit_size: 1 + - name: RSTARE + description: Reset after read enable This bit is set and cleared by software. When RSTARE is set to '1', any read access to LPTIM_CNT register asynchronously resets LPTIM_CNT register content. This bit can be set only when the LPTIM is enabled. + bit_offset: 4 + bit_size: 1 +fieldset/DIER_intput: + description: LPTIM interrupt enable register. + fields: + - name: CC1IE + description: Capture/compare 1 interrupt enable. + bit_offset: 0 + bit_size: 1 + - name: ARRMIE + description: Autoreload match Interrupt Enable. + bit_offset: 1 + bit_size: 1 + - name: EXTTRIGIE + description: External trigger valid edge Interrupt Enable. + bit_offset: 2 + bit_size: 1 + - name: ARROKIE + description: Autoreload register update OK Interrupt Enable. + bit_offset: 4 + bit_size: 1 + - name: UPIE + description: 'Direction change to UP Interrupt Enable Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 5 + bit_size: 1 + - name: DOWNIE + description: 'Direction change to down Interrupt Enable Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 6 + bit_size: 1 + - name: UEIE + description: Update event interrupt enable. + bit_offset: 7 + bit_size: 1 + - name: REPOKIE + description: Repetition register update OK interrupt Enable. + bit_offset: 8 + bit_size: 1 + - name: CC2IE + description: 'Capture/compare 2 interrupt enable Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' + bit_offset: 9 + bit_size: 1 + - name: CC1OIE + description: 'Capture/compare 1 over-capture interrupt enable Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' + bit_offset: 12 + bit_size: 1 + - name: CC2OIE + description: 'Capture/compare 2 over-capture interrupt enable Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' + bit_offset: 13 + bit_size: 1 + - name: CC1DE + description: 'Capture/compare 1 DMA request enable Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' + bit_offset: 16 + bit_size: 1 + - name: UEDE + description: 'Update event DMA request enable Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' + bit_offset: 23 + bit_size: 1 + - name: CC2DE + description: 'Capture/compare 2 DMA request enable Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' + bit_offset: 25 + bit_size: 1 +fieldset/DIER_output: + description: LPTIM interrupt enable register. + fields: + - name: CC1IE + description: Capture/compare 1 interrupt enable. + bit_offset: 0 + bit_size: 1 + - name: ARRMIE + description: Autoreload match Interrupt Enable. + bit_offset: 1 + bit_size: 1 + - name: EXTTRIGIE + description: External trigger valid edge Interrupt Enable. + bit_offset: 2 + bit_size: 1 + - name: CMP1OKIE + description: Compare register 1 update OK interrupt enable. + bit_offset: 3 + bit_size: 1 + - name: ARROKIE + description: Autoreload register update OK Interrupt Enable. + bit_offset: 4 + bit_size: 1 + - name: UPIE + description: 'Direction change to UP Interrupt Enable Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 5 + bit_size: 1 + - name: DOWNIE + description: 'Direction change to down Interrupt Enable Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 6 + bit_size: 1 + - name: UEIE + description: Update event interrupt enable. + bit_offset: 7 + bit_size: 1 + - name: REPOKIE + description: Repetition register update OK interrupt Enable. + bit_offset: 8 + bit_size: 1 +fieldset/ICR_intput: + description: LPTIM interrupt clear register. + fields: + - name: CC1CF + description: Capture/compare 1 clear flag Writing 1 to this bit clears the CC1IF flag in the LPTIM_ISR register. + bit_offset: 0 + bit_size: 1 + - name: ARRMCF + description: Autoreload match clear flag Writing 1 to this bit clears the ARRM flag in the LPTIM_ISR register. + bit_offset: 1 + bit_size: 1 + - name: EXTTRIGCF + description: External trigger valid edge clear flag Writing 1 to this bit clears the EXTTRIG flag in the LPTIM_ISR register. + bit_offset: 2 + bit_size: 1 + - name: ARROKCF + description: Autoreload register update OK clear flag Writing 1 to this bit clears the ARROK flag in the LPTIM_ISR register. + bit_offset: 4 + bit_size: 1 + - name: UPCF + description: 'Direction change to UP clear flag Writing 1 to this bit clear the UP flag in the LPTIM_ISR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 5 + bit_size: 1 + - name: DOWNCF + description: 'Direction change to down clear flag Writing 1 to this bit clear the DOWN flag in the LPTIM_ISR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 6 + bit_size: 1 + - name: UECF + description: Update event clear flag Writing 1 to this bit clear the UE flag in the LPTIM_ISR register. + bit_offset: 7 + bit_size: 1 + - name: REPOKCF + description: Repetition register update OK clear flag Writing 1 to this bit clears the REPOK flag in the LPTIM_ISR register. + bit_offset: 8 + bit_size: 1 + - name: CC2CF + description: 'Capture/compare 2 clear flag Writing 1 to this bit clears the CC2IF flag in the LPTIM_ISR register. Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' + bit_offset: 9 + bit_size: 1 + - name: CC1OCF + description: 'Capture/compare 1 over-capture clear flag Writing 1 to this bit clears the CC1OF flag in the LPTIM_ISR register. Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' + bit_offset: 12 + bit_size: 1 + - name: CC2OCF + description: 'Capture/compare 2 over-capture clear flag Writing 1 to this bit clears the CC2OF flag in the LPTIM_ISR register. Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' + bit_offset: 13 + bit_size: 1 + - name: DIEROKCF + description: Interrupt enable register update OK clear flag Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register. + bit_offset: 24 + bit_size: 1 +fieldset/ICR_output: + description: LPTIM interrupt clear register. + fields: + - name: CC1CF + description: Capture/compare 1 clear flag Writing 1 to this bit clears the CC1IF flag in the LPTIM_ISR register. + bit_offset: 0 + bit_size: 1 + - name: ARRMCF + description: Autoreload match clear flag Writing 1 to this bit clears the ARRM flag in the LPTIM_ISR register. + bit_offset: 1 + bit_size: 1 + - name: EXTTRIGCF + description: External trigger valid edge clear flag Writing 1 to this bit clears the EXTTRIG flag in the LPTIM_ISR register. + bit_offset: 2 + bit_size: 1 + - name: CMP1OKCF + description: Compare register 1 update OK clear flag Writing 1 to this bit clears the CMP1OK flag in the LPTIM_ISR register. + bit_offset: 3 + bit_size: 1 + - name: ARROKCF + description: Autoreload register update OK clear flag Writing 1 to this bit clears the ARROK flag in the LPTIM_ISR register. + bit_offset: 4 + bit_size: 1 + - name: UPCF + description: 'Direction change to UP clear flag Writing 1 to this bit clear the UP flag in the LPTIM_ISR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 5 + bit_size: 1 + - name: DOWNCF + description: 'Direction change to down clear flag Writing 1 to this bit clear the DOWN flag in the LPTIM_ISR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 6 + bit_size: 1 + - name: UECF + description: Update event clear flag Writing 1 to this bit clear the UE flag in the LPTIM_ISR register. + bit_offset: 7 + bit_size: 1 + - name: REPOKCF + description: Repetition register update OK clear flag Writing 1 to this bit clears the REPOK flag in the LPTIM_ISR register. + bit_offset: 8 + bit_size: 1 + - name: DIEROKCF + description: Interrupt enable register update OK clear flag Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register. + bit_offset: 24 + bit_size: 1 +fieldset/ISR_intput: + description: LPTIM interrupt and status register. + fields: + - name: CC1IF + description: 'capture 1 interrupt flag If channel CC1 is configured as input: CC1IF is set by hardware to inform application that the current value of the counter is captured in LPTIM_CCR1 register. The corresponding interrupt or DMA request is generated if enabled. The CC1OF flag is set if the CC1IF flag was already high.' + bit_offset: 0 + bit_size: 1 + - name: ARRM + description: Autoreload match ARRM is set by hardware to inform application that LPTIM_CNT register’s value reached the LPTIM_ARR register’s value. ARRM flag can be cleared by writing 1 to the ARRMCF bit in the LPTIM_ICR register. + bit_offset: 1 + bit_size: 1 + - name: EXTTRIG + description: External trigger edge event EXTTRIG is set by hardware to inform application that a valid edge on the selected external trigger input has occurred. If the trigger is ignored because the timer has already started, then this flag is not set. EXTTRIG flag can be cleared by writing 1 to the EXTTRIGCF bit in the LPTIM_ICR register. + bit_offset: 2 + bit_size: 1 + - name: ARROK + description: Autoreload register update OK ARROK is set by hardware to inform application that the APB bus write operation to the LPTIM_ARR register has been successfully completed. ARROK flag can be cleared by writing 1 to the ARROKCF bit in the LPTIM_ICR register. + bit_offset: 4 + bit_size: 1 + - name: UP + description: 'Counter direction change down to up In Encoder mode, UP bit is set by hardware to inform application that the counter direction has changed from down to up. UP flag can be cleared by writing 1 to the UPCF bit in the LPTIM_ICR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 5 + bit_size: 1 + - name: DOWN + description: 'Counter direction change up to down In Encoder mode, DOWN bit is set by hardware to inform application that the counter direction has changed from up to down. DOWN flag can be cleared by writing 1 to the DOWNCF bit in the LPTIM_ICR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 6 + bit_size: 1 + - name: UE + description: LPTIM update event occurred UE is set by hardware to inform application that an update event was generated. UE flag can be cleared by writing 1 to the UECF bit in the LPTIM_ICR register. + bit_offset: 7 + bit_size: 1 + - name: REPOK + description: Repetition register update OK REPOK is set by hardware to inform application that the APB bus write operation to the LPTIM_RCR register has been successfully completed. REPOK flag can be cleared by writing 1 to the REPOKCF bit in the LPTIM_ICR register. + bit_offset: 8 + bit_size: 1 + - name: CC2IF + description: 'Capture 2 interrupt flag If channel CC2 is configured as input: CC2IF is set by hardware to inform application that the current value of the counter is captured in LPTIM_CCR2 register. The corresponding interrupt or DMA request is generated if enabled. The CC2OF flag is set if the CC2IF flag was already high. Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' + bit_offset: 9 + bit_size: 1 + - name: CC1OF + description: 'Capture 1 over-capture flag This flag is set by hardware only when the corresponding channel is configured in input capture mode. It is cleared by software by writing 1 to the CC1OCF bit in the LPTIM_ICR register. Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' + bit_offset: 12 + bit_size: 1 + - name: CC2OF + description: 'Capture 2 over-capture flag This flag is set by hardware only when the corresponding channel is configured in input capture mode. It is cleared by software by writing 1 to the CC2OCF bit in the LPTIM_ICR register. Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' + bit_offset: 13 + bit_size: 1 + - name: DIEROK + description: Interrupt enable register update OK DIEROK is set by hardware to inform application that the APB bus write operation to the LPTIM_DIER register has been successfully completed. DIEROK flag can be cleared by writing 1 to the DIEROKCF bit in the LPTIM_ICR register. + bit_offset: 24 + bit_size: 1 +fieldset/ISR_output: + description: LPTIM interrupt and status register. + fields: + - name: CC1IF + description: Compare 1 interrupt flag The CC1IF flag is set by hardware to inform application that LPTIM_CNT register value matches the compare register's value. The CC1IF flag can be cleared by writing 1 to the CC1CF bit in the LPTIM_ICR register. + bit_offset: 0 + bit_size: 1 + - name: ARRM + description: Autoreload match ARRM is set by hardware to inform application that LPTIM_CNT register’s value reached the LPTIM_ARR register’s value. ARRM flag can be cleared by writing 1 to the ARRMCF bit in the LPTIM_ICR register. + bit_offset: 1 + bit_size: 1 + - name: EXTTRIG + description: External trigger edge event EXTTRIG is set by hardware to inform application that a valid edge on the selected external trigger input has occurred. If the trigger is ignored because the timer has already started, then this flag is not set. EXTTRIG flag can be cleared by writing 1 to the EXTTRIGCF bit in the LPTIM_ICR register. + bit_offset: 2 + bit_size: 1 + - name: CMP1OK + description: Compare register 1 update OK CMP1OK is set by hardware to inform application that the APB bus write operation to the LPTIM_CCR1 register has been successfully completed. CMP1OK flag can be cleared by writing 1 to the CMP1OKCF bit in the LPTIM_ICR register. + bit_offset: 3 + bit_size: 1 + - name: ARROK + description: Autoreload register update OK ARROK is set by hardware to inform application that the APB bus write operation to the LPTIM_ARR register has been successfully completed. ARROK flag can be cleared by writing 1 to the ARROKCF bit in the LPTIM_ICR register. + bit_offset: 4 + bit_size: 1 + - name: UP + description: 'Counter direction change down to up In Encoder mode, UP bit is set by hardware to inform application that the counter direction has changed from down to up. UP flag can be cleared by writing 1 to the UPCF bit in the LPTIM_ICR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 5 + bit_size: 1 + - name: DOWN + description: 'Counter direction change up to down In Encoder mode, DOWN bit is set by hardware to inform application that the counter direction has changed from up to down. DOWN flag can be cleared by writing 1 to the DOWNCF bit in the LPTIM_ICR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 6 + bit_size: 1 + - name: UE + description: LPTIM update event occurred UE is set by hardware to inform application that an update event was generated. UE flag can be cleared by writing 1 to the UECF bit in the LPTIM_ICR register. + bit_offset: 7 + bit_size: 1 + - name: REPOK + description: Repetition register update OK REPOK is set by hardware to inform application that the APB bus write operation to the LPTIM_RCR register has been successfully completed. REPOK flag can be cleared by writing 1 to the REPOKCF bit in the LPTIM_ICR register. + bit_offset: 8 + bit_size: 1 + - name: DIEROK + description: Interrupt enable register update OK DIEROK is set by hardware to inform application that the APB bus write operation to the LPTIM_DIER register has been successfully completed. DIEROK flag can be cleared by writing 1 to the DIEROKCF bit in the LPTIM_ICR register. + bit_offset: 24 + bit_size: 1 +fieldset/RCR: + description: LPTIM repetition register. + fields: + - name: REP + description: Repetition register value REP is the repetition value for the LPTIM. + bit_offset: 0 + bit_size: 8 From 43e02bf3ec62506cb7cc6ee4f91c373f58c448d3 Mon Sep 17 00:00:00 2001 From: eZio Pan Date: Thu, 4 Apr 2024 20:09:00 +0800 Subject: [PATCH 05/41] apply transform --- data/registers/lptim_v2h5.yaml | 240 +++++++++++++++++---------------- transforms/LPTIM.yaml | 57 ++++++++ 2 files changed, 180 insertions(+), 117 deletions(-) create mode 100644 transforms/LPTIM.yaml diff --git a/data/registers/lptim_v2h5.yaml b/data/registers/lptim_v2h5.yaml index 0728ec4..c11e2bf 100644 --- a/data/registers/lptim_v2h5.yaml +++ b/data/registers/lptim_v2h5.yaml @@ -1,30 +1,26 @@ -block/LPTIM1: +block/Input: + items: + - name: ISR + description: LPTIM interrupt and status register. + byte_offset: 0 + fieldset: ISR_input + - name: ICR + description: LPTIM interrupt clear register. + byte_offset: 4 + fieldset: ICR_input + - name: DIER + description: LPTIM interrupt enable register. + byte_offset: 8 + fieldset: DIER_input +block/LPTIM_Adv: description: Low power timer. items: - - name: ISR_intput - description: LPTIM interrupt and status register. + - name: Input byte_offset: 0 - fieldset: ISR_intput - - name: ISR_output - description: LPTIM interrupt and status register. + block: Input + - name: Output byte_offset: 0 - fieldset: ISR_output - - name: ICR_intput - description: LPTIM interrupt clear register. - byte_offset: 4 - fieldset: ICR_intput - - name: ICR_output - description: LPTIM interrupt clear register. - byte_offset: 4 - fieldset: ICR_output - - name: DIER_intput - description: LPTIM interrupt enable register. - byte_offset: 8 - fieldset: DIER_intput - - name: DIER_output - description: LPTIM interrupt enable register. - byte_offset: 8 - fieldset: DIER_output + block: Output - name: CFGR description: LPTIM configuration register. byte_offset: 12 @@ -33,10 +29,13 @@ block/LPTIM1: description: LPTIM control register. byte_offset: 16 fieldset: CR - - name: CCR1 + - name: CCR description: LPTIM compare register 1. + array: + len: 2 + stride: 32 byte_offset: 20 - fieldset: CCR1 + fieldset: CCR - name: ARR description: LPTIM autoreload register. byte_offset: 24 @@ -57,10 +56,20 @@ block/LPTIM1: description: LPTIM capture/compare mode register 1. byte_offset: 44 fieldset: CCMR1 - - name: CCR2 - description: LPTIM compare register 2. - byte_offset: 52 - fieldset: CCR2 +block/Output: + items: + - name: ISR + description: LPTIM interrupt and status register. + byte_offset: 0 + fieldset: ISR_output + - name: ICR + description: LPTIM interrupt clear register. + byte_offset: 4 + fieldset: ICR_output + - name: DIER + description: LPTIM interrupt enable register. + byte_offset: 8 + fieldset: DIER_output fieldset/ARR: description: LPTIM autoreload register. fields: @@ -71,60 +80,48 @@ fieldset/ARR: fieldset/CCMR1: description: LPTIM capture/compare mode register 1. fields: - - name: CC1SEL + - name: CCSEL description: Capture/compare 1 selection This bitfield defines the direction of the channel input (capture) or output mode. bit_offset: 0 bit_size: 1 - - name: CC1E + array: + len: 2 + stride: 16 + - name: CCE description: Capture/compare 1 output enable. This bit determines if a capture of the counter value can actually be done into the input capture/compare register 1 (LPTIM_CCR1) or not. bit_offset: 1 bit_size: 1 - - name: CC1P + array: + len: 2 + stride: 16 + - name: CCP description: Capture/compare 1 output polarity. Only bit2 is used to set polarity when output mode is enabled, bit3 is don't care. This field is used to select the IC1 polarity for capture operations. bit_offset: 2 bit_size: 2 - - name: IC1PSC + array: + len: 2 + stride: 16 + - name: ICPSC description: Input capture 1 prescaler This bitfield defines the ratio of the prescaler acting on the CC1 input (IC1). bit_offset: 8 bit_size: 2 - - name: IC1F + array: + len: 2 + stride: 16 + - name: ICF description: Input capture 1 filter This bitfield defines the number of consecutive equal samples that should be detected when a level change occurs on an external input capture signal before it is considered as a valid level transition. An internal clock source must be present to use this feature. bit_offset: 12 bit_size: 2 - - name: CC2SEL - description: Capture/compare 2 selection This bitfield defines the direction of the channel, input (capture) or output mode. - bit_offset: 16 - bit_size: 1 - - name: CC2E - description: Capture/compare 2 output enable. This bit determines if a capture of the counter value can actually be done into the input capture/compare register 2 (LPTIM_CCR2) or not. - bit_offset: 17 - bit_size: 1 - - name: CC2P - description: Capture/compare 2 output polarity. Only bit2 is used to set polarity when output mode is enabled, bit3 is don't care. This field is used to select the IC2 polarity for capture operations. - bit_offset: 18 - bit_size: 2 - - name: IC2PSC - description: Input capture 2 prescaler This bitfield defines the ratio of the prescaler acting on the CC2 input (IC2). - bit_offset: 24 - bit_size: 2 - - name: IC2F - description: Input capture 2 filter This bitfield defines the number of consecutive equal samples that should be detected when a level change occurs on an external input capture signal before it is considered as a valid level transition. An internal clock source must be present to use this feature. - bit_offset: 28 - bit_size: 2 -fieldset/CCR1: + array: + len: 2 + stride: 16 +fieldset/CCR: description: LPTIM compare register 1. fields: - - name: CCR1 + - name: CCR description: 'Capture/compare 1 value If channel CC1 is configured as output: CCR1 is the value to be loaded in the capture/compare 1 register. Depending on the PRELOAD option, the CCR1 register is immediately updated if the PRELOAD bit is reset and updated at next LPTIM update event if PREOAD bit is reset. The capture/compare register 1 contains the value to be compared to the counter LPTIM_CNT and signaled on OC1 output. If channel CC1 is configured as input: CCR1 contains the counter value transferred by the last input capture 1 event. The LPTIM_CCR1 register is read-only and cannot be programmed. If LPTIM does not implement any channel: The compare register 1 contains the value to be compared to the counter LPTIM_CNT and signaled on LPTIM output.' bit_offset: 0 bit_size: 16 -fieldset/CCR2: - description: LPTIM compare register 2. - fields: - - name: CCR2 - description: 'Capture/compare 2 value If channel CC2 is configured as output: CCR2 is the value to be loaded in the capture/compare 2 register. Depending on the PRELOAD option, the CCR2 register is immediately updated if the PRELOAD bit is reset and updated at next LPTIM update event if PREOAD bit is reset. The capture/compare register 2 contains the value to be compared to the counter LPTIM_CNT and signaled on OC2 output. If channel CC2 is configured as input: CCR2 contains the counter value transferred by the last input capture 2 event. The LPTIM_CCR2 register is read-only and cannot be programmed.' - bit_offset: 0 - bit_size: 16 fieldset/CFGR: description: LPTIM configuration register. fields: @@ -183,22 +180,20 @@ fieldset/CFGR: fieldset/CFGR2: description: LPTIM configuration register 2. fields: - - name: IN1SEL + - name: INSEL description: LPTIM input 1 selection The IN1SEL bits control the LPTIM input 1 multiplexer, which connects LPTIM input 1 to one of the available inputs. For connection details refer to. bit_offset: 0 bit_size: 2 - - name: IN2SEL - description: LPTIM input 2 selection The IN2SEL bits control the LPTIM input 2 multiplexer, which connects LPTIM input 2 to one of the available inputs. For connection details refer to. - bit_offset: 4 - bit_size: 2 - - name: IC1SEL + array: + len: 2 + stride: 4 + - name: ICSEL description: LPTIM input capture 1 selection The IC1SEL bits control the LPTIM Input capture 1 multiplexer, which connects LPTIM Input capture 1 to one of the available inputs. For connection details refer to. bit_offset: 16 bit_size: 2 - - name: IC2SEL - description: LPTIM input capture 2 selection The IC2SEL bits control the LPTIM Input capture 2 multiplexer, which connects LPTIM Input capture 2 to one of the available inputs. For connection details refer to. - bit_offset: 20 - bit_size: 2 + array: + len: 2 + stride: 4 fieldset/CNT: description: LPTIM counter register. fields: @@ -229,13 +224,16 @@ fieldset/CR: description: Reset after read enable This bit is set and cleared by software. When RSTARE is set to '1', any read access to LPTIM_CNT register asynchronously resets LPTIM_CNT register content. This bit can be set only when the LPTIM is enabled. bit_offset: 4 bit_size: 1 -fieldset/DIER_intput: +fieldset/DIER_input: description: LPTIM interrupt enable register. fields: - - name: CC1IE + - name: CCIE description: Capture/compare 1 interrupt enable. bit_offset: 0 bit_size: 1 + array: + len: 2 + stride: 9 - name: ARRMIE description: Autoreload match Interrupt Enable. bit_offset: 1 @@ -264,37 +262,34 @@ fieldset/DIER_intput: description: Repetition register update OK interrupt Enable. bit_offset: 8 bit_size: 1 - - name: CC2IE - description: 'Capture/compare 2 interrupt enable Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' - bit_offset: 9 - bit_size: 1 - - name: CC1OIE + - name: CCOIE description: 'Capture/compare 1 over-capture interrupt enable Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' bit_offset: 12 bit_size: 1 - - name: CC2OIE - description: 'Capture/compare 2 over-capture interrupt enable Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' - bit_offset: 13 - bit_size: 1 - - name: CC1DE + array: + len: 2 + stride: 1 + - name: CCDE description: 'Capture/compare 1 DMA request enable Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' bit_offset: 16 bit_size: 1 + array: + len: 2 + stride: 9 - name: UEDE description: 'Update event DMA request enable Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' bit_offset: 23 bit_size: 1 - - name: CC2DE - description: 'Capture/compare 2 DMA request enable Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' - bit_offset: 25 - bit_size: 1 fieldset/DIER_output: description: LPTIM interrupt enable register. fields: - - name: CC1IE + - name: CCIE description: Capture/compare 1 interrupt enable. bit_offset: 0 bit_size: 1 + array: + len: 1 + stride: 0 - name: ARRMIE description: Autoreload match Interrupt Enable. bit_offset: 1 @@ -303,10 +298,13 @@ fieldset/DIER_output: description: External trigger valid edge Interrupt Enable. bit_offset: 2 bit_size: 1 - - name: CMP1OKIE + - name: CMPOKIE description: Compare register 1 update OK interrupt enable. bit_offset: 3 bit_size: 1 + array: + len: 1 + stride: 0 - name: ARROKIE description: Autoreload register update OK Interrupt Enable. bit_offset: 4 @@ -327,13 +325,16 @@ fieldset/DIER_output: description: Repetition register update OK interrupt Enable. bit_offset: 8 bit_size: 1 -fieldset/ICR_intput: +fieldset/ICR_input: description: LPTIM interrupt clear register. fields: - - name: CC1CF + - name: CCCF description: Capture/compare 1 clear flag Writing 1 to this bit clears the CC1IF flag in the LPTIM_ISR register. bit_offset: 0 bit_size: 1 + array: + len: 2 + stride: 9 - name: ARRMCF description: Autoreload match clear flag Writing 1 to this bit clears the ARRM flag in the LPTIM_ISR register. bit_offset: 1 @@ -362,18 +363,13 @@ fieldset/ICR_intput: description: Repetition register update OK clear flag Writing 1 to this bit clears the REPOK flag in the LPTIM_ISR register. bit_offset: 8 bit_size: 1 - - name: CC2CF - description: 'Capture/compare 2 clear flag Writing 1 to this bit clears the CC2IF flag in the LPTIM_ISR register. Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' - bit_offset: 9 - bit_size: 1 - - name: CC1OCF + - name: CCOCF description: 'Capture/compare 1 over-capture clear flag Writing 1 to this bit clears the CC1OF flag in the LPTIM_ISR register. Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' bit_offset: 12 bit_size: 1 - - name: CC2OCF - description: 'Capture/compare 2 over-capture clear flag Writing 1 to this bit clears the CC2OF flag in the LPTIM_ISR register. Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' - bit_offset: 13 - bit_size: 1 + array: + len: 2 + stride: 1 - name: DIEROKCF description: Interrupt enable register update OK clear flag Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register. bit_offset: 24 @@ -381,10 +377,13 @@ fieldset/ICR_intput: fieldset/ICR_output: description: LPTIM interrupt clear register. fields: - - name: CC1CF + - name: CCCF description: Capture/compare 1 clear flag Writing 1 to this bit clears the CC1IF flag in the LPTIM_ISR register. bit_offset: 0 bit_size: 1 + array: + len: 1 + stride: 0 - name: ARRMCF description: Autoreload match clear flag Writing 1 to this bit clears the ARRM flag in the LPTIM_ISR register. bit_offset: 1 @@ -393,10 +392,13 @@ fieldset/ICR_output: description: External trigger valid edge clear flag Writing 1 to this bit clears the EXTTRIG flag in the LPTIM_ISR register. bit_offset: 2 bit_size: 1 - - name: CMP1OKCF + - name: CMPOKCF description: Compare register 1 update OK clear flag Writing 1 to this bit clears the CMP1OK flag in the LPTIM_ISR register. bit_offset: 3 bit_size: 1 + array: + len: 1 + stride: 0 - name: ARROKCF description: Autoreload register update OK clear flag Writing 1 to this bit clears the ARROK flag in the LPTIM_ISR register. bit_offset: 4 @@ -421,13 +423,16 @@ fieldset/ICR_output: description: Interrupt enable register update OK clear flag Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register. bit_offset: 24 bit_size: 1 -fieldset/ISR_intput: +fieldset/ISR_input: description: LPTIM interrupt and status register. fields: - - name: CC1IF + - name: CCIF description: 'capture 1 interrupt flag If channel CC1 is configured as input: CC1IF is set by hardware to inform application that the current value of the counter is captured in LPTIM_CCR1 register. The corresponding interrupt or DMA request is generated if enabled. The CC1OF flag is set if the CC1IF flag was already high.' bit_offset: 0 bit_size: 1 + array: + len: 2 + stride: 9 - name: ARRM description: Autoreload match ARRM is set by hardware to inform application that LPTIM_CNT register’s value reached the LPTIM_ARR register’s value. ARRM flag can be cleared by writing 1 to the ARRMCF bit in the LPTIM_ICR register. bit_offset: 1 @@ -456,18 +461,13 @@ fieldset/ISR_intput: description: Repetition register update OK REPOK is set by hardware to inform application that the APB bus write operation to the LPTIM_RCR register has been successfully completed. REPOK flag can be cleared by writing 1 to the REPOKCF bit in the LPTIM_ICR register. bit_offset: 8 bit_size: 1 - - name: CC2IF - description: 'Capture 2 interrupt flag If channel CC2 is configured as input: CC2IF is set by hardware to inform application that the current value of the counter is captured in LPTIM_CCR2 register. The corresponding interrupt or DMA request is generated if enabled. The CC2OF flag is set if the CC2IF flag was already high. Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' - bit_offset: 9 - bit_size: 1 - - name: CC1OF + - name: CCOF description: 'Capture 1 over-capture flag This flag is set by hardware only when the corresponding channel is configured in input capture mode. It is cleared by software by writing 1 to the CC1OCF bit in the LPTIM_ICR register. Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' bit_offset: 12 bit_size: 1 - - name: CC2OF - description: 'Capture 2 over-capture flag This flag is set by hardware only when the corresponding channel is configured in input capture mode. It is cleared by software by writing 1 to the CC2OCF bit in the LPTIM_ICR register. Note: If LPTIM does not implement at least 2 channels this bit is reserved. Please refer to.' - bit_offset: 13 - bit_size: 1 + array: + len: 2 + stride: 1 - name: DIEROK description: Interrupt enable register update OK DIEROK is set by hardware to inform application that the APB bus write operation to the LPTIM_DIER register has been successfully completed. DIEROK flag can be cleared by writing 1 to the DIEROKCF bit in the LPTIM_ICR register. bit_offset: 24 @@ -475,10 +475,13 @@ fieldset/ISR_intput: fieldset/ISR_output: description: LPTIM interrupt and status register. fields: - - name: CC1IF + - name: CCIF description: Compare 1 interrupt flag The CC1IF flag is set by hardware to inform application that LPTIM_CNT register value matches the compare register's value. The CC1IF flag can be cleared by writing 1 to the CC1CF bit in the LPTIM_ICR register. bit_offset: 0 bit_size: 1 + array: + len: 1 + stride: 0 - name: ARRM description: Autoreload match ARRM is set by hardware to inform application that LPTIM_CNT register’s value reached the LPTIM_ARR register’s value. ARRM flag can be cleared by writing 1 to the ARRMCF bit in the LPTIM_ICR register. bit_offset: 1 @@ -487,10 +490,13 @@ fieldset/ISR_output: description: External trigger edge event EXTTRIG is set by hardware to inform application that a valid edge on the selected external trigger input has occurred. If the trigger is ignored because the timer has already started, then this flag is not set. EXTTRIG flag can be cleared by writing 1 to the EXTTRIGCF bit in the LPTIM_ICR register. bit_offset: 2 bit_size: 1 - - name: CMP1OK + - name: CMPOK description: Compare register 1 update OK CMP1OK is set by hardware to inform application that the APB bus write operation to the LPTIM_CCR1 register has been successfully completed. CMP1OK flag can be cleared by writing 1 to the CMP1OKCF bit in the LPTIM_ICR register. bit_offset: 3 bit_size: 1 + array: + len: 1 + stride: 0 - name: ARROK description: Autoreload register update OK ARROK is set by hardware to inform application that the APB bus write operation to the LPTIM_ARR register has been successfully completed. ARROK flag can be cleared by writing 1 to the ARROKCF bit in the LPTIM_ICR register. bit_offset: 4 diff --git a/transforms/LPTIM.yaml b/transforms/LPTIM.yaml new file mode 100644 index 0000000..4a2bba1 --- /dev/null +++ b/transforms/LPTIM.yaml @@ -0,0 +1,57 @@ +transforms: + + - !Rename + from: ^LPTIM1$ + to: LPTIM_Adv + + - !RenameRegisters + block: LPTIM_Adv + from: (.*)intput + to: ${1}input + + - !Rename + from: (.*)intput + to: ${1}input + + - !MakeBlock + blocks: ^LPTIM_Adv$ + from: ^(.+)_output$ + to_outer: Output + to_block: Output + to_inner: ${1} + + - !MakeBlock + blocks: ^LPTIM_Adv$ + from: ^(.+)_input$ + to_outer: Input + to_block: Input + to_inner: ${1} + + - !RenameFields + fieldset: CCR\d + from: CCR\d + to: CCR + + - !MergeFieldsets + from: CCR\d + to: CCR + + - !MakeRegisterArray + blocks: LPTIM_Adv + from: CCR\d + to: CCR + + - !MakeFieldArray + fieldsets: CFGR2 + from: (I[CN])\d(SEL) + to: $1$2 + + - !MakeFieldArray + fieldsets: CCMR\d + from: (.*)\d(.*) + to: $1$2 + + - !MakeFieldArray + fieldsets: (ISR|ICR|DIER).* + from: (.*)\d(.*) + to: $1$2 From 8bfe8b90f4e0119f324eecc99bdfb9cc1e3f138c Mon Sep 17 00:00:00 2001 From: eZio Pan Date: Thu, 4 Apr 2024 21:15:34 +0800 Subject: [PATCH 06/41] split lptim and bug fix ... LPTIM4 has less function, so it's a LPTIM_Basic, the reset are full feature, thus a LPTIM_Adv. --- data/registers/lptim_v2h5.yaml | 142 ++++++++++++++++++++++++++------- 1 file changed, 112 insertions(+), 30 deletions(-) diff --git a/data/registers/lptim_v2h5.yaml b/data/registers/lptim_v2h5.yaml index c11e2bf..3824522 100644 --- a/data/registers/lptim_v2h5.yaml +++ b/data/registers/lptim_v2h5.yaml @@ -1,26 +1,40 @@ -block/Input: +block/IC: items: - name: ISR description: LPTIM interrupt and status register. byte_offset: 0 - fieldset: ISR_input + fieldset: ISR_IC - name: ICR description: LPTIM interrupt clear register. byte_offset: 4 - fieldset: ICR_input + fieldset: ICR_IC - name: DIER description: LPTIM interrupt enable register. byte_offset: 8 - fieldset: DIER_input + fieldset: DIER_IC block/LPTIM_Adv: - description: Low power timer. + extends: LPTIM_Basic + description: Low power timer with Output Compare items: - - name: Input + - name: InputCapture byte_offset: 0 - block: Input - - name: Output + block: IC + - name: OutputCompare byte_offset: 0 - block: Output + block: OC_Adv + - name: CCR + description: LPTIM compare register 1. + array: + len: 2 + stride: 32 + byte_offset: 20 + fieldset: CCR +block/LPTIM_Basic: + description: Low power timer with Output Compare + items: + - name: OutputCompare + byte_offset: 0 + block: OC_Basic - name: CFGR description: LPTIM configuration register. byte_offset: 12 @@ -32,7 +46,7 @@ block/LPTIM_Adv: - name: CCR description: LPTIM compare register 1. array: - len: 2 + len: 1 stride: 32 byte_offset: 20 fieldset: CCR @@ -52,24 +66,38 @@ block/LPTIM_Adv: description: LPTIM repetition register. byte_offset: 40 fieldset: RCR - - name: CCMR1 - description: LPTIM capture/compare mode register 1. - byte_offset: 44 - fieldset: CCMR1 -block/Output: +block/OC_Adv: items: - name: ISR description: LPTIM interrupt and status register. byte_offset: 0 - fieldset: ISR_output + fieldset: ISR_OC_Adv - name: ICR description: LPTIM interrupt clear register. byte_offset: 4 - fieldset: ICR_output + fieldset: ICR_OC_Adv - name: DIER description: LPTIM interrupt enable register. byte_offset: 8 - fieldset: DIER_output + fieldset: DIER_OC_Adv + - name: CCMR1 + description: LPTIM capture/compare mode register 1. + byte_offset: 44 + fieldset: CCMR1 +block/OC_Basic: + items: + - name: ISR + description: LPTIM interrupt and status register. + byte_offset: 0 + fieldset: ISR_OC_Basic + - name: ICR + description: LPTIM interrupt clear register. + byte_offset: 4 + fieldset: ICR_OC_Basic + - name: DIER + description: LPTIM interrupt enable register. + byte_offset: 8 + fieldset: DIER_OC_Basic fieldset/ARR: description: LPTIM autoreload register. fields: @@ -224,7 +252,7 @@ fieldset/CR: description: Reset after read enable This bit is set and cleared by software. When RSTARE is set to '1', any read access to LPTIM_CNT register asynchronously resets LPTIM_CNT register content. This bit can be set only when the LPTIM is enabled. bit_offset: 4 bit_size: 1 -fieldset/DIER_input: +fieldset/DIER_IC: description: LPTIM interrupt enable register. fields: - name: CCIE @@ -280,7 +308,25 @@ fieldset/DIER_input: description: 'Update event DMA request enable Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' bit_offset: 23 bit_size: 1 -fieldset/DIER_output: +fieldset/DIER_OC_Adv: + extends: DIER_OC_Basic + description: LPTIM interrupt enable register. + fields: + - name: CCIE + description: Capture/compare 1 interrupt enable. + bit_offset: 0 + bit_size: 1 + array: + len: 2 + stride: 9 + - name: CMPOKIE + description: Compare register 1 update OK interrupt enable. + bit_offset: 3 + bit_size: 1 + array: + len: 2 + stride: 16 +fieldset/DIER_OC_Basic: description: LPTIM interrupt enable register. fields: - name: CCIE @@ -289,7 +335,7 @@ fieldset/DIER_output: bit_size: 1 array: len: 1 - stride: 0 + stride: 9 - name: ARRMIE description: Autoreload match Interrupt Enable. bit_offset: 1 @@ -304,7 +350,7 @@ fieldset/DIER_output: bit_size: 1 array: len: 1 - stride: 0 + stride: 16 - name: ARROKIE description: Autoreload register update OK Interrupt Enable. bit_offset: 4 @@ -325,7 +371,7 @@ fieldset/DIER_output: description: Repetition register update OK interrupt Enable. bit_offset: 8 bit_size: 1 -fieldset/ICR_input: +fieldset/ICR_IC: description: LPTIM interrupt clear register. fields: - name: CCCF @@ -374,7 +420,25 @@ fieldset/ICR_input: description: Interrupt enable register update OK clear flag Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register. bit_offset: 24 bit_size: 1 -fieldset/ICR_output: +fieldset/ICR_OC_Adv: + extends: ICR_OC_Basic + description: LPTIM interrupt clear register. + fields: + - name: CCCF + description: Capture/compare 1 clear flag Writing 1 to this bit clears the CC1IF flag in the LPTIM_ISR register. + bit_offset: 0 + bit_size: 1 + array: + len: 2 + stride: 9 + - name: CMPOKCF + description: Compare register 1 update OK clear flag Writing 1 to this bit clears the CMP1OK flag in the LPTIM_ISR register. + bit_offset: 3 + bit_size: 1 + array: + len: 2 + stride: 16 +fieldset/ICR_OC_Basic: description: LPTIM interrupt clear register. fields: - name: CCCF @@ -383,7 +447,7 @@ fieldset/ICR_output: bit_size: 1 array: len: 1 - stride: 0 + stride: 9 - name: ARRMCF description: Autoreload match clear flag Writing 1 to this bit clears the ARRM flag in the LPTIM_ISR register. bit_offset: 1 @@ -398,7 +462,7 @@ fieldset/ICR_output: bit_size: 1 array: len: 1 - stride: 0 + stride: 16 - name: ARROKCF description: Autoreload register update OK clear flag Writing 1 to this bit clears the ARROK flag in the LPTIM_ISR register. bit_offset: 4 @@ -423,7 +487,7 @@ fieldset/ICR_output: description: Interrupt enable register update OK clear flag Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register. bit_offset: 24 bit_size: 1 -fieldset/ISR_input: +fieldset/ISR_IC: description: LPTIM interrupt and status register. fields: - name: CCIF @@ -472,7 +536,25 @@ fieldset/ISR_input: description: Interrupt enable register update OK DIEROK is set by hardware to inform application that the APB bus write operation to the LPTIM_DIER register has been successfully completed. DIEROK flag can be cleared by writing 1 to the DIEROKCF bit in the LPTIM_ICR register. bit_offset: 24 bit_size: 1 -fieldset/ISR_output: +fieldset/ISR_OC_Adv: + extends: ISR_OC_Basic + description: LPTIM interrupt and status register. + fields: + - name: CCIF + description: Compare 1 interrupt flag The CC1IF flag is set by hardware to inform application that LPTIM_CNT register value matches the compare register's value. The CC1IF flag can be cleared by writing 1 to the CC1CF bit in the LPTIM_ICR register. + bit_offset: 0 + bit_size: 1 + array: + len: 2 + stride: 9 + - name: CMPOK + description: Compare register 1 update OK CMP1OK is set by hardware to inform application that the APB bus write operation to the LPTIM_CCR1 register has been successfully completed. CMP1OK flag can be cleared by writing 1 to the CMP1OKCF bit in the LPTIM_ICR register. + bit_offset: 3 + bit_size: 1 + array: + len: 2 + stride: 16 +fieldset/ISR_OC_Basic: description: LPTIM interrupt and status register. fields: - name: CCIF @@ -481,7 +563,7 @@ fieldset/ISR_output: bit_size: 1 array: len: 1 - stride: 0 + stride: 9 - name: ARRM description: Autoreload match ARRM is set by hardware to inform application that LPTIM_CNT register’s value reached the LPTIM_ARR register’s value. ARRM flag can be cleared by writing 1 to the ARRMCF bit in the LPTIM_ICR register. bit_offset: 1 @@ -496,7 +578,7 @@ fieldset/ISR_output: bit_size: 1 array: len: 1 - stride: 0 + stride: 16 - name: ARROK description: Autoreload register update OK ARROK is set by hardware to inform application that the APB bus write operation to the LPTIM_ARR register has been successfully completed. ARROK flag can be cleared by writing 1 to the ARROKCF bit in the LPTIM_ICR register. bit_offset: 4 From 8bd35deb5603bf83345b46d8cad420d1c029d6a3 Mon Sep 17 00:00:00 2001 From: eZio Pan Date: Thu, 4 Apr 2024 22:21:19 +0800 Subject: [PATCH 07/41] add enum --- data/registers/lptim_v2h5.yaml | 143 ++++++++++++++++++++++++++++++--- 1 file changed, 132 insertions(+), 11 deletions(-) diff --git a/data/registers/lptim_v2h5.yaml b/data/registers/lptim_v2h5.yaml index 3824522..791c1ea 100644 --- a/data/registers/lptim_v2h5.yaml +++ b/data/registers/lptim_v2h5.yaml @@ -80,10 +80,14 @@ block/OC_Adv: description: LPTIM interrupt enable register. byte_offset: 8 fieldset: DIER_OC_Adv - - name: CCMR1 + - name: CCMR_IC description: LPTIM capture/compare mode register 1. byte_offset: 44 - fieldset: CCMR1 + fieldset: CCMR_IC + - name: CCMR_OC + description: LPTIM capture/compare mode register 1. + byte_offset: 44 + fieldset: CCMR_OC block/OC_Basic: items: - name: ISR @@ -105,8 +109,32 @@ fieldset/ARR: description: Auto reload value ARR is the autoreload value for the LPTIM. This value must be strictly greater than the CCRx[15:0] value. bit_offset: 0 bit_size: 16 -fieldset/CCMR1: - description: LPTIM capture/compare mode register 1. +fieldset/CCMR_IC: + extends: CCMR_partial + description: LPTIM input capture mode register 1. + fields: + - name: CCP + description: Capture/compare 1 output polarity. Only bit2 is used to set polarity when output mode is enabled, bit3 is don't care. This field is used to select the IC1 polarity for capture operations. + bit_offset: 2 + bit_size: 2 + array: + len: 2 + stride: 16 + enum: CCP_IC +fieldset/CCMR_OC: + extends: CCMR_partial + description: LPTIM output compare mode register 1. + fields: + - name: CCP + description: Capture/compare 1 output polarity. Only bit2 is used to set polarity when output mode is enabled, bit3 is don't care. This field is used to select the IC1 polarity for capture operations. + bit_offset: 2 + bit_size: 2 + array: + len: 2 + stride: 16 + enum: CCP_OC +fieldset/CCMR_partial: + description: internal use only - common fields between CCMR input mode and output mode fields: - name: CCSEL description: Capture/compare 1 selection This bitfield defines the direction of the channel input (capture) or output mode. @@ -115,6 +143,7 @@ fieldset/CCMR1: array: len: 2 stride: 16 + enum: CCSEL - name: CCE description: Capture/compare 1 output enable. This bit determines if a capture of the counter value can actually be done into the input capture/compare register 1 (LPTIM_CCR1) or not. bit_offset: 1 @@ -122,13 +151,6 @@ fieldset/CCMR1: array: len: 2 stride: 16 - - name: CCP - description: Capture/compare 1 output polarity. Only bit2 is used to set polarity when output mode is enabled, bit3 is don't care. This field is used to select the IC1 polarity for capture operations. - bit_offset: 2 - bit_size: 2 - array: - len: 2 - stride: 16 - name: ICPSC description: Input capture 1 prescaler This bitfield defines the ratio of the prescaler acting on the CC1 input (IC1). bit_offset: 8 @@ -136,6 +158,7 @@ fieldset/CCMR1: array: len: 2 stride: 16 + enum: Filter - name: ICF description: Input capture 1 filter This bitfield defines the number of consecutive equal samples that should be detected when a level change occurs on an external input capture signal before it is considered as a valid level transition. An internal clock source must be present to use this feature. bit_offset: 12 @@ -143,6 +166,7 @@ fieldset/CCMR1: array: len: 2 stride: 16 + enum: Filter fieldset/CCR: description: LPTIM compare register 1. fields: @@ -157,22 +181,27 @@ fieldset/CFGR: description: Clock selector The CKSEL bit selects which clock source the LPTIM uses:. bit_offset: 0 bit_size: 1 + enum: CKSEL - name: CKPOL description: 'Clock Polarity When the LPTIM is clocked by an external clock source, CKPOL bits is used to configure the active edge or edges used by the counter: If the LPTIM is configured in Encoder mode (ENC bit is set), the encoder sub-mode 1 is active. If the LPTIM is configured in Encoder mode (ENC bit is set), the encoder sub-mode 2 is active. Refer to for more details about Encoder mode sub-modes.' bit_offset: 1 bit_size: 2 + enum: CKPOL - name: CKFLT description: Configurable digital filter for external clock The CKFLT value sets the number of consecutive equal samples that should be detected when a level change occurs on an external clock signal before it is considered as a valid level transition. An internal clock source must be present to use this feature. bit_offset: 3 bit_size: 2 + enum: Filter - name: TRGFLT description: Configurable digital filter for trigger The TRGFLT value sets the number of consecutive equal samples that should be detected when a level change occurs on an internal trigger before it is considered as a valid level transition. An internal clock source must be present to use this feature. bit_offset: 6 bit_size: 2 + enum: Filter - name: PRESC description: Clock prescaler The PRESC bits configure the prescaler division factor. It can be one among the following division factors:. bit_offset: 9 bit_size: 3 + enum: PRESC - name: TRIGSEL description: 'Trigger selector The TRIGSEL bits select the trigger source that serves as a trigger event for the LPTIM among the below 8 available sources: See for details.' bit_offset: 13 @@ -181,6 +210,7 @@ fieldset/CFGR: description: Trigger enable and polarity The TRIGEN bits controls whether the LPTIM counter is started by an external trigger or not. If the external trigger option is selected, three configurations are possible for the trigger active edge:. bit_offset: 17 bit_size: 2 + enum: TRIGEN - name: TIMOUT description: Timeout enable The TIMOUT bit controls the Timeout feature. bit_offset: 19 @@ -610,3 +640,94 @@ fieldset/RCR: description: Repetition register value REP is the repetition value for the LPTIM. bit_offset: 0 bit_size: 8 +enum/CCP_IC: + bit_size: 2 + variants: + - name: Rising + value: 0 + - name: Falling + value: 1 + - name: Both + value: 3 +enum/CCP_OC: + bit_size: 2 + variants: + - name: ActiveHigh + value: 0 + - name: ActiveLow + value: 1 +enum/CCSEL: + bit_size: 1 + variants: + - name: OutputCompare + description: channel is configured in output PWM mode + value: 0 + - name: InputCapture + description: channel is configured in input capture mode + value: 1 +enum/CKPOL: + bit_size: 2 + variants: + - name: Rising + description: the rising edge is the active edge used for counting. If the LPTIM is configured in Encoder mode (ENC bit is set), the encoder sub-mode 1 is active. + value: 0 + - name: Falling + description: the falling edge is the active edge used for counting. If the LPTIM is configured in Encoder mode (ENC bit is set), the encoder sub-mode 2 is active. + value: 1 + - name: Both + description: both edges are active edges. When both external clock signal edges are considered active ones, the LPTIM must also be clocked by an internal clock source with a frequency equal to at least four times the external clock frequency. If the LPTIM is configured in Encoder mode (ENC bit is set), the encoder sub-mode 3 is active. + value: 2 +enum/CKSEL: + bit_size: 1 + variants: + - name: Internal + description: LPTIM is clocked by internal clock source (APB clock or any of the embedded oscillators) + value: 0 + - name: External + description: LPTIM is clocked by an external clock source through the LPTIM external Input1 + value: 1 +enum/Filter: + bit_size: 2 + variants: + - name: Count1 + value: 0 + - name: Count2 + value: 1 + - name: Count4 + value: 2 + - name: Count8 + value: 3 +enum/PRESC: + bit_size: 3 + variants: + - name: Div1 + value: 0 + - name: Div2 + value: 1 + - name: Div4 + value: 2 + - name: Div8 + value: 3 + - name: Div16 + value: 4 + - name: Div32 + value: 5 + - name: Div64 + value: 6 + - name: Div128 + value: 7 +enum/TRIGEN: + bit_size: 2 + variants: + - name: Software + description: software trigger (counting start is initiated by software) + value: 0 + - name: RisingEdge + description: rising edge is the active edge + value: 1 + - name: FallingEdge + description: falling edge is the active edge + value: 2 + - name: BothEdge + description: both edges are active edges + value: 3 From 59cb83596fa2efdcde31acaca7f703d449b9a7c6 Mon Sep 17 00:00:00 2001 From: eZio Pan Date: Thu, 4 Apr 2024 22:37:04 +0800 Subject: [PATCH 08/41] add to chips.rs --- data/registers/lptim_v2h5.yaml | 60 +++++++++++++++++----------------- stm32-data-gen/src/chips.rs | 6 +++- 2 files changed, 35 insertions(+), 31 deletions(-) diff --git a/data/registers/lptim_v2h5.yaml b/data/registers/lptim_v2h5.yaml index 791c1ea..b2db01b 100644 --- a/data/registers/lptim_v2h5.yaml +++ b/data/registers/lptim_v2h5.yaml @@ -12,8 +12,8 @@ block/IC: description: LPTIM interrupt enable register. byte_offset: 8 fieldset: DIER_IC -block/LPTIM_Adv: - extends: LPTIM_Basic +block/LPTIM_ADV: + extends: LPTIM_BASIC description: Low power timer with Output Compare items: - name: InputCapture @@ -21,7 +21,7 @@ block/LPTIM_Adv: block: IC - name: OutputCompare byte_offset: 0 - block: OC_Adv + block: OC_ADV - name: CCR description: LPTIM compare register 1. array: @@ -29,12 +29,20 @@ block/LPTIM_Adv: stride: 32 byte_offset: 20 fieldset: CCR -block/LPTIM_Basic: + - name: CCMR_IC + description: LPTIM capture/compare mode register 1. + byte_offset: 44 + fieldset: CCMR_IC + - name: CCMR_OC + description: LPTIM capture/compare mode register 1. + byte_offset: 44 + fieldset: CCMR_OC +block/LPTIM_BASIC: description: Low power timer with Output Compare items: - name: OutputCompare byte_offset: 0 - block: OC_Basic + block: OC_BASIC - name: CFGR description: LPTIM configuration register. byte_offset: 12 @@ -66,42 +74,34 @@ block/LPTIM_Basic: description: LPTIM repetition register. byte_offset: 40 fieldset: RCR -block/OC_Adv: +block/OC_ADV: items: - name: ISR description: LPTIM interrupt and status register. byte_offset: 0 - fieldset: ISR_OC_Adv + fieldset: ISR_OC_ADV - name: ICR description: LPTIM interrupt clear register. byte_offset: 4 - fieldset: ICR_OC_Adv + fieldset: ICR_OC_ADV - name: DIER description: LPTIM interrupt enable register. byte_offset: 8 - fieldset: DIER_OC_Adv - - name: CCMR_IC - description: LPTIM capture/compare mode register 1. - byte_offset: 44 - fieldset: CCMR_IC - - name: CCMR_OC - description: LPTIM capture/compare mode register 1. - byte_offset: 44 - fieldset: CCMR_OC -block/OC_Basic: + fieldset: DIER_OC_ADV +block/OC_BASIC: items: - name: ISR description: LPTIM interrupt and status register. byte_offset: 0 - fieldset: ISR_OC_Basic + fieldset: ISR_OC_BASIC - name: ICR description: LPTIM interrupt clear register. byte_offset: 4 - fieldset: ICR_OC_Basic + fieldset: ICR_OC_BASIC - name: DIER description: LPTIM interrupt enable register. byte_offset: 8 - fieldset: DIER_OC_Basic + fieldset: DIER_OC_BASIC fieldset/ARR: description: LPTIM autoreload register. fields: @@ -338,8 +338,8 @@ fieldset/DIER_IC: description: 'Update event DMA request enable Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' bit_offset: 23 bit_size: 1 -fieldset/DIER_OC_Adv: - extends: DIER_OC_Basic +fieldset/DIER_OC_ADV: + extends: DIER_OC_BASIC description: LPTIM interrupt enable register. fields: - name: CCIE @@ -356,7 +356,7 @@ fieldset/DIER_OC_Adv: array: len: 2 stride: 16 -fieldset/DIER_OC_Basic: +fieldset/DIER_OC_BASIC: description: LPTIM interrupt enable register. fields: - name: CCIE @@ -450,8 +450,8 @@ fieldset/ICR_IC: description: Interrupt enable register update OK clear flag Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register. bit_offset: 24 bit_size: 1 -fieldset/ICR_OC_Adv: - extends: ICR_OC_Basic +fieldset/ICR_OC_ADV: + extends: ICR_OC_BASIC description: LPTIM interrupt clear register. fields: - name: CCCF @@ -468,7 +468,7 @@ fieldset/ICR_OC_Adv: array: len: 2 stride: 16 -fieldset/ICR_OC_Basic: +fieldset/ICR_OC_BASIC: description: LPTIM interrupt clear register. fields: - name: CCCF @@ -566,8 +566,8 @@ fieldset/ISR_IC: description: Interrupt enable register update OK DIEROK is set by hardware to inform application that the APB bus write operation to the LPTIM_DIER register has been successfully completed. DIEROK flag can be cleared by writing 1 to the DIEROKCF bit in the LPTIM_ICR register. bit_offset: 24 bit_size: 1 -fieldset/ISR_OC_Adv: - extends: ISR_OC_Basic +fieldset/ISR_OC_ADV: + extends: ISR_OC_BASIC description: LPTIM interrupt and status register. fields: - name: CCIF @@ -584,7 +584,7 @@ fieldset/ISR_OC_Adv: array: len: 2 stride: 16 -fieldset/ISR_OC_Basic: +fieldset/ISR_OC_BASIC: description: LPTIM interrupt and status register. fields: - name: CCIF diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index bacb4b6..fbe912a 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -503,7 +503,11 @@ impl PeriMatcher { ("STM32(C|G0|H7|WB|WL).*:TIM12:.*", ("timer", "v1", "TIM_2CH")), ("STM32(C|G0|H7|WB|WL).*:TIM15:.*", ("timer", "v1", "TIM_2CH_CMP")), ("STM32(C|G0|H7|WB|WL).*:TIM(16|17):.*", ("timer", "v1", "TIM_1CH_CMP")), - ("STM32[CGHUW].*:LPTIM[1-6]:.*", ("lptim", "v1", "LPTIM")), + // LPTIM for STM32Gx/Hx/Ux/Wx (and Cx) serials + ("STM32H5.*:LPTIM[12356]:.*", ("lptim", "v2h5", "LPTIM_ADV")), + ("STM32H5.*:LPTIM4:.*", ("lptim", "v2h5", "LPTIM_BASIC")), + ("STM32(C|G|H7|U|W).*:LPTIM[1-6]:.*", ("lptim", "v1", "LPTIM")), + // HRTIM for STM32Gx/Hx/Ux/Wx (and Cx) serials ("STM32[CGHUW].*:HRTIM1?:.*", ("hrtim", "v1", "HRTIM")), // //// TIM mapping ends here //// From 029320446bf99e233da98c0cf7b25f3a0c4bd4e4 Mon Sep 17 00:00:00 2001 From: eZio Pan Date: Thu, 4 Apr 2024 23:09:58 +0800 Subject: [PATCH 09/41] add lptim to u5 wba --- .../{lptim_v2h5.yaml => lptim_v2b.yaml} | 215 +++++++++--------- stm32-data-gen/src/chips.rs | 4 +- 2 files changed, 107 insertions(+), 112 deletions(-) rename data/registers/{lptim_v2h5.yaml => lptim_v2b.yaml} (99%) diff --git a/data/registers/lptim_v2h5.yaml b/data/registers/lptim_v2b.yaml similarity index 99% rename from data/registers/lptim_v2h5.yaml rename to data/registers/lptim_v2b.yaml index b2db01b..5a4213b 100644 --- a/data/registers/lptim_v2h5.yaml +++ b/data/registers/lptim_v2b.yaml @@ -40,9 +40,18 @@ block/LPTIM_ADV: block/LPTIM_BASIC: description: Low power timer with Output Compare items: - - name: OutputCompare + - name: ISR + description: LPTIM interrupt and status register. byte_offset: 0 - block: OC_BASIC + fieldset: ISR_BASIC + - name: ICR + description: LPTIM interrupt clear register. + byte_offset: 4 + fieldset: ICR_BASIC + - name: DIER + description: LPTIM interrupt enable register. + byte_offset: 8 + fieldset: DIER_BASIC - name: CFGR description: LPTIM configuration register. byte_offset: 12 @@ -88,20 +97,6 @@ block/OC_ADV: description: LPTIM interrupt enable register. byte_offset: 8 fieldset: DIER_OC_ADV -block/OC_BASIC: - items: - - name: ISR - description: LPTIM interrupt and status register. - byte_offset: 0 - fieldset: ISR_OC_BASIC - - name: ICR - description: LPTIM interrupt clear register. - byte_offset: 4 - fieldset: ICR_OC_BASIC - - name: DIER - description: LPTIM interrupt enable register. - byte_offset: 8 - fieldset: DIER_OC_BASIC fieldset/ARR: description: LPTIM autoreload register. fields: @@ -282,6 +277,51 @@ fieldset/CR: description: Reset after read enable This bit is set and cleared by software. When RSTARE is set to '1', any read access to LPTIM_CNT register asynchronously resets LPTIM_CNT register content. This bit can be set only when the LPTIM is enabled. bit_offset: 4 bit_size: 1 +fieldset/DIER_BASIC: + description: LPTIM interrupt enable register. + fields: + - name: CCIE + description: Capture/compare 1 interrupt enable. + bit_offset: 0 + bit_size: 1 + array: + len: 1 + stride: 9 + - name: ARRMIE + description: Autoreload match Interrupt Enable. + bit_offset: 1 + bit_size: 1 + - name: EXTTRIGIE + description: External trigger valid edge Interrupt Enable. + bit_offset: 2 + bit_size: 1 + - name: CMPOKIE + description: Compare register 1 update OK interrupt enable. + bit_offset: 3 + bit_size: 1 + array: + len: 1 + stride: 16 + - name: ARROKIE + description: Autoreload register update OK Interrupt Enable. + bit_offset: 4 + bit_size: 1 + - name: UPIE + description: 'Direction change to UP Interrupt Enable Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 5 + bit_size: 1 + - name: DOWNIE + description: 'Direction change to down Interrupt Enable Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + bit_offset: 6 + bit_size: 1 + - name: UEIE + description: Update event interrupt enable. + bit_offset: 7 + bit_size: 1 + - name: REPOKIE + description: Repetition register update OK interrupt Enable. + bit_offset: 8 + bit_size: 1 fieldset/DIER_IC: description: LPTIM interrupt enable register. fields: @@ -339,7 +379,7 @@ fieldset/DIER_IC: bit_offset: 23 bit_size: 1 fieldset/DIER_OC_ADV: - extends: DIER_OC_BASIC + extends: DIER_BASIC description: LPTIM interrupt enable register. fields: - name: CCIE @@ -356,51 +396,55 @@ fieldset/DIER_OC_ADV: array: len: 2 stride: 16 -fieldset/DIER_OC_BASIC: - description: LPTIM interrupt enable register. +fieldset/ICR_BASIC: + description: LPTIM interrupt clear register. fields: - - name: CCIE - description: Capture/compare 1 interrupt enable. + - name: CCCF + description: Capture/compare 1 clear flag Writing 1 to this bit clears the CC1IF flag in the LPTIM_ISR register. bit_offset: 0 bit_size: 1 array: len: 1 stride: 9 - - name: ARRMIE - description: Autoreload match Interrupt Enable. + - name: ARRMCF + description: Autoreload match clear flag Writing 1 to this bit clears the ARRM flag in the LPTIM_ISR register. bit_offset: 1 bit_size: 1 - - name: EXTTRIGIE - description: External trigger valid edge Interrupt Enable. + - name: EXTTRIGCF + description: External trigger valid edge clear flag Writing 1 to this bit clears the EXTTRIG flag in the LPTIM_ISR register. bit_offset: 2 bit_size: 1 - - name: CMPOKIE - description: Compare register 1 update OK interrupt enable. + - name: CMPOKCF + description: Compare register 1 update OK clear flag Writing 1 to this bit clears the CMP1OK flag in the LPTIM_ISR register. bit_offset: 3 bit_size: 1 array: len: 1 stride: 16 - - name: ARROKIE - description: Autoreload register update OK Interrupt Enable. + - name: ARROKCF + description: Autoreload register update OK clear flag Writing 1 to this bit clears the ARROK flag in the LPTIM_ISR register. bit_offset: 4 bit_size: 1 - - name: UPIE - description: 'Direction change to UP Interrupt Enable Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + - name: UPCF + description: 'Direction change to UP clear flag Writing 1 to this bit clear the UP flag in the LPTIM_ISR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' bit_offset: 5 bit_size: 1 - - name: DOWNIE - description: 'Direction change to down Interrupt Enable Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + - name: DOWNCF + description: 'Direction change to down clear flag Writing 1 to this bit clear the DOWN flag in the LPTIM_ISR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' bit_offset: 6 bit_size: 1 - - name: UEIE - description: Update event interrupt enable. + - name: UECF + description: Update event clear flag Writing 1 to this bit clear the UE flag in the LPTIM_ISR register. bit_offset: 7 bit_size: 1 - - name: REPOKIE - description: Repetition register update OK interrupt Enable. + - name: REPOKCF + description: Repetition register update OK clear flag Writing 1 to this bit clears the REPOK flag in the LPTIM_ISR register. bit_offset: 8 bit_size: 1 + - name: DIEROKCF + description: Interrupt enable register update OK clear flag Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register. + bit_offset: 24 + bit_size: 1 fieldset/ICR_IC: description: LPTIM interrupt clear register. fields: @@ -451,7 +495,7 @@ fieldset/ICR_IC: bit_offset: 24 bit_size: 1 fieldset/ICR_OC_ADV: - extends: ICR_OC_BASIC + extends: ICR_BASIC description: LPTIM interrupt clear register. fields: - name: CCCF @@ -468,53 +512,53 @@ fieldset/ICR_OC_ADV: array: len: 2 stride: 16 -fieldset/ICR_OC_BASIC: - description: LPTIM interrupt clear register. +fieldset/ISR_BASIC: + description: LPTIM interrupt and status register. fields: - - name: CCCF - description: Capture/compare 1 clear flag Writing 1 to this bit clears the CC1IF flag in the LPTIM_ISR register. + - name: CCIF + description: Compare 1 interrupt flag The CC1IF flag is set by hardware to inform application that LPTIM_CNT register value matches the compare register's value. The CC1IF flag can be cleared by writing 1 to the CC1CF bit in the LPTIM_ICR register. bit_offset: 0 bit_size: 1 array: len: 1 stride: 9 - - name: ARRMCF - description: Autoreload match clear flag Writing 1 to this bit clears the ARRM flag in the LPTIM_ISR register. + - name: ARRM + description: Autoreload match ARRM is set by hardware to inform application that LPTIM_CNT register’s value reached the LPTIM_ARR register’s value. ARRM flag can be cleared by writing 1 to the ARRMCF bit in the LPTIM_ICR register. bit_offset: 1 bit_size: 1 - - name: EXTTRIGCF - description: External trigger valid edge clear flag Writing 1 to this bit clears the EXTTRIG flag in the LPTIM_ISR register. + - name: EXTTRIG + description: External trigger edge event EXTTRIG is set by hardware to inform application that a valid edge on the selected external trigger input has occurred. If the trigger is ignored because the timer has already started, then this flag is not set. EXTTRIG flag can be cleared by writing 1 to the EXTTRIGCF bit in the LPTIM_ICR register. bit_offset: 2 bit_size: 1 - - name: CMPOKCF - description: Compare register 1 update OK clear flag Writing 1 to this bit clears the CMP1OK flag in the LPTIM_ISR register. + - name: CMPOK + description: Compare register 1 update OK CMP1OK is set by hardware to inform application that the APB bus write operation to the LPTIM_CCR1 register has been successfully completed. CMP1OK flag can be cleared by writing 1 to the CMP1OKCF bit in the LPTIM_ICR register. bit_offset: 3 bit_size: 1 array: len: 1 stride: 16 - - name: ARROKCF - description: Autoreload register update OK clear flag Writing 1 to this bit clears the ARROK flag in the LPTIM_ISR register. + - name: ARROK + description: Autoreload register update OK ARROK is set by hardware to inform application that the APB bus write operation to the LPTIM_ARR register has been successfully completed. ARROK flag can be cleared by writing 1 to the ARROKCF bit in the LPTIM_ICR register. bit_offset: 4 bit_size: 1 - - name: UPCF - description: 'Direction change to UP clear flag Writing 1 to this bit clear the UP flag in the LPTIM_ISR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + - name: UP + description: 'Counter direction change down to up In Encoder mode, UP bit is set by hardware to inform application that the counter direction has changed from down to up. UP flag can be cleared by writing 1 to the UPCF bit in the LPTIM_ICR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' bit_offset: 5 bit_size: 1 - - name: DOWNCF - description: 'Direction change to down clear flag Writing 1 to this bit clear the DOWN flag in the LPTIM_ISR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' + - name: DOWN + description: 'Counter direction change up to down In Encoder mode, DOWN bit is set by hardware to inform application that the counter direction has changed from up to down. DOWN flag can be cleared by writing 1 to the DOWNCF bit in the LPTIM_ICR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' bit_offset: 6 bit_size: 1 - - name: UECF - description: Update event clear flag Writing 1 to this bit clear the UE flag in the LPTIM_ISR register. + - name: UE + description: LPTIM update event occurred UE is set by hardware to inform application that an update event was generated. UE flag can be cleared by writing 1 to the UECF bit in the LPTIM_ICR register. bit_offset: 7 bit_size: 1 - - name: REPOKCF - description: Repetition register update OK clear flag Writing 1 to this bit clears the REPOK flag in the LPTIM_ISR register. + - name: REPOK + description: Repetition register update OK REPOK is set by hardware to inform application that the APB bus write operation to the LPTIM_RCR register has been successfully completed. REPOK flag can be cleared by writing 1 to the REPOKCF bit in the LPTIM_ICR register. bit_offset: 8 bit_size: 1 - - name: DIEROKCF - description: Interrupt enable register update OK clear flag Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register. + - name: DIEROK + description: Interrupt enable register update OK DIEROK is set by hardware to inform application that the APB bus write operation to the LPTIM_DIER register has been successfully completed. DIEROK flag can be cleared by writing 1 to the DIEROKCF bit in the LPTIM_ICR register. bit_offset: 24 bit_size: 1 fieldset/ISR_IC: @@ -567,7 +611,7 @@ fieldset/ISR_IC: bit_offset: 24 bit_size: 1 fieldset/ISR_OC_ADV: - extends: ISR_OC_BASIC + extends: ISR_BASIC description: LPTIM interrupt and status register. fields: - name: CCIF @@ -584,55 +628,6 @@ fieldset/ISR_OC_ADV: array: len: 2 stride: 16 -fieldset/ISR_OC_BASIC: - description: LPTIM interrupt and status register. - fields: - - name: CCIF - description: Compare 1 interrupt flag The CC1IF flag is set by hardware to inform application that LPTIM_CNT register value matches the compare register's value. The CC1IF flag can be cleared by writing 1 to the CC1CF bit in the LPTIM_ICR register. - bit_offset: 0 - bit_size: 1 - array: - len: 1 - stride: 9 - - name: ARRM - description: Autoreload match ARRM is set by hardware to inform application that LPTIM_CNT register’s value reached the LPTIM_ARR register’s value. ARRM flag can be cleared by writing 1 to the ARRMCF bit in the LPTIM_ICR register. - bit_offset: 1 - bit_size: 1 - - name: EXTTRIG - description: External trigger edge event EXTTRIG is set by hardware to inform application that a valid edge on the selected external trigger input has occurred. If the trigger is ignored because the timer has already started, then this flag is not set. EXTTRIG flag can be cleared by writing 1 to the EXTTRIGCF bit in the LPTIM_ICR register. - bit_offset: 2 - bit_size: 1 - - name: CMPOK - description: Compare register 1 update OK CMP1OK is set by hardware to inform application that the APB bus write operation to the LPTIM_CCR1 register has been successfully completed. CMP1OK flag can be cleared by writing 1 to the CMP1OKCF bit in the LPTIM_ICR register. - bit_offset: 3 - bit_size: 1 - array: - len: 1 - stride: 16 - - name: ARROK - description: Autoreload register update OK ARROK is set by hardware to inform application that the APB bus write operation to the LPTIM_ARR register has been successfully completed. ARROK flag can be cleared by writing 1 to the ARROKCF bit in the LPTIM_ICR register. - bit_offset: 4 - bit_size: 1 - - name: UP - description: 'Counter direction change down to up In Encoder mode, UP bit is set by hardware to inform application that the counter direction has changed from down to up. UP flag can be cleared by writing 1 to the UPCF bit in the LPTIM_ICR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' - bit_offset: 5 - bit_size: 1 - - name: DOWN - description: 'Counter direction change up to down In Encoder mode, DOWN bit is set by hardware to inform application that the counter direction has changed from up to down. DOWN flag can be cleared by writing 1 to the DOWNCF bit in the LPTIM_ICR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' - bit_offset: 6 - bit_size: 1 - - name: UE - description: LPTIM update event occurred UE is set by hardware to inform application that an update event was generated. UE flag can be cleared by writing 1 to the UECF bit in the LPTIM_ICR register. - bit_offset: 7 - bit_size: 1 - - name: REPOK - description: Repetition register update OK REPOK is set by hardware to inform application that the APB bus write operation to the LPTIM_RCR register has been successfully completed. REPOK flag can be cleared by writing 1 to the REPOKCF bit in the LPTIM_ICR register. - bit_offset: 8 - bit_size: 1 - - name: DIEROK - description: Interrupt enable register update OK DIEROK is set by hardware to inform application that the APB bus write operation to the LPTIM_DIER register has been successfully completed. DIEROK flag can be cleared by writing 1 to the DIEROKCF bit in the LPTIM_ICR register. - bit_offset: 24 - bit_size: 1 fieldset/RCR: description: LPTIM repetition register. fields: diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index fbe912a..675fd89 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -504,8 +504,8 @@ impl PeriMatcher { ("STM32(C|G0|H7|WB|WL).*:TIM15:.*", ("timer", "v1", "TIM_2CH_CMP")), ("STM32(C|G0|H7|WB|WL).*:TIM(16|17):.*", ("timer", "v1", "TIM_1CH_CMP")), // LPTIM for STM32Gx/Hx/Ux/Wx (and Cx) serials - ("STM32H5.*:LPTIM[12356]:.*", ("lptim", "v2h5", "LPTIM_ADV")), - ("STM32H5.*:LPTIM4:.*", ("lptim", "v2h5", "LPTIM_BASIC")), + ("STM32(H5|U5|WBA).*:LPTIM[12356]:.*", ("lptim", "v2b", "LPTIM_ADV")), + ("STM32(H5|U5).*:LPTIM4:.*", ("lptim", "v2b", "LPTIM_BASIC")), ("STM32(C|G|H7|U|W).*:LPTIM[1-6]:.*", ("lptim", "v1", "LPTIM")), // HRTIM for STM32Gx/Hx/Ux/Wx (and Cx) serials ("STM32[CGHUW].*:HRTIM1?:.*", ("hrtim", "v1", "HRTIM")), From c25b401647255a60450b147a8dd3a4401a3951ec Mon Sep 17 00:00:00 2001 From: eZio Pan Date: Thu, 4 Apr 2024 23:40:12 +0800 Subject: [PATCH 10/41] extract lptim_v2a from l5 --- data/registers/lptim_v2a.yaml | 280 ++++++++++++++++++++++++++++++++++ 1 file changed, 280 insertions(+) create mode 100644 data/registers/lptim_v2a.yaml diff --git a/data/registers/lptim_v2a.yaml b/data/registers/lptim_v2a.yaml new file mode 100644 index 0000000..1ef25d7 --- /dev/null +++ b/data/registers/lptim_v2a.yaml @@ -0,0 +1,280 @@ +block/LPTIM1: + description: Low power timer. + items: + - name: ISR + description: Interrupt and Status Register. + byte_offset: 0 + access: Read + fieldset: ISR + - name: ICR + description: Interrupt Clear Register. + byte_offset: 4 + access: Write + fieldset: ICR + - name: IER + description: Interrupt Enable Register. + byte_offset: 8 + fieldset: IER + - name: CFGR + description: Configuration Register. + byte_offset: 12 + fieldset: CFGR + - name: CR + description: Control Register. + byte_offset: 16 + fieldset: CR + - name: CMP + description: Compare Register. + byte_offset: 20 + fieldset: CMP + - name: ARR + description: Autoreload Register. + byte_offset: 24 + fieldset: ARR + - name: CNT + description: Counter Register. + byte_offset: 28 + access: Read + fieldset: CNT + - name: OR + description: LPTIM option register. + byte_offset: 32 + fieldset: OR + - name: RCR + description: LPTIM repetition register. + byte_offset: 40 + fieldset: RCR +fieldset/ARR: + description: Autoreload Register. + fields: + - name: ARR + description: Auto reload value. + bit_offset: 0 + bit_size: 16 +fieldset/CFGR: + description: Configuration Register. + fields: + - name: CKSEL + description: Clock selector. + bit_offset: 0 + bit_size: 1 + - name: CKPOL + description: Clock Polarity. + bit_offset: 1 + bit_size: 2 + - name: CKFLT + description: Configurable digital filter for external clock. + bit_offset: 3 + bit_size: 2 + - name: TRGFLT + description: Configurable digital filter for trigger. + bit_offset: 6 + bit_size: 2 + - name: PRESC + description: Clock prescaler. + bit_offset: 9 + bit_size: 3 + - name: TRIGSEL + description: Trigger selector. + bit_offset: 13 + bit_size: 3 + - name: TRIGEN + description: Trigger enable and polarity. + bit_offset: 17 + bit_size: 2 + - name: TIMOUT + description: Timeout enable. + bit_offset: 19 + bit_size: 1 + - name: WAVE + description: Waveform shape. + bit_offset: 20 + bit_size: 1 + - name: WAVPOL + description: Waveform shape polarity. + bit_offset: 21 + bit_size: 1 + - name: PRELOAD + description: Registers update mode. + bit_offset: 22 + bit_size: 1 + - name: COUNTMODE + description: counter mode enabled. + bit_offset: 23 + bit_size: 1 + - name: ENC + description: Encoder mode enable. + bit_offset: 24 + bit_size: 1 +fieldset/CMP: + description: Compare Register. + fields: + - name: CMP + description: Compare value. + bit_offset: 0 + bit_size: 16 +fieldset/CNT: + description: Counter Register. + fields: + - name: CNT + description: Counter value. + bit_offset: 0 + bit_size: 16 +fieldset/CR: + description: Control Register. + fields: + - name: ENABLE + description: LPTIM Enable. + bit_offset: 0 + bit_size: 1 + - name: SNGSTRT + description: LPTIM start in single mode. + bit_offset: 1 + bit_size: 1 + - name: CNTSTRT + description: Timer start in continuous mode. + bit_offset: 2 + bit_size: 1 + - name: RSTARE + description: Reset after read enable. + bit_offset: 3 + bit_size: 1 + - name: COUNTRST + description: Counter reset. + bit_offset: 4 + bit_size: 1 +fieldset/ICR: + description: Interrupt Clear Register. + fields: + - name: CMPMCF + description: compare match Clear Flag. + bit_offset: 0 + bit_size: 1 + - name: ARRMCF + description: Autoreload match Clear Flag. + bit_offset: 1 + bit_size: 1 + - name: EXTTRIGCF + description: External trigger valid edge Clear Flag. + bit_offset: 2 + bit_size: 1 + - name: CMPOKCF + description: Compare register update OK Clear Flag. + bit_offset: 3 + bit_size: 1 + - name: ARROKCF + description: Autoreload register update OK Clear Flag. + bit_offset: 4 + bit_size: 1 + - name: UPCF + description: Direction change to UP Clear Flag. + bit_offset: 5 + bit_size: 1 + - name: DOWNCF + description: Direction change to down Clear Flag. + bit_offset: 6 + bit_size: 1 + - name: UECF + description: Update event clear flag. + bit_offset: 7 + bit_size: 1 + - name: REPOKCF + description: Repetition register update OK clear flag. + bit_offset: 8 + bit_size: 1 +fieldset/IER: + description: Interrupt Enable Register. + fields: + - name: CMPMIE + description: Compare match Interrupt Enable. + bit_offset: 0 + bit_size: 1 + - name: ARRMIE + description: Autoreload match Interrupt Enable. + bit_offset: 1 + bit_size: 1 + - name: EXTTRIGIE + description: External trigger valid edge Interrupt Enable. + bit_offset: 2 + bit_size: 1 + - name: CMPOKIE + description: Compare register update OK Interrupt Enable. + bit_offset: 3 + bit_size: 1 + - name: ARROKIE + description: Autoreload register update OK Interrupt Enable. + bit_offset: 4 + bit_size: 1 + - name: UPIE + description: Direction change to UP Interrupt Enable. + bit_offset: 5 + bit_size: 1 + - name: DOWNIE + description: Direction change to down Interrupt Enable. + bit_offset: 6 + bit_size: 1 + - name: UEIE + description: Update event interrupt enable. + bit_offset: 7 + bit_size: 1 + - name: REPOKIE + description: REPOKIE. + bit_offset: 8 + bit_size: 1 +fieldset/ISR: + description: Interrupt and Status Register. + fields: + - name: CMPM + description: Compare match. + bit_offset: 0 + bit_size: 1 + - name: ARRM + description: Autoreload match. + bit_offset: 1 + bit_size: 1 + - name: EXTTRIG + description: External trigger edge event. + bit_offset: 2 + bit_size: 1 + - name: CMPOK + description: Compare register update OK. + bit_offset: 3 + bit_size: 1 + - name: ARROK + description: Autoreload register update OK. + bit_offset: 4 + bit_size: 1 + - name: UP + description: Counter direction change down to up. + bit_offset: 5 + bit_size: 1 + - name: DOWN + description: Counter direction change up to down. + bit_offset: 6 + bit_size: 1 + - name: UE + description: LPTIM update event occurred. + bit_offset: 7 + bit_size: 1 + - name: REPOK + description: Repetition register update Ok. + bit_offset: 8 + bit_size: 1 +fieldset/OR: + description: LPTIM option register. + fields: + - name: OR_0 + description: Option register bit 0. + bit_offset: 0 + bit_size: 1 + - name: OR_1 + description: Option register bit 1. + bit_offset: 1 + bit_size: 1 +fieldset/RCR: + description: LPTIM repetition register. + fields: + - name: REP + description: Repetition register value. + bit_offset: 0 + bit_size: 8 From 8b036d7f87fe2f5a98e11aaa65f7084811a5330e Mon Sep 17 00:00:00 2001 From: eZio Pan Date: Thu, 4 Apr 2024 23:47:06 +0800 Subject: [PATCH 11/41] add enum --- data/registers/lptim_v2a.yaml | 56 +++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/data/registers/lptim_v2a.yaml b/data/registers/lptim_v2a.yaml index 1ef25d7..6957bfc 100644 --- a/data/registers/lptim_v2a.yaml +++ b/data/registers/lptim_v2a.yaml @@ -58,22 +58,27 @@ fieldset/CFGR: description: Clock selector. bit_offset: 0 bit_size: 1 + enum: CKSEL - name: CKPOL description: Clock Polarity. bit_offset: 1 bit_size: 2 + enum: CKPOL - name: CKFLT description: Configurable digital filter for external clock. bit_offset: 3 bit_size: 2 + enum: Filter - name: TRGFLT description: Configurable digital filter for trigger. bit_offset: 6 bit_size: 2 + enum: Filter - name: PRESC description: Clock prescaler. bit_offset: 9 bit_size: 3 + enum: PRESC - name: TRIGSEL description: Trigger selector. bit_offset: 13 @@ -278,3 +283,54 @@ fieldset/RCR: description: Repetition register value. bit_offset: 0 bit_size: 8 +enum/CKPOL: + bit_size: 2 + variants: + - name: Rising + description: the rising edge is the active edge used for counting. If the LPTIM is configured in Encoder mode (ENC bit is set), the encoder sub-mode 1 is active. + value: 0 + - name: Falling + description: the falling edge is the active edge used for counting. If the LPTIM is configured in Encoder mode (ENC bit is set), the encoder sub-mode 2 is active. + value: 1 + - name: Both + description: both edges are active edges. When both external clock signal edges are considered active ones, the LPTIM must also be clocked by an internal clock source with a frequency equal to at least four times the external clock frequency. If the LPTIM is configured in Encoder mode (ENC bit is set), the encoder sub-mode 3 is active. + value: 2 +enum/CKSEL: + bit_size: 1 + variants: + - name: Internal + description: LPTIM is clocked by internal clock source (APB clock or any of the embedded oscillators) + value: 0 + - name: External + description: LPTIM is clocked by an external clock source through the LPTIM external Input1 + value: 1 +enum/Filter: + bit_size: 2 + variants: + - name: Count1 + value: 0 + - name: Count2 + value: 1 + - name: Count4 + value: 2 + - name: Count8 + value: 3 +enum/PRESC: + bit_size: 3 + variants: + - name: Div1 + value: 0 + - name: Div2 + value: 1 + - name: Div4 + value: 2 + - name: Div8 + value: 3 + - name: Div16 + value: 4 + - name: Div32 + value: 5 + - name: Div64 + value: 6 + - name: Div128 + value: 7 From d9625637f28d8f6563913b5cd24ddb038f0d6921 Mon Sep 17 00:00:00 2001 From: eZio Pan Date: Fri, 5 Apr 2024 00:03:53 +0800 Subject: [PATCH 12/41] add lptim_v2a to chips.rs --- data/registers/lptim_v2a.yaml | 14 +------------- stm32-data-gen/src/chips.rs | 8 ++++---- transforms/LPTIM_v2a.yaml | 8 ++++++++ transforms/{LPTIM.yaml => LPTIM_v2b.yaml} | 0 4 files changed, 13 insertions(+), 17 deletions(-) create mode 100644 transforms/LPTIM_v2a.yaml rename transforms/{LPTIM.yaml => LPTIM_v2b.yaml} (100%) diff --git a/data/registers/lptim_v2a.yaml b/data/registers/lptim_v2a.yaml index 6957bfc..614eb21 100644 --- a/data/registers/lptim_v2a.yaml +++ b/data/registers/lptim_v2a.yaml @@ -1,4 +1,4 @@ -block/LPTIM1: +block/LPTIM: description: Low power timer. items: - name: ISR @@ -39,7 +39,6 @@ block/LPTIM1: - name: OR description: LPTIM option register. byte_offset: 32 - fieldset: OR - name: RCR description: LPTIM repetition register. byte_offset: 40 @@ -265,17 +264,6 @@ fieldset/ISR: description: Repetition register update Ok. bit_offset: 8 bit_size: 1 -fieldset/OR: - description: LPTIM option register. - fields: - - name: OR_0 - description: Option register bit 0. - bit_offset: 0 - bit_size: 1 - - name: OR_1 - description: Option register bit 1. - bit_offset: 1 - bit_size: 1 fieldset/RCR: description: LPTIM repetition register. fields: diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index 675fd89..224c924 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -481,6 +481,7 @@ impl PeriMatcher { ("STM32L.*:TIM(9|21|22):.*", ("timer", "v1", "TIM_2CH")), ("STM32L.*:TIM15:.*", ("timer", "v1", "TIM_2CH_CMP")), ("STM32L.*:TIM(16|17):.*", ("timer", "v1", "TIM_1CH_CMP")), + ("STM32L5.*:LPTIM.*:.*", ("lptim", "v2a", "LPTIM")), ("STM32L.*:LPTIM(1|2|3):.*", ("lptim", "v1", "LPTIM")), // AN4013 Table 4: STM32Gx/Hx/Ux/Wx (and Cx) serials // timer_v2 for STM32Gx/Hx/Ux/Wx (and Cx) serials @@ -493,6 +494,9 @@ impl PeriMatcher { ("STM32(G4|H5|U5|WBA).*:TIM12:.*", ("timer", "v2", "TIM_2CH")), ("STM32(G4|H5|U5|WBA).*:TIM15:.*", ("timer", "v2", "TIM_2CH_CMP")), ("STM32(G4|H5|U5|WBA).*:TIM(16|17):.*", ("timer", "v2", "TIM_1CH_CMP")), + ("STM32WL.*:LPTIM.*:.*", ("lptim", "v2a", "LPTIM")), + ("STM32(H5|U5|WBA).*:LPTIM[12356]:.*", ("lptim", "v2b", "LPTIM_ADV")), + ("STM32(H5|U5).*:LPTIM4:.*", ("lptim", "v2b", "LPTIM_BASIC")), ("STM32G4.*:HRTIM1:.*", ("hrtim", "v2", "HRTIM")), // timer_v1 for STM32Gx/Hx/Ux/Wx (and Cx) serials ("STM32(C|G0|H7|WB|WL).*:TIM(1|8|20):.*", ("timer", "v1", "TIM_ADV")), @@ -503,11 +507,7 @@ impl PeriMatcher { ("STM32(C|G0|H7|WB|WL).*:TIM12:.*", ("timer", "v1", "TIM_2CH")), ("STM32(C|G0|H7|WB|WL).*:TIM15:.*", ("timer", "v1", "TIM_2CH_CMP")), ("STM32(C|G0|H7|WB|WL).*:TIM(16|17):.*", ("timer", "v1", "TIM_1CH_CMP")), - // LPTIM for STM32Gx/Hx/Ux/Wx (and Cx) serials - ("STM32(H5|U5|WBA).*:LPTIM[12356]:.*", ("lptim", "v2b", "LPTIM_ADV")), - ("STM32(H5|U5).*:LPTIM4:.*", ("lptim", "v2b", "LPTIM_BASIC")), ("STM32(C|G|H7|U|W).*:LPTIM[1-6]:.*", ("lptim", "v1", "LPTIM")), - // HRTIM for STM32Gx/Hx/Ux/Wx (and Cx) serials ("STM32[CGHUW].*:HRTIM1?:.*", ("hrtim", "v1", "HRTIM")), // //// TIM mapping ends here //// diff --git a/transforms/LPTIM_v2a.yaml b/transforms/LPTIM_v2a.yaml new file mode 100644 index 0000000..7a53546 --- /dev/null +++ b/transforms/LPTIM_v2a.yaml @@ -0,0 +1,8 @@ +transforms: + + - !Rename + from: ^LPTIM1$ + to: LPTIM + + - !DeleteFieldsets + from: OR diff --git a/transforms/LPTIM.yaml b/transforms/LPTIM_v2b.yaml similarity index 100% rename from transforms/LPTIM.yaml rename to transforms/LPTIM_v2b.yaml From cf5ab0f41ba6c0a2908ad3019f321b4b26cbb1cd Mon Sep 17 00:00:00 2001 From: qff233 <347633553@qq.com> Date: Fri, 5 Apr 2024 01:13:23 +0800 Subject: [PATCH 13/41] Fix ADC resolution enum for stm32g4 --- data/registers/adc_g4.yaml | 810 ++++++++++++++++++++++++++++++++++++ stm32-data-gen/src/chips.rs | 2 +- 2 files changed, 811 insertions(+), 1 deletion(-) create mode 100644 data/registers/adc_g4.yaml diff --git a/data/registers/adc_g4.yaml b/data/registers/adc_g4.yaml new file mode 100644 index 0000000..49b6aed --- /dev/null +++ b/data/registers/adc_g4.yaml @@ -0,0 +1,810 @@ +block/ADC: + description: Analog to Digital Converter + items: + - name: ISR + description: interrupt and status register + byte_offset: 0 + fieldset: ISR + - name: IER + description: interrupt enable register + byte_offset: 4 + fieldset: IER + - name: CR + description: control register + byte_offset: 8 + fieldset: CR + - name: CFGR + description: configuration register 1 + byte_offset: 12 + fieldset: CFGR + - name: CFGR2 + description: configuration register 2 + byte_offset: 16 + fieldset: CFGR2 + - name: SMPR + description: sampling time register 1-2 + array: + len: 2 + stride: 4 + byte_offset: 20 + fieldset: SMPR + - name: PCSEL + description: pre channel selection register + byte_offset: 28 + fieldset: PCSEL + - name: LTR1 + description: analog watchdog 1 threshold register + byte_offset: 32 + fieldset: LTR1 + - name: HTR1 + description: analog watchdog 2 threshold register + byte_offset: 36 + fieldset: HTR1 + - name: SQR1 + description: group regular sequencer ranks register 1 + byte_offset: 48 + fieldset: SQR1 + - name: SQR2 + description: group regular sequencer ranks register 2 + byte_offset: 52 + fieldset: SQR2 + - name: SQR3 + description: group regular sequencer ranks register 3 + byte_offset: 56 + fieldset: SQR3 + - name: SQR4 + description: group regular sequencer ranks register 4 + byte_offset: 60 + fieldset: SQR4 + - name: DR + description: group regular conversion data register + byte_offset: 64 + access: Read + fieldset: DR + - name: JSQR + description: group injected sequencer register + byte_offset: 76 + fieldset: JSQR + - name: OFR + description: offset number 1-4 register + array: + len: 4 + stride: 4 + byte_offset: 96 + fieldset: OFR + - name: JDR + description: group injected sequencer rank 1-4 register + array: + len: 4 + stride: 4 + byte_offset: 128 + access: Read + fieldset: JDR + - name: AWD2CR + description: analog watchdog 2 configuration register + byte_offset: 160 + fieldset: AWD2CR + - name: AWD3CR + description: analog watchdog 3 configuration register + byte_offset: 164 + fieldset: AWD3CR + - name: LTR2 + description: watchdog lower threshold register 2 + byte_offset: 176 + fieldset: LTR2 + - name: HTR2 + description: watchdog higher threshold register 2 + byte_offset: 180 + fieldset: HTR2 + - name: LTR3 + description: watchdog lower threshold register 3 + byte_offset: 184 + fieldset: LTR3 + - name: HTR3 + description: watchdog higher threshold register 3 + byte_offset: 188 + fieldset: HTR3 + - name: DIFSEL + description: channel differential or single-ended mode selection register + byte_offset: 192 + fieldset: DIFSEL + - name: CALFACT + description: calibration factors register + byte_offset: 196 + fieldset: CALFACT + - name: CALFACT2 + description: Calibration Factor register 2 + byte_offset: 200 + fieldset: CALFACT2 +fieldset/AWD2CR: + description: analog watchdog 2 configuration register + fields: + - name: AWD2CH + description: analog watchdog 2 monitored channel selection + bit_offset: 0 + bit_size: 1 + array: + len: 20 + stride: 1 +fieldset/AWD3CR: + description: analog watchdog 3 configuration register + fields: + - name: AWD3CH + description: analog watchdog 3 monitored channel selection + bit_offset: 1 + bit_size: 1 + array: + len: 20 + stride: 1 +fieldset/CALFACT: + description: calibration factors register + fields: + - name: CALFACT_S + description: calibration factor in single-ended mode + bit_offset: 0 + bit_size: 11 + - name: CALFACT_D + description: calibration factor in differential mode + bit_offset: 16 + bit_size: 11 +fieldset/CALFACT2: + description: Calibration Factor register 2 + fields: + - name: LINCALFACT + description: Linearity Calibration Factor + bit_offset: 0 + bit_size: 30 +fieldset/CFGR: + description: configuration register 1 + fields: + - name: DMNGT + description: DMA transfer enable + bit_offset: 0 + bit_size: 2 + enum: DMNGT + - name: RES + description: data resolution + bit_offset: 2 + bit_size: 3 + enum: RES + - name: EXTSEL + description: group regular external trigger source + bit_offset: 5 + bit_size: 5 + - name: EXTEN + description: group regular external trigger polarity + bit_offset: 10 + bit_size: 2 + enum: EXTEN + - name: OVRMOD + description: group regular overrun configuration + bit_offset: 12 + bit_size: 1 + enum: OVRMOD + - name: CONT + description: group regular continuous conversion mode + bit_offset: 13 + bit_size: 1 + - name: AUTDLY + description: low power auto wait + bit_offset: 14 + bit_size: 1 + - name: DISCEN + description: group regular sequencer discontinuous mode + bit_offset: 16 + bit_size: 1 + - name: DISCNUM + description: group regular sequencer discontinuous number of ranks + bit_offset: 17 + bit_size: 3 + - name: JDISCEN + description: group injected sequencer discontinuous mode + bit_offset: 20 + bit_size: 1 + - name: JQM + description: group injected contexts queue mode + bit_offset: 21 + bit_size: 1 + enum: JQM + - name: AWD1SGL + description: analog watchdog 1 monitoring a single channel or all channels + bit_offset: 22 + bit_size: 1 + enum: AWD1SGL + - name: AWD1EN + description: analog watchdog 1 enable on scope group regular + bit_offset: 23 + bit_size: 1 + - name: JAWD1EN + description: analog watchdog 1 enable on scope group injected + bit_offset: 24 + bit_size: 1 + - name: JAUTO + description: group injected automatic trigger mode + bit_offset: 25 + bit_size: 1 + - name: AWD1CH + description: analog watchdog 1 monitored channel selection + bit_offset: 26 + bit_size: 5 + - name: JQDIS + description: group injected contexts queue disable + bit_offset: 31 + bit_size: 1 +fieldset/CFGR2: + description: configuration register 2 + fields: + - name: ROVSE + description: oversampler enable on scope group regular + bit_offset: 0 + bit_size: 1 + - name: JOVSE + description: oversampler enable on scope group injected + bit_offset: 1 + bit_size: 1 + - name: OVSS + description: oversampling shift + bit_offset: 5 + bit_size: 4 + - name: TROVS + description: oversampling discontinuous mode (triggered mode) for group regular + bit_offset: 9 + bit_size: 1 + enum: TROVS + - name: ROVSM + description: Regular Oversampling mode + bit_offset: 10 + bit_size: 1 + enum: ROVSM + - name: RSHIFT1 + description: Right-shift data after Offset 1 correction + bit_offset: 11 + bit_size: 1 + - name: RSHIFT2 + description: Right-shift data after Offset 2 correction + bit_offset: 12 + bit_size: 1 + - name: RSHIFT3 + description: Right-shift data after Offset 3 correction + bit_offset: 13 + bit_size: 1 + - name: RSHIFT4 + description: Right-shift data after Offset 4 correction + bit_offset: 14 + bit_size: 1 + - name: OSVR + description: Oversampling ratio + bit_offset: 16 + bit_size: 10 + - name: LSHIFT + description: Left shift factor + bit_offset: 28 + bit_size: 4 +fieldset/CR: + description: control register + fields: + - name: ADEN + description: enable + bit_offset: 0 + bit_size: 1 + - name: ADDIS + description: disable + bit_offset: 1 + bit_size: 1 + - name: ADSTART + description: group regular conversion start + bit_offset: 2 + bit_size: 1 + - name: JADSTART + description: group injected conversion start + bit_offset: 3 + bit_size: 1 + - name: ADSTP + description: group regular conversion stop + bit_offset: 4 + bit_size: 1 + enum: ADSTP + - name: JADSTP + description: group injected conversion stop + bit_offset: 5 + bit_size: 1 + enum: ADSTP + - name: BOOST + description: Boost mode control + bit_offset: 8 + bit_size: 2 + enum: BOOST + - name: ADCALLIN + description: Linearity calibration + bit_offset: 16 + bit_size: 1 + - name: LINCALRDYW1 + description: Linearity calibration ready Word 1 + bit_offset: 22 + bit_size: 1 + - name: LINCALRDYW2 + description: Linearity calibration ready Word 2 + bit_offset: 23 + bit_size: 1 + - name: LINCALRDYW3 + description: Linearity calibration ready Word 3 + bit_offset: 24 + bit_size: 1 + - name: LINCALRDYW4 + description: Linearity calibration ready Word 4 + bit_offset: 25 + bit_size: 1 + - name: LINCALRDYW5 + description: Linearity calibration ready Word 5 + bit_offset: 26 + bit_size: 1 + - name: LINCALRDYW6 + description: Linearity calibration ready Word 6 + bit_offset: 27 + bit_size: 1 + - name: ADVREGEN + description: voltage regulator enable + bit_offset: 28 + bit_size: 1 + - name: DEEPPWD + description: deep power down enable + bit_offset: 29 + bit_size: 1 + - name: ADCALDIF + description: differential mode for calibration + bit_offset: 30 + bit_size: 1 + enum: ADCALDIF + - name: ADCAL + description: calibration + bit_offset: 31 + bit_size: 1 +fieldset/DIFSEL: + description: channel differential or single-ended mode selection register + fields: + - name: DIFSEL + description: channel differential or single-ended mode for channel + bit_offset: 0 + bit_size: 1 + array: + len: 20 + stride: 1 + enum: DIFSEL +fieldset/DR: + description: group regular conversion data register + fields: + - name: RDATA + description: group regular conversion data + bit_offset: 0 + bit_size: 16 +fieldset/HTR1: + description: analog watchdog 2 threshold register + fields: + - name: HTR1 + description: analog watchdog 2 threshold low + bit_offset: 0 + bit_size: 26 +fieldset/HTR2: + description: watchdog higher threshold register 2 + fields: + - name: HTR2 + description: Analog watchdog 2 higher threshold + bit_offset: 0 + bit_size: 26 +fieldset/HTR3: + description: watchdog higher threshold register 3 + fields: + - name: HTR3 + description: Analog watchdog 3 higher threshold + bit_offset: 0 + bit_size: 26 +fieldset/IER: + description: interrupt enable register + fields: + - name: ADRDYIE + description: ready interrupt + bit_offset: 0 + bit_size: 1 + - name: EOSMPIE + description: group regular end of sampling interrupt + bit_offset: 1 + bit_size: 1 + - name: EOCIE + description: group regular end of unitary conversion interrupt + bit_offset: 2 + bit_size: 1 + - name: EOSIE + description: group regular end of sequence conversions interrupt + bit_offset: 3 + bit_size: 1 + - name: OVRIE + description: group regular overrun interrupt + bit_offset: 4 + bit_size: 1 + - name: JEOCIE + description: group injected end of unitary conversion interrupt + bit_offset: 5 + bit_size: 1 + - name: JEOSIE + description: group injected end of sequence conversions interrupt + bit_offset: 6 + bit_size: 1 + - name: AWD1IE + description: analog watchdog 1 interrupt + bit_offset: 7 + bit_size: 1 + - name: AWD2IE + description: analog watchdog 2 interrupt + bit_offset: 8 + bit_size: 1 + - name: AWD3IE + description: analog watchdog 3 interrupt + bit_offset: 9 + bit_size: 1 + - name: JQOVFIE + description: group injected contexts queue overflow interrupt + bit_offset: 10 + bit_size: 1 +fieldset/ISR: + description: interrupt and status register + fields: + - name: ADRDY + description: ready flag + bit_offset: 0 + bit_size: 1 + - name: EOSMP + description: group regular end of sampling flag + bit_offset: 1 + bit_size: 1 + - name: EOC + description: group regular end of unitary conversion flag + bit_offset: 2 + bit_size: 1 + - name: EOS + description: group regular end of sequence conversions flag + bit_offset: 3 + bit_size: 1 + - name: OVR + description: group regular overrun flag + bit_offset: 4 + bit_size: 1 + - name: JEOC + description: group injected end of unitary conversion flag + bit_offset: 5 + bit_size: 1 + - name: JEOS + description: group injected end of sequence conversions flag + bit_offset: 6 + bit_size: 1 + - name: AWD1 + description: analog watchdog 1 flag + bit_offset: 7 + bit_size: 1 + - name: AWD2 + description: analog watchdog 2 flag + bit_offset: 8 + bit_size: 1 + - name: AWD3 + description: analog watchdog 3 flag + bit_offset: 9 + bit_size: 1 + - name: JQOVF + description: group injected contexts queue overflow flag + bit_offset: 10 + bit_size: 1 + - name: LDORDY + description: ADC LDO output voltage ready (not always available) + bit_offset: 12 + bit_size: 1 +fieldset/JDR: + description: group injected sequencer rank 1 register + fields: + - name: JDATA + description: group injected sequencer rank 1 conversion data + bit_offset: 0 + bit_size: 32 +fieldset/JSQR: + description: group injected sequencer register + fields: + - name: JL + description: group injected sequencer scan length + bit_offset: 0 + bit_size: 2 + - name: JEXTSEL + description: group injected external trigger source + bit_offset: 2 + bit_size: 5 + - name: JEXTEN + description: group injected external trigger polarity + bit_offset: 7 + bit_size: 2 + enum: JEXTEN + - name: JSQ1 + description: group injected sequencer rank 1-4 + bit_offset: 9 + bit_size: 5 + array: + len: 4 + stride: 6 +fieldset/LTR1: + description: analog watchdog 1 threshold register + fields: + - name: LTR1 + description: analog watchdog 1 threshold low + bit_offset: 0 + bit_size: 26 +fieldset/LTR2: + description: watchdog lower threshold register 2 + fields: + - name: LTR2 + description: Analog watchdog 2 lower threshold + bit_offset: 0 + bit_size: 26 +fieldset/LTR3: + description: watchdog lower threshold register 3 + fields: + - name: LTR3 + description: Analog watchdog 3 lower threshold + bit_offset: 0 + bit_size: 26 +fieldset/OFR: + description: offset number x register + fields: + - name: OFFSET1 + description: offset number x offset level + bit_offset: 0 + bit_size: 26 + - name: OFFSET1_CH + description: offset number x channel selection + bit_offset: 26 + bit_size: 5 + - name: SSATE + description: Signed saturation enable + bit_offset: 31 + bit_size: 1 +fieldset/PCSEL: + description: channel preselection register + fields: + - name: PCSEL + description: Channel x (VINP[i]) pre selection + bit_offset: 0 + bit_size: 1 + array: + len: 20 + stride: 1 + enum: PCSEL +fieldset/SMPR: + description: sampling time register n + fields: + - name: SMP + description: channel n * 10 + x sampling time + bit_offset: 0 + bit_size: 3 + array: + len: 10 + stride: 3 + enum: SAMPLE_TIME +fieldset/SQR1: + description: group regular sequencer ranks register 1 + fields: + - name: L + description: L3 + bit_offset: 0 + bit_size: 4 + - name: SQ + description: group regular sequencer rank 1-4 + bit_offset: 6 + bit_size: 5 + array: + len: 4 + stride: 6 +fieldset/SQR2: + description: group regular sequencer ranks register 2 + fields: + - name: SQ + description: group regular sequencer rank 5-9 + bit_offset: 0 + bit_size: 5 + array: + len: 5 + stride: 6 +fieldset/SQR3: + description: group regular sequencer ranks register 3 + fields: + - name: SQ + description: group regular sequencer rank 10-14 + bit_offset: 0 + bit_size: 5 + array: + len: 5 + stride: 6 +fieldset/SQR4: + description: group regular sequencer ranks register 4 + fields: + - name: SQ + description: group regular sequencer rank 15-16 + bit_offset: 0 + bit_size: 5 + array: + len: 2 + stride: 6 +enum/ADCALDIF: + bit_size: 1 + variants: + - name: SingleEnded + description: Calibration for single-ended mode + value: 0 + - name: Differential + description: Calibration for differential mode + value: 1 +enum/ADSTP: + bit_size: 1 + variants: + - name: Stop + description: Stop conversion of channel + value: 1 +enum/AWD1SGL: + bit_size: 1 + variants: + - name: All + description: Analog watchdog 1 enabled on all channels + value: 0 + - name: Single + description: Analog watchdog 1 enabled on single channel selected in AWD1CH + value: 1 +enum/BOOST: + bit_size: 2 + variants: + - name: LT6_25 + description: Boost mode used when clock ≤ 6.25 MHz + value: 0 + - name: LT12_5 + description: Boost mode used when 6.25 MHz < clock ≤ 12.5 MHz + value: 1 + - name: LT25 + description: Boost mode used when 12.5 MHz < clock ≤ 25.0 MHz + value: 2 + - name: LT50 + description: Boost mode used when 25.0 MHz < clock ≤ 50.0 MHz + value: 3 +enum/DIFSEL: + bit_size: 1 + variants: + - name: SingleEnded + description: Input channel is configured in single-ended mode + value: 0 + - name: Differential + description: Input channel is configured in differential mode + value: 1 +enum/DMNGT: + bit_size: 2 + variants: + - name: DR + description: Store output data in DR only + value: 0 + - name: DMA_OneShot + description: DMA One Shot Mode selected + value: 1 + - name: DFSDM + description: DFSDM mode selected + value: 2 + - name: DMA_Circular + description: DMA Circular Mode selected + value: 3 +enum/EXTEN: + bit_size: 2 + variants: + - name: Disabled + description: Trigger detection disabled + value: 0 + - name: RisingEdge + description: Trigger detection on the rising edge + value: 1 + - name: FallingEdge + description: Trigger detection on the falling edge + value: 2 + - name: BothEdges + description: Trigger detection on both the rising and falling edges + value: 3 +enum/JEXTEN: + bit_size: 2 + variants: + - name: Disabled + description: Trigger detection disabled + value: 0 + - name: RisingEdge + description: Trigger detection on the rising edge + value: 1 + - name: FallingEdge + description: Trigger detection on the falling edge + value: 2 + - name: BothEdges + description: Trigger detection on both the rising and falling edges + value: 3 +enum/JQM: + bit_size: 1 + variants: + - name: Mode0 + description: 'JSQR Mode 0: Queue maintains the last written configuration into JSQR' + value: 0 + - name: Mode1 + description: 'JSQR Mode 1: An empty queue disables software and hardware triggers of the injected sequence' + value: 1 +enum/OVRMOD: + bit_size: 1 + variants: + - name: Preserve + description: Preserve DR register when an overrun is detected + value: 0 + - name: Overwrite + description: Overwrite DR register when an overrun is detected + value: 1 +enum/PCSEL: + bit_size: 1 + variants: + - name: NotPreselected + description: Input channel x is not pre-selected + value: 0 + - name: Preselected + description: Pre-select input channel x + value: 1 +enum/RES: + bit_size: 3 + variants: + - name: Bits12 + description: 12-bit resolution + value: 0 + - name: Bits10 + description: 10-bit resolution + value: 1 + - name: Bits8 + description: 8-bit resolution + value: 2 + - name: Bits6 + description: 6-bit resolution + value: 3 +enum/ROVSM: + bit_size: 1 + variants: + - name: Continued + description: Oversampling is temporary stopped and continued after injection sequence + value: 0 + - name: Resumed + description: Oversampling is aborted and resumed from start after injection sequence + value: 1 +enum/SAMPLE_TIME: + bit_size: 3 + variants: + - name: Cycles1_5 + description: 1.5 clock cycles + value: 0 + - name: Cycles2_5 + description: 2.5 clock cycles + value: 1 + - name: Cycles8_5 + description: 8.5 clock cycles + value: 2 + - name: Cycles16_5 + description: 16.5 clock cycles + value: 3 + - name: Cycles32_5 + description: 32.5 clock cycles + value: 4 + - name: Cycles64_5 + description: 64.5 clock cycles + value: 5 + - name: Cycles387_5 + description: 387.5 clock cycles + value: 6 + - name: Cycles810_5 + description: 810.5 clock cycles + value: 7 +enum/TROVS: + bit_size: 1 + variants: + - name: Automatic + description: All oversampled conversions for a channel are run following a trigger + value: 0 + - name: Triggered + description: Each oversampled conversion for a channel needs a new trigger + value: 1 diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index bacb4b6..c87a38f 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -209,7 +209,7 @@ impl PeriMatcher { ("STM32WLE.*:ADC:.*", ("adc", "g0", "ADC")), ("STM32G0.*:ADC:.*", ("adc", "g0", "ADC")), ("STM32G0.*:ADC_COMMON:.*", ("adccommon", "v3", "ADC_COMMON")), - ("STM32G4.*:ADC:.*", ("adc", "v4", "ADC")), + ("STM32G4.*:ADC:.*", ("adc", "g4", "ADC")), ("STM32G4.*:ADC_COMMON:.*", ("adccommon", "v4", "ADC_COMMON")), (".*:ADC_COMMON:aditf2_v1_1", ("adccommon", "v2", "ADC_COMMON")), (".*:ADC_COMMON:aditf5_v2_0", ("adccommon", "v3", "ADC_COMMON")), From 9dfb42cd915a1102dffaf346a4f41e4c424638c3 Mon Sep 17 00:00:00 2001 From: qff233 <347633553@qq.com> Date: Fri, 5 Apr 2024 01:32:04 +0800 Subject: [PATCH 14/41] Fix ADC sample_time enum for stm32g4 --- data/registers/adc_g4.yaml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/data/registers/adc_g4.yaml b/data/registers/adc_g4.yaml index 49b6aed..2a397a7 100644 --- a/data/registers/adc_g4.yaml +++ b/data/registers/adc_g4.yaml @@ -775,29 +775,29 @@ enum/ROVSM: enum/SAMPLE_TIME: bit_size: 3 variants: - - name: Cycles1_5 - description: 1.5 clock cycles - value: 0 - name: Cycles2_5 description: 2.5 clock cycles + value: 0 + - name: Cycles6_5 + description: 6.5 clock cycles value: 1 - - name: Cycles8_5 - description: 8.5 clock cycles + - name: Cycles12_5 + description: 12.5 clock cycles value: 2 - - name: Cycles16_5 - description: 16.5 clock cycles + - name: Cycles24_5 + description: 24.5 clock cycles value: 3 - - name: Cycles32_5 - description: 32.5 clock cycles + - name: Cycles47_5 + description: 47.5 clock cycles value: 4 - - name: Cycles64_5 - description: 64.5 clock cycles + - name: Cycles92_5 + description: 92.5 clock cycles value: 5 - - name: Cycles387_5 - description: 387.5 clock cycles + - name: Cycles247_5 + description: 247.5 clock cycles value: 6 - - name: Cycles810_5 - description: 810.5 clock cycles + - name: Cycles640_5 + description: 640.5 clock cycles value: 7 enum/TROVS: bit_size: 1 From f789074a4b0544826fa76ec0e3d57355c5da3845 Mon Sep 17 00:00:00 2001 From: eZio Pan Date: Fri, 5 Apr 2024 12:36:35 +0800 Subject: [PATCH 15/41] merge input mode and output mode --- data/registers/lptim_v2b.yaml | 290 +++++++++------------------------- 1 file changed, 71 insertions(+), 219 deletions(-) diff --git a/data/registers/lptim_v2b.yaml b/data/registers/lptim_v2b.yaml index 5a4213b..3182a64 100644 --- a/data/registers/lptim_v2b.yaml +++ b/data/registers/lptim_v2b.yaml @@ -1,27 +1,19 @@ -block/IC: - items: - - name: ISR - description: LPTIM interrupt and status register. - byte_offset: 0 - fieldset: ISR_IC - - name: ICR - description: LPTIM interrupt clear register. - byte_offset: 4 - fieldset: ICR_IC - - name: DIER - description: LPTIM interrupt enable register. - byte_offset: 8 - fieldset: DIER_IC block/LPTIM_ADV: extends: LPTIM_BASIC description: Low power timer with Output Compare items: - - name: InputCapture + - name: ISR + description: LPTIM interrupt and status register. byte_offset: 0 - block: IC - - name: OutputCompare - byte_offset: 0 - block: OC_ADV + fieldset: ISR_ADV + - name: ICR + description: LPTIM interrupt clear register. + byte_offset: 4 + fieldset: ICR_ADV + - name: DIER + description: LPTIM interrupt enable register. + byte_offset: 8 + fieldset: DIER_ADV - name: CCR description: LPTIM compare register 1. array: @@ -83,20 +75,6 @@ block/LPTIM_BASIC: description: LPTIM repetition register. byte_offset: 40 fieldset: RCR -block/OC_ADV: - items: - - name: ISR - description: LPTIM interrupt and status register. - byte_offset: 0 - fieldset: ISR_OC_ADV - - name: ICR - description: LPTIM interrupt clear register. - byte_offset: 4 - fieldset: ICR_OC_ADV - - name: DIER - description: LPTIM interrupt enable register. - byte_offset: 8 - fieldset: DIER_OC_ADV fieldset/ARR: description: LPTIM autoreload register. fields: @@ -277,6 +255,38 @@ fieldset/CR: description: Reset after read enable This bit is set and cleared by software. When RSTARE is set to '1', any read access to LPTIM_CNT register asynchronously resets LPTIM_CNT register content. This bit can be set only when the LPTIM is enabled. bit_offset: 4 bit_size: 1 +fieldset/DIER_ADV: + extends: DIER_BASIC + description: LPTIM interrupt enable register. + fields: + - name: CCIE + description: Capture/compare 1 interrupt enable. + bit_offset: 0 + bit_size: 1 + array: + len: 2 + stride: 9 + - name: CMPOKIE + description: Compare register 1 update OK interrupt enable. + bit_offset: 3 + bit_size: 1 + array: + len: 2 + stride: 16 + - name: CCOIE + description: 'Capture/compare 1 over-capture interrupt enable Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' + bit_offset: 12 + bit_size: 1 + array: + len: 2 + stride: 1 + - name: CCDE + description: 'Capture/compare 1 DMA request enable Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' + bit_offset: 16 + bit_size: 1 + array: + len: 2 + stride: 9 fieldset/DIER_BASIC: description: LPTIM interrupt enable register. fields: @@ -322,80 +332,31 @@ fieldset/DIER_BASIC: description: Repetition register update OK interrupt Enable. bit_offset: 8 bit_size: 1 -fieldset/DIER_IC: - description: LPTIM interrupt enable register. +fieldset/ICR_ADV: + extends: ICR_BASIC + description: LPTIM interrupt clear register. fields: - - name: CCIE - description: Capture/compare 1 interrupt enable. + - name: CCCF + description: Capture/compare 1 clear flag Writing 1 to this bit clears the CC1IF flag in the LPTIM_ISR register. bit_offset: 0 bit_size: 1 array: len: 2 stride: 9 - - name: ARRMIE - description: Autoreload match Interrupt Enable. - bit_offset: 1 - bit_size: 1 - - name: EXTTRIGIE - description: External trigger valid edge Interrupt Enable. - bit_offset: 2 - bit_size: 1 - - name: ARROKIE - description: Autoreload register update OK Interrupt Enable. - bit_offset: 4 - bit_size: 1 - - name: UPIE - description: 'Direction change to UP Interrupt Enable Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' - bit_offset: 5 - bit_size: 1 - - name: DOWNIE - description: 'Direction change to down Interrupt Enable Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' - bit_offset: 6 - bit_size: 1 - - name: UEIE - description: Update event interrupt enable. - bit_offset: 7 - bit_size: 1 - - name: REPOKIE - description: Repetition register update OK interrupt Enable. - bit_offset: 8 - bit_size: 1 - - name: CCOIE - description: 'Capture/compare 1 over-capture interrupt enable Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' - bit_offset: 12 - bit_size: 1 - array: - len: 2 - stride: 1 - - name: CCDE - description: 'Capture/compare 1 DMA request enable Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' - bit_offset: 16 - bit_size: 1 - array: - len: 2 - stride: 9 - - name: UEDE - description: 'Update event DMA request enable Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' - bit_offset: 23 - bit_size: 1 -fieldset/DIER_OC_ADV: - extends: DIER_BASIC - description: LPTIM interrupt enable register. - fields: - - name: CCIE - description: Capture/compare 1 interrupt enable. - bit_offset: 0 - bit_size: 1 - array: - len: 2 - stride: 9 - - name: CMPOKIE - description: Compare register 1 update OK interrupt enable. + - name: CMPOKCF + description: Compare register 1 update OK clear flag Writing 1 to this bit clears the CMP1OK flag in the LPTIM_ISR register. bit_offset: 3 bit_size: 1 array: len: 2 stride: 16 + - name: CCOCF + description: 'Capture/compare 1 over-capture clear flag Writing 1 to this bit clears the CC1OF flag in the LPTIM_ISR register. Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' + bit_offset: 12 + bit_size: 1 + array: + len: 2 + stride: 1 fieldset/ICR_BASIC: description: LPTIM interrupt clear register. fields: @@ -445,73 +406,31 @@ fieldset/ICR_BASIC: description: Interrupt enable register update OK clear flag Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register. bit_offset: 24 bit_size: 1 -fieldset/ICR_IC: - description: LPTIM interrupt clear register. +fieldset/ISR_ADV: + extends: ISR_BASIC + description: LPTIM interrupt and status register. fields: - - name: CCCF - description: Capture/compare 1 clear flag Writing 1 to this bit clears the CC1IF flag in the LPTIM_ISR register. + - name: CCIF + description: Compare 1 interrupt flag The CC1IF flag is set by hardware to inform application that LPTIM_CNT register value matches the compare register's value. The CC1IF flag can be cleared by writing 1 to the CC1CF bit in the LPTIM_ICR register. bit_offset: 0 bit_size: 1 array: len: 2 stride: 9 - - name: ARRMCF - description: Autoreload match clear flag Writing 1 to this bit clears the ARRM flag in the LPTIM_ISR register. - bit_offset: 1 - bit_size: 1 - - name: EXTTRIGCF - description: External trigger valid edge clear flag Writing 1 to this bit clears the EXTTRIG flag in the LPTIM_ISR register. - bit_offset: 2 - bit_size: 1 - - name: ARROKCF - description: Autoreload register update OK clear flag Writing 1 to this bit clears the ARROK flag in the LPTIM_ISR register. - bit_offset: 4 - bit_size: 1 - - name: UPCF - description: 'Direction change to UP clear flag Writing 1 to this bit clear the UP flag in the LPTIM_ISR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' - bit_offset: 5 - bit_size: 1 - - name: DOWNCF - description: 'Direction change to down clear flag Writing 1 to this bit clear the DOWN flag in the LPTIM_ISR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' - bit_offset: 6 - bit_size: 1 - - name: UECF - description: Update event clear flag Writing 1 to this bit clear the UE flag in the LPTIM_ISR register. - bit_offset: 7 - bit_size: 1 - - name: REPOKCF - description: Repetition register update OK clear flag Writing 1 to this bit clears the REPOK flag in the LPTIM_ISR register. - bit_offset: 8 - bit_size: 1 - - name: CCOCF - description: 'Capture/compare 1 over-capture clear flag Writing 1 to this bit clears the CC1OF flag in the LPTIM_ISR register. Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' - bit_offset: 12 - bit_size: 1 - array: - len: 2 - stride: 1 - - name: DIEROKCF - description: Interrupt enable register update OK clear flag Writing 1 to this bit clears the DIEROK flag in the LPTIM_ISR register. - bit_offset: 24 - bit_size: 1 -fieldset/ICR_OC_ADV: - extends: ICR_BASIC - description: LPTIM interrupt clear register. - fields: - - name: CCCF - description: Capture/compare 1 clear flag Writing 1 to this bit clears the CC1IF flag in the LPTIM_ISR register. - bit_offset: 0 - bit_size: 1 - array: - len: 2 - stride: 9 - - name: CMPOKCF - description: Compare register 1 update OK clear flag Writing 1 to this bit clears the CMP1OK flag in the LPTIM_ISR register. + - name: CMPOK + description: Compare register 1 update OK CMP1OK is set by hardware to inform application that the APB bus write operation to the LPTIM_CCR1 register has been successfully completed. CMP1OK flag can be cleared by writing 1 to the CMP1OKCF bit in the LPTIM_ICR register. bit_offset: 3 bit_size: 1 array: len: 2 stride: 16 + - name: CCOF + description: 'Capture 1 over-capture flag This flag is set by hardware only when the corresponding channel is configured in input capture mode. It is cleared by software by writing 1 to the CC1OCF bit in the LPTIM_ICR register. Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' + bit_offset: 12 + bit_size: 1 + array: + len: 2 + stride: 1 fieldset/ISR_BASIC: description: LPTIM interrupt and status register. fields: @@ -561,73 +480,6 @@ fieldset/ISR_BASIC: description: Interrupt enable register update OK DIEROK is set by hardware to inform application that the APB bus write operation to the LPTIM_DIER register has been successfully completed. DIEROK flag can be cleared by writing 1 to the DIEROKCF bit in the LPTIM_ICR register. bit_offset: 24 bit_size: 1 -fieldset/ISR_IC: - description: LPTIM interrupt and status register. - fields: - - name: CCIF - description: 'capture 1 interrupt flag If channel CC1 is configured as input: CC1IF is set by hardware to inform application that the current value of the counter is captured in LPTIM_CCR1 register. The corresponding interrupt or DMA request is generated if enabled. The CC1OF flag is set if the CC1IF flag was already high.' - bit_offset: 0 - bit_size: 1 - array: - len: 2 - stride: 9 - - name: ARRM - description: Autoreload match ARRM is set by hardware to inform application that LPTIM_CNT register’s value reached the LPTIM_ARR register’s value. ARRM flag can be cleared by writing 1 to the ARRMCF bit in the LPTIM_ICR register. - bit_offset: 1 - bit_size: 1 - - name: EXTTRIG - description: External trigger edge event EXTTRIG is set by hardware to inform application that a valid edge on the selected external trigger input has occurred. If the trigger is ignored because the timer has already started, then this flag is not set. EXTTRIG flag can be cleared by writing 1 to the EXTTRIGCF bit in the LPTIM_ICR register. - bit_offset: 2 - bit_size: 1 - - name: ARROK - description: Autoreload register update OK ARROK is set by hardware to inform application that the APB bus write operation to the LPTIM_ARR register has been successfully completed. ARROK flag can be cleared by writing 1 to the ARROKCF bit in the LPTIM_ICR register. - bit_offset: 4 - bit_size: 1 - - name: UP - description: 'Counter direction change down to up In Encoder mode, UP bit is set by hardware to inform application that the counter direction has changed from down to up. UP flag can be cleared by writing 1 to the UPCF bit in the LPTIM_ICR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' - bit_offset: 5 - bit_size: 1 - - name: DOWN - description: 'Counter direction change up to down In Encoder mode, DOWN bit is set by hardware to inform application that the counter direction has changed from up to down. DOWN flag can be cleared by writing 1 to the DOWNCF bit in the LPTIM_ICR register. Note: If the LPTIM does not support encoder mode feature, this bit is reserved. Please refer to.' - bit_offset: 6 - bit_size: 1 - - name: UE - description: LPTIM update event occurred UE is set by hardware to inform application that an update event was generated. UE flag can be cleared by writing 1 to the UECF bit in the LPTIM_ICR register. - bit_offset: 7 - bit_size: 1 - - name: REPOK - description: Repetition register update OK REPOK is set by hardware to inform application that the APB bus write operation to the LPTIM_RCR register has been successfully completed. REPOK flag can be cleared by writing 1 to the REPOKCF bit in the LPTIM_ICR register. - bit_offset: 8 - bit_size: 1 - - name: CCOF - description: 'Capture 1 over-capture flag This flag is set by hardware only when the corresponding channel is configured in input capture mode. It is cleared by software by writing 1 to the CC1OCF bit in the LPTIM_ICR register. Note: If LPTIM does not implement at least 1 channel this bit is reserved. Please refer to.' - bit_offset: 12 - bit_size: 1 - array: - len: 2 - stride: 1 - - name: DIEROK - description: Interrupt enable register update OK DIEROK is set by hardware to inform application that the APB bus write operation to the LPTIM_DIER register has been successfully completed. DIEROK flag can be cleared by writing 1 to the DIEROKCF bit in the LPTIM_ICR register. - bit_offset: 24 - bit_size: 1 -fieldset/ISR_OC_ADV: - extends: ISR_BASIC - description: LPTIM interrupt and status register. - fields: - - name: CCIF - description: Compare 1 interrupt flag The CC1IF flag is set by hardware to inform application that LPTIM_CNT register value matches the compare register's value. The CC1IF flag can be cleared by writing 1 to the CC1CF bit in the LPTIM_ICR register. - bit_offset: 0 - bit_size: 1 - array: - len: 2 - stride: 9 - - name: CMPOK - description: Compare register 1 update OK CMP1OK is set by hardware to inform application that the APB bus write operation to the LPTIM_CCR1 register has been successfully completed. CMP1OK flag can be cleared by writing 1 to the CMP1OKCF bit in the LPTIM_ICR register. - bit_offset: 3 - bit_size: 1 - array: - len: 2 - stride: 16 fieldset/RCR: description: LPTIM repetition register. fields: From 408a20839a514f17032289838e7a315f872cfbbb Mon Sep 17 00:00:00 2001 From: qff233 <347633553@qq.com> Date: Fri, 5 Apr 2024 12:58:59 +0800 Subject: [PATCH 16/41] Fix serial registers for stm32g4 serial:q --- data/registers/adc_g4.yaml | 401 +++++++++++++++---------------------- 1 file changed, 158 insertions(+), 243 deletions(-) diff --git a/data/registers/adc_g4.yaml b/data/registers/adc_g4.yaml index 2a397a7..161d288 100644 --- a/data/registers/adc_g4.yaml +++ b/data/registers/adc_g4.yaml @@ -22,24 +22,25 @@ block/ADC: byte_offset: 16 fieldset: CFGR2 - name: SMPR - description: sampling time register 1-2 - array: - len: 2 - stride: 4 + description: sampling time register 1 byte_offset: 20 fieldset: SMPR - - name: PCSEL - description: pre channel selection register - byte_offset: 28 - fieldset: PCSEL - - name: LTR1 - description: analog watchdog 1 threshold register + - name: SMPR2 + description: sampling time register 2 + byte_offset: 24 + fieldset: SMPR2 + - name: TR1 + description: analog watchdog threshold register 1 byte_offset: 32 - fieldset: LTR1 - - name: HTR1 - description: analog watchdog 2 threshold register + fieldset: TR1 + - name: TR2 + description: analog watchdog threshold register 2 byte_offset: 36 - fieldset: HTR1 + fieldset: TR2 + - name: TR3 + description: analog watchdog threshold register 3 + byte_offset: 40 + fieldset: TR3 - name: SQR1 description: group regular sequencer ranks register 1 byte_offset: 48 @@ -88,166 +89,150 @@ block/ADC: description: analog watchdog 3 configuration register byte_offset: 164 fieldset: AWD3CR - - name: LTR2 - description: watchdog lower threshold register 2 - byte_offset: 176 - fieldset: LTR2 - - name: HTR2 - description: watchdog higher threshold register 2 - byte_offset: 180 - fieldset: HTR2 - - name: LTR3 - description: watchdog lower threshold register 3 - byte_offset: 184 - fieldset: LTR3 - - name: HTR3 - description: watchdog higher threshold register 3 - byte_offset: 188 - fieldset: HTR3 - name: DIFSEL description: channel differential or single-ended mode selection register - byte_offset: 192 + byte_offset: 176 fieldset: DIFSEL - name: CALFACT description: calibration factors register - byte_offset: 196 + byte_offset: 180 fieldset: CALFACT - - name: CALFACT2 - description: Calibration Factor register 2 - byte_offset: 200 - fieldset: CALFACT2 + - name: GCOMP + description: Gain compensation register + byte_offset: 192 + fieldset: GCOMP fieldset/AWD2CR: description: analog watchdog 2 configuration register fields: - name: AWD2CH - description: analog watchdog 2 monitored channel selection + description: analog watchdog 2 channel selection bit_offset: 0 - bit_size: 1 - array: - len: 20 - stride: 1 + bit_size: 19 fieldset/AWD3CR: description: analog watchdog 3 configuration register fields: - name: AWD3CH - description: analog watchdog 3 monitored channel selection - bit_offset: 1 - bit_size: 1 - array: - len: 20 - stride: 1 + description: analog watchdog 3 channel selection + bit_offset: 0 + bit_size: 19 fieldset/CALFACT: description: calibration factors register fields: - name: CALFACT_S description: calibration factor in single-ended mode bit_offset: 0 - bit_size: 11 + bit_size: 7 - name: CALFACT_D description: calibration factor in differential mode bit_offset: 16 - bit_size: 11 -fieldset/CALFACT2: - description: Calibration Factor register 2 - fields: - - name: LINCALFACT - description: Linearity Calibration Factor - bit_offset: 0 - bit_size: 30 + bit_size: 7 fieldset/CFGR: description: configuration register 1 fields: - - name: DMNGT - description: DMA transfer enable + - name: DMAEN + description: Direct memory access enable bit_offset: 0 - bit_size: 2 - enum: DMNGT + bit_size: 1 + enum: DMAEN + - name: DMACFG + description: direct memory access configuration + bit_offset: 0 + bit_size: 1 + enum: DMACFG - name: RES description: data resolution - bit_offset: 2 - bit_size: 3 + bit_offset: 3 + bit_size: 2 enum: RES - name: EXTSEL - description: group regular external trigger source + description: external trigger selection for regular group bit_offset: 5 bit_size: 5 - name: EXTEN - description: group regular external trigger polarity + description: external trigger enable and polarity selection for regular channels bit_offset: 10 bit_size: 2 enum: EXTEN - name: OVRMOD - description: group regular overrun configuration + description: overrun mode bit_offset: 12 bit_size: 1 enum: OVRMOD - name: CONT - description: group regular continuous conversion mode + description: single / continuous conversion mode for regular conversions bit_offset: 13 bit_size: 1 - name: AUTDLY - description: low power auto wait + description: delayed conversion mode bit_offset: 14 bit_size: 1 + - name: ALIGN + description: data alignment + bit_offset: 15 + bit_size: 1 - name: DISCEN - description: group regular sequencer discontinuous mode + description: discontinuous mode for regular channels bit_offset: 16 bit_size: 1 - name: DISCNUM - description: group regular sequencer discontinuous number of ranks + description: discontinuous mode channel count bit_offset: 17 bit_size: 3 - name: JDISCEN - description: group injected sequencer discontinuous mode + description: discontinuous mode on injected channels bit_offset: 20 bit_size: 1 - name: JQM - description: group injected contexts queue mode + description: JSQR queue mode bit_offset: 21 bit_size: 1 enum: JQM - name: AWD1SGL - description: analog watchdog 1 monitoring a single channel or all channels + description: enable the watchdog 1 on a single channel or on all channels bit_offset: 22 bit_size: 1 enum: AWD1SGL - name: AWD1EN - description: analog watchdog 1 enable on scope group regular + description: analog watchdog 1 enable on regular channels bit_offset: 23 bit_size: 1 - name: JAWD1EN - description: analog watchdog 1 enable on scope group injected + description: analog watchdog 1 enable on injected channels bit_offset: 24 bit_size: 1 - name: JAUTO - description: group injected automatic trigger mode + description: automatic injected group conversion bit_offset: 25 bit_size: 1 - name: AWD1CH - description: analog watchdog 1 monitored channel selection + description: analog watchdog 1 channel selection bit_offset: 26 bit_size: 5 - name: JQDIS - description: group injected contexts queue disable + description: injected queue disable bit_offset: 31 bit_size: 1 fieldset/CFGR2: description: configuration register 2 fields: - name: ROVSE - description: oversampler enable on scope group regular + description: Regular Oversampling Enable bit_offset: 0 bit_size: 1 - name: JOVSE - description: oversampler enable on scope group injected + description: Injected Oversampling Enable bit_offset: 1 bit_size: 1 + - name: OVSR + description: Oversampling ratio + bit_offset: 2 + bit_size: 3 - name: OVSS - description: oversampling shift + description: Oversampling shift bit_offset: 5 bit_size: 4 - name: TROVS - description: oversampling discontinuous mode (triggered mode) for group regular + description: Triggered Regular Oversampling bit_offset: 9 bit_size: 1 enum: TROVS @@ -256,30 +241,22 @@ fieldset/CFGR2: bit_offset: 10 bit_size: 1 enum: ROVSM - - name: RSHIFT1 - description: Right-shift data after Offset 1 correction - bit_offset: 11 - bit_size: 1 - - name: RSHIFT2 - description: Right-shift data after Offset 2 correction - bit_offset: 12 - bit_size: 1 - - name: RSHIFT3 - description: Right-shift data after Offset 3 correction - bit_offset: 13 - bit_size: 1 - - name: RSHIFT4 - description: Right-shift data after Offset 4 correction - bit_offset: 14 - bit_size: 1 - - name: OSVR - description: Oversampling ratio + - name: GCOMP + description: Gain compensation mode bit_offset: 16 - bit_size: 10 - - name: LSHIFT - description: Left shift factor - bit_offset: 28 - bit_size: 4 + bit_size: 1 + - name: SWTRIG + description: Software trigger bit for sampling time control trigger mode + bit_offset: 25 + bit_size: 1 + - name: BULB + description: Bulb sampling mode + bit_offset: 26 + bit_size: 1 + - name: SMPTRIG + description: Sampling time control trigger mode + bit_offset: 27 + bit_size: 1 fieldset/CR: description: control register fields: @@ -309,39 +286,6 @@ fieldset/CR: bit_offset: 5 bit_size: 1 enum: ADSTP - - name: BOOST - description: Boost mode control - bit_offset: 8 - bit_size: 2 - enum: BOOST - - name: ADCALLIN - description: Linearity calibration - bit_offset: 16 - bit_size: 1 - - name: LINCALRDYW1 - description: Linearity calibration ready Word 1 - bit_offset: 22 - bit_size: 1 - - name: LINCALRDYW2 - description: Linearity calibration ready Word 2 - bit_offset: 23 - bit_size: 1 - - name: LINCALRDYW3 - description: Linearity calibration ready Word 3 - bit_offset: 24 - bit_size: 1 - - name: LINCALRDYW4 - description: Linearity calibration ready Word 4 - bit_offset: 25 - bit_size: 1 - - name: LINCALRDYW5 - description: Linearity calibration ready Word 5 - bit_offset: 26 - bit_size: 1 - - name: LINCALRDYW6 - description: Linearity calibration ready Word 6 - bit_offset: 27 - bit_size: 1 - name: ADVREGEN description: voltage regulator enable bit_offset: 28 @@ -367,7 +311,7 @@ fieldset/DIFSEL: bit_offset: 0 bit_size: 1 array: - len: 20 + len: 18 stride: 1 enum: DIFSEL fieldset/DR: @@ -377,27 +321,6 @@ fieldset/DR: description: group regular conversion data bit_offset: 0 bit_size: 16 -fieldset/HTR1: - description: analog watchdog 2 threshold register - fields: - - name: HTR1 - description: analog watchdog 2 threshold low - bit_offset: 0 - bit_size: 26 -fieldset/HTR2: - description: watchdog higher threshold register 2 - fields: - - name: HTR2 - description: Analog watchdog 2 higher threshold - bit_offset: 0 - bit_size: 26 -fieldset/HTR3: - description: watchdog higher threshold register 3 - fields: - - name: HTR3 - description: Analog watchdog 3 higher threshold - bit_offset: 0 - bit_size: 26 fieldset/IER: description: interrupt enable register fields: @@ -492,17 +415,13 @@ fieldset/ISR: description: group injected contexts queue overflow flag bit_offset: 10 bit_size: 1 - - name: LDORDY - description: ADC LDO output voltage ready (not always available) - bit_offset: 12 - bit_size: 1 fieldset/JDR: - description: group injected sequencer rank 1 register + description: group injected sequencer rank 1-4 register fields: - name: JDATA - description: group injected sequencer rank 1 conversion data + description: group injected sequencer rank conversion data bit_offset: 0 - bit_size: 32 + bit_size: 16 fieldset/JSQR: description: group injected sequencer register fields: @@ -519,62 +438,75 @@ fieldset/JSQR: bit_offset: 7 bit_size: 2 enum: JEXTEN - - name: JSQ1 + - name: JSQ description: group injected sequencer rank 1-4 bit_offset: 9 bit_size: 5 array: len: 4 stride: 6 -fieldset/LTR1: - description: analog watchdog 1 threshold register +fieldset/TR1: + description: analog watchdog threshold register 1 fields: - - name: LTR1 - description: analog watchdog 1 threshold low + - name: LT1 + description: analog watchdog 1 lower threshold bit_offset: 0 - bit_size: 26 -fieldset/LTR2: - description: watchdog lower threshold register 2 + bit_size: 12 + - name: AWDFILT + description: analog watchdog filtering parameter + bit_offset: 12 + bit_size: 3 + - name: HT1 + description: analog watchdog 1 higher threshold + bit_offset: 16 + bit_size: 12 +fieldset/TR2: + description: analog watchdog threshold register 2 fields: - - name: LTR2 - description: Analog watchdog 2 lower threshold + - name: LT2 + description: analog watchdog 2 lower threshold bit_offset: 0 - bit_size: 26 -fieldset/LTR3: - description: watchdog lower threshold register 3 + bit_size: 8 + - name: HT2 + description: analog watchdog 2 higher threshold + bit_offset: 16 + bit_size: 8 +fieldset/TR3: + description: analog watchdog threshold register 3 fields: - - name: LTR3 - description: Analog watchdog 3 lower threshold + - name: LT3 + description: analog watchdog 3 lower threshold bit_offset: 0 - bit_size: 26 + bit_size: 8 + - name: HT3 + description: analog watchdog 3 higher threshold + bit_offset: 16 + bit_size: 8 fieldset/OFR: description: offset number x register fields: - - name: OFFSET1 - description: offset number x offset level + - name: OFFSET + description: data offset bit_offset: 0 - bit_size: 26 + bit_size: 12 + - name: OFFSETPOS + description: Positive offset + bit_offset: 24 + bit_size: 1 + - name: SATEN + description: Saturation enable + bit_offset: 25 + bit_size: 1 - name: OFFSET1_CH - description: offset number x channel selection + description: Channel selection for the data offset bit_offset: 26 bit_size: 5 - - name: SSATE - description: Signed saturation enable + - name: OFFSET_EN + description: Offset enable bit_offset: 31 bit_size: 1 -fieldset/PCSEL: - description: channel preselection register - fields: - - name: PCSEL - description: Channel x (VINP[i]) pre selection - bit_offset: 0 - bit_size: 1 - array: - len: 20 - stride: 1 - enum: PCSEL fieldset/SMPR: - description: sampling time register n + description: sampling time register fields: - name: SMP description: channel n * 10 + x sampling time @@ -584,11 +516,26 @@ fieldset/SMPR: len: 10 stride: 3 enum: SAMPLE_TIME + - name: SMPPLUS + description: Addition of one clock cycle to the sampling time + bit_offset: 31 + bit_size: 1 +fieldset/SMPR2: + description: sampling time register + fields: + - name: SMP + description: channel n * 10 + x sampling time + bit_offset: 0 + bit_size: 3 + array: + len: 9 + stride: 3 + enum: SAMPLE_TIME fieldset/SQR1: description: group regular sequencer ranks register 1 fields: - name: L - description: L3 + description: L bit_offset: 0 bit_size: 4 - name: SQ @@ -628,6 +575,13 @@ fieldset/SQR4: array: len: 2 stride: 6 +fieldset/GCOMP: + description: Gain compensation coefficient + fields: + - name: GCOMPCOEFF + description: Gain compensation coefficient + bit_offset: 0 + bit_size: 14 enum/ADCALDIF: bit_size: 1 variants: @@ -652,21 +606,6 @@ enum/AWD1SGL: - name: Single description: Analog watchdog 1 enabled on single channel selected in AWD1CH value: 1 -enum/BOOST: - bit_size: 2 - variants: - - name: LT6_25 - description: Boost mode used when clock ≤ 6.25 MHz - value: 0 - - name: LT12_5 - description: Boost mode used when 6.25 MHz < clock ≤ 12.5 MHz - value: 1 - - name: LT25 - description: Boost mode used when 12.5 MHz < clock ≤ 25.0 MHz - value: 2 - - name: LT50 - description: Boost mode used when 25.0 MHz < clock ≤ 50.0 MHz - value: 3 enum/DIFSEL: bit_size: 1 variants: @@ -676,21 +615,6 @@ enum/DIFSEL: - name: Differential description: Input channel is configured in differential mode value: 1 -enum/DMNGT: - bit_size: 2 - variants: - - name: DR - description: Store output data in DR only - value: 0 - - name: DMA_OneShot - description: DMA One Shot Mode selected - value: 1 - - name: DFSDM - description: DFSDM mode selected - value: 2 - - name: DMA_Circular - description: DMA Circular Mode selected - value: 3 enum/EXTEN: bit_size: 2 variants: @@ -739,17 +663,8 @@ enum/OVRMOD: - name: Overwrite description: Overwrite DR register when an overrun is detected value: 1 -enum/PCSEL: - bit_size: 1 - variants: - - name: NotPreselected - description: Input channel x is not pre-selected - value: 0 - - name: Preselected - description: Pre-select input channel x - value: 1 enum/RES: - bit_size: 3 + bit_size: 2 variants: - name: Bits12 description: 12-bit resolution @@ -803,8 +718,8 @@ enum/TROVS: bit_size: 1 variants: - name: Automatic - description: All oversampled conversions for a channel are run following a trigger + description: All oversampled conversions for a channel are done consecutively following a trigger value: 0 - name: Triggered description: Each oversampled conversion for a channel needs a new trigger - value: 1 + value: 1 \ No newline at end of file From a2c4423ed5c1dc61b86797d8d230c28ddbde84bb Mon Sep 17 00:00:00 2001 From: qff233 <347633553@qq.com> Date: Fri, 5 Apr 2024 13:07:24 +0800 Subject: [PATCH 17/41] Fix DMA enum --- data/registers/adc_g4.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/data/registers/adc_g4.yaml b/data/registers/adc_g4.yaml index 161d288..57b75d3 100644 --- a/data/registers/adc_g4.yaml +++ b/data/registers/adc_g4.yaml @@ -615,6 +615,24 @@ enum/DIFSEL: - name: Differential description: Input channel is configured in differential mode value: 1 +enum/DMAEN: + bit_size: 1 + variants: + - name: Disable + description: DMA disable + value: 0 + - name: Enable + description: DMA enable + value: 1 +enum/DMACFG: + bit_size: 1 + variants: + - name: OneShotMode + description: DMA One Shot mode selected + value: 0 + - name: CircularMode + description: DMA Circular mode selected + value: 1 enum/EXTEN: bit_size: 2 variants: From 16b4fd12c155776007e50d947fd3e02e70a3b052 Mon Sep 17 00:00:00 2001 From: eZio Pan Date: Fri, 5 Apr 2024 14:59:42 +0800 Subject: [PATCH 18/41] merge lptim CCMR output and input move overlap to field level --- data/registers/lptim_v2b.yaml | 56 ++++++++++++++--------------------- 1 file changed, 22 insertions(+), 34 deletions(-) diff --git a/data/registers/lptim_v2b.yaml b/data/registers/lptim_v2b.yaml index 3182a64..de86cb0 100644 --- a/data/registers/lptim_v2b.yaml +++ b/data/registers/lptim_v2b.yaml @@ -21,14 +21,10 @@ block/LPTIM_ADV: stride: 32 byte_offset: 20 fieldset: CCR - - name: CCMR_IC + - name: CCMR description: LPTIM capture/compare mode register 1. byte_offset: 44 - fieldset: CCMR_IC - - name: CCMR_OC - description: LPTIM capture/compare mode register 1. - byte_offset: 44 - fieldset: CCMR_OC + fieldset: CCMR block/LPTIM_BASIC: description: Low power timer with Output Compare items: @@ -82,32 +78,8 @@ fieldset/ARR: description: Auto reload value ARR is the autoreload value for the LPTIM. This value must be strictly greater than the CCRx[15:0] value. bit_offset: 0 bit_size: 16 -fieldset/CCMR_IC: - extends: CCMR_partial - description: LPTIM input capture mode register 1. - fields: - - name: CCP - description: Capture/compare 1 output polarity. Only bit2 is used to set polarity when output mode is enabled, bit3 is don't care. This field is used to select the IC1 polarity for capture operations. - bit_offset: 2 - bit_size: 2 - array: - len: 2 - stride: 16 - enum: CCP_IC -fieldset/CCMR_OC: - extends: CCMR_partial - description: LPTIM output compare mode register 1. - fields: - - name: CCP - description: Capture/compare 1 output polarity. Only bit2 is used to set polarity when output mode is enabled, bit3 is don't care. This field is used to select the IC1 polarity for capture operations. - bit_offset: 2 - bit_size: 2 - array: - len: 2 - stride: 16 - enum: CCP_OC -fieldset/CCMR_partial: - description: internal use only - common fields between CCMR input mode and output mode +fieldset/CCMR: + description: LPTIM capture/compare mode register 1. fields: - name: CCSEL description: Capture/compare 1 selection This bitfield defines the direction of the channel input (capture) or output mode. @@ -124,6 +96,22 @@ fieldset/CCMR_partial: array: len: 2 stride: 16 + - name: CCP_Input + description: Capture/compare 1 output polarity. Only bit2 is used to set polarity when output mode is enabled, bit3 is don't care. This field is used to select the IC1 polarity for capture operations. + bit_offset: 2 + bit_size: 2 + array: + len: 2 + stride: 16 + enum: CCP_Input + - name: CCP_Output + description: Capture/compare 1 output polarity. Only bit2 is used to set polarity when output mode is enabled, bit3 is don't care. This field is used to select the IC1 polarity for capture operations. + bit_offset: 2 + bit_size: 2 + array: + len: 2 + stride: 16 + enum: CCP_Output - name: ICPSC description: Input capture 1 prescaler This bitfield defines the ratio of the prescaler acting on the CC1 input (IC1). bit_offset: 8 @@ -487,7 +475,7 @@ fieldset/RCR: description: Repetition register value REP is the repetition value for the LPTIM. bit_offset: 0 bit_size: 8 -enum/CCP_IC: +enum/CCP_Input: bit_size: 2 variants: - name: Rising @@ -496,7 +484,7 @@ enum/CCP_IC: value: 1 - name: Both value: 3 -enum/CCP_OC: +enum/CCP_Output: bit_size: 2 variants: - name: ActiveHigh From d258cf858d9e2cdf409548779f7ecc48d995b275 Mon Sep 17 00:00:00 2001 From: David Lawrence Date: Fri, 5 Apr 2024 12:09:25 -0400 Subject: [PATCH 19/41] Split STM32G4 flash peripheral by device category --- .../{flash_g4.yaml => flash_g4c2.yaml} | 0 data/registers/flash_g4c3.yaml | 414 ++++++++++++++++++ data/registers/flash_g4c4.yaml | 406 +++++++++++++++++ stm32-data-gen/src/chips.rs | 4 +- 4 files changed, 823 insertions(+), 1 deletion(-) rename data/registers/{flash_g4.yaml => flash_g4c2.yaml} (100%) create mode 100644 data/registers/flash_g4c3.yaml create mode 100644 data/registers/flash_g4c4.yaml diff --git a/data/registers/flash_g4.yaml b/data/registers/flash_g4c2.yaml similarity index 100% rename from data/registers/flash_g4.yaml rename to data/registers/flash_g4c2.yaml diff --git a/data/registers/flash_g4c3.yaml b/data/registers/flash_g4c3.yaml new file mode 100644 index 0000000..5ef2785 --- /dev/null +++ b/data/registers/flash_g4c3.yaml @@ -0,0 +1,414 @@ +block/FLASH: + description: Flash + items: + - name: ACR + description: Access control register + byte_offset: 0 + fieldset: ACR + - name: PDKEYR + description: Power down key register + byte_offset: 4 + access: Write + - name: KEYR + description: Flash key register + byte_offset: 8 + access: Write + - name: OPTKEYR + description: Option byte key register + byte_offset: 12 + access: Write + - name: SR + description: Status register + byte_offset: 16 + fieldset: SR + - name: CR + description: Flash control register + byte_offset: 20 + fieldset: CR + - name: ECCR + description: Flash ECC register + byte_offset: 24 + fieldset: ECCR + - name: OPTR + description: Flash option register + byte_offset: 32 + fieldset: OPTR + - name: PCROP1SR + description: Flash Bank 1 PCROP Start address register + byte_offset: 36 + fieldset: PCROP1SR + - name: PCROP1ER + description: Flash Bank 1 PCROP End address register + byte_offset: 40 + fieldset: PCROP1ER + - name: WRP1AR + description: Flash Bank 1 WRP area A address register + byte_offset: 44 + fieldset: WRP1AR + - name: WRP1BR + description: Flash Bank 1 WRP area B address register + byte_offset: 48 + fieldset: WRP1BR + - name: SEC1R + description: securable area bank1 register + byte_offset: 112 + fieldset: SEC1R +fieldset/ACR: + description: Access control register + fields: + - name: LATENCY + description: Latency + bit_offset: 0 + bit_size: 4 + enum: LATENCY + - name: PRFTEN + description: Prefetch enable + bit_offset: 8 + bit_size: 1 + - name: ICEN + description: Instruction cache enable + bit_offset: 9 + bit_size: 1 + - name: DCEN + description: Data cache enable + bit_offset: 10 + bit_size: 1 + - name: ICRST + description: Instruction cache reset + bit_offset: 11 + bit_size: 1 + - name: DCRST + description: Data cache reset + bit_offset: 12 + bit_size: 1 + - name: RUN_PD + description: Flash Power-down mode during Low-power run mode + bit_offset: 13 + bit_size: 1 + - name: SLEEP_PD + description: Flash Power-down mode during Low-power sleep mode + bit_offset: 14 + bit_size: 1 + - name: DBG_SWEN + description: Debug software enable + bit_offset: 18 + bit_size: 1 +fieldset/CR: + description: Flash control register + fields: + - name: PG + description: Programming + bit_offset: 0 + bit_size: 1 + - name: PER + description: Page erase + bit_offset: 1 + bit_size: 1 + - name: MER1 + description: Bank 1 Mass erase + bit_offset: 2 + bit_size: 1 + - name: PNB + description: Page number + bit_offset: 3 + bit_size: 7 + - name: MER2 + description: Bank 2 Mass erase + bit_offset: 15 + bit_size: 1 + - name: STRT + description: Start + bit_offset: 16 + bit_size: 1 + - name: OPTSTRT + description: Options modification start + bit_offset: 17 + bit_size: 1 + - name: FSTPG + description: Fast programming + bit_offset: 18 + bit_size: 1 + - name: EOPIE + description: End of operation interrupt enable + bit_offset: 24 + bit_size: 1 + - name: ERRIE + description: Error interrupt enable + bit_offset: 25 + bit_size: 1 + - name: RDERRIE + description: PCROP read error interrupt enable + bit_offset: 26 + bit_size: 1 + - name: OBL_LAUNCH + description: Force the option byte loading + bit_offset: 27 + bit_size: 1 + - name: SEC_PROT1 + description: Securable memory area protection enable + bit_offset: 28 + bit_size: 1 + - name: OPTLOCK + description: Options Lock + bit_offset: 30 + bit_size: 1 + - name: LOCK + description: FLASH_CR Lock + bit_offset: 31 + bit_size: 1 +fieldset/ECCR: + description: Flash ECC register + fields: + - name: ADDR_ECC + description: ECC fail address + bit_offset: 0 + bit_size: 19 + - name: BK_ECC + description: ECC fail for Corrected ECC Error or Double ECC Error in info block + bit_offset: 21 + bit_size: 1 + - name: SYSF_ECC + description: ECC fail for Corrected ECC Error or Double ECC Error in info block + bit_offset: 22 + bit_size: 1 + - name: ECCIE + description: ECC correction interrupt enable + bit_offset: 24 + bit_size: 1 + - name: ECCC2 + description: ECC correction + bit_offset: 28 + bit_size: 1 + - name: ECCD2 + description: ECC2 detection + bit_offset: 29 + bit_size: 1 + - name: ECCC + description: ECC correction + bit_offset: 30 + bit_size: 1 + - name: ECCD + description: ECC detection + bit_offset: 31 + bit_size: 1 +fieldset/OPTR: + description: Flash option register + fields: + - name: RDP + description: Read protection level + bit_offset: 0 + bit_size: 8 + enum: RDP + - name: BOR_LEV + description: BOR reset Level + bit_offset: 8 + bit_size: 3 + - name: nRST_STOP + description: nRST_STOP + bit_offset: 12 + bit_size: 1 + - name: nRST_STDBY + description: nRST_STDBY + bit_offset: 13 + bit_size: 1 + - name: nRST_SHDW + description: nRST_SHDW + bit_offset: 14 + bit_size: 1 + - name: IDWG_SW + description: Independent watchdog selection + bit_offset: 16 + bit_size: 1 + - name: IWDG_STOP + description: Independent watchdog counter freeze in Stop mode + bit_offset: 17 + bit_size: 1 + - name: IWDG_STDBY + description: Independent watchdog counter freeze in Standby mode + bit_offset: 18 + bit_size: 1 + - name: WWDG_SW + description: Window watchdog selection + bit_offset: 19 + bit_size: 1 + - name: BFB2 + description: Dual bank boot + bit_offset: 20 + bit_size: 1 + - name: DBANK + description: Dual bank memory mode + bit_offset: 22 + bit_size: 1 + - name: nBOOT1 + description: Boot configuration + bit_offset: 23 + bit_size: 1 + - name: SRAM2_PE + description: SRAM2 parity check enable + bit_offset: 24 + bit_size: 1 + - name: SRAM2_RST + description: SRAM2 Erase when system reset + bit_offset: 25 + bit_size: 1 + - name: nSWBOOT0 + description: nSWBOOT0 + bit_offset: 26 + bit_size: 1 + - name: nBOOT0 + description: nBOOT0 option bit + bit_offset: 27 + bit_size: 1 + - name: NRST_MODE + description: NRST_MODE + bit_offset: 28 + bit_size: 2 + enum: NRST_MODE + - name: IRHEN + description: Internal reset holder enable bit + bit_offset: 30 + bit_size: 1 +fieldset/PCROP1ER: + description: Flash Bank 1 PCROP End address register + fields: + - name: PCROP1_END + description: Bank 1 PCROP area end offset + bit_offset: 0 + bit_size: 15 + - name: PCROP_RDP + description: PCROP area preserved when RDP level decreased + bit_offset: 31 + bit_size: 1 +fieldset/PCROP1SR: + description: Flash Bank 1 PCROP Start address register + fields: + - name: PCROP1_STRT + description: Bank 1 PCROP area start offset + bit_offset: 0 + bit_size: 15 +fieldset/SEC1R: + description: securable area bank1 register + fields: + - name: SEC_SIZE1 + description: SEC_SIZE1 + bit_offset: 0 + bit_size: 8 + - name: BOOT_LOCK + description: used to force boot from user area + bit_offset: 16 + bit_size: 1 +fieldset/SR: + description: Status register + fields: + - name: EOP + description: End of operation + bit_offset: 0 + bit_size: 1 + - name: OPERR + description: Operation error + bit_offset: 1 + bit_size: 1 + - name: PROGERR + description: Programming error + bit_offset: 3 + bit_size: 1 + - name: WRPERR + description: Write protected error + bit_offset: 4 + bit_size: 1 + - name: PGAERR + description: Programming alignment error + bit_offset: 5 + bit_size: 1 + - name: SIZERR + description: Size error + bit_offset: 6 + bit_size: 1 + - name: PGSERR + description: Programming sequence error + bit_offset: 7 + bit_size: 1 + - name: MISERR + description: Fast programming data miss error + bit_offset: 8 + bit_size: 1 + - name: FASTERR + description: Fast programming error + bit_offset: 9 + bit_size: 1 + - name: RDERR + description: PCROP read error + bit_offset: 14 + bit_size: 1 + - name: OPTVERR + description: Option validity error + bit_offset: 15 + bit_size: 1 + - name: BSY + description: Busy + bit_offset: 16 + bit_size: 1 +fieldset/WRP1AR: + description: Flash Bank 1 WRP area A address register + fields: + - name: WRP1A_STRT + description: Bank 1 WRP first area start offset + bit_offset: 0 + bit_size: 7 + - name: WRP1A_END + description: Bank 1 WRP first area A end offset + bit_offset: 16 + bit_size: 7 +fieldset/WRP1BR: + description: Flash Bank 1 WRP area B address register + fields: + - name: WRP1B_STRT + description: Bank 1 WRP second area B end offset + bit_offset: 0 + bit_size: 7 + - name: WRP1B_END + description: Bank 1 WRP second area B start offset + bit_offset: 16 + bit_size: 7 +enum/LATENCY: + bit_size: 4 + variants: + - name: WS0 + description: Zero wait states + value: 0 + - name: WS1 + description: One wait state + value: 1 + - name: WS2 + description: Two wait states + value: 2 + - name: WS3 + description: Three wait states + value: 3 + - name: WS4 + description: Four wait states + value: 4 +enum/NRST_MODE: + bit_size: 2 + variants: + - name: INPUT_ONLY + description: Reset pin is in reset input mode only + value: 1 + - name: GPIO + description: Reset pin is in GPIO mode only + value: 2 + - name: INPUT_OUTPUT + description: Reset pin is in reset input and output mode + value: 3 +enum/RDP: + bit_size: 8 + variants: + - name: LEVEL_0 + description: Read protection not active + value: 170 + - name: LEVEL_1 + description: Memories read protection active + value: 187 + - name: LEVEL_2 + description: Chip read protection active + value: 204 diff --git a/data/registers/flash_g4c4.yaml b/data/registers/flash_g4c4.yaml new file mode 100644 index 0000000..0e0c3ed --- /dev/null +++ b/data/registers/flash_g4c4.yaml @@ -0,0 +1,406 @@ +block/FLASH: + description: Flash + items: + - name: ACR + description: Access control register + byte_offset: 0 + fieldset: ACR + - name: PDKEYR + description: Power down key register + byte_offset: 4 + access: Write + - name: KEYR + description: Flash key register + byte_offset: 8 + access: Write + - name: OPTKEYR + description: Option byte key register + byte_offset: 12 + access: Write + - name: SR + description: Status register + byte_offset: 16 + fieldset: SR + - name: CR + description: Flash control register + byte_offset: 20 + fieldset: CR + - name: ECCR + description: Flash ECC register + byte_offset: 24 + fieldset: ECCR + - name: OPTR + description: Flash option register + byte_offset: 32 + fieldset: OPTR + - name: PCROP1SR + description: Flash Bank 1 PCROP Start address register + byte_offset: 36 + fieldset: PCROP1SR + - name: PCROP1ER + description: Flash Bank 1 PCROP End address register + byte_offset: 40 + fieldset: PCROP1ER + - name: WRP1AR + description: Flash Bank 1 WRP area A address register + byte_offset: 44 + fieldset: WRP1AR + - name: WRP1BR + description: Flash Bank 1 WRP area B address register + byte_offset: 48 + fieldset: WRP1BR + - name: SEC1R + description: securable area bank1 register + byte_offset: 112 + fieldset: SEC1R +fieldset/ACR: + description: Access control register + fields: + - name: LATENCY + description: Latency + bit_offset: 0 + bit_size: 4 + enum: LATENCY + - name: PRFTEN + description: Prefetch enable + bit_offset: 8 + bit_size: 1 + - name: ICEN + description: Instruction cache enable + bit_offset: 9 + bit_size: 1 + - name: DCEN + description: Data cache enable + bit_offset: 10 + bit_size: 1 + - name: ICRST + description: Instruction cache reset + bit_offset: 11 + bit_size: 1 + - name: DCRST + description: Data cache reset + bit_offset: 12 + bit_size: 1 + - name: RUN_PD + description: Flash Power-down mode during Low-power run mode + bit_offset: 13 + bit_size: 1 + - name: SLEEP_PD + description: Flash Power-down mode during Low-power sleep mode + bit_offset: 14 + bit_size: 1 + - name: DBG_SWEN + description: Debug software enable + bit_offset: 18 + bit_size: 1 +fieldset/CR: + description: Flash control register + fields: + - name: PG + description: Programming + bit_offset: 0 + bit_size: 1 + - name: PER + description: Page erase + bit_offset: 1 + bit_size: 1 + - name: MER1 + description: Bank 1 Mass erase + bit_offset: 2 + bit_size: 1 + - name: PNB + description: Page number + bit_offset: 3 + bit_size: 7 + - name: STRT + description: Start + bit_offset: 16 + bit_size: 1 + - name: OPTSTRT + description: Options modification start + bit_offset: 17 + bit_size: 1 + - name: FSTPG + description: Fast programming + bit_offset: 18 + bit_size: 1 + - name: EOPIE + description: End of operation interrupt enable + bit_offset: 24 + bit_size: 1 + - name: ERRIE + description: Error interrupt enable + bit_offset: 25 + bit_size: 1 + - name: RDERRIE + description: PCROP read error interrupt enable + bit_offset: 26 + bit_size: 1 + - name: OBL_LAUNCH + description: Force the option byte loading + bit_offset: 27 + bit_size: 1 + - name: SEC_PROT1 + description: Securable memory area protection enable + bit_offset: 28 + bit_size: 1 + - name: OPTLOCK + description: Options Lock + bit_offset: 30 + bit_size: 1 + - name: LOCK + description: FLASH_CR Lock + bit_offset: 31 + bit_size: 1 +fieldset/ECCR: + description: Flash ECC register + fields: + - name: ADDR_ECC + description: ECC fail address + bit_offset: 0 + bit_size: 19 + - name: BK_ECC + description: ECC fail for Corrected ECC Error or Double ECC Error in info block + bit_offset: 21 + bit_size: 1 + - name: SYSF_ECC + description: ECC fail for Corrected ECC Error or Double ECC Error in info block + bit_offset: 22 + bit_size: 1 + - name: ECCIE + description: ECC correction interrupt enable + bit_offset: 24 + bit_size: 1 + - name: ECCC2 + description: ECC correction + bit_offset: 28 + bit_size: 1 + - name: ECCD2 + description: ECC2 detection + bit_offset: 29 + bit_size: 1 + - name: ECCC + description: ECC correction + bit_offset: 30 + bit_size: 1 + - name: ECCD + description: ECC detection + bit_offset: 31 + bit_size: 1 +fieldset/OPTR: + description: Flash option register + fields: + - name: RDP + description: Read protection level + bit_offset: 0 + bit_size: 8 + enum: RDP + - name: BOR_LEV + description: BOR reset Level + bit_offset: 8 + bit_size: 3 + - name: nRST_STOP + description: nRST_STOP + bit_offset: 12 + bit_size: 1 + - name: nRST_STDBY + description: nRST_STDBY + bit_offset: 13 + bit_size: 1 + - name: nRST_SHDW + description: nRST_SHDW + bit_offset: 14 + bit_size: 1 + - name: IDWG_SW + description: Independent watchdog selection + bit_offset: 16 + bit_size: 1 + - name: IWDG_STOP + description: Independent watchdog counter freeze in Stop mode + bit_offset: 17 + bit_size: 1 + - name: IWDG_STDBY + description: Independent watchdog counter freeze in Standby mode + bit_offset: 18 + bit_size: 1 + - name: WWDG_SW + description: Window watchdog selection + bit_offset: 19 + bit_size: 1 + - name: PB4_PUPEN + description: PB4 pull-up enable + bit_offset: 22 + bit_size: 1 + - name: nBOOT1 + description: Boot configuration + bit_offset: 23 + bit_size: 1 + - name: SRAM2_PE + description: SRAM2 parity check enable + bit_offset: 24 + bit_size: 1 + - name: SRAM2_RST + description: SRAM2 Erase when system reset + bit_offset: 25 + bit_size: 1 + - name: nSWBOOT0 + description: nSWBOOT0 + bit_offset: 26 + bit_size: 1 + - name: nBOOT0 + description: nBOOT0 option bit + bit_offset: 27 + bit_size: 1 + - name: NRST_MODE + description: NRST_MODE + bit_offset: 28 + bit_size: 2 + enum: NRST_MODE + - name: IRHEN + description: Internal reset holder enable bit + bit_offset: 30 + bit_size: 1 +fieldset/PCROP1ER: + description: Flash Bank 1 PCROP End address register + fields: + - name: PCROP1_END + description: Bank 1 PCROP area end offset + bit_offset: 0 + bit_size: 15 + - name: PCROP_RDP + description: PCROP area preserved when RDP level decreased + bit_offset: 31 + bit_size: 1 +fieldset/PCROP1SR: + description: Flash Bank 1 PCROP Start address register + fields: + - name: PCROP1_STRT + description: Bank 1 PCROP area start offset + bit_offset: 0 + bit_size: 15 +fieldset/SEC1R: + description: securable area bank1 register + fields: + - name: SEC_SIZE1 + description: SEC_SIZE1 + bit_offset: 0 + bit_size: 8 + - name: BOOT_LOCK + description: used to force boot from user area + bit_offset: 16 + bit_size: 1 +fieldset/SR: + description: Status register + fields: + - name: EOP + description: End of operation + bit_offset: 0 + bit_size: 1 + - name: OPERR + description: Operation error + bit_offset: 1 + bit_size: 1 + - name: PROGERR + description: Programming error + bit_offset: 3 + bit_size: 1 + - name: WRPERR + description: Write protected error + bit_offset: 4 + bit_size: 1 + - name: PGAERR + description: Programming alignment error + bit_offset: 5 + bit_size: 1 + - name: SIZERR + description: Size error + bit_offset: 6 + bit_size: 1 + - name: PGSERR + description: Programming sequence error + bit_offset: 7 + bit_size: 1 + - name: MISERR + description: Fast programming data miss error + bit_offset: 8 + bit_size: 1 + - name: FASTERR + description: Fast programming error + bit_offset: 9 + bit_size: 1 + - name: RDERR + description: PCROP read error + bit_offset: 14 + bit_size: 1 + - name: OPTVERR + description: Option validity error + bit_offset: 15 + bit_size: 1 + - name: BSY + description: Busy + bit_offset: 16 + bit_size: 1 +fieldset/WRP1AR: + description: Flash Bank 1 WRP area A address register + fields: + - name: WRP1A_STRT + description: Bank 1 WRP first area start offset + bit_offset: 0 + bit_size: 7 + - name: WRP1A_END + description: Bank 1 WRP first area A end offset + bit_offset: 16 + bit_size: 7 +fieldset/WRP1BR: + description: Flash Bank 1 WRP area B address register + fields: + - name: WRP1B_STRT + description: Bank 1 WRP second area B end offset + bit_offset: 0 + bit_size: 7 + - name: WRP1B_END + description: Bank 1 WRP second area B start offset + bit_offset: 16 + bit_size: 7 +enum/LATENCY: + bit_size: 4 + variants: + - name: WS0 + description: Zero wait states + value: 0 + - name: WS1 + description: One wait state + value: 1 + - name: WS2 + description: Two wait states + value: 2 + - name: WS3 + description: Three wait states + value: 3 + - name: WS4 + description: Four wait states + value: 4 +enum/NRST_MODE: + bit_size: 2 + variants: + - name: INPUT_ONLY + description: Reset pin is in reset input mode only + value: 1 + - name: GPIO + description: Reset pin is in GPIO mode only + value: 2 + - name: INPUT_OUTPUT + description: Reset pin is in reset input and output mode + value: 3 +enum/RDP: + bit_size: 8 + variants: + - name: LEVEL_0 + description: Read protection not active + value: 170 + - name: LEVEL_1 + description: Memories read protection active + value: 187 + - name: LEVEL_2 + description: Chip read protection active + value: 204 diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index a22ba84..66ce3b8 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -418,7 +418,9 @@ impl PeriMatcher { ("STM32WL.*:FLASH:.*", ("flash", "wl", "FLASH")), ("STM32C0.*:FLASH:.*", ("flash", "c0", "FLASH")), ("STM32G0.*:FLASH:.*", ("flash", "g0", "FLASH")), - ("STM32G4.*:FLASH:.*", ("flash", "g4", "FLASH")), + ("STM32G4(3|4).*:FLASH:.*", ("flash", "g4c2", "FLASH")), + ("STM32G4(7|8).*:FLASH:.*", ("flash", "g4c3", "FLASH")), + ("STM32G4(9|A).*:FLASH:.*", ("flash", "g4c4", "FLASH")), ("STM32H50.*:FLASH:.*", ("flash", "h50", "FLASH")), ("STM32H5.*:FLASH:.*", ("flash", "h5", "FLASH")), ("STM32F107.*:ETH:.*", ("eth", "v1a", "ETH")), From bef34f5e8a0e966c5f80b0c748eaf55347e50529 Mon Sep 17 00:00:00 2001 From: David Lawrence Date: Fri, 5 Apr 2024 13:25:47 -0400 Subject: [PATCH 20/41] Add 8 and 16 bit wide SPI data registers --- data/registers/crc_v2.yaml | 2 +- data/registers/crc_v3.yaml | 2 +- data/registers/spi_v2.yaml | 17 +++++++--------- data/registers/spi_v3.yaml | 40 +++++++++++++++++++++----------------- data/registers/spi_v4.yaml | 40 +++++++++++++++++++++----------------- data/registers/spi_v5.yaml | 40 +++++++++++++++++++++----------------- 6 files changed, 75 insertions(+), 66 deletions(-) diff --git a/data/registers/crc_v2.yaml b/data/registers/crc_v2.yaml index 8b6ef63..6616d3e 100644 --- a/data/registers/crc_v2.yaml +++ b/data/registers/crc_v2.yaml @@ -1,7 +1,7 @@ block/CRC: description: Cyclic Redundancy Check calculation unit items: - - name: DR + - name: DR32 description: Data register byte_offset: 0 - name: DR16 diff --git a/data/registers/crc_v3.yaml b/data/registers/crc_v3.yaml index 1686d66..9cb0a16 100644 --- a/data/registers/crc_v3.yaml +++ b/data/registers/crc_v3.yaml @@ -1,7 +1,7 @@ block/CRC: description: Cyclic Redundancy Check calculation unit items: - - name: DR + - name: DR32 description: Data register byte_offset: 0 - name: DR16 diff --git a/data/registers/spi_v2.yaml b/data/registers/spi_v2.yaml index 6ccf388..4a63940 100644 --- a/data/registers/spi_v2.yaml +++ b/data/registers/spi_v2.yaml @@ -13,10 +13,14 @@ block/SPI: description: status register byte_offset: 8 fieldset: SR - - name: DR - description: data register + - name: DR16 + description: data register - half-word sized byte_offset: 12 - fieldset: DR + bit_size: 16 + - name: DR8 + description: data register - byte sized + byte_offset: 12 + bit_size: 8 - name: CRCPR description: CRC polynomial register byte_offset: 16 @@ -171,13 +175,6 @@ fieldset/CRCPR: description: CRC polynomial register bit_offset: 0 bit_size: 16 -fieldset/DR: - description: data register - fields: - - name: DR - description: Data register - bit_offset: 0 - bit_size: 16 fieldset/I2SCFGR: description: I2S configuration register fields: diff --git a/data/registers/spi_v3.yaml b/data/registers/spi_v3.yaml index 6947ed4..4afed99 100644 --- a/data/registers/spi_v3.yaml +++ b/data/registers/spi_v3.yaml @@ -31,16 +31,34 @@ block/SPI: byte_offset: 24 access: Write fieldset: IFCR - - name: TXDR + - name: TXDR32 description: Transmit Data Register byte_offset: 32 access: Write - fieldset: TXDR - - name: RXDR + - name: TXDR16 + description: Transmit Data Register - half-word sized + byte_offset: 32 + bit_size: 16 + access: Write + - name: TXDR8 + description: Transmit Data Register - byte sized + byte_offset: 32 + bit_size: 8 + access: Write + - name: RXDR32 description: Receive Data Register byte_offset: 48 access: Read - fieldset: RXDR + - name: RXDR16 + description: Receive Data Register - half-word sized + byte_offset: 48 + bit_size: 16 + access: Read + - name: RXDR8 + description: Receive Data Register - byte sized + byte_offset: 48 + bit_size: 8 + access: Read - name: CRCPOLY description: Polynomial Register byte_offset: 64 @@ -324,13 +342,6 @@ fieldset/RXCRC: description: CRC register for receiver bit_offset: 0 bit_size: 32 -fieldset/RXDR: - description: Receive Data Register - fields: - - name: RXDR - description: Receive data register - bit_offset: 0 - bit_size: 32 fieldset/SR: description: Status Register fields: @@ -407,13 +418,6 @@ fieldset/TXCRC: description: CRC register for transmitter bit_offset: 0 bit_size: 32 -fieldset/TXDR: - description: Transmit Data Register - fields: - - name: TXDR - description: Transmit data register - bit_offset: 0 - bit_size: 32 fieldset/UDRDR: description: Underrun Data Register fields: diff --git a/data/registers/spi_v4.yaml b/data/registers/spi_v4.yaml index a2c2566..78a74eb 100644 --- a/data/registers/spi_v4.yaml +++ b/data/registers/spi_v4.yaml @@ -31,16 +31,34 @@ block/SPI: byte_offset: 24 access: Write fieldset: IFCR - - name: TXDR + - name: TXDR32 description: Transmit Data Register byte_offset: 32 access: Write - fieldset: TXDR - - name: RXDR + - name: TXDR16 + description: Transmit Data Register - half-word sized + byte_offset: 32 + bit_size: 16 + access: Write + - name: TXDR8 + description: Transmit Data Register - byte sized + byte_offset: 32 + bit_size: 8 + access: Write + - name: RXDR32 description: Receive Data Register byte_offset: 48 access: Read - fieldset: RXDR + - name: RXDR16 + description: Receive Data Register - half-word sized + byte_offset: 48 + bit_size: 16 + access: Read + - name: RXDR8 + description: Receive Data Register - byte sized + byte_offset: 48 + bit_size: 8 + access: Read - name: CRCPOLY description: Polynomial Register byte_offset: 64 @@ -323,13 +341,6 @@ fieldset/RXCRC: description: CRC register for receiver bit_offset: 0 bit_size: 32 -fieldset/RXDR: - description: Receive Data Register - fields: - - name: RXDR - description: Receive data register - bit_offset: 0 - bit_size: 32 fieldset/SR: description: Status Register fields: @@ -402,13 +413,6 @@ fieldset/TXCRC: description: CRC register for transmitter bit_offset: 0 bit_size: 32 -fieldset/TXDR: - description: Transmit Data Register - fields: - - name: TXDR - description: Transmit data register - bit_offset: 0 - bit_size: 32 fieldset/UDRDR: description: Underrun Data Register fields: diff --git a/data/registers/spi_v5.yaml b/data/registers/spi_v5.yaml index fce0632..8155eca 100644 --- a/data/registers/spi_v5.yaml +++ b/data/registers/spi_v5.yaml @@ -34,16 +34,34 @@ block/SPI: - name: AUTOCR byte_offset: 28 fieldset: AUTOCR - - name: TXDR + - name: TXDR32 description: Transmit Data Register byte_offset: 32 access: Write - fieldset: TXDR - - name: RXDR + - name: TXDR16 + description: Transmit Data Register - half-word sized + byte_offset: 32 + bit_size: 16 + access: Write + - name: TXDR8 + description: Transmit Data Register - byte sized + byte_offset: 32 + bit_size: 8 + access: Write + - name: RXDR32 description: Receive Data Register byte_offset: 48 access: Read - fieldset: RXDR + - name: RXDR16 + description: Receive Data Register - half-word sized + byte_offset: 48 + bit_size: 16 + access: Read + - name: RXDR8 + description: Receive Data Register - byte sized + byte_offset: 48 + bit_size: 8 + access: Read - name: CRCPOLY description: Polynomial Register byte_offset: 64 @@ -348,13 +366,6 @@ fieldset/RXCRC: description: CRC register for receiver bit_offset: 0 bit_size: 32 -fieldset/RXDR: - description: Receive Data Register - fields: - - name: RXDR - description: Receive data register - bit_offset: 0 - bit_size: 32 fieldset/SR: description: Status Register fields: @@ -427,13 +438,6 @@ fieldset/TXCRC: description: CRC register for transmitter bit_offset: 0 bit_size: 32 -fieldset/TXDR: - description: Transmit Data Register - fields: - - name: TXDR - description: Transmit data register - bit_offset: 0 - bit_size: 32 fieldset/UDRDR: description: Underrun Data Register fields: From 60398cad51afccef12a29948c11187ccd0a47ef7 Mon Sep 17 00:00:00 2001 From: eZio Pan Date: Sat, 6 Apr 2024 22:07:19 +0800 Subject: [PATCH 21/41] move "UID" to "GHOST_PERIS" --- stm32-data-gen/src/chips.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index 66ce3b8..a64ec43 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -956,7 +956,6 @@ fn process_core( let defines = h.get_defines(&core_name); let mut peri_kinds = HashMap::new(); - peri_kinds.insert("UID".to_string(), "UID".to_string()); for ip in group.ips.values() { let pname = ip.instance_name.clone(); let pkind = format!("{}:{}", ip.name, ip.version); @@ -1047,6 +1046,7 @@ fn process_core( "BKP", "USBRAM", "VREFINTCAL", + "UID", ]; for pname in GHOST_PERIS { if let Entry::Vacant(entry) = peri_kinds.entry(pname.to_string()) { From 44967f37769120611988cba60595bc21db248dfc Mon Sep 17 00:00:00 2001 From: Michael Zill Date: Tue, 2 Apr 2024 20:29:46 +0200 Subject: [PATCH 22/41] Initial add --- .gitignore | 3 +- data/registers/hsem_v1.yaml | 617 +++++++++++ data/registers/hsem_v2.yaml | 617 +++++++++++ data/registers/hsem_v3.yaml | 617 +++++++++++ data/registers/hsem_v4.yaml | 1450 ++++++++++++++++++++++++++ data/registers/hsem_v5.yaml | 246 +++++ data/registers/hsem_v6.yaml | 1911 ++++++++++++++++++++++++++++++++++ data/registers/hsem_v7.yaml | 1947 +++++++++++++++++++++++++++++++++++ data/registers/hsem_v8.yaml | 1021 ++++++++++++++++++ patch-desc.md | 40 + stm32-data-gen/src/chips.rs | 11 + 11 files changed, 8479 insertions(+), 1 deletion(-) create mode 100644 data/registers/hsem_v1.yaml create mode 100644 data/registers/hsem_v2.yaml create mode 100644 data/registers/hsem_v3.yaml create mode 100644 data/registers/hsem_v4.yaml create mode 100644 data/registers/hsem_v5.yaml create mode 100644 data/registers/hsem_v6.yaml create mode 100644 data/registers/hsem_v7.yaml create mode 100644 data/registers/hsem_v8.yaml create mode 100644 patch-desc.md diff --git a/.gitignore b/.gitignore index b7337d0..d094026 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ # transform*.yaml __pycache__ -target/ \ No newline at end of file +target/ +venv/ \ No newline at end of file diff --git a/data/registers/hsem_v1.yaml b/data/registers/hsem_v1.yaml new file mode 100644 index 0000000..fac9bae --- /dev/null +++ b/data/registers/hsem_v1.yaml @@ -0,0 +1,617 @@ +block/HSEM: + description: HSEM. + items: + - name: R + description: HSEM register HSEM_R%s HSEM_R31. + array: + len: 32 + stride: 4 + byte_offset: 0 + fieldset: R + - name: RLR + description: HSEM Read lock register. + array: + len: 32 + stride: 4 + byte_offset: 128 + access: Read + fieldset: RLR + - name: IER + description: HSEM Interrupt enable register. + byte_offset: 256 + fieldset: IER + - name: ICR + description: HSEM Interrupt clear register. + byte_offset: 260 + access: Read + fieldset: ICR + - name: ISR + description: HSEM Interrupt status register. + byte_offset: 264 + access: Read + fieldset: ISR + - name: MISR + description: HSEM Masked interrupt status register. + byte_offset: 268 + access: Read + fieldset: MISR + - name: CR + description: HSEM Clear register. + byte_offset: 320 + fieldset: CR + - name: KEYR + description: HSEM Interrupt clear register. + byte_offset: 324 + fieldset: KEYR +fieldset/CR: + description: HSEM Clear register. + fields: + - name: MASTERID + description: MasterID of semaphores to be cleared. + bit_offset: 8 + bit_size: 8 + - name: KEY + description: Semaphore clear Key. + bit_offset: 16 + bit_size: 16 +fieldset/ICR: + description: HSEM Interrupt clear register. + fields: + - name: ISEM0 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 0 + bit_size: 1 + - name: ISEM1 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 1 + bit_size: 1 + - name: ISEM2 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 2 + bit_size: 1 + - name: ISEM3 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 3 + bit_size: 1 + - name: ISEM4 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 4 + bit_size: 1 + - name: ISEM5 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 5 + bit_size: 1 + - name: ISEM6 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 6 + bit_size: 1 + - name: ISEM7 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 7 + bit_size: 1 + - name: ISEM8 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 8 + bit_size: 1 + - name: ISEM9 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 9 + bit_size: 1 + - name: ISEM10 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 10 + bit_size: 1 + - name: ISEM11 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 11 + bit_size: 1 + - name: ISEM12 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 12 + bit_size: 1 + - name: ISEM13 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 13 + bit_size: 1 + - name: ISEM14 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 14 + bit_size: 1 + - name: ISEM15 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 15 + bit_size: 1 + - name: ISEM16 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 16 + bit_size: 1 + - name: ISEM17 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 17 + bit_size: 1 + - name: ISEM18 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 18 + bit_size: 1 + - name: ISEM19 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 19 + bit_size: 1 + - name: ISEM20 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 20 + bit_size: 1 + - name: ISEM21 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 21 + bit_size: 1 + - name: ISEM22 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 22 + bit_size: 1 + - name: ISEM23 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 23 + bit_size: 1 + - name: ISEM24 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 24 + bit_size: 1 + - name: ISEM25 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 25 + bit_size: 1 + - name: ISEM26 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 26 + bit_size: 1 + - name: ISEM27 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 27 + bit_size: 1 + - name: ISEM28 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 28 + bit_size: 1 + - name: ISEM29 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 29 + bit_size: 1 + - name: ISEM30 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 30 + bit_size: 1 + - name: ISEM31 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 31 + bit_size: 1 +fieldset/IER: + description: HSEM Interrupt enable register. + fields: + - name: ISEM0 + description: Interrupt semaphore n enable bit. + bit_offset: 0 + bit_size: 1 + - name: ISEM1 + description: Interrupt semaphore n enable bit. + bit_offset: 1 + bit_size: 1 + - name: ISEM2 + description: Interrupt semaphore n enable bit. + bit_offset: 2 + bit_size: 1 + - name: ISEM3 + description: Interrupt semaphore n enable bit. + bit_offset: 3 + bit_size: 1 + - name: ISEM4 + description: Interrupt semaphore n enable bit. + bit_offset: 4 + bit_size: 1 + - name: ISEM5 + description: Interrupt semaphore n enable bit. + bit_offset: 5 + bit_size: 1 + - name: ISEM6 + description: Interrupt semaphore n enable bit. + bit_offset: 6 + bit_size: 1 + - name: ISEM7 + description: Interrupt semaphore n enable bit. + bit_offset: 7 + bit_size: 1 + - name: ISEM8 + description: Interrupt semaphore n enable bit. + bit_offset: 8 + bit_size: 1 + - name: ISEM9 + description: Interrupt semaphore n enable bit. + bit_offset: 9 + bit_size: 1 + - name: ISEM10 + description: Interrupt semaphore n enable bit. + bit_offset: 10 + bit_size: 1 + - name: ISEM11 + description: Interrupt semaphore n enable bit. + bit_offset: 11 + bit_size: 1 + - name: ISEM12 + description: Interrupt semaphore n enable bit. + bit_offset: 12 + bit_size: 1 + - name: ISEM13 + description: Interrupt semaphore n enable bit. + bit_offset: 13 + bit_size: 1 + - name: ISEM14 + description: Interrupt semaphore n enable bit. + bit_offset: 14 + bit_size: 1 + - name: ISEM15 + description: Interrupt semaphore n enable bit. + bit_offset: 15 + bit_size: 1 + - name: ISEM16 + description: Interrupt semaphore n enable bit. + bit_offset: 16 + bit_size: 1 + - name: ISEM17 + description: Interrupt semaphore n enable bit. + bit_offset: 17 + bit_size: 1 + - name: ISEM18 + description: Interrupt semaphore n enable bit. + bit_offset: 18 + bit_size: 1 + - name: ISEM19 + description: Interrupt semaphore n enable bit. + bit_offset: 19 + bit_size: 1 + - name: ISEM20 + description: Interrupt semaphore n enable bit. + bit_offset: 20 + bit_size: 1 + - name: ISEM21 + description: Interrupt semaphore n enable bit. + bit_offset: 21 + bit_size: 1 + - name: ISEM22 + description: Interrupt semaphore n enable bit. + bit_offset: 22 + bit_size: 1 + - name: ISEM23 + description: Interrupt semaphore n enable bit. + bit_offset: 23 + bit_size: 1 + - name: ISEM24 + description: Interrupt semaphore n enable bit. + bit_offset: 24 + bit_size: 1 + - name: ISEM25 + description: Interrupt semaphore n enable bit. + bit_offset: 25 + bit_size: 1 + - name: ISEM26 + description: Interrupt semaphore n enable bit. + bit_offset: 26 + bit_size: 1 + - name: ISEM27 + description: Interrupt semaphore n enable bit. + bit_offset: 27 + bit_size: 1 + - name: ISEM28 + description: Interrupt semaphore n enable bit. + bit_offset: 28 + bit_size: 1 + - name: ISEM29 + description: Interrupt semaphore n enable bit. + bit_offset: 29 + bit_size: 1 + - name: ISEM30 + description: Interrupt semaphore n enable bit. + bit_offset: 30 + bit_size: 1 + - name: ISEM31 + description: Interrupt(N) semaphore n enable bit. + bit_offset: 31 + bit_size: 1 +fieldset/ISR: + description: HSEM Interrupt status register. + fields: + - name: ISEM0 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 0 + bit_size: 1 + - name: ISEM1 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 1 + bit_size: 1 + - name: ISEM2 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 2 + bit_size: 1 + - name: ISEM3 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 3 + bit_size: 1 + - name: ISEM4 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 4 + bit_size: 1 + - name: ISEM5 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 5 + bit_size: 1 + - name: ISEM6 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 6 + bit_size: 1 + - name: ISEM7 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 7 + bit_size: 1 + - name: ISEM8 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 8 + bit_size: 1 + - name: ISEM9 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 9 + bit_size: 1 + - name: ISEM10 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 10 + bit_size: 1 + - name: ISEM11 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 11 + bit_size: 1 + - name: ISEM12 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 12 + bit_size: 1 + - name: ISEM13 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 13 + bit_size: 1 + - name: ISEM14 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 14 + bit_size: 1 + - name: ISEM15 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 15 + bit_size: 1 + - name: ISEM16 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 16 + bit_size: 1 + - name: ISEM17 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 17 + bit_size: 1 + - name: ISEM18 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 18 + bit_size: 1 + - name: ISEM19 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 19 + bit_size: 1 + - name: ISEM20 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 20 + bit_size: 1 + - name: ISEM21 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 21 + bit_size: 1 + - name: ISEM22 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 22 + bit_size: 1 + - name: ISEM23 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 23 + bit_size: 1 + - name: ISEM24 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 24 + bit_size: 1 + - name: ISEM25 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 25 + bit_size: 1 + - name: ISEM26 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 26 + bit_size: 1 + - name: ISEM27 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 27 + bit_size: 1 + - name: ISEM28 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 28 + bit_size: 1 + - name: ISEM29 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 29 + bit_size: 1 + - name: ISEM30 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 30 + bit_size: 1 + - name: ISEM31 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 31 + bit_size: 1 +fieldset/KEYR: + description: HSEM Interrupt clear register. + fields: + - name: KEY + description: Semaphore Clear Key. + bit_offset: 16 + bit_size: 16 +fieldset/MISR: + description: HSEM Masked interrupt status register. + fields: + - name: ISEM0 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 0 + bit_size: 1 + - name: ISEM1 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 1 + bit_size: 1 + - name: ISEM2 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 2 + bit_size: 1 + - name: ISEM3 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 3 + bit_size: 1 + - name: ISEM4 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 4 + bit_size: 1 + - name: ISEM5 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 5 + bit_size: 1 + - name: ISEM6 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 6 + bit_size: 1 + - name: ISEM7 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 7 + bit_size: 1 + - name: ISEM8 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 8 + bit_size: 1 + - name: ISEM9 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 9 + bit_size: 1 + - name: ISEM10 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 10 + bit_size: 1 + - name: ISEM11 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 11 + bit_size: 1 + - name: ISEM12 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 12 + bit_size: 1 + - name: ISEM13 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 13 + bit_size: 1 + - name: ISEM14 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 14 + bit_size: 1 + - name: ISEM15 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 15 + bit_size: 1 + - name: ISEM16 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 16 + bit_size: 1 + - name: ISEM17 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 17 + bit_size: 1 + - name: ISEM18 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 18 + bit_size: 1 + - name: ISEM19 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 19 + bit_size: 1 + - name: ISEM20 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 20 + bit_size: 1 + - name: ISEM21 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 21 + bit_size: 1 + - name: ISEM22 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 22 + bit_size: 1 + - name: ISEM23 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 23 + bit_size: 1 + - name: ISEM24 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 24 + bit_size: 1 + - name: ISEM25 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 25 + bit_size: 1 + - name: ISEM26 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 26 + bit_size: 1 + - name: ISEM27 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 27 + bit_size: 1 + - name: ISEM28 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 28 + bit_size: 1 + - name: ISEM29 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 29 + bit_size: 1 + - name: ISEM30 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 30 + bit_size: 1 + - name: ISEM31 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 31 + bit_size: 1 +fieldset/R: + description: HSEM register HSEM_R%s HSEM_R31. + fields: + - name: PROCID + description: Semaphore ProcessID. + bit_offset: 0 + bit_size: 8 + - name: MASTERID + description: Semaphore MasterID. + bit_offset: 8 + bit_size: 8 + - name: LOCK + description: Lock indication. + bit_offset: 31 + bit_size: 1 +fieldset/RLR: + description: HSEM Read lock register. + fields: + - name: PROCID + description: Semaphore ProcessID. + bit_offset: 0 + bit_size: 8 + - name: MASTERID + description: Semaphore MasterID. + bit_offset: 8 + bit_size: 8 + - name: LOCK + description: Lock indication. + bit_offset: 31 + bit_size: 1 diff --git a/data/registers/hsem_v2.yaml b/data/registers/hsem_v2.yaml new file mode 100644 index 0000000..5ffe998 --- /dev/null +++ b/data/registers/hsem_v2.yaml @@ -0,0 +1,617 @@ +block/HSEM: + description: HSEM. + items: + - name: R + description: HSEM register HSEM_R%s HSEM_R31. + array: + len: 32 + stride: 4 + byte_offset: 0 + fieldset: R + - name: RLR + description: HSEM Read lock register. + array: + len: 32 + stride: 4 + byte_offset: 128 + access: Read + fieldset: RLR + - name: C1IER + description: HSEM Interrupt enable register. + byte_offset: 256 + fieldset: C1IER + - name: C1ICR + description: HSEM Interrupt clear register. + byte_offset: 260 + access: Read + fieldset: C1ICR + - name: C1ISR + description: HSEM Interrupt status register. + byte_offset: 264 + access: Read + fieldset: C1ISR + - name: C1MISR + description: HSEM Masked interrupt status register. + byte_offset: 268 + access: Read + fieldset: C1MISR + - name: CR + description: HSEM Clear register. + byte_offset: 320 + fieldset: CR + - name: KEYR + description: HSEM Interrupt clear register. + byte_offset: 324 + fieldset: KEYR +fieldset/C1ICR: + description: HSEM Interrupt clear register. + fields: + - name: ISEM0 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 0 + bit_size: 1 + - name: ISEM1 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 1 + bit_size: 1 + - name: ISEM2 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 2 + bit_size: 1 + - name: ISEM3 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 3 + bit_size: 1 + - name: ISEM4 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 4 + bit_size: 1 + - name: ISEM5 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 5 + bit_size: 1 + - name: ISEM6 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 6 + bit_size: 1 + - name: ISEM7 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 7 + bit_size: 1 + - name: ISEM8 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 8 + bit_size: 1 + - name: ISEM9 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 9 + bit_size: 1 + - name: ISEM10 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 10 + bit_size: 1 + - name: ISEM11 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 11 + bit_size: 1 + - name: ISEM12 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 12 + bit_size: 1 + - name: ISEM13 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 13 + bit_size: 1 + - name: ISEM14 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 14 + bit_size: 1 + - name: ISEM15 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 15 + bit_size: 1 + - name: ISEM16 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 16 + bit_size: 1 + - name: ISEM17 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 17 + bit_size: 1 + - name: ISEM18 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 18 + bit_size: 1 + - name: ISEM19 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 19 + bit_size: 1 + - name: ISEM20 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 20 + bit_size: 1 + - name: ISEM21 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 21 + bit_size: 1 + - name: ISEM22 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 22 + bit_size: 1 + - name: ISEM23 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 23 + bit_size: 1 + - name: ISEM24 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 24 + bit_size: 1 + - name: ISEM25 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 25 + bit_size: 1 + - name: ISEM26 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 26 + bit_size: 1 + - name: ISEM27 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 27 + bit_size: 1 + - name: ISEM28 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 28 + bit_size: 1 + - name: ISEM29 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 29 + bit_size: 1 + - name: ISEM30 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 30 + bit_size: 1 + - name: ISEM31 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 31 + bit_size: 1 +fieldset/C1IER: + description: HSEM Interrupt enable register. + fields: + - name: ISEM0 + description: Interrupt semaphore n enable bit. + bit_offset: 0 + bit_size: 1 + - name: ISEM1 + description: Interrupt semaphore n enable bit. + bit_offset: 1 + bit_size: 1 + - name: ISEM2 + description: Interrupt semaphore n enable bit. + bit_offset: 2 + bit_size: 1 + - name: ISEM3 + description: Interrupt semaphore n enable bit. + bit_offset: 3 + bit_size: 1 + - name: ISEM4 + description: Interrupt semaphore n enable bit. + bit_offset: 4 + bit_size: 1 + - name: ISEM5 + description: Interrupt semaphore n enable bit. + bit_offset: 5 + bit_size: 1 + - name: ISEM6 + description: Interrupt semaphore n enable bit. + bit_offset: 6 + bit_size: 1 + - name: ISEM7 + description: Interrupt semaphore n enable bit. + bit_offset: 7 + bit_size: 1 + - name: ISEM8 + description: Interrupt semaphore n enable bit. + bit_offset: 8 + bit_size: 1 + - name: ISEM9 + description: Interrupt semaphore n enable bit. + bit_offset: 9 + bit_size: 1 + - name: ISEM10 + description: Interrupt semaphore n enable bit. + bit_offset: 10 + bit_size: 1 + - name: ISEM11 + description: Interrupt semaphore n enable bit. + bit_offset: 11 + bit_size: 1 + - name: ISEM12 + description: Interrupt semaphore n enable bit. + bit_offset: 12 + bit_size: 1 + - name: ISEM13 + description: Interrupt semaphore n enable bit. + bit_offset: 13 + bit_size: 1 + - name: ISEM14 + description: Interrupt semaphore n enable bit. + bit_offset: 14 + bit_size: 1 + - name: ISEM15 + description: Interrupt semaphore n enable bit. + bit_offset: 15 + bit_size: 1 + - name: ISEM16 + description: Interrupt semaphore n enable bit. + bit_offset: 16 + bit_size: 1 + - name: ISEM17 + description: Interrupt semaphore n enable bit. + bit_offset: 17 + bit_size: 1 + - name: ISEM18 + description: Interrupt semaphore n enable bit. + bit_offset: 18 + bit_size: 1 + - name: ISEM19 + description: Interrupt semaphore n enable bit. + bit_offset: 19 + bit_size: 1 + - name: ISEM20 + description: Interrupt semaphore n enable bit. + bit_offset: 20 + bit_size: 1 + - name: ISEM21 + description: Interrupt semaphore n enable bit. + bit_offset: 21 + bit_size: 1 + - name: ISEM22 + description: Interrupt semaphore n enable bit. + bit_offset: 22 + bit_size: 1 + - name: ISEM23 + description: Interrupt semaphore n enable bit. + bit_offset: 23 + bit_size: 1 + - name: ISEM24 + description: Interrupt semaphore n enable bit. + bit_offset: 24 + bit_size: 1 + - name: ISEM25 + description: Interrupt semaphore n enable bit. + bit_offset: 25 + bit_size: 1 + - name: ISEM26 + description: Interrupt semaphore n enable bit. + bit_offset: 26 + bit_size: 1 + - name: ISEM27 + description: Interrupt semaphore n enable bit. + bit_offset: 27 + bit_size: 1 + - name: ISEM28 + description: Interrupt semaphore n enable bit. + bit_offset: 28 + bit_size: 1 + - name: ISEM29 + description: Interrupt semaphore n enable bit. + bit_offset: 29 + bit_size: 1 + - name: ISEM30 + description: Interrupt semaphore n enable bit. + bit_offset: 30 + bit_size: 1 + - name: ISEM31 + description: Interrupt(N) semaphore n enable bit. + bit_offset: 31 + bit_size: 1 +fieldset/C1ISR: + description: HSEM Interrupt status register. + fields: + - name: ISEM0 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 0 + bit_size: 1 + - name: ISEM1 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 1 + bit_size: 1 + - name: ISEM2 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 2 + bit_size: 1 + - name: ISEM3 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 3 + bit_size: 1 + - name: ISEM4 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 4 + bit_size: 1 + - name: ISEM5 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 5 + bit_size: 1 + - name: ISEM6 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 6 + bit_size: 1 + - name: ISEM7 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 7 + bit_size: 1 + - name: ISEM8 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 8 + bit_size: 1 + - name: ISEM9 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 9 + bit_size: 1 + - name: ISEM10 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 10 + bit_size: 1 + - name: ISEM11 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 11 + bit_size: 1 + - name: ISEM12 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 12 + bit_size: 1 + - name: ISEM13 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 13 + bit_size: 1 + - name: ISEM14 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 14 + bit_size: 1 + - name: ISEM15 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 15 + bit_size: 1 + - name: ISEM16 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 16 + bit_size: 1 + - name: ISEM17 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 17 + bit_size: 1 + - name: ISEM18 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 18 + bit_size: 1 + - name: ISEM19 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 19 + bit_size: 1 + - name: ISEM20 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 20 + bit_size: 1 + - name: ISEM21 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 21 + bit_size: 1 + - name: ISEM22 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 22 + bit_size: 1 + - name: ISEM23 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 23 + bit_size: 1 + - name: ISEM24 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 24 + bit_size: 1 + - name: ISEM25 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 25 + bit_size: 1 + - name: ISEM26 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 26 + bit_size: 1 + - name: ISEM27 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 27 + bit_size: 1 + - name: ISEM28 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 28 + bit_size: 1 + - name: ISEM29 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 29 + bit_size: 1 + - name: ISEM30 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 30 + bit_size: 1 + - name: ISEM31 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 31 + bit_size: 1 +fieldset/C1MISR: + description: HSEM Masked interrupt status register. + fields: + - name: ISEM0 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 0 + bit_size: 1 + - name: ISEM1 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 1 + bit_size: 1 + - name: ISEM2 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 2 + bit_size: 1 + - name: ISEM3 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 3 + bit_size: 1 + - name: ISEM4 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 4 + bit_size: 1 + - name: ISEM5 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 5 + bit_size: 1 + - name: ISEM6 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 6 + bit_size: 1 + - name: ISEM7 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 7 + bit_size: 1 + - name: ISEM8 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 8 + bit_size: 1 + - name: ISEM9 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 9 + bit_size: 1 + - name: ISEM10 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 10 + bit_size: 1 + - name: ISEM11 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 11 + bit_size: 1 + - name: ISEM12 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 12 + bit_size: 1 + - name: ISEM13 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 13 + bit_size: 1 + - name: ISEM14 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 14 + bit_size: 1 + - name: ISEM15 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 15 + bit_size: 1 + - name: ISEM16 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 16 + bit_size: 1 + - name: ISEM17 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 17 + bit_size: 1 + - name: ISEM18 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 18 + bit_size: 1 + - name: ISEM19 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 19 + bit_size: 1 + - name: ISEM20 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 20 + bit_size: 1 + - name: ISEM21 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 21 + bit_size: 1 + - name: ISEM22 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 22 + bit_size: 1 + - name: ISEM23 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 23 + bit_size: 1 + - name: ISEM24 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 24 + bit_size: 1 + - name: ISEM25 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 25 + bit_size: 1 + - name: ISEM26 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 26 + bit_size: 1 + - name: ISEM27 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 27 + bit_size: 1 + - name: ISEM28 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 28 + bit_size: 1 + - name: ISEM29 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 29 + bit_size: 1 + - name: ISEM30 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 30 + bit_size: 1 + - name: ISEM31 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 31 + bit_size: 1 +fieldset/CR: + description: HSEM Clear register. + fields: + - name: COREID + description: MasterID of semaphores to be cleared. + bit_offset: 8 + bit_size: 4 + - name: KEY + description: Semaphore clear Key. + bit_offset: 16 + bit_size: 16 +fieldset/KEYR: + description: HSEM Interrupt clear register. + fields: + - name: KEY + description: Semaphore Clear Key. + bit_offset: 16 + bit_size: 16 +fieldset/R: + description: HSEM register HSEM_R%s HSEM_R31. + fields: + - name: PROCID + description: Semaphore ProcessID. + bit_offset: 0 + bit_size: 8 + - name: MASTERID + description: Semaphore MasterID. + bit_offset: 8 + bit_size: 8 + - name: LOCK + description: Lock indication. + bit_offset: 31 + bit_size: 1 +fieldset/RLR: + description: HSEM Read lock register. + fields: + - name: PROCID + description: Semaphore ProcessID. + bit_offset: 0 + bit_size: 8 + - name: MASTERID + description: Semaphore MasterID. + bit_offset: 8 + bit_size: 8 + - name: LOCK + description: Lock indication. + bit_offset: 31 + bit_size: 1 diff --git a/data/registers/hsem_v3.yaml b/data/registers/hsem_v3.yaml new file mode 100644 index 0000000..fac9bae --- /dev/null +++ b/data/registers/hsem_v3.yaml @@ -0,0 +1,617 @@ +block/HSEM: + description: HSEM. + items: + - name: R + description: HSEM register HSEM_R%s HSEM_R31. + array: + len: 32 + stride: 4 + byte_offset: 0 + fieldset: R + - name: RLR + description: HSEM Read lock register. + array: + len: 32 + stride: 4 + byte_offset: 128 + access: Read + fieldset: RLR + - name: IER + description: HSEM Interrupt enable register. + byte_offset: 256 + fieldset: IER + - name: ICR + description: HSEM Interrupt clear register. + byte_offset: 260 + access: Read + fieldset: ICR + - name: ISR + description: HSEM Interrupt status register. + byte_offset: 264 + access: Read + fieldset: ISR + - name: MISR + description: HSEM Masked interrupt status register. + byte_offset: 268 + access: Read + fieldset: MISR + - name: CR + description: HSEM Clear register. + byte_offset: 320 + fieldset: CR + - name: KEYR + description: HSEM Interrupt clear register. + byte_offset: 324 + fieldset: KEYR +fieldset/CR: + description: HSEM Clear register. + fields: + - name: MASTERID + description: MasterID of semaphores to be cleared. + bit_offset: 8 + bit_size: 8 + - name: KEY + description: Semaphore clear Key. + bit_offset: 16 + bit_size: 16 +fieldset/ICR: + description: HSEM Interrupt clear register. + fields: + - name: ISEM0 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 0 + bit_size: 1 + - name: ISEM1 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 1 + bit_size: 1 + - name: ISEM2 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 2 + bit_size: 1 + - name: ISEM3 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 3 + bit_size: 1 + - name: ISEM4 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 4 + bit_size: 1 + - name: ISEM5 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 5 + bit_size: 1 + - name: ISEM6 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 6 + bit_size: 1 + - name: ISEM7 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 7 + bit_size: 1 + - name: ISEM8 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 8 + bit_size: 1 + - name: ISEM9 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 9 + bit_size: 1 + - name: ISEM10 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 10 + bit_size: 1 + - name: ISEM11 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 11 + bit_size: 1 + - name: ISEM12 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 12 + bit_size: 1 + - name: ISEM13 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 13 + bit_size: 1 + - name: ISEM14 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 14 + bit_size: 1 + - name: ISEM15 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 15 + bit_size: 1 + - name: ISEM16 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 16 + bit_size: 1 + - name: ISEM17 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 17 + bit_size: 1 + - name: ISEM18 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 18 + bit_size: 1 + - name: ISEM19 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 19 + bit_size: 1 + - name: ISEM20 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 20 + bit_size: 1 + - name: ISEM21 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 21 + bit_size: 1 + - name: ISEM22 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 22 + bit_size: 1 + - name: ISEM23 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 23 + bit_size: 1 + - name: ISEM24 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 24 + bit_size: 1 + - name: ISEM25 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 25 + bit_size: 1 + - name: ISEM26 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 26 + bit_size: 1 + - name: ISEM27 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 27 + bit_size: 1 + - name: ISEM28 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 28 + bit_size: 1 + - name: ISEM29 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 29 + bit_size: 1 + - name: ISEM30 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 30 + bit_size: 1 + - name: ISEM31 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 31 + bit_size: 1 +fieldset/IER: + description: HSEM Interrupt enable register. + fields: + - name: ISEM0 + description: Interrupt semaphore n enable bit. + bit_offset: 0 + bit_size: 1 + - name: ISEM1 + description: Interrupt semaphore n enable bit. + bit_offset: 1 + bit_size: 1 + - name: ISEM2 + description: Interrupt semaphore n enable bit. + bit_offset: 2 + bit_size: 1 + - name: ISEM3 + description: Interrupt semaphore n enable bit. + bit_offset: 3 + bit_size: 1 + - name: ISEM4 + description: Interrupt semaphore n enable bit. + bit_offset: 4 + bit_size: 1 + - name: ISEM5 + description: Interrupt semaphore n enable bit. + bit_offset: 5 + bit_size: 1 + - name: ISEM6 + description: Interrupt semaphore n enable bit. + bit_offset: 6 + bit_size: 1 + - name: ISEM7 + description: Interrupt semaphore n enable bit. + bit_offset: 7 + bit_size: 1 + - name: ISEM8 + description: Interrupt semaphore n enable bit. + bit_offset: 8 + bit_size: 1 + - name: ISEM9 + description: Interrupt semaphore n enable bit. + bit_offset: 9 + bit_size: 1 + - name: ISEM10 + description: Interrupt semaphore n enable bit. + bit_offset: 10 + bit_size: 1 + - name: ISEM11 + description: Interrupt semaphore n enable bit. + bit_offset: 11 + bit_size: 1 + - name: ISEM12 + description: Interrupt semaphore n enable bit. + bit_offset: 12 + bit_size: 1 + - name: ISEM13 + description: Interrupt semaphore n enable bit. + bit_offset: 13 + bit_size: 1 + - name: ISEM14 + description: Interrupt semaphore n enable bit. + bit_offset: 14 + bit_size: 1 + - name: ISEM15 + description: Interrupt semaphore n enable bit. + bit_offset: 15 + bit_size: 1 + - name: ISEM16 + description: Interrupt semaphore n enable bit. + bit_offset: 16 + bit_size: 1 + - name: ISEM17 + description: Interrupt semaphore n enable bit. + bit_offset: 17 + bit_size: 1 + - name: ISEM18 + description: Interrupt semaphore n enable bit. + bit_offset: 18 + bit_size: 1 + - name: ISEM19 + description: Interrupt semaphore n enable bit. + bit_offset: 19 + bit_size: 1 + - name: ISEM20 + description: Interrupt semaphore n enable bit. + bit_offset: 20 + bit_size: 1 + - name: ISEM21 + description: Interrupt semaphore n enable bit. + bit_offset: 21 + bit_size: 1 + - name: ISEM22 + description: Interrupt semaphore n enable bit. + bit_offset: 22 + bit_size: 1 + - name: ISEM23 + description: Interrupt semaphore n enable bit. + bit_offset: 23 + bit_size: 1 + - name: ISEM24 + description: Interrupt semaphore n enable bit. + bit_offset: 24 + bit_size: 1 + - name: ISEM25 + description: Interrupt semaphore n enable bit. + bit_offset: 25 + bit_size: 1 + - name: ISEM26 + description: Interrupt semaphore n enable bit. + bit_offset: 26 + bit_size: 1 + - name: ISEM27 + description: Interrupt semaphore n enable bit. + bit_offset: 27 + bit_size: 1 + - name: ISEM28 + description: Interrupt semaphore n enable bit. + bit_offset: 28 + bit_size: 1 + - name: ISEM29 + description: Interrupt semaphore n enable bit. + bit_offset: 29 + bit_size: 1 + - name: ISEM30 + description: Interrupt semaphore n enable bit. + bit_offset: 30 + bit_size: 1 + - name: ISEM31 + description: Interrupt(N) semaphore n enable bit. + bit_offset: 31 + bit_size: 1 +fieldset/ISR: + description: HSEM Interrupt status register. + fields: + - name: ISEM0 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 0 + bit_size: 1 + - name: ISEM1 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 1 + bit_size: 1 + - name: ISEM2 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 2 + bit_size: 1 + - name: ISEM3 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 3 + bit_size: 1 + - name: ISEM4 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 4 + bit_size: 1 + - name: ISEM5 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 5 + bit_size: 1 + - name: ISEM6 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 6 + bit_size: 1 + - name: ISEM7 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 7 + bit_size: 1 + - name: ISEM8 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 8 + bit_size: 1 + - name: ISEM9 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 9 + bit_size: 1 + - name: ISEM10 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 10 + bit_size: 1 + - name: ISEM11 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 11 + bit_size: 1 + - name: ISEM12 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 12 + bit_size: 1 + - name: ISEM13 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 13 + bit_size: 1 + - name: ISEM14 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 14 + bit_size: 1 + - name: ISEM15 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 15 + bit_size: 1 + - name: ISEM16 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 16 + bit_size: 1 + - name: ISEM17 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 17 + bit_size: 1 + - name: ISEM18 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 18 + bit_size: 1 + - name: ISEM19 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 19 + bit_size: 1 + - name: ISEM20 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 20 + bit_size: 1 + - name: ISEM21 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 21 + bit_size: 1 + - name: ISEM22 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 22 + bit_size: 1 + - name: ISEM23 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 23 + bit_size: 1 + - name: ISEM24 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 24 + bit_size: 1 + - name: ISEM25 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 25 + bit_size: 1 + - name: ISEM26 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 26 + bit_size: 1 + - name: ISEM27 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 27 + bit_size: 1 + - name: ISEM28 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 28 + bit_size: 1 + - name: ISEM29 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 29 + bit_size: 1 + - name: ISEM30 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 30 + bit_size: 1 + - name: ISEM31 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 31 + bit_size: 1 +fieldset/KEYR: + description: HSEM Interrupt clear register. + fields: + - name: KEY + description: Semaphore Clear Key. + bit_offset: 16 + bit_size: 16 +fieldset/MISR: + description: HSEM Masked interrupt status register. + fields: + - name: ISEM0 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 0 + bit_size: 1 + - name: ISEM1 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 1 + bit_size: 1 + - name: ISEM2 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 2 + bit_size: 1 + - name: ISEM3 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 3 + bit_size: 1 + - name: ISEM4 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 4 + bit_size: 1 + - name: ISEM5 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 5 + bit_size: 1 + - name: ISEM6 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 6 + bit_size: 1 + - name: ISEM7 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 7 + bit_size: 1 + - name: ISEM8 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 8 + bit_size: 1 + - name: ISEM9 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 9 + bit_size: 1 + - name: ISEM10 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 10 + bit_size: 1 + - name: ISEM11 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 11 + bit_size: 1 + - name: ISEM12 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 12 + bit_size: 1 + - name: ISEM13 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 13 + bit_size: 1 + - name: ISEM14 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 14 + bit_size: 1 + - name: ISEM15 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 15 + bit_size: 1 + - name: ISEM16 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 16 + bit_size: 1 + - name: ISEM17 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 17 + bit_size: 1 + - name: ISEM18 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 18 + bit_size: 1 + - name: ISEM19 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 19 + bit_size: 1 + - name: ISEM20 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 20 + bit_size: 1 + - name: ISEM21 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 21 + bit_size: 1 + - name: ISEM22 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 22 + bit_size: 1 + - name: ISEM23 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 23 + bit_size: 1 + - name: ISEM24 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 24 + bit_size: 1 + - name: ISEM25 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 25 + bit_size: 1 + - name: ISEM26 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 26 + bit_size: 1 + - name: ISEM27 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 27 + bit_size: 1 + - name: ISEM28 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 28 + bit_size: 1 + - name: ISEM29 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 29 + bit_size: 1 + - name: ISEM30 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 30 + bit_size: 1 + - name: ISEM31 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 31 + bit_size: 1 +fieldset/R: + description: HSEM register HSEM_R%s HSEM_R31. + fields: + - name: PROCID + description: Semaphore ProcessID. + bit_offset: 0 + bit_size: 8 + - name: MASTERID + description: Semaphore MasterID. + bit_offset: 8 + bit_size: 8 + - name: LOCK + description: Lock indication. + bit_offset: 31 + bit_size: 1 +fieldset/RLR: + description: HSEM Read lock register. + fields: + - name: PROCID + description: Semaphore ProcessID. + bit_offset: 0 + bit_size: 8 + - name: MASTERID + description: Semaphore MasterID. + bit_offset: 8 + bit_size: 8 + - name: LOCK + description: Lock indication. + bit_offset: 31 + bit_size: 1 diff --git a/data/registers/hsem_v4.yaml b/data/registers/hsem_v4.yaml new file mode 100644 index 0000000..0d03fdf --- /dev/null +++ b/data/registers/hsem_v4.yaml @@ -0,0 +1,1450 @@ +block/HSEM: + description: HSEM. + items: + - name: HSEM_R0 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 0 + fieldset: HSEM_R0 + - name: HSEM_R1 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 4 + fieldset: HSEM_R1 + - name: HSEM_R2 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 8 + fieldset: HSEM_R2 + - name: HSEM_R3 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 12 + fieldset: HSEM_R3 + - name: HSEM_R4 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 16 + fieldset: HSEM_R4 + - name: HSEM_R5 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 20 + fieldset: HSEM_R5 + - name: HSEM_R6 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 24 + fieldset: HSEM_R6 + - name: HSEM_R7 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 28 + fieldset: HSEM_R7 + - name: HSEM_R8 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 32 + fieldset: HSEM_R8 + - name: HSEM_R9 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 36 + fieldset: HSEM_R9 + - name: HSEM_R10 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 40 + fieldset: HSEM_R10 + - name: HSEM_R11 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 44 + fieldset: HSEM_R11 + - name: HSEM_R12 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 48 + fieldset: HSEM_R12 + - name: HSEM_R13 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 52 + fieldset: HSEM_R13 + - name: HSEM_R14 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 56 + fieldset: HSEM_R14 + - name: HSEM_R15 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 60 + fieldset: HSEM_R15 + - name: HSEM_R16 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 64 + fieldset: HSEM_R16 + - name: HSEM_R17 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 68 + fieldset: HSEM_R17 + - name: HSEM_R18 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 72 + fieldset: HSEM_R18 + - name: HSEM_R19 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 76 + fieldset: HSEM_R19 + - name: HSEM_R20 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 80 + fieldset: HSEM_R20 + - name: HSEM_R21 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 84 + fieldset: HSEM_R21 + - name: HSEM_R22 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 88 + fieldset: HSEM_R22 + - name: HSEM_R23 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 92 + fieldset: HSEM_R23 + - name: HSEM_R24 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 96 + fieldset: HSEM_R24 + - name: HSEM_R25 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 100 + fieldset: HSEM_R25 + - name: HSEM_R26 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 104 + fieldset: HSEM_R26 + - name: HSEM_R27 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 108 + fieldset: HSEM_R27 + - name: HSEM_R28 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 112 + fieldset: HSEM_R28 + - name: HSEM_R29 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 116 + fieldset: HSEM_R29 + - name: HSEM_R30 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 120 + fieldset: HSEM_R30 + - name: HSEM_R31 + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 124 + fieldset: HSEM_R31 + - name: HSEM_RLR0 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 128 + access: Read + fieldset: HSEM_RLR0 + - name: HSEM_RLR1 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 132 + access: Read + fieldset: HSEM_RLR1 + - name: HSEM_RLR2 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 136 + access: Read + fieldset: HSEM_RLR2 + - name: HSEM_RLR3 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 140 + access: Read + fieldset: HSEM_RLR3 + - name: HSEM_RLR4 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 144 + access: Read + fieldset: HSEM_RLR4 + - name: HSEM_RLR5 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 148 + access: Read + fieldset: HSEM_RLR5 + - name: HSEM_RLR6 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 152 + access: Read + fieldset: HSEM_RLR6 + - name: HSEM_RLR7 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 156 + access: Read + fieldset: HSEM_RLR7 + - name: HSEM_RLR8 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 160 + access: Read + fieldset: HSEM_RLR8 + - name: HSEM_RLR9 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 164 + access: Read + fieldset: HSEM_RLR9 + - name: HSEM_RLR10 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 168 + access: Read + fieldset: HSEM_RLR10 + - name: HSEM_RLR11 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 172 + access: Read + fieldset: HSEM_RLR11 + - name: HSEM_RLR12 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 176 + access: Read + fieldset: HSEM_RLR12 + - name: HSEM_RLR13 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 180 + access: Read + fieldset: HSEM_RLR13 + - name: HSEM_RLR14 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 184 + access: Read + fieldset: HSEM_RLR14 + - name: HSEM_RLR15 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 188 + access: Read + fieldset: HSEM_RLR15 + - name: HSEM_RLR16 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 192 + access: Read + fieldset: HSEM_RLR16 + - name: HSEM_RLR17 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 196 + access: Read + fieldset: HSEM_RLR17 + - name: HSEM_RLR18 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 200 + access: Read + fieldset: HSEM_RLR18 + - name: HSEM_RLR19 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 204 + access: Read + fieldset: HSEM_RLR19 + - name: HSEM_RLR20 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 208 + access: Read + fieldset: HSEM_RLR20 + - name: HSEM_RLR21 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 212 + access: Read + fieldset: HSEM_RLR21 + - name: HSEM_RLR22 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 216 + access: Read + fieldset: HSEM_RLR22 + - name: HSEM_RLR23 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 220 + access: Read + fieldset: HSEM_RLR23 + - name: HSEM_RLR24 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 224 + access: Read + fieldset: HSEM_RLR24 + - name: HSEM_RLR25 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 228 + access: Read + fieldset: HSEM_RLR25 + - name: HSEM_RLR26 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 232 + access: Read + fieldset: HSEM_RLR26 + - name: HSEM_RLR27 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 236 + access: Read + fieldset: HSEM_RLR27 + - name: HSEM_RLR28 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 240 + access: Read + fieldset: HSEM_RLR28 + - name: HSEM_RLR29 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 244 + access: Read + fieldset: HSEM_RLR29 + - name: HSEM_RLR30 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 248 + access: Read + fieldset: HSEM_RLR30 + - name: HSEM_RLR31 + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 252 + access: Read + fieldset: HSEM_RLR31 + - name: HSEM_C1IER + description: HSEM i1terrupt enable register. + byte_offset: 256 + fieldset: HSEM_C1IER + - name: HSEM_C1ICR + description: HSEM i1terrupt clear register. + byte_offset: 260 + fieldset: HSEM_C1ICR + - name: HSEM_C1ISR + description: HSEM i1terrupt status register. + byte_offset: 264 + access: Read + fieldset: HSEM_C1ISR + - name: HSEM_C1MISR + description: HSEM i1terrupt status register. + byte_offset: 268 + access: Read + fieldset: HSEM_C1MISR + - name: HSEM_C2IER + description: HSEM i2terrupt enable register. + byte_offset: 272 + fieldset: HSEM_C2IER + - name: HSEM_C2ICR + description: HSEM i2terrupt clear register. + byte_offset: 276 + fieldset: HSEM_C2ICR + - name: HSEM_C2ISR + description: HSEM i2terrupt status register. + byte_offset: 280 + access: Read + fieldset: HSEM_C2ISR + - name: HSEM_C2MISR + description: HSEM i2terrupt status register. + byte_offset: 284 + access: Read + fieldset: HSEM_C2MISR + - name: HSEM_CR + description: Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + byte_offset: 320 + access: Write + fieldset: HSEM_CR + - name: HSEM_KEYR + description: HSEM interrupt clear register. + byte_offset: 324 + fieldset: HSEM_KEYR + - name: HSEM_HWCFGR2 + description: HSEM hardware configuration register 2. + byte_offset: 1004 + access: Read + fieldset: HSEM_HWCFGR2 + - name: HSEM_HWCFGR1 + description: HSEM hardware configuration register 1. + byte_offset: 1008 + access: Read + fieldset: HSEM_HWCFGR1 + - name: HSEM_VERR + description: HSEM IP version register. + byte_offset: 1012 + access: Read + fieldset: HSEM_VERR + - name: HSEM_IPIDR + description: HSEM IP identification register. + byte_offset: 1016 + access: Read + fieldset: HSEM_IPIDR + - name: HSEM_SIDR + description: HSEM size identification register. + byte_offset: 1020 + access: Read + fieldset: HSEM_SIDR +fieldset/HSEM_C1ICR: + description: HSEM i1terrupt clear register. + fields: + - name: ISC + description: ISC. + bit_offset: 0 + bit_size: 32 +fieldset/HSEM_C1IER: + description: HSEM i1terrupt enable register. + fields: + - name: ISE + description: ISE. + bit_offset: 0 + bit_size: 32 +fieldset/HSEM_C1ISR: + description: HSEM i1terrupt status register. + fields: + - name: ISF + description: ISF. + bit_offset: 0 + bit_size: 32 +fieldset/HSEM_C1MISR: + description: HSEM i1terrupt status register. + fields: + - name: MISF + description: MISF. + bit_offset: 0 + bit_size: 32 +fieldset/HSEM_C2ICR: + description: HSEM i2terrupt clear register. + fields: + - name: ISC + description: ISC. + bit_offset: 0 + bit_size: 32 +fieldset/HSEM_C2IER: + description: HSEM i2terrupt enable register. + fields: + - name: ISE + description: ISE. + bit_offset: 0 + bit_size: 32 +fieldset/HSEM_C2ISR: + description: HSEM i2terrupt status register. + fields: + - name: ISF + description: ISF. + bit_offset: 0 + bit_size: 32 +fieldset/HSEM_C2MISR: + description: HSEM i2terrupt status register. + fields: + - name: MISF + description: MISF. + bit_offset: 0 + bit_size: 32 +fieldset/HSEM_CR: + description: Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: KEY + description: KEY. + bit_offset: 16 + bit_size: 16 +fieldset/HSEM_HWCFGR1: + description: HSEM hardware configuration register 1. + fields: + - name: NBSEM + description: NBSEM. + bit_offset: 0 + bit_size: 8 + - name: NBINT + description: NBINT. + bit_offset: 8 + bit_size: 4 +fieldset/HSEM_HWCFGR2: + description: HSEM hardware configuration register 2. + fields: + - name: MASTERID1 + description: MASTERID1. + bit_offset: 0 + bit_size: 4 + - name: MASTERID2 + description: MASTERID2. + bit_offset: 4 + bit_size: 4 + - name: MASTERID3 + description: MASTERID3. + bit_offset: 8 + bit_size: 4 + - name: MASTERID4 + description: MASTERID4. + bit_offset: 12 + bit_size: 4 +fieldset/HSEM_IPIDR: + description: HSEM IP identification register. + fields: + - name: IPID + description: IPID. + bit_offset: 0 + bit_size: 32 +fieldset/HSEM_KEYR: + description: HSEM interrupt clear register. + fields: + - name: KEY + description: KEY. + bit_offset: 16 + bit_size: 16 +fieldset/HSEM_R0: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R1: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R10: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R11: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R12: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R13: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R14: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R15: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R16: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R17: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R18: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R19: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R2: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R20: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R21: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R22: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R23: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R24: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R25: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R26: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R27: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R28: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R29: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R3: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R30: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R31: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R4: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R5: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R6: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R7: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R8: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_R9: + description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR0: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR1: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR10: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR11: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR12: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR13: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR14: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR15: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR16: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR17: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR18: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR19: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR2: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR20: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR21: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR22: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR23: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR24: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR25: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR26: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR27: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR28: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR29: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR3: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR30: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR31: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR4: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR5: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR6: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR7: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR8: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR9: + description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fields: + - name: PROCID + description: PROCID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: LOCK. + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_SIDR: + description: HSEM size identification register. + fields: + - name: SID + description: SID. + bit_offset: 0 + bit_size: 32 +fieldset/HSEM_VERR: + description: HSEM IP version register. + fields: + - name: MINREV + description: MINREV. + bit_offset: 0 + bit_size: 4 + - name: MAJREV + description: MAJREV. + bit_offset: 4 + bit_size: 4 diff --git a/data/registers/hsem_v5.yaml b/data/registers/hsem_v5.yaml new file mode 100644 index 0000000..7f1c983 --- /dev/null +++ b/data/registers/hsem_v5.yaml @@ -0,0 +1,246 @@ +block/HSEM: + description: HSEM. + items: + - name: R + description: Semaphore %s register. + array: + len: 32 + stride: 4 + byte_offset: 0 + fieldset: R + - name: RLR + description: Semaphore %s read lock register. + array: + len: 32 + stride: 4 + byte_offset: 128 + access: Read + fieldset: RLR + - name: C1IER + description: HSEM Interrupt enable register. + byte_offset: 256 + fieldset: C1IER + - name: C1ICR + description: HSEM Interrupt clear register. + byte_offset: 260 + fieldset: C1ICR + - name: C1ISR + description: HSEM Interrupt status register. + byte_offset: 264 + access: Read + fieldset: C1ISR + - name: C1MISR + description: HSEM Masked interrupt status register. + byte_offset: 268 + access: Read + fieldset: C1MISR + - name: C2IER + description: HSEM Interrupt enable register. + byte_offset: 272 + fieldset: C2IER + - name: C2ICR + description: HSEM Interrupt clear register. + byte_offset: 276 + fieldset: C2ICR + - name: C2ISR + description: HSEM Interrupt status register. + byte_offset: 280 + access: Read + fieldset: C2ISR + - name: C2MISR + description: HSEM Masked interrupt status register. + byte_offset: 284 + access: Read + fieldset: C2MISR + - name: CR + description: Semaphore Clear register. + byte_offset: 320 + fieldset: CR + - name: KEYR + description: Interrupt clear register. + byte_offset: 324 + fieldset: KEYR + - name: HWCFGR2 + description: Semaphore hardware configuration register 2. + byte_offset: 1004 + access: Read + fieldset: HWCFGR2 + - name: HWCFGR1 + description: Semaphore hardware configuration register 1. + byte_offset: 1008 + access: Read + fieldset: HWCFGR1 + - name: VERR + description: HSEM version register. + byte_offset: 1012 + access: Read + fieldset: VERR + - name: IPIDR + description: HSEM indentification register. + byte_offset: 1016 + access: Read + fieldset: IPIDR + - name: SIDR + description: HSEM size indentification register. + byte_offset: 1020 + access: Read + fieldset: SIDR +fieldset/C1ICR: + description: HSEM Interrupt clear register. + fields: + - name: ISCm + description: CPU(n) semaphore m clear bit. + bit_offset: 0 + bit_size: 32 +fieldset/C1IER: + description: HSEM Interrupt enable register. + fields: + - name: ISEm + description: CPU(n) semaphore m enable bit. + bit_offset: 0 + bit_size: 32 +fieldset/C1ISR: + description: HSEM Interrupt status register. + fields: + - name: ISFm + description: CPU(n) semaphore m status bit before enable (mask). + bit_offset: 0 + bit_size: 32 +fieldset/C1MISR: + description: HSEM Masked interrupt status register. + fields: + - name: MISFm + description: masked CPU(n) semaphore m status bit after enable (mask). + bit_offset: 0 + bit_size: 32 +fieldset/C2ICR: + description: HSEM Interrupt clear register. + fields: + - name: ISCm + description: CPU(2) semaphore m clear bit. + bit_offset: 0 + bit_size: 32 +fieldset/C2IER: + description: HSEM Interrupt enable register. + fields: + - name: ISEm + description: CPU(2) semaphore m enable bit. + bit_offset: 0 + bit_size: 32 +fieldset/C2ISR: + description: HSEM Interrupt status register. + fields: + - name: ISFm + description: CPU(2) semaphore m status bit before enable (mask). + bit_offset: 0 + bit_size: 32 +fieldset/C2MISR: + description: HSEM Masked interrupt status register. + fields: + - name: MISFm + description: masked CPU(2) semaphore m status bit after enable (mask). + bit_offset: 0 + bit_size: 32 +fieldset/CR: + description: Semaphore Clear register. + fields: + - name: COREID + description: CoreID of semaphore to be cleared. + bit_offset: 8 + bit_size: 4 + - name: KEY + description: Semaphore clear Key. + bit_offset: 16 + bit_size: 16 +fieldset/HWCFGR1: + description: Semaphore hardware configuration register 1. + fields: + - name: NBSEM + description: Hardware Configuration number of semaphores. + bit_offset: 0 + bit_size: 8 + - name: NBINT + description: Hardware Configuration number of interrupts supported number of master IDs. + bit_offset: 8 + bit_size: 4 +fieldset/HWCFGR2: + description: Semaphore hardware configuration register 2. + fields: + - name: MASTERID1 + description: Hardware Configuration valid bus masters ID1. + bit_offset: 0 + bit_size: 4 + - name: MASTERID2 + description: Hardware Configuration valid bus masters ID2. + bit_offset: 4 + bit_size: 4 + - name: MASTERID3 + description: Hardware Configuration valid bus masters ID3. + bit_offset: 8 + bit_size: 4 + - name: MASTERID4 + description: Hardware Configuration valid bus masters ID4. + bit_offset: 12 + bit_size: 4 +fieldset/IPIDR: + description: HSEM indentification register. + fields: + - name: ID + description: Identification Code. + bit_offset: 0 + bit_size: 32 +fieldset/KEYR: + description: Interrupt clear register. + fields: + - name: KEY + description: Semaphore Clear Key. + bit_offset: 16 + bit_size: 16 +fieldset/R: + description: Semaphore %s register. + fields: + - name: PROCID + description: Semaphore ProcessID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: Semaphore CoreID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: lock indication. + bit_offset: 31 + bit_size: 1 +fieldset/RLR: + description: Semaphore %s read lock register. + fields: + - name: PROCID + description: Semaphore ProcessID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: Semaphore CoreID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: lock indication. + bit_offset: 31 + bit_size: 1 +fieldset/SIDR: + description: HSEM size indentification register. + fields: + - name: SID + description: Size Identification Code. + bit_offset: 0 + bit_size: 32 +fieldset/VERR: + description: HSEM version register. + fields: + - name: MINREV + description: Minor Revision. + bit_offset: 0 + bit_size: 4 + - name: MAJREV + description: Major Revision. + bit_offset: 4 + bit_size: 4 diff --git a/data/registers/hsem_v6.yaml b/data/registers/hsem_v6.yaml new file mode 100644 index 0000000..efac812 --- /dev/null +++ b/data/registers/hsem_v6.yaml @@ -0,0 +1,1911 @@ +block/HSEM: + description: Hardware semaphore. + items: + - name: HSEM_R1 + description: HSEM register semaphore 1. + byte_offset: 4 + fieldset: HSEM_R1 + - name: HSEM_R2 + description: HSEM register semaphore 2. + byte_offset: 8 + fieldset: HSEM_R2 + - name: HSEM_R3 + description: HSEM register semaphore 3. + byte_offset: 12 + fieldset: HSEM_R3 + - name: HSEM_R4 + description: HSEM register semaphore 4. + byte_offset: 16 + fieldset: HSEM_R4 + - name: HSEM_R5 + description: HSEM register semaphore 5. + byte_offset: 20 + fieldset: HSEM_R5 + - name: HSEM_R6 + description: HSEM register semaphore 6. + byte_offset: 24 + fieldset: HSEM_R6 + - name: HSEM_R7 + description: HSEM register semaphore 7. + byte_offset: 28 + fieldset: HSEM_R7 + - name: HSEM_R8 + description: HSEM register semaphore 8. + byte_offset: 32 + fieldset: HSEM_R8 + - name: HSEM_R9 + description: HSEM register semaphore 9. + byte_offset: 36 + fieldset: HSEM_R9 + - name: HSEM_R10 + description: HSEM register semaphore 10. + byte_offset: 40 + fieldset: HSEM_R10 + - name: HSEM_R11 + description: HSEM register semaphore 11. + byte_offset: 44 + fieldset: HSEM_R11 + - name: HSEM_R12 + description: HSEM register semaphore 12. + byte_offset: 48 + fieldset: HSEM_R12 + - name: HSEM_R13 + description: HSEM register semaphore 13. + byte_offset: 52 + fieldset: HSEM_R13 + - name: HSEM_R14 + description: HSEM register semaphore 14. + byte_offset: 56 + fieldset: HSEM_R14 + - name: HSEM_R15 + description: HSEM register semaphore 15. + byte_offset: 60 + fieldset: HSEM_R15 + - name: HSEM_RLR0 + description: HSEM read lock register semaphore 0. + byte_offset: 128 + fieldset: HSEM_RLR0 + - name: HSEM_RLR1 + description: HSEM read lock register semaphore 1. + byte_offset: 132 + fieldset: HSEM_RLR1 + - name: HSEM_RLR2 + description: HSEM read lock register semaphore 2. + byte_offset: 136 + fieldset: HSEM_RLR2 + - name: HSEM_RLR3 + description: HSEM read lock register semaphore 3. + byte_offset: 140 + fieldset: HSEM_RLR3 + - name: HSEM_RLR4 + description: HSEM read lock register semaphore 4. + byte_offset: 144 + fieldset: HSEM_RLR4 + - name: HSEM_RLR5 + description: HSEM read lock register semaphore 5. + byte_offset: 148 + fieldset: HSEM_RLR5 + - name: HSEM_RLR6 + description: HSEM read lock register semaphore 6. + byte_offset: 152 + fieldset: HSEM_RLR6 + - name: HSEM_RLR7 + description: HSEM read lock register semaphore 7. + byte_offset: 156 + fieldset: HSEM_RLR7 + - name: HSEM_RLR8 + description: HSEM read lock register semaphore 8. + byte_offset: 160 + fieldset: HSEM_RLR8 + - name: HSEM_RLR9 + description: HSEM read lock register semaphore 9. + byte_offset: 164 + fieldset: HSEM_RLR9 + - name: HSEM_RLR10 + description: HSEM read lock register semaphore 10. + byte_offset: 168 + fieldset: HSEM_RLR10 + - name: HSEM_RLR11 + description: HSEM read lock register semaphore 11. + byte_offset: 172 + fieldset: HSEM_RLR11 + - name: HSEM_RLR12 + description: HSEM read lock register semaphore 12. + byte_offset: 176 + fieldset: HSEM_RLR12 + - name: HSEM_RLR13 + description: HSEM read lock register semaphore 13. + byte_offset: 180 + fieldset: HSEM_RLR13 + - name: HSEM_RLR14 + description: HSEM read lock register semaphore 14. + byte_offset: 184 + fieldset: HSEM_RLR14 + - name: HSEM_RLR15 + description: HSEM read lock register semaphore 15. + byte_offset: 188 + fieldset: HSEM_RLR15 + - name: HSEM_IER + description: HSEM non-secure interrupt enable register. + byte_offset: 256 + fieldset: HSEM_IER + - name: HSEM_ICR + description: HSEM non-secure interrupt clear register. + byte_offset: 260 + fieldset: HSEM_ICR + - name: HSEM_ISR + description: HSEM non-secure interrupt status register. + byte_offset: 264 + fieldset: HSEM_ISR + - name: HSEM_MISR + description: HSEM non-secure interrupt status register. + byte_offset: 268 + fieldset: HSEM_MISR + - name: HSEM_SIER + description: HSEM secure interrupt enable register. + byte_offset: 384 + fieldset: HSEM_SIER + - name: HSEM_SICR + description: HSEM secure interrupt clear register. + byte_offset: 388 + fieldset: HSEM_SICR + - name: HSEM_SISR + description: HSEM secure interrupt status register. + byte_offset: 392 + fieldset: HSEM_SISR + - name: HSEM_MSISR + description: HSEM secure masked interrupt status register. + byte_offset: 396 + fieldset: HSEM_MSISR + - name: HSEM_SECCFGR + description: HSEM security configuration register. + byte_offset: 512 + fieldset: HSEM_SECCFGR + - name: HSEM_PRIVCFGR + description: HSEM privilege configuration register. + byte_offset: 528 + fieldset: HSEM_PRIVCFGR + - name: HSEM_CR + description: HSEM clear register. + byte_offset: 560 + fieldset: HSEM_CR + - name: HSEM_KEYR + description: HSEM interrupt clear register. + byte_offset: 564 + fieldset: HSEM_KEYR + - name: HSEM_R0 + description: HSEM register semaphore 0. + byte_offset: 1108089856 + fieldset: HSEM_R0 +fieldset/HSEM_CR: + description: HSEM clear register. + fields: + - name: LOCKID + description: LOCKID of semaphores to be cleared This field can be written by software and is always read 0. This field indicates the LOCKID for which the semaphores are cleared when writing the HSEM_CR. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: SEC value of semaphores to be cleared. This field can be written by software, is always read 0. Indicates the SEC for which the CID semaphores are cleared when writing the HSEM_CR. + bit_offset: 12 + bit_size: 1 + - name: PRIV + description: PRIV value of semaphores to be cleared. This field can be written by software, is always read 0. Indicates the PRIV for which the CID semaphores are cleared when writing the HSEM_CR. + bit_offset: 13 + bit_size: 1 + - name: KEY + description: Semaphore clear key This field can be written by software and is always read 0. If this key value does not match HSEM_KEYR.KEY, semaphores are not affected. If this key value matches HSEM_KEYR.KEY, all semaphores matching the LOCKID are cleared to the free state. + bit_offset: 16 + bit_size: 16 +fieldset/HSEM_ICR: + description: HSEM non-secure interrupt clear register. + fields: + - name: ISC + description: Non-secure Interrupt semaphore x clear bit This bit is written by software, and is always read 0. When semaphore x SECx is disabled, bit x can be accessed with secure and non-secure access. When semaphore x SECx is enabled, bit x cannot be accessed, write to this bit is discarded. When semaphore x PRIVx is disabled, bit x can be accessed with privileged and unprivileged access. When semaphore x PRIVx is enabled, bit x can only be accessed with privileged access. Unprivileged write to this bit is discarded. + bit_offset: 0 + bit_size: 16 + enum: ISC +fieldset/HSEM_IER: + description: HSEM non-secure interrupt enable register. + fields: + - name: ISE + description: Non-secure Interrupt semaphore x enable bit This bit is read and written by software. When semaphore x SECx is disabled, bit x can be accessed with secure and non-secure access. When semaphore x SECx is enabled, bit x is forced to 0 and cannot be accessed, write to this bit is discarded and a read returns 0. When semaphore x PRIVx is disabled, bit x can be accessed with privilege and unprivileged access. When semaphore x PRIVx is enabled, bit x can be accessed only with privileged access. Unprivileged write to this bit is discarded, unprivileged read returns 0. + bit_offset: 0 + bit_size: 16 + enum: ISE +fieldset/HSEM_ISR: + description: HSEM non-secure interrupt status register. + fields: + - name: ISF + description: Interrupt semaphore x status bit before enable (mask) This bit is set by hardware, and reset only by software. This bit is cleared by software writing the corresponding HSEM_ICR bit. + bit_offset: 0 + bit_size: 16 + enum: ISF +fieldset/HSEM_KEYR: + description: HSEM interrupt clear register. + fields: + - name: KEY + description: Semaphore clear key This field can be written and read by software. Key value to match when clearing semaphores. + bit_offset: 16 + bit_size: 16 +fieldset/HSEM_MISR: + description: HSEM non-secure interrupt status register. + fields: + - name: MISF + description: Masked non-secure interrupt semaphore x status bit after enable (mask) This bit is set by hardware and read only by software. This bit is cleared by software writing the corresponding HSEM_ICR bit. This bit is read as 0 when semaphore x status is masked in HSEM_IER bit x. When semaphore x SECx is disabled, bit x can be accessed with secure and non-secure access. When semaphore x SECx is enabled, bit x cannot be accessed, read returns 0. When semaphore x PRIVx is disabled, bit x can be accessed with privileged and unprivileged access. When semaphore x PRIVx is enabled, bit x can be accessed only with privileged access. Unprivileged read returns 0. + bit_offset: 0 + bit_size: 16 + enum: MISF +fieldset/HSEM_MSISR: + description: HSEM secure masked interrupt status register. + fields: + - name: SMISF + description: Secure masked interrupt semaphore x status bit after enable (mask) This bit is set by hardware and read only by software. Bit is cleared by software writing the corresponding HSEM_SCnICR bit x. Bit is read as 0 when semaphore x status is masked in HSEM_SCnIER bit x. When semaphore x PRIVx is disabled, bit x can be accessed with secure privilege and secure unprivileged access. When semaphore x PRIVx is enabled, bit x can be accessed only with secure privilege access. Secure unprivileged read return 0 value. + bit_offset: 0 + bit_size: 16 + enum: SMISF +fieldset/HSEM_PRIVCFGR: + description: HSEM privilege configuration register. + fields: + - name: PRIV + description: Semaphore x privilege attribute This bit is set and cleared by software. When semaphore x SECx is disabled, bit x can be write accessed with secure privileged and non-secure privileged access. When semaphore x SECx is enabled, bit x can only be write accessed with secure privilege access. Non-secure privileged write access is discarded. Both secure and non-secure read return the register bit x value. + bit_offset: 0 + bit_size: 16 + enum: HSEM_PRIVCFGR_PRIV +fieldset/HSEM_R0: + description: HSEM register semaphore 0. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R0_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R0_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R0_LOCK +fieldset/HSEM_R1: + description: HSEM register semaphore 1. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R1_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R1_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R1_LOCK +fieldset/HSEM_R10: + description: HSEM register semaphore 10. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R10_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R10_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R10_LOCK +fieldset/HSEM_R11: + description: HSEM register semaphore 11. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R11_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R11_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R11_LOCK +fieldset/HSEM_R12: + description: HSEM register semaphore 12. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R12_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R12_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R12_LOCK +fieldset/HSEM_R13: + description: HSEM register semaphore 13. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R13_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R13_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R13_LOCK +fieldset/HSEM_R14: + description: HSEM register semaphore 14. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R14_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R14_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R14_LOCK +fieldset/HSEM_R15: + description: HSEM register semaphore 15. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R15_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R15_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R15_LOCK +fieldset/HSEM_R2: + description: HSEM register semaphore 2. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R2_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R2_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R2_LOCK +fieldset/HSEM_R3: + description: HSEM register semaphore 3. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R3_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R3_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R3_LOCK +fieldset/HSEM_R4: + description: HSEM register semaphore 4. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R4_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R4_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R4_LOCK +fieldset/HSEM_R5: + description: HSEM register semaphore 5. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R5_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R5_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R5_LOCK +fieldset/HSEM_R6: + description: HSEM register semaphore 6. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R6_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R6_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R6_LOCK +fieldset/HSEM_R7: + description: HSEM register semaphore 7. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R7_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R7_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R7_LOCK +fieldset/HSEM_R8: + description: HSEM register semaphore 8. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R8_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R8_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R8_LOCK +fieldset/HSEM_R9: + description: HSEM register semaphore 9. + fields: + - name: PROCID + description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. + bit_offset: 12 + bit_size: 1 + enum: HSEM_R9_SEC + - name: PRIV + description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. + bit_offset: 13 + bit_size: 1 + enum: HSEM_R9_PRIV + - name: LOCK + description: Lock indication This bit can be written and read by software. + bit_offset: 31 + bit_size: 1 + enum: HSEM_R9_LOCK +fieldset/HSEM_RLR0: + description: HSEM read lock register semaphore 0. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR0_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR0_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR1: + description: HSEM read lock register semaphore 1. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR1_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR1_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR10: + description: HSEM read lock register semaphore 10. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR10_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR10_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR11: + description: HSEM read lock register semaphore 11. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR11_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR11_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR12: + description: HSEM read lock register semaphore 12. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR12_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR12_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR13: + description: HSEM read lock register semaphore 13. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR13_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR13_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR14: + description: HSEM read lock register semaphore 14. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR14_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR14_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR15: + description: HSEM read lock register semaphore 15. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR15_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR15_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR2: + description: HSEM read lock register semaphore 2. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR2_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR2_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR3: + description: HSEM read lock register semaphore 3. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR3_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR3_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR4: + description: HSEM read lock register semaphore 4. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR4_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR4_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR5: + description: HSEM read lock register semaphore 5. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR5_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR5_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR6: + description: HSEM read lock register semaphore 6. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR6_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR6_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR7: + description: HSEM read lock register semaphore 7. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR7_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR7_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR8: + description: HSEM read lock register semaphore 8. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR8_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR8_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_RLR9: + description: HSEM read lock register semaphore 9. + fields: + - name: PROCID + description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' + bit_offset: 0 + bit_size: 8 + - name: LOCKID + description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. + bit_offset: 8 + bit_size: 4 + - name: SEC + description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' + bit_offset: 12 + bit_size: 1 + enum: HSEM_RLR9_SEC + - name: PRIV + description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' + bit_offset: 13 + bit_size: 1 + enum: HSEM_RLR9_PRIV + - name: LOCK + description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' + bit_offset: 31 + bit_size: 1 +fieldset/HSEM_SECCFGR: + description: HSEM security configuration register. + fields: + - name: SEC + description: Semaphore x security attribute This bit is set and cleared by software. + bit_offset: 0 + bit_size: 16 + enum: HSEM_SECCFGR_SEC +fieldset/HSEM_SICR: + description: HSEM secure interrupt clear register. + fields: + - name: SISC + description: Secure interrupt semaphore x clear bit This bit is written by software, and is always read 0. When semaphore x PRIVx is disabled, bit x can be accessed with secure privilege and secure unprivileged access. When semaphore x PRIVx is enabled, bit x can be accessed only with secure privilege access. Secure unprivileged write to this bit is discarded. + bit_offset: 0 + bit_size: 16 + enum: SISC +fieldset/HSEM_SIER: + description: HSEM secure interrupt enable register. + fields: + - name: SISE + description: Secure interrupt semaphore x enable bit This bit is read and written by software. When semaphore x PRIVx is disabled, bit x can be accessed with secure privilege and secure unprivileged access. When semaphore x PRIVx is enabled, bit x can be accessed only with secure privilege access. secure unprivileged write to this bit is discarded, secure unprivileged read return 0 value. + bit_offset: 0 + bit_size: 16 + enum: SISE +fieldset/HSEM_SISR: + description: HSEM secure interrupt status register. + fields: + - name: SISF + description: Secure interrupt semaphore x status bit before enable (mask) This bit is set by hardware and read only by software. Bit is cleared by software writing the corresponding HSEM_SCnICR bit x. When semaphore x PRIVx is disabled, bit x can be accessed with secure privilege and secure unprivileged access. When semaphore x PRIVx is enabled, bit x can be accessed only with secure privilege access. Secure unprivileged read return 0 value. + bit_offset: 0 + bit_size: 16 + enum: SISF +enum/HSEM_PRIVCFGR_PRIV: + bit_size: 16 + variants: + - name: B_0x0 + description: Semaphore x unprivileged, can be accessed by both privileged and unprivileged processors. + value: 0 + - name: B_0x1 + description: Semaphore x privileged, can be accessed only by privileged processors. + value: 1 +enum/HSEM_R0_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R0_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R0_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R10_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R10_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R10_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R11_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R11_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R11_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R12_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R12_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R12_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R13_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R13_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R13_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R14_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R14_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R14_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R15_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R15_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R15_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R1_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R1_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R1_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R2_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R2_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R2_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R3_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R3_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R3_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R4_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R4_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R4_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R5_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R5_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R5_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R6_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R6_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R6_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R7_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R7_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R7_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R8_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R8_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R8_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_R9_LOCK: + bit_size: 1 + variants: + - name: B_0x0 + description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. + value: 0 + - name: B_0x1 + description: On write try to lock semaphore, on read semaphore is locked. + value: 1 +enum/HSEM_R9_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privilege compartment. + value: 1 +enum/HSEM_R9_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR0_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR0_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR10_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR10_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR11_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR11_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR12_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR12_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR13_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR13_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR14_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR14_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR15_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR15_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR1_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR1_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR2_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR2_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR3_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR3_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR4_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR4_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR5_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR5_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR6_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR6_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR7_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR7_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR8_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR8_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_RLR9_PRIV: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by unprivileged compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by privileged compartment. + value: 1 +enum/HSEM_RLR9_SEC: + bit_size: 1 + variants: + - name: B_0x0 + description: Semaphore free or locked by non-secure compartment. + value: 0 + - name: B_0x1 + description: Semaphore locked by secure compartment. + value: 1 +enum/HSEM_SECCFGR_SEC: + bit_size: 16 + variants: + - name: B_0x0 + description: Semaphore x non-security, can be accessed by both secure and non-secure processors. When unlocking semaphore x both a secure and non-secure interrupt can be generated. + value: 0 + - name: B_0x1 + description: Semaphore x security, can be accessed only by secure processors. When unlocking semaphore x only a secure interrupt can be generated. + value: 1 +enum/ISC: + bit_size: 16 + variants: + - name: B_0x0 + description: non-secure Interrupt semaphore x status ISFx and masked status MISFx not affected. + value: 0 + - name: B_0x1 + description: non-secure Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISE: + bit_size: 16 + variants: + - name: B_0x0 + description: Non-secure Interrupt generation for semaphore x disabled (masked). + value: 0 + - name: B_0x1 + description: Non-secure Interrupt generation for semaphore x enabled (not masked). + value: 1 +enum/ISF: + bit_size: 16 + variants: + - name: B_0x0 + description: Interrupt semaphore x status, no interrupt pending. + value: 0 + - name: B_0x1 + description: Interrupt semaphore x status, interrupt pending. + value: 1 +enum/MISF: + bit_size: 16 + variants: + - name: B_0x0 + description: non-secure interrupt semaphore x status after masking not pending. + value: 0 + - name: B_0x1 + description: non-secure interrupt semaphore x status after masking pending. + value: 1 +enum/SISC: + bit_size: 16 + variants: + - name: B_0x0 + description: Secure interrupt semaphore x status ISFx and masked status MISFx not affected. + value: 0 + - name: B_0x1 + description: Secure interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/SISE: + bit_size: 16 + variants: + - name: B_0x0 + description: Secure interrupt generation for semaphore x is disabled (masked). + value: 0 + - name: B_0x1 + description: Secure interrupt generation for semaphore x is enabled (not masked). + value: 1 +enum/SISF: + bit_size: 16 + variants: + - name: B_0x0 + description: Secure interrupt semaphore x status, no interrupt pending. + value: 0 + - name: B_0x1 + description: Secure interrupt semaphore x status, interrupt pending. + value: 1 +enum/SMISF: + bit_size: 16 + variants: + - name: B_0x0 + description: Secure interrupt semaphore x status after masking not pending. + value: 0 + - name: B_0x1 + description: Secure interrupt semaphore x status after masking pending. + value: 1 diff --git a/data/registers/hsem_v7.yaml b/data/registers/hsem_v7.yaml new file mode 100644 index 0000000..21c2fce --- /dev/null +++ b/data/registers/hsem_v7.yaml @@ -0,0 +1,1947 @@ +block/HSEM: + description: Hardware semaphore. + items: + - name: R + description: HSEM register HSEM_R%s HSEM_R31. + array: + len: 16 + stride: 4 + byte_offset: 0 + fieldset: R + - name: RLR + description: HSEM Read lock register. + array: + len: 16 + stride: 4 + byte_offset: 128 + access: Read + fieldset: RLR + - name: C1IER + description: HSEM Interrupt enable register. + byte_offset: 256 + fieldset: C1IER + - name: C1ICR + description: HSEM Interrupt clear register. + byte_offset: 260 + fieldset: C1ICR + - name: C1ISR + description: HSEM Interrupt status register. + byte_offset: 264 + access: Read + fieldset: C1ISR + - name: C1MISR + description: HSEM Masked interrupt status register. + byte_offset: 268 + access: Read + fieldset: C1MISR + - name: C2IER + description: HSEM Interrupt enable register. + byte_offset: 272 + fieldset: C2IER + - name: C2ICR + description: HSEM Interrupt clear register. + byte_offset: 276 + fieldset: C2ICR + - name: C2ISR + description: HSEM Interrupt status register. + byte_offset: 280 + access: Read + fieldset: C2ISR + - name: C2MISR + description: HSEM Masked interrupt status register. + byte_offset: 284 + access: Read + fieldset: C2MISR + - name: CR + description: HSEM Clear register. + byte_offset: 320 + access: Write + fieldset: CR + - name: KEYR + description: HSEM Interrupt clear register. + byte_offset: 324 + fieldset: KEYR +fieldset/C1ICR: + description: HSEM Interrupt clear register. + fields: + - name: ISC0 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 0 + bit_size: 1 + enum: C1ICR_ISC0 + - name: ISC1 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 1 + bit_size: 1 + enum: C1ICR_ISC1 + - name: ISC2 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 2 + bit_size: 1 + enum: C1ICR_ISC2 + - name: ISC3 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 3 + bit_size: 1 + enum: C1ICR_ISC3 + - name: ISC4 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 4 + bit_size: 1 + enum: C1ICR_ISC4 + - name: ISC5 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 5 + bit_size: 1 + enum: C1ICR_ISC5 + - name: ISC6 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 6 + bit_size: 1 + enum: C1ICR_ISC6 + - name: ISC7 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 7 + bit_size: 1 + enum: C1ICR_ISC7 + - name: ISC8 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 8 + bit_size: 1 + enum: C1ICR_ISC8 + - name: ISC9 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 9 + bit_size: 1 + enum: C1ICR_ISC9 + - name: ISC10 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 10 + bit_size: 1 + enum: C1ICR_ISC10 + - name: ISC11 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 11 + bit_size: 1 + enum: C1ICR_ISC11 + - name: ISC12 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 12 + bit_size: 1 + enum: C1ICR_ISC12 + - name: ISC13 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 13 + bit_size: 1 + enum: C1ICR_ISC13 + - name: ISC14 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 14 + bit_size: 1 + enum: C1ICR_ISC14 + - name: ISC15 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 15 + bit_size: 1 + enum: C1ICR_ISC15 +fieldset/C1IER: + description: HSEM Interrupt enable register. + fields: + - name: ISE0 + description: Interrupt semaphore n enable bit. + bit_offset: 0 + bit_size: 1 + enum: C1IER_ISE0 + - name: ISE1 + description: Interrupt semaphore n enable bit. + bit_offset: 1 + bit_size: 1 + enum: C1IER_ISE1 + - name: ISE2 + description: Interrupt semaphore n enable bit. + bit_offset: 2 + bit_size: 1 + enum: C1IER_ISE2 + - name: ISE3 + description: Interrupt semaphore n enable bit. + bit_offset: 3 + bit_size: 1 + enum: C1IER_ISE3 + - name: ISE4 + description: Interrupt semaphore n enable bit. + bit_offset: 4 + bit_size: 1 + enum: C1IER_ISE4 + - name: ISE5 + description: Interrupt semaphore n enable bit. + bit_offset: 5 + bit_size: 1 + enum: C1IER_ISE5 + - name: ISE6 + description: Interrupt semaphore n enable bit. + bit_offset: 6 + bit_size: 1 + enum: C1IER_ISE6 + - name: ISE7 + description: Interrupt semaphore n enable bit. + bit_offset: 7 + bit_size: 1 + enum: C1IER_ISE7 + - name: ISE8 + description: Interrupt semaphore n enable bit. + bit_offset: 8 + bit_size: 1 + enum: C1IER_ISE8 + - name: ISE9 + description: Interrupt semaphore n enable bit. + bit_offset: 9 + bit_size: 1 + enum: C1IER_ISE9 + - name: ISE10 + description: Interrupt semaphore n enable bit. + bit_offset: 10 + bit_size: 1 + enum: C1IER_ISE10 + - name: ISE11 + description: Interrupt semaphore n enable bit. + bit_offset: 11 + bit_size: 1 + enum: C1IER_ISE11 + - name: ISE12 + description: Interrupt semaphore n enable bit. + bit_offset: 12 + bit_size: 1 + enum: C1IER_ISE12 + - name: ISE13 + description: Interrupt semaphore n enable bit. + bit_offset: 13 + bit_size: 1 + enum: C1IER_ISE13 + - name: ISE14 + description: Interrupt semaphore n enable bit. + bit_offset: 14 + bit_size: 1 + enum: C1IER_ISE14 + - name: ISE15 + description: Interrupt semaphore n enable bit. + bit_offset: 15 + bit_size: 1 + enum: C1IER_ISE15 +fieldset/C1ISR: + description: HSEM Interrupt status register. + fields: + - name: ISF0 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 0 + bit_size: 1 + enum: C1ISR_ISF0 + - name: ISF1 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 1 + bit_size: 1 + enum: C1ISR_ISF1 + - name: ISF2 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 2 + bit_size: 1 + enum: C1ISR_ISF2 + - name: ISF3 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 3 + bit_size: 1 + enum: C1ISR_ISF3 + - name: ISF4 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 4 + bit_size: 1 + enum: C1ISR_ISF4 + - name: ISF5 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 5 + bit_size: 1 + enum: C1ISR_ISF5 + - name: ISF6 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 6 + bit_size: 1 + enum: C1ISR_ISF6 + - name: ISF7 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 7 + bit_size: 1 + enum: C1ISR_ISF7 + - name: ISF8 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 8 + bit_size: 1 + enum: C1ISR_ISF8 + - name: ISF9 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 9 + bit_size: 1 + enum: C1ISR_ISF9 + - name: ISF10 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 10 + bit_size: 1 + enum: C1ISR_ISF10 + - name: ISF11 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 11 + bit_size: 1 + enum: C1ISR_ISF11 + - name: ISF12 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 12 + bit_size: 1 + enum: C1ISR_ISF12 + - name: ISF13 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 13 + bit_size: 1 + enum: C1ISR_ISF13 + - name: ISF14 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 14 + bit_size: 1 + enum: C1ISR_ISF14 + - name: ISF15 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 15 + bit_size: 1 + enum: C1ISR_ISF15 +fieldset/C1MISR: + description: HSEM Masked interrupt status register. + fields: + - name: MISF0 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 0 + bit_size: 1 + enum: C1MISR_MISF0 + - name: MISF1 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 1 + bit_size: 1 + enum: C1MISR_MISF1 + - name: MISF2 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 2 + bit_size: 1 + enum: C1MISR_MISF2 + - name: MISF3 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 3 + bit_size: 1 + enum: C1MISR_MISF3 + - name: MISF4 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 4 + bit_size: 1 + enum: C1MISR_MISF4 + - name: MISF5 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 5 + bit_size: 1 + enum: C1MISR_MISF5 + - name: MISF6 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 6 + bit_size: 1 + enum: C1MISR_MISF6 + - name: MISF7 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 7 + bit_size: 1 + enum: C1MISR_MISF7 + - name: MISF8 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 8 + bit_size: 1 + enum: C1MISR_MISF8 + - name: MISF9 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 9 + bit_size: 1 + enum: C1MISR_MISF9 + - name: MISF10 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 10 + bit_size: 1 + enum: C1MISR_MISF10 + - name: MISF11 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 11 + bit_size: 1 + enum: C1MISR_MISF11 + - name: MISF12 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 12 + bit_size: 1 + enum: C1MISR_MISF12 + - name: MISF13 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 13 + bit_size: 1 + enum: C1MISR_MISF13 + - name: MISF14 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 14 + bit_size: 1 + enum: C1MISR_MISF14 + - name: MISF15 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 15 + bit_size: 1 + enum: C1MISR_MISF15 +fieldset/C2ICR: + description: HSEM Interrupt clear register. + fields: + - name: ISC0 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 0 + bit_size: 1 + enum: C2ICR_ISC0 + - name: ISC1 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 1 + bit_size: 1 + enum: C2ICR_ISC1 + - name: ISC2 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 2 + bit_size: 1 + enum: C2ICR_ISC2 + - name: ISC3 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 3 + bit_size: 1 + enum: C2ICR_ISC3 + - name: ISC4 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 4 + bit_size: 1 + enum: C2ICR_ISC4 + - name: ISC5 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 5 + bit_size: 1 + enum: C2ICR_ISC5 + - name: ISC6 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 6 + bit_size: 1 + enum: C2ICR_ISC6 + - name: ISC7 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 7 + bit_size: 1 + enum: C2ICR_ISC7 + - name: ISC8 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 8 + bit_size: 1 + enum: C2ICR_ISC8 + - name: ISC9 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 9 + bit_size: 1 + enum: C2ICR_ISC9 + - name: ISC10 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 10 + bit_size: 1 + enum: C2ICR_ISC10 + - name: ISC11 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 11 + bit_size: 1 + enum: C2ICR_ISC11 + - name: ISC12 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 12 + bit_size: 1 + enum: C2ICR_ISC12 + - name: ISC13 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 13 + bit_size: 1 + enum: C2ICR_ISC13 + - name: ISC14 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 14 + bit_size: 1 + enum: C2ICR_ISC14 + - name: ISC15 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 15 + bit_size: 1 + enum: C2ICR_ISC15 +fieldset/C2IER: + description: HSEM Interrupt enable register. + fields: + - name: ISE0 + description: Interrupt semaphore n enable bit. + bit_offset: 0 + bit_size: 1 + enum: C2IER_ISE0 + - name: ISE1 + description: Interrupt semaphore n enable bit. + bit_offset: 1 + bit_size: 1 + enum: C2IER_ISE1 + - name: ISE2 + description: Interrupt semaphore n enable bit. + bit_offset: 2 + bit_size: 1 + enum: C2IER_ISE2 + - name: ISE3 + description: Interrupt semaphore n enable bit. + bit_offset: 3 + bit_size: 1 + enum: C2IER_ISE3 + - name: ISE4 + description: Interrupt semaphore n enable bit. + bit_offset: 4 + bit_size: 1 + enum: C2IER_ISE4 + - name: ISE5 + description: Interrupt semaphore n enable bit. + bit_offset: 5 + bit_size: 1 + enum: C2IER_ISE5 + - name: ISE6 + description: Interrupt semaphore n enable bit. + bit_offset: 6 + bit_size: 1 + enum: C2IER_ISE6 + - name: ISE7 + description: Interrupt semaphore n enable bit. + bit_offset: 7 + bit_size: 1 + enum: C2IER_ISE7 + - name: ISE8 + description: Interrupt semaphore n enable bit. + bit_offset: 8 + bit_size: 1 + enum: C2IER_ISE8 + - name: ISE9 + description: Interrupt semaphore n enable bit. + bit_offset: 9 + bit_size: 1 + enum: C2IER_ISE9 + - name: ISE10 + description: Interrupt semaphore n enable bit. + bit_offset: 10 + bit_size: 1 + enum: C2IER_ISE10 + - name: ISE11 + description: Interrupt semaphore n enable bit. + bit_offset: 11 + bit_size: 1 + enum: C2IER_ISE11 + - name: ISE12 + description: Interrupt semaphore n enable bit. + bit_offset: 12 + bit_size: 1 + enum: C2IER_ISE12 + - name: ISE13 + description: Interrupt semaphore n enable bit. + bit_offset: 13 + bit_size: 1 + enum: C2IER_ISE13 + - name: ISE14 + description: Interrupt semaphore n enable bit. + bit_offset: 14 + bit_size: 1 + enum: C2IER_ISE14 + - name: ISE15 + description: Interrupt semaphore n enable bit. + bit_offset: 15 + bit_size: 1 + enum: C2IER_ISE15 +fieldset/C2ISR: + description: HSEM Interrupt status register. + fields: + - name: ISF0 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 0 + bit_size: 1 + enum: C2ISR_ISF0 + - name: ISF1 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 1 + bit_size: 1 + enum: C2ISR_ISF1 + - name: ISF2 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 2 + bit_size: 1 + enum: C2ISR_ISF2 + - name: ISF3 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 3 + bit_size: 1 + enum: C2ISR_ISF3 + - name: ISF4 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 4 + bit_size: 1 + enum: C2ISR_ISF4 + - name: ISF5 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 5 + bit_size: 1 + enum: C2ISR_ISF5 + - name: ISF6 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 6 + bit_size: 1 + enum: C2ISR_ISF6 + - name: ISF7 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 7 + bit_size: 1 + enum: C2ISR_ISF7 + - name: ISF8 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 8 + bit_size: 1 + enum: C2ISR_ISF8 + - name: ISF9 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 9 + bit_size: 1 + enum: C2ISR_ISF9 + - name: ISF10 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 10 + bit_size: 1 + enum: C2ISR_ISF10 + - name: ISF11 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 11 + bit_size: 1 + enum: C2ISR_ISF11 + - name: ISF12 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 12 + bit_size: 1 + enum: C2ISR_ISF12 + - name: ISF13 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 13 + bit_size: 1 + enum: C2ISR_ISF13 + - name: ISF14 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 14 + bit_size: 1 + enum: C2ISR_ISF14 + - name: ISF15 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 15 + bit_size: 1 + enum: C2ISR_ISF15 +fieldset/C2MISR: + description: HSEM Masked interrupt status register. + fields: + - name: MISF0 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 0 + bit_size: 1 + enum: C2MISR_MISF0 + - name: MISF1 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 1 + bit_size: 1 + enum: C2MISR_MISF1 + - name: MISF2 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 2 + bit_size: 1 + enum: C2MISR_MISF2 + - name: MISF3 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 3 + bit_size: 1 + enum: C2MISR_MISF3 + - name: MISF4 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 4 + bit_size: 1 + enum: C2MISR_MISF4 + - name: MISF5 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 5 + bit_size: 1 + enum: C2MISR_MISF5 + - name: MISF6 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 6 + bit_size: 1 + enum: C2MISR_MISF6 + - name: MISF7 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 7 + bit_size: 1 + enum: C2MISR_MISF7 + - name: MISF8 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 8 + bit_size: 1 + enum: C2MISR_MISF8 + - name: MISF9 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 9 + bit_size: 1 + enum: C2MISR_MISF9 + - name: MISF10 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 10 + bit_size: 1 + enum: C2MISR_MISF10 + - name: MISF11 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 11 + bit_size: 1 + enum: C2MISR_MISF11 + - name: MISF12 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 12 + bit_size: 1 + enum: C2MISR_MISF12 + - name: MISF13 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 13 + bit_size: 1 + enum: C2MISR_MISF13 + - name: MISF14 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 14 + bit_size: 1 + enum: C2MISR_MISF14 + - name: MISF15 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 15 + bit_size: 1 + enum: C2MISR_MISF15 +fieldset/CR: + description: HSEM Clear register. + fields: + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: KEY + description: Semaphore clear Key. + bit_offset: 16 + bit_size: 16 +fieldset/KEYR: + description: HSEM Interrupt clear register. + fields: + - name: KEY + description: Semaphore Clear Key. + bit_offset: 16 + bit_size: 16 +fieldset/R: + description: HSEM register HSEM_R%s HSEM_R31. + fields: + - name: PROCID + description: Semaphore ProcessID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: Lock indication. + bit_offset: 31 + bit_size: 1 + enum: R_LOCK +fieldset/RLR: + description: HSEM Read lock register. + fields: + - name: PROCID + description: Semaphore ProcessID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: COREID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: Lock indication. + bit_offset: 31 + bit_size: 1 + enum: RLR_LOCK +enum/C1ICR_ISC0: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC1: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC10: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC11: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC12: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC13: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC14: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC15: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC2: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC3: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC4: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC5: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC6: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC7: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC8: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1ICR_ISC9: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C1IER_ISE0: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE1: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE10: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE11: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE12: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE13: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE14: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE15: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE2: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE3: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE4: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE5: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE6: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE7: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE8: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1IER_ISE9: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C1ISR_ISF0: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF1: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF10: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF11: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF12: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF13: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF14: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF15: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF2: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF3: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF4: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF5: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF6: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF7: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF8: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1ISR_ISF9: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C1MISR_MISF0: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF1: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF10: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF11: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF12: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF13: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF14: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF15: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF2: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF3: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF4: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF5: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF6: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF7: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF8: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C1MISR_MISF9: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2ICR_ISC0: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC1: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC10: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC11: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC12: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC13: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC14: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC15: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC2: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC3: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC4: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC5: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC6: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC7: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC8: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2ICR_ISC9: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/C2IER_ISE0: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE1: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE10: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE11: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE12: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE13: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE14: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE15: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE2: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE3: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE4: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE5: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE6: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE7: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE8: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2IER_ISE9: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/C2ISR_ISF0: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF1: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF10: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF11: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF12: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF13: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF14: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF15: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF2: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF3: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF4: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF5: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF6: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF7: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF8: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2ISR_ISF9: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/C2MISR_MISF0: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF1: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF10: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF11: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF12: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF13: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF14: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF15: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF2: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF3: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF4: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF5: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF6: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF7: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF8: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/C2MISR_MISF9: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/RLR_LOCK: + bit_size: 1 + variants: + - name: Free + description: Semaphore is free. + value: 0 + - name: Locked + description: Semaphore is locked. + value: 1 +enum/R_LOCK: + bit_size: 1 + variants: + - name: Free + description: Semaphore is free. + value: 0 + - name: R_Locked_W_TryLock + description: Semaphore is locked. + value: 1 diff --git a/data/registers/hsem_v8.yaml b/data/registers/hsem_v8.yaml new file mode 100644 index 0000000..d22a66d --- /dev/null +++ b/data/registers/hsem_v8.yaml @@ -0,0 +1,1021 @@ +block/HSEM: + description: Hardware semaphore. + items: + - name: R + description: HSEM register HSEM_R%s HSEM_R31. + array: + len: 16 + stride: 4 + byte_offset: 0 + fieldset: R + - name: RLR + description: HSEM Read lock register. + array: + len: 16 + stride: 4 + byte_offset: 128 + access: Read + fieldset: RLR + - name: C1IER + description: HSEM Interrupt enable register. + byte_offset: 256 + fieldset: C1IER + - name: C1ICR + description: HSEM Interrupt clear register. + byte_offset: 260 + fieldset: C1ICR + - name: C1ISR + description: HSEM Interrupt status register. + byte_offset: 264 + access: Read + fieldset: C1ISR + - name: C1MISR + description: HSEM Masked interrupt status register. + byte_offset: 268 + access: Read + fieldset: C1MISR + - name: CR + description: HSEM Clear register. + byte_offset: 320 + access: Write + fieldset: CR + - name: KEYR + description: HSEM Interrupt clear register. + byte_offset: 324 + fieldset: KEYR +fieldset/C1ICR: + description: HSEM Interrupt clear register. + fields: + - name: ISC0 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 0 + bit_size: 1 + enum: ISC0 + - name: ISC1 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 1 + bit_size: 1 + enum: ISC1 + - name: ISC2 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 2 + bit_size: 1 + enum: ISC2 + - name: ISC3 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 3 + bit_size: 1 + enum: ISC3 + - name: ISC4 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 4 + bit_size: 1 + enum: ISC4 + - name: ISC5 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 5 + bit_size: 1 + enum: ISC5 + - name: ISC6 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 6 + bit_size: 1 + enum: ISC6 + - name: ISC7 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 7 + bit_size: 1 + enum: ISC7 + - name: ISC8 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 8 + bit_size: 1 + enum: ISC8 + - name: ISC9 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 9 + bit_size: 1 + enum: ISC9 + - name: ISC10 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 10 + bit_size: 1 + enum: ISC10 + - name: ISC11 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 11 + bit_size: 1 + enum: ISC11 + - name: ISC12 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 12 + bit_size: 1 + enum: ISC12 + - name: ISC13 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 13 + bit_size: 1 + enum: ISC13 + - name: ISC14 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 14 + bit_size: 1 + enum: ISC14 + - name: ISC15 + description: Interrupt(N) semaphore n clear bit. + bit_offset: 15 + bit_size: 1 + enum: ISC15 +fieldset/C1IER: + description: HSEM Interrupt enable register. + fields: + - name: ISE0 + description: Interrupt semaphore n enable bit. + bit_offset: 0 + bit_size: 1 + enum: ISE0 + - name: ISE1 + description: Interrupt semaphore n enable bit. + bit_offset: 1 + bit_size: 1 + enum: ISE1 + - name: ISE2 + description: Interrupt semaphore n enable bit. + bit_offset: 2 + bit_size: 1 + enum: ISE2 + - name: ISE3 + description: Interrupt semaphore n enable bit. + bit_offset: 3 + bit_size: 1 + enum: ISE3 + - name: ISE4 + description: Interrupt semaphore n enable bit. + bit_offset: 4 + bit_size: 1 + enum: ISE4 + - name: ISE5 + description: Interrupt semaphore n enable bit. + bit_offset: 5 + bit_size: 1 + enum: ISE5 + - name: ISE6 + description: Interrupt semaphore n enable bit. + bit_offset: 6 + bit_size: 1 + enum: ISE6 + - name: ISE7 + description: Interrupt semaphore n enable bit. + bit_offset: 7 + bit_size: 1 + enum: ISE7 + - name: ISE8 + description: Interrupt semaphore n enable bit. + bit_offset: 8 + bit_size: 1 + enum: ISE8 + - name: ISE9 + description: Interrupt semaphore n enable bit. + bit_offset: 9 + bit_size: 1 + enum: ISE9 + - name: ISE10 + description: Interrupt semaphore n enable bit. + bit_offset: 10 + bit_size: 1 + enum: ISE10 + - name: ISE11 + description: Interrupt semaphore n enable bit. + bit_offset: 11 + bit_size: 1 + enum: ISE11 + - name: ISE12 + description: Interrupt semaphore n enable bit. + bit_offset: 12 + bit_size: 1 + enum: ISE12 + - name: ISE13 + description: Interrupt semaphore n enable bit. + bit_offset: 13 + bit_size: 1 + enum: ISE13 + - name: ISE14 + description: Interrupt semaphore n enable bit. + bit_offset: 14 + bit_size: 1 + enum: ISE14 + - name: ISE15 + description: Interrupt semaphore n enable bit. + bit_offset: 15 + bit_size: 1 + enum: ISE15 +fieldset/C1ISR: + description: HSEM Interrupt status register. + fields: + - name: ISF0 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 0 + bit_size: 1 + enum: ISF0 + - name: ISF1 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 1 + bit_size: 1 + enum: ISF1 + - name: ISF2 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 2 + bit_size: 1 + enum: ISF2 + - name: ISF3 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 3 + bit_size: 1 + enum: ISF3 + - name: ISF4 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 4 + bit_size: 1 + enum: ISF4 + - name: ISF5 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 5 + bit_size: 1 + enum: ISF5 + - name: ISF6 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 6 + bit_size: 1 + enum: ISF6 + - name: ISF7 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 7 + bit_size: 1 + enum: ISF7 + - name: ISF8 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 8 + bit_size: 1 + enum: ISF8 + - name: ISF9 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 9 + bit_size: 1 + enum: ISF9 + - name: ISF10 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 10 + bit_size: 1 + enum: ISF10 + - name: ISF11 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 11 + bit_size: 1 + enum: ISF11 + - name: ISF12 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 12 + bit_size: 1 + enum: ISF12 + - name: ISF13 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 13 + bit_size: 1 + enum: ISF13 + - name: ISF14 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 14 + bit_size: 1 + enum: ISF14 + - name: ISF15 + description: Interrupt(N) semaphore n status bit before enable (mask). + bit_offset: 15 + bit_size: 1 + enum: ISF15 +fieldset/C1MISR: + description: HSEM Masked interrupt status register. + fields: + - name: MISF0 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 0 + bit_size: 1 + enum: MISF0 + - name: MISF1 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 1 + bit_size: 1 + enum: MISF1 + - name: MISF2 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 2 + bit_size: 1 + enum: MISF2 + - name: MISF3 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 3 + bit_size: 1 + enum: MISF3 + - name: MISF4 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 4 + bit_size: 1 + enum: MISF4 + - name: MISF5 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 5 + bit_size: 1 + enum: MISF5 + - name: MISF6 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 6 + bit_size: 1 + enum: MISF6 + - name: MISF7 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 7 + bit_size: 1 + enum: MISF7 + - name: MISF8 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 8 + bit_size: 1 + enum: MISF8 + - name: MISF9 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 9 + bit_size: 1 + enum: MISF9 + - name: MISF10 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 10 + bit_size: 1 + enum: MISF10 + - name: MISF11 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 11 + bit_size: 1 + enum: MISF11 + - name: MISF12 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 12 + bit_size: 1 + enum: MISF12 + - name: MISF13 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 13 + bit_size: 1 + enum: MISF13 + - name: MISF14 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 14 + bit_size: 1 + enum: MISF14 + - name: MISF15 + description: masked interrupt(N) semaphore n status bit after enable (mask). + bit_offset: 15 + bit_size: 1 + enum: MISF15 +fieldset/CR: + description: HSEM Clear register. + fields: + - name: COREID + description: MASTERID. + bit_offset: 8 + bit_size: 4 + - name: KEY + description: Semaphore clear Key. + bit_offset: 16 + bit_size: 16 +fieldset/KEYR: + description: HSEM Interrupt clear register. + fields: + - name: KEY + description: Semaphore Clear Key. + bit_offset: 16 + bit_size: 16 +fieldset/R: + description: HSEM register HSEM_R%s HSEM_R31. + fields: + - name: PROCID + description: Semaphore ProcessID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: Semaphore MASTERID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: Lock indication. + bit_offset: 31 + bit_size: 1 + enum: R_LOCK +fieldset/RLR: + description: HSEM Read lock register. + fields: + - name: PROCID + description: Semaphore ProcessID. + bit_offset: 0 + bit_size: 8 + - name: COREID + description: Semaphore MASTERID. + bit_offset: 8 + bit_size: 4 + - name: LOCK + description: Lock indication. + bit_offset: 31 + bit_size: 1 + enum: RLR_LOCK +enum/ISC0: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC1: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC10: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC11: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC12: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC13: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC14: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC15: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC2: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC3: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC4: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC5: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC6: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC7: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC8: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISC9: + bit_size: 1 + variants: + - name: NoEffect + description: Always reads 0. + value: 0 + - name: Clear + description: Interrupt semaphore x status ISFx and masked status MISFx cleared. + value: 1 +enum/ISE0: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE1: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE10: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE11: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE12: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE13: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE14: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE15: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE2: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE3: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE4: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE5: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE6: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE7: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE8: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISE9: + bit_size: 1 + variants: + - name: Disabled + description: Interrupt generation disabled. + value: 0 + - name: Enabled + description: Interrupt generation enabled. + value: 1 +enum/ISF0: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF1: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF10: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF11: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF12: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF13: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF14: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF15: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF2: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF3: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF4: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF5: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF6: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF7: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF8: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/ISF9: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending. + value: 0 + - name: Pending + description: Interrupt pending. + value: 1 +enum/MISF0: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF1: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF10: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF11: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF12: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF13: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF14: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF15: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF2: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF3: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF4: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF5: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF6: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF7: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF8: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/MISF9: + bit_size: 1 + variants: + - name: NotPending + description: No interrupt pending after masking. + value: 0 + - name: Pending + description: Interrupt pending after masking. + value: 1 +enum/RLR_LOCK: + bit_size: 1 + variants: + - name: Free + description: Semaphore is free. + value: 0 + - name: Locked + description: Semaphore is locked. + value: 1 +enum/R_LOCK: + bit_size: 1 + variants: + - name: Free + description: Semaphore is free. + value: 0 + - name: R_Locked_W_TryLock + description: Semaphore is locked. + value: 1 diff --git a/patch-desc.md b/patch-desc.md new file mode 100644 index 0000000..690d8f8 --- /dev/null +++ b/patch-desc.md @@ -0,0 +1,40 @@ + +# HSEM patch + +## hsem_v1 + +h747 + +## hsem_v2 + +h735 + +## hsem_v3 + +h7b3 +h753v +h753 +h743 +h743v + +## hsem_v4 + +mp157 +mp153 + +## hsem_v5 + +wb55 + +## hsem_v6 + +wba52 + +## hsem_v7 + +wl5x_cm0p +wl5x_cm4 + +## hsem_v8 + +wle5 diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index a64ec43..f1ff781 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -535,6 +535,17 @@ impl PeriMatcher { ("STM32F1.*:GPIO.*", ("gpio", "v1", "GPIO")), (".*:GPIO.*", ("gpio", "v2", "GPIO")), (".*:IPCC:v1_0", ("ipcc", "v1", "IPCC")), + ("STM32H747.*:HSEM:*", ("hsem", "v1", "HSEM")), + ("STM32H7b3.*:HSEM:*", ("hsem", "v3", "HSEM")), + ("STM32H753.*:HSEM:*", ("hsem", "v3", "HSEM")), + ("STM32H753v.*:HSEM:*", ("hsem", "v3", "HSEM")), + ("STM32H743.*:HSEM:*", ("hsem", "v3", "HSEM")), + ("STM32H743v.*:HSEM:*", ("hsem", "v3", "HSEM")), + ("STM32MP157.*:HSEM:*", ("hsem", "v4", "HSEM")), + ("STM32MP153.*:HSEM:*", ("hsem", "v4", "HSEM")), + ("STM32WA55.*:HSEM:*", ("hsem", "v6", "HSEM")), + ("STM32WL5.*:HSEM:*", ("hsem", "v7", "HSEM")), + ("STM32WLE.*:HSEM:*", ("hsem", "v8", "HSEM")), (".*:DMAMUX.*", ("dmamux", "v1", "DMAMUX")), (r".*:GPDMA\d?:.*", ("gpdma", "v1", "GPDMA")), (r".*:BDMA\d?:.*", ("bdma", "v1", "DMA")), From d1f1f4bfebb2334e28337c3806969249ec9aad67 Mon Sep 17 00:00:00 2001 From: Michael Zill Date: Thu, 4 Apr 2024 08:49:36 +0200 Subject: [PATCH 23/41] Arrayfied v1 and v8 - preliminary fix for missing HSEM in Cube XML --- .gitignore | 1 + data/registers/hsem_v1.yaml | 566 ++--------------------- data/registers/hsem_v8.yaml | 900 +----------------------------------- stm32-data-gen/src/chips.rs | 35 +- 4 files changed, 92 insertions(+), 1410 deletions(-) diff --git a/.gitignore b/.gitignore index d094026..980f11a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ /sources /tmp .idea/ +.DS_Store # transform*.yaml __pycache__ diff --git a/data/registers/hsem_v1.yaml b/data/registers/hsem_v1.yaml index fac9bae..ecb7662 100644 --- a/data/registers/hsem_v1.yaml +++ b/data/registers/hsem_v1.yaml @@ -1,5 +1,5 @@ block/HSEM: - description: HSEM. + description: Hardware semaphore (HSEM). items: - name: R description: HSEM register HSEM_R%s HSEM_R31. @@ -16,25 +16,44 @@ block/HSEM: byte_offset: 128 access: Read fieldset: RLR - - name: IER + - name: C1IER description: HSEM Interrupt enable register. byte_offset: 256 fieldset: IER - - name: ICR + - name: C1ICR description: HSEM Interrupt clear register. byte_offset: 260 access: Read fieldset: ICR - - name: ISR + - name: C1ISR description: HSEM Interrupt status register. byte_offset: 264 access: Read fieldset: ISR - - name: MISR + - name: C1MISR description: HSEM Masked interrupt status register. byte_offset: 268 access: Read fieldset: MISR + - name: C2IER + description: HSEM Interrupt enable register. + byte_offset: 272 + fieldset: IER + - name: C2ICR + description: HSEM Interrupt clear register. + byte_offset: 276 + access: Read + fieldset: ICR + - name: C2ISR + description: HSEM Interrupt status register. + byte_offset: 280 + access: Read + fieldset: ISR + - name: C2MISR + description: HSEM Masked interrupt status register. + byte_offset: 284 + access: Read + fieldset: MISR - name: CR description: HSEM Clear register. byte_offset: 320 @@ -46,8 +65,8 @@ block/HSEM: fieldset/CR: description: HSEM Clear register. fields: - - name: MASTERID - description: MasterID of semaphores to be cleared. + - name: COREID + description: COREID of semaphores to be cleared. bit_offset: 8 bit_size: 8 - name: KEY @@ -57,396 +76,34 @@ fieldset/CR: fieldset/ICR: description: HSEM Interrupt clear register. fields: - - name: ISEM0 - description: Interrupt(N) semaphore n clear bit. + - name: ISC + description: Interrupt semaphore x clear bit. bit_offset: 0 bit_size: 1 - - name: ISEM1 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 1 - bit_size: 1 - - name: ISEM2 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 2 - bit_size: 1 - - name: ISEM3 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 3 - bit_size: 1 - - name: ISEM4 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 4 - bit_size: 1 - - name: ISEM5 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 5 - bit_size: 1 - - name: ISEM6 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 6 - bit_size: 1 - - name: ISEM7 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 7 - bit_size: 1 - - name: ISEM8 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 8 - bit_size: 1 - - name: ISEM9 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 9 - bit_size: 1 - - name: ISEM10 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 10 - bit_size: 1 - - name: ISEM11 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 11 - bit_size: 1 - - name: ISEM12 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 12 - bit_size: 1 - - name: ISEM13 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 13 - bit_size: 1 - - name: ISEM14 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 14 - bit_size: 1 - - name: ISEM15 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 15 - bit_size: 1 - - name: ISEM16 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 16 - bit_size: 1 - - name: ISEM17 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 17 - bit_size: 1 - - name: ISEM18 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 18 - bit_size: 1 - - name: ISEM19 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 19 - bit_size: 1 - - name: ISEM20 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 20 - bit_size: 1 - - name: ISEM21 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 21 - bit_size: 1 - - name: ISEM22 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 22 - bit_size: 1 - - name: ISEM23 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 23 - bit_size: 1 - - name: ISEM24 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 24 - bit_size: 1 - - name: ISEM25 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 25 - bit_size: 1 - - name: ISEM26 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 26 - bit_size: 1 - - name: ISEM27 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 27 - bit_size: 1 - - name: ISEM28 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 28 - bit_size: 1 - - name: ISEM29 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 29 - bit_size: 1 - - name: ISEM30 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 30 - bit_size: 1 - - name: ISEM31 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 31 - bit_size: 1 + array: + len: 32 + stride: 1 fieldset/IER: description: HSEM Interrupt enable register. fields: - - name: ISEM0 - description: Interrupt semaphore n enable bit. + - name: ISE + description: Interrupt semaphore x enable bit. bit_offset: 0 bit_size: 1 - - name: ISEM1 - description: Interrupt semaphore n enable bit. - bit_offset: 1 - bit_size: 1 - - name: ISEM2 - description: Interrupt semaphore n enable bit. - bit_offset: 2 - bit_size: 1 - - name: ISEM3 - description: Interrupt semaphore n enable bit. - bit_offset: 3 - bit_size: 1 - - name: ISEM4 - description: Interrupt semaphore n enable bit. - bit_offset: 4 - bit_size: 1 - - name: ISEM5 - description: Interrupt semaphore n enable bit. - bit_offset: 5 - bit_size: 1 - - name: ISEM6 - description: Interrupt semaphore n enable bit. - bit_offset: 6 - bit_size: 1 - - name: ISEM7 - description: Interrupt semaphore n enable bit. - bit_offset: 7 - bit_size: 1 - - name: ISEM8 - description: Interrupt semaphore n enable bit. - bit_offset: 8 - bit_size: 1 - - name: ISEM9 - description: Interrupt semaphore n enable bit. - bit_offset: 9 - bit_size: 1 - - name: ISEM10 - description: Interrupt semaphore n enable bit. - bit_offset: 10 - bit_size: 1 - - name: ISEM11 - description: Interrupt semaphore n enable bit. - bit_offset: 11 - bit_size: 1 - - name: ISEM12 - description: Interrupt semaphore n enable bit. - bit_offset: 12 - bit_size: 1 - - name: ISEM13 - description: Interrupt semaphore n enable bit. - bit_offset: 13 - bit_size: 1 - - name: ISEM14 - description: Interrupt semaphore n enable bit. - bit_offset: 14 - bit_size: 1 - - name: ISEM15 - description: Interrupt semaphore n enable bit. - bit_offset: 15 - bit_size: 1 - - name: ISEM16 - description: Interrupt semaphore n enable bit. - bit_offset: 16 - bit_size: 1 - - name: ISEM17 - description: Interrupt semaphore n enable bit. - bit_offset: 17 - bit_size: 1 - - name: ISEM18 - description: Interrupt semaphore n enable bit. - bit_offset: 18 - bit_size: 1 - - name: ISEM19 - description: Interrupt semaphore n enable bit. - bit_offset: 19 - bit_size: 1 - - name: ISEM20 - description: Interrupt semaphore n enable bit. - bit_offset: 20 - bit_size: 1 - - name: ISEM21 - description: Interrupt semaphore n enable bit. - bit_offset: 21 - bit_size: 1 - - name: ISEM22 - description: Interrupt semaphore n enable bit. - bit_offset: 22 - bit_size: 1 - - name: ISEM23 - description: Interrupt semaphore n enable bit. - bit_offset: 23 - bit_size: 1 - - name: ISEM24 - description: Interrupt semaphore n enable bit. - bit_offset: 24 - bit_size: 1 - - name: ISEM25 - description: Interrupt semaphore n enable bit. - bit_offset: 25 - bit_size: 1 - - name: ISEM26 - description: Interrupt semaphore n enable bit. - bit_offset: 26 - bit_size: 1 - - name: ISEM27 - description: Interrupt semaphore n enable bit. - bit_offset: 27 - bit_size: 1 - - name: ISEM28 - description: Interrupt semaphore n enable bit. - bit_offset: 28 - bit_size: 1 - - name: ISEM29 - description: Interrupt semaphore n enable bit. - bit_offset: 29 - bit_size: 1 - - name: ISEM30 - description: Interrupt semaphore n enable bit. - bit_offset: 30 - bit_size: 1 - - name: ISEM31 - description: Interrupt(N) semaphore n enable bit. - bit_offset: 31 - bit_size: 1 + array: + len: 32 + stride: 1 fieldset/ISR: description: HSEM Interrupt status register. fields: - - name: ISEM0 - description: Interrupt(N) semaphore n status bit before enable (mask). + - name: ISF + description: Interrupt semaphore x status bit before enable (mask). bit_offset: 0 bit_size: 1 - - name: ISEM1 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 1 - bit_size: 1 - - name: ISEM2 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 2 - bit_size: 1 - - name: ISEM3 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 3 - bit_size: 1 - - name: ISEM4 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 4 - bit_size: 1 - - name: ISEM5 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 5 - bit_size: 1 - - name: ISEM6 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 6 - bit_size: 1 - - name: ISEM7 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 7 - bit_size: 1 - - name: ISEM8 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 8 - bit_size: 1 - - name: ISEM9 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 9 - bit_size: 1 - - name: ISEM10 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 10 - bit_size: 1 - - name: ISEM11 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 11 - bit_size: 1 - - name: ISEM12 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 12 - bit_size: 1 - - name: ISEM13 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 13 - bit_size: 1 - - name: ISEM14 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 14 - bit_size: 1 - - name: ISEM15 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 15 - bit_size: 1 - - name: ISEM16 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 16 - bit_size: 1 - - name: ISEM17 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 17 - bit_size: 1 - - name: ISEM18 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 18 - bit_size: 1 - - name: ISEM19 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 19 - bit_size: 1 - - name: ISEM20 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 20 - bit_size: 1 - - name: ISEM21 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 21 - bit_size: 1 - - name: ISEM22 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 22 - bit_size: 1 - - name: ISEM23 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 23 - bit_size: 1 - - name: ISEM24 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 24 - bit_size: 1 - - name: ISEM25 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 25 - bit_size: 1 - - name: ISEM26 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 26 - bit_size: 1 - - name: ISEM27 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 27 - bit_size: 1 - - name: ISEM28 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 28 - bit_size: 1 - - name: ISEM29 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 29 - bit_size: 1 - - name: ISEM30 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 30 - bit_size: 1 - - name: ISEM31 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 31 - bit_size: 1 + array: + len: 32 + stride: 1 + fieldset/KEYR: description: HSEM Interrupt clear register. fields: @@ -457,134 +114,13 @@ fieldset/KEYR: fieldset/MISR: description: HSEM Masked interrupt status register. fields: - - name: ISEM0 - description: masked interrupt(N) semaphore n status bit after enable (mask). + - name: MISF + description: masked interrupt semaphore x status bit after enable (mask). bit_offset: 0 bit_size: 1 - - name: ISEM1 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 1 - bit_size: 1 - - name: ISEM2 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 2 - bit_size: 1 - - name: ISEM3 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 3 - bit_size: 1 - - name: ISEM4 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 4 - bit_size: 1 - - name: ISEM5 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 5 - bit_size: 1 - - name: ISEM6 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 6 - bit_size: 1 - - name: ISEM7 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 7 - bit_size: 1 - - name: ISEM8 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 8 - bit_size: 1 - - name: ISEM9 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 9 - bit_size: 1 - - name: ISEM10 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 10 - bit_size: 1 - - name: ISEM11 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 11 - bit_size: 1 - - name: ISEM12 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 12 - bit_size: 1 - - name: ISEM13 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 13 - bit_size: 1 - - name: ISEM14 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 14 - bit_size: 1 - - name: ISEM15 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 15 - bit_size: 1 - - name: ISEM16 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 16 - bit_size: 1 - - name: ISEM17 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 17 - bit_size: 1 - - name: ISEM18 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 18 - bit_size: 1 - - name: ISEM19 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 19 - bit_size: 1 - - name: ISEM20 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 20 - bit_size: 1 - - name: ISEM21 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 21 - bit_size: 1 - - name: ISEM22 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 22 - bit_size: 1 - - name: ISEM23 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 23 - bit_size: 1 - - name: ISEM24 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 24 - bit_size: 1 - - name: ISEM25 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 25 - bit_size: 1 - - name: ISEM26 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 26 - bit_size: 1 - - name: ISEM27 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 27 - bit_size: 1 - - name: ISEM28 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 28 - bit_size: 1 - - name: ISEM29 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 29 - bit_size: 1 - - name: ISEM30 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 30 - bit_size: 1 - - name: ISEM31 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 31 - bit_size: 1 + array: + len: 32 + stride: 1 fieldset/R: description: HSEM register HSEM_R%s HSEM_R31. fields: @@ -592,8 +128,8 @@ fieldset/R: description: Semaphore ProcessID. bit_offset: 0 bit_size: 8 - - name: MASTERID - description: Semaphore MasterID. + - name: COREID + description: Semaphore COREID. bit_offset: 8 bit_size: 8 - name: LOCK @@ -607,8 +143,8 @@ fieldset/RLR: description: Semaphore ProcessID. bit_offset: 0 bit_size: 8 - - name: MASTERID - description: Semaphore MasterID. + - name: COREID + description: Semaphore COREID. bit_offset: 8 bit_size: 8 - name: LOCK diff --git a/data/registers/hsem_v8.yaml b/data/registers/hsem_v8.yaml index d22a66d..3505637 100644 --- a/data/registers/hsem_v8.yaml +++ b/data/registers/hsem_v8.yaml @@ -46,335 +46,43 @@ block/HSEM: fieldset/C1ICR: description: HSEM Interrupt clear register. fields: - - name: ISC0 + - name: ISC description: Interrupt(N) semaphore n clear bit. bit_offset: 0 bit_size: 1 - enum: ISC0 - - name: ISC1 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 1 - bit_size: 1 - enum: ISC1 - - name: ISC2 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 2 - bit_size: 1 - enum: ISC2 - - name: ISC3 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 3 - bit_size: 1 - enum: ISC3 - - name: ISC4 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 4 - bit_size: 1 - enum: ISC4 - - name: ISC5 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 5 - bit_size: 1 - enum: ISC5 - - name: ISC6 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 6 - bit_size: 1 - enum: ISC6 - - name: ISC7 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 7 - bit_size: 1 - enum: ISC7 - - name: ISC8 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 8 - bit_size: 1 - enum: ISC8 - - name: ISC9 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 9 - bit_size: 1 - enum: ISC9 - - name: ISC10 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 10 - bit_size: 1 - enum: ISC10 - - name: ISC11 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 11 - bit_size: 1 - enum: ISC11 - - name: ISC12 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 12 - bit_size: 1 - enum: ISC12 - - name: ISC13 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 13 - bit_size: 1 - enum: ISC13 - - name: ISC14 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 14 - bit_size: 1 - enum: ISC14 - - name: ISC15 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 15 - bit_size: 1 - enum: ISC15 + array: + len: 16 + stride: 1 fieldset/C1IER: description: HSEM Interrupt enable register. fields: - - name: ISE0 + - name: ISE description: Interrupt semaphore n enable bit. bit_offset: 0 bit_size: 1 - enum: ISE0 - - name: ISE1 - description: Interrupt semaphore n enable bit. - bit_offset: 1 - bit_size: 1 - enum: ISE1 - - name: ISE2 - description: Interrupt semaphore n enable bit. - bit_offset: 2 - bit_size: 1 - enum: ISE2 - - name: ISE3 - description: Interrupt semaphore n enable bit. - bit_offset: 3 - bit_size: 1 - enum: ISE3 - - name: ISE4 - description: Interrupt semaphore n enable bit. - bit_offset: 4 - bit_size: 1 - enum: ISE4 - - name: ISE5 - description: Interrupt semaphore n enable bit. - bit_offset: 5 - bit_size: 1 - enum: ISE5 - - name: ISE6 - description: Interrupt semaphore n enable bit. - bit_offset: 6 - bit_size: 1 - enum: ISE6 - - name: ISE7 - description: Interrupt semaphore n enable bit. - bit_offset: 7 - bit_size: 1 - enum: ISE7 - - name: ISE8 - description: Interrupt semaphore n enable bit. - bit_offset: 8 - bit_size: 1 - enum: ISE8 - - name: ISE9 - description: Interrupt semaphore n enable bit. - bit_offset: 9 - bit_size: 1 - enum: ISE9 - - name: ISE10 - description: Interrupt semaphore n enable bit. - bit_offset: 10 - bit_size: 1 - enum: ISE10 - - name: ISE11 - description: Interrupt semaphore n enable bit. - bit_offset: 11 - bit_size: 1 - enum: ISE11 - - name: ISE12 - description: Interrupt semaphore n enable bit. - bit_offset: 12 - bit_size: 1 - enum: ISE12 - - name: ISE13 - description: Interrupt semaphore n enable bit. - bit_offset: 13 - bit_size: 1 - enum: ISE13 - - name: ISE14 - description: Interrupt semaphore n enable bit. - bit_offset: 14 - bit_size: 1 - enum: ISE14 - - name: ISE15 - description: Interrupt semaphore n enable bit. - bit_offset: 15 - bit_size: 1 - enum: ISE15 + array: + len: 16 + stride: 1 fieldset/C1ISR: description: HSEM Interrupt status register. fields: - - name: ISF0 + - name: ISF description: Interrupt(N) semaphore n status bit before enable (mask). bit_offset: 0 bit_size: 1 - enum: ISF0 - - name: ISF1 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 1 - bit_size: 1 - enum: ISF1 - - name: ISF2 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 2 - bit_size: 1 - enum: ISF2 - - name: ISF3 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 3 - bit_size: 1 - enum: ISF3 - - name: ISF4 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 4 - bit_size: 1 - enum: ISF4 - - name: ISF5 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 5 - bit_size: 1 - enum: ISF5 - - name: ISF6 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 6 - bit_size: 1 - enum: ISF6 - - name: ISF7 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 7 - bit_size: 1 - enum: ISF7 - - name: ISF8 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 8 - bit_size: 1 - enum: ISF8 - - name: ISF9 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 9 - bit_size: 1 - enum: ISF9 - - name: ISF10 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 10 - bit_size: 1 - enum: ISF10 - - name: ISF11 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 11 - bit_size: 1 - enum: ISF11 - - name: ISF12 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 12 - bit_size: 1 - enum: ISF12 - - name: ISF13 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 13 - bit_size: 1 - enum: ISF13 - - name: ISF14 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 14 - bit_size: 1 - enum: ISF14 - - name: ISF15 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 15 - bit_size: 1 - enum: ISF15 + array: + len: 16 + stride: 1 fieldset/C1MISR: description: HSEM Masked interrupt status register. fields: - - name: MISF0 + - name: MISF description: masked interrupt(N) semaphore n status bit after enable (mask). bit_offset: 0 bit_size: 1 - enum: MISF0 - - name: MISF1 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 1 - bit_size: 1 - enum: MISF1 - - name: MISF2 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 2 - bit_size: 1 - enum: MISF2 - - name: MISF3 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 3 - bit_size: 1 - enum: MISF3 - - name: MISF4 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 4 - bit_size: 1 - enum: MISF4 - - name: MISF5 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 5 - bit_size: 1 - enum: MISF5 - - name: MISF6 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 6 - bit_size: 1 - enum: MISF6 - - name: MISF7 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 7 - bit_size: 1 - enum: MISF7 - - name: MISF8 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 8 - bit_size: 1 - enum: MISF8 - - name: MISF9 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 9 - bit_size: 1 - enum: MISF9 - - name: MISF10 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 10 - bit_size: 1 - enum: MISF10 - - name: MISF11 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 11 - bit_size: 1 - enum: MISF11 - - name: MISF12 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 12 - bit_size: 1 - enum: MISF12 - - name: MISF13 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 13 - bit_size: 1 - enum: MISF13 - - name: MISF14 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 14 - bit_size: 1 - enum: MISF14 - - name: MISF15 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 15 - bit_size: 1 - enum: MISF15 + array: + len: 16 + stride: 1 fieldset/CR: description: HSEM Clear register. fields: @@ -425,582 +133,6 @@ fieldset/RLR: bit_offset: 31 bit_size: 1 enum: RLR_LOCK -enum/ISC0: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC1: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC10: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC11: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC12: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC13: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC14: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC15: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC2: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC3: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC4: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC5: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC6: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC7: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC8: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISC9: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISE0: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE1: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE10: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE11: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE12: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE13: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE14: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE15: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE2: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE3: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE4: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE5: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE6: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE7: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE8: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISE9: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/ISF0: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF1: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF10: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF11: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF12: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF13: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF14: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF15: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF2: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF3: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF4: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF5: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF6: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF7: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF8: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/ISF9: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/MISF0: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF1: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF10: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF11: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF12: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF13: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF14: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF15: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF2: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF3: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF4: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF5: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF6: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF7: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF8: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/MISF9: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 enum/RLR_LOCK: bit_size: 1 variants: diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index f1ff781..c8535b0 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -1,6 +1,7 @@ use std::collections::hash_map::Entry; use std::collections::{HashMap, HashSet}; +use log::info; use stm32_data_serde::chip::core::peripheral::Pin; use super::*; @@ -535,17 +536,8 @@ impl PeriMatcher { ("STM32F1.*:GPIO.*", ("gpio", "v1", "GPIO")), (".*:GPIO.*", ("gpio", "v2", "GPIO")), (".*:IPCC:v1_0", ("ipcc", "v1", "IPCC")), - ("STM32H747.*:HSEM:*", ("hsem", "v1", "HSEM")), - ("STM32H7b3.*:HSEM:*", ("hsem", "v3", "HSEM")), - ("STM32H753.*:HSEM:*", ("hsem", "v3", "HSEM")), - ("STM32H753v.*:HSEM:*", ("hsem", "v3", "HSEM")), - ("STM32H743.*:HSEM:*", ("hsem", "v3", "HSEM")), - ("STM32H743v.*:HSEM:*", ("hsem", "v3", "HSEM")), - ("STM32MP157.*:HSEM:*", ("hsem", "v4", "HSEM")), - ("STM32MP153.*:HSEM:*", ("hsem", "v4", "HSEM")), - ("STM32WA55.*:HSEM:*", ("hsem", "v6", "HSEM")), - ("STM32WL5.*:HSEM:*", ("hsem", "v7", "HSEM")), - ("STM32WLE.*:HSEM:*", ("hsem", "v8", "HSEM")), + ("STM32H7(4|5)(5|7).*:HSEM:.*", ("hsem", "v1", "HSEM")), + ("STM32WLE.*:HSEM:.*", ("hsem", "v8", "HSEM")), (".*:DMAMUX.*", ("dmamux", "v1", "DMAMUX")), (r".*:GPDMA\d?:.*", ("gpdma", "v1", "GPDMA")), (r".*:BDMA\d?:.*", ("bdma", "v1", "DMA")), @@ -923,6 +915,24 @@ fn process_group( let chip_af = &group.ips.values().find(|x| x.name == "GPIO").unwrap().version; let chip_af = chip_af.strip_suffix("_gpio_v1_0").unwrap(); let chip_af = af.0.get(chip_af); + + // HSEM is missing in the Cube XML files for these chips - we need to add it manually + if chip_name.starts_with("STM32H745") + || chip_name.starts_with("STM32H747") + || chip_name.starts_with("STM32H755") + || chip_name.starts_with("STM32H757") + { + info!("Patching HSEM in IPS for {}", chip_name); + group.ips.insert( + "HSEM".to_string(), + xml::Ip { + name: "HSEM".to_string(), + version: "hsem1_v1_0_Cube".to_string(), + instance_name: "HSEM".to_string(), + }, + ); + } + let cores: Vec<_> = group .xml .cores @@ -1017,6 +1027,9 @@ fn process_core( entry.insert(format!("ADC3_COMMON:{}", ip.version.strip_suffix("_Cube").unwrap())); } } + if pname.starts_with("HSEM") && chip_name.starts_with("STM327") { + info!("******* HSEM *******") + } peri_kinds.insert(pname, pkind.to_string()); } const GHOST_PERIS: &[&str] = &[ From 6ba934d366a53443f65a3f4b601f617d29312ae5 Mon Sep 17 00:00:00 2001 From: Michael Zill Date: Thu, 4 Apr 2024 08:56:09 +0200 Subject: [PATCH 24/41] Remote debug code --- stm32-data-gen/src/chips.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index c8535b0..cc45372 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -1027,9 +1027,6 @@ fn process_core( entry.insert(format!("ADC3_COMMON:{}", ip.version.strip_suffix("_Cube").unwrap())); } } - if pname.starts_with("HSEM") && chip_name.starts_with("STM327") { - info!("******* HSEM *******") - } peri_kinds.insert(pname, pkind.to_string()); } const GHOST_PERIS: &[&str] = &[ From c0c35d80f9b66bb8b9903b0a63a130866daf325d Mon Sep 17 00:00:00 2001 From: Michael Zill Date: Thu, 4 Apr 2024 08:58:50 +0200 Subject: [PATCH 25/41] Remove temp patch doc --- patch-desc.md | 40 ---------------------------------------- 1 file changed, 40 deletions(-) delete mode 100644 patch-desc.md diff --git a/patch-desc.md b/patch-desc.md deleted file mode 100644 index 690d8f8..0000000 --- a/patch-desc.md +++ /dev/null @@ -1,40 +0,0 @@ - -# HSEM patch - -## hsem_v1 - -h747 - -## hsem_v2 - -h735 - -## hsem_v3 - -h7b3 -h753v -h753 -h743 -h743v - -## hsem_v4 - -mp157 -mp153 - -## hsem_v5 - -wb55 - -## hsem_v6 - -wba52 - -## hsem_v7 - -wl5x_cm0p -wl5x_cm4 - -## hsem_v8 - -wle5 From bde330f46ee477537a4641b91a80ee4235bedd90 Mon Sep 17 00:00:00 2001 From: Michael Zill Date: Thu, 4 Apr 2024 11:11:41 +0200 Subject: [PATCH 26/41] Fixed C1ICR, C2ICR read/write --- data/registers/hsem_v1.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/data/registers/hsem_v1.yaml b/data/registers/hsem_v1.yaml index ecb7662..f70ea08 100644 --- a/data/registers/hsem_v1.yaml +++ b/data/registers/hsem_v1.yaml @@ -23,7 +23,6 @@ block/HSEM: - name: C1ICR description: HSEM Interrupt clear register. byte_offset: 260 - access: Read fieldset: ICR - name: C1ISR description: HSEM Interrupt status register. @@ -42,7 +41,6 @@ block/HSEM: - name: C2ICR description: HSEM Interrupt clear register. byte_offset: 276 - access: Read fieldset: ICR - name: C2ISR description: HSEM Interrupt status register. From e029a55f7a0c824cbd40bbd678a22643310d8814 Mon Sep 17 00:00:00 2001 From: Michael Zill Date: Fri, 5 Apr 2024 15:08:46 +0200 Subject: [PATCH 27/41] Arrayfied v2, v3, v4 - removed enums, aligned yaml structure The following list shows the different hsem yaml versions and the coresponding chips. wba is on purpose not included at is complex and very different from the others which will also make the HSEM implementation in the HAL more complex. I leave this out for another PR. h747 wb55 h735 h7b3 h753v h753 h743 h743v wl5x_cm0p wl5x_cm4 wle5 --- data/registers/hsem_v1.yaml | 81 +- data/registers/hsem_v2.yaml | 584 +---------- data/registers/hsem_v3.yaml | 616 ++--------- data/registers/hsem_v4.yaml | 1469 ++------------------------ data/registers/hsem_v5.yaml | 246 ----- data/registers/hsem_v6.yaml | 1911 ---------------------------------- data/registers/hsem_v7.yaml | 1947 ----------------------------------- data/registers/hsem_v8.yaml | 153 --- stm32-data-gen/src/chips.rs | 26 +- 9 files changed, 248 insertions(+), 6785 deletions(-) delete mode 100644 data/registers/hsem_v5.yaml delete mode 100644 data/registers/hsem_v6.yaml delete mode 100644 data/registers/hsem_v7.yaml delete mode 100644 data/registers/hsem_v8.yaml diff --git a/data/registers/hsem_v1.yaml b/data/registers/hsem_v1.yaml index f70ea08..60edfdc 100644 --- a/data/registers/hsem_v1.yaml +++ b/data/registers/hsem_v1.yaml @@ -71,37 +71,6 @@ fieldset/CR: description: Semaphore clear Key. bit_offset: 16 bit_size: 16 -fieldset/ICR: - description: HSEM Interrupt clear register. - fields: - - name: ISC - description: Interrupt semaphore x clear bit. - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 -fieldset/IER: - description: HSEM Interrupt enable register. - fields: - - name: ISE - description: Interrupt semaphore x enable bit. - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 -fieldset/ISR: - description: HSEM Interrupt status register. - fields: - - name: ISF - description: Interrupt semaphore x status bit before enable (mask). - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 - fieldset/KEYR: description: HSEM Interrupt clear register. fields: @@ -109,16 +78,6 @@ fieldset/KEYR: description: Semaphore Clear Key. bit_offset: 16 bit_size: 16 -fieldset/MISR: - description: HSEM Masked interrupt status register. - fields: - - name: MISF - description: masked interrupt semaphore x status bit after enable (mask). - bit_offset: 0 - bit_size: 1 - array: - len: 32 - stride: 1 fieldset/R: description: HSEM register HSEM_R%s HSEM_R31. fields: @@ -149,3 +108,43 @@ fieldset/RLR: description: Lock indication. bit_offset: 31 bit_size: 1 +fieldset/IER: + description: HSEM Interrupt enable register. + fields: + - name: ISE + description: Interrupt semaphore x enable bit. + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 +fieldset/ICR: + description: HSEM Interrupt clear register. + fields: + - name: ISC + description: Interrupt semaphore x clear bit. + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 +fieldset/ISR: + description: HSEM Interrupt status register. + fields: + - name: ISF + description: Interrupt semaphore x status bit before enable (mask). + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 +fieldset/MISR: + description: HSEM Masked interrupt status register. + fields: + - name: MISF + description: masked interrupt semaphore x status bit after enable (mask). + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 diff --git a/data/registers/hsem_v2.yaml b/data/registers/hsem_v2.yaml index 5ffe998..e1d639a 100644 --- a/data/registers/hsem_v2.yaml +++ b/data/registers/hsem_v2.yaml @@ -16,25 +16,25 @@ block/HSEM: byte_offset: 128 access: Read fieldset: RLR - - name: C1IER + - name: IER description: HSEM Interrupt enable register. byte_offset: 256 - fieldset: C1IER - - name: C1ICR + fieldset: IER + - name: ICR description: HSEM Interrupt clear register. byte_offset: 260 access: Read - fieldset: C1ICR - - name: C1ISR + fieldset: ICR + - name: ISR description: HSEM Interrupt status register. byte_offset: 264 access: Read - fieldset: C1ISR - - name: C1MISR + fieldset: ISR + - name: MISR description: HSEM Masked interrupt status register. byte_offset: 268 access: Read - fieldset: C1MISR + fieldset: MISR - name: CR description: HSEM Clear register. byte_offset: 320 @@ -43,537 +43,13 @@ block/HSEM: description: HSEM Interrupt clear register. byte_offset: 324 fieldset: KEYR -fieldset/C1ICR: - description: HSEM Interrupt clear register. - fields: - - name: ISEM0 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 0 - bit_size: 1 - - name: ISEM1 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 1 - bit_size: 1 - - name: ISEM2 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 2 - bit_size: 1 - - name: ISEM3 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 3 - bit_size: 1 - - name: ISEM4 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 4 - bit_size: 1 - - name: ISEM5 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 5 - bit_size: 1 - - name: ISEM6 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 6 - bit_size: 1 - - name: ISEM7 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 7 - bit_size: 1 - - name: ISEM8 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 8 - bit_size: 1 - - name: ISEM9 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 9 - bit_size: 1 - - name: ISEM10 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 10 - bit_size: 1 - - name: ISEM11 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 11 - bit_size: 1 - - name: ISEM12 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 12 - bit_size: 1 - - name: ISEM13 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 13 - bit_size: 1 - - name: ISEM14 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 14 - bit_size: 1 - - name: ISEM15 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 15 - bit_size: 1 - - name: ISEM16 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 16 - bit_size: 1 - - name: ISEM17 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 17 - bit_size: 1 - - name: ISEM18 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 18 - bit_size: 1 - - name: ISEM19 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 19 - bit_size: 1 - - name: ISEM20 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 20 - bit_size: 1 - - name: ISEM21 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 21 - bit_size: 1 - - name: ISEM22 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 22 - bit_size: 1 - - name: ISEM23 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 23 - bit_size: 1 - - name: ISEM24 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 24 - bit_size: 1 - - name: ISEM25 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 25 - bit_size: 1 - - name: ISEM26 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 26 - bit_size: 1 - - name: ISEM27 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 27 - bit_size: 1 - - name: ISEM28 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 28 - bit_size: 1 - - name: ISEM29 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 29 - bit_size: 1 - - name: ISEM30 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 30 - bit_size: 1 - - name: ISEM31 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 31 - bit_size: 1 -fieldset/C1IER: - description: HSEM Interrupt enable register. - fields: - - name: ISEM0 - description: Interrupt semaphore n enable bit. - bit_offset: 0 - bit_size: 1 - - name: ISEM1 - description: Interrupt semaphore n enable bit. - bit_offset: 1 - bit_size: 1 - - name: ISEM2 - description: Interrupt semaphore n enable bit. - bit_offset: 2 - bit_size: 1 - - name: ISEM3 - description: Interrupt semaphore n enable bit. - bit_offset: 3 - bit_size: 1 - - name: ISEM4 - description: Interrupt semaphore n enable bit. - bit_offset: 4 - bit_size: 1 - - name: ISEM5 - description: Interrupt semaphore n enable bit. - bit_offset: 5 - bit_size: 1 - - name: ISEM6 - description: Interrupt semaphore n enable bit. - bit_offset: 6 - bit_size: 1 - - name: ISEM7 - description: Interrupt semaphore n enable bit. - bit_offset: 7 - bit_size: 1 - - name: ISEM8 - description: Interrupt semaphore n enable bit. - bit_offset: 8 - bit_size: 1 - - name: ISEM9 - description: Interrupt semaphore n enable bit. - bit_offset: 9 - bit_size: 1 - - name: ISEM10 - description: Interrupt semaphore n enable bit. - bit_offset: 10 - bit_size: 1 - - name: ISEM11 - description: Interrupt semaphore n enable bit. - bit_offset: 11 - bit_size: 1 - - name: ISEM12 - description: Interrupt semaphore n enable bit. - bit_offset: 12 - bit_size: 1 - - name: ISEM13 - description: Interrupt semaphore n enable bit. - bit_offset: 13 - bit_size: 1 - - name: ISEM14 - description: Interrupt semaphore n enable bit. - bit_offset: 14 - bit_size: 1 - - name: ISEM15 - description: Interrupt semaphore n enable bit. - bit_offset: 15 - bit_size: 1 - - name: ISEM16 - description: Interrupt semaphore n enable bit. - bit_offset: 16 - bit_size: 1 - - name: ISEM17 - description: Interrupt semaphore n enable bit. - bit_offset: 17 - bit_size: 1 - - name: ISEM18 - description: Interrupt semaphore n enable bit. - bit_offset: 18 - bit_size: 1 - - name: ISEM19 - description: Interrupt semaphore n enable bit. - bit_offset: 19 - bit_size: 1 - - name: ISEM20 - description: Interrupt semaphore n enable bit. - bit_offset: 20 - bit_size: 1 - - name: ISEM21 - description: Interrupt semaphore n enable bit. - bit_offset: 21 - bit_size: 1 - - name: ISEM22 - description: Interrupt semaphore n enable bit. - bit_offset: 22 - bit_size: 1 - - name: ISEM23 - description: Interrupt semaphore n enable bit. - bit_offset: 23 - bit_size: 1 - - name: ISEM24 - description: Interrupt semaphore n enable bit. - bit_offset: 24 - bit_size: 1 - - name: ISEM25 - description: Interrupt semaphore n enable bit. - bit_offset: 25 - bit_size: 1 - - name: ISEM26 - description: Interrupt semaphore n enable bit. - bit_offset: 26 - bit_size: 1 - - name: ISEM27 - description: Interrupt semaphore n enable bit. - bit_offset: 27 - bit_size: 1 - - name: ISEM28 - description: Interrupt semaphore n enable bit. - bit_offset: 28 - bit_size: 1 - - name: ISEM29 - description: Interrupt semaphore n enable bit. - bit_offset: 29 - bit_size: 1 - - name: ISEM30 - description: Interrupt semaphore n enable bit. - bit_offset: 30 - bit_size: 1 - - name: ISEM31 - description: Interrupt(N) semaphore n enable bit. - bit_offset: 31 - bit_size: 1 -fieldset/C1ISR: - description: HSEM Interrupt status register. - fields: - - name: ISEM0 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 0 - bit_size: 1 - - name: ISEM1 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 1 - bit_size: 1 - - name: ISEM2 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 2 - bit_size: 1 - - name: ISEM3 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 3 - bit_size: 1 - - name: ISEM4 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 4 - bit_size: 1 - - name: ISEM5 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 5 - bit_size: 1 - - name: ISEM6 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 6 - bit_size: 1 - - name: ISEM7 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 7 - bit_size: 1 - - name: ISEM8 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 8 - bit_size: 1 - - name: ISEM9 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 9 - bit_size: 1 - - name: ISEM10 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 10 - bit_size: 1 - - name: ISEM11 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 11 - bit_size: 1 - - name: ISEM12 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 12 - bit_size: 1 - - name: ISEM13 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 13 - bit_size: 1 - - name: ISEM14 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 14 - bit_size: 1 - - name: ISEM15 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 15 - bit_size: 1 - - name: ISEM16 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 16 - bit_size: 1 - - name: ISEM17 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 17 - bit_size: 1 - - name: ISEM18 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 18 - bit_size: 1 - - name: ISEM19 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 19 - bit_size: 1 - - name: ISEM20 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 20 - bit_size: 1 - - name: ISEM21 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 21 - bit_size: 1 - - name: ISEM22 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 22 - bit_size: 1 - - name: ISEM23 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 23 - bit_size: 1 - - name: ISEM24 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 24 - bit_size: 1 - - name: ISEM25 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 25 - bit_size: 1 - - name: ISEM26 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 26 - bit_size: 1 - - name: ISEM27 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 27 - bit_size: 1 - - name: ISEM28 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 28 - bit_size: 1 - - name: ISEM29 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 29 - bit_size: 1 - - name: ISEM30 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 30 - bit_size: 1 - - name: ISEM31 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 31 - bit_size: 1 -fieldset/C1MISR: - description: HSEM Masked interrupt status register. - fields: - - name: ISEM0 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 0 - bit_size: 1 - - name: ISEM1 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 1 - bit_size: 1 - - name: ISEM2 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 2 - bit_size: 1 - - name: ISEM3 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 3 - bit_size: 1 - - name: ISEM4 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 4 - bit_size: 1 - - name: ISEM5 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 5 - bit_size: 1 - - name: ISEM6 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 6 - bit_size: 1 - - name: ISEM7 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 7 - bit_size: 1 - - name: ISEM8 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 8 - bit_size: 1 - - name: ISEM9 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 9 - bit_size: 1 - - name: ISEM10 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 10 - bit_size: 1 - - name: ISEM11 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 11 - bit_size: 1 - - name: ISEM12 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 12 - bit_size: 1 - - name: ISEM13 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 13 - bit_size: 1 - - name: ISEM14 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 14 - bit_size: 1 - - name: ISEM15 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 15 - bit_size: 1 - - name: ISEM16 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 16 - bit_size: 1 - - name: ISEM17 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 17 - bit_size: 1 - - name: ISEM18 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 18 - bit_size: 1 - - name: ISEM19 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 19 - bit_size: 1 - - name: ISEM20 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 20 - bit_size: 1 - - name: ISEM21 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 21 - bit_size: 1 - - name: ISEM22 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 22 - bit_size: 1 - - name: ISEM23 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 23 - bit_size: 1 - - name: ISEM24 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 24 - bit_size: 1 - - name: ISEM25 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 25 - bit_size: 1 - - name: ISEM26 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 26 - bit_size: 1 - - name: ISEM27 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 27 - bit_size: 1 - - name: ISEM28 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 28 - bit_size: 1 - - name: ISEM29 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 29 - bit_size: 1 - - name: ISEM30 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 30 - bit_size: 1 - - name: ISEM31 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 31 - bit_size: 1 fieldset/CR: description: HSEM Clear register. fields: - - name: COREID + - name: MASTERID description: MasterID of semaphores to be cleared. bit_offset: 8 - bit_size: 4 + bit_size: 8 - name: KEY description: Semaphore clear Key. bit_offset: 16 @@ -615,3 +91,43 @@ fieldset/RLR: description: Lock indication. bit_offset: 31 bit_size: 1 +fieldset/IER: + description: HSEM Interrupt enable register. + fields: + - name: ISE + description: Interrupt semaphore x enable bit. + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 +fieldset/ICR: + description: HSEM Interrupt clear register. + fields: + - name: ISC + description: Interrupt semaphore x clear bit. + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 +fieldset/ISR: + description: HSEM Interrupt status register. + fields: + - name: ISF + description: Interrupt semaphore x status bit before enable (mask). + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 +fieldset/MISR: + description: HSEM Masked interrupt status register. + fields: + - name: MISF + description: masked interrupt semaphore x status bit after enable (mask). + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 diff --git a/data/registers/hsem_v3.yaml b/data/registers/hsem_v3.yaml index fac9bae..8410c72 100644 --- a/data/registers/hsem_v3.yaml +++ b/data/registers/hsem_v3.yaml @@ -1,43 +1,61 @@ block/HSEM: - description: HSEM. + description: Hardware semaphore. items: - name: R description: HSEM register HSEM_R%s HSEM_R31. array: - len: 32 + len: 16 stride: 4 byte_offset: 0 fieldset: R - name: RLR description: HSEM Read lock register. array: - len: 32 + len: 16 stride: 4 byte_offset: 128 access: Read fieldset: RLR - - name: IER + - name: C1IER description: HSEM Interrupt enable register. byte_offset: 256 fieldset: IER - - name: ICR + - name: C1ICR description: HSEM Interrupt clear register. byte_offset: 260 - access: Read fieldset: ICR - - name: ISR + - name: C1ISR description: HSEM Interrupt status register. byte_offset: 264 access: Read fieldset: ISR - - name: MISR + - name: C1MISR description: HSEM Masked interrupt status register. byte_offset: 268 access: Read fieldset: MISR + - name: C2IER + description: HSEM Interrupt enable register. + byte_offset: 272 + fieldset: IER + - name: C2ICR + description: HSEM Interrupt clear register. + byte_offset: 276 + fieldset: ICR + - name: C2ISR + description: HSEM Interrupt status register. + byte_offset: 280 + access: Read + fieldset: ISR + - name: C2MISR + description: HSEM Masked interrupt status register. + byte_offset: 284 + access: Read + fieldset: MISR - name: CR description: HSEM Clear register. byte_offset: 320 + access: Write fieldset: CR - name: KEYR description: HSEM Interrupt clear register. @@ -46,407 +64,14 @@ block/HSEM: fieldset/CR: description: HSEM Clear register. fields: - - name: MASTERID - description: MasterID of semaphores to be cleared. + - name: COREID + description: COREID. bit_offset: 8 - bit_size: 8 + bit_size: 4 - name: KEY description: Semaphore clear Key. bit_offset: 16 bit_size: 16 -fieldset/ICR: - description: HSEM Interrupt clear register. - fields: - - name: ISEM0 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 0 - bit_size: 1 - - name: ISEM1 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 1 - bit_size: 1 - - name: ISEM2 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 2 - bit_size: 1 - - name: ISEM3 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 3 - bit_size: 1 - - name: ISEM4 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 4 - bit_size: 1 - - name: ISEM5 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 5 - bit_size: 1 - - name: ISEM6 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 6 - bit_size: 1 - - name: ISEM7 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 7 - bit_size: 1 - - name: ISEM8 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 8 - bit_size: 1 - - name: ISEM9 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 9 - bit_size: 1 - - name: ISEM10 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 10 - bit_size: 1 - - name: ISEM11 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 11 - bit_size: 1 - - name: ISEM12 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 12 - bit_size: 1 - - name: ISEM13 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 13 - bit_size: 1 - - name: ISEM14 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 14 - bit_size: 1 - - name: ISEM15 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 15 - bit_size: 1 - - name: ISEM16 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 16 - bit_size: 1 - - name: ISEM17 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 17 - bit_size: 1 - - name: ISEM18 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 18 - bit_size: 1 - - name: ISEM19 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 19 - bit_size: 1 - - name: ISEM20 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 20 - bit_size: 1 - - name: ISEM21 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 21 - bit_size: 1 - - name: ISEM22 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 22 - bit_size: 1 - - name: ISEM23 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 23 - bit_size: 1 - - name: ISEM24 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 24 - bit_size: 1 - - name: ISEM25 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 25 - bit_size: 1 - - name: ISEM26 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 26 - bit_size: 1 - - name: ISEM27 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 27 - bit_size: 1 - - name: ISEM28 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 28 - bit_size: 1 - - name: ISEM29 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 29 - bit_size: 1 - - name: ISEM30 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 30 - bit_size: 1 - - name: ISEM31 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 31 - bit_size: 1 -fieldset/IER: - description: HSEM Interrupt enable register. - fields: - - name: ISEM0 - description: Interrupt semaphore n enable bit. - bit_offset: 0 - bit_size: 1 - - name: ISEM1 - description: Interrupt semaphore n enable bit. - bit_offset: 1 - bit_size: 1 - - name: ISEM2 - description: Interrupt semaphore n enable bit. - bit_offset: 2 - bit_size: 1 - - name: ISEM3 - description: Interrupt semaphore n enable bit. - bit_offset: 3 - bit_size: 1 - - name: ISEM4 - description: Interrupt semaphore n enable bit. - bit_offset: 4 - bit_size: 1 - - name: ISEM5 - description: Interrupt semaphore n enable bit. - bit_offset: 5 - bit_size: 1 - - name: ISEM6 - description: Interrupt semaphore n enable bit. - bit_offset: 6 - bit_size: 1 - - name: ISEM7 - description: Interrupt semaphore n enable bit. - bit_offset: 7 - bit_size: 1 - - name: ISEM8 - description: Interrupt semaphore n enable bit. - bit_offset: 8 - bit_size: 1 - - name: ISEM9 - description: Interrupt semaphore n enable bit. - bit_offset: 9 - bit_size: 1 - - name: ISEM10 - description: Interrupt semaphore n enable bit. - bit_offset: 10 - bit_size: 1 - - name: ISEM11 - description: Interrupt semaphore n enable bit. - bit_offset: 11 - bit_size: 1 - - name: ISEM12 - description: Interrupt semaphore n enable bit. - bit_offset: 12 - bit_size: 1 - - name: ISEM13 - description: Interrupt semaphore n enable bit. - bit_offset: 13 - bit_size: 1 - - name: ISEM14 - description: Interrupt semaphore n enable bit. - bit_offset: 14 - bit_size: 1 - - name: ISEM15 - description: Interrupt semaphore n enable bit. - bit_offset: 15 - bit_size: 1 - - name: ISEM16 - description: Interrupt semaphore n enable bit. - bit_offset: 16 - bit_size: 1 - - name: ISEM17 - description: Interrupt semaphore n enable bit. - bit_offset: 17 - bit_size: 1 - - name: ISEM18 - description: Interrupt semaphore n enable bit. - bit_offset: 18 - bit_size: 1 - - name: ISEM19 - description: Interrupt semaphore n enable bit. - bit_offset: 19 - bit_size: 1 - - name: ISEM20 - description: Interrupt semaphore n enable bit. - bit_offset: 20 - bit_size: 1 - - name: ISEM21 - description: Interrupt semaphore n enable bit. - bit_offset: 21 - bit_size: 1 - - name: ISEM22 - description: Interrupt semaphore n enable bit. - bit_offset: 22 - bit_size: 1 - - name: ISEM23 - description: Interrupt semaphore n enable bit. - bit_offset: 23 - bit_size: 1 - - name: ISEM24 - description: Interrupt semaphore n enable bit. - bit_offset: 24 - bit_size: 1 - - name: ISEM25 - description: Interrupt semaphore n enable bit. - bit_offset: 25 - bit_size: 1 - - name: ISEM26 - description: Interrupt semaphore n enable bit. - bit_offset: 26 - bit_size: 1 - - name: ISEM27 - description: Interrupt semaphore n enable bit. - bit_offset: 27 - bit_size: 1 - - name: ISEM28 - description: Interrupt semaphore n enable bit. - bit_offset: 28 - bit_size: 1 - - name: ISEM29 - description: Interrupt semaphore n enable bit. - bit_offset: 29 - bit_size: 1 - - name: ISEM30 - description: Interrupt semaphore n enable bit. - bit_offset: 30 - bit_size: 1 - - name: ISEM31 - description: Interrupt(N) semaphore n enable bit. - bit_offset: 31 - bit_size: 1 -fieldset/ISR: - description: HSEM Interrupt status register. - fields: - - name: ISEM0 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 0 - bit_size: 1 - - name: ISEM1 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 1 - bit_size: 1 - - name: ISEM2 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 2 - bit_size: 1 - - name: ISEM3 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 3 - bit_size: 1 - - name: ISEM4 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 4 - bit_size: 1 - - name: ISEM5 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 5 - bit_size: 1 - - name: ISEM6 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 6 - bit_size: 1 - - name: ISEM7 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 7 - bit_size: 1 - - name: ISEM8 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 8 - bit_size: 1 - - name: ISEM9 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 9 - bit_size: 1 - - name: ISEM10 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 10 - bit_size: 1 - - name: ISEM11 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 11 - bit_size: 1 - - name: ISEM12 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 12 - bit_size: 1 - - name: ISEM13 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 13 - bit_size: 1 - - name: ISEM14 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 14 - bit_size: 1 - - name: ISEM15 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 15 - bit_size: 1 - - name: ISEM16 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 16 - bit_size: 1 - - name: ISEM17 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 17 - bit_size: 1 - - name: ISEM18 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 18 - bit_size: 1 - - name: ISEM19 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 19 - bit_size: 1 - - name: ISEM20 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 20 - bit_size: 1 - - name: ISEM21 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 21 - bit_size: 1 - - name: ISEM22 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 22 - bit_size: 1 - - name: ISEM23 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 23 - bit_size: 1 - - name: ISEM24 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 24 - bit_size: 1 - - name: ISEM25 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 25 - bit_size: 1 - - name: ISEM26 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 26 - bit_size: 1 - - name: ISEM27 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 27 - bit_size: 1 - - name: ISEM28 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 28 - bit_size: 1 - - name: ISEM29 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 29 - bit_size: 1 - - name: ISEM30 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 30 - bit_size: 1 - - name: ISEM31 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 31 - bit_size: 1 fieldset/KEYR: description: HSEM Interrupt clear register. fields: @@ -454,137 +79,6 @@ fieldset/KEYR: description: Semaphore Clear Key. bit_offset: 16 bit_size: 16 -fieldset/MISR: - description: HSEM Masked interrupt status register. - fields: - - name: ISEM0 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 0 - bit_size: 1 - - name: ISEM1 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 1 - bit_size: 1 - - name: ISEM2 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 2 - bit_size: 1 - - name: ISEM3 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 3 - bit_size: 1 - - name: ISEM4 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 4 - bit_size: 1 - - name: ISEM5 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 5 - bit_size: 1 - - name: ISEM6 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 6 - bit_size: 1 - - name: ISEM7 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 7 - bit_size: 1 - - name: ISEM8 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 8 - bit_size: 1 - - name: ISEM9 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 9 - bit_size: 1 - - name: ISEM10 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 10 - bit_size: 1 - - name: ISEM11 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 11 - bit_size: 1 - - name: ISEM12 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 12 - bit_size: 1 - - name: ISEM13 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 13 - bit_size: 1 - - name: ISEM14 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 14 - bit_size: 1 - - name: ISEM15 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 15 - bit_size: 1 - - name: ISEM16 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 16 - bit_size: 1 - - name: ISEM17 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 17 - bit_size: 1 - - name: ISEM18 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 18 - bit_size: 1 - - name: ISEM19 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 19 - bit_size: 1 - - name: ISEM20 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 20 - bit_size: 1 - - name: ISEM21 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 21 - bit_size: 1 - - name: ISEM22 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 22 - bit_size: 1 - - name: ISEM23 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 23 - bit_size: 1 - - name: ISEM24 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 24 - bit_size: 1 - - name: ISEM25 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 25 - bit_size: 1 - - name: ISEM26 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 26 - bit_size: 1 - - name: ISEM27 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 27 - bit_size: 1 - - name: ISEM28 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 28 - bit_size: 1 - - name: ISEM29 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 29 - bit_size: 1 - - name: ISEM30 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 30 - bit_size: 1 - - name: ISEM31 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 31 - bit_size: 1 fieldset/R: description: HSEM register HSEM_R%s HSEM_R31. fields: @@ -592,10 +86,10 @@ fieldset/R: description: Semaphore ProcessID. bit_offset: 0 bit_size: 8 - - name: MASTERID - description: Semaphore MasterID. + - name: COREID + description: COREID. bit_offset: 8 - bit_size: 8 + bit_size: 4 - name: LOCK description: Lock indication. bit_offset: 31 @@ -607,11 +101,51 @@ fieldset/RLR: description: Semaphore ProcessID. bit_offset: 0 bit_size: 8 - - name: MASTERID - description: Semaphore MasterID. + - name: COREID + description: COREID. bit_offset: 8 - bit_size: 8 + bit_size: 4 - name: LOCK description: Lock indication. bit_offset: 31 bit_size: 1 +fieldset/IER: + description: HSEM Interrupt enable register. + fields: + - name: ISE + description: Interrupt semaphore x enable bit. + bit_offset: 0 + bit_size: 1 + array: + len: 16 + stride: 1 +fieldset/ICR: + description: HSEM Interrupt clear register. + fields: + - name: ISC + description: Interrupt semaphore x clear bit. + bit_offset: 0 + bit_size: 1 + array: + len: 16 + stride: 1 +fieldset/ISR: + description: HSEM Interrupt status register. + fields: + - name: ISF + description: Interrupt semaphore x status bit before enable (mask). + bit_offset: 0 + bit_size: 1 + array: + len: 16 + stride: 1 +fieldset/MISR: + description: HSEM Masked interrupt status register. + fields: + - name: MISF + description: masked interrupt semaphore x status bit after enable (mask). + bit_offset: 0 + bit_size: 1 + array: + len: 16 + stride: 1 diff --git a/data/registers/hsem_v4.yaml b/data/registers/hsem_v4.yaml index 0d03fdf..31a63de 100644 --- a/data/registers/hsem_v4.yaml +++ b/data/registers/hsem_v4.yaml @@ -1,1450 +1,133 @@ block/HSEM: - description: HSEM. + description: Hardware semaphore. items: - - name: HSEM_R0 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + - name: R + description: HSEM register HSEM_R%s HSEM_R31. + array: + len: 16 + stride: 4 byte_offset: 0 - fieldset: HSEM_R0 - - name: HSEM_R1 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 4 - fieldset: HSEM_R1 - - name: HSEM_R2 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 8 - fieldset: HSEM_R2 - - name: HSEM_R3 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 12 - fieldset: HSEM_R3 - - name: HSEM_R4 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 16 - fieldset: HSEM_R4 - - name: HSEM_R5 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 20 - fieldset: HSEM_R5 - - name: HSEM_R6 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 24 - fieldset: HSEM_R6 - - name: HSEM_R7 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 28 - fieldset: HSEM_R7 - - name: HSEM_R8 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 32 - fieldset: HSEM_R8 - - name: HSEM_R9 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 36 - fieldset: HSEM_R9 - - name: HSEM_R10 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 40 - fieldset: HSEM_R10 - - name: HSEM_R11 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 44 - fieldset: HSEM_R11 - - name: HSEM_R12 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 48 - fieldset: HSEM_R12 - - name: HSEM_R13 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 52 - fieldset: HSEM_R13 - - name: HSEM_R14 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 56 - fieldset: HSEM_R14 - - name: HSEM_R15 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 60 - fieldset: HSEM_R15 - - name: HSEM_R16 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 64 - fieldset: HSEM_R16 - - name: HSEM_R17 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 68 - fieldset: HSEM_R17 - - name: HSEM_R18 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 72 - fieldset: HSEM_R18 - - name: HSEM_R19 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 76 - fieldset: HSEM_R19 - - name: HSEM_R20 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 80 - fieldset: HSEM_R20 - - name: HSEM_R21 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 84 - fieldset: HSEM_R21 - - name: HSEM_R22 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 88 - fieldset: HSEM_R22 - - name: HSEM_R23 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 92 - fieldset: HSEM_R23 - - name: HSEM_R24 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 96 - fieldset: HSEM_R24 - - name: HSEM_R25 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 100 - fieldset: HSEM_R25 - - name: HSEM_R26 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 104 - fieldset: HSEM_R26 - - name: HSEM_R27 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 108 - fieldset: HSEM_R27 - - name: HSEM_R28 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 112 - fieldset: HSEM_R28 - - name: HSEM_R29 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 116 - fieldset: HSEM_R29 - - name: HSEM_R30 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 120 - fieldset: HSEM_R30 - - name: HSEM_R31 - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 124 - fieldset: HSEM_R31 - - name: HSEM_RLR0 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. + fieldset: R + - name: RLR + description: HSEM Read lock register. + array: + len: 16 + stride: 4 byte_offset: 128 access: Read - fieldset: HSEM_RLR0 - - name: HSEM_RLR1 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 132 - access: Read - fieldset: HSEM_RLR1 - - name: HSEM_RLR2 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 136 - access: Read - fieldset: HSEM_RLR2 - - name: HSEM_RLR3 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 140 - access: Read - fieldset: HSEM_RLR3 - - name: HSEM_RLR4 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 144 - access: Read - fieldset: HSEM_RLR4 - - name: HSEM_RLR5 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 148 - access: Read - fieldset: HSEM_RLR5 - - name: HSEM_RLR6 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 152 - access: Read - fieldset: HSEM_RLR6 - - name: HSEM_RLR7 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 156 - access: Read - fieldset: HSEM_RLR7 - - name: HSEM_RLR8 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 160 - access: Read - fieldset: HSEM_RLR8 - - name: HSEM_RLR9 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 164 - access: Read - fieldset: HSEM_RLR9 - - name: HSEM_RLR10 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 168 - access: Read - fieldset: HSEM_RLR10 - - name: HSEM_RLR11 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 172 - access: Read - fieldset: HSEM_RLR11 - - name: HSEM_RLR12 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 176 - access: Read - fieldset: HSEM_RLR12 - - name: HSEM_RLR13 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 180 - access: Read - fieldset: HSEM_RLR13 - - name: HSEM_RLR14 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 184 - access: Read - fieldset: HSEM_RLR14 - - name: HSEM_RLR15 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 188 - access: Read - fieldset: HSEM_RLR15 - - name: HSEM_RLR16 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 192 - access: Read - fieldset: HSEM_RLR16 - - name: HSEM_RLR17 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 196 - access: Read - fieldset: HSEM_RLR17 - - name: HSEM_RLR18 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 200 - access: Read - fieldset: HSEM_RLR18 - - name: HSEM_RLR19 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 204 - access: Read - fieldset: HSEM_RLR19 - - name: HSEM_RLR20 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 208 - access: Read - fieldset: HSEM_RLR20 - - name: HSEM_RLR21 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 212 - access: Read - fieldset: HSEM_RLR21 - - name: HSEM_RLR22 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 216 - access: Read - fieldset: HSEM_RLR22 - - name: HSEM_RLR23 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 220 - access: Read - fieldset: HSEM_RLR23 - - name: HSEM_RLR24 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 224 - access: Read - fieldset: HSEM_RLR24 - - name: HSEM_RLR25 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 228 - access: Read - fieldset: HSEM_RLR25 - - name: HSEM_RLR26 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 232 - access: Read - fieldset: HSEM_RLR26 - - name: HSEM_RLR27 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 236 - access: Read - fieldset: HSEM_RLR27 - - name: HSEM_RLR28 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 240 - access: Read - fieldset: HSEM_RLR28 - - name: HSEM_RLR29 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 244 - access: Read - fieldset: HSEM_RLR29 - - name: HSEM_RLR30 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 248 - access: Read - fieldset: HSEM_RLR30 - - name: HSEM_RLR31 - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - byte_offset: 252 - access: Read - fieldset: HSEM_RLR31 - - name: HSEM_C1IER - description: HSEM i1terrupt enable register. + fieldset: RLR + - name: C1IER + description: HSEM Interrupt enable register. byte_offset: 256 - fieldset: HSEM_C1IER - - name: HSEM_C1ICR - description: HSEM i1terrupt clear register. + fieldset: C1IER + - name: C1ICR + description: HSEM Interrupt clear register. byte_offset: 260 - fieldset: HSEM_C1ICR - - name: HSEM_C1ISR - description: HSEM i1terrupt status register. + fieldset: C1ICR + - name: C1ISR + description: HSEM Interrupt status register. byte_offset: 264 access: Read - fieldset: HSEM_C1ISR - - name: HSEM_C1MISR - description: HSEM i1terrupt status register. + fieldset: C1ISR + - name: C1MISR + description: HSEM Masked interrupt status register. byte_offset: 268 access: Read - fieldset: HSEM_C1MISR - - name: HSEM_C2IER - description: HSEM i2terrupt enable register. - byte_offset: 272 - fieldset: HSEM_C2IER - - name: HSEM_C2ICR - description: HSEM i2terrupt clear register. - byte_offset: 276 - fieldset: HSEM_C2ICR - - name: HSEM_C2ISR - description: HSEM i2terrupt status register. - byte_offset: 280 - access: Read - fieldset: HSEM_C2ISR - - name: HSEM_C2MISR - description: HSEM i2terrupt status register. - byte_offset: 284 - access: Read - fieldset: HSEM_C2MISR - - name: HSEM_CR - description: Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + fieldset: C1MISR + - name: CR + description: HSEM Clear register. byte_offset: 320 access: Write - fieldset: HSEM_CR - - name: HSEM_KEYR - description: HSEM interrupt clear register. + fieldset: CR + - name: KEYR + description: HSEM Interrupt clear register. byte_offset: 324 - fieldset: HSEM_KEYR - - name: HSEM_HWCFGR2 - description: HSEM hardware configuration register 2. - byte_offset: 1004 - access: Read - fieldset: HSEM_HWCFGR2 - - name: HSEM_HWCFGR1 - description: HSEM hardware configuration register 1. - byte_offset: 1008 - access: Read - fieldset: HSEM_HWCFGR1 - - name: HSEM_VERR - description: HSEM IP version register. - byte_offset: 1012 - access: Read - fieldset: HSEM_VERR - - name: HSEM_IPIDR - description: HSEM IP identification register. - byte_offset: 1016 - access: Read - fieldset: HSEM_IPIDR - - name: HSEM_SIDR - description: HSEM size identification register. - byte_offset: 1020 - access: Read - fieldset: HSEM_SIDR -fieldset/HSEM_C1ICR: - description: HSEM i1terrupt clear register. + fieldset: KEYR +fieldset/C1ICR: + description: HSEM Interrupt clear register. fields: - name: ISC - description: ISC. + description: Interrupt(N) semaphore n clear bit. bit_offset: 0 - bit_size: 32 -fieldset/HSEM_C1IER: - description: HSEM i1terrupt enable register. + bit_size: 1 + array: + len: 16 + stride: 1 +fieldset/C1IER: + description: HSEM Interrupt enable register. fields: - name: ISE - description: ISE. + description: Interrupt semaphore n enable bit. bit_offset: 0 - bit_size: 32 -fieldset/HSEM_C1ISR: - description: HSEM i1terrupt status register. + bit_size: 1 + array: + len: 16 + stride: 1 +fieldset/C1ISR: + description: HSEM Interrupt status register. fields: - name: ISF - description: ISF. + description: Interrupt(N) semaphore n status bit before enable (mask). bit_offset: 0 - bit_size: 32 -fieldset/HSEM_C1MISR: - description: HSEM i1terrupt status register. + bit_size: 1 + array: + len: 16 + stride: 1 +fieldset/C1MISR: + description: HSEM Masked interrupt status register. fields: - name: MISF - description: MISF. + description: masked interrupt(N) semaphore n status bit after enable (mask). bit_offset: 0 - bit_size: 32 -fieldset/HSEM_C2ICR: - description: HSEM i2terrupt clear register. - fields: - - name: ISC - description: ISC. - bit_offset: 0 - bit_size: 32 -fieldset/HSEM_C2IER: - description: HSEM i2terrupt enable register. - fields: - - name: ISE - description: ISE. - bit_offset: 0 - bit_size: 32 -fieldset/HSEM_C2ISR: - description: HSEM i2terrupt status register. - fields: - - name: ISF - description: ISF. - bit_offset: 0 - bit_size: 32 -fieldset/HSEM_C2MISR: - description: HSEM i2terrupt status register. - fields: - - name: MISF - description: MISF. - bit_offset: 0 - bit_size: 32 -fieldset/HSEM_CR: - description: Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. + bit_size: 1 + array: + len: 16 + stride: 1 +fieldset/CR: + description: HSEM Clear register. fields: - name: COREID - description: COREID. + description: MASTERID. bit_offset: 8 bit_size: 4 - name: KEY - description: KEY. + description: Semaphore clear Key. bit_offset: 16 bit_size: 16 -fieldset/HSEM_HWCFGR1: - description: HSEM hardware configuration register 1. - fields: - - name: NBSEM - description: NBSEM. - bit_offset: 0 - bit_size: 8 - - name: NBINT - description: NBINT. - bit_offset: 8 - bit_size: 4 -fieldset/HSEM_HWCFGR2: - description: HSEM hardware configuration register 2. - fields: - - name: MASTERID1 - description: MASTERID1. - bit_offset: 0 - bit_size: 4 - - name: MASTERID2 - description: MASTERID2. - bit_offset: 4 - bit_size: 4 - - name: MASTERID3 - description: MASTERID3. - bit_offset: 8 - bit_size: 4 - - name: MASTERID4 - description: MASTERID4. - bit_offset: 12 - bit_size: 4 -fieldset/HSEM_IPIDR: - description: HSEM IP identification register. - fields: - - name: IPID - description: IPID. - bit_offset: 0 - bit_size: 32 -fieldset/HSEM_KEYR: - description: HSEM interrupt clear register. +fieldset/KEYR: + description: HSEM Interrupt clear register. fields: - name: KEY - description: KEY. + description: Semaphore Clear Key. bit_offset: 16 bit_size: 16 -fieldset/HSEM_R0: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. +fieldset/R: + description: HSEM register HSEM_R%s HSEM_R31. fields: - name: PROCID - description: PROCID. + description: Semaphore ProcessID. bit_offset: 0 bit_size: 8 - name: COREID - description: COREID. + description: Semaphore MASTERID. bit_offset: 8 bit_size: 4 - name: LOCK - description: LOCK. + description: Lock indication. bit_offset: 31 bit_size: 1 -fieldset/HSEM_R1: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. +fieldset/RLR: + description: HSEM Read lock register. fields: - name: PROCID - description: PROCID. + description: Semaphore ProcessID. bit_offset: 0 bit_size: 8 - name: COREID - description: COREID. + description: Semaphore MASTERID. bit_offset: 8 bit_size: 4 - name: LOCK - description: LOCK. + description: Lock indication. bit_offset: 31 bit_size: 1 -fieldset/HSEM_R10: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R11: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R12: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R13: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R14: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R15: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R16: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R17: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R18: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R19: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R2: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R20: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R21: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R22: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R23: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R24: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R25: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R26: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R27: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R28: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R29: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R3: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R30: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R31: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R4: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R5: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R6: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R7: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R8: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_R9: - description: The HSEM_Rx shall be used to perform a 2-step Write lock and Read back. Only Write accesses with authorized AHB bus master IDs are granted. Write accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR0: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR1: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR10: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR11: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR12: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR13: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR14: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR15: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR16: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR17: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR18: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR19: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR2: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR20: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR21: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR22: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR23: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR24: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR25: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR26: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR27: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR28: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR29: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR3: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR30: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR31: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR4: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR5: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR6: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR7: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR8: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR9: - description: Accesses the same physical bits as HSEM_Rx. The HSEM_RLRx shall be used to perform a 1-step Read lock. Only Read accesses with authorized AHB bus master IDs are granted. Read accesses with unauthorized AHB bus master IDs are discarded. - fields: - - name: PROCID - description: PROCID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: LOCK. - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_SIDR: - description: HSEM size identification register. - fields: - - name: SID - description: SID. - bit_offset: 0 - bit_size: 32 -fieldset/HSEM_VERR: - description: HSEM IP version register. - fields: - - name: MINREV - description: MINREV. - bit_offset: 0 - bit_size: 4 - - name: MAJREV - description: MAJREV. - bit_offset: 4 - bit_size: 4 diff --git a/data/registers/hsem_v5.yaml b/data/registers/hsem_v5.yaml deleted file mode 100644 index 7f1c983..0000000 --- a/data/registers/hsem_v5.yaml +++ /dev/null @@ -1,246 +0,0 @@ -block/HSEM: - description: HSEM. - items: - - name: R - description: Semaphore %s register. - array: - len: 32 - stride: 4 - byte_offset: 0 - fieldset: R - - name: RLR - description: Semaphore %s read lock register. - array: - len: 32 - stride: 4 - byte_offset: 128 - access: Read - fieldset: RLR - - name: C1IER - description: HSEM Interrupt enable register. - byte_offset: 256 - fieldset: C1IER - - name: C1ICR - description: HSEM Interrupt clear register. - byte_offset: 260 - fieldset: C1ICR - - name: C1ISR - description: HSEM Interrupt status register. - byte_offset: 264 - access: Read - fieldset: C1ISR - - name: C1MISR - description: HSEM Masked interrupt status register. - byte_offset: 268 - access: Read - fieldset: C1MISR - - name: C2IER - description: HSEM Interrupt enable register. - byte_offset: 272 - fieldset: C2IER - - name: C2ICR - description: HSEM Interrupt clear register. - byte_offset: 276 - fieldset: C2ICR - - name: C2ISR - description: HSEM Interrupt status register. - byte_offset: 280 - access: Read - fieldset: C2ISR - - name: C2MISR - description: HSEM Masked interrupt status register. - byte_offset: 284 - access: Read - fieldset: C2MISR - - name: CR - description: Semaphore Clear register. - byte_offset: 320 - fieldset: CR - - name: KEYR - description: Interrupt clear register. - byte_offset: 324 - fieldset: KEYR - - name: HWCFGR2 - description: Semaphore hardware configuration register 2. - byte_offset: 1004 - access: Read - fieldset: HWCFGR2 - - name: HWCFGR1 - description: Semaphore hardware configuration register 1. - byte_offset: 1008 - access: Read - fieldset: HWCFGR1 - - name: VERR - description: HSEM version register. - byte_offset: 1012 - access: Read - fieldset: VERR - - name: IPIDR - description: HSEM indentification register. - byte_offset: 1016 - access: Read - fieldset: IPIDR - - name: SIDR - description: HSEM size indentification register. - byte_offset: 1020 - access: Read - fieldset: SIDR -fieldset/C1ICR: - description: HSEM Interrupt clear register. - fields: - - name: ISCm - description: CPU(n) semaphore m clear bit. - bit_offset: 0 - bit_size: 32 -fieldset/C1IER: - description: HSEM Interrupt enable register. - fields: - - name: ISEm - description: CPU(n) semaphore m enable bit. - bit_offset: 0 - bit_size: 32 -fieldset/C1ISR: - description: HSEM Interrupt status register. - fields: - - name: ISFm - description: CPU(n) semaphore m status bit before enable (mask). - bit_offset: 0 - bit_size: 32 -fieldset/C1MISR: - description: HSEM Masked interrupt status register. - fields: - - name: MISFm - description: masked CPU(n) semaphore m status bit after enable (mask). - bit_offset: 0 - bit_size: 32 -fieldset/C2ICR: - description: HSEM Interrupt clear register. - fields: - - name: ISCm - description: CPU(2) semaphore m clear bit. - bit_offset: 0 - bit_size: 32 -fieldset/C2IER: - description: HSEM Interrupt enable register. - fields: - - name: ISEm - description: CPU(2) semaphore m enable bit. - bit_offset: 0 - bit_size: 32 -fieldset/C2ISR: - description: HSEM Interrupt status register. - fields: - - name: ISFm - description: CPU(2) semaphore m status bit before enable (mask). - bit_offset: 0 - bit_size: 32 -fieldset/C2MISR: - description: HSEM Masked interrupt status register. - fields: - - name: MISFm - description: masked CPU(2) semaphore m status bit after enable (mask). - bit_offset: 0 - bit_size: 32 -fieldset/CR: - description: Semaphore Clear register. - fields: - - name: COREID - description: CoreID of semaphore to be cleared. - bit_offset: 8 - bit_size: 4 - - name: KEY - description: Semaphore clear Key. - bit_offset: 16 - bit_size: 16 -fieldset/HWCFGR1: - description: Semaphore hardware configuration register 1. - fields: - - name: NBSEM - description: Hardware Configuration number of semaphores. - bit_offset: 0 - bit_size: 8 - - name: NBINT - description: Hardware Configuration number of interrupts supported number of master IDs. - bit_offset: 8 - bit_size: 4 -fieldset/HWCFGR2: - description: Semaphore hardware configuration register 2. - fields: - - name: MASTERID1 - description: Hardware Configuration valid bus masters ID1. - bit_offset: 0 - bit_size: 4 - - name: MASTERID2 - description: Hardware Configuration valid bus masters ID2. - bit_offset: 4 - bit_size: 4 - - name: MASTERID3 - description: Hardware Configuration valid bus masters ID3. - bit_offset: 8 - bit_size: 4 - - name: MASTERID4 - description: Hardware Configuration valid bus masters ID4. - bit_offset: 12 - bit_size: 4 -fieldset/IPIDR: - description: HSEM indentification register. - fields: - - name: ID - description: Identification Code. - bit_offset: 0 - bit_size: 32 -fieldset/KEYR: - description: Interrupt clear register. - fields: - - name: KEY - description: Semaphore Clear Key. - bit_offset: 16 - bit_size: 16 -fieldset/R: - description: Semaphore %s register. - fields: - - name: PROCID - description: Semaphore ProcessID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: Semaphore CoreID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: lock indication. - bit_offset: 31 - bit_size: 1 -fieldset/RLR: - description: Semaphore %s read lock register. - fields: - - name: PROCID - description: Semaphore ProcessID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: Semaphore CoreID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: lock indication. - bit_offset: 31 - bit_size: 1 -fieldset/SIDR: - description: HSEM size indentification register. - fields: - - name: SID - description: Size Identification Code. - bit_offset: 0 - bit_size: 32 -fieldset/VERR: - description: HSEM version register. - fields: - - name: MINREV - description: Minor Revision. - bit_offset: 0 - bit_size: 4 - - name: MAJREV - description: Major Revision. - bit_offset: 4 - bit_size: 4 diff --git a/data/registers/hsem_v6.yaml b/data/registers/hsem_v6.yaml deleted file mode 100644 index efac812..0000000 --- a/data/registers/hsem_v6.yaml +++ /dev/null @@ -1,1911 +0,0 @@ -block/HSEM: - description: Hardware semaphore. - items: - - name: HSEM_R1 - description: HSEM register semaphore 1. - byte_offset: 4 - fieldset: HSEM_R1 - - name: HSEM_R2 - description: HSEM register semaphore 2. - byte_offset: 8 - fieldset: HSEM_R2 - - name: HSEM_R3 - description: HSEM register semaphore 3. - byte_offset: 12 - fieldset: HSEM_R3 - - name: HSEM_R4 - description: HSEM register semaphore 4. - byte_offset: 16 - fieldset: HSEM_R4 - - name: HSEM_R5 - description: HSEM register semaphore 5. - byte_offset: 20 - fieldset: HSEM_R5 - - name: HSEM_R6 - description: HSEM register semaphore 6. - byte_offset: 24 - fieldset: HSEM_R6 - - name: HSEM_R7 - description: HSEM register semaphore 7. - byte_offset: 28 - fieldset: HSEM_R7 - - name: HSEM_R8 - description: HSEM register semaphore 8. - byte_offset: 32 - fieldset: HSEM_R8 - - name: HSEM_R9 - description: HSEM register semaphore 9. - byte_offset: 36 - fieldset: HSEM_R9 - - name: HSEM_R10 - description: HSEM register semaphore 10. - byte_offset: 40 - fieldset: HSEM_R10 - - name: HSEM_R11 - description: HSEM register semaphore 11. - byte_offset: 44 - fieldset: HSEM_R11 - - name: HSEM_R12 - description: HSEM register semaphore 12. - byte_offset: 48 - fieldset: HSEM_R12 - - name: HSEM_R13 - description: HSEM register semaphore 13. - byte_offset: 52 - fieldset: HSEM_R13 - - name: HSEM_R14 - description: HSEM register semaphore 14. - byte_offset: 56 - fieldset: HSEM_R14 - - name: HSEM_R15 - description: HSEM register semaphore 15. - byte_offset: 60 - fieldset: HSEM_R15 - - name: HSEM_RLR0 - description: HSEM read lock register semaphore 0. - byte_offset: 128 - fieldset: HSEM_RLR0 - - name: HSEM_RLR1 - description: HSEM read lock register semaphore 1. - byte_offset: 132 - fieldset: HSEM_RLR1 - - name: HSEM_RLR2 - description: HSEM read lock register semaphore 2. - byte_offset: 136 - fieldset: HSEM_RLR2 - - name: HSEM_RLR3 - description: HSEM read lock register semaphore 3. - byte_offset: 140 - fieldset: HSEM_RLR3 - - name: HSEM_RLR4 - description: HSEM read lock register semaphore 4. - byte_offset: 144 - fieldset: HSEM_RLR4 - - name: HSEM_RLR5 - description: HSEM read lock register semaphore 5. - byte_offset: 148 - fieldset: HSEM_RLR5 - - name: HSEM_RLR6 - description: HSEM read lock register semaphore 6. - byte_offset: 152 - fieldset: HSEM_RLR6 - - name: HSEM_RLR7 - description: HSEM read lock register semaphore 7. - byte_offset: 156 - fieldset: HSEM_RLR7 - - name: HSEM_RLR8 - description: HSEM read lock register semaphore 8. - byte_offset: 160 - fieldset: HSEM_RLR8 - - name: HSEM_RLR9 - description: HSEM read lock register semaphore 9. - byte_offset: 164 - fieldset: HSEM_RLR9 - - name: HSEM_RLR10 - description: HSEM read lock register semaphore 10. - byte_offset: 168 - fieldset: HSEM_RLR10 - - name: HSEM_RLR11 - description: HSEM read lock register semaphore 11. - byte_offset: 172 - fieldset: HSEM_RLR11 - - name: HSEM_RLR12 - description: HSEM read lock register semaphore 12. - byte_offset: 176 - fieldset: HSEM_RLR12 - - name: HSEM_RLR13 - description: HSEM read lock register semaphore 13. - byte_offset: 180 - fieldset: HSEM_RLR13 - - name: HSEM_RLR14 - description: HSEM read lock register semaphore 14. - byte_offset: 184 - fieldset: HSEM_RLR14 - - name: HSEM_RLR15 - description: HSEM read lock register semaphore 15. - byte_offset: 188 - fieldset: HSEM_RLR15 - - name: HSEM_IER - description: HSEM non-secure interrupt enable register. - byte_offset: 256 - fieldset: HSEM_IER - - name: HSEM_ICR - description: HSEM non-secure interrupt clear register. - byte_offset: 260 - fieldset: HSEM_ICR - - name: HSEM_ISR - description: HSEM non-secure interrupt status register. - byte_offset: 264 - fieldset: HSEM_ISR - - name: HSEM_MISR - description: HSEM non-secure interrupt status register. - byte_offset: 268 - fieldset: HSEM_MISR - - name: HSEM_SIER - description: HSEM secure interrupt enable register. - byte_offset: 384 - fieldset: HSEM_SIER - - name: HSEM_SICR - description: HSEM secure interrupt clear register. - byte_offset: 388 - fieldset: HSEM_SICR - - name: HSEM_SISR - description: HSEM secure interrupt status register. - byte_offset: 392 - fieldset: HSEM_SISR - - name: HSEM_MSISR - description: HSEM secure masked interrupt status register. - byte_offset: 396 - fieldset: HSEM_MSISR - - name: HSEM_SECCFGR - description: HSEM security configuration register. - byte_offset: 512 - fieldset: HSEM_SECCFGR - - name: HSEM_PRIVCFGR - description: HSEM privilege configuration register. - byte_offset: 528 - fieldset: HSEM_PRIVCFGR - - name: HSEM_CR - description: HSEM clear register. - byte_offset: 560 - fieldset: HSEM_CR - - name: HSEM_KEYR - description: HSEM interrupt clear register. - byte_offset: 564 - fieldset: HSEM_KEYR - - name: HSEM_R0 - description: HSEM register semaphore 0. - byte_offset: 1108089856 - fieldset: HSEM_R0 -fieldset/HSEM_CR: - description: HSEM clear register. - fields: - - name: LOCKID - description: LOCKID of semaphores to be cleared This field can be written by software and is always read 0. This field indicates the LOCKID for which the semaphores are cleared when writing the HSEM_CR. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: SEC value of semaphores to be cleared. This field can be written by software, is always read 0. Indicates the SEC for which the CID semaphores are cleared when writing the HSEM_CR. - bit_offset: 12 - bit_size: 1 - - name: PRIV - description: PRIV value of semaphores to be cleared. This field can be written by software, is always read 0. Indicates the PRIV for which the CID semaphores are cleared when writing the HSEM_CR. - bit_offset: 13 - bit_size: 1 - - name: KEY - description: Semaphore clear key This field can be written by software and is always read 0. If this key value does not match HSEM_KEYR.KEY, semaphores are not affected. If this key value matches HSEM_KEYR.KEY, all semaphores matching the LOCKID are cleared to the free state. - bit_offset: 16 - bit_size: 16 -fieldset/HSEM_ICR: - description: HSEM non-secure interrupt clear register. - fields: - - name: ISC - description: Non-secure Interrupt semaphore x clear bit This bit is written by software, and is always read 0. When semaphore x SECx is disabled, bit x can be accessed with secure and non-secure access. When semaphore x SECx is enabled, bit x cannot be accessed, write to this bit is discarded. When semaphore x PRIVx is disabled, bit x can be accessed with privileged and unprivileged access. When semaphore x PRIVx is enabled, bit x can only be accessed with privileged access. Unprivileged write to this bit is discarded. - bit_offset: 0 - bit_size: 16 - enum: ISC -fieldset/HSEM_IER: - description: HSEM non-secure interrupt enable register. - fields: - - name: ISE - description: Non-secure Interrupt semaphore x enable bit This bit is read and written by software. When semaphore x SECx is disabled, bit x can be accessed with secure and non-secure access. When semaphore x SECx is enabled, bit x is forced to 0 and cannot be accessed, write to this bit is discarded and a read returns 0. When semaphore x PRIVx is disabled, bit x can be accessed with privilege and unprivileged access. When semaphore x PRIVx is enabled, bit x can be accessed only with privileged access. Unprivileged write to this bit is discarded, unprivileged read returns 0. - bit_offset: 0 - bit_size: 16 - enum: ISE -fieldset/HSEM_ISR: - description: HSEM non-secure interrupt status register. - fields: - - name: ISF - description: Interrupt semaphore x status bit before enable (mask) This bit is set by hardware, and reset only by software. This bit is cleared by software writing the corresponding HSEM_ICR bit. - bit_offset: 0 - bit_size: 16 - enum: ISF -fieldset/HSEM_KEYR: - description: HSEM interrupt clear register. - fields: - - name: KEY - description: Semaphore clear key This field can be written and read by software. Key value to match when clearing semaphores. - bit_offset: 16 - bit_size: 16 -fieldset/HSEM_MISR: - description: HSEM non-secure interrupt status register. - fields: - - name: MISF - description: Masked non-secure interrupt semaphore x status bit after enable (mask) This bit is set by hardware and read only by software. This bit is cleared by software writing the corresponding HSEM_ICR bit. This bit is read as 0 when semaphore x status is masked in HSEM_IER bit x. When semaphore x SECx is disabled, bit x can be accessed with secure and non-secure access. When semaphore x SECx is enabled, bit x cannot be accessed, read returns 0. When semaphore x PRIVx is disabled, bit x can be accessed with privileged and unprivileged access. When semaphore x PRIVx is enabled, bit x can be accessed only with privileged access. Unprivileged read returns 0. - bit_offset: 0 - bit_size: 16 - enum: MISF -fieldset/HSEM_MSISR: - description: HSEM secure masked interrupt status register. - fields: - - name: SMISF - description: Secure masked interrupt semaphore x status bit after enable (mask) This bit is set by hardware and read only by software. Bit is cleared by software writing the corresponding HSEM_SCnICR bit x. Bit is read as 0 when semaphore x status is masked in HSEM_SCnIER bit x. When semaphore x PRIVx is disabled, bit x can be accessed with secure privilege and secure unprivileged access. When semaphore x PRIVx is enabled, bit x can be accessed only with secure privilege access. Secure unprivileged read return 0 value. - bit_offset: 0 - bit_size: 16 - enum: SMISF -fieldset/HSEM_PRIVCFGR: - description: HSEM privilege configuration register. - fields: - - name: PRIV - description: Semaphore x privilege attribute This bit is set and cleared by software. When semaphore x SECx is disabled, bit x can be write accessed with secure privileged and non-secure privileged access. When semaphore x SECx is enabled, bit x can only be write accessed with secure privilege access. Non-secure privileged write access is discarded. Both secure and non-secure read return the register bit x value. - bit_offset: 0 - bit_size: 16 - enum: HSEM_PRIVCFGR_PRIV -fieldset/HSEM_R0: - description: HSEM register semaphore 0. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R0_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R0_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R0_LOCK -fieldset/HSEM_R1: - description: HSEM register semaphore 1. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R1_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R1_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R1_LOCK -fieldset/HSEM_R10: - description: HSEM register semaphore 10. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R10_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R10_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R10_LOCK -fieldset/HSEM_R11: - description: HSEM register semaphore 11. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R11_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R11_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R11_LOCK -fieldset/HSEM_R12: - description: HSEM register semaphore 12. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R12_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R12_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R12_LOCK -fieldset/HSEM_R13: - description: HSEM register semaphore 13. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R13_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R13_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R13_LOCK -fieldset/HSEM_R14: - description: HSEM register semaphore 14. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R14_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R14_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R14_LOCK -fieldset/HSEM_R15: - description: HSEM register semaphore 15. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R15_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R15_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R15_LOCK -fieldset/HSEM_R2: - description: HSEM register semaphore 2. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R2_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R2_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R2_LOCK -fieldset/HSEM_R3: - description: HSEM register semaphore 3. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R3_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R3_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R3_LOCK -fieldset/HSEM_R4: - description: HSEM register semaphore 4. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R4_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R4_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R4_LOCK -fieldset/HSEM_R5: - description: HSEM register semaphore 5. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R5_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R5_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R5_LOCK -fieldset/HSEM_R6: - description: HSEM register semaphore 6. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R6_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R6_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R6_LOCK -fieldset/HSEM_R7: - description: HSEM register semaphore 7. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R7_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R7_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R7_LOCK -fieldset/HSEM_R8: - description: HSEM register semaphore 8. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R8_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R8_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R8_LOCK -fieldset/HSEM_R9: - description: HSEM register semaphore 9. - fields: - - name: PROCID - description: Semaphore PROCID Written by software -When the semaphore is free and the LOCK is written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition, PROCID is set to the written data. - When the semaphore is unlocked, LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the PROCID is cleared to 0. - When the semaphore is unlocked, LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match the AHB bus master definition, the PROCID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PROCID is not affected. - An authorized read returns the stored PROCID value. - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1 and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master protection. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master protection, the LOCKID is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 or AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master protection, the LOCKID is not affected. - Write when LOCK bit is already 1 (semaphore locked), the LOCKID is not affected. - An authorized read returns the stored LOCKID value. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: Semaphore secure Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the SEC is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the SEC is not affected. - Write when LOCK bit is already 1 (semaphore locked), the SEC is not affected. - An authorized read returns the stored SEC value. - bit_offset: 12 - bit_size: 1 - enum: HSEM_R9_SEC - - name: PRIV - description: Semaphore privilege Written by software - When the semaphore is free and the LOCK bit is at the same time written to 1, and the LOCKID matches the AHB bus master ID, SEC and PRIV matches the AHB bus master definition. - When the semaphore is unlocked (LOCK written to 0 and AHB bus master ID matched LOCKID, SEC and PRIV matches the AHB bus master definition, the PRIV is cleared to 0. - When the semaphore is unlocked (LOCK bit written to 0 and AHB bus master ID does not match LOCKID and/or SEC or PRIV do not match AHB bus master definition, the PRIV is not affected. - Write when LOCK bit is already 1 (semaphore locked), the PRIV is not affected. - An authorized read returns the stored PRIV value. - bit_offset: 13 - bit_size: 1 - enum: HSEM_R9_PRIV - - name: LOCK - description: Lock indication This bit can be written and read by software. - bit_offset: 31 - bit_size: 1 - enum: HSEM_R9_LOCK -fieldset/HSEM_RLR0: - description: HSEM read lock register semaphore 0. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR0_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR0_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR1: - description: HSEM read lock register semaphore 1. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR1_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR1_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR10: - description: HSEM read lock register semaphore 10. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR10_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR10_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR11: - description: HSEM read lock register semaphore 11. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR11_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR11_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR12: - description: HSEM read lock register semaphore 12. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR12_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR12_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR13: - description: HSEM read lock register semaphore 13. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR13_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR13_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR14: - description: HSEM read lock register semaphore 14. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR14_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR14_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR15: - description: HSEM read lock register semaphore 15. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR15_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR15_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR2: - description: HSEM read lock register semaphore 2. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR2_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR2_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR3: - description: HSEM read lock register semaphore 3. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR3_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR3_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR4: - description: HSEM read lock register semaphore 4. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR4_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR4_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR5: - description: HSEM read lock register semaphore 5. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR5_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR5_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR6: - description: HSEM read lock register semaphore 6. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR6_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR6_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR7: - description: HSEM read lock register semaphore 7. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR7_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR7_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR8: - description: HSEM read lock register semaphore 8. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR8_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR8_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_RLR9: - description: HSEM read lock register semaphore 9. - fields: - - name: PROCID - description: 'Semaphore processor ID This field is read only by software at this address. - On a read when the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PROCID to 0. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PROCID of the AHB bus master that has locked the semaphore.' - bit_offset: 0 - bit_size: 8 - - name: LOCKID - description: Semaphore LOCKID This field is read only by software at this address. On a read, when the semaphore is free, the hardware sets the LOCKID to the AHB bus master ID reading the semaphore. The LOCKID of the AHB bus master locking the semaphore is read. On a read when the semaphore is locked, this field returns the LOCKID of the AHB bus master that has locked the semaphore. - bit_offset: 8 - bit_size: 4 - - name: SEC - description: 'Semaphore secure. This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the SEC to the valid AHB bus master security definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the SEC of the AHB bus master that has locked the semaphore.' - bit_offset: 12 - bit_size: 1 - enum: HSEM_RLR9_SEC - - name: PRIV - description: 'Semaphore privilege This field is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and hardware sets the PRIV to the valid AHB bus master privileged definition. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns the PRIV of the AHB bus master that has locked the semaphore.' - bit_offset: 13 - bit_size: 1 - enum: HSEM_RLR9_PRIV - - name: LOCK - description: 'Lock indication This bit is read only by software at this address. - When the semaphore is free: A read with a valid AHB bus master ID and SEC and PRIV locks the semaphore and returns 1. - When the semaphore is locked: A read with a valid AHB bus master ID and SEC and PRIV returns 1 (the LOCKID and SEC and PRIV and PROCID reflect the already locked semaphore information).' - bit_offset: 31 - bit_size: 1 -fieldset/HSEM_SECCFGR: - description: HSEM security configuration register. - fields: - - name: SEC - description: Semaphore x security attribute This bit is set and cleared by software. - bit_offset: 0 - bit_size: 16 - enum: HSEM_SECCFGR_SEC -fieldset/HSEM_SICR: - description: HSEM secure interrupt clear register. - fields: - - name: SISC - description: Secure interrupt semaphore x clear bit This bit is written by software, and is always read 0. When semaphore x PRIVx is disabled, bit x can be accessed with secure privilege and secure unprivileged access. When semaphore x PRIVx is enabled, bit x can be accessed only with secure privilege access. Secure unprivileged write to this bit is discarded. - bit_offset: 0 - bit_size: 16 - enum: SISC -fieldset/HSEM_SIER: - description: HSEM secure interrupt enable register. - fields: - - name: SISE - description: Secure interrupt semaphore x enable bit This bit is read and written by software. When semaphore x PRIVx is disabled, bit x can be accessed with secure privilege and secure unprivileged access. When semaphore x PRIVx is enabled, bit x can be accessed only with secure privilege access. secure unprivileged write to this bit is discarded, secure unprivileged read return 0 value. - bit_offset: 0 - bit_size: 16 - enum: SISE -fieldset/HSEM_SISR: - description: HSEM secure interrupt status register. - fields: - - name: SISF - description: Secure interrupt semaphore x status bit before enable (mask) This bit is set by hardware and read only by software. Bit is cleared by software writing the corresponding HSEM_SCnICR bit x. When semaphore x PRIVx is disabled, bit x can be accessed with secure privilege and secure unprivileged access. When semaphore x PRIVx is enabled, bit x can be accessed only with secure privilege access. Secure unprivileged read return 0 value. - bit_offset: 0 - bit_size: 16 - enum: SISF -enum/HSEM_PRIVCFGR_PRIV: - bit_size: 16 - variants: - - name: B_0x0 - description: Semaphore x unprivileged, can be accessed by both privileged and unprivileged processors. - value: 0 - - name: B_0x1 - description: Semaphore x privileged, can be accessed only by privileged processors. - value: 1 -enum/HSEM_R0_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R0_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R0_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R10_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R10_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R10_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R11_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R11_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R11_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R12_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R12_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R12_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R13_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R13_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R13_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R14_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R14_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R14_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R15_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R15_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R15_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R1_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R1_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R1_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R2_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R2_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R2_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R3_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R3_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R3_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R4_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R4_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R4_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R5_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R5_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R5_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R6_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R6_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R6_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R7_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R7_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R7_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R8_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R8_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R8_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_R9_LOCK: - bit_size: 1 - variants: - - name: B_0x0 - description: On write free semaphore (only when LOCKID and PROCID match), on read semaphore is free. - value: 0 - - name: B_0x1 - description: On write try to lock semaphore, on read semaphore is locked. - value: 1 -enum/HSEM_R9_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privilege compartment. - value: 1 -enum/HSEM_R9_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR0_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR0_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR10_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR10_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR11_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR11_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR12_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR12_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR13_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR13_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR14_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR14_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR15_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR15_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR1_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR1_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR2_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR2_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR3_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR3_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR4_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR4_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR5_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR5_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR6_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR6_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR7_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR7_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR8_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR8_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_RLR9_PRIV: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by unprivileged compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by privileged compartment. - value: 1 -enum/HSEM_RLR9_SEC: - bit_size: 1 - variants: - - name: B_0x0 - description: Semaphore free or locked by non-secure compartment. - value: 0 - - name: B_0x1 - description: Semaphore locked by secure compartment. - value: 1 -enum/HSEM_SECCFGR_SEC: - bit_size: 16 - variants: - - name: B_0x0 - description: Semaphore x non-security, can be accessed by both secure and non-secure processors. When unlocking semaphore x both a secure and non-secure interrupt can be generated. - value: 0 - - name: B_0x1 - description: Semaphore x security, can be accessed only by secure processors. When unlocking semaphore x only a secure interrupt can be generated. - value: 1 -enum/ISC: - bit_size: 16 - variants: - - name: B_0x0 - description: non-secure Interrupt semaphore x status ISFx and masked status MISFx not affected. - value: 0 - - name: B_0x1 - description: non-secure Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/ISE: - bit_size: 16 - variants: - - name: B_0x0 - description: Non-secure Interrupt generation for semaphore x disabled (masked). - value: 0 - - name: B_0x1 - description: Non-secure Interrupt generation for semaphore x enabled (not masked). - value: 1 -enum/ISF: - bit_size: 16 - variants: - - name: B_0x0 - description: Interrupt semaphore x status, no interrupt pending. - value: 0 - - name: B_0x1 - description: Interrupt semaphore x status, interrupt pending. - value: 1 -enum/MISF: - bit_size: 16 - variants: - - name: B_0x0 - description: non-secure interrupt semaphore x status after masking not pending. - value: 0 - - name: B_0x1 - description: non-secure interrupt semaphore x status after masking pending. - value: 1 -enum/SISC: - bit_size: 16 - variants: - - name: B_0x0 - description: Secure interrupt semaphore x status ISFx and masked status MISFx not affected. - value: 0 - - name: B_0x1 - description: Secure interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/SISE: - bit_size: 16 - variants: - - name: B_0x0 - description: Secure interrupt generation for semaphore x is disabled (masked). - value: 0 - - name: B_0x1 - description: Secure interrupt generation for semaphore x is enabled (not masked). - value: 1 -enum/SISF: - bit_size: 16 - variants: - - name: B_0x0 - description: Secure interrupt semaphore x status, no interrupt pending. - value: 0 - - name: B_0x1 - description: Secure interrupt semaphore x status, interrupt pending. - value: 1 -enum/SMISF: - bit_size: 16 - variants: - - name: B_0x0 - description: Secure interrupt semaphore x status after masking not pending. - value: 0 - - name: B_0x1 - description: Secure interrupt semaphore x status after masking pending. - value: 1 diff --git a/data/registers/hsem_v7.yaml b/data/registers/hsem_v7.yaml deleted file mode 100644 index 21c2fce..0000000 --- a/data/registers/hsem_v7.yaml +++ /dev/null @@ -1,1947 +0,0 @@ -block/HSEM: - description: Hardware semaphore. - items: - - name: R - description: HSEM register HSEM_R%s HSEM_R31. - array: - len: 16 - stride: 4 - byte_offset: 0 - fieldset: R - - name: RLR - description: HSEM Read lock register. - array: - len: 16 - stride: 4 - byte_offset: 128 - access: Read - fieldset: RLR - - name: C1IER - description: HSEM Interrupt enable register. - byte_offset: 256 - fieldset: C1IER - - name: C1ICR - description: HSEM Interrupt clear register. - byte_offset: 260 - fieldset: C1ICR - - name: C1ISR - description: HSEM Interrupt status register. - byte_offset: 264 - access: Read - fieldset: C1ISR - - name: C1MISR - description: HSEM Masked interrupt status register. - byte_offset: 268 - access: Read - fieldset: C1MISR - - name: C2IER - description: HSEM Interrupt enable register. - byte_offset: 272 - fieldset: C2IER - - name: C2ICR - description: HSEM Interrupt clear register. - byte_offset: 276 - fieldset: C2ICR - - name: C2ISR - description: HSEM Interrupt status register. - byte_offset: 280 - access: Read - fieldset: C2ISR - - name: C2MISR - description: HSEM Masked interrupt status register. - byte_offset: 284 - access: Read - fieldset: C2MISR - - name: CR - description: HSEM Clear register. - byte_offset: 320 - access: Write - fieldset: CR - - name: KEYR - description: HSEM Interrupt clear register. - byte_offset: 324 - fieldset: KEYR -fieldset/C1ICR: - description: HSEM Interrupt clear register. - fields: - - name: ISC0 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 0 - bit_size: 1 - enum: C1ICR_ISC0 - - name: ISC1 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 1 - bit_size: 1 - enum: C1ICR_ISC1 - - name: ISC2 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 2 - bit_size: 1 - enum: C1ICR_ISC2 - - name: ISC3 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 3 - bit_size: 1 - enum: C1ICR_ISC3 - - name: ISC4 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 4 - bit_size: 1 - enum: C1ICR_ISC4 - - name: ISC5 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 5 - bit_size: 1 - enum: C1ICR_ISC5 - - name: ISC6 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 6 - bit_size: 1 - enum: C1ICR_ISC6 - - name: ISC7 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 7 - bit_size: 1 - enum: C1ICR_ISC7 - - name: ISC8 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 8 - bit_size: 1 - enum: C1ICR_ISC8 - - name: ISC9 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 9 - bit_size: 1 - enum: C1ICR_ISC9 - - name: ISC10 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 10 - bit_size: 1 - enum: C1ICR_ISC10 - - name: ISC11 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 11 - bit_size: 1 - enum: C1ICR_ISC11 - - name: ISC12 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 12 - bit_size: 1 - enum: C1ICR_ISC12 - - name: ISC13 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 13 - bit_size: 1 - enum: C1ICR_ISC13 - - name: ISC14 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 14 - bit_size: 1 - enum: C1ICR_ISC14 - - name: ISC15 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 15 - bit_size: 1 - enum: C1ICR_ISC15 -fieldset/C1IER: - description: HSEM Interrupt enable register. - fields: - - name: ISE0 - description: Interrupt semaphore n enable bit. - bit_offset: 0 - bit_size: 1 - enum: C1IER_ISE0 - - name: ISE1 - description: Interrupt semaphore n enable bit. - bit_offset: 1 - bit_size: 1 - enum: C1IER_ISE1 - - name: ISE2 - description: Interrupt semaphore n enable bit. - bit_offset: 2 - bit_size: 1 - enum: C1IER_ISE2 - - name: ISE3 - description: Interrupt semaphore n enable bit. - bit_offset: 3 - bit_size: 1 - enum: C1IER_ISE3 - - name: ISE4 - description: Interrupt semaphore n enable bit. - bit_offset: 4 - bit_size: 1 - enum: C1IER_ISE4 - - name: ISE5 - description: Interrupt semaphore n enable bit. - bit_offset: 5 - bit_size: 1 - enum: C1IER_ISE5 - - name: ISE6 - description: Interrupt semaphore n enable bit. - bit_offset: 6 - bit_size: 1 - enum: C1IER_ISE6 - - name: ISE7 - description: Interrupt semaphore n enable bit. - bit_offset: 7 - bit_size: 1 - enum: C1IER_ISE7 - - name: ISE8 - description: Interrupt semaphore n enable bit. - bit_offset: 8 - bit_size: 1 - enum: C1IER_ISE8 - - name: ISE9 - description: Interrupt semaphore n enable bit. - bit_offset: 9 - bit_size: 1 - enum: C1IER_ISE9 - - name: ISE10 - description: Interrupt semaphore n enable bit. - bit_offset: 10 - bit_size: 1 - enum: C1IER_ISE10 - - name: ISE11 - description: Interrupt semaphore n enable bit. - bit_offset: 11 - bit_size: 1 - enum: C1IER_ISE11 - - name: ISE12 - description: Interrupt semaphore n enable bit. - bit_offset: 12 - bit_size: 1 - enum: C1IER_ISE12 - - name: ISE13 - description: Interrupt semaphore n enable bit. - bit_offset: 13 - bit_size: 1 - enum: C1IER_ISE13 - - name: ISE14 - description: Interrupt semaphore n enable bit. - bit_offset: 14 - bit_size: 1 - enum: C1IER_ISE14 - - name: ISE15 - description: Interrupt semaphore n enable bit. - bit_offset: 15 - bit_size: 1 - enum: C1IER_ISE15 -fieldset/C1ISR: - description: HSEM Interrupt status register. - fields: - - name: ISF0 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 0 - bit_size: 1 - enum: C1ISR_ISF0 - - name: ISF1 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 1 - bit_size: 1 - enum: C1ISR_ISF1 - - name: ISF2 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 2 - bit_size: 1 - enum: C1ISR_ISF2 - - name: ISF3 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 3 - bit_size: 1 - enum: C1ISR_ISF3 - - name: ISF4 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 4 - bit_size: 1 - enum: C1ISR_ISF4 - - name: ISF5 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 5 - bit_size: 1 - enum: C1ISR_ISF5 - - name: ISF6 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 6 - bit_size: 1 - enum: C1ISR_ISF6 - - name: ISF7 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 7 - bit_size: 1 - enum: C1ISR_ISF7 - - name: ISF8 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 8 - bit_size: 1 - enum: C1ISR_ISF8 - - name: ISF9 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 9 - bit_size: 1 - enum: C1ISR_ISF9 - - name: ISF10 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 10 - bit_size: 1 - enum: C1ISR_ISF10 - - name: ISF11 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 11 - bit_size: 1 - enum: C1ISR_ISF11 - - name: ISF12 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 12 - bit_size: 1 - enum: C1ISR_ISF12 - - name: ISF13 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 13 - bit_size: 1 - enum: C1ISR_ISF13 - - name: ISF14 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 14 - bit_size: 1 - enum: C1ISR_ISF14 - - name: ISF15 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 15 - bit_size: 1 - enum: C1ISR_ISF15 -fieldset/C1MISR: - description: HSEM Masked interrupt status register. - fields: - - name: MISF0 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 0 - bit_size: 1 - enum: C1MISR_MISF0 - - name: MISF1 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 1 - bit_size: 1 - enum: C1MISR_MISF1 - - name: MISF2 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 2 - bit_size: 1 - enum: C1MISR_MISF2 - - name: MISF3 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 3 - bit_size: 1 - enum: C1MISR_MISF3 - - name: MISF4 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 4 - bit_size: 1 - enum: C1MISR_MISF4 - - name: MISF5 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 5 - bit_size: 1 - enum: C1MISR_MISF5 - - name: MISF6 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 6 - bit_size: 1 - enum: C1MISR_MISF6 - - name: MISF7 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 7 - bit_size: 1 - enum: C1MISR_MISF7 - - name: MISF8 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 8 - bit_size: 1 - enum: C1MISR_MISF8 - - name: MISF9 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 9 - bit_size: 1 - enum: C1MISR_MISF9 - - name: MISF10 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 10 - bit_size: 1 - enum: C1MISR_MISF10 - - name: MISF11 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 11 - bit_size: 1 - enum: C1MISR_MISF11 - - name: MISF12 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 12 - bit_size: 1 - enum: C1MISR_MISF12 - - name: MISF13 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 13 - bit_size: 1 - enum: C1MISR_MISF13 - - name: MISF14 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 14 - bit_size: 1 - enum: C1MISR_MISF14 - - name: MISF15 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 15 - bit_size: 1 - enum: C1MISR_MISF15 -fieldset/C2ICR: - description: HSEM Interrupt clear register. - fields: - - name: ISC0 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 0 - bit_size: 1 - enum: C2ICR_ISC0 - - name: ISC1 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 1 - bit_size: 1 - enum: C2ICR_ISC1 - - name: ISC2 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 2 - bit_size: 1 - enum: C2ICR_ISC2 - - name: ISC3 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 3 - bit_size: 1 - enum: C2ICR_ISC3 - - name: ISC4 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 4 - bit_size: 1 - enum: C2ICR_ISC4 - - name: ISC5 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 5 - bit_size: 1 - enum: C2ICR_ISC5 - - name: ISC6 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 6 - bit_size: 1 - enum: C2ICR_ISC6 - - name: ISC7 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 7 - bit_size: 1 - enum: C2ICR_ISC7 - - name: ISC8 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 8 - bit_size: 1 - enum: C2ICR_ISC8 - - name: ISC9 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 9 - bit_size: 1 - enum: C2ICR_ISC9 - - name: ISC10 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 10 - bit_size: 1 - enum: C2ICR_ISC10 - - name: ISC11 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 11 - bit_size: 1 - enum: C2ICR_ISC11 - - name: ISC12 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 12 - bit_size: 1 - enum: C2ICR_ISC12 - - name: ISC13 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 13 - bit_size: 1 - enum: C2ICR_ISC13 - - name: ISC14 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 14 - bit_size: 1 - enum: C2ICR_ISC14 - - name: ISC15 - description: Interrupt(N) semaphore n clear bit. - bit_offset: 15 - bit_size: 1 - enum: C2ICR_ISC15 -fieldset/C2IER: - description: HSEM Interrupt enable register. - fields: - - name: ISE0 - description: Interrupt semaphore n enable bit. - bit_offset: 0 - bit_size: 1 - enum: C2IER_ISE0 - - name: ISE1 - description: Interrupt semaphore n enable bit. - bit_offset: 1 - bit_size: 1 - enum: C2IER_ISE1 - - name: ISE2 - description: Interrupt semaphore n enable bit. - bit_offset: 2 - bit_size: 1 - enum: C2IER_ISE2 - - name: ISE3 - description: Interrupt semaphore n enable bit. - bit_offset: 3 - bit_size: 1 - enum: C2IER_ISE3 - - name: ISE4 - description: Interrupt semaphore n enable bit. - bit_offset: 4 - bit_size: 1 - enum: C2IER_ISE4 - - name: ISE5 - description: Interrupt semaphore n enable bit. - bit_offset: 5 - bit_size: 1 - enum: C2IER_ISE5 - - name: ISE6 - description: Interrupt semaphore n enable bit. - bit_offset: 6 - bit_size: 1 - enum: C2IER_ISE6 - - name: ISE7 - description: Interrupt semaphore n enable bit. - bit_offset: 7 - bit_size: 1 - enum: C2IER_ISE7 - - name: ISE8 - description: Interrupt semaphore n enable bit. - bit_offset: 8 - bit_size: 1 - enum: C2IER_ISE8 - - name: ISE9 - description: Interrupt semaphore n enable bit. - bit_offset: 9 - bit_size: 1 - enum: C2IER_ISE9 - - name: ISE10 - description: Interrupt semaphore n enable bit. - bit_offset: 10 - bit_size: 1 - enum: C2IER_ISE10 - - name: ISE11 - description: Interrupt semaphore n enable bit. - bit_offset: 11 - bit_size: 1 - enum: C2IER_ISE11 - - name: ISE12 - description: Interrupt semaphore n enable bit. - bit_offset: 12 - bit_size: 1 - enum: C2IER_ISE12 - - name: ISE13 - description: Interrupt semaphore n enable bit. - bit_offset: 13 - bit_size: 1 - enum: C2IER_ISE13 - - name: ISE14 - description: Interrupt semaphore n enable bit. - bit_offset: 14 - bit_size: 1 - enum: C2IER_ISE14 - - name: ISE15 - description: Interrupt semaphore n enable bit. - bit_offset: 15 - bit_size: 1 - enum: C2IER_ISE15 -fieldset/C2ISR: - description: HSEM Interrupt status register. - fields: - - name: ISF0 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 0 - bit_size: 1 - enum: C2ISR_ISF0 - - name: ISF1 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 1 - bit_size: 1 - enum: C2ISR_ISF1 - - name: ISF2 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 2 - bit_size: 1 - enum: C2ISR_ISF2 - - name: ISF3 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 3 - bit_size: 1 - enum: C2ISR_ISF3 - - name: ISF4 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 4 - bit_size: 1 - enum: C2ISR_ISF4 - - name: ISF5 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 5 - bit_size: 1 - enum: C2ISR_ISF5 - - name: ISF6 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 6 - bit_size: 1 - enum: C2ISR_ISF6 - - name: ISF7 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 7 - bit_size: 1 - enum: C2ISR_ISF7 - - name: ISF8 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 8 - bit_size: 1 - enum: C2ISR_ISF8 - - name: ISF9 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 9 - bit_size: 1 - enum: C2ISR_ISF9 - - name: ISF10 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 10 - bit_size: 1 - enum: C2ISR_ISF10 - - name: ISF11 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 11 - bit_size: 1 - enum: C2ISR_ISF11 - - name: ISF12 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 12 - bit_size: 1 - enum: C2ISR_ISF12 - - name: ISF13 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 13 - bit_size: 1 - enum: C2ISR_ISF13 - - name: ISF14 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 14 - bit_size: 1 - enum: C2ISR_ISF14 - - name: ISF15 - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 15 - bit_size: 1 - enum: C2ISR_ISF15 -fieldset/C2MISR: - description: HSEM Masked interrupt status register. - fields: - - name: MISF0 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 0 - bit_size: 1 - enum: C2MISR_MISF0 - - name: MISF1 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 1 - bit_size: 1 - enum: C2MISR_MISF1 - - name: MISF2 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 2 - bit_size: 1 - enum: C2MISR_MISF2 - - name: MISF3 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 3 - bit_size: 1 - enum: C2MISR_MISF3 - - name: MISF4 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 4 - bit_size: 1 - enum: C2MISR_MISF4 - - name: MISF5 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 5 - bit_size: 1 - enum: C2MISR_MISF5 - - name: MISF6 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 6 - bit_size: 1 - enum: C2MISR_MISF6 - - name: MISF7 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 7 - bit_size: 1 - enum: C2MISR_MISF7 - - name: MISF8 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 8 - bit_size: 1 - enum: C2MISR_MISF8 - - name: MISF9 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 9 - bit_size: 1 - enum: C2MISR_MISF9 - - name: MISF10 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 10 - bit_size: 1 - enum: C2MISR_MISF10 - - name: MISF11 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 11 - bit_size: 1 - enum: C2MISR_MISF11 - - name: MISF12 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 12 - bit_size: 1 - enum: C2MISR_MISF12 - - name: MISF13 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 13 - bit_size: 1 - enum: C2MISR_MISF13 - - name: MISF14 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 14 - bit_size: 1 - enum: C2MISR_MISF14 - - name: MISF15 - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 15 - bit_size: 1 - enum: C2MISR_MISF15 -fieldset/CR: - description: HSEM Clear register. - fields: - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: KEY - description: Semaphore clear Key. - bit_offset: 16 - bit_size: 16 -fieldset/KEYR: - description: HSEM Interrupt clear register. - fields: - - name: KEY - description: Semaphore Clear Key. - bit_offset: 16 - bit_size: 16 -fieldset/R: - description: HSEM register HSEM_R%s HSEM_R31. - fields: - - name: PROCID - description: Semaphore ProcessID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: Lock indication. - bit_offset: 31 - bit_size: 1 - enum: R_LOCK -fieldset/RLR: - description: HSEM Read lock register. - fields: - - name: PROCID - description: Semaphore ProcessID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: COREID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: Lock indication. - bit_offset: 31 - bit_size: 1 - enum: RLR_LOCK -enum/C1ICR_ISC0: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC1: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC10: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC11: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC12: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC13: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC14: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC15: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC2: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC3: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC4: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC5: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC6: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC7: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC8: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1ICR_ISC9: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C1IER_ISE0: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE1: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE10: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE11: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE12: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE13: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE14: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE15: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE2: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE3: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE4: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE5: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE6: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE7: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE8: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1IER_ISE9: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C1ISR_ISF0: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF1: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF10: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF11: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF12: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF13: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF14: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF15: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF2: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF3: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF4: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF5: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF6: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF7: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF8: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1ISR_ISF9: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C1MISR_MISF0: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF1: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF10: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF11: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF12: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF13: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF14: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF15: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF2: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF3: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF4: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF5: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF6: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF7: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF8: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C1MISR_MISF9: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2ICR_ISC0: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC1: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC10: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC11: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC12: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC13: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC14: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC15: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC2: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC3: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC4: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC5: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC6: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC7: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC8: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2ICR_ISC9: - bit_size: 1 - variants: - - name: NoEffect - description: Always reads 0. - value: 0 - - name: Clear - description: Interrupt semaphore x status ISFx and masked status MISFx cleared. - value: 1 -enum/C2IER_ISE0: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE1: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE10: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE11: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE12: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE13: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE14: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE15: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE2: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE3: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE4: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE5: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE6: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE7: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE8: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2IER_ISE9: - bit_size: 1 - variants: - - name: Disabled - description: Interrupt generation disabled. - value: 0 - - name: Enabled - description: Interrupt generation enabled. - value: 1 -enum/C2ISR_ISF0: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF1: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF10: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF11: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF12: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF13: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF14: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF15: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF2: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF3: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF4: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF5: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF6: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF7: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF8: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2ISR_ISF9: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending. - value: 0 - - name: Pending - description: Interrupt pending. - value: 1 -enum/C2MISR_MISF0: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF1: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF10: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF11: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF12: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF13: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF14: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF15: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF2: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF3: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF4: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF5: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF6: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF7: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF8: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/C2MISR_MISF9: - bit_size: 1 - variants: - - name: NotPending - description: No interrupt pending after masking. - value: 0 - - name: Pending - description: Interrupt pending after masking. - value: 1 -enum/RLR_LOCK: - bit_size: 1 - variants: - - name: Free - description: Semaphore is free. - value: 0 - - name: Locked - description: Semaphore is locked. - value: 1 -enum/R_LOCK: - bit_size: 1 - variants: - - name: Free - description: Semaphore is free. - value: 0 - - name: R_Locked_W_TryLock - description: Semaphore is locked. - value: 1 diff --git a/data/registers/hsem_v8.yaml b/data/registers/hsem_v8.yaml deleted file mode 100644 index 3505637..0000000 --- a/data/registers/hsem_v8.yaml +++ /dev/null @@ -1,153 +0,0 @@ -block/HSEM: - description: Hardware semaphore. - items: - - name: R - description: HSEM register HSEM_R%s HSEM_R31. - array: - len: 16 - stride: 4 - byte_offset: 0 - fieldset: R - - name: RLR - description: HSEM Read lock register. - array: - len: 16 - stride: 4 - byte_offset: 128 - access: Read - fieldset: RLR - - name: C1IER - description: HSEM Interrupt enable register. - byte_offset: 256 - fieldset: C1IER - - name: C1ICR - description: HSEM Interrupt clear register. - byte_offset: 260 - fieldset: C1ICR - - name: C1ISR - description: HSEM Interrupt status register. - byte_offset: 264 - access: Read - fieldset: C1ISR - - name: C1MISR - description: HSEM Masked interrupt status register. - byte_offset: 268 - access: Read - fieldset: C1MISR - - name: CR - description: HSEM Clear register. - byte_offset: 320 - access: Write - fieldset: CR - - name: KEYR - description: HSEM Interrupt clear register. - byte_offset: 324 - fieldset: KEYR -fieldset/C1ICR: - description: HSEM Interrupt clear register. - fields: - - name: ISC - description: Interrupt(N) semaphore n clear bit. - bit_offset: 0 - bit_size: 1 - array: - len: 16 - stride: 1 -fieldset/C1IER: - description: HSEM Interrupt enable register. - fields: - - name: ISE - description: Interrupt semaphore n enable bit. - bit_offset: 0 - bit_size: 1 - array: - len: 16 - stride: 1 -fieldset/C1ISR: - description: HSEM Interrupt status register. - fields: - - name: ISF - description: Interrupt(N) semaphore n status bit before enable (mask). - bit_offset: 0 - bit_size: 1 - array: - len: 16 - stride: 1 -fieldset/C1MISR: - description: HSEM Masked interrupt status register. - fields: - - name: MISF - description: masked interrupt(N) semaphore n status bit after enable (mask). - bit_offset: 0 - bit_size: 1 - array: - len: 16 - stride: 1 -fieldset/CR: - description: HSEM Clear register. - fields: - - name: COREID - description: MASTERID. - bit_offset: 8 - bit_size: 4 - - name: KEY - description: Semaphore clear Key. - bit_offset: 16 - bit_size: 16 -fieldset/KEYR: - description: HSEM Interrupt clear register. - fields: - - name: KEY - description: Semaphore Clear Key. - bit_offset: 16 - bit_size: 16 -fieldset/R: - description: HSEM register HSEM_R%s HSEM_R31. - fields: - - name: PROCID - description: Semaphore ProcessID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: Semaphore MASTERID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: Lock indication. - bit_offset: 31 - bit_size: 1 - enum: R_LOCK -fieldset/RLR: - description: HSEM Read lock register. - fields: - - name: PROCID - description: Semaphore ProcessID. - bit_offset: 0 - bit_size: 8 - - name: COREID - description: Semaphore MASTERID. - bit_offset: 8 - bit_size: 4 - - name: LOCK - description: Lock indication. - bit_offset: 31 - bit_size: 1 - enum: RLR_LOCK -enum/RLR_LOCK: - bit_size: 1 - variants: - - name: Free - description: Semaphore is free. - value: 0 - - name: Locked - description: Semaphore is locked. - value: 1 -enum/R_LOCK: - bit_size: 1 - variants: - - name: Free - description: Semaphore is free. - value: 0 - - name: R_Locked_W_TryLock - description: Semaphore is locked. - value: 1 diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index cc45372..12b2464 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -1,7 +1,6 @@ use std::collections::hash_map::Entry; use std::collections::{HashMap, HashSet}; -use log::info; use stm32_data_serde::chip::core::peripheral::Pin; use super::*; @@ -537,7 +536,13 @@ impl PeriMatcher { (".*:GPIO.*", ("gpio", "v2", "GPIO")), (".*:IPCC:v1_0", ("ipcc", "v1", "IPCC")), ("STM32H7(4|5)(5|7).*:HSEM:.*", ("hsem", "v1", "HSEM")), - ("STM32WLE.*:HSEM:.*", ("hsem", "v8", "HSEM")), + ("STM32WB55.*:HSEM:.*", ("hsem", "v1", "HSEM")), + ("STM32H735.*:HSEM:.*", ("hsem", "v2", "HSEM")), + ("STM32H7B3.*:HSEM:.*", ("hsem", "v2", "HSEM")), + ("STM32H753.*:HSEM:.*", ("hsem", "v2", "HSEM")), + ("STM32H743.*:HSEM:.*", ("hsem", "v2", "HSEM")), + ("STM32WL5.*:HSEM:.*", ("hsem", "v3", "HSEM")), + ("STM32WLE.*:HSEM:.*", ("hsem", "v4", "HSEM")), (".*:DMAMUX.*", ("dmamux", "v1", "DMAMUX")), (r".*:GPDMA\d?:.*", ("gpdma", "v1", "GPDMA")), (r".*:BDMA\d?:.*", ("bdma", "v1", "DMA")), @@ -916,23 +921,6 @@ fn process_group( let chip_af = chip_af.strip_suffix("_gpio_v1_0").unwrap(); let chip_af = af.0.get(chip_af); - // HSEM is missing in the Cube XML files for these chips - we need to add it manually - if chip_name.starts_with("STM32H745") - || chip_name.starts_with("STM32H747") - || chip_name.starts_with("STM32H755") - || chip_name.starts_with("STM32H757") - { - info!("Patching HSEM in IPS for {}", chip_name); - group.ips.insert( - "HSEM".to_string(), - xml::Ip { - name: "HSEM".to_string(), - version: "hsem1_v1_0_Cube".to_string(), - instance_name: "HSEM".to_string(), - }, - ); - } - let cores: Vec<_> = group .xml .cores From 840e5ec5db6c4b3bc39356beb055ee1e5d0ed8cd Mon Sep 17 00:00:00 2001 From: Michael Zill Date: Mon, 8 Apr 2024 10:12:42 +0200 Subject: [PATCH 28/41] Fixed length COREID in v1, v2 renamed MASTERID to COREID --- data/registers/hsem_v1.yaml | 6 +++--- data/registers/hsem_v2.yaml | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/data/registers/hsem_v1.yaml b/data/registers/hsem_v1.yaml index 60edfdc..78071df 100644 --- a/data/registers/hsem_v1.yaml +++ b/data/registers/hsem_v1.yaml @@ -66,7 +66,7 @@ fieldset/CR: - name: COREID description: COREID of semaphores to be cleared. bit_offset: 8 - bit_size: 8 + bit_size: 4 - name: KEY description: Semaphore clear Key. bit_offset: 16 @@ -88,7 +88,7 @@ fieldset/R: - name: COREID description: Semaphore COREID. bit_offset: 8 - bit_size: 8 + bit_size: 4 - name: LOCK description: Lock indication. bit_offset: 31 @@ -103,7 +103,7 @@ fieldset/RLR: - name: COREID description: Semaphore COREID. bit_offset: 8 - bit_size: 8 + bit_size: 4 - name: LOCK description: Lock indication. bit_offset: 31 diff --git a/data/registers/hsem_v2.yaml b/data/registers/hsem_v2.yaml index e1d639a..1fcd31a 100644 --- a/data/registers/hsem_v2.yaml +++ b/data/registers/hsem_v2.yaml @@ -46,10 +46,10 @@ block/HSEM: fieldset/CR: description: HSEM Clear register. fields: - - name: MASTERID - description: MasterID of semaphores to be cleared. + - name: COREID + description: COREID of semaphores to be cleared. bit_offset: 8 - bit_size: 8 + bit_size: 4 - name: KEY description: Semaphore clear Key. bit_offset: 16 @@ -68,10 +68,10 @@ fieldset/R: description: Semaphore ProcessID. bit_offset: 0 bit_size: 8 - - name: MASTERID - description: Semaphore MasterID. + - name: COREID + description: Semaphore COREID. bit_offset: 8 - bit_size: 8 + bit_size: 4 - name: LOCK description: Lock indication. bit_offset: 31 @@ -84,9 +84,9 @@ fieldset/RLR: bit_offset: 0 bit_size: 8 - name: MASTERID - description: Semaphore MasterID. + description: Semaphore COREID. bit_offset: 8 - bit_size: 8 + bit_size: 4 - name: LOCK description: Lock indication. bit_offset: 31 From b782384611fad53b7148757e9ce016acc4c4522f Mon Sep 17 00:00:00 2001 From: Michael Zill Date: Mon, 8 Apr 2024 13:35:01 +0200 Subject: [PATCH 29/41] Arrayfied IER, ICR, ISR and MISR IRQ registers have for all 4 variants the same name. V1 - array size = 2 (2 cores) V2 - array size = 1 (1 core) V3 - array size = 2 (2 cores) V4 - array size = 1 (1 core) HSEM added to GHOST_PERIS --- data/registers/hsem_v1.yaml | 38 ++++++++++++++++--------------------- data/registers/hsem_v2.yaml | 12 ++++++++++++ data/registers/hsem_v3.yaml | 38 ++++++++++++++++--------------------- data/registers/hsem_v4.yaml | 36 +++++++++++++++++++++++------------ stm32-data-gen/src/chips.rs | 1 + 5 files changed, 69 insertions(+), 56 deletions(-) diff --git a/data/registers/hsem_v1.yaml b/data/registers/hsem_v1.yaml index 78071df..0089381 100644 --- a/data/registers/hsem_v1.yaml +++ b/data/registers/hsem_v1.yaml @@ -16,42 +16,36 @@ block/HSEM: byte_offset: 128 access: Read fieldset: RLR - - name: C1IER + - name: IER description: HSEM Interrupt enable register. byte_offset: 256 fieldset: IER - - name: C1ICR + array: + len: 2 + stride: 16 + - name: ICR description: HSEM Interrupt clear register. byte_offset: 260 fieldset: ICR - - name: C1ISR + array: + len: 2 + stride: 16 + - name: ISR description: HSEM Interrupt status register. byte_offset: 264 access: Read fieldset: ISR - - name: C1MISR + array: + len: 2 + stride: 16 + - name: MISR description: HSEM Masked interrupt status register. byte_offset: 268 access: Read fieldset: MISR - - name: C2IER - description: HSEM Interrupt enable register. - byte_offset: 272 - fieldset: IER - - name: C2ICR - description: HSEM Interrupt clear register. - byte_offset: 276 - fieldset: ICR - - name: C2ISR - description: HSEM Interrupt status register. - byte_offset: 280 - access: Read - fieldset: ISR - - name: C2MISR - description: HSEM Masked interrupt status register. - byte_offset: 284 - access: Read - fieldset: MISR + array: + len: 2 + stride: 16 - name: CR description: HSEM Clear register. byte_offset: 320 diff --git a/data/registers/hsem_v2.yaml b/data/registers/hsem_v2.yaml index 1fcd31a..47b8e19 100644 --- a/data/registers/hsem_v2.yaml +++ b/data/registers/hsem_v2.yaml @@ -20,21 +20,33 @@ block/HSEM: description: HSEM Interrupt enable register. byte_offset: 256 fieldset: IER + array: + len: 1 + stride: 16 - name: ICR description: HSEM Interrupt clear register. byte_offset: 260 access: Read fieldset: ICR + array: + len: 1 + stride: 16 - name: ISR description: HSEM Interrupt status register. byte_offset: 264 access: Read fieldset: ISR + array: + len: 1 + stride: 16 - name: MISR description: HSEM Masked interrupt status register. byte_offset: 268 access: Read fieldset: MISR + array: + len: 1 + stride: 16 - name: CR description: HSEM Clear register. byte_offset: 320 diff --git a/data/registers/hsem_v3.yaml b/data/registers/hsem_v3.yaml index 8410c72..f754a68 100644 --- a/data/registers/hsem_v3.yaml +++ b/data/registers/hsem_v3.yaml @@ -16,42 +16,36 @@ block/HSEM: byte_offset: 128 access: Read fieldset: RLR - - name: C1IER + - name: IER description: HSEM Interrupt enable register. byte_offset: 256 fieldset: IER - - name: C1ICR + array: + len: 2 + stride: 16 + - name: ICR description: HSEM Interrupt clear register. byte_offset: 260 fieldset: ICR - - name: C1ISR + array: + len: 2 + stride: 16 + - name: ISR description: HSEM Interrupt status register. byte_offset: 264 access: Read fieldset: ISR - - name: C1MISR + array: + len: 2 + stride: 16 + - name: MISR description: HSEM Masked interrupt status register. byte_offset: 268 access: Read fieldset: MISR - - name: C2IER - description: HSEM Interrupt enable register. - byte_offset: 272 - fieldset: IER - - name: C2ICR - description: HSEM Interrupt clear register. - byte_offset: 276 - fieldset: ICR - - name: C2ISR - description: HSEM Interrupt status register. - byte_offset: 280 - access: Read - fieldset: ISR - - name: C2MISR - description: HSEM Masked interrupt status register. - byte_offset: 284 - access: Read - fieldset: MISR + array: + len: 2 + stride: 16 - name: CR description: HSEM Clear register. byte_offset: 320 diff --git a/data/registers/hsem_v4.yaml b/data/registers/hsem_v4.yaml index 31a63de..72b4b59 100644 --- a/data/registers/hsem_v4.yaml +++ b/data/registers/hsem_v4.yaml @@ -16,24 +16,36 @@ block/HSEM: byte_offset: 128 access: Read fieldset: RLR - - name: C1IER + - name: IER description: HSEM Interrupt enable register. byte_offset: 256 - fieldset: C1IER - - name: C1ICR + fieldset: IER + array: + len: 1 + stride: 16 + - name: ICR description: HSEM Interrupt clear register. byte_offset: 260 - fieldset: C1ICR - - name: C1ISR + fieldset: ICR + array: + len: 1 + stride: 16 + - name: ISR description: HSEM Interrupt status register. byte_offset: 264 access: Read - fieldset: C1ISR - - name: C1MISR + fieldset: ISR + array: + len: 1 + stride: 16 + - name: MISR description: HSEM Masked interrupt status register. byte_offset: 268 access: Read - fieldset: C1MISR + fieldset: MISR + array: + len: 1 + stride: 16 - name: CR description: HSEM Clear register. byte_offset: 320 @@ -43,7 +55,7 @@ block/HSEM: description: HSEM Interrupt clear register. byte_offset: 324 fieldset: KEYR -fieldset/C1ICR: +fieldset/ICR: description: HSEM Interrupt clear register. fields: - name: ISC @@ -53,7 +65,7 @@ fieldset/C1ICR: array: len: 16 stride: 1 -fieldset/C1IER: +fieldset/IER: description: HSEM Interrupt enable register. fields: - name: ISE @@ -63,7 +75,7 @@ fieldset/C1IER: array: len: 16 stride: 1 -fieldset/C1ISR: +fieldset/ISR: description: HSEM Interrupt status register. fields: - name: ISF @@ -73,7 +85,7 @@ fieldset/C1ISR: array: len: 16 stride: 1 -fieldset/C1MISR: +fieldset/MISR: description: HSEM Masked interrupt status register. fields: - name: MISF diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index 12b2464..6e16c2b 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -1056,6 +1056,7 @@ fn process_core( "USBRAM", "VREFINTCAL", "UID", + "HSEM", ]; for pname in GHOST_PERIS { if let Entry::Vacant(entry) = peri_kinds.entry(pname.to_string()) { From 604890b9bad2734a79d344dec83504628359061d Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Mon, 8 Apr 2024 12:18:12 +0200 Subject: [PATCH 30/41] hsem: rename more MASTERID->COREID --- data/registers/hsem_v2.yaml | 2 +- data/registers/hsem_v4.yaml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/data/registers/hsem_v2.yaml b/data/registers/hsem_v2.yaml index 47b8e19..3ec588e 100644 --- a/data/registers/hsem_v2.yaml +++ b/data/registers/hsem_v2.yaml @@ -95,7 +95,7 @@ fieldset/RLR: description: Semaphore ProcessID. bit_offset: 0 bit_size: 8 - - name: MASTERID + - name: COREID description: Semaphore COREID. bit_offset: 8 bit_size: 4 diff --git a/data/registers/hsem_v4.yaml b/data/registers/hsem_v4.yaml index 72b4b59..1c0794a 100644 --- a/data/registers/hsem_v4.yaml +++ b/data/registers/hsem_v4.yaml @@ -99,7 +99,7 @@ fieldset/CR: description: HSEM Clear register. fields: - name: COREID - description: MASTERID. + description: COREID. bit_offset: 8 bit_size: 4 - name: KEY @@ -121,7 +121,7 @@ fieldset/R: bit_offset: 0 bit_size: 8 - name: COREID - description: Semaphore MASTERID. + description: Semaphore COREID. bit_offset: 8 bit_size: 4 - name: LOCK @@ -136,7 +136,7 @@ fieldset/RLR: bit_offset: 0 bit_size: 8 - name: COREID - description: Semaphore MASTERID. + description: Semaphore COREID. bit_offset: 8 bit_size: 4 - name: LOCK From 4e3ed9abee1af22b335005ca4b9976863147cd5b Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Tue, 9 Apr 2024 02:19:17 +0200 Subject: [PATCH 31/41] Remove OTP from memory map. --- stm32-data-gen/src/chips.rs | 3 --- stm32-data-gen/src/memory.rs | 5 +---- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index 6e16c2b..4d81173 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -1356,7 +1356,6 @@ fn process_chip( "FLASH_BANK1", "FLASH_BANK2", "FLASH", - "FLASH_OTP", "D1_AXIFLASH", "D1_AXIICP", ] { @@ -1368,7 +1367,6 @@ fn process_chip( ), "FLASH_BANK1" => ("BANK_1", Some([memory::FlashBank::Bank1].as_ref())), "FLASH_BANK2" => ("BANK_2", Some([memory::FlashBank::Bank2].as_ref())), - "FLASH_OTP" => ("OTP", Some([memory::FlashBank::Otp].as_ref())), each => (each, None), }; @@ -1382,7 +1380,6 @@ fn process_chip( let bank_name = match bank { memory::FlashBank::Bank1 => "BANK_1", memory::FlashBank::Bank2 => "BANK_2", - memory::FlashBank::Otp => "OTP", }; let regions: Vec<_> = memory .flash_regions diff --git a/stm32-data-gen/src/memory.rs b/stm32-data-gen/src/memory.rs index 817bea7..af13851 100644 --- a/stm32-data-gen/src/memory.rs +++ b/stm32-data-gen/src/memory.rs @@ -28,7 +28,6 @@ pub struct FlashRegion { pub enum FlashBank { Bank1, Bank2, - Otp, } mod xml { @@ -196,11 +195,10 @@ impl Memories { enum BlockKind { Main, - Otp, } let kind = match peripheral.name.as_str() { "Embedded Flash" => Some(BlockKind::Main), - "OTP" => Some(BlockKind::Otp), + "OTP" => None, _ => None, }; @@ -244,7 +242,6 @@ impl Memories { } Some(other) => unimplemented!("Unsupported flash bank {}", other), }, - BlockKind::Otp => Some(FlashBank::Otp), }; if let Some(flash_bank) = flash_bank { From 9d3d5c9690429f48da64e0772c10d6bb0e463498 Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Tue, 9 Apr 2024 02:43:44 +0200 Subject: [PATCH 32/41] Sort memory regions by addr. --- stm32-data-gen/src/chips.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index 4d81173..ea0e49e 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -1480,6 +1480,8 @@ fn process_chip( }) } } + memory_regions.sort_by_key(|m| (m.address, m.name.clone())); + let docs = docs.documents_for(chip_name); let chip = stm32_data_serde::Chip { name: chip_name.to_string(), From 8e26f36a8ecc17eaafa38e5abf3f9c041ef01f32 Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Tue, 9 Apr 2024 03:29:33 +0200 Subject: [PATCH 33/41] Manually maintain memory maps instead of parsing them from cubeprogdb. First step towards fixing #301 The cubeprogdb has turned out to be a quite bad data source. It's not granular enough (it has one entry per chip die, not per chip) so the previous code joined the data with the C headers and cubedb to fill in the gaps, essentialy "guessing" stuff. This has been quite error prone (see #301) and hard to make fixes to. Instead, we're going to manually maintain memory maps in a .rs file. This way, if something is wrong we can simply go and fix it. This commit just migrates the existing data, even if it's wrong. (it does fix a few very minor mistakes). Next steps is actually fixing the memory maps. --- stm32-data-gen/src/chips.rs | 151 +-------- stm32-data-gen/src/main.rs | 4 - stm32-data-gen/src/memory.rs | 597 +++++++++++++++++++---------------- 3 files changed, 327 insertions(+), 425 deletions(-) diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index ea0e49e..c3ff3b9 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -58,7 +58,9 @@ mod xml { } pub struct Chip { + #[allow(dead_code)] flash: u32, + #[allow(dead_code)] ram: u32, group_idx: usize, packages: Vec, @@ -903,7 +905,6 @@ fn process_group( peripheral_to_clock: &rcc::ParsedRccs, dma_channels: &dma::DmaChannels, chips: &HashMap, - memories: &memory::Memories, docs: &docs::Docs, ) -> Result<(), anyhow::Error> { let chip_name = group.chip_names[0].clone(); @@ -942,7 +943,7 @@ fn process_group( .collect(); for chip_name in &group.chip_names { - process_chip(chips, chip_name, h, memories, docs, &group, &cores)?; + process_chip(chips, chip_name, h, docs, &group, &cores)?; } Ok(()) @@ -1338,159 +1339,21 @@ fn process_core( fn process_chip( chips: &HashMap, chip_name: &str, - h: &header::ParsedHeader, - memories: &memory::Memories, + _h: &header::ParsedHeader, docs: &docs::Docs, group: &ChipGroup, cores: &[stm32_data_serde::chip::Core], ) -> Result<(), anyhow::Error> { let chip = chips.get(chip_name).unwrap(); - let flash_size = chip.flash * 1024; - let ram_total = chip.ram * 1024; - let memory = memories.get(group.die.as_ref().unwrap()); - let mut flash_remaining = flash_size; - let mut memory_regions = Vec::new(); - let mut found = HashSet::<&str>::new(); - for each in [ - // We test FLASH_BANKx _before_ FLASH as we prefer their definition over the legacy one - "FLASH_BANK1", - "FLASH_BANK2", - "FLASH", - "D1_AXIFLASH", - "D1_AXIICP", - ] { - if let Some(address) = h.defines.get("all").unwrap().0.get(&format!("{each}_BASE")) { - let (key, banks) = match each { - "FLASH" => ( - "BANK_1", - Some([memory::FlashBank::Bank1, memory::FlashBank::Bank2].as_ref()), - ), - "FLASH_BANK1" => ("BANK_1", Some([memory::FlashBank::Bank1].as_ref())), - "FLASH_BANK2" => ("BANK_2", Some([memory::FlashBank::Bank2].as_ref())), - each => (each, None), - }; - - if found.contains(key) { - continue; - } - found.insert(key); - - if let Some(banks) = banks { - for bank in banks { - let bank_name = match bank { - memory::FlashBank::Bank1 => "BANK_1", - memory::FlashBank::Bank2 => "BANK_2", - }; - let regions: Vec<_> = memory - .flash_regions - .iter() - .filter(|region| region.bank == *bank) - .enumerate() - .map_while(|(index, region)| { - let size = if *bank == memory::FlashBank::Bank1 || *bank == memory::FlashBank::Bank2 { - // Truncate region to the total amount of remaining chip flash - let size = std::cmp::min(region.bytes, flash_remaining); - flash_remaining -= size; - if size == 0 { - // No more regions are present on this chip - return None; - } - size - } else { - region.bytes - }; - - Some((index, region.address, size, region.settings.clone())) - }) - .collect(); - let has_multiple_regions = regions.len() > 1; - for (index, address, size, settings) in regions { - let name = if has_multiple_regions { - format!("{}_REGION_{}", bank_name, index + 1) - } else { - bank_name.to_string() - }; - - memory_regions.push(stm32_data_serde::chip::Memory { - name, - kind: stm32_data_serde::chip::memory::Kind::Flash, - address, - size, - settings: Some(settings.clone()), - }); - } - } - } else { - memory_regions.push(stm32_data_serde::chip::Memory { - name: key.to_string(), - kind: stm32_data_serde::chip::memory::Kind::Flash, - address: u32::try_from(*address).unwrap(), - size: 0, - settings: None, - }) - } - } - } - let mut found = HashSet::new(); - for each in [ - "SRAM", - "SRAM1", - "SRAM2", - "D1_AXISRAM", - "D1_ITCMRAM", - "D1_DTCMRAM", - "D1_AHBSRAM", - "D2_AXISRAM", - "D3_BKPSRAM", - "D3_SRAM", - ] { - if let Some(address) = h.defines.get("all").unwrap().0.get(&format!("{each}_BASE")) { - let key = match each { - "D1_AXISRAM" => "SRAM", - "SRAM1" => "SRAM", - each => each, - }; - - if found.contains(key) { - continue; - } - found.insert(key); - - let size = if key == "SRAM" { - // if memory.ram.bytes != ram_total { - // println!( - // "SRAM mismatch for chip {} with die {}: Expected {} was {}", - // chip_name, - // group.die.as_ref().unwrap(), - // ram_total, - // memory.ram.bytes, - // ); - // } - std::cmp::min(memory.ram.bytes, ram_total) - } else { - 0 - }; - - memory_regions.push(stm32_data_serde::chip::Memory { - name: key.to_string(), - kind: stm32_data_serde::chip::memory::Kind::Ram, - address: u32::try_from(*address).unwrap(), - size, - settings: None, - }) - } - } - memory_regions.sort_by_key(|m| (m.address, m.name.clone())); - let docs = docs.documents_for(chip_name); let chip = stm32_data_serde::Chip { name: chip_name.to_string(), family: group.family.clone().unwrap(), line: group.line.clone().unwrap(), die: group.die.clone().unwrap(), - device_id: memory.device_id, + device_id: u16::from_str_radix(&group.die.as_ref().unwrap()[3..], 16).unwrap(), packages: chip.packages.clone(), - memory: memory_regions, + memory: memory::get(chip_name), docs, cores: cores.to_vec(), }; @@ -1531,7 +1394,6 @@ pub fn dump_all_chips( peripheral_to_clock: rcc::ParsedRccs, dma_channels: dma::DmaChannels, chips: std::collections::HashMap, - memories: memory::Memories, docs: docs::Docs, ) -> Result<(), anyhow::Error> { std::fs::create_dir_all("build/data/chips")?; @@ -1552,7 +1414,6 @@ pub fn dump_all_chips( &peripheral_to_clock, &dma_channels, &chips, - &memories, &docs, ) }) diff --git a/stm32-data-gen/src/main.rs b/stm32-data-gen/src/main.rs index 677e31a..c687f42 100644 --- a/stm32-data-gen/src/main.rs +++ b/stm32-data-gen/src/main.rs @@ -69,9 +69,6 @@ fn main() -> anyhow::Result<()> { let registers = registers::Registers::parse()?; registers.write()?; - // stopwatch.section("Parsing memories"); - let memories = memory::Memories::parse()?; - // stopwatch.section("Parsing interrupts"); let chip_interrupts = interrupts::ChipInterrupts::parse()?; @@ -99,7 +96,6 @@ fn main() -> anyhow::Result<()> { peripheral_to_clock, dma_channels, chips, - memories, docs, )?; diff --git a/stm32-data-gen/src/memory.rs b/stm32-data-gen/src/memory.rs index af13851..e63215f 100644 --- a/stm32-data-gen/src/memory.rs +++ b/stm32-data-gen/src/memory.rs @@ -1,285 +1,330 @@ -use std::cmp::Ordering; -use std::collections::HashMap; -use std::fs; +use regex::Regex; +use stm32_data_serde::chip::memory::{self, Settings}; +use stm32_data_serde::chip::Memory; -#[derive(Debug, PartialEq)] -pub struct Memory { - pub device_id: u16, - pub ram: Ram, - pub flash_size: u32, - pub flash_regions: Vec, +struct Mem { + name: &'static str, + address: u32, + size: u32, } -#[derive(Clone, Copy, Debug, PartialEq)] -pub struct Ram { - pub address: u32, - pub bytes: u32, -} - -#[derive(Clone, Debug, PartialEq)] -pub struct FlashRegion { - pub bank: FlashBank, - pub address: u32, - pub bytes: u32, - pub settings: stm32_data_serde::chip::memory::Settings, -} - -#[derive(Clone, Copy, Debug, PartialEq)] -pub enum FlashBank { - Bank1, - Bank2, -} - -mod xml { - use serde::Deserialize; - - pub fn from_hex<'de, T, D>(deserializer: D) -> Result - where - D: serde::Deserializer<'de>, - T: num::Num, - T::FromStrRadixErr: std::fmt::Display, - { - use serde::de::Error; - let s: &str = Deserialize::deserialize(deserializer)?; - let s = s.trim(); - let (prefix, num) = s.split_at(2); - if prefix != "0x" && prefix != "0X" { - panic!("no hex prefix"); - } - T::from_str_radix(num, 16).map_err(D::Error::custom) - } - - pub fn opt_from_hex<'de, T, D>(deserializer: D) -> Result, D::Error> - where - D: serde::Deserializer<'de>, - T: num::Num, - T::FromStrRadixErr: std::fmt::Display, - { - Ok(Some(from_hex(deserializer)?)) - } - - #[derive(Debug, Deserialize, PartialEq)] - pub struct Root { - #[serde(rename = "Device")] - pub device: root::Device, - } - - mod root { - use serde::Deserialize; - - use super::from_hex; - - #[derive(Debug, Deserialize, PartialEq)] - pub struct Device { - #[serde(rename = "DeviceID", deserialize_with = "from_hex")] - pub device_id: u16, - #[serde(rename = "Name")] - pub name: String, - #[serde(rename = "Peripherals")] - pub peripherals: device::Peripherals, - } - - mod device { - use serde::Deserialize; - - #[derive(Debug, Deserialize, PartialEq)] - pub struct Peripherals { - #[serde(rename = "Peripheral")] - pub peripharal: Vec, - } - - mod peripherals { - use serde::Deserialize; - - use super::super::super::opt_from_hex; - - #[derive(Debug, Deserialize, PartialEq)] - pub struct Peripheral { - #[serde(rename = "Name")] - // pub name: peripheral::Name, - pub name: String, - #[serde(rename = "ErasedValue", deserialize_with = "opt_from_hex", default)] - pub erased_value: Option, - #[serde(rename = "Configuration", default)] - pub configuration: Vec, - } - - mod peripheral { - use serde::Deserialize; - - use super::super::super::super::opt_from_hex; - - #[derive(Debug, Deserialize, PartialEq)] - pub struct Configuration { - #[serde(rename = "Parameters", default)] - pub parameters: Option, - #[serde(rename = "Organization", default)] - pub organization: Option, - #[serde(rename = "Allignement", deserialize_with = "opt_from_hex", default)] - pub allignement: Option, - #[serde(rename = "Bank")] - pub bank: Vec, - } - - mod configuration { - use serde::Deserialize; - - use super::super::super::super::super::{from_hex, opt_from_hex}; - - #[derive(Debug, Deserialize, PartialEq)] - pub struct Parameters { - #[serde(deserialize_with = "from_hex")] - pub address: u32, - #[serde(deserialize_with = "from_hex")] - pub size: u32, - #[serde(deserialize_with = "opt_from_hex", default)] - pub occurence: Option, - } - - #[derive(Debug, Deserialize, PartialEq)] - pub struct Bank { - #[serde(default)] - pub name: Option, - #[serde(rename = "Field", default)] - pub field: Vec, - } - - mod bank { - use serde::Deserialize; - - #[derive(Debug, Deserialize, PartialEq)] - pub struct Field { - #[serde(rename = "Parameters")] - pub parameters: super::Parameters, - } - } - } - } - } - } - } -} -pub struct Memories(HashMap); - -impl Memories { - pub fn parse() -> anyhow::Result { - let mut paths: Vec<_> = glob::glob("sources/cubeprogdb/db/*.xml") - .unwrap() - .map(Result::unwrap) - .collect(); - paths.sort(); - - let mut memories = HashMap::new(); - - for f in paths { - // println!("Parsing {f:?}"); - let file = fs::read_to_string(f)?; - let parsed: xml::Root = quick_xml::de::from_str(&file)?; - // dbg!(&parsed); - - let device_id = parsed.device.device_id; - - let mut ram = None; - let mut flash_size = None; - let mut flash_regions = vec![]; - - for mut peripheral in parsed.device.peripherals.peripharal { - if peripheral.name == "Embedded SRAM" && ram.is_none() { - let config = peripheral.configuration.first().unwrap(); - let parameters = config.parameters.as_ref().unwrap(); - ram = Some(Ram { - address: parameters.address, - bytes: parameters.size, - }); - } - - enum BlockKind { - Main, - } - let kind = match peripheral.name.as_str() { - "Embedded Flash" => Some(BlockKind::Main), - "OTP" => None, - _ => None, - }; - - if let Some(kind) = kind { - peripheral.configuration.sort_by(|a, b| { - // Prefer largest size - let ordering = b - .parameters - .as_ref() - .unwrap() - .size - .partial_cmp(&a.parameters.as_ref().unwrap().size) - .unwrap(); - - // ... then prefer single ordering over dual - if ordering == Ordering::Equal { - // Possible values are Single and Dual - b.organization.partial_cmp(&a.organization).unwrap() - } else { - ordering - } - }); - let config = peripheral.configuration.first().unwrap(); - - if flash_size.is_none() { - let parameters = config.parameters.as_ref().unwrap(); - - flash_size = Some(parameters.size); - } - - for bank in config.bank.iter() { - let flash_bank = match kind { - BlockKind::Main => match bank.name.as_deref() { - Some("Bank 1") => Some(FlashBank::Bank1), - Some("Bank 2") => Some(FlashBank::Bank2), - Some("EEPROM1") => None, - Some("EEPROM2") => None, - None => { - assert_eq!(1, config.bank.len()); - Some(FlashBank::Bank1) - } - Some(other) => unimplemented!("Unsupported flash bank {}", other), - }, - }; - - if let Some(flash_bank) = flash_bank { - let erase_value = peripheral.erased_value.unwrap(); - let write_size = config.allignement.unwrap(); - flash_regions.extend(bank.field.iter().map(|field| FlashRegion { - bank: flash_bank, - address: field.parameters.address, - bytes: field.parameters.occurence.unwrap() * field.parameters.size, - settings: stm32_data_serde::chip::memory::Settings { - erase_value, - write_size, - erase_size: field.parameters.size, - }, - })); - } - } - } - } - - memories.insert( - device_id, - Memory { - device_id, - ram: ram.unwrap(), - flash_size: flash_size.unwrap_or_default(), - flash_regions, +macro_rules! mem { + ($($name:ident $addr:literal $size:literal),*) => { + &[ + $( + Mem { + name: stringify!($name), + address: $addr, + size: $size*1024, }, - ); - } + )* + ] + }; +} - Ok(Self(memories)) +#[rustfmt::skip] +static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ + ("STM32C01..4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 6)), + ("STM32C01..6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 6)), + ("STM32C03..4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 12)), + ("STM32C03..6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 12)), + ("STM32F0...C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 32)), + ("STM32F0[35]..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 8)), + ("STM32F0[47]..6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 6)), + ("STM32F03..4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 4)), + ("STM32F03..6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 4)), + ("STM32F04..4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 6)), + ("STM32F05..4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 8)), + ("STM32F05..6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 8)), + ("STM32F07..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 16)), + ("STM32F07..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 16)), + ("STM32F09..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 32)), + ("STM32F1.[12].6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 6)), + ("STM32F1.[12].8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 10)), + ("STM32F1.[12].B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 16)), + ("STM32F1.[57].B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 64)), + ("STM32F1.[57].C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 64)), + ("STM32F1.0.6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 4)), + ("STM32F1.0.8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 8)), + ("STM32F1.0.B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 8)), + ("STM32F1.0.C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 24)), + ("STM32F1.0.D", mem!(BANK_1 0x08000000 384, SRAM 0x20000000 32)), + ("STM32F1.0.E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 32)), + ("STM32F1.1.C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 32)), + ("STM32F1.1.D", mem!(BANK_1 0x08000000 384, SRAM 0x20000000 48)), + ("STM32F1.1.E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 48)), + ("STM32F1.1.F", mem!(BANK_1 0x08000000 512, BANK_2 0x08080000 256, SRAM 0x20000000 80)), + ("STM32F1.1.G", mem!(BANK_1 0x08000000 512, BANK_2 0x08080000 512, SRAM 0x20000000 80)), + ("STM32F1.3.6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 10)), + ("STM32F1.3.8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 20)), + ("STM32F1.3.B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 20)), + ("STM32F1.3.C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 48)), + ("STM32F1.3.D", mem!(BANK_1 0x08000000 384, SRAM 0x20000000 64)), + ("STM32F1.3.E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 64)), + ("STM32F1.3.F", mem!(BANK_1 0x08000000 512, BANK_2 0x08080000 256, SRAM 0x20000000 96)), + ("STM32F1.3.G", mem!(BANK_1 0x08000000 512, BANK_2 0x08080000 512, SRAM 0x20000000 96)), + ("STM32F1.5.8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 64)), + ("STM32F10[012].4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 4)), + ("STM32F103.4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 6)), + ("STM32F2...B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 64, SRAM2 0x2001c000 0)), + ("STM32F2...E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 128, SRAM2 0x2001c000 0)), + ("STM32F2...F", mem!(BANK_1 0x08000000 768, SRAM 0x20000000 128, SRAM2 0x2001c000 0)), + ("STM32F2...G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 128, SRAM2 0x2001c000 0)), + ("STM32F2.5.C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 96, SRAM2 0x2001c000 0)), + ("STM32F2.7.C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 128, SRAM2 0x2001c000 0)), + ("STM32F3...4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 12)), + ("STM32F3...D", mem!(BANK_1 0x08000000 384, SRAM 0x20000000 64)), + ("STM32F3...E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 64)), + ("STM32F3.[12].6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 16)), + ("STM32F3.[34].6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 12)), + ("STM32F3([17]..8|0[12].8)", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 16)), + ("STM32F3([23]..8|03.8)", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 12)), + ("STM32F3[05]..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 40)), + ("STM32F30..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 32)), + ("STM32F37..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 24)), + ("STM32F37..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 32)), + ("STM32F4...8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 32)), + ("STM32F4...D", mem!(BANK_1 0x08000000 384, SRAM 0x20000000 64)), + ("STM32F4...H", mem!(BANK_1 0x08000000 1536, SRAM 0x20000000 320, SRAM2 0x20040000 0)), + ("STM32F4.[567].E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 128, SRAM2 0x2001c000 0)), + ("STM32F4.1.C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 64)), + ("STM32F4.1.E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 64)), + ("STM32F4.2.E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 256)), + ("STM32F4.6.C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 128, SRAM2 0x2001c000 0)), + ("STM32F4(1[57].G|0..G)", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 128, SRAM2 0x2001c000 0)), + ("STM32F4[23]..G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 192, SRAM2 0x2001c000 0)), + ("STM32F4[23]..I", mem!(BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, SRAM 0x20000000 192, SRAM2 0x2001c000 0)), + ("STM32F4[67]..G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 320, SRAM2 0x20028000 0)), + ("STM32F4[67]..I", mem!(BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, SRAM 0x20000000 320, SRAM2 0x20028000 0)), + ("STM32F40..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 64)), + ("STM32F41..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 32)), + ("STM32F412.G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 256)), + ("STM32F413.G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 320, SRAM2 0x20040000 0)), + ("STM32F429.E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 192, SRAM2 0x2001c000 0)), + ("STM32F469.E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 320, SRAM2 0x20028000 0)), + ("STM32F7...C", mem!(BANK_1 0x08000000 256, SRAM 0x20010000 192, SRAM2 0x2003c000 0)), + ("STM32F7...I", mem!(BANK_1 0x08000000 2048, SRAM 0x20020000 384, SRAM2 0x2007c000 0)), + ("STM32F7[23]..E", mem!(BANK_1 0x08000000 512, SRAM 0x20010000 192, SRAM2 0x2003c000 0)), + ("STM32F7[45]..G", mem!(BANK_1 0x08000000 1024, SRAM 0x20010000 320, SRAM2 0x2004c000 0)), + ("STM32F73..8", mem!(BANK_1 0x08000000 64, SRAM 0x20010000 192, SRAM2 0x2003c000 0)), + ("STM32F74..E", mem!(BANK_1 0x08000000 512, SRAM 0x20010000 320, SRAM2 0x2004c000 0)), + ("STM32F75..8", mem!(BANK_1 0x08000000 64, SRAM 0x20010000 320, SRAM2 0x2004c000 0)), + ("STM32F76..G", mem!(BANK_1 0x08000000 1024, SRAM 0x20020000 384, SRAM2 0x2007c000 0)), + ("STM32G0...4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 8)), + ("STM32G0...C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 128)), + ("STM32G0...E", mem!(BANK_1 0x08000000 256, BANK_2 0x08040000 256, SRAM 0x20000000 128)), + ("STM32G0[34]..[68]", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 8)), + ("STM32G0[56]..6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 16)), + ("STM32G0[56]..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 16)), + ("STM32G0[78]..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 32)), + ("STM32G07..6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 32)), + ("STM32G07..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 32)), + ("STM32G0B..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 128)), + ("STM32G4...6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 20, SRAM2 0x20004000 0)), + ("STM32G4...8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 20, SRAM2 0x20004000 0)), + ("STM32G4[34]..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 20, SRAM2 0x20004000 0)), + ("STM32G4[78]..E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 96, SRAM2 0x20014000 0)), + ("STM32G4[9A]..E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 32, SRAM2 0x20014000 0)), + ("STM32G47..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 96, SRAM2 0x20014000 0)), + ("STM32G47..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 96, SRAM2 0x20014000 0)), + ("STM32G49..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 32, SRAM2 0x20014000 0)), + ("STM32H5...B", mem!(BANK_1 0x08000000 64, BANK_2 0x08010000 64, SRAM 0x20000000 32, SRAM2 0x20004000 0)), + ("STM32H5...G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 256, SRAM2 0x20040000 0)), + ("STM32H5...I", mem!(BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, SRAM 0x20000000 256, SRAM2 0x20040000 0)), + ("STM32H7...E", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 512, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 128, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), + ("STM32H7[23]..G", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 1024, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 128, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), + ("STM32H7[45]..I", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, D2_AXISRAM 0x10000000 0, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 512, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), + ("STM32H7[AB]..I", mem!(BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, SRAM 0x24000000 1024)), + ("STM32H73..B", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 128, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 128, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), + ("STM32H74..G", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 1024, D2_AXISRAM 0x10000000 0, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 512, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), + ("STM32H75..B", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 128, D2_AXISRAM 0x10000000 0, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 512, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), + ("STM32H7A..G", mem!(BANK_1 0x08000000 1024, SRAM 0x24000000 1024)), + ("STM32H7B..B", mem!(BANK_1 0x08000000 128, SRAM 0x24000000 1024)), + ("STM32L0...3", mem!(BANK_1 0x08000000 8, SRAM 0x20000000 2)), + ("STM32L0...6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 8)), + ("STM32L0...B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 20)), + ("STM32L0...Z", mem!(BANK_1 0x08000000 192, SRAM 0x20000000 20)), + ("STM32L0[12]..4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 2)), + ("STM32L0[156]..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 8)), + ("STM32L0[34]..4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 8)), + ("STM32L0[78]..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 20)), + ("STM32L1...B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 10)), + ("STM32L1...C..", mem!(BANK_1 0x08000000 192, BANK_2 0x08030000 64, SRAM 0x20000000 32)), + ("STM32L1...D..", mem!(BANK_1 0x08000000 128, BANK_2 0x08040000 256, SRAM 0x20000000 80)), + ("STM32L1...D", mem!(BANK_1 0x08000000 192, BANK_2 0x08030000 192, SRAM 0x20000000 48)), + ("STM32L1...E", mem!(BANK_1 0x08000000 256, BANK_2 0x08040000 256, SRAM 0x20000000 80)), + ("STM32L1(6.[RV]C|5.[CRUV]C)", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 32)), + ("STM32L1[56].[QZ]C", mem!(BANK_1 0x08000000 192, BANK_2 0x08030000 64, SRAM 0x20000000 32)), + ("STM32L10..6..", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 10)), + ("STM32L10..6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 4)), + ("STM32L10..8..", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 10)), + ("STM32L10..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 8)), + ("STM32L10..B..", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 10)), + ("STM32L10..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 16)), + ("STM32L15..6..", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 16)), + ("STM32L15..6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 10)), + ("STM32L15..8..", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 16)), + ("STM32L15..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 10)), + ("STM32L15..B..", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 16)), + ("STM32L4...8", mem!(BANK_1 0x08000000 64, SRAM2 0x10000000 0, SRAM 0x20000000 40)), + ("STM32L4...I", mem!(BANK_1 0x08000000 2048, SRAM2 0x10000000 0, SRAM 0x20000000 192)), + ("STM32L4[12]..B", mem!(BANK_1 0x08000000 128, SRAM2 0x10000000 0, SRAM 0x20000000 40)), + ("STM32L4[34]..C", mem!(BANK_1 0x08000000 256, SRAM2 0x10000000 0, SRAM 0x20000000 48)), + ("STM32L4[56]..E", mem!(BANK_1 0x08000000 512, SRAM2 0x10000000 0, SRAM 0x20000000 128)), + ("STM32L4[78]..G", mem!(BANK_1 0x08000000 512, BANK_2 0x08080000 512, SRAM2 0x10000000 0, SRAM 0x20000000 96)), + ("STM32L4[9A]..G", mem!(BANK_1 0x08000000 512, BANK_2 0x08080000 512, SRAM2 0x10000000 0, SRAM 0x20000000 256)), + ("STM32L4[PQR]..G", mem!(BANK_1 0x08000000 1024, SRAM2 0x10000000 0, SRAM 0x20000000 192)), + ("STM32L43..B", mem!(BANK_1 0x08000000 128, SRAM2 0x10000000 0, SRAM 0x20000000 48)), + ("STM32L45..C", mem!(BANK_1 0x08000000 256, SRAM2 0x10000000 0, SRAM 0x20000000 128)), + ("STM32L47..C", mem!(BANK_1 0x08000000 256, SRAM2 0x10000000 0, SRAM 0x20000000 96)), + ("STM32L47..E", mem!(BANK_1 0x08000000 512, SRAM2 0x10000000 0, SRAM 0x20000000 96)), + ("STM32L49..E", mem!(BANK_1 0x08000000 512, SRAM2 0x10000000 0, SRAM 0x20000000 256)), + ("STM32L4P..E", mem!(BANK_1 0x08000000 512, SRAM2 0x10000000 0, SRAM 0x20000000 192)), + ("STM32L5...C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 256, SRAM2 0x20030000 0)), + ("STM32L5...E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 256, SRAM2 0x20030000 0)), + ("STM32U5...B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 64, SRAM2 0x20030000 0)), + ("STM32U5...C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 64, SRAM2 0x20030000 0)), + ("STM32U5...E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 64, SRAM2 0x20030000 0)), + ("STM32U5...G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 768, SRAM2 0x20030000 0)), + ("STM32U5...J", mem!(BANK_1 0x08000000 4096, SRAM 0x20000000 32, SRAM2 0x200c0000 0)), + ("STM32U5[78]..I", mem!(BANK_1 0x08000000 2048, SRAM 0x20000000 768, SRAM2 0x20030000 0)), + ("STM32U59..I", mem!(BANK_1 0x08000000 2048, SRAM 0x20000000 32, SRAM2 0x200c0000 0)), + ("STM32WB...Y", mem!(BANK_1 0x08000000 640, SRAM 0x20000000 192)), + ("STM32WB.(0C|5V)G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 128)), + ("STM32WB.(5C|5R)G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 192)), + ("STM32WB1..C", mem!(BANK_1 0x08000000 320, SRAM 0x20000000 12)), + ("STM32WB3..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 96)), + ("STM32WB3..E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 96)), + ("STM32WB5..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 128)), + ("STM32WB5.[CR]E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 192)), + ("STM32WB5.VE", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 128)), + ("STM32WBA...E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 96, SRAM2 0x20010000 0)), + ("STM32WBA...G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 128, SRAM2 0x20010000 0)), + ("STM32WL...8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 12, SRAM2 0x20008000 0)), + ("STM32WL...B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 12, SRAM2 0x20008000 0)), + ("STM32WL...C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 12, SRAM2 0x20008000 0)), +]); + +struct FlashInfo { + write_size: u32, + erase_size: &'static [(u32, u32)], + erase_value: u8, +} + +#[rustfmt::skip] +static FLASH_INFO: RegexMap = RegexMap::new(&[ + ("STM32C0.*", FlashInfo{ erase_value: 0xFF, write_size: 8, erase_size: &[( 2*1024, 0)] }), + ("STM32F030.C", FlashInfo{ erase_value: 0xFF, write_size: 4, erase_size: &[( 2*1024, 0)] }), + ("STM32F070.6", FlashInfo{ erase_value: 0xFF, write_size: 4, erase_size: &[( 1*1024, 0)] }), + ("STM32F0[79].*", FlashInfo{ erase_value: 0xFF, write_size: 4, erase_size: &[( 2*1024, 0)] }), + ("STM32F0.*", FlashInfo{ erase_value: 0xFF, write_size: 4, erase_size: &[( 1*1024, 0)] }), + ("STM32F10[0123].[468B]", FlashInfo{ erase_value: 0xFF, write_size: 4, erase_size: &[( 1*1024, 0)] }), + ("STM32F1.*", FlashInfo{ erase_value: 0xFF, write_size: 4, erase_size: &[( 2*1024, 0)] }), + ("STM32F2.*", FlashInfo{ erase_value: 0xFF, write_size: 4, erase_size: &[( 16*1024, 4), (64*1024, 1), ( 128*1024, 0)] }), + ("STM32F3.*", FlashInfo{ erase_value: 0xFF, write_size: 8, erase_size: &[( 2*1024, 0)] }), + ("STM32F4.*", FlashInfo{ erase_value: 0xFF, write_size: 4, erase_size: &[( 16*1024, 4), (64*1024, 1), ( 128*1024, 0)] }), + ("STM32F7[4567].*", FlashInfo{ erase_value: 0xFF, write_size: 16, erase_size: &[( 32*1024, 4), (128*1024, 1), ( 256*1024, 0)] }), + ("STM32F7.*", FlashInfo{ erase_value: 0xFF, write_size: 16, erase_size: &[( 16*1024, 4), (64*1024, 1), ( 128*1024, 0)] }), + ("STM32G0.*", FlashInfo{ erase_value: 0xFF, write_size: 8, erase_size: &[( 2*1024, 0)] }), + ("STM32G4[78].*", FlashInfo{ erase_value: 0xFF, write_size: 8, erase_size: &[( 4*1024, 0)] }), + ("STM32G4.*", FlashInfo{ erase_value: 0xFF, write_size: 8, erase_size: &[( 2*1024, 0)] }), + ("STM32H5.*", FlashInfo{ erase_value: 0xFF, write_size: 16, erase_size: &[( 8*1024, 0)] }), + ("STM32H7[AB].*", FlashInfo{ erase_value: 0xFF, write_size: 32, erase_size: &[( 8*1024, 0)] }), + ("STM32H7.*", FlashInfo{ erase_value: 0xFF, write_size: 32, erase_size: &[(128*1024, 0)] }), + ("STM32L4[PQRS].*", FlashInfo{ erase_value: 0xFF, write_size: 8, erase_size: &[( 8*1024, 0)] }), + ("STM32L4.*", FlashInfo{ erase_value: 0xFF, write_size: 8, erase_size: &[( 2*1024, 0)] }), + ("STM32L0.*", FlashInfo{ erase_value: 0x00, write_size: 4, erase_size: &[( 128, 0)] }), + ("STM32L1.*", FlashInfo{ erase_value: 0x00, write_size: 4, erase_size: &[( 256, 0)] }), + ("STM32L5.*", FlashInfo{ erase_value: 0xFF, write_size: 8, erase_size: &[( 4*1024, 0)] }), + ("STM32U5[78].*", FlashInfo{ erase_value: 0xFF, write_size: 16, erase_size: &[( 8*1024, 0)] }), + ("STM32U5.*", FlashInfo{ erase_value: 0xFF, write_size: 16, erase_size: &[( 16*1024, 0)] }), + ("STM32WBA.*", FlashInfo{ erase_value: 0xFF, write_size: 16, erase_size: &[( 8*1024, 0)] }), + ("STM32WB1.*", FlashInfo{ erase_value: 0x00, write_size: 8, erase_size: &[( 2*1024, 0)] }), + ("STM32WB.*", FlashInfo{ erase_value: 0xFF, write_size: 8, erase_size: &[( 4*1024, 0)] }), + ("STM32WL.*", FlashInfo{ erase_value: 0xFF, write_size: 8, erase_size: &[( 2*1024, 0)] }), + ("STM32.*", FlashInfo{ erase_value: 0xFF, write_size: 8, erase_size: &[( 2*1024, 0)] }), +]); + +struct RegexMap { + map: &'static [(&'static str, T)], +} + +impl RegexMap { + const fn new(map: &'static [(&'static str, T)]) -> Self { + Self { map } } - pub fn get(&self, die: &str) -> &Memory { - assert!(die.starts_with("DIE")); - let device_id = u16::from_str_radix(&die[3..], 16).unwrap(); - - self.0.get(&device_id).unwrap() + fn get(&self, key: &str) -> Option<&T> { + for (k, v) in self.map { + if Regex::new(&format!("^{k}$")).unwrap().is_match(key) { + return Some(v); + } + } + None } } + +pub fn get(chip: &str) -> Vec { + let mems = *MEMS.get(chip).unwrap(); + let flash = FLASH_INFO.get(chip).unwrap(); + + let mut res = Vec::new(); + + for mem in mems { + if mem.name.starts_with("BANK") { + if flash.erase_size.len() == 1 || mem.size <= flash.erase_size[0].0 * flash.erase_size[0].1 { + res.push(Memory { + name: mem.name.to_string(), + address: mem.address, + size: mem.size, + kind: memory::Kind::Flash, + settings: Some(Settings { + write_size: flash.write_size, + erase_size: flash.erase_size[0].0, + erase_value: flash.erase_value, + }), + }); + } else { + let mut offs = 0; + for (i, &(erase_size, count)) in flash.erase_size.iter().enumerate() { + if offs >= mem.size { + break; + } + let left = mem.size - offs; + let mut size = left; + if i != flash.erase_size.len() - 1 { + size = size.min(erase_size * count); + } + res.push(Memory { + name: format!("{}_REGION_{}", mem.name, i + 1), + address: mem.address + offs, + size: size, + kind: memory::Kind::Flash, + settings: Some(Settings { + write_size: flash.write_size, + erase_size: erase_size, + erase_value: flash.erase_value, + }), + }); + offs += size; + } + } + } else { + let mut kind = memory::Kind::Ram; + if mem.name.contains("FLASH") || mem.name.contains("AXIICP") { + kind = memory::Kind::Flash; + } + res.push(Memory { + name: mem.name.to_string(), + address: mem.address, + size: mem.size, + kind, + settings: None, + }); + } + } + + res.sort_by_key(|m| (m.address, m.name.clone())); + + res +} From f60ad0d665fab8b2008b56ad26818edae38fe1a2 Mon Sep 17 00:00:00 2001 From: Torin Cooper-Bennun Date: Thu, 11 Apr 2024 10:24:55 +0100 Subject: [PATCH 34/41] flash_h50: make _CUR registers read-only --- data/registers/flash_h50.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/data/registers/flash_h50.yaml b/data/registers/flash_h50.yaml index 078c346..683f4ce 100644 --- a/data/registers/flash_h50.yaml +++ b/data/registers/flash_h50.yaml @@ -46,6 +46,7 @@ block/FLASH: - name: OPTSR_CUR description: FLASH option status register byte_offset: 80 + access: Read fieldset: OPTSR - name: OPTSR_PRG description: FLASH option status register @@ -54,6 +55,7 @@ block/FLASH: - name: OPTSR2_CUR description: FLASH option status register 2 byte_offset: 112 + access: Read fieldset: OPTSR2 - name: OPTSR2_PRG description: FLASH option status register 2 @@ -62,6 +64,7 @@ block/FLASH: - name: NSBOOTR_CUR description: FLASH non-secure unique boot entry register byte_offset: 128 + access: Read fieldset: NSBOOTR - name: NSBOOTR_PRG description: FLASH non-secure unique boot entry address @@ -70,6 +73,7 @@ block/FLASH: - name: OTPBLR_CUR description: FLASH non-secure OTP block lock byte_offset: 144 + access: Read fieldset: OTPBLR - name: OTPBLR_PRG description: FLASH non-secure OTP block lock @@ -82,6 +86,7 @@ block/FLASH: - name: WRPSGN1R_CUR description: FLASH write sector protection for Bank1 byte_offset: 232 + access: Read fieldset: WRP - name: WRPSGN1R_PRG description: FLASH write sector protection for Bank1 @@ -90,6 +95,7 @@ block/FLASH: - name: HDP1R_CUR description: FLASH HDP Bank1 register byte_offset: 248 + access: Read fieldset: HDP1R - name: HDP1R_PRG description: FLASH HDP Bank1 register @@ -110,6 +116,7 @@ block/FLASH: - name: WRPSGN2R_CUR description: FLASH write sector protection for Bank2 byte_offset: 488 + access: Read fieldset: WRP - name: WRPSGN2R_PRG description: FLASH write sector protection for Bank2 @@ -118,6 +125,7 @@ block/FLASH: - name: HDP2R_CUR description: FLASH HDP Bank2 register byte_offset: 504 + access: Read fieldset: HDP2R - name: HDP2R_PRG description: FLASH HDP Bank2 register From a0c7c136fab7fdbb9c9e02edf1ec4cc4fd534651 Mon Sep 17 00:00:00 2001 From: Torin Cooper-Bennun Date: Thu, 11 Apr 2024 10:25:07 +0100 Subject: [PATCH 35/41] flash_h50: add PRODUCT_STATE enum the values are taken from the official HAL headers; I have only included enum variants which are definitively mentioned in RM0492, excluding other variants mentioned in the HAL headers --- data/registers/flash_h50.yaml | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/data/registers/flash_h50.yaml b/data/registers/flash_h50.yaml index 683f4ce..df89390 100644 --- a/data/registers/flash_h50.yaml +++ b/data/registers/flash_h50.yaml @@ -460,9 +460,10 @@ fieldset/OPTSR: bit_size: 1 enum: OPTSR_NRST_STDBY - name: PRODUCT_STATE - description: Life state code (based on Hamming 8,4). More information in . + description: Life state code (based on Hamming 8,4). bit_offset: 8 bit_size: 8 + enum: PRODUCT_STATE - name: IO_VDD_HSLV description: High-speed IO at low VDD voltage status bit. This bit can be set only with VDD below 2.5 V. bit_offset: 16 @@ -723,6 +724,27 @@ enum/OPTSR_NRST_STDBY: - name: B_0x1 description: no reset generated when entering Standby mode on core domain. value: 1 +enum/PRODUCT_STATE: + bit_size: 8 + variants: + - name: OPEN + description: Open + value: 0xED + - name: PROVISIONING + description: Provisioning + value: 0x17 + - name: IROT_PROVISIONED + description: iROT-Provisioned + value: 0x2E + - name: CLOSED + description: Closed + value: 0x72 + - name: LOCKED + description: Locked + value: 0x5C + - name: REGRESSION + description: Regression + value: 0x9A enum/OPTSR_NRST_STOP: bit_size: 1 variants: From af9e90217252ef6b2d1c84f0a58bcaae111b9b43 Mon Sep 17 00:00:00 2001 From: Warren Campbell Date: Thu, 11 Apr 2024 18:04:35 -0400 Subject: [PATCH 36/41] Corrects STM32U5 memory sizes --- stm32-data-gen/src/memory.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/stm32-data-gen/src/memory.rs b/stm32-data-gen/src/memory.rs index e63215f..3e24a59 100644 --- a/stm32-data-gen/src/memory.rs +++ b/stm32-data-gen/src/memory.rs @@ -182,13 +182,14 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32L4P..E", mem!(BANK_1 0x08000000 512, SRAM2 0x10000000 0, SRAM 0x20000000 192)), ("STM32L5...C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 256, SRAM2 0x20030000 0)), ("STM32L5...E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 256, SRAM2 0x20030000 0)), - ("STM32U5...B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 64, SRAM2 0x20030000 0)), - ("STM32U5...C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 64, SRAM2 0x20030000 0)), - ("STM32U5...E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 64, SRAM2 0x20030000 0)), - ("STM32U5...G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 768, SRAM2 0x20030000 0)), - ("STM32U5...J", mem!(BANK_1 0x08000000 4096, SRAM 0x20000000 32, SRAM2 0x200c0000 0)), - ("STM32U5[78]..I", mem!(BANK_1 0x08000000 2048, SRAM 0x20000000 768, SRAM2 0x20030000 0)), - ("STM32U59..I", mem!(BANK_1 0x08000000 2048, SRAM 0x20000000 32, SRAM2 0x200c0000 0)), + ("STM32U5[34]..B", mem!(BANK_1 0x08000000 64, BANK_2 0x08010000 64, SRAM 0x20000000 192, SRAM2 0x20030000 64)), + ("STM32U5[34]..C", mem!(BANK_1 0x08000000 128, BANK_2 0x08020000 128, SRAM 0x20000000 192, SRAM2 0x20030000 64)), + ("STM32U5[43]..E", mem!(BANK_1 0x08000000 256, BANK_2 0x08040000 256, SRAM 0x20000000 192, SRAM2 0x20030000 64)), + ("STM32U5[78]..G", mem!(BANK_1 0x08000000 512, BANK_2 0x08080000 512, SRAM 0x20000000 192, SRAM2 0x20030000 64, SRAM3 0x20040000 512)), + ("STM32U5[78]..I", mem!(BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, SRAM 0x20000000 192, SRAM2 0x20030000 64, SRAM3 0x20040000 512)), + ("STM32U5[9A]..I", mem!(BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, SRAM 0x20000000 768, SRAM2 0x200c0000 64, SRAM3 0x200d0000 832, SRAM5 0x201a0000 832)), + ("STM32U5[9A]..J", mem!(BANK_1 0x08000000 2048, BANK_2 0x08200000 2048, SRAM 0x20000000 768, SRAM2 0x200c0000 64, SRAM3 0x200d0000 832, SRAM5 0x201a0000 832)), + ("STM32U5[FG]..J", mem!(BANK_1 0x08000000 2048, BANK_2 0x08200000 2048, SRAM 0x20000000 768, SRAM2 0x200c0000 64, SRAM3 0x200d0000 832, SRAM5 0x201a0000 832, SRAM6 0x20270000 512)), ("STM32WB...Y", mem!(BANK_1 0x08000000 640, SRAM 0x20000000 192)), ("STM32WB.(0C|5V)G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 128)), ("STM32WB.(5C|5R)G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 192)), From 4df4f6840c7f75173131b3ccc9991d64e3034393 Mon Sep 17 00:00:00 2001 From: Torin Cooper-Bennun Date: Fri, 12 Apr 2024 17:03:44 +0100 Subject: [PATCH 37/41] flash_h50: plain bool for SWAP_BANK fields --- data/registers/flash_h50.yaml | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/data/registers/flash_h50.yaml b/data/registers/flash_h50.yaml index df89390..9aa5226 100644 --- a/data/registers/flash_h50.yaml +++ b/data/registers/flash_h50.yaml @@ -421,7 +421,6 @@ fieldset/OPTCR: description: "Bank swapping option configuration bit\r SWAP_BANK controls whether Bank1 and Bank2 are swapped or not. This bit is loaded with the SWAP_BANK bit of FLASH_OPTSR_CUR register only after reset or POR." bit_offset: 31 bit_size: 1 - enum: OPTCR_SWAP_BANK fieldset/OPTSR: description: FLASH option status register fields: @@ -488,7 +487,6 @@ fieldset/OPTSR: description: "Bank swapping option status bit\r SWAP_BANK reflects whether Bank1 and Bank2 are swapped or not.\r SWAP_BANK is loaded to SWAP_BANK of FLASH_OPTCR after a reset." bit_offset: 31 bit_size: 1 - enum: OPTSR_SWAP_BANK fieldset/OPTSR2: description: FLASH option status register 2 fields: @@ -628,15 +626,6 @@ enum/NSPRIV: - name: B_0x1 description: access to non secure registers is denied in case of non privileged access. value: 1 -enum/OPTCR_SWAP_BANK: - bit_size: 1 - variants: - - name: B_0x0 - description: Bank1 and Bank2 not swapped - value: 0 - - name: B_0x1 - description: Bank1 and Bank2 swapped - value: 1 enum/OPTSR_BKPRAM_ECC: bit_size: 1 variants: @@ -763,15 +752,6 @@ enum/OPTSR_SRAM_ECC: - name: B_0x1 description: SRAM2 ECC check disabled value: 1 -enum/OPTSR_SWAP_BANK: - bit_size: 1 - variants: - - name: B_0x0 - description: Bank1 and Bank2 not swapped - value: 0 - - name: B_0x1 - description: Bank1 and Bank2 swapped - value: 1 enum/OPTSR_WWDG_SW: bit_size: 1 variants: From 62b1ab50db2cb15a512ff7ee900dc182b7721a20 Mon Sep 17 00:00:00 2001 From: Torin Cooper-Bennun Date: Fri, 12 Apr 2024 17:04:33 +0100 Subject: [PATCH 38/41] flash_h50: rename BKSEL variants --- data/registers/flash_h50.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/registers/flash_h50.yaml b/data/registers/flash_h50.yaml index 9aa5226..85177d3 100644 --- a/data/registers/flash_h50.yaml +++ b/data/registers/flash_h50.yaml @@ -581,11 +581,11 @@ fieldset/WRP: enum/BKSEL: bit_size: 1 variants: - - name: B_0x0 + - name: BANK1 description: Bank1 is selected for Bank erase / sector erase / interrupt enable value: 0 - - name: B_0x1 - description: Bank2 is selected for BER / SER + - name: BANK2 + description: Bank1 is selected for Bank erase / sector erase / interrupt enable value: 1 enum/CODE_OP: bit_size: 3 From d4a97f60b182cc5da8852fa28bda1230caa1c296 Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Sat, 13 Apr 2024 02:52:39 +0200 Subject: [PATCH 39/41] Add stm32u0. --- .vscode/settings.json | 3 + d | 2 +- data/dmamux/U0_DMAMUX1.yaml | 76 ++ data/registers/exti_u0.yaml | 79 ++ data/registers/flash_u0.yaml | 368 ++++++ data/registers/pwr_u0.yaml | 978 +++++++++++++++ data/registers/rcc_u0.yaml | 1911 ++++++++++++++++++++++++++++++ data/registers/syscfg_u0.yaml | 752 ++++++++++++ stm32-data-gen/src/chips.rs | 37 +- stm32-data-gen/src/interrupts.rs | 8 + stm32-data-gen/src/memory.rs | 30 +- stm32-metapac-gen/res/Cargo.toml | 1 + 12 files changed, 4232 insertions(+), 13 deletions(-) create mode 100644 data/dmamux/U0_DMAMUX1.yaml create mode 100644 data/registers/exti_u0.yaml create mode 100644 data/registers/flash_u0.yaml create mode 100644 data/registers/pwr_u0.yaml create mode 100644 data/registers/rcc_u0.yaml create mode 100644 data/registers/syscfg_u0.yaml diff --git a/.vscode/settings.json b/.vscode/settings.json index ee57673..1ecdb3f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,6 +3,9 @@ "[toml]": { "editor.formatOnSave": false }, + "[yaml]": { + "editor.formatOnSave": false + }, "[c]": { "editor.formatOnSave": false }, diff --git a/d b/d index 74ac3dc..0270225 100755 --- a/d +++ b/d @@ -4,7 +4,7 @@ set -e cd $(dirname $0) CMD=$1 -REV=796a8322b8f6e4329002a1fb49438aec95dae812 +REV=421b5868c2175762ee4c870bb0511ae271abefc9 shift case "$CMD" in diff --git a/data/dmamux/U0_DMAMUX1.yaml b/data/dmamux/U0_DMAMUX1.yaml new file mode 100644 index 0000000..a3ac8a3 --- /dev/null +++ b/data/dmamux/U0_DMAMUX1.yaml @@ -0,0 +1,76 @@ +GENERATOR0: 1 +GENERATOR1: 2 +GENERATOR2: 3 +GENERATOR3: 4 +ADC1: 5 +AES_IN: 6 +AES_OUT: 7 +DAC1_CH1: 8 +I2C1_RX: 9 +I2C1_TX: 10 +I2C2_RX: 11 +I2C2_TX: 12 +I2C3_RX: 13 +I2C3_TX: 14 +I2C4_RX: 15 +I2C4_TX: 16 +LPTIM1_IC1: 17 +LPTIM1_IC2: 18 +LPTIM1_IC3: 19 +LPTIM1_IC4: 20 +LPTIM1_UE4: 21 +LPTIM2_IC1: 22 +LPTIM2_IC2: 23 +LPTIM2_UE: 24 +LPTIM3_IC1: 25 +LPTIM3_IC2: 26 +LPTIM3_IC3: 27 +LPTIM3_IC4: 28 +LPTIM3_UE: 29 +LPUART1_RX: 30 +LPUART1_TX: 31 +LPUART2_RX: 32 +LPUART2_TX: 33 +LPUART3_RX: 34 +LPUART3_TX: 35 +SPI1_RX: 36 +SPI1_TX: 37 +SPI2_RX: 38 +SPI2_TX: 39 +SPI3_RX: 40 +SPI3_TX: 41 +TIM1_CH1: 42 +TIM1_CH2: 43 +TIM1_CH3: 44 +TIM1_CH4: 45 +TIM1_TRIG_COM: 46 +TIM1_UP: 47 +TIM2_CH1: 48 +TIM2_CH2: 49 +TIM2_CH3: 50 +TIM2_CH4: 51 +TIM2_TRIG: 52 +TIM2_UP: 53 +TIM3_CH1: 54 +TIM3_CH2: 55 +TIM3_CH3: 56 +TIM3_CH4: 57 +TIM3_TRIG: 58 +TIM3_UP: 59 +TIM6_UP: 60 +TIM7_UP: 61 +TIM15_CH1: 62 +TIM15_CH2: 63 +TIM15_TRIG_COM: 64 +TIM15_UP: 65 +TIM16_CH1: 66 +TIM16_COM: 67 +TIM16_UP: 68 +USART1_RX: 69 +USART1_TX: 70 +USART2_RX: 71 +USART2_TX: 72 +USART3_RX: 73 +USART3_TX: 74 +USART4_RX: 75 +USART4_TX: 76 \ No newline at end of file diff --git a/data/registers/exti_u0.yaml b/data/registers/exti_u0.yaml new file mode 100644 index 0000000..4360d95 --- /dev/null +++ b/data/registers/exti_u0.yaml @@ -0,0 +1,79 @@ +block/EXTI: + description: External interrupt/event controller + items: + - name: RTSR + description: Rising Trigger selection register + array: + len: 1 + stride: 40 + byte_offset: 0 + fieldset: LINES + - name: FTSR + description: Falling Trigger selection register + array: + len: 1 + stride: 40 + byte_offset: 4 + fieldset: LINES + - name: SWIER + description: Software interrupt event register + array: + len: 1 + stride: 40 + byte_offset: 8 + fieldset: LINES + - name: RPR + description: Rising pending register + array: + len: 1 + stride: 40 + byte_offset: 12 + fieldset: LINES + - name: FPR + description: Falling pending register + array: + len: 1 + stride: 40 + byte_offset: 16 + fieldset: LINES + - name: EXTICR + description: Configuration register + array: + len: 4 + stride: 4 + byte_offset: 96 + fieldset: EXTICR + - name: IMR + description: Interrupt mask register + array: + len: 2 + stride: 16 + byte_offset: 128 + fieldset: LINES + - name: EMR + description: Event mask register + array: + len: 2 + stride: 16 + byte_offset: 132 + fieldset: LINES +fieldset/EXTICR: + description: external interrupt configuration register 1 + fields: + - name: EXTI + description: EXTI configuration bits + bit_offset: 0 + bit_size: 8 + array: + len: 4 + stride: 8 +fieldset/LINES: + description: EXTI lines register, 1 bit per line + fields: + - name: LINE + description: EXTI line + bit_offset: 0 + bit_size: 1 + array: + len: 32 + stride: 1 diff --git a/data/registers/flash_u0.yaml b/data/registers/flash_u0.yaml new file mode 100644 index 0000000..bd6f427 --- /dev/null +++ b/data/registers/flash_u0.yaml @@ -0,0 +1,368 @@ +block/FLASH: + description: Mamba FLASH register block + items: + - name: ACR + description: FLASH access control register + byte_offset: 0 + fieldset: ACR + - name: KEYR + description: FLASH key register + byte_offset: 8 + fieldset: KEYR + - name: OPTKEYR + description: FLASH option key register + byte_offset: 12 + fieldset: OPTKEYR + - name: SR + description: FLASH status register + byte_offset: 16 + fieldset: SR + - name: CR + description: FLASH control register + byte_offset: 20 + fieldset: CR + - name: ECCR + description: FLASH ECC register + byte_offset: 24 + fieldset: ECCR + - name: OPTR + description: FLASH option register + byte_offset: 32 + fieldset: OPTR + - name: WRP1AR + description: FLASH WRP area A address register + byte_offset: 44 + fieldset: WRP1AR + - name: WRP1BR + description: FLASH WRP area B address register + byte_offset: 48 + fieldset: WRP1BR + - name: SECR + description: FLASH security register + byte_offset: 128 + fieldset: SECR +fieldset/ACR: + description: FLASH access control register + fields: + - name: LATENCY + description: 'Flash memory access latency The value in this bitfield represents the number of CPU wait states when accessing the flash memory. Other: Reserved A new write into the bitfield becomes effective when it returns the same value upon read.' + bit_offset: 0 + bit_size: 3 + - name: PRFTEN + description: CPU Prefetch enable + bit_offset: 8 + bit_size: 1 + - name: ICEN + description: CPU Instruction cache enable + bit_offset: 9 + bit_size: 1 + - name: ICRST + description: CPU Instruction cache reset This bit can be written only when the instruction cache is disabled. + bit_offset: 11 + bit_size: 1 + - name: EMPTY + description: Main flash memory area empty This bit indicates whether the first location of the main flash memory area is erased or has a programmed value. The bit can be set and reset by software. + bit_offset: 16 + bit_size: 1 + - name: DBG_SWEN + description: Debug access software enable Software may use this bit to enable/disable the debugger read access. + bit_offset: 18 + bit_size: 1 +fieldset/CR: + description: FLASH control register + fields: + - name: PG + description: Flash memory programming enable + bit_offset: 0 + bit_size: 1 + - name: PER + description: Page erase enable + bit_offset: 1 + bit_size: 1 + - name: MER1 + description: Mass erase When set, this bit triggers the mass erase, that is, all user pages. + bit_offset: 2 + bit_size: 1 + - name: PNB + description: 'Page number selection These bits select the page to erase: ... Note: Values corresponding to addresses outside the main memory are not allowed.' + bit_offset: 3 + bit_size: 7 + - name: STRT + description: Start erase operation This bit triggers an erase operation when set. This bit is possible to set only by software and to clear only by hardware. The hardware clears it when one of BSY1 and BSY2 flags in the FLASH_SR register transits to zero. + bit_offset: 16 + bit_size: 1 + - name: OPTSTRT + description: Start of modification of option bytes This bit triggers an options operation when set. This bit is set only by software, and is cleared when the BSY1 bit is cleared in FLASH_SR. + bit_offset: 17 + bit_size: 1 + - name: FSTPG + description: Fast programming enable + bit_offset: 18 + bit_size: 1 + - name: EOPIE + description: End-of-operation interrupt enable This bit enables the interrupt generation upon setting the EOP flag in the FLASH_SR register. + bit_offset: 24 + bit_size: 1 + - name: ERRIE + description: Error interrupt enable This bit enables the interrupt generation upon setting the OPERR flag in the FLASH_SR register. + bit_offset: 25 + bit_size: 1 + - name: RDERRIE + description: PCROP read error interrupt enable This bit enables the interrupt generation upon setting the RDERR flag in the FLASH_SR register. + bit_offset: 26 + bit_size: 1 + - name: OBL_LAUNCH + description: Option byte load launch When set, this bit triggers the load of option bytes into option registers. It is automatically cleared upon the completion of the load. The high state of the bit indicates pending option byte load. The bit cannot be cleared by software. It cannot be written as long as OPTLOCK is set. + bit_offset: 27 + bit_size: 1 + - name: SEC_PROT + description: Securable memory area protection enable This bit enables the protection on securable area, provided that a non-null securable memory area size (SEC_SIZE[4:0]) is defined in option bytes. This bit is possible to set only by software and to clear only through a system reset. + bit_offset: 28 + bit_size: 1 + - name: OPTLOCK + description: Options Lock This bit is set only. When set, all bits concerning user option in FLASH_CR register and so option page are locked. This bit is cleared by hardware after detecting the unlock sequence. The LOCK bit must be cleared before doing the unlock sequence for OPTLOCK bit. In case of an unsuccessful unlock operation, this bit remains set until the next reset. + bit_offset: 30 + bit_size: 1 + - name: LOCK + description: FLASH_CR Lock This bit is set only. When set, the FLASH_CR register is locked. It is cleared by hardware after detecting the unlock sequence. In case of an unsuccessful unlock operation, this bit remains set until the next system reset. + bit_offset: 31 + bit_size: 1 +fieldset/ECCR: + description: FLASH ECC register + fields: + - name: ADDR_ECC + description: ECC fail double-word address offset In case of ECC error or ECC correction detected, this bitfield contains double-word offset (multiple of 64 bits) to main Flash memory. + bit_offset: 0 + bit_size: 14 + - name: SYSF_ECC + description: System Flash memory ECC fail This bit indicates that the ECC error correction or double ECC error detection is located in the system Flash memory. + bit_offset: 20 + bit_size: 1 + - name: ECCCIE + description: ECC correction interrupt enable + bit_offset: 24 + bit_size: 1 + - name: ECCC + description: ECC correction Set by hardware when one ECC error has been detected and corrected. An interrupt is generated if ECCIE is set. Cleared by writing 1. + bit_offset: 30 + bit_size: 1 + - name: ECCD + description: ECC detection Set by hardware when two ECC errors have been detected. When this bit is set, a NMI is generated. Cleared by writing 1. + bit_offset: 31 + bit_size: 1 +fieldset/KEYR: + description: FLASH key register + fields: + - name: KEY + description: 'FLASH key The following values must be written consecutively to unlock the FLASH control register (FLASH_CR), thus enabling programming/erasing operations: KEY1: 0x4567 0123 KEY2: 0xCDEF 89AB' + bit_offset: 0 + bit_size: 32 +fieldset/OPTKEYR: + description: FLASH option key register + fields: + - name: OPTKEY + description: 'Option byte key The following values must be written consecutively to unlock the flash memory option registers, enabling option byte programming/erasing operations: KEY1: 0x0819 2A3B KEY2: 0x4C5D 6E7F' + bit_offset: 0 + bit_size: 32 +fieldset/OPTR: + description: FLASH option register + fields: + - name: RDP + description: 'Read protection level Other: Level 1, memories read protection active' + bit_offset: 0 + bit_size: 8 + enum: RDP + - name: BORR_LEV + description: BOR reset level + bit_offset: 8 + bit_size: 3 + enum: BORR_LEV + - name: NRST_STOP + description: Reset generated when entering Stop mode + bit_offset: 13 + bit_size: 1 + - name: NRST_STDBY + description: Reset generated when entering Standby mode + bit_offset: 14 + bit_size: 1 + - name: NRST_SHDW + description: Reset generated when entering Shutdown mode + bit_offset: 15 + bit_size: 1 + - name: IWDG_SW + description: Independent watchdog selection + bit_offset: 16 + bit_size: 1 + - name: IWDG_STOP + description: Independent watchdog counter freeze in Stop mode + bit_offset: 17 + bit_size: 1 + - name: IWDG_STDBY + description: Independent watchdog counter freeze in Standby mode + bit_offset: 18 + bit_size: 1 + - name: WWDG_SW + description: Window watchdog selection + bit_offset: 19 + bit_size: 1 + - name: BDRST + description: Backup domain reset + bit_offset: 21 + bit_size: 1 + - name: RAM_PARITY_CHECK + description: SRAM parity check control enable/disable + bit_offset: 22 + bit_size: 1 + - name: BKPSRAM_HW_ERASE_DISABLE + description: Backup SRAM erase prevention + bit_offset: 23 + bit_size: 1 + - name: NBOOT_SEL + description: BOOT0 signal source selection This option bit defines the source of the BOOT0 signal. + bit_offset: 24 + bit_size: 1 + - name: NBOOT1 + description: 'Boot configuration Together with the BOOT0 pin or option bit NBOOT0 (depending on NBOOT_SEL option bit configuration), this bit selects boot mode from the main flash memory, SRAM or the system memory. Refer to Section12.5: Boot configuration.' + bit_offset: 25 + bit_size: 1 + - name: NBOOT0 + description: NBOOT0 option bit + bit_offset: 26 + bit_size: 1 + - name: NRST_MODE + description: NRST pin configuration + bit_offset: 27 + bit_size: 2 + enum: NRST_MODE + - name: IRHEN + description: Internal reset holder enable bit + bit_offset: 29 + bit_size: 1 +fieldset/SECR: + description: FLASH security register + fields: + - name: HDP1_PEND + description: Last page of the first hide protection area + bit_offset: 0 + bit_size: 7 + - name: BOOT_LOCK + description: used to force boot from user area If the bit is set in association with RDP level 1, the debug capabilities are disabled, except in the case of a bad OBL (mismatch). + bit_offset: 16 + bit_size: 1 + - name: HDP1EN + description: Hide protection area enable + bit_offset: 24 + bit_size: 8 +fieldset/SR: + description: FLASH status register + fields: + - name: EOP + description: End of operation Set by hardware when one or more flash memory operation (programming / erase) has been completed successfully. This bit is set only if the end of operation interrupts are enabled (EOPIE=1). Cleared by writing 1. + bit_offset: 0 + bit_size: 1 + - name: OPERR + description: Operation error Set by hardware when a flash memory operation (program / erase) completes unsuccessfully. This bit is set only if error interrupts are enabled (ERRIE=1). Cleared by writing 1. + bit_offset: 1 + bit_size: 1 + - name: PROGERR + description: Programming error Set by hardware when a double-word address to be programmed contains a value different from '0xFFFF FFFF' before programming, except if the data to write is '0x0000 0000'. Cleared by writing 1. + bit_offset: 3 + bit_size: 1 + - name: WRPERR + description: Write protection error Set by hardware when an address to be erased/programmed belongs to a write-protected part (by WRP, PCROP or RDP Level 1) of the flash memory. Cleared by writing 1. + bit_offset: 4 + bit_size: 1 + - name: PGAERR + description: Programming alignment error Set by hardware when the data to program cannot be contained in the same double word (64-bit) flash memory in case of standard programming, or if there is a change of page during fast programming. Cleared by writing 1. + bit_offset: 5 + bit_size: 1 + - name: SIZERR + description: 'Size error Set by hardware when the size of the access is a byte or half-word during a program or a fast program sequence. Only double word programming is allowed (consequently: word access). Cleared by writing 1.' + bit_offset: 6 + bit_size: 1 + - name: PGSERR + description: Programming sequence error Set by hardware when a write access to the flash memory is performed by the code while PG or FSTPG have not been set previously. Set also by hardware when PROGERR, SIZERR, PGAERR, WRPERR, MISSERR or FASTERR is set due to a previous programming error. Cleared by writing 1. + bit_offset: 7 + bit_size: 1 + - name: MISSERR + description: Fast programming data miss error In Fast programming mode, 16 double words (128 bytes) must be sent to flash memory successively, and the new data must be sent to the logic control before the current data is fully programmed. MISSERR is set by hardware when the new data is not present in time. Cleared by writing 1. + bit_offset: 8 + bit_size: 1 + - name: FASTERR + description: Fast programming error Set by hardware when a fast programming sequence (activated by FSTPG) is interrupted due to an error (alignment, size, write protection or data miss). The corresponding status bit (PGAERR, SIZERR, WRPERR or MISSERR) is set at the same time. Cleared by writing 1. + bit_offset: 9 + bit_size: 1 + - name: RDERR + description: PCROP read error Set by hardware when an address to be read belongs to a read protected area of the flash memory (PCROP protection). An interrupt is generated if RDERRIE is set in FLASH_CR. Cleared by writing 1. + bit_offset: 14 + bit_size: 1 + - name: OPTVERR + description: Option and Engineering bits loading validity error + bit_offset: 15 + bit_size: 1 + - name: BSY1 + description: Busy This flag indicates that a flash memory operation requested by FLASH control register (FLASH_CR) is in progress. This bit is set at the beginning of the flash memory operation, and cleared when the operation finishes or when an error occurs. + bit_offset: 16 + bit_size: 1 + - name: CFGBSY + description: Programming or erase configuration busy. This flag is set and cleared by hardware. It is set when the first word is sent for program or when setting the STRT bit of FLASH control register (FLASH_CR) for erase. It is cleared when the flash memory program or erase operation completes or ends with an error. When set, launching any other operation through the FLASH control register (FLASH_CR) is impossible, and must be postponed (a programming or erase operation is ongoing). When cleared, the program and erase settings in the FLASH control register (FLASH_CR) can be modified. + bit_offset: 18 + bit_size: 1 +fieldset/WRP1AR: + description: FLASH WRP area A address register + fields: + - name: WRP1A_STRT + description: 'WRP area A start offset This bitfield contains the offset of the first page of the WRP area A. Note: The number of effective bits depends on the size of the flash memory in the device.' + bit_offset: 0 + bit_size: 7 + - name: WRP1A_END + description: 'WRP area A end offset This bitfield contains the offset of the last page of the WRP area A. Note: The number of effective bits depends on the size of the flash memory in the device.' + bit_offset: 16 + bit_size: 7 +fieldset/WRP1BR: + description: FLASH WRP area B address register + fields: + - name: WRP1B_STRT + description: 'WRP area B start offset This bitfield contains the offset of the first page of the WRP area B. Note: The number of effective bits depends on the size of the flash memory in the device.' + bit_offset: 0 + bit_size: 7 + - name: WRP1B_END + description: 'WRP area B end offset This bitfield contains the offset of the last page of the WRP area B. Note: The number of effective bits depends on the size of the flash memory in the device.' + bit_offset: 16 + bit_size: 7 +enum/BORR_LEV: + bit_size: 3 + variants: + - name: Level1 + description: BOR rising level 1 with threshold around 2.1 V + value: 0 + - name: Level2 + description: BOR rising level 2 with threshold around 2.3 V + value: 1 + - name: Level3 + description: BOR rising level 3 with threshold around 2.6 V + value: 2 + - name: Level4 + description: BOR rising level 4 with threshold around 2.9 V + value: 3 +enum/NRST_MODE: + bit_size: 2 + variants: + - name: OnlyInput + description: 'Reset input only: a low level on the NRST pin generates system reset; internal RESET is not propagated to the NRST pin.' + value: 1 + - name: OnlyInternal + description: 'Standard GPIO: only internal RESET is possible' + value: 2 + - name: Bidirectional + description: 'Bidirectional reset: the NRST pin is configured in reset input/output (legacy) mode' + value: 3 +enum/RDP: + bit_size: 8 + variants: + - name: Level0 + description: Level 0, read protection not active + value: 170 + - name: Level2 + description: Level 2, chip read protection active + value: 204 diff --git a/data/registers/pwr_u0.yaml b/data/registers/pwr_u0.yaml new file mode 100644 index 0000000..778a451 --- /dev/null +++ b/data/registers/pwr_u0.yaml @@ -0,0 +1,978 @@ +block/PWR: + description: PWR register block + items: + - name: CR1 + description: Power control register 1 + byte_offset: 0 + fieldset: CR1 + - name: CR2 + description: Power control register 2 + byte_offset: 4 + fieldset: CR2 + - name: CR3 + description: Power control register 3 + byte_offset: 8 + fieldset: CR3 + - name: CR4 + description: Power control register 4 + byte_offset: 12 + fieldset: CR4 + - name: SR1 + description: Power status register 1 + byte_offset: 16 + fieldset: SR1 + - name: SR2 + description: Power status register 2 + byte_offset: 20 + fieldset: SR2 + - name: SCR + description: Power status clear register + byte_offset: 24 + fieldset: SCR + - name: PUCRA + description: Power Port A pull-up control register + byte_offset: 32 + fieldset: PUCRA + - name: PDCRA + description: Power Port A pull-down control register + byte_offset: 36 + fieldset: PDCRA + - name: PUCRB + description: Power Port B pull-up control register + byte_offset: 40 + fieldset: PUCRB + - name: PDCRB + description: Power Port B pull-down control register + byte_offset: 44 + fieldset: PDCRB + - name: PUCRC + description: Power Port C pull-up control register + byte_offset: 48 + fieldset: PUCRC + - name: PDCRC + description: Power Port C pull-down control register + byte_offset: 52 + fieldset: PDCRC + - name: PUCRD + description: Power Port D pull-up control register + byte_offset: 56 + fieldset: PUCRD + - name: PDCRD + description: Power Port D pull-down control register + byte_offset: 60 + fieldset: PDCRD + - name: PUCRE + description: Power Port E pull-up control register + byte_offset: 64 + fieldset: PUCRE + - name: PDCRE + description: Power Port E pull-down control register + byte_offset: 68 + fieldset: PDCRE + - name: PUCRF + description: Power Port F pull-up control register + byte_offset: 72 + fieldset: PUCRF + - name: PDCRF + description: Power Port F pull-down control register + byte_offset: 76 + fieldset: PDCRF +fieldset/CR1: + description: Power control register 1 + fields: + - name: LPMS + description: 'Low-power mode selection These bits select the low-power mode entered when CPU enters the deepsleep mode. 1xx: Shutdown mode Note: If LPR bit is set, Stop 2 mode cannot be selected and Stop 1 mode shall be entered instead of Stop 2. Note: In Standby mode, SRAM2 can be preserved or not, depending on RRS bit configuration in PWR_CR3.' + bit_offset: 0 + bit_size: 3 + enum: LPMS + - name: FPD_STOP + description: Flash memory powered down during Stop mode. This bit determines whether the flash memory is put in power-down mode or remains in idle mode when the device enters Stop mode. + bit_offset: 3 + bit_size: 1 + - name: FPD_LPRUN + description: Flash memory powered down during Low-power run mode. This bit determines whether the flash memory is put in power-down mode or remains in idle mode when the device enters Low-power sleep mode. + bit_offset: 4 + bit_size: 1 + - name: FPD_LPSLP + description: Flash memory powered down during Low-power sleep mode. This bit determines whether the flash memory is put in power-down mode or remains in idle mode when the device enters Low-power sleep mode. + bit_offset: 5 + bit_size: 1 + - name: DBP + description: Disable backup domain write protection In reset state, the RTC and backup registers are protected against parasitic write access. This bit must be set to enable write access to these registers. + bit_offset: 8 + bit_size: 1 + - name: VOS + description: Voltage scaling range selection + bit_offset: 9 + bit_size: 2 + enum: VOS + - name: LPR + description: 'Low-power run When this bit is set, the regulator is switched from main mode (MR) to low-power mode (LPR). Note: Stop 2 mode cannot be entered when LPR bit is set. Stop 1 is entered instead.' + bit_offset: 14 + bit_size: 1 +fieldset/CR2: + description: Power control register 2 + fields: + - name: PVDE + description: 'Programmable voltage detector enable Note: This bit is write-protected when the bit PVDL (PVD Lock) is set in the SYSCFG_CBR register. Note: This bit is reset only by a system reset.' + bit_offset: 0 + bit_size: 1 + - name: PLS + description: 'Programmable voltage detector level selection. These bits select the voltage threshold detected by the programmable voltage detector: Note: These bits are write-protected when the bit PVDL (PVD Lock) is set in the SYSCFG_CBR register. Note: These bits are reset only by a system reset.' + bit_offset: 1 + bit_size: 3 + enum: PLS + - name: PVME1 + description: 'Peripheral voltage monitoring 1 enable: VDDUSB vs. 1.21V' + bit_offset: 4 + bit_size: 1 + - name: PVME3 + description: 'Peripheral voltage monitoring 3 enable: VDDA vs. 1.621V' + bit_offset: 5 + bit_size: 1 + - name: PVME4 + description: 'Peripheral voltage monitoring 4 enable: VDDA vs. 1.861V' + bit_offset: 6 + bit_size: 1 + - name: USV + description: VDDUSB USB supply valid This bit is used to validate the VDDUSB supply for electrical and logical isolation purpose. Setting this bit is mandatory to use the USB FS peripheral. If VDDUSB is not always present in the application, the PVM can be used to determine whether this supply is ready or not. + bit_offset: 10 + bit_size: 1 +fieldset/CR3: + description: Power control register 3 + fields: + - name: EWUP1 + description: Enable Wake-up pin WKUP1 When this bit is set, the external wake-up pin WKUP1 is enabled and triggers a wake-up from Standby or Shutdown event when a rising or a falling edge occurs. The active edge is configured via the WP1 bit in the PWR_CR4 register. + bit_offset: 0 + bit_size: 1 + - name: EWUP2 + description: Enable Wake-up pin WKUP2 When this bit is set, the external wake-up pin WKUP2 is enabled and triggers a wake-up from Standby or Shutdown event when a rising or a falling edge occurs. The active edge is configured via the WP2 bit in the PWR_CR4 register. + bit_offset: 1 + bit_size: 1 + - name: EWUP3 + description: Enable Wake-up pin WKUP3 When this bit is set, the external wake-up pin WKUP3 is enabled and triggers a wake-up from Standby or Shutdown event when a rising or a falling edge occurs. The active edge is configured via the WP3 bit in the PWR_CR4 register. + bit_offset: 2 + bit_size: 1 + - name: EWUP4 + description: Enable Wake-up pin WKUP4 When this bit is set, the external wake-up pin WKUP4 is enabled and triggers a wake-up from Standby or Shutdown event when a rising or a falling edge occurs. The active edge is configured via the WP4 bit in the PWR_CR4 register. + bit_offset: 3 + bit_size: 1 + - name: EWUP5 + description: Enable Wake-up pin WKUP5 When this bit is set, the external wake-up pin WKUP5 is enabled and triggers a wake-up from Standby or Shutdown event when a rising or a falling edge occurs.The active edge is configured via the WP5 bit in the PWR_CR4 register. + bit_offset: 4 + bit_size: 1 + - name: EWUP7 + description: Enable Wake-up pin WKUP7. When this bit is set, the external wake-up pin WKUP7 is enabled and triggers a wake-up from Standby or Shutdown event when a rising or a falling edge occurs.The active edge is configured via the WP7 bit in the PWR_CR4 register. + bit_offset: 6 + bit_size: 1 + - name: RRS + description: SRAM2 retention in Standby mode + bit_offset: 8 + bit_size: 1 + - name: ENULP + description: Enable ULP sampling When this bit is set, the BORL, BORH and PVD are periodically sampled instead continuous monitoring to reduce power consumption. Fast supply drop between two sample/compare phases is not detected in this mode. This bit has impact only on STOP2, Standby and shutdown low power modes. + bit_offset: 9 + bit_size: 1 + - name: APC + description: Apply pull-up and pull-down configuration When this bit is set, the I/O pull-up and pull-down configurations defined in the PWR_PUCRx and PWR_PDCRx registers are applied. When this bit is cleared, the PWR_PUCRx and PWR_PDCRx registers are not applied to the I/Os, instead the I/Os are in floating mode during Standby or configured according GPIO controller GPIOx_PUPDR register during RUN mode. + bit_offset: 10 + bit_size: 1 + - name: EIWUL + description: Enable internal wake-up line + bit_offset: 15 + bit_size: 1 +fieldset/CR4: + description: Power control register 4 + fields: + - name: WP1 + description: Wake-up pin WKUP1 polarity This bit defines the polarity used for an event detection on external wake-up pin, WKUP1 + bit_offset: 0 + bit_size: 1 + - name: WP2 + description: Wake-up pin WKUP2 polarity This bit defines the polarity used for an event detection on external wake-up pin, WKUP2 + bit_offset: 1 + bit_size: 1 + - name: WP3 + description: Wake-up pin WKUP3 polarity This bit defines the polarity used for an event detection on external wake-up pin, WKUP3 + bit_offset: 2 + bit_size: 1 + - name: WP4 + description: Wake-up pin WKUP4 polarity This bit defines the polarity used for an event detection on external wake-up pin, WKUP4 + bit_offset: 3 + bit_size: 1 + - name: WP5 + description: Wake-up pin WKUP5 polarity This bit defines the polarity used for an event detection on external wake-up pin, WKUP5 + bit_offset: 4 + bit_size: 1 + - name: WP7 + description: Wake-up pin WKUP7 polarity This bit defines the polarity used for an event detection on external wake-up pin, WKUP7 + bit_offset: 6 + bit_size: 1 + - name: VBE + description: VBAT battery charging enable + bit_offset: 8 + bit_size: 1 + - name: VBRS + description: VBAT battery charging resistor selection + bit_offset: 9 + bit_size: 1 +fieldset/PDCRA: + description: Power Port A pull-down control register + fields: + - name: PD0 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 0 + bit_size: 1 + - name: PD1 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 1 + bit_size: 1 + - name: PD2 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 2 + bit_size: 1 + - name: PD3 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 3 + bit_size: 1 + - name: PD4 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 4 + bit_size: 1 + - name: PD5 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 5 + bit_size: 1 + - name: PD6 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 6 + bit_size: 1 + - name: PD7 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 7 + bit_size: 1 + - name: PD8 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 8 + bit_size: 1 + - name: PD9 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 9 + bit_size: 1 + - name: PD10 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 10 + bit_size: 1 + - name: PD11 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 11 + bit_size: 1 + - name: PD12 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 12 + bit_size: 1 + - name: PD13 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 13 + bit_size: 1 + - name: PD14 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 14 + bit_size: 1 + - name: PD15 + description: Port A pull-down bit y When set, this bit activates the pull-down on PA[y] when APC bit is set in PWR_CR3 register. + bit_offset: 15 + bit_size: 1 +fieldset/PDCRB: + description: Power Port B pull-down control register + fields: + - name: PD0 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 0 + bit_size: 1 + - name: PD1 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 1 + bit_size: 1 + - name: PD2 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 2 + bit_size: 1 + - name: PD3 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 3 + bit_size: 1 + - name: PD4 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 4 + bit_size: 1 + - name: PD5 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 5 + bit_size: 1 + - name: PD6 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 6 + bit_size: 1 + - name: PD7 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 7 + bit_size: 1 + - name: PD8 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 8 + bit_size: 1 + - name: PD9 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 9 + bit_size: 1 + - name: PD10 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 10 + bit_size: 1 + - name: PD11 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 11 + bit_size: 1 + - name: PD12 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 12 + bit_size: 1 + - name: PD13 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 13 + bit_size: 1 + - name: PD14 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 14 + bit_size: 1 + - name: PD15 + description: Port B pull-down bit y When set, this bit activates the pull-down on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 15 + bit_size: 1 +fieldset/PDCRC: + description: Power Port C pull-down control register + fields: + - name: PD0 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 0 + bit_size: 1 + - name: PD1 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 1 + bit_size: 1 + - name: PD2 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 2 + bit_size: 1 + - name: PD3 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 3 + bit_size: 1 + - name: PD4 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 4 + bit_size: 1 + - name: PD5 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 5 + bit_size: 1 + - name: PD6 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 6 + bit_size: 1 + - name: PD7 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 7 + bit_size: 1 + - name: PD8 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 8 + bit_size: 1 + - name: PD9 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 9 + bit_size: 1 + - name: PD10 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 10 + bit_size: 1 + - name: PD11 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 11 + bit_size: 1 + - name: PD12 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 12 + bit_size: 1 + - name: PD13 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 13 + bit_size: 1 + - name: PD14 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 14 + bit_size: 1 + - name: PD15 + description: Port C pull-down bit y When set, this bit activates the pull-down on PC[y] when APC bit is set in PWR_CR3 register. + bit_offset: 15 + bit_size: 1 +fieldset/PDCRD: + description: Power Port D pull-down control register + fields: + - name: PD0 + description: Port D pull-down bit y When set, this bit activates the pull-down on PD[y] when APC bit is set in PWR_CR3 register. + bit_offset: 0 + bit_size: 1 + - name: PD1 + description: Port D pull-down bit y When set, this bit activates the pull-down on PD[y] when APC bit is set in PWR_CR3 register. + bit_offset: 1 + bit_size: 1 + - name: PD2 + description: Port D pull-down bit y When set, this bit activates the pull-down on PD[y] when APC bit is set in PWR_CR3 register. + bit_offset: 2 + bit_size: 1 + - name: PD3 + description: Port D pull-down bit y When set, this bit activates the pull-down on PD[y] when APC bit is set in PWR_CR3 register. + bit_offset: 3 + bit_size: 1 + - name: PD4 + description: Port D pull-down bit y When set, this bit activates the pull-down on PD[y] when APC bit is set in PWR_CR3 register. + bit_offset: 4 + bit_size: 1 + - name: PD5 + description: Port D pull-down bit y When set, this bit activates the pull-down on PD[y] when APC bit is set in PWR_CR3 register. + bit_offset: 5 + bit_size: 1 + - name: PD6 + description: Port D pull-down bit y When set, this bit activates the pull-down on PD[y] when APC bit is set in PWR_CR3 register. + bit_offset: 6 + bit_size: 1 + - name: PD8 + description: Port D pull-down bit y When set, this bit activates the pull-down on PD[y] when APC bit is set in PWR_CR3 register. + bit_offset: 8 + bit_size: 1 + - name: PD9 + description: Port D pull-down bit y When set, this bit activates the pull-down on PD[y] when APC bit is set in PWR_CR3 register. + bit_offset: 9 + bit_size: 1 + - name: PD10 + description: Port D pull-down bit y When set, this bit activates the pull-down on PD[y] when APC bit is set in PWR_CR3 register. + bit_offset: 10 + bit_size: 1 + - name: PD11 + description: Port D pull-down bit y When set, this bit activates the pull-down on PD[y] when APC bit is set in PWR_CR3 register. + bit_offset: 11 + bit_size: 1 + - name: PD12 + description: Port D pull-down bit y When set, this bit activates the pull-down on PD[y] when APC bit is set in PWR_CR3 register. + bit_offset: 12 + bit_size: 1 + - name: PD13 + description: Port D pull-down bit y When set, this bit activates the pull-down on PD[y] when APC bit is set in PWR_CR3 register. + bit_offset: 13 + bit_size: 1 +fieldset/PDCRE: + description: Power Port E pull-down control register + fields: + - name: PD3 + description: Port E pull-down bit 3 When set, this bit activates the pull-down on PE[y] when APC bit is set in PWR_CR3 register. + bit_offset: 3 + bit_size: 1 + - name: PD7 + description: Port E pull-down bit y When set, this bit activates the pull-down on PE[y] when APC bit is set in PWR_CR3 register. + bit_offset: 7 + bit_size: 1 + - name: PD8 + description: Port E pull-down bit y When set, this bit activates the pull-down on PE[y] when APC bit is set in PWR_CR3 register. + bit_offset: 8 + bit_size: 1 + - name: PD9 + description: Port E pull-down bit y When set, this bit activates the pull-down on PE[y] when APC bit is set in PWR_CR3 register. + bit_offset: 9 + bit_size: 1 +fieldset/PDCRF: + description: Power Port F pull-down control register + fields: + - name: PD0 + description: Port F pull-down bit y When set, this bit activates the pull-down on PH[y] when APC bit is set in PWR_CR3 register. + bit_offset: 0 + bit_size: 1 + - name: PD1 + description: Port F pull-down bit y When set, this bit activates the pull-down on PH[y] when APC bit is set in PWR_CR3 register. + bit_offset: 1 + bit_size: 1 + - name: PD2 + description: Port F pull-down bit y When set, this bit activates the pull-down on PH[y] when APC bit is set in PWR_CR3 register. + bit_offset: 2 + bit_size: 1 + - name: PD3 + description: Port F pull-down bit y When set, this bit activates the pull-down on PH[y] when APC bit is set in PWR_CR3 register. + bit_offset: 3 + bit_size: 1 +fieldset/PUCRA: + description: Power Port A pull-up control register + fields: + - name: PU0 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 0 + bit_size: 1 + - name: PU1 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 1 + bit_size: 1 + - name: PU2 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 2 + bit_size: 1 + - name: PU3 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 3 + bit_size: 1 + - name: PU4 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 4 + bit_size: 1 + - name: PU5 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 5 + bit_size: 1 + - name: PU6 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 6 + bit_size: 1 + - name: PU7 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 7 + bit_size: 1 + - name: PU8 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 8 + bit_size: 1 + - name: PU9 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 9 + bit_size: 1 + - name: PU10 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 10 + bit_size: 1 + - name: PU11 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 11 + bit_size: 1 + - name: PU12 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 12 + bit_size: 1 + - name: PU13 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 13 + bit_size: 1 + - name: PU14 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 14 + bit_size: 1 + - name: PU15 + description: Port A pull-up bit y (y1=115 to 0) When set, this bit activates the pull-up on PA[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 15 + bit_size: 1 +fieldset/PUCRB: + description: Power Port B pull-up control register + fields: + - name: PU0 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 0 + bit_size: 1 + - name: PU1 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 1 + bit_size: 1 + - name: PU2 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 2 + bit_size: 1 + - name: PU3 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 3 + bit_size: 1 + - name: PU4 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 4 + bit_size: 1 + - name: PU5 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 5 + bit_size: 1 + - name: PU6 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 6 + bit_size: 1 + - name: PU7 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 7 + bit_size: 1 + - name: PU8 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 8 + bit_size: 1 + - name: PU9 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 9 + bit_size: 1 + - name: PU10 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 10 + bit_size: 1 + - name: PU11 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 11 + bit_size: 1 + - name: PU12 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 12 + bit_size: 1 + - name: PU13 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 13 + bit_size: 1 + - name: PU14 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 14 + bit_size: 1 + - name: PU15 + description: Port B pull-up bit y When set, this bit activates the pull-up on PB[y] when APC bit is set in PWR_CR3 register. + bit_offset: 15 + bit_size: 1 +fieldset/PUCRC: + description: Power Port C pull-up control register + fields: + - name: PU0 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 0 + bit_size: 1 + - name: PU1 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 1 + bit_size: 1 + - name: PU2 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 2 + bit_size: 1 + - name: PU3 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 3 + bit_size: 1 + - name: PU4 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 4 + bit_size: 1 + - name: PU5 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 5 + bit_size: 1 + - name: PU6 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 6 + bit_size: 1 + - name: PU7 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 7 + bit_size: 1 + - name: PU8 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 8 + bit_size: 1 + - name: PU9 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 9 + bit_size: 1 + - name: PU10 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 10 + bit_size: 1 + - name: PU11 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 11 + bit_size: 1 + - name: PU12 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 12 + bit_size: 1 + - name: PU13 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 13 + bit_size: 1 + - name: PU14 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 14 + bit_size: 1 + - name: PU15 + description: Port C pull-up bit y When set, this bit activates the pull-up on PC[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 15 + bit_size: 1 +fieldset/PUCRD: + description: Power Port D pull-up control register + fields: + - name: PU0 + description: Port D pull-up bit y When set, this bit activates the pull-up on PD[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 0 + bit_size: 1 + - name: PU1 + description: Port D pull-up bit y When set, this bit activates the pull-up on PD[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 1 + bit_size: 1 + - name: PU2 + description: Port D pull-up bit y When set, this bit activates the pull-up on PD[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 2 + bit_size: 1 + - name: PU3 + description: Port D pull-up bit y When set, this bit activates the pull-up on PD[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 3 + bit_size: 1 + - name: PU4 + description: Port D pull-up bit y When set, this bit activates the pull-up on PD[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 4 + bit_size: 1 + - name: PU5 + description: Port D pull-up bit y When set, this bit activates the pull-up on PD[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 5 + bit_size: 1 + - name: PU6 + description: Port D pull-up bit y When set, this bit activates the pull-up on PD[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 6 + bit_size: 1 + - name: PU8 + description: Port D pull-up bit y When set, this bit activates the pull-up on PD[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 8 + bit_size: 1 + - name: PU9 + description: Port D pull-up bit y When set, this bit activates the pull-up on PD[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 9 + bit_size: 1 + - name: PU10 + description: Port D pull-up bit y When set, this bit activates the pull-up on PD[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 10 + bit_size: 1 + - name: PU11 + description: Port D pull-up bit y When set, this bit activates the pull-up on PD[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 11 + bit_size: 1 + - name: PU12 + description: Port D pull-up bit y When set, this bit activates the pull-up on PD[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 12 + bit_size: 1 + - name: PU13 + description: Port D pull-up bit y When set, this bit activates the pull-up on PD[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 13 + bit_size: 1 +fieldset/PUCRE: + description: Power Port E pull-up control register + fields: + - name: PU3 + description: Port E pull-up bit 3 When set, this bit activates the pull-up on PE[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 3 + bit_size: 1 + - name: PU7 + description: Port E pull-up bit y When set, this bit activates the pull-up on PE[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 7 + bit_size: 1 + - name: PU8 + description: Port E pull-up bit y When set, this bit activates the pull-up on PE[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 8 + bit_size: 1 + - name: PU9 + description: Port E pull-up bit y When set, this bit activates the pull-up on PE[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 9 + bit_size: 1 +fieldset/PUCRF: + description: Power Port F pull-up control register + fields: + - name: PU0 + description: Port F pull-up bit y When set, this bit activates the pull-up on PH[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 0 + bit_size: 1 + - name: PU1 + description: Port F pull-up bit y When set, this bit activates the pull-up on PH[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 1 + bit_size: 1 + - name: PU2 + description: Port F pull-up bit y When set, this bit activates the pull-up on PH[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 2 + bit_size: 1 + - name: PU3 + description: Port F pull-up bit y When set, this bit activates the pull-up on PH[y] when APC bit is set in PWR_CR3 register. If the corresponding PDy bit is also set, the pull-up is not activated and the pull-down is activated instead with highest priority. + bit_offset: 3 + bit_size: 1 +fieldset/SCR: + description: Power status clear register + fields: + - name: CWUF1 + description: Clear wake-up flag 1 Setting this bit clears the WUF1 flag in the PWR_SR1 register. + bit_offset: 0 + bit_size: 1 + - name: CWUF2 + description: Clear wake-up flag 2 Setting this bit clears the WUF2 flag in the PWR_SR1 register. + bit_offset: 1 + bit_size: 1 + - name: CWUF3 + description: Clear wake-up flag 3 Setting this bit clears the WUF3 flag in the PWR_SR1 register. + bit_offset: 2 + bit_size: 1 + - name: CWUF4 + description: Clear wake-up flag 4 Setting this bit clears the WUF4 flag in the PWR_SR1 register. + bit_offset: 3 + bit_size: 1 + - name: CWUF5 + description: Clear wake-up flag 5 Setting this bit clears the WUF5 flag in the PWR_SR1 register. + bit_offset: 4 + bit_size: 1 + - name: CWUF7 + description: Clear wake-up flag 7 Setting this bit clears the WUF7 flag in the PWR_SR1 register. + bit_offset: 6 + bit_size: 1 + - name: CSBF + description: Clear standby flag Setting this bit clears the SBF flag in the PWR_SR1 register. + bit_offset: 8 + bit_size: 1 +fieldset/SR1: + description: Power status register 1 + fields: + - name: WUF1 + description: Wake-up flag 1 This bit is set when a wake-up event is detected on wake-up pin, WKUP1. It is cleared by writing 1 in the CWUF1 bit of the PWR_SCR register. + bit_offset: 0 + bit_size: 1 + - name: WUF2 + description: Wake-up flag 2 This bit is set when a wake-up event is detected on wake-up pin, WKUP2. It is cleared by writing 1 in the CWUF2 bit of the PWR_SCR register. + bit_offset: 1 + bit_size: 1 + - name: WUF3 + description: Wake-up flag 3 This bit is set when a wake-up event is detected on wake-up pin, WKUP3. It is cleared by writing 1 in the CWUF3 bit of the PWR_SCR register. + bit_offset: 2 + bit_size: 1 + - name: WUF4 + description: Wake-up flag 4 This bit is set when a wake-up event is detected on wake-up pin,WKUP4. It is cleared by writing 1 in the CWUF4 bit of the PWR_SCR register. + bit_offset: 3 + bit_size: 1 + - name: WUF5 + description: Wake-up flag 5 This bit is set when a wake-up event is detected on wake-up pin, WKUP5. It is cleared by writing 1 in the CWUF5 bit of the PWR_SCR register. + bit_offset: 4 + bit_size: 1 + - name: WUF7 + description: Wake-up flag 7 This bit is set when a wake-up event is detected on wake-up pin, WKUP7. It is cleared by writing 1 in the CWUF7 bit of the PWR_SCR register. + bit_offset: 6 + bit_size: 1 + - name: SBF + description: Standby flag This bit is set by hardware when the device enters the Standby mode and is cleared by setting the CSBF bit in the PWR_SCR register, or by a power-on reset. It is not cleared by the system reset. + bit_offset: 8 + bit_size: 1 + - name: STOPF + description: Stop Flags These bits are set by hardware when the device enters any stop mode and are cleared by setting the CSBF bit in the PWR_SCR register, or by a power-on reset. It is not cleared by the system reset. + bit_offset: 9 + bit_size: 3 + enum: STOPF + - name: WUFI + description: Wake-up flag internal This bit is set when a wake-up is detected on the internal wake-up line. It is cleared when all internal wake-up sources are cleared. + bit_offset: 15 + bit_size: 1 +fieldset/SR2: + description: Power status register 2 + fields: + - name: FLASH_RDY + description: 'Flash ready flag This bit is set by hardware to indicate when the flash memory is readey to be accessed after wake-up from power-down. To place the flash memory in power-down, set either FPD_LPRUN, FPD_LPSLP or FPD_STP bits. Note : If the system boots from SRAM, the user application must wait until the FLASH_RDY bit is set, prior to jumping to flash memory.' + bit_offset: 7 + bit_size: 1 + - name: REGLPS + description: Low-power regulator started This bit provides the information whether the low-power regulator is ready after a power-on reset or a Standby/Shutdown. If the Standby mode is entered while REGLPS bit is still cleared, the wake-up from Standby mode time may be increased. + bit_offset: 8 + bit_size: 1 + - name: REGLPF + description: Low-power regulator flag This bit is set by hardware when the MCU is in Low-power run mode. When the MCU exits from the Low-power run mode, this bit remains at 1 until the regulator is ready in main mode. A polling on this bit must be done before increasing the product frequency. This bit is cleared by hardware when the regulator is ready. + bit_offset: 9 + bit_size: 1 + - name: VOSF + description: Voltage scaling flag A delay is required for the internal regulator to be ready after the voltage scaling has been changed. VOSF indicates that the regulator reached the voltage level defined with VOS bits of the PWR_CR1 register. + bit_offset: 10 + bit_size: 1 + - name: PVDO + description: Programmable voltage detector output + bit_offset: 11 + bit_size: 1 + - name: PVMO1 + description: 'Peripheral voltage monitoring output: VDDUSB vs. 1.2 V Note: PVMO1 is cleared when PVM1 is disabled (PVME1 = 0). After enabling PVM1, the PVM1 output is valid after the PVM1 wake-up time.' + bit_offset: 12 + bit_size: 1 + - name: PVMO3 + description: 'Peripheral voltage monitoring output: VDDA vs. 1.621V Note: PVMO3 is cleared when PVM3 is disabled (PVME3 = 0). After enabling PVM3, the PVM3 output is valid after the PVM3 wake-up time.' + bit_offset: 14 + bit_size: 1 + - name: PVMO4 + description: 'Peripheral voltage monitoring output: VDDA vs. 2.21V Note: PVMO4 is cleared when PVM4 is disabled (PVME4 = 0). After enabling PVM4, the PVM4 output is valid after the PVM4 wake-up time.' + bit_offset: 15 + bit_size: 1 +enum/LPMS: + bit_size: 3 + variants: + - name: Stop0 + description: Stop 0 mode + value: 0 + - name: Stop1 + description: Stop 1 mode + value: 1 + - name: Stop2 + description: Stop 2 mode + value: 2 + - name: Standby + description: Standby mode + value: 3 +enum/PLS: + bit_size: 3 + variants: + - name: B_0x0 + description: VPVD0 around 2.01V + value: 0 + - name: B_0x1 + description: VPVD1 around 2.21V + value: 1 + - name: B_0x2 + description: VPVD2 around 2.41V + value: 2 + - name: B_0x3 + description: VPVD3 around 2.51V + value: 3 + - name: B_0x4 + description: VPVD4 around 2.61V + value: 4 + - name: B_0x5 + description: VPVD5 around 2.81V + value: 5 + - name: B_0x6 + description: VPVD6 around 2.91V + value: 6 + - name: B_0x7 + description: External input analog voltage PVD_IN (compared internally to VREFINT) + value: 7 +enum/STOPF: + bit_size: 3 + variants: + - name: None + description: The device did not enter any Stop mode. + value: 0 + - name: Stop0 + description: The device entered in Stop 0 mode. + value: 4 + - name: Stop1 + description: The device entered in Stop 1 mode. + value: 5 + - name: Stop2 + description: The device entered in Stop 2 mode. + value: 6 +enum/VOS: + bit_size: 2 + variants: + - name: Range1 + description: Range 1 + value: 1 + - name: Range2 + description: Range 2 + value: 2 diff --git a/data/registers/rcc_u0.yaml b/data/registers/rcc_u0.yaml new file mode 100644 index 0000000..c1dbd8e --- /dev/null +++ b/data/registers/rcc_u0.yaml @@ -0,0 +1,1911 @@ +block/RCC: + description: RCC address block description. + items: + - name: CR + description: Clock control register. + byte_offset: 0 + fieldset: CR + - name: ICSCR + description: Internal clock sources calibration register. + byte_offset: 4 + fieldset: ICSCR + - name: CFGR + description: Clock configuration register. + byte_offset: 8 + fieldset: CFGR + - name: PLLCFGR + description: PLL configuration register. + byte_offset: 12 + fieldset: PLLCFGR + - name: CIER + description: Clock interrupt enable register. + byte_offset: 24 + fieldset: CIER + - name: CIFR + description: Clock interrupt flag register. + byte_offset: 28 + fieldset: CIFR + - name: CICR + description: Clock interrupt clear register. + byte_offset: 32 + fieldset: CICR + - name: AHBRSTR + description: AHB peripheral reset register. + byte_offset: 40 + fieldset: AHBRSTR + - name: GPIORSTR + description: I/O port reset register. + byte_offset: 44 + fieldset: GPIORSTR + - name: APBRSTR1 + description: APB peripheral reset register 1. + byte_offset: 56 + fieldset: APBRSTR1 + - name: APBRSTR2 + description: APB peripheral reset register 2. + byte_offset: 64 + fieldset: APBRSTR2 + - name: AHBENR + description: AHB peripheral clock enable register. + byte_offset: 72 + fieldset: AHBENR + - name: GPIOENR + description: I/O port clock enable register. + byte_offset: 76 + fieldset: GPIOENR + - name: DBGCFGR + description: Debug configuration register. + byte_offset: 80 + fieldset: DBGCFGR + - name: APBENR1 + description: APB peripheral clock enable register 1. + byte_offset: 88 + fieldset: APBENR1 + - name: APBENR2 + description: APB peripheral clock enable register 2. + byte_offset: 96 + fieldset: APBENR2 + - name: AHBSMENR + description: AHB peripheral clock enable in Sleep/Stop mode register. + byte_offset: 104 + fieldset: AHBSMENR + - name: GPIOSMENR + description: I/O port in Sleep mode clock enable register. + byte_offset: 108 + fieldset: GPIOSMENR + - name: APBSMENR1 + description: APB peripheral clock enable in Sleep/Stop mode register 1. + byte_offset: 120 + fieldset: APBSMENR1 + - name: APBSMENR2 + description: APB peripheral clock enable in Sleep/Stop mode register 2. + byte_offset: 128 + fieldset: APBSMENR2 + - name: CCIPR + description: Peripherals independent clock configuration register. + byte_offset: 136 + fieldset: CCIPR + - name: BDCR + description: RTC domain control register. + byte_offset: 144 + fieldset: BDCR + - name: CSR + description: Control/status register. + byte_offset: 148 + fieldset: CSR + - name: CRRCR + description: RCC clock recovery RC register. + byte_offset: 152 + fieldset: CRRCR +fieldset/AHBENR: + description: AHB peripheral clock enable register. + fields: + - name: DMA1EN + description: DMA1 and DMAMUX clock enable Set and cleared by software. DMAMUX is enabled as long as at least one DMA peripheral is enabled. + bit_offset: 0 + bit_size: 1 + - name: DMA2EN + description: DMA2 and DMAMUX clock enable Set and cleared by software. DMAMUX is enabled as long as at least one DMA peripheral is enabled. + bit_offset: 1 + bit_size: 1 + - name: FLASHEN + description: Flash memory interface clock enable Set and cleared by software. This bit can only be cleared when the flash memory is in power down mode. + bit_offset: 8 + bit_size: 1 + - name: CRCEN + description: CRC clock enable Set and cleared by software. + bit_offset: 12 + bit_size: 1 + - name: AESEN + description: AES hardware accelerator Set and cleared by software. + bit_offset: 16 + bit_size: 1 + - name: RNGEN + description: Random number generator clock enable Set and cleared by software. + bit_offset: 18 + bit_size: 1 + - name: TSCEN + description: Touch sensing controller clock enable Set and cleared by software. + bit_offset: 24 + bit_size: 1 +fieldset/AHBRSTR: + description: AHB peripheral reset register. + fields: + - name: DMA1RST + description: DMA1 and DMAMUX reset Set and cleared by software. + bit_offset: 0 + bit_size: 1 + - name: DMA2RST + description: DMA2 and DMAMUX reset Set and cleared by software. + bit_offset: 1 + bit_size: 1 + - name: FLASHRST + description: Flash memory interface reset Set and cleared by software. This bit can only be set when the flash memory is in power down mode. + bit_offset: 8 + bit_size: 1 + - name: CRCRST + description: CRC reset Set and cleared by software. + bit_offset: 12 + bit_size: 1 + - name: AESRST + description: AES hardware accelerator reset Set and cleared by software. + bit_offset: 16 + bit_size: 1 + - name: RNGRST + description: Random number generator reset Set and cleared by software. + bit_offset: 18 + bit_size: 1 + - name: TSCRST + description: Touch sensing controller reset Set and cleared by software. + bit_offset: 24 + bit_size: 1 +fieldset/AHBSMENR: + description: AHB peripheral clock enable in Sleep/Stop mode register. + fields: + - name: DMA1SMEN + description: DMA1 and DMAMUX clock enable during Sleep mode Set and cleared by software. Clock to DMAMUX during Sleep mode is enabled as long as the clock in Sleep mode is enabled to at least one DMA peripheral. + bit_offset: 0 + bit_size: 1 + - name: DMA2SMEN + description: DMA2 and DMAMUX clock enable during Sleep mode Set and cleared by software. Clock to DMAMUX during Sleep mode is enabled as long as the clock in Sleep mode is enabled to at least one DMA peripheral. + bit_offset: 1 + bit_size: 1 + - name: FLASHSMEN + description: Flash memory interface clock enable during Sleep mode Set and cleared by software. This bit can be activated only when the flash memory is in power down mode. + bit_offset: 8 + bit_size: 1 + - name: SRAMSMEN + description: SRAM clock enable during Sleep mode Set and cleared by software. + bit_offset: 9 + bit_size: 1 + - name: CRCSMEN + description: CRC clock enable during Sleep mode Set and cleared by software. + bit_offset: 12 + bit_size: 1 + - name: AESSMEN + description: AES hardware accelerator clock enable during Sleep mode Set and cleared by software. + bit_offset: 16 + bit_size: 1 + - name: RNGSMEN + description: RNG clock enable during Sleep and Stop mode Set and cleared by software. + bit_offset: 18 + bit_size: 1 + - name: TSCSMEN + description: TSC clock enable during Sleep and Stop mode Set and cleared by software. + bit_offset: 24 + bit_size: 1 +fieldset/APBENR1: + description: APB peripheral clock enable register 1. + fields: + - name: TIM2EN + description: TIM2 timer clock enable Set and cleared by software. + bit_offset: 0 + bit_size: 1 + - name: TIM3EN + description: TIM3 timer clock enable Set and cleared by software. + bit_offset: 1 + bit_size: 1 + - name: TIM6EN + description: TIM6 timer clock enable Set and cleared by software. + bit_offset: 4 + bit_size: 1 + - name: TIM7EN + description: TIM7 timer clock enable Set and cleared by software. + bit_offset: 5 + bit_size: 1 + - name: LPUART2EN + description: LPUART2 clock enable Set and cleared by software. + bit_offset: 7 + bit_size: 1 + - name: LCDEN + description: LCD clock enable(1) Set and cleared by software. + bit_offset: 9 + bit_size: 1 + - name: RTCAPBEN + description: RTC APB clock enable Set and cleared by software. + bit_offset: 10 + bit_size: 1 + - name: WWDGEN + description: WWDG clock enable Set by software to enable the window watchdog clock. Cleared by hardware system reset This bit can also be set by hardware if the WWDG_SW option bit is 0. + bit_offset: 11 + bit_size: 1 + - name: LPUART3EN + description: LPUART3 clock enable Set and cleared by software. + bit_offset: 12 + bit_size: 1 + - name: USBEN + description: USB clock enable(1) Set and cleared by software. + bit_offset: 13 + bit_size: 1 + - name: SPI2EN + description: SPI2 clock enable Set and cleared by software. + bit_offset: 14 + bit_size: 1 + - name: SPI3EN + description: SPI3 clock enable(1) Set and cleared by software. + bit_offset: 15 + bit_size: 1 + - name: CRSEN + description: CRS clock enable(1) Set and cleared by software. + bit_offset: 16 + bit_size: 1 + - name: USART2EN + description: USART2 clock enable Set and cleared by software. + bit_offset: 17 + bit_size: 1 + - name: USART3EN + description: USART3 clock enable Set and cleared by software. + bit_offset: 18 + bit_size: 1 + - name: USART4EN + description: USART4 clock enable Set and cleared by software. + bit_offset: 19 + bit_size: 1 + - name: LPUART1EN + description: LPUART1 clock enable Set and cleared by software. + bit_offset: 20 + bit_size: 1 + - name: I2C1EN + description: I2C1 clock enable Set and cleared by software. + bit_offset: 21 + bit_size: 1 + - name: I2C2EN + description: I2C2 clock enable Set and cleared by software. + bit_offset: 22 + bit_size: 1 + - name: I2C3EN + description: I2C3 clock enable Set and cleared by software. + bit_offset: 23 + bit_size: 1 + - name: OPAMPEN + description: OPAMP clock enable Set and cleared by software. + bit_offset: 24 + bit_size: 1 + - name: I2C4EN + description: I2C4EN clock enable(1) Set and cleared by software. + bit_offset: 25 + bit_size: 1 + - name: LPTIM3EN + description: LPTIM3 clock enable Set and cleared by software. + bit_offset: 26 + bit_size: 1 + - name: PWREN + description: Power interface clock enable Set and cleared by software. + bit_offset: 28 + bit_size: 1 + - name: DAC1EN + description: DAC1 interface clock enable Set and cleared by software. + bit_offset: 29 + bit_size: 1 + - name: LPTIM2EN + description: LPTIM2 clock enable Set and cleared by software. + bit_offset: 30 + bit_size: 1 + - name: LPTIM1EN + description: LPTIM1 clock enable Set and cleared by software. + bit_offset: 31 + bit_size: 1 +fieldset/APBENR2: + description: APB peripheral clock enable register 2. + fields: + - name: SYSCFGEN + description: SYSCFG, COMP and VREFBUF clock enable Set and cleared by software. + bit_offset: 0 + bit_size: 1 + - name: TIM1EN + description: TIM1 timer clock enable Set and cleared by software. + bit_offset: 11 + bit_size: 1 + - name: SPI1EN + description: SPI1 clock enable Set and cleared by software. + bit_offset: 12 + bit_size: 1 + - name: USART1EN + description: USART1 clock enable Set and cleared by software. + bit_offset: 14 + bit_size: 1 + - name: TIM15EN + description: TIM15 timer clock enable Set and cleared by software. + bit_offset: 16 + bit_size: 1 + - name: TIM16EN + description: TIM16 timer clock enable Set and cleared by software. + bit_offset: 17 + bit_size: 1 + - name: ADCEN + description: ADC clock enable Set and cleared by software. + bit_offset: 20 + bit_size: 1 +fieldset/APBRSTR1: + description: APB peripheral reset register 1. + fields: + - name: TIM2RST + description: TIM2 timer reset Set and cleared by software. + bit_offset: 0 + bit_size: 1 + - name: TIM3RST + description: TIM3 timer reset Set and cleared by software. + bit_offset: 1 + bit_size: 1 + - name: TIM6RST + description: TIM6 timer reset Set and cleared by software. + bit_offset: 4 + bit_size: 1 + - name: TIM7RST + description: TIM7 timer reset Set and cleared by software. + bit_offset: 5 + bit_size: 1 + - name: LPUART2RST + description: LPUART2 reset Set and cleared by software. + bit_offset: 7 + bit_size: 1 + - name: LCDRST + description: LCD reset(1) Set and cleared by software. + bit_offset: 9 + bit_size: 1 + - name: LPUART3RST + description: LPUART3 reset(1) Set and cleared by software. + bit_offset: 12 + bit_size: 1 + - name: USBRST + description: USB reset(1) Set and cleared by software. + bit_offset: 13 + bit_size: 1 + - name: SPI2RST + description: SPI2 reset Set and cleared by software. + bit_offset: 14 + bit_size: 1 + - name: SPI3RST + description: SPI3 reset(1) Set and cleared by software. + bit_offset: 15 + bit_size: 1 + - name: CRSRST + description: CRS reset(1) Set and cleared by software. + bit_offset: 16 + bit_size: 1 + - name: USART2RST + description: USART2 reset Set and cleared by software. + bit_offset: 17 + bit_size: 1 + - name: USART3RST + description: USART3 reset Set and cleared by software. + bit_offset: 18 + bit_size: 1 + - name: USART4RST + description: USART4 reset Set and cleared by software. + bit_offset: 19 + bit_size: 1 + - name: LPUART1RST + description: LPUART1 reset Set and cleared by software. + bit_offset: 20 + bit_size: 1 + - name: I2C1RST + description: I2C1 reset Set and cleared by software. + bit_offset: 21 + bit_size: 1 + - name: I2C2RST + description: I2C2 reset Set and cleared by software. + bit_offset: 22 + bit_size: 1 + - name: I2C3RST + description: I2C3 reset Set and cleared by software. + bit_offset: 23 + bit_size: 1 + - name: OPAMPRST + description: OPAMP reset Set and cleared by software. + bit_offset: 24 + bit_size: 1 + - name: I2C4RST + description: I2C4 reset(1) Set and cleared by software. + bit_offset: 25 + bit_size: 1 + - name: LPTIM3RST + description: LPTIM3 reset Set and cleared by software. + bit_offset: 26 + bit_size: 1 + - name: PWRRST + description: Power interface reset Set and cleared by software. + bit_offset: 28 + bit_size: 1 + - name: DAC1RST + description: DAC1 interface reset Set and cleared by software. + bit_offset: 29 + bit_size: 1 + - name: LPTIM2RST + description: Low Power Timer 2 reset Set and cleared by software. + bit_offset: 30 + bit_size: 1 + - name: LPTIM1RST + description: Low Power Timer 1 reset Set and cleared by software. + bit_offset: 31 + bit_size: 1 +fieldset/APBRSTR2: + description: APB peripheral reset register 2. + fields: + - name: SYSCFGRST + description: SYSCFG, COMP and VREFBUF reset Set and cleared by software. + bit_offset: 0 + bit_size: 1 + - name: TIM1RST + description: TIM1 timer reset Set and cleared by software. + bit_offset: 11 + bit_size: 1 + - name: SPI1RST + description: SPI1 reset Set and cleared by software. + bit_offset: 12 + bit_size: 1 + - name: USART1RST + description: USART1 reset Set and cleared by software. + bit_offset: 14 + bit_size: 1 + - name: TIM15RST + description: TIM15 timer reset Set and cleared by software. + bit_offset: 16 + bit_size: 1 + - name: TIM16RST + description: TIM16 timer reset Set and cleared by software. + bit_offset: 17 + bit_size: 1 + - name: ADCRST + description: ADC reset Set and cleared by software. + bit_offset: 20 + bit_size: 1 +fieldset/APBSMENR1: + description: APB peripheral clock enable in Sleep/Stop mode register 1. + fields: + - name: TIM2SMEN + description: TIM2 timer clock enable during Sleep mode Set and cleared by software. + bit_offset: 0 + bit_size: 1 + - name: TIM3SMEN + description: TIM3 timer clock enable during Sleep mode Set and cleared by software. + bit_offset: 1 + bit_size: 1 + - name: TIM6SMEN + description: TIM6 timer clock enable during Sleep mode Set and cleared by software. + bit_offset: 4 + bit_size: 1 + - name: TIM7SMEN + description: TIM7 timer clock enable during Sleep mode Set and cleared by software. + bit_offset: 5 + bit_size: 1 + - name: LPUART2SMEN + description: LPUART2 clock enable during Sleep and Stop modes Set and cleared by software. + bit_offset: 7 + bit_size: 1 + - name: LCDSMEN + description: LCD clock enable during Sleep mode(1) Set and cleared by software. + bit_offset: 9 + bit_size: 1 + - name: RTCAPBSMEN + description: RTC APB clock enable during Sleep mode Set and cleared by software. + bit_offset: 10 + bit_size: 1 + - name: WWDGSMEN + description: WWDG clock enable during Sleep and Stop modes Set and cleared by software. + bit_offset: 11 + bit_size: 1 + - name: LPUART3SMEN + description: LPUART3 clock enable during Sleep and Stop modes Set and cleared by software. + bit_offset: 12 + bit_size: 1 + - name: USBSMEN + description: USB clock enable during Sleep mode(1) Set and cleared by software. + bit_offset: 13 + bit_size: 1 + - name: SPI2SMEN + description: SPI2 clock enable during Sleep mode Set and cleared by software. + bit_offset: 14 + bit_size: 1 + - name: SPI3SMEN + description: SPI3 clock enable during Sleep mode(1) Set and cleared by software. + bit_offset: 15 + bit_size: 1 + - name: CRSSMEN + description: CRS clock enable during Sleep and Stop modes(1) Set and cleared by software. + bit_offset: 16 + bit_size: 1 + - name: USART2SMEN + description: USART2 clock enable during Sleep and Stop modes Set and cleared by software. + bit_offset: 17 + bit_size: 1 + - name: USART3SMEN + description: USART3 clock enable during Sleep mode Set and cleared by software. + bit_offset: 18 + bit_size: 1 + - name: USART4SMEN + description: USART4 clock enable during Sleep mode Set and cleared by software. + bit_offset: 19 + bit_size: 1 + - name: LPUART1SMEN + description: LPUART1 clock enable during Sleep and Stop modes Set and cleared by software. + bit_offset: 20 + bit_size: 1 + - name: I2C1SMEN + description: I2C1 clock enable during Sleep and Stop modes Set and cleared by software. + bit_offset: 21 + bit_size: 1 + - name: I2C2SMEN + description: I2C2 clock enable during Sleep mode Set and cleared by software. + bit_offset: 22 + bit_size: 1 + - name: I2C3SMEN + description: I2C3 clock enable during Sleep mode Set and cleared by software. + bit_offset: 23 + bit_size: 1 + - name: OPAMPSMEN + description: OPAMP clock enable during Sleep and Stop modes Set and cleared by software. + bit_offset: 24 + bit_size: 1 + - name: I2C4SMEN + description: I2C4 clock enable during Sleep mode(1) Set and cleared by software. + bit_offset: 25 + bit_size: 1 + - name: LPTIM3SMEN + description: Low power timer 3 clock enable during Sleep mode Set and cleared by software. + bit_offset: 26 + bit_size: 1 + - name: PWRSMEN + description: Power interface clock enable during Sleep mode Set and cleared by software. + bit_offset: 28 + bit_size: 1 + - name: DAC1SMEN + description: DAC1 interface clock enable during Sleep and Stop modes Set and cleared by software. + bit_offset: 29 + bit_size: 1 + - name: LPTIM2SMEN + description: Low Power Timer 2 clock enable during Sleep and Stop modes Set and cleared by software. + bit_offset: 30 + bit_size: 1 + - name: LPTIM1SMEN + description: Low Power Timer 1 clock enable during Sleep and Stop modes Set and cleared by software. + bit_offset: 31 + bit_size: 1 +fieldset/APBSMENR2: + description: APB peripheral clock enable in Sleep/Stop mode register 2. + fields: + - name: SYSCFGSMEN + description: SYSCFG, COMP and VREFBUF clock enable during Sleep and Stop modes Set and cleared by software. + bit_offset: 0 + bit_size: 1 + - name: TIM1SMEN + description: TIM1 timer clock enable during Sleep mode Set and cleared by software. + bit_offset: 11 + bit_size: 1 + - name: SPI1SMEN + description: SPI1 clock enable during Sleep mode Set and cleared by software. + bit_offset: 12 + bit_size: 1 + - name: USART1SMEN + description: USART1 clock enable during Sleep and Stop modes Set and cleared by software. + bit_offset: 14 + bit_size: 1 + - name: TIM15SMEN + description: TIM15 timer clock enable during Sleep mode Set and cleared by software. + bit_offset: 16 + bit_size: 1 + - name: TIM16SMEN + description: TIM16 timer clock enable during Sleep mode Set and cleared by software. + bit_offset: 17 + bit_size: 1 + - name: ADCSMEN + description: ADC clock enable during Sleep mode Set and cleared by software. + bit_offset: 20 + bit_size: 1 +fieldset/BDCR: + description: RTC domain control register. + fields: + - name: LSEON + description: LSE oscillator enable Set and cleared by software to enable LSE oscillator:. + bit_offset: 0 + bit_size: 1 + - name: LSERDY + description: 'LSE oscillator ready Set and cleared by hardware to indicate when the external 321kHz oscillator is ready (stable): After the LSEON bit is cleared, LSERDY goes low after 6 external low-speed oscillator clock cycles.' + bit_offset: 1 + bit_size: 1 + - name: LSEBYP + description: LSE oscillator bypass Set and cleared by software to bypass the LSE oscillator (in debug mode). This bit can be written only when the external 321kHz oscillator is disabled (LSEON=0 and LSERDY=0). + bit_offset: 2 + bit_size: 1 + - name: LSEDRV + description: 'LSE oscillator drive capability Set by software to select the LSE oscillator drive capability as follows: Applicable when the LSE oscillator is in Xtal mode, as opposed to bypass mode.' + bit_offset: 3 + bit_size: 2 + enum: LSEDRV + - name: LSECSSON + description: 'CSS on LSE enable Set by software to enable the clock security system on LSE (321kHz) oscillator as follows: LSECSSON must be enabled after the LSE oscillator is enabled (LSEON bit enabled) and ready (LSERDY flag set by hardware), and after the RTCSEL bit is selected. Once enabled, this bit cannot be disabled, except after a LSE failure detection (LSECSSD =1). In that case the software must disable the LSECSSON bit.' + bit_offset: 5 + bit_size: 1 + - name: LSECSSD + description: CSS on LSE failure Detection Set by hardware to indicate when a failure is detected by the clock security system on the external 321kHz oscillator (LSE):. + bit_offset: 6 + bit_size: 1 + - name: LSESYSEN + description: LSE clock enable for system usage This bit must be set by software to enable the LSE clock for a system usage. + bit_offset: 7 + bit_size: 1 + - name: RTCSEL + description: 'RTC clock source selection Set by software to select the clock source for the RTC as follows: Once the RTC clock source is selected, it cannot be changed anymore unless the RTC domain is reset, or unless a failure is detected on LSE (LSECSSD is set). The BDRST bit can be used to reset this bitfield to 00.' + bit_offset: 8 + bit_size: 2 + enum: RTCSEL + - name: LSESYSRDY + description: LSE clock ready for system usage This flag is set by hardware to indicate that the LSE clock is ready for being used by the system (see LSESYSEN bit). This flag is set when LSE clock is ready (LSEON1=11 and LSERDY1=11) and two LSE clock cycles after that LSESYSEN is set. Cleared by hardware to indicate that the LSE clock is not ready to be used by the system. + bit_offset: 11 + bit_size: 1 + - name: RTCEN + description: RTC clock enable Set and cleared by software. The bit enables clock to RTC and TAMP. + bit_offset: 15 + bit_size: 1 + - name: BDRST + description: RTC domain software reset Set and cleared by software to reset the RTC domain:. + bit_offset: 16 + bit_size: 1 + - name: LSCOEN + description: Low-speed clock output (LSCO) enable Set and cleared by software. + bit_offset: 24 + bit_size: 1 + - name: LSCOSEL + description: Low-speed clock output selection Set and cleared by software to select the low-speed output clock:. + bit_offset: 25 + bit_size: 1 + enum: LSCOSEL +fieldset/CCIPR: + description: Peripherals independent clock configuration register. + fields: + - name: USART1SEL + description: USART1 clock source selection This bitfield is controlled by software to select USART1 clock source as follows:. + bit_offset: 0 + bit_size: 2 + enum: USART1SEL + - name: USART2SEL + description: USART2 clock source selection This bitfield is controlled by software to select USART2 clock source as follows:. + bit_offset: 2 + bit_size: 2 + enum: USART2SEL + - name: LPUART3SEL + description: LPUART3 clock source selection(1) This bitfield is controlled by software to select LPUART3 clock source as follows:. + bit_offset: 6 + bit_size: 2 + enum: LPUART3SEL + - name: LPUART2SEL + description: LPUART2 clock source selection This bitfield is controlled by software to select LPUART2 clock source as follows:. + bit_offset: 8 + bit_size: 2 + enum: LPUART2SEL + - name: LPUART1SEL + description: LPUART1 clock source selection This bitfield is controlled by software to select LPUART1 clock source as follows:. + bit_offset: 10 + bit_size: 2 + enum: LPUART1SEL + - name: I2C1SEL + description: I2C1 clock source selection This bitfield is controlled by software to select I2C1 clock source as follows:. + bit_offset: 12 + bit_size: 2 + enum: I2C1SEL + - name: I2C3SEL + description: I2C3 clock source selection This bitfield is controlled by software to select I2C3 clock source as follows:. + bit_offset: 16 + bit_size: 2 + enum: I2C3SEL + - name: LPTIM1SEL + description: LPTIM1 clock source selection This bitfield is controlled by software to select LPTIM1 clock source as follows:. + bit_offset: 18 + bit_size: 2 + enum: LPTIM1SEL + - name: LPTIM2SEL + description: LPTIM2 clock source selection This bitfield is controlled by software to select LPTIM2 clock source as follows:. + bit_offset: 20 + bit_size: 2 + enum: LPTIM2SEL + - name: LPTIM3SEL + description: LPTIM3 clock source selection This bitfield is controlled by software to select LPTIM3 clock source as follows:. + bit_offset: 22 + bit_size: 2 + enum: LPTIM3SEL + - name: TIM1SEL + description: TIM1 clock source selection This bit is set and cleared by software. It selects TIM1 clock source as follows:. + bit_offset: 24 + bit_size: 1 + enum: TIM1SEL + - name: TIM15SEL + description: TIM15 clock source selection This bit is set and cleared by software. It selects TIM15 clock source as follows:. + bit_offset: 25 + bit_size: 1 + enum: TIM15SEL + - name: CLK48SEL + description: 481MHz clock source selection This bitfield is controlled by software to select the 481MHz clock source used by the USB FS and the RNG:. + bit_offset: 26 + bit_size: 2 + enum: CLK48SEL + - name: ADCSEL + description: ADCs clock source selection This bitfield is controlled by software to select the clock source for ADC:. + bit_offset: 28 + bit_size: 2 + enum: ADCSEL +fieldset/CFGR: + description: Clock configuration register. + fields: + - name: SW + description: 'System clock switch This bitfield is controlled by software and hardware. The bitfield selects the clock for SYSCLK as follows: Others: Reserved The setting is forced by hardware to 000 (HSISYS selected) when the MCU exits Stop, Standby, or Shutdown mode, or when the setting is 001 (HSE selected) and HSE oscillator failure is detected.' + bit_offset: 0 + bit_size: 3 + enum: SW + - name: SWS + description: 'System clock switch status This bitfield is controlled by hardware to indicate the clock source used as system clock: Others: Reserved.' + bit_offset: 3 + bit_size: 3 + enum: SW + - name: HPRE + description: 'AHB prescaler This bitfield is controlled by software. To produce HCLK clock, it sets the division factor of SYSCLK clock as follows: 0xxx: 1 Caution: Depending on the device voltage range, the software has to set correctly these bits to ensure that the system frequency does not exceed the maximum allowed frequency (for more details, refer to Section14.1.4: Dynamic voltage scaling management). After a write operation to these bits and before decreasing the voltage range, this register must be read to be sure that the new value has been taken into account.' + bit_offset: 8 + bit_size: 4 + enum: HPRE + - name: PPRE + description: 'APB prescaler This bitfield is controlled by software. To produce PCLK clock, it sets the division factor of HCLK clock as follows: 0xx: 1.' + bit_offset: 12 + bit_size: 3 + enum: PPRE + - name: STOPWUCK + description: 'Wake-up from Stop and CSS backup clock selection Set and cleared by software to select the system clock used when exiting Stop mode. The selected clock is also used as emergency clock for the Clock Security System on HSE. Warning: STOPWUCK must not be modified when the Clock Security System is enabled by HSECSSON in RCC_CR register and the system clock is HSE (SWS=10) or a switch on HSE is requested (SW=10).' + bit_offset: 15 + bit_size: 1 + - name: MCO2SEL + description: 'Microcontroller clock output 2 clock selector This bitfield is controlled by software. It sets the clock selector for MCO2 output as follows: Others: Reserved Note: This clock output may have some truncated cycles at startup or during MCO2 clock source switching.' + bit_offset: 16 + bit_size: 4 + enum: MCOSEL + - name: MCO2PRE + description: 'Microcontroller clock output 2 prescaler This bitfield is controlled by software. It sets the division factor of the clock sent to the MCO2 output as follows: ... Others: reserved It is highly recommended to set this field before the MCO2 output is enabled.' + bit_offset: 20 + bit_size: 4 + enum: MCOPRE + - name: MCOSEL + description: 'Microcontroller clock output clock selector This bitfield is controlled by software. It sets the clock selector for MCO output as follows: Others: Reserved Note: This clock output may have some truncated cycles at startup or during MCO clock source switching.' + bit_offset: 24 + bit_size: 4 + enum: MCOSEL + - name: MCOPRE + description: 'Microcontroller clock output prescaler This bitfield is controlled by software. It sets the division factor of the clock sent to the MCO output as follows: ... Others: reserved It is highly recommended to set this field before the MCO output is enabled.' + bit_offset: 28 + bit_size: 4 + enum: MCOPRE +fieldset/CICR: + description: Clock interrupt clear register. + fields: + - name: LSIRDYC + description: LSI ready interrupt clear This bit is set by software to clear the LSIRDYF flag. + bit_offset: 0 + bit_size: 1 + - name: LSERDYC + description: LSE ready interrupt clear This bit is set by software to clear the LSERDYF flag. + bit_offset: 1 + bit_size: 1 + - name: MSIRDYC + description: MSI ready interrupt clear This bit is set by software to clear the MSIRDYF flag. + bit_offset: 2 + bit_size: 1 + - name: HSIRDYC + description: HSI ready interrupt clear This bit is set software to clear the HSIRDYF flag. + bit_offset: 3 + bit_size: 1 + - name: HSERDYC + description: HSE ready interrupt clear This bit is set by software to clear the HSERDYF flag. + bit_offset: 4 + bit_size: 1 + - name: PLLRDYC + description: PLL ready interrupt clear This bit is set by software to clear the PLLRDYF flag. + bit_offset: 5 + bit_size: 1 + - name: CSSC + description: Clock security system interrupt clear This bit is set by software to clear the HSECSSF flag. + bit_offset: 8 + bit_size: 1 + - name: LSECSSC + description: LSE Clock security system interrupt clear This bit is set by software to clear the LSECSSF flag. + bit_offset: 9 + bit_size: 1 + - name: HSI48RDYC + description: HSI48 oscillator ready interrupt clear This bit is set by software to clear the HSI48RDYF flag. + bit_offset: 10 + bit_size: 1 +fieldset/CIER: + description: Clock interrupt enable register. + fields: + - name: LSIRDYIE + description: LSI ready interrupt enable Set and cleared by software to enable/disable interrupt caused by the LSI oscillator stabilization:. + bit_offset: 0 + bit_size: 1 + - name: LSERDYIE + description: LSE ready interrupt enable Set and cleared by software to enable/disable interrupt caused by the LSE oscillator stabilization:. + bit_offset: 1 + bit_size: 1 + - name: MSIRDYIE + description: MSI ready interrupt enable Set and cleared by software to enable/disable interrupt caused by the MSI oscillator stabilization. + bit_offset: 2 + bit_size: 1 + - name: HSIRDYIE + description: HSI ready interrupt enable Set and cleared by software to enable/disable interrupt caused by the HSI oscillator stabilization:. + bit_offset: 3 + bit_size: 1 + - name: HSERDYIE + description: HSE ready interrupt enable Set and cleared by software to enable/disable interrupt caused by the HSE oscillator stabilization:. + bit_offset: 4 + bit_size: 1 + - name: PLLRDYIE + description: PLL ready interrupt enable Set and cleared by software to enable/disable interrupt caused by PLL lock:. + bit_offset: 5 + bit_size: 1 + - name: LSECSSIE + description: LSE clock security system interrupt enable Set and cleared by software to enable/disable interrupt caused by the clock security system on LSE. + bit_offset: 9 + bit_size: 1 + - name: HSI48RDYIE + description: HSI48 ready interrupt enable Set and cleared by software to enable/disable interrupt caused by the internal HSI48 oscillator. + bit_offset: 10 + bit_size: 1 +fieldset/CIFR: + description: Clock interrupt flag register. + fields: + - name: LSIRDYF + description: LSI ready interrupt flag Set by hardware when the LSI clock becomes stable and LSIRDYDIE is set. Cleared by software setting the LSIRDYC bit. + bit_offset: 0 + bit_size: 1 + - name: LSERDYF + description: LSE ready interrupt flag Set by hardware when the LSE clock becomes stable and LSERDYDIE is set. Cleared by software setting the LSERDYC bit. + bit_offset: 1 + bit_size: 1 + - name: MSIRDYF + description: MSI ready interrupt flag Set by hardware when the MSI clock becomes stable and MSIRDYDIE is set. Cleared by software setting the MSIRDYC bit. + bit_offset: 2 + bit_size: 1 + - name: HSIRDYF + description: HSI ready interrupt flag Set by hardware when the HSI clock becomes stable and HSIRDYIE is set in a response to setting the HSION (refer to Clock control register (RCC_CR)). When HSION is not set but the HSI oscillator is enabled by the peripheral through a clock request, this bit is not set and no interrupt is generated. Cleared by software setting the HSIRDYC bit. + bit_offset: 3 + bit_size: 1 + - name: HSERDYF + description: HSE ready interrupt flag Set by hardware when the HSE clock becomes stable and HSERDYIE is set. Cleared by software setting the HSERDYC bit. + bit_offset: 4 + bit_size: 1 + - name: PLLRDYF + description: PLL ready interrupt flag Set by hardware when the PLL locks and PLLRDYIE is set. Cleared by software setting the PLLRDYC bit. + bit_offset: 5 + bit_size: 1 + - name: CSSF + description: HSE clock security system interrupt flag Set by hardware when a failure is detected in the HSE oscillator. Cleared by software setting the CSSC bit. + bit_offset: 8 + bit_size: 1 + - name: LSECSSF + description: LSE clock security system interrupt flag Set by hardware when a failure is detected in the LSE oscillator. Cleared by software by setting the LSECSSC bit. + bit_offset: 9 + bit_size: 1 + - name: HSI48RDYF + description: HSI48 ready interrupt flag Set by hardware when the HSI48 clock becomes stable and HSI48RDYIE is set in a response to setting the HSI48ON (refer to RCC clock recovery RC register (RCC_CRRCR)). Cleared by software setting the HSI48RDYC bit. + bit_offset: 10 + bit_size: 1 +fieldset/CR: + description: Clock control register. + fields: + - name: MSION + description: MSI clock enable This bit is set and cleared by software. Cleared by hardware to stop the MSI oscillator when entering Stop, Standby or Shutdown mode. Set by hardware to force the MSI oscillator ON when exiting Standby or Shutdown mode. Set by hardware to force the MSI oscillator ON when STOPWUCK=0 when exiting from Stop modes, or in case of a failure of the HSE oscillator Set by hardware when used directly or indirectly as system clock. + bit_offset: 0 + bit_size: 1 + - name: MSIRDY + description: 'MSI clock ready flag This bit is set by hardware to indicate that the MSI oscillator is stable. Note: Once the MSION bit is cleared, MSIRDY goes low after 6 MSI clock cycles.' + bit_offset: 1 + bit_size: 1 + - name: MSIPLLEN + description: MSI clock PLL enable Set and cleared by software to enable/ disable the PLL part of the MSI clock source. MSIPLLEN must be enabled after LSE is enabled (LSEON enabled) and ready (LSERDY set by hardware).There is a hardware protection to avoid enabling MSIPLLEN if LSE is not ready. This bit is cleared by hardware when LSE is disabled (LSEON = 0) or when the Clock Security System on LSE detects a LSE failure (refer to RCC_CSR register). + bit_offset: 2 + bit_size: 1 + - name: MSIRGSEL + description: MSI clock range selection Set by software to select the MSI clock range with MSIRANGE[3:0]. Write 0 has no effect. After a standby or a reset MSIRGSEL is at 0 and the MSI range value is provided by MSISRANGE in CSR register. + bit_offset: 3 + bit_size: 1 + enum: MSIRGSEL + - name: MSIRANGE + description: 'MSI clock ranges These bits are configured by software to choose the frequency range of MSI when MSIRGSEL is set.12 frequency ranges are available: others: not allowed (hardware write protection) Note: Warning: MSIRANGE can be modified when MSI is OFF (MSION=0) or when MSI is ready (MSIRDY=1). MSIRANGE must NOT be modified when MSI is ON and NOT ready (MSION=1 and MSIRDY=0).' + bit_offset: 4 + bit_size: 4 + enum: MSIRANGE + - name: HSION + description: HSI clock enable Set and cleared by software. Cleared by hardware to stop the HSI oscillator when entering Stop, Standby, or Shutdown mode. Forced by hardware to keep the HSI oscillator ON when it is used directly or indirectly as system clock (also when leaving Stop, Standby, or Shutdown modes, or in case of failure of the HSE oscillator used for system clock). + bit_offset: 8 + bit_size: 1 + - name: HSIKERON + description: HSI always enable for peripheral kernels. Set and cleared by software to force HSI ON even in Stop modes. The HSI can only feed USART1, USART2, CEC and I2C1 peripherals configured with HSI as kernel clock. Keeping the HSI ON in Stop mode allows avoiding to slow down the communication speed because of the HSI startup time. This bit has no effect on HSION value. + bit_offset: 9 + bit_size: 1 + - name: HSIRDY + description: 'HSI clock ready flag Set by hardware to indicate that HSI oscillator is stable. This bit is set only when HSI is enabled by software by setting HSION. Note: Once the HSION bit is cleared, HSIRDY goes low after 6 HSI clock cycles.' + bit_offset: 10 + bit_size: 1 + - name: HSIASFS + description: HSI automatic start from Stop Set and cleared by software. When the system wake-up clock is MSI, this bit is used to wake up the HSI is parallel of the system wake-up. + bit_offset: 11 + bit_size: 1 + - name: HSEON + description: HSE clock enable Set and cleared by software. Cleared by hardware to stop the HSE oscillator when entering Stop, Standby, or Shutdown mode. This bit cannot be reset if the HSE oscillator is used directly or indirectly as the system clock. + bit_offset: 16 + bit_size: 1 + - name: HSERDY + description: 'HSE clock ready flag Set by hardware to indicate that the HSE oscillator is stable. Note: Once the HSEON bit is cleared, HSERDY goes low after 6 HSE clock cycles.' + bit_offset: 17 + bit_size: 1 + - name: HSEBYP + description: HSE crystal oscillator bypass Set and cleared by software to bypass the oscillator with an external clock. The external clock must be enabled with the HSEON bit set, to be used by the device. The HSEBYP bit can be written only if the HSE oscillator is disabled. + bit_offset: 18 + bit_size: 1 + - name: CSSON + description: Clock security system enable Set by software to enable the clock security system. When CSSON is set, the clock detector is enabled by hardware when the HSE oscillator is ready, and disabled by hardware if a HSE clock failure is detected. This bit is set only and is cleared by reset. + bit_offset: 19 + bit_size: 1 + - name: PLLON + description: PLL enable Set and cleared by software to enable the PLL. Cleared by hardware when entering Stop, Standby or Shutdown mode. This bit cannot be reset if the PLL clock is used as the system clock. + bit_offset: 24 + bit_size: 1 + - name: PLLRDY + description: PLL clock ready flag Set by hardware to indicate that the PLL is locked. + bit_offset: 25 + bit_size: 1 +fieldset/CRRCR: + description: RCC clock recovery RC register. + fields: + - name: HSI48ON + description: HSI48 RC oscillator enable(1). + bit_offset: 0 + bit_size: 1 + - name: HSI48RDY + description: HSI48 clock ready flag(1) The flag is set when the HSI48 clock is ready for use. + bit_offset: 1 + bit_size: 1 + - name: HSI48CAL + description: HSI48 clock calibration These bits are initialized at startup with the factory-programmed HSI48 calibration trim value. + bit_offset: 7 + bit_size: 9 +fieldset/CSR: + description: Control/status register. + fields: + - name: LSION + description: LSI oscillator enable Set and cleared by software to enable/disable the LSI oscillator:. + bit_offset: 0 + bit_size: 1 + - name: LSIRDY + description: 'LSI oscillator ready Set and cleared by hardware to indicate when the LSI oscillator is ready (stable): After the LSION bit is cleared, LSIRDY goes low after 3 LSI oscillator clock cycles. This bit can be set even if LSION = 0 if the LSI is requested by the Clock Security System on LSE, by the Independent Watchdog or by the RTC.' + bit_offset: 1 + bit_size: 1 + - name: LSIPREDIV + description: Internal low-speed oscillator pre-divided by 128 Set and reset by hardware to indicate when the low-speed internal RC oscillator has to be divided by 128. The software has to switch off the LSI before changing this bit. + bit_offset: 2 + bit_size: 1 + enum: LSIPREDIV + - name: MSISRANGE + description: 'MSI range after Standby mode Set by software to chose the MSI frequency at startup. This range is used after exiting Standby mode until MSIRGSEL is set. After a pad or a power-on reset, the range is always 41MHz. MSISRANGE[3:0] can be written only when MSIRGSEL1=11. Others: Reserved Note: Changing the MSISRANGE[3:0] does not change the current MSI frequency.' + bit_offset: 8 + bit_size: 4 + enum: MSISRANGE + - name: RMVF + description: Remove reset flags Set by software to clear the reset flags. + bit_offset: 23 + bit_size: 1 + - name: OBLRSTF + description: Option byte loader reset flag Set by hardware when a reset from the Option byte loading occurs. Cleared by setting the RMVF bit. + bit_offset: 25 + bit_size: 1 + - name: PINRSTF + description: Pin reset flag Set by hardware when a reset from the NRST pin occurs. Cleared by setting the RMVF bit. + bit_offset: 26 + bit_size: 1 + - name: PWRRSTF + description: BOR or POR/PDR flag Set by hardware when a BOR or POR/PDR occurs. Cleared by setting the RMVF bit. + bit_offset: 27 + bit_size: 1 + - name: SFTRSTF + description: Software reset flag Set by hardware when a software reset occurs. Cleared by setting the RMVF bit. + bit_offset: 28 + bit_size: 1 + - name: IWDGRSTF + description: Independent window watchdog reset flag Set by hardware when an independent watchdog reset domain occurs. Cleared by setting the RMVF bit. + bit_offset: 29 + bit_size: 1 + - name: WWDGRSTF + description: Window watchdog reset flag Set by hardware when a window watchdog reset occurs. Cleared by setting the RMVF bit. + bit_offset: 30 + bit_size: 1 + - name: LPWRRSTF + description: Low-power reset flag Set by hardware when a reset occurs due to illegal Stop, Standby, or Shutdown mode entry. Cleared by setting the RMVF bit. This operates only if nRST_STOP, nRST_STDBY or nRST_SHDW option bits are cleared. + bit_offset: 31 + bit_size: 1 +fieldset/DBGCFGR: + description: Debug configuration register. + fields: + - name: DBGEN + description: Debug support clock enable Set and cleared by software. + bit_offset: 0 + bit_size: 1 + - name: DBGRST + description: Debug support reset Set and cleared by software. + bit_offset: 1 + bit_size: 1 +fieldset/ICSCR: + description: Internal clock sources calibration register. + fields: + - name: MSICAL + description: MSI clock calibration These bits are initialized at startup with the factory-programmed MSI calibration trim value. When MSITRIM is written, MSICAL is updated with the sum of MSITRIM and the factory trim value. + bit_offset: 0 + bit_size: 8 + - name: MSITRIM + description: MSI clock trimming These bits provide an additional user-programmable trimming value that is added to the MSICAL[7:0] bits. It can be programmed to adjust to variations in voltage and temperature that influence the frequency of the MSI. + bit_offset: 8 + bit_size: 8 + - name: HSICAL + description: HSI clock calibration These bits are initialized at startup with the factory-programmed HSI calibration trim value. When HSITRIM is written, HSICAL is updated with the sum of HSITRIM and the factory trim value. + bit_offset: 16 + bit_size: 8 + - name: HSITRIM + description: HSI clock trimming These bits provide an additional user-programmable trimming value that is added to the HSICAL[7:0] bits. It can be programmed to adjust to variations in voltage and temperature that influence the frequency of the HSI. The default value is 64 when added to the HSICAL value, trim the HSI to 161MHz 1 11%. + bit_offset: 24 + bit_size: 7 +fieldset/GPIOENR: + description: I/O port clock enable register. + fields: + - name: GPIOAEN + description: I/O port A clock enable This bit is set and cleared by software. + bit_offset: 0 + bit_size: 1 + - name: GPIOBEN + description: I/O port B clock enable This bit is set and cleared by software. + bit_offset: 1 + bit_size: 1 + - name: GPIOCEN + description: I/O port C clock enable This bit is set and cleared by software. + bit_offset: 2 + bit_size: 1 + - name: GPIODEN + description: I/O port D clock enable This bit is set and cleared by software. + bit_offset: 3 + bit_size: 1 + - name: GPIOEEN + description: I/O port E clock enable(1) This bit is set and cleared by software. + bit_offset: 4 + bit_size: 1 + - name: GPIOFEN + description: I/O port F clock enable This bit is set and cleared by software. + bit_offset: 5 + bit_size: 1 +fieldset/GPIORSTR: + description: I/O port reset register. + fields: + - name: GPIOARST + description: I/O port A reset This bit is set and cleared by software. + bit_offset: 0 + bit_size: 1 + - name: GPIOBRST + description: I/O port B reset This bit is set and cleared by software. + bit_offset: 1 + bit_size: 1 + - name: GPIOCRST + description: I/O port C reset This bit is set and cleared by software. + bit_offset: 2 + bit_size: 1 + - name: GPIODRST + description: I/O port D reset This bit is set and cleared by software. + bit_offset: 3 + bit_size: 1 + - name: GPIOERST + description: I/O port E reset This bit is set and cleared by software. + bit_offset: 4 + bit_size: 1 + - name: GPIOFRST + description: I/O port F reset This bit is set and cleared by software. + bit_offset: 5 + bit_size: 1 +fieldset/GPIOSMENR: + description: I/O port in Sleep mode clock enable register. + fields: + - name: GPIOASMEN + description: I/O port A clock enable during Sleep mode Set and cleared by software. + bit_offset: 0 + bit_size: 1 + - name: GPIOBSMEN + description: I/O port B clock enable during Sleep mode Set and cleared by software. + bit_offset: 1 + bit_size: 1 + - name: GPIOCSMEN + description: I/O port C clock enable during Sleep mode Set and cleared by software. + bit_offset: 2 + bit_size: 1 + - name: GPIODSMEN + description: I/O port D clock enable during Sleep mode(1) Set and cleared by software. + bit_offset: 3 + bit_size: 1 + - name: GPIOESMEN + description: I/O port E clock enable during Sleep mode Set and cleared by software. + bit_offset: 4 + bit_size: 1 + - name: GPIOFSMEN + description: I/O port F clock enable during Sleep mode Set and cleared by software. + bit_offset: 5 + bit_size: 1 +fieldset/PLLCFGR: + description: PLL configuration register. + fields: + - name: PLLSRC + description: 'PLL input clock source This bit is controlled by software to select PLL clock source, as follows: The bitfield can be written only when the PLL is disabled. When the PLL is not used, selecting 00 allows saving power.' + bit_offset: 0 + bit_size: 2 + enum: PLLSRC + - name: PLLM + description: 'Division factor M of the PLL input clock divider This bit is controlled by software to divide the PLL input clock before the actual phase-locked loop, as follows: The bitfield can be written only when the PLL is disabled. Caution: The software must set these bits so that the PLL input frequency after the /M divider is between 2.66 and 161MHz.' + bit_offset: 4 + bit_size: 3 + enum: PLLM + - name: PLLN + description: 'PLL frequency multiplication factor N This bit is controlled by software to set the division factor of the fVCO feedback divider (that determines the PLL multiplication ratio) as follows: ... ... The bitfield can be written only when the PLL is disabled. Caution: The software must set these bits so that the VCO output frequency is between 96 and 3441MHz.' + bit_offset: 8 + bit_size: 7 + enum: PLLN + - name: PLLPEN + description: 'PLLPCLK clock output enable This bit is controlled by software to enable/disable the PLLPCLK clock output of the PLL: Disabling the PLLPCLK clock output, when not used, allows saving power.' + bit_offset: 16 + bit_size: 1 + - name: PLLP + description: 'PLL VCO division factor P for PLLPCLK clock output This bitfield is controlled by software. It sets the PLL VCO division factor P as follows: ... The bitfield can be written only when the PLL is disabled. Caution: The software must set this bitfield so as not to exceed 541MHz on this clock.' + bit_offset: 17 + bit_size: 5 + enum: PLLP + - name: PLLQEN + description: 'PLLQCLK clock output enable This bit is controlled by software to enable/disable the PLLQCLK clock output of the PLL: Disabling the PLLQCLK clock output, when not used, allows saving power.' + bit_offset: 24 + bit_size: 1 + - name: PLLQ + description: 'PLL VCO division factor Q for PLLQCLK clock output This bitfield is controlled by software. It sets the PLL VCO division factor Q as follows: The bitfield can be written only when the PLL is disabled. Caution: The software must set this bitfield so as not to exceed 541MHz on this clock.' + bit_offset: 25 + bit_size: 3 + enum: PLLQ + - name: PLLREN + description: 'PLLRCLK clock output enable This bit is controlled by software to enable/disable the PLLRCLK clock output of the PLL: This bit cannot be written when PLLRCLK output of the PLL is selected for system clock. Disabling the PLLRCLK clock output, when not used, allows saving power.' + bit_offset: 28 + bit_size: 1 + - name: PLLR + description: 'PLL VCO division factor R for PLLRCLK clock output This bitfield is controlled by software. It sets the PLL VCO division factor R as follows: The bitfield can be written only when the PLL is disabled. The PLLRCLK clock can be selected as system clock. Caution: The software must set this bitfield so as not to exceed 122MHz on this clock.' + bit_offset: 29 + bit_size: 3 + enum: PLLR +enum/ADCSEL: + bit_size: 2 + variants: + - name: SYS + value: 0 + - name: PLL1_P + value: 1 + - name: HSI + value: 2 +enum/CLK48SEL: + bit_size: 2 + variants: + - name: DISABLE + value: 0 + - name: MSI + value: 1 + - name: PLL1_Q + value: 2 + - name: HSI48 + value: 3 +enum/HPRE: + bit_size: 4 + variants: + - name: Div1 + value: 0 + - name: Div2 + value: 8 + - name: Div4 + value: 9 + - name: Div8 + value: 10 + - name: Div16 + value: 11 + - name: Div64 + value: 12 + - name: Div128 + value: 13 + - name: Div256 + value: 14 + - name: Div512 + value: 15 +enum/I2C1SEL: + bit_size: 2 + variants: + - name: PCLK1 + value: 0 + - name: SYS + value: 1 + - name: HSI + value: 2 +enum/I2C3SEL: + bit_size: 2 + variants: + - name: PCLK1 + value: 0 + - name: SYS + value: 1 + - name: HSI + value: 2 +enum/LPTIM1SEL: + bit_size: 2 + variants: + - name: PCLK1 + value: 0 + - name: LSI + value: 1 + - name: HSI + value: 2 + - name: LSE + value: 3 +enum/LPTIM2SEL: + bit_size: 2 + variants: + - name: PCLK1 + value: 0 + - name: LSI + value: 1 + - name: HSI + value: 2 + - name: LSE + value: 3 +enum/LPTIM3SEL: + bit_size: 2 + variants: + - name: PCLK1 + value: 0 + - name: LSI + value: 1 + - name: HSI + value: 2 + - name: LSE + value: 3 +enum/LPUART1SEL: + bit_size: 2 + variants: + - name: PCLK1 + value: 0 + - name: SYS + value: 1 + - name: HSI + value: 2 + - name: LSE + value: 3 +enum/LPUART2SEL: + bit_size: 2 + variants: + - name: PCLK1 + value: 0 + - name: SYS + value: 1 + - name: HSI + value: 2 + - name: LSE + value: 3 +enum/LPUART3SEL: + bit_size: 2 + variants: + - name: PCLK1 + value: 0 + - name: SYS + value: 1 + - name: HSI + value: 2 + - name: LSE + value: 3 +enum/LSCOSEL: + bit_size: 1 + variants: + - name: LSI + value: 0 + - name: LSE + value: 1 +enum/LSEDRV: + bit_size: 2 + variants: + - name: Low + description: Low driving capability + value: 0 + - name: MediumLow + description: Medium low driving capability + value: 1 + - name: MediumHigh + description: Medium high driving capability + value: 2 + - name: High + description: High driving capability + value: 3 +enum/LSIPREDIV: + bit_size: 1 + variants: + - name: Div1 + value: 0 + - name: Div128 + value: 1 +enum/MCOPRE: + bit_size: 4 + variants: + - name: Div1 + value: 0 + - name: Div2 + value: 1 + - name: Div4 + value: 2 + - name: Div8 + value: 3 + - name: Div16 + value: 4 + - name: Div32 + value: 5 + - name: Div64 + value: 6 + - name: Div128 + value: 7 + - name: Div256 + value: 8 + - name: Div512 + value: 9 + - name: Div1024 + value: 10 +enum/MCOSEL: + bit_size: 4 + variants: + - name: DISABLE + value: 0 + - name: SYS + value: 1 + - name: MSI + value: 2 + - name: HSI + value: 3 + - name: HSE + value: 4 + - name: PLL1_R + value: 5 + - name: LSI + value: 6 + - name: LSE + value: 7 + - name: HSI48 + value: 8 + - name: RTC + value: 9 + - name: RTC_WKUP + value: 10 +enum/MSIRANGE: + bit_size: 4 + variants: + - name: Range100K + description: range 0 around 100 kHz + value: 0 + - name: Range200K + description: range 1 around 200 kHz + value: 1 + - name: Range400K + description: range 2 around 400 kHz + value: 2 + - name: Range800K + description: range 3 around 800 kHz + value: 3 + - name: Range1M + description: range 4 around 1 MHz + value: 4 + - name: Range2M + description: range 5 around 2 MHz + value: 5 + - name: Range4M + description: range 6 around 4 MHz + value: 6 + - name: Range8M + description: range 7 around 8 MHz + value: 7 + - name: Range16M + description: range 8 around 16 MHz + value: 8 + - name: Range24M + description: range 9 around 24 MHz + value: 9 + - name: Range32M + description: range 10 around 32 MHz + value: 10 + - name: Range48M + description: range 11 around 48 MHz + value: 11 +enum/MSIRGSEL: + bit_size: 1 + variants: + - name: CSR + description: MSI Range is provided by MSISRANGE[3:0] in RCC_CSR register + value: 0 + - name: CR + description: MSI Range is provided by MSIRANGE[3:0] in the RCC_CR register + value: 1 +enum/MSISRANGE: + bit_size: 4 + variants: + - name: RANGE_81MHz + value: 4 +enum/PLLM: + bit_size: 3 + variants: + - name: Div1 + value: 0 + - name: Div2 + value: 1 + - name: Div3 + value: 2 + - name: Div4 + value: 3 + - name: Div5 + value: 4 + - name: Div6 + value: 5 + - name: Div7 + value: 6 + - name: Div8 + value: 7 +enum/PLLN: + bit_size: 7 + variants: + - name: Mul4 + value: 4 + - name: Mul5 + value: 5 + - name: Mul6 + value: 6 + - name: Mul7 + value: 7 + - name: Mul8 + value: 8 + - name: Mul9 + value: 9 + - name: Mul10 + value: 10 + - name: Mul11 + value: 11 + - name: Mul12 + value: 12 + - name: Mul13 + value: 13 + - name: Mul14 + value: 14 + - name: Mul15 + value: 15 + - name: Mul16 + value: 16 + - name: Mul17 + value: 17 + - name: Mul18 + value: 18 + - name: Mul19 + value: 19 + - name: Mul20 + value: 20 + - name: Mul21 + value: 21 + - name: Mul22 + value: 22 + - name: Mul23 + value: 23 + - name: Mul24 + value: 24 + - name: Mul25 + value: 25 + - name: Mul26 + value: 26 + - name: Mul27 + value: 27 + - name: Mul28 + value: 28 + - name: Mul29 + value: 29 + - name: Mul30 + value: 30 + - name: Mul31 + value: 31 + - name: Mul32 + value: 32 + - name: Mul33 + value: 33 + - name: Mul34 + value: 34 + - name: Mul35 + value: 35 + - name: Mul36 + value: 36 + - name: Mul37 + value: 37 + - name: Mul38 + value: 38 + - name: Mul39 + value: 39 + - name: Mul40 + value: 40 + - name: Mul41 + value: 41 + - name: Mul42 + value: 42 + - name: Mul43 + value: 43 + - name: Mul44 + value: 44 + - name: Mul45 + value: 45 + - name: Mul46 + value: 46 + - name: Mul47 + value: 47 + - name: Mul48 + value: 48 + - name: Mul49 + value: 49 + - name: Mul50 + value: 50 + - name: Mul51 + value: 51 + - name: Mul52 + value: 52 + - name: Mul53 + value: 53 + - name: Mul54 + value: 54 + - name: Mul55 + value: 55 + - name: Mul56 + value: 56 + - name: Mul57 + value: 57 + - name: Mul58 + value: 58 + - name: Mul59 + value: 59 + - name: Mul60 + value: 60 + - name: Mul61 + value: 61 + - name: Mul62 + value: 62 + - name: Mul63 + value: 63 + - name: Mul64 + value: 64 + - name: Mul65 + value: 65 + - name: Mul66 + value: 66 + - name: Mul67 + value: 67 + - name: Mul68 + value: 68 + - name: Mul69 + value: 69 + - name: Mul70 + value: 70 + - name: Mul71 + value: 71 + - name: Mul72 + value: 72 + - name: Mul73 + value: 73 + - name: Mul74 + value: 74 + - name: Mul75 + value: 75 + - name: Mul76 + value: 76 + - name: Mul77 + value: 77 + - name: Mul78 + value: 78 + - name: Mul79 + value: 79 + - name: Mul80 + value: 80 + - name: Mul81 + value: 81 + - name: Mul82 + value: 82 + - name: Mul83 + value: 83 + - name: Mul84 + value: 84 + - name: Mul85 + value: 85 + - name: Mul86 + value: 86 + - name: Mul87 + value: 87 + - name: Mul88 + value: 88 + - name: Mul89 + value: 89 + - name: Mul90 + value: 90 + - name: Mul91 + value: 91 + - name: Mul92 + value: 92 + - name: Mul93 + value: 93 + - name: Mul94 + value: 94 + - name: Mul95 + value: 95 + - name: Mul96 + value: 96 + - name: Mul97 + value: 97 + - name: Mul98 + value: 98 + - name: Mul99 + value: 99 + - name: Mul100 + value: 100 + - name: Mul101 + value: 101 + - name: Mul102 + value: 102 + - name: Mul103 + value: 103 + - name: Mul104 + value: 104 + - name: Mul105 + value: 105 + - name: Mul106 + value: 106 + - name: Mul107 + value: 107 + - name: Mul108 + value: 108 + - name: Mul109 + value: 109 + - name: Mul110 + value: 110 + - name: Mul111 + value: 111 + - name: Mul112 + value: 112 + - name: Mul113 + value: 113 + - name: Mul114 + value: 114 + - name: Mul115 + value: 115 + - name: Mul116 + value: 116 + - name: Mul117 + value: 117 + - name: Mul118 + value: 118 + - name: Mul119 + value: 119 + - name: Mul120 + value: 120 + - name: Mul121 + value: 121 + - name: Mul122 + value: 122 + - name: Mul123 + value: 123 + - name: Mul124 + value: 124 + - name: Mul125 + value: 125 + - name: Mul126 + value: 126 + - name: Mul127 + value: 127 +enum/PLLP: + bit_size: 5 + variants: + - name: Div2 + value: 1 + - name: Div3 + value: 2 + - name: Div4 + value: 3 + - name: Div5 + value: 4 + - name: Div6 + value: 5 + - name: Div7 + value: 6 + - name: Div8 + value: 7 + - name: Div9 + value: 8 + - name: Div10 + value: 9 + - name: Div11 + value: 10 + - name: Div12 + value: 11 + - name: Div13 + value: 12 + - name: Div14 + value: 13 + - name: Div15 + value: 14 + - name: Div16 + value: 15 + - name: Div17 + value: 16 + - name: Div18 + value: 17 + - name: Div19 + value: 18 + - name: Div20 + value: 19 + - name: Div21 + value: 20 + - name: Div22 + value: 21 + - name: Div23 + value: 22 + - name: Div24 + value: 23 + - name: Div25 + value: 24 + - name: Div26 + value: 25 + - name: Div27 + value: 26 + - name: Div28 + value: 27 + - name: Div29 + value: 28 + - name: Div30 + value: 29 + - name: Div31 + value: 30 + - name: Div32 + value: 31 +enum/PLLQ: + bit_size: 3 + variants: + - name: Div2 + value: 1 + - name: Div3 + value: 2 + - name: Div4 + value: 3 + - name: Div5 + value: 4 + - name: Div6 + value: 5 + - name: Div7 + value: 6 + - name: Div8 + value: 7 +enum/PLLR: + bit_size: 3 + variants: + - name: Div2 + value: 1 + - name: Div3 + value: 2 + - name: Div4 + value: 3 + - name: Div5 + value: 4 + - name: Div6 + value: 5 + - name: Div7 + value: 6 + - name: Div8 + value: 7 +enum/PLLSRC: + bit_size: 2 + variants: + - name: DISABLE + value: 0 + - name: MSI + value: 1 + - name: HSI + value: 2 + - name: HSE + value: 3 +enum/PPRE: + bit_size: 3 + variants: + - name: Div1 + description: HCLK not divided + value: 0 + - name: Div2 + description: HCLK divided by 2 + value: 4 + - name: Div4 + description: HCLK divided by 4 + value: 5 + - name: Div8 + description: HCLK divided by 8 + value: 6 + - name: Div16 + description: HCLK divided by 16 + value: 7 +enum/RTCSEL: + bit_size: 2 + variants: + - name: DISABLE + value: 0 + - name: LSE + value: 1 + - name: LSI + value: 2 + - name: HSE + value: 3 +enum/SW: + bit_size: 3 + variants: + - name: MSI + value: 0 + - name: HSI + value: 1 + - name: HSE + value: 2 + - name: PLL1_R + value: 3 + - name: LSI + value: 4 + - name: LSE + value: 5 +enum/TIM15SEL: + bit_size: 1 + variants: + - name: PCLK1_TIM + value: 0 + - name: PLL1_Q + value: 1 +enum/TIM1SEL: + bit_size: 1 + variants: + - name: PCLK1_TIM + value: 0 + - name: PLL1_Q + value: 1 +enum/USART1SEL: + bit_size: 2 + variants: + - name: PCLK1 + value: 0 + - name: SYS + value: 1 + - name: HSI + value: 2 + - name: LSE + value: 3 +enum/USART2SEL: + bit_size: 2 + variants: + - name: PCLK1 + value: 0 + - name: SYS + value: 1 + - name: HSI + value: 2 + - name: LSE + value: 3 diff --git a/data/registers/syscfg_u0.yaml b/data/registers/syscfg_u0.yaml new file mode 100644 index 0000000..1688672 --- /dev/null +++ b/data/registers/syscfg_u0.yaml @@ -0,0 +1,752 @@ +block/SYSCFG: + description: SYSCFG register block + items: + - name: CFGR1 + description: SYSCFG configuration register 1 + byte_offset: 0 + fieldset: CFGR1 + - name: CFGR2 + description: SYSCFG configuration register 2 + byte_offset: 24 + fieldset: CFGR2 + - name: SCSR + description: SYSCFG SRAM2 control and status register + byte_offset: 28 + fieldset: SCSR + - name: SKR + description: SYSCFG SRAM2 key register + byte_offset: 32 + fieldset: SKR + - name: TSCCR + description: SYSCFG TSC comparator register + byte_offset: 36 + fieldset: TSCCR + - name: ITLINE0 + description: SYSCFG interrupt line 0 status register + byte_offset: 128 + fieldset: ITLINE0 + - name: ITLINE1 + description: SYSCFG interrupt line 1 status register + byte_offset: 132 + fieldset: ITLINE1 + - name: ITLINE2 + description: SYSCFG interrupt line 2 status register + byte_offset: 136 + fieldset: ITLINE2 + - name: ITLINE3 + description: SYSCFG interrupt line 3 status register + byte_offset: 140 + fieldset: ITLINE3 + - name: ITLINE4 + description: SYSCFG interrupt line 4 status register + byte_offset: 144 + fieldset: ITLINE4 + - name: ITLINE5 + description: SYSCFG interrupt line 5 status register + byte_offset: 148 + fieldset: ITLINE5 + - name: ITLINE6 + description: SYSCFG interrupt line 6 status register + byte_offset: 152 + fieldset: ITLINE6 + - name: ITLINE7 + description: SYSCFG interrupt line 7 status register + byte_offset: 156 + fieldset: ITLINE7 + - name: ITLINE8 + description: SYSCFG interrupt line 8 status register + byte_offset: 160 + fieldset: ITLINE8 + - name: ITLINE9 + description: SYSCFG interrupt line 9 status register + byte_offset: 164 + fieldset: ITLINE9 + - name: ITLINE10 + description: SYSCFG interrupt line 10 status register + byte_offset: 168 + fieldset: ITLINE10 + - name: ITLINE11 + description: SYSCFG interrupt line 11 status register + byte_offset: 172 + fieldset: ITLINE11 + - name: ITLINE12 + description: SYSCFG interrupt line 12 status register + byte_offset: 176 + fieldset: ITLINE12 + - name: ITLINE13 + description: SYSCFG interrupt line 13 status register + byte_offset: 180 + fieldset: ITLINE13 + - name: ITLINE14 + description: SYSCFG interrupt line 14 status register + byte_offset: 184 + fieldset: ITLINE14 + - name: ITLINE15 + description: SYSCFG interrupt line 15 status register + byte_offset: 188 + fieldset: ITLINE15 + - name: ITLINE16 + description: SYSCFG interrupt line 16 status register + byte_offset: 192 + fieldset: ITLINE16 + - name: ITLINE17 + description: SYSCFG interrupt line 17 status register + byte_offset: 196 + fieldset: ITLINE17 + - name: ITLINE18 + description: SYSCFG interrupt line 18 status register + byte_offset: 200 + fieldset: ITLINE18 + - name: ITLINE19 + description: SYSCFG interrupt line 19 status register + byte_offset: 204 + fieldset: ITLINE19 + - name: ITLINE20 + description: SYSCFG interrupt line 20 status register + byte_offset: 208 + fieldset: ITLINE20 + - name: ITLINE21 + description: SYSCFG interrupt line 21 status register + byte_offset: 212 + fieldset: ITLINE21 + - name: ITLINE22 + description: SYSCFG interrupt line 22 status register + byte_offset: 216 + fieldset: ITLINE22 + - name: ITLINE23 + description: SYSCFG interrupt line 23 status register + byte_offset: 220 + fieldset: ITLINE23 + - name: ITLINE24 + description: SYSCFG interrupt line 24 status register + byte_offset: 224 + fieldset: ITLINE24 + - name: ITLINE25 + description: SYSCFG interrupt line 25 status register + byte_offset: 228 + fieldset: ITLINE25 + - name: ITLINE26 + description: SYSCFG interrupt line 26 status register + byte_offset: 232 + fieldset: ITLINE26 + - name: ITLINE27 + description: SYSCFG interrupt line 27 status register + byte_offset: 236 + fieldset: ITLINE27 + - name: ITLINE28 + description: SYSCFG interrupt line 28 status register + byte_offset: 240 + fieldset: ITLINE28 + - name: ITLINE29 + description: SYSCFG interrupt line 29 status register + byte_offset: 244 + fieldset: ITLINE29 + - name: ITLINE30 + description: SYSCFG interrupt line 30 status register + byte_offset: 248 + fieldset: ITLINE30 + - name: ITLINE31 + description: SYSCFG interrupt line 31 status register + byte_offset: 252 + fieldset: ITLINE31 +fieldset/CFGR1: + description: SYSCFG configuration register 1 + fields: + - name: MEM_MODE + description: 'Memory mapping selection bits These bits are set and cleared by software. They control the memory internal mapping at address 0x000010000. After reset these bits take on the value selected by the actual boot mode configuration. Refer to Section12.5: Boot configuration for more details. X0: Main flash memory mapped at 0x000010000' + bit_offset: 0 + bit_size: 2 + enum: MEM_MODE + - name: PA11_RMP + description: |- + PA11 pin remapping This bit is set and cleared by software. When set, it remaps the PA11 pin to operate as PA9 GPIO port, instead as PA11 GPIO port. + 0: No remap (PA11) + 1: Remap (PA9) + bit_offset: 3 + bit_size: 1 + - name: PA12_RMP + description: |- + PA12 pin remapping This bit is set and cleared by software. When set, it remaps the PA12 pin to operate as PA10 GPIO port, instead as PA12 GPIO port. + 0: No remap (PA12) + 1: Remap (PA10) + bit_offset: 4 + bit_size: 1 + - name: IR_POL + description: IR output polarity selection + bit_offset: 5 + bit_size: 1 + - name: IR_MOD + description: 'IR Modulation Envelope signal selection This bitfield selects the signal for IR modulation envelope:' + bit_offset: 6 + bit_size: 2 + enum: IR_MOD + - name: BOOSTEN + description: 'I/O analog switch voltage booster enable This bit selects the way of supplying I/O analog switches: When using the analog inputs , setting to 0 is recommended for high VDD, setting to 1 for low VDD (less than 2.4 V).' + bit_offset: 8 + bit_size: 1 + - name: I2C_PB6_FMP + description: |- + Fast Mode Plus (FM+) enable for PB6 This bit is set and cleared by software. It enables I2C FM+ driving capability on PB6 I/O port. With this bit in disable state, the I2C FM+ driving capability on this I/O port can be enabled through one of I2Cx_FMP bits. When I2C FM+ is enabled, the speed control is ignored. Note: This control bit is kept for legacy reasons. It is recommended to use the FMP bit of the I2Cx_CR1 register instead. + 0: Disable + 1: Enable + bit_offset: 16 + bit_size: 1 + - name: I2C_PB7_FMP + description: |- + Fast Mode Plus (FM+) enable for PB7 This bit is set and cleared by software. It enables I2C FM+ driving capability on PB7 I/O port. With this bit in disable state, the I2C FM+ driving capability on this I/O port can be enabled through one of I2Cx_FMP bits. When I2C FM+ is enabled, the speed control is ignored. Note: This control bit is kept for legacy reasons. It is recommended to use the FMP bit of the I2Cx_CR1 register instead. + 0: Disable + 1: Enable + bit_offset: 17 + bit_size: 1 + - name: I2C_PB8_FMP + description: |- + Fast Mode Plus (FM+) enable for PB8 This bit is set and cleared by software. It enables I2C FM+ driving capability on PB8 I/O port. With this bit in disable state, the I2C FM+ driving capability on this I/O port can be enabled through one of I2Cx_FMP bits. When I2C FM+ is enabled, the speed control is ignored. Note: This control bit is kept for legacy reasons. It is recommended to use the FMP bit of the I2Cx_CR1 register instead. + 0: Disable + 1: Enable + bit_offset: 18 + bit_size: 1 + - name: I2C_PB9_FMP + description: |- + Fast Mode Plus (FM+) enable for PB9 This bit is set and cleared by software. It enables I2C FM+ driving capability on PB9 I/O port. With this bit in disable state, the I2C FM+ driving capability on this I/O port can be enabled through one of I2Cx_FMP bits. When I2C FM+ is enabled, the speed control is ignored. Note: This control bit is kept for legacy reasons. It is recommended to use the FMP bit of the I2Cx_CR1 register instead. + 0: Disable + 1: Enable + bit_offset: 19 + bit_size: 1 + - name: I2C_PA9_FMP + description: |- + Fast Mode Plus (FM+) enable for PA9 This bit is set and cleared by software. It enables I2C FM+ driving capability on PA9 I/O port. With this bit in disable state, the I2C FM+ driving capability on this I/O port can be enabled through one of I2Cx_FMP bits. When I2C FM+ is enabled, the speed control is ignored. Note: This control bit is kept for legacy reasons. It is recommended to use the FMP bit of the I2Cx_CR1 register instead. + 0: Disable + 1: Enable + bit_offset: 22 + bit_size: 1 + - name: I2C_PA10_FMP + description: |- + Fast Mode Plus (FM+) enable for PA10 This bit is set and cleared by software. It enables I2C FM+ driving capability on PA10 I/O port. With this bit in disable state, the I2C FM+ driving capability on this I/O port can be enabled through one of I2Cx_FMP bits. When I2C FM+ is enabled, the speed control is ignored. Note: This control bit is kept for legacy reasons. It is recommended to use the FMP bit of the I2Cx_CR1 register instead. + 0: Disable + 1: Enable + bit_offset: 23 + bit_size: 1 + - name: I2C3_FMP + description: |- + Fast Mode Plus (FM+) enable for I2C3 This bit is set and cleared by software. It enables I2C FM+ driving capability on I/O ports configured as I2C3 through GPIOx_AFR registers. With this bit in disable state, the I2C FM+ driving capability on I/O ports configured as I2C3 can be enabled through their corresponding I2Cx_FMP bit. When I2C FM+ is enabled, the speed control is ignored. Note: This control bit is kept for legacy reasons. It is recommended to use the FMP bit of the I2Cx_CR1 register instead. + 0: Disable + 1: Enable + bit_offset: 24 + bit_size: 1 +fieldset/CFGR2: + description: SYSCFG configuration register 2 + fields: + - name: CCL + description: Cortex1-M0+ LOCKUP bit enable bit This bit is set by software and cleared by a system reset. It can be use to enable and lock the connection of Cortex1-M0+ LOCKUP (Hardfault) output to TIM1/15/16 Break input. + bit_offset: 0 + bit_size: 1 + - name: SPL + description: SRAM1 parity lock bit This bit is set by software and cleared by a system reset. It can be used to enable and lock the SRAM1 parity error signal connection to TIM1/15/16 Break input. + bit_offset: 1 + bit_size: 1 + - name: PVDL + description: PVD lock enable bit This bit is set by software and cleared by a system reset. It can be used to enable and lock the PVD connection to TIM1/15/16 Break input, as well as the PVDE and PLS[2:0] in the PWR_CR register. + bit_offset: 2 + bit_size: 1 + - name: ECCL + description: ECC error lock bit This bit is set by software and cleared by a system reset. It can be used to enable and lock the flash ECC 2-bit error detection signal connection to TIM1/15/16 Break input. + bit_offset: 3 + bit_size: 1 + - name: BKPL + description: Backup SRAM2 parity lock This bit is set by software and cleared by a system reset. It can be used to enable and lock the SRAM2 parity error signal connection to TIM1/15/16 Break input. + bit_offset: 4 + bit_size: 1 + - name: BKPF + description: Backup SRAM2 parity error flag This bit is set by hardware when an SRAM2 parity error is detected. It is cleared by software by writing 1. + bit_offset: 7 + bit_size: 1 + - name: SPF + description: SRAM1 parity error flag This bit is set by hardware when an SRAM1 parity error is detected. It is cleared by software by writing 1. + bit_offset: 8 + bit_size: 1 +fieldset/ITLINE0: + description: SYSCFG interrupt line 0 status register + fields: + - name: WWDG + description: Window watchdog interrupt pending flag + bit_offset: 0 + bit_size: 1 +fieldset/ITLINE1: + description: SYSCFG interrupt line 1 status register + fields: + - name: PVDOUT + description: PVD supply monitoring interrupt request pending (EXTI line 16). + bit_offset: 0 + bit_size: 1 + - name: PVMOUT1 + description: VDDUSB supply monitoring interrupt request pending (EXTI line 19) + bit_offset: 1 + bit_size: 1 + - name: PVMOUT3 + description: ADC supply monitoring interrupt request pending (EXTI line 20) + bit_offset: 2 + bit_size: 1 + - name: PVMOUT4 + description: DAC supply monitoring interrupt request pending (EXTI line 21) + bit_offset: 3 + bit_size: 1 +fieldset/ITLINE10: + description: SYSCFG interrupt line 10 status register + fields: + - name: DMA1_CH2 + description: DMA1 channel 2 interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: DMA1_CH3 + description: DMA1 channel 3 interrupt request pending + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE11: + description: SYSCFG interrupt line 11 status register + fields: + - name: DMAMUX + description: DMAMUX interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: DMA1_CH4 + description: DMA1 channel 4 interrupt request pending + bit_offset: 1 + bit_size: 1 + - name: DMA1_CH5 + description: DMA1 channel 5 interrupt request pending + bit_offset: 2 + bit_size: 1 + - name: DMA1_CH6 + description: DMA1 channel 6 interrupt request pending + bit_offset: 3 + bit_size: 1 + - name: DMA1_CH7 + description: DMA1 channel 7 interrupt request pending + bit_offset: 4 + bit_size: 1 + - name: DMA2_CH1 + description: DMA2 channel 1 interrupt request pending + bit_offset: 5 + bit_size: 1 + - name: DMA2_CH2 + description: DMA2 channel 2 interrupt request pending + bit_offset: 6 + bit_size: 1 + - name: DMA2_CH3 + description: DMA2 channel 3 interrupt request pending + bit_offset: 7 + bit_size: 1 + - name: DMA2_CH4 + description: DMA2 channel 4 interrupt request pending + bit_offset: 8 + bit_size: 1 + - name: DMA2_CH5 + description: DMA2 channel 5 interrupt request pending + bit_offset: 9 + bit_size: 1 +fieldset/ITLINE12: + description: SYSCFG interrupt line 12 status register + fields: + - name: ADC + description: ADC interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: COMP1 + description: Comparator 1 interrupt request pending (EXTI line 17) + bit_offset: 1 + bit_size: 1 + - name: COMP2 + description: Comparator 2 interrupt request pending (EXTI line 18) + bit_offset: 2 + bit_size: 1 +fieldset/ITLINE13: + description: SYSCFG interrupt line 13 status register + fields: + - name: TIM1_CCU + description: Timer 1 commutation interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: TIM1_TRG + description: Timer 1 trigger interrupt request pending + bit_offset: 1 + bit_size: 1 + - name: TIM1_UPD + description: Timer 1 update interrupt request pending + bit_offset: 2 + bit_size: 1 + - name: TIM1_BRK + description: Timer 1 break interrupt request pending + bit_offset: 3 + bit_size: 1 +fieldset/ITLINE14: + description: SYSCFG interrupt line 14 status register + fields: + - name: TIM1_CC1 + description: Timer 1 capture compare 1 interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: TIM1_CC2 + description: Timer 1 capture compare 2 interrupt request pending + bit_offset: 1 + bit_size: 1 + - name: TIM1_CC3 + description: Timer 1 capture compare 3 interrupt request pending + bit_offset: 2 + bit_size: 1 + - name: TIM1_CC4 + description: Timer 1 capture compare 4 interrupt request pending + bit_offset: 3 + bit_size: 1 +fieldset/ITLINE15: + description: SYSCFG interrupt line 15 status register + fields: + - name: TIM2 + description: Timer 2 interrupt request pending + bit_offset: 0 + bit_size: 1 +fieldset/ITLINE16: + description: SYSCFG interrupt line 16 status register + fields: + - name: TIM3 + description: Timer 3 interrupt request pending + bit_offset: 0 + bit_size: 1 +fieldset/ITLINE17: + description: SYSCFG interrupt line 17 status register + fields: + - name: TIM6 + description: Timer 6 interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: DAC + description: DAC underrun interrupt request pending + bit_offset: 1 + bit_size: 1 + - name: LPTIM1 + description: Low-power timer 1 interrupt request pending (EXTI line 29) + bit_offset: 2 + bit_size: 1 +fieldset/ITLINE18: + description: SYSCFG interrupt line 18 status register + fields: + - name: TIM7 + description: Timer 7 interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: LPTIM2 + description: Low-power timer 2 interrupt request pending (EXTI line 30) + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE19: + description: SYSCFG interrupt line 19 status register + fields: + - name: TIM15 + description: Timer 15 interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: LPTIM3 + description: Low-power timer 3 interrupt request pending + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE2: + description: SYSCFG interrupt line 2 status register + fields: + - name: TAMP + description: Tamper interrupt request pending (EXTI line 21) + bit_offset: 0 + bit_size: 1 + - name: RTC + description: RTC interrupt request pending (EXTI line 19) + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE20: + description: SYSCFG interrupt line 20 status register + fields: + - name: TIM16 + description: Timer 16 interrupt request pending + bit_offset: 0 + bit_size: 1 +fieldset/ITLINE21: + description: SYSCFG interrupt line 21 status register + fields: + - name: TSC_MCE + description: TSC max count error interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: TSC_EOA + description: TSC end of acquisition interrupt request pending + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE22: + description: SYSCFG interrupt line 22 status register + fields: + - name: LCD + description: LCD interrupt request pending + bit_offset: 0 + bit_size: 1 +fieldset/ITLINE23: + description: SYSCFG interrupt line 23 status register + fields: + - name: I2C1 + description: I2C1 interrupt request pending (EXTI line 33) + bit_offset: 0 + bit_size: 1 +fieldset/ITLINE24: + description: SYSCFG interrupt line 24 status register + fields: + - name: I2C2 + description: I2C2 interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: I2C4 + description: I2C4 interrupt request pending + bit_offset: 1 + bit_size: 1 + - name: I2C3 + description: I2C3 interrupt request pending (EXTI line 23) + bit_offset: 2 + bit_size: 1 +fieldset/ITLINE25: + description: SYSCFG interrupt line 25 status register + fields: + - name: SPI1 + description: SPI1 interrupt request pending + bit_offset: 0 + bit_size: 1 +fieldset/ITLINE26: + description: SYSCFG interrupt line 26 status register + fields: + - name: SPI2 + description: SPI2 interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: SPI3 + description: SPI3 interrupt request pending + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE27: + description: SYSCFG interrupt line 27 status register + fields: + - name: USART1 + description: USART1 interrupt request pending, combined with EXTI line 25 + bit_offset: 0 + bit_size: 1 +fieldset/ITLINE28: + description: SYSCFG interrupt line 28 status register + fields: + - name: USART2 + description: USART2 interrupt request pending (EXTI line 35) + bit_offset: 0 + bit_size: 1 + - name: LPUART2 + description: LPUART2 interrupt request pending (EXTI line 31) + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE29: + description: SYSCFG interrupt line 29 status register + fields: + - name: USART3 + description: USART3 interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: LPUART1 + description: LPUART1 interrupt request pending (EXTI line 30) + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE3: + description: SYSCFG interrupt line 3 status register + fields: + - name: FLASH_ITF + description: Flash interface interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: FLASH_ECC + description: Flash interface ECC interrupt request pending + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE30: + description: SYSCFG interrupt line 30 status register + fields: + - name: USART4 + description: USART4 interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: LPUART3 + description: LPUART3 interrupt request pending (EXTI line 32) + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE31: + description: SYSCFG interrupt line 31 status register + fields: + - name: RNG + description: RNG interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: AES + description: AES interrupt request pending + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE4: + description: SYSCFG interrupt line 4 status register + fields: + - name: RCC + description: Reset and clock control interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: CRS + description: CRS interrupt request pending + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE5: + description: SYSCFG interrupt line 5 status register + fields: + - name: EXTI0 + description: EXTI line 0 interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: EXTI1 + description: EXTI line 1 interrupt request pending + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE6: + description: SYSCFG interrupt line 6 status register + fields: + - name: EXTI2 + description: EXTI line 2 interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: EXTI3 + description: EXTI line 3 interrupt request pending + bit_offset: 1 + bit_size: 1 +fieldset/ITLINE7: + description: SYSCFG interrupt line 7 status register + fields: + - name: EXTI4 + description: EXTI line 4 interrupt request pending + bit_offset: 0 + bit_size: 1 + - name: EXTI5 + description: EXTI line 5 interrupt request pending + bit_offset: 1 + bit_size: 1 + - name: EXTI6 + description: EXTI line 6 interrupt request pending + bit_offset: 2 + bit_size: 1 + - name: EXTI7 + description: EXTI line 7 interrupt request pending + bit_offset: 3 + bit_size: 1 + - name: EXTI8 + description: EXTI line 8 interrupt request pending + bit_offset: 4 + bit_size: 1 + - name: EXTI9 + description: EXTI line 9 interrupt request pending + bit_offset: 5 + bit_size: 1 + - name: EXTI10 + description: EXTI line 10 interrupt request pending + bit_offset: 6 + bit_size: 1 + - name: EXTI11 + description: EXTI line 11 interrupt request pending + bit_offset: 7 + bit_size: 1 + - name: EXTI12 + description: EXTI line 12 interrupt request pending + bit_offset: 8 + bit_size: 1 + - name: EXTI13 + description: EXTI line 13 interrupt request pending + bit_offset: 9 + bit_size: 1 + - name: EXTI14 + description: EXTI line 14 interrupt request pending + bit_offset: 10 + bit_size: 1 + - name: EXTI15 + description: EXTI line 15 interrupt request pending + bit_offset: 11 + bit_size: 1 +fieldset/ITLINE8: + description: SYSCFG interrupt line 8 status register + fields: + - name: USB + description: USB interrupt request pending + bit_offset: 0 + bit_size: 1 +fieldset/ITLINE9: + description: SYSCFG interrupt line 9 status register + fields: + - name: DMA1_CH1 + description: DMA1 channel 1 interrupt request pending + bit_offset: 0 + bit_size: 1 +fieldset/SCSR: + description: SYSCFG SRAM2 control and status register + fields: + - name: SRAM2ER + description: 'SRAM2 erase Setting this bit starts a hardware SRAM2 erase operation. This bit is automatically cleared at the end of the SRAM2 erase operation. Note: This bit is write-protected: setting this bit is possible only after the correct key sequence is written in the SYSCFG_SKR register.' + bit_offset: 0 + bit_size: 1 + - name: SRAM2BSY + description: SRAM2 busy by erase operation + bit_offset: 1 + bit_size: 1 +fieldset/SKR: + description: SYSCFG SRAM2 key register + fields: + - name: KEY + description: 'SRAM2 write protection key for software erase The following steps are required to unlock the write protection of the SRAM2ER bit in the SYSCFG_CFGR2 register: Write 0xCA into KEY[7:0] Write 0x53 into KEY[7:0] Writing a wrong key reactivates the write protection.' + bit_offset: 0 + bit_size: 8 +fieldset/TSCCR: + description: SYSCFG TSC comparator register + fields: + - name: G2_IO1 + description: Comparator mode for group 2 on I/O 1 + bit_offset: 0 + bit_size: 1 + - name: G2_IO3 + description: Comparator mode for group 2 on I/O 3 + bit_offset: 1 + bit_size: 1 + - name: G4_IO3 + description: Comparator mode for group 4 on I/O 3 + bit_offset: 2 + bit_size: 1 + - name: G6_IO1 + description: Comparator mode for group 6 on I/O 1 + bit_offset: 3 + bit_size: 1 + - name: G7_IO1 + description: Comparator mode for group 7 on I/O 1 + bit_offset: 4 + bit_size: 1 + - name: TSC_IOCTRL + description: I/O control in comparator mode The I/O control in comparator mode can be overwritten by hardware. + bit_offset: 5 + bit_size: 1 +enum/IR_MOD: + bit_size: 2 + variants: + - name: TIM16 + description: TIM16 + value: 0 + - name: USART1 + description: USART1 + value: 1 + - name: USART2 + description: USART2 + value: 2 +enum/MEM_MODE: + bit_size: 2 + variants: + - name: System_Flash + description: System flash memory mapped at 0x000010000 + value: 1 + - name: SRAM + description: Embedded SRAM mapped at 0x000010000 + value: 3 diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index c3ff3b9..c58363c 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -248,6 +248,7 @@ impl PeriMatcher { ("syscfg", "h7od", "SYSCFG"), ), ("STM32H7.*:SYSCFG:.*", ("syscfg", "h7", "SYSCFG")), + ("STM32U0.*:SYSCFG:.*", ("syscfg", "u0", "SYSCFG")), ("STM32U5.*:SYSCFG:.*", ("syscfg", "u5", "SYSCFG")), ("STM32WBA.*:SYSCFG:.*", ("syscfg", "wba", "SYSCFG")), ("STM32WB.*:SYSCFG:.*", ("syscfg", "wb", "SYSCFG")), @@ -343,6 +344,7 @@ impl PeriMatcher { ("STM32L4[PQRS].*:RCC:.*", ("rcc", "l4plus", "RCC")), ("STM32L4.*:RCC:.*", ("rcc", "l4", "RCC")), ("STM32L5.*:RCC:.*", ("rcc", "l5", "RCC")), + ("STM32U0.*:RCC:.*", ("rcc", "u0", "RCC")), ("STM32U5.*:RCC:.*", ("rcc", "u5", "RCC")), ("STM32H50.*:RCC:.*", ("rcc", "h50", "RCC")), ("STM32H5.*:RCC:.*", ("rcc", "h5", "RCC")), @@ -358,6 +360,7 @@ impl PeriMatcher { ("STM32C0.*:EXTI:.*", ("exti", "c0", "EXTI")), ("STM32G0.*:EXTI:.*", ("exti", "g0", "EXTI")), ("STM32H7.*:EXTI:.*", ("exti", "h7", "EXTI")), + ("STM32U0.*:EXTI:.*", ("exti", "u0", "EXTI")), ("STM32U5.*:EXTI:.*", ("exti", "u5", "EXTI")), ("STM32WB.*:EXTI:.*", ("exti", "w", "EXTI")), ("STM32WL5.*:EXTI:.*", ("exti", "w", "EXTI")), @@ -395,6 +398,7 @@ impl PeriMatcher { ("STM32L1.*:PWR:.*", ("pwr", "l1", "PWR")), ("STM32L4.*:PWR:.*", ("pwr", "l4", "PWR")), ("STM32L5.*:PWR:.*", ("pwr", "l5", "PWR")), + ("STM32U0.*:PWR:.*", ("pwr", "u0", "PWR")), ("STM32U5.*:PWR:.*", ("pwr", "u5", "PWR")), ("STM32WL.*:PWR:.*", ("pwr", "wl5", "PWR")), ("STM32WBA.*:PWR:.*", ("pwr", "wba", "PWR")), @@ -414,6 +418,7 @@ impl PeriMatcher { ("STM32L1.*:FLASH:.*", ("flash", "l1", "FLASH")), ("STM32L4.*:FLASH:.*", ("flash", "l4", "FLASH")), ("STM32L5.*:FLASH:.*", ("flash", "l5", "FLASH")), + ("STM32U0.*:FLASH:.*", ("flash", "u0", "FLASH")), ("STM32U5.*:FLASH:.*", ("flash", "u5", "FLASH")), ("STM32WBA.*:FLASH:.*", ("flash", "wba", "FLASH")), ("STM32WB.*:FLASH:.*", ("flash", "wb", "FLASH")), @@ -490,14 +495,17 @@ impl PeriMatcher { // AN4013 Table 4: STM32Gx/Hx/Ux/Wx (and Cx) serials // timer_v2 for STM32Gx/Hx/Ux/Wx (and Cx) serials ("STM32U5.*:TIM(3|4):.*", ("timer", "v2", "TIM_GP32")), - ("STM32(G4|H5|U5|WBA).*:TIM(1|8|20):.*", ("timer", "v2", "TIM_ADV")), - ("STM32(G4|H5|U5|WBA).*:TIM(2|5|23|24):.*", ("timer", "v2", "TIM_GP32")), - ("STM32(G4|H5|U5|WBA).*:TIM(3|4):.*", ("timer", "v2", "TIM_GP16")), - ("STM32(G4|H5|U5|WBA).*:TIM(6|7):.*", ("timer", "v2", "TIM_BASIC")), - ("STM32(G4|H5|U5|WBA).*:TIM(13|14):.*", ("timer", "v2", "TIM_1CH")), - ("STM32(G4|H5|U5|WBA).*:TIM12:.*", ("timer", "v2", "TIM_2CH")), - ("STM32(G4|H5|U5|WBA).*:TIM15:.*", ("timer", "v2", "TIM_2CH_CMP")), - ("STM32(G4|H5|U5|WBA).*:TIM(16|17):.*", ("timer", "v2", "TIM_1CH_CMP")), + ("STM32(G4|H5|U0|U5|WBA).*:TIM(1|8|20):.*", ("timer", "v2", "TIM_ADV")), + ( + "STM32(G4|H5|U0|U5|WBA).*:TIM(2|5|23|24):.*", + ("timer", "v2", "TIM_GP32"), + ), + ("STM32(G4|H5|U0|U5|WBA).*:TIM(3|4):.*", ("timer", "v2", "TIM_GP16")), + ("STM32(G4|H5|U0|U5|WBA).*:TIM(6|7):.*", ("timer", "v2", "TIM_BASIC")), + ("STM32(G4|H5|U0|U5|WBA).*:TIM(13|14):.*", ("timer", "v2", "TIM_1CH")), + ("STM32(G4|H5|U0|U5|WBA).*:TIM12:.*", ("timer", "v2", "TIM_2CH")), + ("STM32(G4|H5|U0|U5|WBA).*:TIM15:.*", ("timer", "v2", "TIM_2CH_CMP")), + ("STM32(G4|H5|U0|U5|WBA).*:TIM(16|17):.*", ("timer", "v2", "TIM_1CH_CMP")), ("STM32WL.*:LPTIM.*:.*", ("lptim", "v2a", "LPTIM")), ("STM32(H5|U5|WBA).*:LPTIM[12356]:.*", ("lptim", "v2b", "LPTIM_ADV")), ("STM32(H5|U5).*:LPTIM4:.*", ("lptim", "v2b", "LPTIM_BASIC")), @@ -776,11 +784,19 @@ pub fn parse_groups() -> Result<(HashMap, Vec), anyhow: static NOPELIST: &[&str] = &[ // Not supported, not planned unless someone wants to do it. "STM32MP", + // not supported yet, planned. Pull requests welcome! + "STM32H52", + "STM32H53", + "STM32H7R", + "STM32H7S", + "STM32U5F", + "STM32U5G", + "STM32WBA50", + "STM32WBA54", + "STM32WBA55", // Does not exist in ST website. No datasheet, no RM. "STM32GBK", "STM32L485", - "STM32U5F", - "STM32U5G", // STM32WxM modules. These are based on a chip that's supported on its own, // not sure why we want a separate target for it. "STM32WL5M", @@ -1432,7 +1448,6 @@ pub fn dump_all_chips( &peripheral_to_clock, &dma_channels, &chips, - &memories, &docs, ) }) diff --git a/stm32-data-gen/src/interrupts.rs b/stm32-data-gen/src/interrupts.rs index 2c8aa47..cdbcd28 100644 --- a/stm32-data-gen/src/interrupts.rs +++ b/stm32-data-gen/src/interrupts.rs @@ -245,6 +245,14 @@ impl ChipInterrupts { interrupt_signals.insert(("RCC".to_string(), "CRS".to_string())); } else if name == "RCC" { interrupt_signals.insert(("RCC".to_string(), "GLOBAL".to_string())); + } else if name == "RNG_CRYP" { + interrupt_signals.insert(("RNG".to_string(), "GLOBAL".to_string())); + interrupt_signals.insert(("CRYP".to_string(), "GLOBAL".to_string())); + } else if name == "WWDG_IWDG" { + interrupt_signals.insert(("WWDG".to_string(), "GLOBAL".to_string())); + interrupt_signals.insert(("IWDG".to_string(), "GLOBAL".to_string())); + } else if name == "RCC_AUDIOSYNC" { + // ignore } else { if parts[2].is_empty() { trace!(" skipping because parts[2].is_empty()"); diff --git a/stm32-data-gen/src/memory.rs b/stm32-data-gen/src/memory.rs index 3e24a59..edebd2c 100644 --- a/stm32-data-gen/src/memory.rs +++ b/stm32-data-gen/src/memory.rs @@ -24,10 +24,12 @@ macro_rules! mem { #[rustfmt::skip] static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ + // C0. TODO: check ("STM32C01..4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 6)), ("STM32C01..6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 6)), ("STM32C03..4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 12)), ("STM32C03..6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 12)), + // F0. TODO: check ("STM32F0...C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 32)), ("STM32F0[35]..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 8)), ("STM32F0[47]..6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 6)), @@ -39,6 +41,7 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32F07..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 16)), ("STM32F07..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 16)), ("STM32F09..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 32)), + // F1. TODO: check ("STM32F1.[12].6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 6)), ("STM32F1.[12].8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 10)), ("STM32F1.[12].B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 16)), @@ -66,12 +69,14 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32F1.5.8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 64)), ("STM32F10[012].4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 4)), ("STM32F103.4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 6)), + // F2. TODO: check ("STM32F2...B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 64, SRAM2 0x2001c000 0)), ("STM32F2...E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 128, SRAM2 0x2001c000 0)), ("STM32F2...F", mem!(BANK_1 0x08000000 768, SRAM 0x20000000 128, SRAM2 0x2001c000 0)), ("STM32F2...G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 128, SRAM2 0x2001c000 0)), ("STM32F2.5.C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 96, SRAM2 0x2001c000 0)), ("STM32F2.7.C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 128, SRAM2 0x2001c000 0)), + // F3. TODO: check ("STM32F3...4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 12)), ("STM32F3...D", mem!(BANK_1 0x08000000 384, SRAM 0x20000000 64)), ("STM32F3...E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 64)), @@ -83,6 +88,7 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32F30..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 32)), ("STM32F37..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 24)), ("STM32F37..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 32)), + // F4. TODO: check ("STM32F4...8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 32)), ("STM32F4...D", mem!(BANK_1 0x08000000 384, SRAM 0x20000000 64)), ("STM32F4...H", mem!(BANK_1 0x08000000 1536, SRAM 0x20000000 320, SRAM2 0x20040000 0)), @@ -102,6 +108,7 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32F413.G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 320, SRAM2 0x20040000 0)), ("STM32F429.E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 192, SRAM2 0x2001c000 0)), ("STM32F469.E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 320, SRAM2 0x20028000 0)), + // F7. TODO: check ("STM32F7...C", mem!(BANK_1 0x08000000 256, SRAM 0x20010000 192, SRAM2 0x2003c000 0)), ("STM32F7...I", mem!(BANK_1 0x08000000 2048, SRAM 0x20020000 384, SRAM2 0x2007c000 0)), ("STM32F7[23]..E", mem!(BANK_1 0x08000000 512, SRAM 0x20010000 192, SRAM2 0x2003c000 0)), @@ -110,6 +117,7 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32F74..E", mem!(BANK_1 0x08000000 512, SRAM 0x20010000 320, SRAM2 0x2004c000 0)), ("STM32F75..8", mem!(BANK_1 0x08000000 64, SRAM 0x20010000 320, SRAM2 0x2004c000 0)), ("STM32F76..G", mem!(BANK_1 0x08000000 1024, SRAM 0x20020000 384, SRAM2 0x2007c000 0)), + // G0. TODO: check ("STM32G0...4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 8)), ("STM32G0...C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 128)), ("STM32G0...E", mem!(BANK_1 0x08000000 256, BANK_2 0x08040000 256, SRAM 0x20000000 128)), @@ -120,6 +128,7 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32G07..6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 32)), ("STM32G07..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 32)), ("STM32G0B..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 128)), + // G4. TODO: check ("STM32G4...6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 20, SRAM2 0x20004000 0)), ("STM32G4...8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 20, SRAM2 0x20004000 0)), ("STM32G4[34]..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 20, SRAM2 0x20004000 0)), @@ -128,9 +137,11 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32G47..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 96, SRAM2 0x20014000 0)), ("STM32G47..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 96, SRAM2 0x20014000 0)), ("STM32G49..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 32, SRAM2 0x20014000 0)), + // H5. TODO: check ("STM32H5...B", mem!(BANK_1 0x08000000 64, BANK_2 0x08010000 64, SRAM 0x20000000 32, SRAM2 0x20004000 0)), ("STM32H5...G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 256, SRAM2 0x20040000 0)), ("STM32H5...I", mem!(BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, SRAM 0x20000000 256, SRAM2 0x20040000 0)), + // H7. TODO: check ("STM32H7...E", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 512, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 128, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), ("STM32H7[23]..G", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 1024, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 128, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), ("STM32H7[45]..I", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, D2_AXISRAM 0x10000000 0, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 512, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), @@ -140,6 +151,7 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32H75..B", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 128, D2_AXISRAM 0x10000000 0, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 512, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), ("STM32H7A..G", mem!(BANK_1 0x08000000 1024, SRAM 0x24000000 1024)), ("STM32H7B..B", mem!(BANK_1 0x08000000 128, SRAM 0x24000000 1024)), + // L0. TODO: check ("STM32L0...3", mem!(BANK_1 0x08000000 8, SRAM 0x20000000 2)), ("STM32L0...6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 8)), ("STM32L0...B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 20)), @@ -148,6 +160,7 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32L0[156]..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 8)), ("STM32L0[34]..4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 8)), ("STM32L0[78]..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 20)), + // L1. TODO: check ("STM32L1...B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 10)), ("STM32L1...C..", mem!(BANK_1 0x08000000 192, BANK_2 0x08030000 64, SRAM 0x20000000 32)), ("STM32L1...D..", mem!(BANK_1 0x08000000 128, BANK_2 0x08040000 256, SRAM 0x20000000 80)), @@ -166,6 +179,7 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32L15..8..", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 16)), ("STM32L15..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 10)), ("STM32L15..B..", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 16)), + // L4. TODO: check ("STM32L4...8", mem!(BANK_1 0x08000000 64, SRAM2 0x10000000 0, SRAM 0x20000000 40)), ("STM32L4...I", mem!(BANK_1 0x08000000 2048, SRAM2 0x10000000 0, SRAM 0x20000000 192)), ("STM32L4[12]..B", mem!(BANK_1 0x08000000 128, SRAM2 0x10000000 0, SRAM 0x20000000 40)), @@ -173,15 +187,25 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32L4[56]..E", mem!(BANK_1 0x08000000 512, SRAM2 0x10000000 0, SRAM 0x20000000 128)), ("STM32L4[78]..G", mem!(BANK_1 0x08000000 512, BANK_2 0x08080000 512, SRAM2 0x10000000 0, SRAM 0x20000000 96)), ("STM32L4[9A]..G", mem!(BANK_1 0x08000000 512, BANK_2 0x08080000 512, SRAM2 0x10000000 0, SRAM 0x20000000 256)), - ("STM32L4[PQR]..G", mem!(BANK_1 0x08000000 1024, SRAM2 0x10000000 0, SRAM 0x20000000 192)), ("STM32L43..B", mem!(BANK_1 0x08000000 128, SRAM2 0x10000000 0, SRAM 0x20000000 48)), ("STM32L45..C", mem!(BANK_1 0x08000000 256, SRAM2 0x10000000 0, SRAM 0x20000000 128)), ("STM32L47..C", mem!(BANK_1 0x08000000 256, SRAM2 0x10000000 0, SRAM 0x20000000 96)), ("STM32L47..E", mem!(BANK_1 0x08000000 512, SRAM2 0x10000000 0, SRAM 0x20000000 96)), ("STM32L49..E", mem!(BANK_1 0x08000000 512, SRAM2 0x10000000 0, SRAM 0x20000000 256)), + // L4+. TODO: check + ("STM32L4[PQR]..G", mem!(BANK_1 0x08000000 1024, SRAM2 0x10000000 0, SRAM 0x20000000 192)), ("STM32L4P..E", mem!(BANK_1 0x08000000 512, SRAM2 0x10000000 0, SRAM 0x20000000 192)), + // L5. TODO: check ("STM32L5...C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 256, SRAM2 0x20030000 0)), ("STM32L5...E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 256, SRAM2 0x20030000 0)), + // U0 + ("STM32U031.4", mem!(BANK_1 0x08000000 16, SRAM 0x20000000 12)), + ("STM32U031.6", mem!(BANK_1 0x08000000 32, SRAM 0x20000000 12)), + ("STM32U031.8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 12)), + ("STM32U0[78]3.8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 40)), + ("STM32U0[78]3.B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 40)), + ("STM32U0[78]3.C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 40)), + // U5 ("STM32U5[34]..B", mem!(BANK_1 0x08000000 64, BANK_2 0x08010000 64, SRAM 0x20000000 192, SRAM2 0x20030000 64)), ("STM32U5[34]..C", mem!(BANK_1 0x08000000 128, BANK_2 0x08020000 128, SRAM 0x20000000 192, SRAM2 0x20030000 64)), ("STM32U5[43]..E", mem!(BANK_1 0x08000000 256, BANK_2 0x08040000 256, SRAM 0x20000000 192, SRAM2 0x20030000 64)), @@ -190,6 +214,7 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32U5[9A]..I", mem!(BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, SRAM 0x20000000 768, SRAM2 0x200c0000 64, SRAM3 0x200d0000 832, SRAM5 0x201a0000 832)), ("STM32U5[9A]..J", mem!(BANK_1 0x08000000 2048, BANK_2 0x08200000 2048, SRAM 0x20000000 768, SRAM2 0x200c0000 64, SRAM3 0x200d0000 832, SRAM5 0x201a0000 832)), ("STM32U5[FG]..J", mem!(BANK_1 0x08000000 2048, BANK_2 0x08200000 2048, SRAM 0x20000000 768, SRAM2 0x200c0000 64, SRAM3 0x200d0000 832, SRAM5 0x201a0000 832, SRAM6 0x20270000 512)), + // WB. TODO: check ("STM32WB...Y", mem!(BANK_1 0x08000000 640, SRAM 0x20000000 192)), ("STM32WB.(0C|5V)G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 128)), ("STM32WB.(5C|5R)G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 192)), @@ -199,8 +224,10 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32WB5..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 128)), ("STM32WB5.[CR]E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 192)), ("STM32WB5.VE", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 128)), + // WBA. TODO: check ("STM32WBA...E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 96, SRAM2 0x20010000 0)), ("STM32WBA...G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 128, SRAM2 0x20010000 0)), + // WL. TODO: check ("STM32WL...8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 12, SRAM2 0x20008000 0)), ("STM32WL...B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 12, SRAM2 0x20008000 0)), ("STM32WL...C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 12, SRAM2 0x20008000 0)), @@ -237,6 +264,7 @@ static FLASH_INFO: RegexMap = RegexMap::new(&[ ("STM32L0.*", FlashInfo{ erase_value: 0x00, write_size: 4, erase_size: &[( 128, 0)] }), ("STM32L1.*", FlashInfo{ erase_value: 0x00, write_size: 4, erase_size: &[( 256, 0)] }), ("STM32L5.*", FlashInfo{ erase_value: 0xFF, write_size: 8, erase_size: &[( 4*1024, 0)] }), + ("STM32U0.*", FlashInfo{ erase_value: 0xFF, write_size: 8, erase_size: &[( 2*1024, 0)] }), ("STM32U5[78].*", FlashInfo{ erase_value: 0xFF, write_size: 16, erase_size: &[( 8*1024, 0)] }), ("STM32U5.*", FlashInfo{ erase_value: 0xFF, write_size: 16, erase_size: &[( 16*1024, 0)] }), ("STM32WBA.*", FlashInfo{ erase_value: 0xFF, write_size: 16, erase_size: &[( 8*1024, 0)] }), diff --git a/stm32-metapac-gen/res/Cargo.toml b/stm32-metapac-gen/res/Cargo.toml index 23361c7..b72d6e8 100644 --- a/stm32-metapac-gen/res/Cargo.toml +++ b/stm32-metapac-gen/res/Cargo.toml @@ -36,6 +36,7 @@ flavors = [ { regex_feature = "stm32l1.*", target = "thumbv7m-none-eabi" }, { regex_feature = "stm32l4.*", target = "thumbv7em-none-eabi" }, { regex_feature = "stm32l5.*", target = "thumbv8m.main-none-eabihf" }, + { regex_feature = "stm32u0.*", target = "thumbv6m-none-eabi" }, { regex_feature = "stm32u5.*", target = "thumbv8m.main-none-eabihf" }, { regex_feature = "stm32wb.*", target = "thumbv7em-none-eabi" }, { regex_feature = "stm32wl.*", target = "thumbv7em-none-eabi" }, From 0c4baf478324e19741c7a9795ab0aa8217c3691c Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Sat, 13 Apr 2024 03:27:35 +0200 Subject: [PATCH 40/41] Remove a few zero-sized memory regions that are breaking memory.x generation. --- stm32-data-gen/src/memory.rs | 40 ++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/stm32-data-gen/src/memory.rs b/stm32-data-gen/src/memory.rs index edebd2c..e92fb15 100644 --- a/stm32-data-gen/src/memory.rs +++ b/stm32-data-gen/src/memory.rs @@ -142,13 +142,13 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32H5...G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 256, SRAM2 0x20040000 0)), ("STM32H5...I", mem!(BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, SRAM 0x20000000 256, SRAM2 0x20040000 0)), // H7. TODO: check - ("STM32H7...E", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 512, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 128, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), - ("STM32H7[23]..G", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 1024, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 128, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), - ("STM32H7[45]..I", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, D2_AXISRAM 0x10000000 0, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 512, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), + ("STM32H7...E", mem!(BANK_1 0x08000000 512, SRAM 0x24000000 128)), + ("STM32H7[23]..G", mem!(BANK_1 0x08000000 1024, SRAM 0x24000000 128)), + ("STM32H7[45]..I", mem!(BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, SRAM 0x24000000 512)), ("STM32H7[AB]..I", mem!(BANK_1 0x08000000 1024, BANK_2 0x08100000 1024, SRAM 0x24000000 1024)), - ("STM32H73..B", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 128, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 128, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), - ("STM32H74..G", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 1024, D2_AXISRAM 0x10000000 0, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 512, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), - ("STM32H75..B", mem!(D1_ITCMRAM 0x00000000 0, D1_AXIFLASH 0x08000000 0, BANK_1 0x08000000 128, D2_AXISRAM 0x10000000 0, D1_AXIICP 0x1ff00000 0, D1_DTCMRAM 0x20000000 0, SRAM 0x24000000 512, D3_SRAM 0x38000000 0, D3_BKPSRAM 0x38800000 0)), + ("STM32H73..B", mem!(BANK_1 0x08000000 128, SRAM 0x24000000 128)), + ("STM32H74..G", mem!(BANK_1 0x08000000 1024, SRAM 0x24000000 512)), + ("STM32H75..B", mem!(BANK_1 0x08000000 128, SRAM 0x24000000 512)), ("STM32H7A..G", mem!(BANK_1 0x08000000 1024, SRAM 0x24000000 1024)), ("STM32H7B..B", mem!(BANK_1 0x08000000 128, SRAM 0x24000000 1024)), // L0. TODO: check @@ -180,21 +180,21 @@ static MEMS: RegexMap<&[Mem]> = RegexMap::new(&[ ("STM32L15..8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 10)), ("STM32L15..B..", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 16)), // L4. TODO: check - ("STM32L4...8", mem!(BANK_1 0x08000000 64, SRAM2 0x10000000 0, SRAM 0x20000000 40)), - ("STM32L4...I", mem!(BANK_1 0x08000000 2048, SRAM2 0x10000000 0, SRAM 0x20000000 192)), - ("STM32L4[12]..B", mem!(BANK_1 0x08000000 128, SRAM2 0x10000000 0, SRAM 0x20000000 40)), - ("STM32L4[34]..C", mem!(BANK_1 0x08000000 256, SRAM2 0x10000000 0, SRAM 0x20000000 48)), - ("STM32L4[56]..E", mem!(BANK_1 0x08000000 512, SRAM2 0x10000000 0, SRAM 0x20000000 128)), - ("STM32L4[78]..G", mem!(BANK_1 0x08000000 512, BANK_2 0x08080000 512, SRAM2 0x10000000 0, SRAM 0x20000000 96)), - ("STM32L4[9A]..G", mem!(BANK_1 0x08000000 512, BANK_2 0x08080000 512, SRAM2 0x10000000 0, SRAM 0x20000000 256)), - ("STM32L43..B", mem!(BANK_1 0x08000000 128, SRAM2 0x10000000 0, SRAM 0x20000000 48)), - ("STM32L45..C", mem!(BANK_1 0x08000000 256, SRAM2 0x10000000 0, SRAM 0x20000000 128)), - ("STM32L47..C", mem!(BANK_1 0x08000000 256, SRAM2 0x10000000 0, SRAM 0x20000000 96)), - ("STM32L47..E", mem!(BANK_1 0x08000000 512, SRAM2 0x10000000 0, SRAM 0x20000000 96)), - ("STM32L49..E", mem!(BANK_1 0x08000000 512, SRAM2 0x10000000 0, SRAM 0x20000000 256)), + ("STM32L4...8", mem!(BANK_1 0x08000000 64, SRAM 0x20000000 40)), + ("STM32L4...I", mem!(BANK_1 0x08000000 2048, SRAM 0x20000000 192)), + ("STM32L4[12]..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 40)), + ("STM32L4[34]..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 48)), + ("STM32L4[56]..E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 128)), + ("STM32L4[78]..G", mem!(BANK_1 0x08000000 512, BANK_2 0x08080000 512, SRAM 0x20000000 96)), + ("STM32L4[9A]..G", mem!(BANK_1 0x08000000 512, BANK_2 0x08080000 512, SRAM 0x20000000 256)), + ("STM32L43..B", mem!(BANK_1 0x08000000 128, SRAM 0x20000000 48)), + ("STM32L45..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 128)), + ("STM32L47..C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 96)), + ("STM32L47..E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 96)), + ("STM32L49..E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 256)), // L4+. TODO: check - ("STM32L4[PQR]..G", mem!(BANK_1 0x08000000 1024, SRAM2 0x10000000 0, SRAM 0x20000000 192)), - ("STM32L4P..E", mem!(BANK_1 0x08000000 512, SRAM2 0x10000000 0, SRAM 0x20000000 192)), + ("STM32L4[PQR]..G", mem!(BANK_1 0x08000000 1024, SRAM 0x20000000 192)), + ("STM32L4P..E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 192)), // L5. TODO: check ("STM32L5...C", mem!(BANK_1 0x08000000 256, SRAM 0x20000000 256, SRAM2 0x20030000 0)), ("STM32L5...E", mem!(BANK_1 0x08000000 512, SRAM 0x20000000 256, SRAM2 0x20030000 0)), From d674277b78ca7400ecfeeb1b5af4e460a65c1a61 Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Sat, 13 Apr 2024 03:51:22 +0200 Subject: [PATCH 41/41] update sources (adds missing irq) --- d | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/d b/d index 0270225..97996ca 100755 --- a/d +++ b/d @@ -4,7 +4,7 @@ set -e cd $(dirname $0) CMD=$1 -REV=421b5868c2175762ee4c870bb0511ae271abefc9 +REV=74b97817d4c4ed0db9d19a8eac46720b3c5b0d57 shift case "$CMD" in @@ -56,7 +56,7 @@ case "$CMD" in cargo run --release --bin stm32-data-gen cargo run --release --bin stm32-metapac-gen cd build/stm32-metapac - find . -name '*.rs' -not -path '*target*' | xargs rustfmt --skip-children --unstable-features --edition 2021 + #find . -name '*.rs' -not -path '*target*' | xargs rustfmt --skip-children --unstable-features --edition 2021 cargo check --features stm32h755zi-cm7,pac,metadata cargo check --features stm32f777zi,pac cargo check --features stm32u585zi,metadata @@ -65,4 +65,3 @@ case "$CMD" in echo "unknown command" ;; esac -