|
79 | 79 | #define MICROPY_HW_SPI3_MISO (pin_B4) |
80 | 80 | #define MICROPY_HW_SPI3_MOSI (pin_B5) |
81 | 81 |
|
82 | | -// External SPI Flash configuration |
83 | | - |
84 | | -#if !MICROPY_HW_SPIFLASH_SIZE_BYTES |
85 | | -// Use internal filesystem if spiflash not enabled. |
86 | 82 | #define MICROPY_HW_ENABLE_INTERNAL_FLASH_STORAGE (1) |
87 | 83 |
|
88 | | -#else |
89 | | -// Disable internal filesystem to use spiflash. |
90 | | -#define MICROPY_HW_ENABLE_INTERNAL_FLASH_STORAGE (0) |
| 84 | +// External SPI Flash configuration |
| 85 | +#if MICROPY_HW_SPIFLASH_SIZE_BYTES |
91 | 86 |
|
92 | 87 | // SPI flash pins |
93 | 88 | #define MICROPY_HW_SPIFLASH_CS (pyb_pin_FLASH_CS) |
|
103 | 98 |
|
104 | 99 | extern const struct _mp_spiflash_config_t spiflash_config; |
105 | 100 | extern struct _spi_bdev_t spi_bdev; |
| 101 | + |
| 102 | +// This configures the spiflash storage logically directly |
| 103 | +// after the internal flash as accessed via pyb.Flash |
| 104 | +// If start/length variables are not passed to pyb.Flash |
| 105 | +// both internal and external flash will be used merged into one |
| 106 | +// larger filesystem. |
| 107 | + |
106 | 108 | #define MICROPY_HW_SPIFLASH_ENABLE_CACHE (1) |
107 | | -#define MICROPY_HW_BDEV_SPIFLASH (&spi_bdev) |
108 | | -#define MICROPY_HW_BDEV_SPIFLASH_CONFIG (&spiflash_config) |
109 | | -#define MICROPY_HW_BDEV_SPIFLASH_SIZE_BYTES (MICROPY_HW_SPIFLASH_SIZE_BITS / 8) |
110 | | -#define MICROPY_HW_BDEV_SPIFLASH_EXTENDED (&spi_bdev) // for extended block protocol |
111 | 109 | #define MICROPY_HW_SPIFLASH_SIZE_BITS (MICROPY_HW_SPIFLASH_SIZE_BYTES * 8) |
| 110 | +#define MICROPY_HW_BDEV2_SPIFLASH (&spi_bdev) |
| 111 | +#define MICROPY_HW_BDEV2_SPIFLASH_CONFIG (&spiflash_config) |
| 112 | +#define MICROPY_HW_BDEV2_SPIFLASH_SIZE_BYTES (MICROPY_HW_SPIFLASH_SIZE_BITS / 8) |
| 113 | +#define MICROPY_HW_BDEV2_SPIFLASH_EXTENDED (&spi_bdev) // for extended block protocol |
| 114 | +#define MICROPY_HW_BDEV2_READBLOCKS(dest, bl, n) spi_bdev_readblocks(MICROPY_HW_BDEV2_SPIFLASH, (dest), (bl), (n)) |
| 115 | +#define MICROPY_HW_BDEV2_WRITEBLOCKS(src, bl, n) spi_bdev_writeblocks(MICROPY_HW_BDEV2_SPIFLASH, (src), (bl), (n)) |
| 116 | +#define MICROPY_HW_BDEV2_IOCTL(op, arg) ( \ |
| 117 | + (op) == BDEV_IOCTL_NUM_BLOCKS ? (MICROPY_HW_BDEV2_SPIFLASH_SIZE_BYTES / FLASH_BLOCK_SIZE) : \ |
| 118 | + (op) == BDEV_IOCTL_INIT ? spi_bdev_ioctl(MICROPY_HW_BDEV2_SPIFLASH, (op), (uint32_t)MICROPY_HW_BDEV2_SPIFLASH_CONFIG) : \ |
| 119 | + spi_bdev_ioctl(MICROPY_HW_BDEV2_SPIFLASH, (op), (arg)) \ |
| 120 | + ) |
112 | 121 | #endif |
0 commit comments