| .. raw:: html |
| |
| <!--- |
| # SPDX-FileCopyrightText: 2020 Efabless Corporation |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| --> |
| |
| Memory Mapped I/O summary |
| ========================= |
| |
| .. list-table:: Memory mapped I/O summary by address |
| :name: memory_mapped_io_summary_by_address |
| :header-rows: 1 |
| :widths: auto |
| |
| * - Address (bytes) |
| - Function |
| * - `0x 00 00 00 00` |
| - Flash SPI / overlaid SRAM (4k words) start of memory block |
| * - `0x 00 00 3f ff` |
| - End of SRAM |
| * - `0x 10 00 00 00` |
| - Flash SPI start of program block. |
| Program to run starts here on reset |
| (see :ref:`SPI Flash initialization <initial_spi_instruction_sequence>`). |
| * - `0x 10 ff ff ff` |
| - Maximum SPI flash addressable space (16MB) with QSPI 3-byte addressing |
| * - `0x 1f ff ff ff` |
| - Maximum SPI flash addressable space (32MB) |
| * - `0x 20 00 00 00` |
| - UART clock divider select (:ref:`reg_uart_clkdiv`) |
| * - `0x 20 00 00 04` |
| - UART data (:ref:`reg_uart_data`) |
| * - `0x 20 00 00 08` |
| - UART enable (:ref:`reg_uart_enable`) |
| * - `0x 21 00 00 00` |
| - GPIO input/output (bit 16/bit 0) (:ref:`reg_gpio_data`). 1 general-purpose digital, management area only. |
| * - `0x 21 00 00 04` |
| - GPIO output enable (:ref:`reg_gpio_ena`) |
| * - `0x 21 00 00 08` |
| - GPIO pullup enable (:ref:`reg_gpio_pu`) |
| * - `0x 21 00 00 0c` |
| - GPIO pulldown enable (:ref:`reg_gpio_pd`) |
| * - `0x 22 00 00 00` |
| - Counter/Timer 0 configuration register (:ref:`reg_timer0_config`) |
| * - `0x 22 00 00 04` |
| - Counter/Timer 0 current value (:ref:`reg_timer0_value`) |
| * - `0x 22 00 00 08` |
| - Counter/Timer 0 reset value (:ref:`reg_timer0_data`) |
| * - `0x 23 00 00 00` |
| - Counter/Timer 1 configuration register (:ref:`reg_timer1_config`) |
| * - `0x 23 00 00 04` |
| - Counter/Timer 1 current value (:ref:`reg_timer1_value`) |
| * - `0x 23 00 00 08` |
| - Counter/Timer 1 reset value (:ref:`reg_timer1_data`) |
| * - `0x 24 00 00 00` |
| - SPI controller configuration register (:ref:`reg_spi_config`) |
| * - `0x 24 00 00 08` |
| - SPI controller data register (:ref:`reg_spi_data`) |
| * - `0x 25 00 00 00` |
| - Logic Analyzer Data 0 |
| * - `0x 25 00 00 04` |
| - Logic Analyzer Data 1 |
| * - `0x 25 00 00 08` |
| - Logic Analyzer Data 2 |
| * - `0x 25 00 00 0c` |
| - Logic Analyzer Data 3 |
| * - `0x 25 00 00 10` |
| - Logic Analyzer Enable 0 |
| * - `0x 25 00 00 14` |
| - Logic Analyzer Enable 1 |
| * - `0x 25 00 00 18` |
| - Logic Analyzer Enable 2 |
| * - `0x 25 00 00 1c` |
| - Logic Analyzer Enable 3 |
| * - `0x 26 00 00 00` |
| - User project area GPIO data (L) |
| * - `0x 26 00 00 04` |
| - User project area GPIO data (H) |
| * - `0x 26 00 00 08` |
| - User project area GPIO data transfer (bit 0, auto-zeroing) |
| * - `0x 26 00 00 0c` |
| - User project area GPIO ``mprj_io[0]`` configure |
| * - ... |
| - ... |
| * - `0x 26 00 00 a0` |
| - User project area GPIO ``mprj_io[37]`` configure |
| * - `0x 26 00 00 a4` |
| - User project area GPIO power[0] configure (currently undefined/unused) |
| * - ... |
| - ... |
| * - `0x 26 00 00 b4` |
| - User project area GPIO power[3] configure (currently undefined/unused) |
| * - `0x 2d 00 00 00` |
| - QSPI controller config (:ref:`reg_spictrl`) |
| * - `0x 2f 00 00 00` |
| - PLL clock output destination (:ref:`reg_pll_out_dest`) |
| * - `0x 2f 00 00 04` |
| - Trap output destination (:ref:`reg_trap_out_dest`) |
| * - `0x 2f 00 00 08` |
| - IRQ 7 input source (:ref:`reg_irq7_source`) |
| * - `0x 30 00 00 0` |
| - User area base. |
| A user project may define additional Wishbone responder modules starting at this address. |
| * - `0x 80 00 00 00` |
| - QSPI controller |
| * - `0x 90 00 00 00` |
| - :ref:`storage-area-sram` |
| * - `0x a0 00 00 00` |
| - Any responder 1 |
| * - `0x b0 00 00 00` |
| - Any responder 2 |