OpenSSD Cosmos+ Platform Firmware  0.0.2
The firmware of Cosmos+ OpenSSD Platform for TOSHIBA nand flash module.
memory_map.h File Reference
Include dependency graph for memory_map.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define DRAM_START_ADDR   0x00100000
 
#define MEMORY_SEGMENTS_START_ADDR   DRAM_START_ADDR
 
#define MEMORY_SEGMENTS_END_ADDR   0x001FFFFF
 
#define NVME_MANAGEMENT_START_ADDR   0x00200000
 
#define NVME_MANAGEMENT_END_ADDR   0x002FFFFF
 
#define RESERVED0_START_ADDR   0x00300000
 
#define RESERVED0_END_ADDR   0x0FFFFFFF
 
#define FTL_MANAGEMENT_START_ADDR   0x10000000
 
#define DATA_BUFFER_BASE_ADDR   0x10000000
 The base address of buffer for DMA requests. More...
 
#define TEMPORARY_DATA_BUFFER_BASE_ADDR    (DATA_BUFFER_BASE_ADDR + AVAILABLE_DATA_BUFFER_ENTRY_COUNT * BYTES_PER_DATA_REGION_OF_SLICE)
 
#define SPARE_DATA_BUFFER_BASE_ADDR
 
#define TEMPORARY_SPARE_DATA_BUFFER_BASE_ADDR    (SPARE_DATA_BUFFER_BASE_ADDR + AVAILABLE_DATA_BUFFER_ENTRY_COUNT * BYTES_PER_SPARE_REGION_OF_SLICE)
 
#define RESERVED_DATA_BUFFER_BASE_ADDR
 
#define COMPLETE_FLAG_TABLE_ADDR   0x17000000
 
#define STATUS_REPORT_TABLE_ADDR   (COMPLETE_FLAG_TABLE_ADDR + sizeof(COMPLETE_FLAG_TABLE))
 
#define ERROR_INFO_TABLE_ADDR   (STATUS_REPORT_TABLE_ADDR + sizeof(STATUS_REPORT_TABLE))
 
#define TEMPORARY_PAY_LOAD_ADDR   (ERROR_INFO_TABLE_ADDR + sizeof(ERROR_INFO_TABLE))
 
#define DATA_BUFFER_MAP_ADDR   0x18000000
 
#define DATA_BUFFFER_HASH_TABLE_ADDR   (DATA_BUFFER_MAP_ADDR + sizeof(DATA_BUF_MAP))
 
#define TEMPORARY_DATA_BUFFER_MAP_ADDR   (DATA_BUFFFER_HASH_TABLE_ADDR + sizeof(DATA_BUF_HASH_TABLE))
 
#define LOGICAL_SLICE_MAP_ADDR   (TEMPORARY_DATA_BUFFER_MAP_ADDR + sizeof(TEMPORARY_DATA_BUF_MAP))
 
#define VIRTUAL_SLICE_MAP_ADDR   (LOGICAL_SLICE_MAP_ADDR + sizeof(LOGICAL_SLICE_MAP))
 
#define VIRTUAL_BLOCK_MAP_ADDR   (VIRTUAL_SLICE_MAP_ADDR + sizeof(VIRTUAL_SLICE_MAP))
 
#define PHY_BLOCK_MAP_ADDR   (VIRTUAL_BLOCK_MAP_ADDR + sizeof(VIRTUAL_BLOCK_MAP))
 
#define BAD_BLOCK_TABLE_INFO_MAP_ADDR   (PHY_BLOCK_MAP_ADDR + sizeof(PHY_BLOCK_MAP))
 
#define VIRTUAL_DIE_MAP_ADDR   (BAD_BLOCK_TABLE_INFO_MAP_ADDR + sizeof(BAD_BLOCK_TABLE_INFO_MAP))
 
#define GC_VICTIM_MAP_ADDR   (VIRTUAL_DIE_MAP_ADDR + sizeof(VIRTUAL_DIE_MAP))
 
#define REQ_POOL_ADDR   (GC_VICTIM_MAP_ADDR + sizeof(GC_VICTIM_MAP))
 
#define ROW_ADDR_DEPENDENCY_TABLE_ADDR   (REQ_POOL_ADDR + sizeof(REQ_POOL))
 
#define DIE_STATE_TABLE_ADDR   (ROW_ADDR_DEPENDENCY_TABLE_ADDR + sizeof(ROW_ADDR_DEPENDENCY_TABLE))
 
#define RETRY_LIMIT_TABLE_ADDR   (DIE_STATE_TABLE_ADDR + sizeof(DIE_STATE_TABLE))
 
#define WAY_PRIORITY_TABLE_ADDR   (RETRY_LIMIT_TABLE_ADDR + sizeof(RETRY_LIMIT_TABLE))
 
#define FTL_MANAGEMENT_END_ADDR   ((WAY_PRIORITY_TABLE_ADDR + sizeof(WAY_PRIORITY_TABLE)) - 1)
 
#define RESERVED1_START_ADDR   (FTL_MANAGEMENT_END_ADDR + 1)
 
#define RESERVED1_END_ADDR   0x3FFFFFFF
 
#define DRAM_END_ADDR   0x3FFFFFFF
 

Macro Definition Documentation

◆ BAD_BLOCK_TABLE_INFO_MAP_ADDR

#define BAD_BLOCK_TABLE_INFO_MAP_ADDR   (PHY_BLOCK_MAP_ADDR + sizeof(PHY_BLOCK_MAP))

Definition at line 103 of file memory_map.h.

◆ COMPLETE_FLAG_TABLE_ADDR

#define COMPLETE_FLAG_TABLE_ADDR   0x17000000

Definition at line 89 of file memory_map.h.

◆ DATA_BUFFER_BASE_ADDR

#define DATA_BUFFER_BASE_ADDR   0x10000000

The base address of buffer for DMA requests.

different from DATA_BUFFER_MAP_ADDR, but with the same number of entries (AVAILABLE_DATA_BUFFER_ENTRY_COUNT)

Definition at line 77 of file memory_map.h.

◆ DATA_BUFFER_MAP_ADDR

#define DATA_BUFFER_MAP_ADDR   0x18000000

Definition at line 95 of file memory_map.h.

◆ DATA_BUFFFER_HASH_TABLE_ADDR

#define DATA_BUFFFER_HASH_TABLE_ADDR   (DATA_BUFFER_MAP_ADDR + sizeof(DATA_BUF_MAP))

Definition at line 96 of file memory_map.h.

◆ DIE_STATE_TABLE_ADDR

#define DIE_STATE_TABLE_ADDR   (ROW_ADDR_DEPENDENCY_TABLE_ADDR + sizeof(ROW_ADDR_DEPENDENCY_TABLE))

Definition at line 113 of file memory_map.h.

◆ DRAM_END_ADDR

#define DRAM_END_ADDR   0x3FFFFFFF

Definition at line 122 of file memory_map.h.

◆ DRAM_START_ADDR

#define DRAM_START_ADDR   0x00100000

Definition at line 57 of file memory_map.h.

◆ ERROR_INFO_TABLE_ADDR

#define ERROR_INFO_TABLE_ADDR   (STATUS_REPORT_TABLE_ADDR + sizeof(STATUS_REPORT_TABLE))

Definition at line 91 of file memory_map.h.

◆ FTL_MANAGEMENT_END_ADDR

#define FTL_MANAGEMENT_END_ADDR   ((WAY_PRIORITY_TABLE_ADDR + sizeof(WAY_PRIORITY_TABLE)) - 1)

Definition at line 117 of file memory_map.h.

◆ FTL_MANAGEMENT_START_ADDR

#define FTL_MANAGEMENT_START_ADDR   0x10000000

Definition at line 68 of file memory_map.h.

◆ GC_VICTIM_MAP_ADDR

#define GC_VICTIM_MAP_ADDR   (VIRTUAL_DIE_MAP_ADDR + sizeof(VIRTUAL_DIE_MAP))

Definition at line 106 of file memory_map.h.

◆ LOGICAL_SLICE_MAP_ADDR

#define LOGICAL_SLICE_MAP_ADDR   (TEMPORARY_DATA_BUFFER_MAP_ADDR + sizeof(TEMPORARY_DATA_BUF_MAP))

Definition at line 99 of file memory_map.h.

◆ MEMORY_SEGMENTS_END_ADDR

#define MEMORY_SEGMENTS_END_ADDR   0x001FFFFF

Definition at line 60 of file memory_map.h.

◆ MEMORY_SEGMENTS_START_ADDR

#define MEMORY_SEGMENTS_START_ADDR   DRAM_START_ADDR

Definition at line 59 of file memory_map.h.

◆ NVME_MANAGEMENT_END_ADDR

#define NVME_MANAGEMENT_END_ADDR   0x002FFFFF

Definition at line 63 of file memory_map.h.

◆ NVME_MANAGEMENT_START_ADDR

#define NVME_MANAGEMENT_START_ADDR   0x00200000

Definition at line 62 of file memory_map.h.

◆ PHY_BLOCK_MAP_ADDR

#define PHY_BLOCK_MAP_ADDR   (VIRTUAL_BLOCK_MAP_ADDR + sizeof(VIRTUAL_BLOCK_MAP))

Definition at line 102 of file memory_map.h.

◆ REQ_POOL_ADDR

#define REQ_POOL_ADDR   (GC_VICTIM_MAP_ADDR + sizeof(GC_VICTIM_MAP))

Definition at line 109 of file memory_map.h.

◆ RESERVED0_END_ADDR

#define RESERVED0_END_ADDR   0x0FFFFFFF

Definition at line 66 of file memory_map.h.

◆ RESERVED0_START_ADDR

#define RESERVED0_START_ADDR   0x00300000

Definition at line 65 of file memory_map.h.

◆ RESERVED1_END_ADDR

#define RESERVED1_END_ADDR   0x3FFFFFFF

Definition at line 120 of file memory_map.h.

◆ RESERVED1_START_ADDR

#define RESERVED1_START_ADDR   (FTL_MANAGEMENT_END_ADDR + 1)

Definition at line 119 of file memory_map.h.

◆ RESERVED_DATA_BUFFER_BASE_ADDR

#define RESERVED_DATA_BUFFER_BASE_ADDR
Value:
AVAILABLE_TEMPORARY_DATA_BUFFER_ENTRY_COUNT * BYTES_PER_SPARE_REGION_OF_SLICE)
#define BYTES_PER_SPARE_REGION_OF_SLICE
Definition: ftl_config.h:213
#define TEMPORARY_SPARE_DATA_BUFFER_BASE_ADDR
Definition: memory_map.h:83

Definition at line 85 of file memory_map.h.

◆ RETRY_LIMIT_TABLE_ADDR

#define RETRY_LIMIT_TABLE_ADDR   (DIE_STATE_TABLE_ADDR + sizeof(DIE_STATE_TABLE))

Definition at line 114 of file memory_map.h.

◆ ROW_ADDR_DEPENDENCY_TABLE_ADDR

#define ROW_ADDR_DEPENDENCY_TABLE_ADDR   (REQ_POOL_ADDR + sizeof(REQ_POOL))

Definition at line 111 of file memory_map.h.

◆ SPARE_DATA_BUFFER_BASE_ADDR

#define SPARE_DATA_BUFFER_BASE_ADDR
Value:
AVAILABLE_TEMPORARY_DATA_BUFFER_ENTRY_COUNT * BYTES_PER_DATA_REGION_OF_SLICE)
#define BYTES_PER_DATA_REGION_OF_SLICE
Definition: ftl_config.h:212
#define TEMPORARY_DATA_BUFFER_BASE_ADDR
Definition: memory_map.h:78

Definition at line 80 of file memory_map.h.

◆ STATUS_REPORT_TABLE_ADDR

#define STATUS_REPORT_TABLE_ADDR   (COMPLETE_FLAG_TABLE_ADDR + sizeof(COMPLETE_FLAG_TABLE))

Definition at line 90 of file memory_map.h.

◆ TEMPORARY_DATA_BUFFER_BASE_ADDR

#define TEMPORARY_DATA_BUFFER_BASE_ADDR    (DATA_BUFFER_BASE_ADDR + AVAILABLE_DATA_BUFFER_ENTRY_COUNT * BYTES_PER_DATA_REGION_OF_SLICE)

Definition at line 78 of file memory_map.h.

◆ TEMPORARY_DATA_BUFFER_MAP_ADDR

#define TEMPORARY_DATA_BUFFER_MAP_ADDR   (DATA_BUFFFER_HASH_TABLE_ADDR + sizeof(DATA_BUF_HASH_TABLE))

Definition at line 97 of file memory_map.h.

◆ TEMPORARY_PAY_LOAD_ADDR

#define TEMPORARY_PAY_LOAD_ADDR   (ERROR_INFO_TABLE_ADDR + sizeof(ERROR_INFO_TABLE))

Definition at line 92 of file memory_map.h.

◆ TEMPORARY_SPARE_DATA_BUFFER_BASE_ADDR

#define TEMPORARY_SPARE_DATA_BUFFER_BASE_ADDR    (SPARE_DATA_BUFFER_BASE_ADDR + AVAILABLE_DATA_BUFFER_ENTRY_COUNT * BYTES_PER_SPARE_REGION_OF_SLICE)

Definition at line 83 of file memory_map.h.

◆ VIRTUAL_BLOCK_MAP_ADDR

#define VIRTUAL_BLOCK_MAP_ADDR   (VIRTUAL_SLICE_MAP_ADDR + sizeof(VIRTUAL_SLICE_MAP))

Definition at line 101 of file memory_map.h.

◆ VIRTUAL_DIE_MAP_ADDR

#define VIRTUAL_DIE_MAP_ADDR   (BAD_BLOCK_TABLE_INFO_MAP_ADDR + sizeof(BAD_BLOCK_TABLE_INFO_MAP))

Definition at line 104 of file memory_map.h.

◆ VIRTUAL_SLICE_MAP_ADDR

#define VIRTUAL_SLICE_MAP_ADDR   (LOGICAL_SLICE_MAP_ADDR + sizeof(LOGICAL_SLICE_MAP))

Definition at line 100 of file memory_map.h.

◆ WAY_PRIORITY_TABLE_ADDR

#define WAY_PRIORITY_TABLE_ADDR   (RETRY_LIMIT_TABLE_ADDR + sizeof(RETRY_LIMIT_TABLE))

Definition at line 115 of file memory_map.h.