Loading...
Searching...
No Matches
fal_cfg.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 ML!PA Consulting GmbH
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
23
24#include "board.h"
25#include "macros/units.h"
26#include "mtd_default.h"
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32#if !defined(CONFIG_FLASHDB_MIN_SECTOR_SIZE_DEFAULT_KiB) || defined(DOXYGEN)
56#define CONFIG_FLASHDB_MIN_SECTOR_SIZE_DEFAULT_KiB 4
57#endif
58
62#define FAL_PART_HAS_TABLE_CFG
63
67extern struct fal_flash_dev mtd_flash0;
68
72#define FAL_FLASH_DEV_TABLE \
73{ \
74 &mtd_flash0, \
75}
76
77#if !defined(FAL_MTD) || defined(DOXYGEN)
81#define FAL_MTD mtd_dev_get(0)
82#endif
83
84#if !defined(FAL_PART0_LABEL) || defined(DOXYGEN)
88#define FAL_PART0_LABEL "part0"
89#endif
90
91#if !defined(FAL_PART0_LENGTH) || defined(DOXYGEN)
102#define FAL_PART0_LENGTH (2 * (CONFIG_FLASHDB_MIN_SECTOR_SIZE_DEFAULT_KiB * KiB(1)))
103#endif
104
108#if defined(FAL_PART0_LABEL) || defined(DOXYGEN)
109#if !defined(FAL_PART0_OFFSET) || defined(DOXYGEN)
113#define FAL_PART0_OFFSET 0
114#endif
118#define FAL_ROW_PART0 { FAL_PART_MAGIC_WORD, FAL_PART0_LABEL, "fal_mtd", \
119 FAL_PART0_OFFSET, FAL_PART0_LENGTH, 0 },
120#else
121#define FAL_ROW_PART0
122#endif
123
127#if defined(FAL_PART1_LABEL) || defined(DOXYGEN)
128#if !defined(FAL_PART1_OFFSET) || defined(DOXYGEN)
132#define FAL_PART1_OFFSET (FAL_PART0_OFFSET + FAL_PART0_LENGTH)
133#endif
137#define FAL_ROW_PART1 { FAL_PART_MAGIC_WORD, FAL_PART1_LABEL, "fal_mtd", \
138 FAL_PART1_OFFSET, FAL_PART1_LENGTH, 0 },
139#else
140#define FAL_ROW_PART1
141#endif
142
146#if defined(FAL_PART2_LABEL) || defined(DOXYGEN)
147#if !defined(FAL_PART2_OFFSET) || defined(DOXYGEN)
151#define FAL_PART2_OFFSET (FAL_PART1_OFFSET + FAL_PART1_LENGTH)
152#endif
156#define FAL_ROW_PART2 { FAL_PART_MAGIC_WORD, FAL_PART2_LABEL, "fal_mtd", \
157 FAL_PART2_OFFSET, FAL_PART2_LENGTH, 0 },
158#else
159#define FAL_ROW_PART2
160#endif
161
165#if defined(FAL_PART3_LABEL) || defined(DOXYGEN)
166#if !defined(FAL_PART3_OFFSET) || defined(DOXYGEN)
170#define FAL_PART3_OFFSET (FAL_PART2_OFFSET + FAL_PART2_LENGTH)
171#endif
175#define FAL_ROW_PART3 { FAL_PART_MAGIC_WORD, FAL_PART3_LABEL, "fal_mtd", \
176 FAL_PART3_OFFSET, FAL_PART3_LENGTH, 0 },
177#else
178#define FAL_ROW_PART3
179#endif
180
184#define FAL_PART_TABLE \
185{ \
186 FAL_ROW_PART0 \
187 FAL_ROW_PART1 \
188 FAL_ROW_PART2 \
189 FAL_ROW_PART3 \
190}
191
192#ifdef __cplusplus
193}
194#endif
struct fal_flash_dev mtd_flash0
FAL <-> MTD adapter.
Unit helper macros.