1 /*
2  * Copyright (c) 2013 Heather Lee Wilson
3  *
4  * Use of this source code is governed by a MIT-style
5  * license that can be found in the LICENSE file or at
6  * https://opensource.org/licenses/MIT
7  */
8 #pragma once
9 
10 #include <platform/flash_nor_config.h>
11 
12 #define NORFS_NUM_BLOCKS 8
13 #define NORFS_BLOCK_HEADER_SIZE 8
14 #define NORFS_NVRAM_SIZE (FLASH_PAGE_SIZE * NORFS_NUM_BLOCKS)
15 #define NORFS_MAX_OBJ_LEN (FLASH_PAGE_SIZE/2 - NORFS_OBJ_OFFSET)
16 #define NORFS_BANK 0
17 
18 #define NORFS_FLASH_SIZE(obj_size) (uint16_t)(obj_size + NORFS_OBJ_OFFSET)
19 
20 #define NORFS_AVAILABLE_SPACE ((NORFS_NVRAM_SIZE - NORFS_NUM_BLOCKS * NORFS_BLOCK_HEADER_SIZE) / 2)
21 #define NORFS_MIN_FREE_BLOCKS 1
22 
23 #define NORFS_KEY_OFFSET 0
24 #define NORFS_VERSION_OFFSET 4
25 #define NORFS_LENGTH_OFFSET 6
26 #define NORFS_FLAGS_OFFSET 8
27 #define NORFS_CHECKSUM_OFFSET 10
28 #define NORFS_OBJ_OFFSET 12
29 
30 #define NORFS_DELETED_MASK 1
31 
32