SD cards


SD cards in FireTOS:

The FireBee supports Secure Digital (SD) cards in FireTOS without any additional drivers. The first partition of a SD card gets mounted as drive A: acting as floppy disk replacement. It is required that the SD card be properly formatted to make it usable in the FireBee. The partition size can be up to 2 GB. Small SD cards are thus pretty handy for fast data exchange. The FireBee always uses SPI mode to access SD cards.

Currently, FAT16 is the preferred file system format, FAT32 and ext2 are available only under MiNT. MiNT's FAT drivers are currently the most mature implementation, so MiNT is recommended. SD cards also work with FAT12 under FireTOS (tested with older, smaller (e.g. 8MB) cards).

FireTOS mounts the first partition as drive A:. Since the public BETA from March 2014, it is possible to use more than a single partition of SD cards in FireTOS. Note that SD cards can be accessed without special drivers, so SD card access is available very early in the boot process (even before the FPGA gets initialized). This feature will be used for FPGA updates once implemented.

When no start partition is found on IDE or SCSI/ACSI devices or no such device is connected, the FireBee will use the first partition of the SD card as start partition. This is very useful to quickly test different boot configurations since it's much easier to swap SD cards than to remove and insert a CompactFlash in the FireBee.

Hint: During boot, the original TOS routines scan for startup files on drive A:. As this can be either be a real floppy disk (probably none connected) or an SD card, the latter noticeably speeds up the boot process.

The FireTOS public BETA from 2014 offers further improvements compared to earlier versions. First, there is an 'SD card plug & play' functionality which drastically reduces the time needed to detect an inserted SD card during the boot process(SD card LED doesn't blink anymore). If there is no SD card inserted during boot, the system will wait 10 seconds with a blinking SD card LED to allow card insert.
Second, multiple partitions support has been implemented. The first partition gets mounted as drive A:, a second one can be used as drive B: (provided the TOS ram disk is not in use). Using data on these partitions still uses the available drivers for FAT16 (up to 2GB) under TOS and FAT32/ext2 in MiNT. There are no changes to existing TOS limits.

Additionally, the 'USB hub task fix" has been implemented. Meant for users that want to boot their FireBee into FreeMiNT without a SD card inserted/mapped to A:. Now USB mass storage devices (like USB flash drives/sticks) can be used. Previously that was only possible for USB mass storage devices inserted before boot, when no SD card was inserted.

The following transfer speeds can be achieved under FireTOS:
read: (copy from SD card to CompactFlash card) 570 kB/s
write: (copy from CompactFlash card to SD card) 200 kB/s

Micro SD cards with adapters work as well. As of yet, there are not any reports of incompatibility regarding specific SD card makes. SDXC or SDHC cards can’t be used with FireTOS currently.

SD cards with EmuTOS:

EmuTOS support for SD cards was introduced in 2013. Multiple partitions can be used. Partitions (drive letters) from SD card get sorted after CompactFlash drives. If for example, your CompactFlash is mounted as drive C:, SD card partitions will appear as D: and the following. Thus SD cards get handled exactly like hard disk in EmuTOS. EmuTOS supports hot swap (changing cards during operation) since version 0.9.2 (February 2014). Thus there is no difference in handling compared to a floppy disk.
EmuTOS supports SDHC and SDXC cards as well (with the known TOS limits, or, in case of MiNT is active, it's FAT32 or ext2 driver's limits.

Earlier EmuTOS versions needed a basis system (BaS_gcc) with at least version 0.8.1 from flash extending the original Medusa driver. This driver makes itself available to EmuTOS per special trap to provide the address of BaS_gcc's new XHDI interface. This is obsolete from EmuTOS 0.9.2 on which brings its own native SD card support, BaS version doesn't matter anymore. BaS_gcc SD card services can still be used, but are not essential anymore.

Current achievable transfer speeds with EmuTOS are:
read: (GEMDOS file I/O) 1000 kB/s
write: (GEMDOS file I/O) 580 kB/s

This numbers have been measured in FreeMiNT with a class 2 SDHC card.
MiNT's file system caches must be disabled since there is no practicable way to flush them for hot swapping, currently. Read/write speeds of earlier EmuTOS version together with BaS_gcc are somewhat slower (up to 125 kB/s) depending on SD card type.

Future speedup for FireTOS as well as EmuTOS would be possible with implementation of a true SD mode within the FPGA. Currently, the four serial SD card pins used for 'true SD mode' are connected to the FPGA, but not in use. As of today, SD cards are driven by the Coldfire's SPI (a simple bus invented by Motorola). This additional (and today only available) SD card interface provides the advantage of very early availability (before FPGA startup) during the boot process.

Note that the SD card's write protect slider does not work with the FireBee currently. SD cards can always be written, regardless of slider position.
Latest News
HTTP 521 Webserver is down - Hardware failure at firebee.org
Maybe you have already noticed it: Some news, pages and downloads are no longer available. ...
Read more
GFA Basic Editor (GBE) v3.7 Released
For those not aware, the original author of GFA Basic passed away in 2011. December ...
Read more
New AHCC version released
After almost 3 years, Henk Robbers released version 6.0 of AHCC on November 27, 2020. ...
Read more
RSS Feed | Terms of Use | Sitemap