10 #if EFI_USE_COMPRESSED_INI_MSD
19 #ifdef RAMDISK_INVALID
20 #undef EFI_EMBED_INI_MSD
21 #define EFI_EMBED_INI_MSD FALSE
26 #if EFI_USE_COMPRESSED_INI_MSD
38#elif STM32_USB_USE_OTG2
41 #error MSD needs OTG1 or OTG2 to be enabled
54 sizeof(scsi_inquiry_response_t) - 5,
60 {
'v',CH_KERNEL_MAJOR+
'0',
'.',CH_KERNEL_MINOR+
'0'}
68 sizeof(scsi_inquiry_response_t) - 5,
74 {
'v',CH_KERNEL_MAJOR+
'0',
'.',CH_KERNEL_MINOR+
'0'}
78 if ((
blkbuf == NULL) || (blkbufsize == 0)) {
103#if EFI_USE_COMPRESSED_INI_MSD
108 return (BaseBlockDevice*)&
cbd;
112 constexpr size_t ramdiskSize =
sizeof(ramdisk_image);
113 constexpr size_t blockSize = 512;
114 constexpr size_t blockCount = ramdiskSize / blockSize;
117 static_assert(ramdiskSize % blockSize == 0);
119 ramdiskStart(&
ramdisk,
const_cast<uint8_t*
>(ramdisk_image), blockSize, blockCount,
true);
121 return (BaseBlockDevice*)&
ramdisk;
125 return (BaseBlockDevice*)&
ND1;
TunerStudioOutputChannels outputChannels
void attachLun(uint8_t lunIndex, BaseBlockDevice *blkdev, uint8_t *blkbuf, size_t blkbufsize, const scsi_inquiry_response_t *inquiry, const scsi_unit_serial_number_inquiry_response_t *serialInquiry)
void start()
Start the thread.
void compressedBlockDeviceObjectInit(CompressedBlockDevice *cbd)
void compressedBlockDeviceStart(CompressedBlockDevice *cbd, const uint8_t *source, size_t sourceSize)
This file implements a ChibiOS block device backed by a compressed (gzip) store.
static EngineAccessor engine
static BaseBlockDevice * getRamdiskDevice()
static CompressedBlockDevice cbd
static NO_CACHE uint8_t blkbuf0[MMCSD_BLOCK_SIZE]
static MassStorageController msd(usb_driver)
static const scsi_inquiry_response_t sdCardInquiry
void deattachMsdSdCard(void)
static const scsi_inquiry_response_t iniDriveInquiry
void attachMsdSdCard(BaseBlockDevice *blkdev, uint8_t *blkbuf, size_t blkbufsize)
static union @47 NO_CACHE
uint8_t blkbuf[4 *MMCSD_BLOCK_SIZE]