Public Access
sd card: what the card says it is, from its CID register
Type, size, and the identity register read by our SD driver (CMD10): manufacturer, OEM, product name, revision, serial and date, decoded by a host-tested parser. Needed for the upstream report of #21: nothing else here could read the card's identity. This one is a Samsung 8 GB SDHC from June 2013. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
namespace roro {
|
||||
|
||||
// What an SD card says it is: its CID register, 16 bytes (SD Physical Layer spec, 5.2).
|
||||
struct SdCardId {
|
||||
uint8_t manufacturer = 0; // assigned by the SD Association; see sdManufacturerName()
|
||||
char oem[3] = {}; // two characters
|
||||
char product[6] = {}; // five characters
|
||||
uint8_t revisionMajor = 0, revisionMinor = 0;
|
||||
uint32_t serial = 0;
|
||||
int year = 0, month = 0; // manufactured
|
||||
};
|
||||
|
||||
SdCardId parseSdCid(const uint8_t cid[16]);
|
||||
|
||||
// The usual holder of a manufacturer ID. The SD Association doesn't publish its list: these are
|
||||
// the commonly reported ones, and resold or counterfeit cards carry whatever their maker chose.
|
||||
const char* sdManufacturerName(uint8_t id);
|
||||
|
||||
// "SanDisk (0x03) "SD" "SU08G" rev 8.0, serial 1234abcd, made 2014-03".
|
||||
std::string sdCardSummary(const SdCardId& id);
|
||||
|
||||
} // namespace roro
|
||||
Reference in New Issue
Block a user