1.1 --- a/pkg/devices/lib/msc/include/msc-common.h Fri Feb 16 00:55:51 2024 +0100
1.2 +++ b/pkg/devices/lib/msc/include/msc-common.h Fri Feb 16 23:11:25 2024 +0100
1.3 @@ -21,53 +21,13 @@
1.4
1.5 #pragma once
1.6
1.7 +#include <l4/devices/msc.h>
1.8 #include <l4/re/c/dma_space.h>
1.9 #include <l4/sys/types.h>
1.10 #include <stdint.h>
1.11
1.12
1.13
1.14 -/* MMC/SD structures. */
1.15 -
1.16 -struct CID
1.17 -{
1.18 - uint16_t month:4, year:8, reserved:4;
1.19 - uint32_t serial;
1.20 - uint8_t revision;
1.21 - char name[5];
1.22 - uint16_t oem;
1.23 - uint8_t manufacturer;
1.24 -} __attribute__((packed));
1.25 -
1.26 -struct CSD
1.27 -{
1.28 - uint8_t reserved0:2, format:2, temp_write_prot:1, perm_write_prot:1, copy:1, format_group:1;
1.29 - uint16_t reserved1:5, write_block_partial:1, write_blocklen:4, write_time_factor:3,
1.30 - reserved2:2, write_prot_group_enable:1;
1.31 - uint64_t write_prot_group_size:7, erase_sector_size:7, erase_single_block_enable:1,
1.32 - device_size_multiplier:3, max_write_current_max:3, max_write_current_min:3,
1.33 - max_read_current_max:3, max_read_current_min:3, device_size:12,
1.34 - reserved3:2, dsr_implemented:1, read_block_misalign:1, write_block_misalign:1,
1.35 - read_block_partial:1, read_blocklen:4, card_command_classes:12;
1.36 - uint8_t tran_speed, data_read_access_time_2, data_read_access_time_1,
1.37 - reserved4:6, csd:2;
1.38 -} __attribute__((packed));
1.39 -
1.40 -
1.41 -
1.42 -/* Generic card structure. */
1.43 -
1.44 -struct msc_card
1.45 -{
1.46 - uint16_t rca;
1.47 - uint32_t ocr;
1.48 - uint8_t bus_width;
1.49 - struct CID cid;
1.50 - struct CSD csd;
1.51 -};
1.52 -
1.53 -
1.54 -
1.55 #ifdef __cplusplus
1.56
1.57 #include <l4/devices/hw_mmio_register_block.h>
1.58 @@ -153,7 +113,9 @@
1.59
1.60 void enable();
1.61
1.62 - uint32_t get_status();
1.63 + msc_card *get_cards();
1.64 +
1.65 + uint8_t num_cards();
1.66
1.67 uint32_t read_blocks(uint8_t card, l4re_dma_space_dma_addr_t paddr,
1.68 uint32_t block_address, uint32_t block_count);