CAM, FreeBSD, GSoC, mmccam, RTEMS, SDIO

Backporting MMCCAM/SDIO framework to FreeBSD head 642b174dadd

My phase 2, GSoC objectives includes Backporting the current(rev: d6756a3ac8 ) MMCCAM framework to FreeBSD head 642b174dadd and then importing it to RTEMS. This post mainly concerns with intricacies and workarounds during the backporting process. Backporting is a process that enables old kernels run a latest driver. MMCCAM framework is one such enhancement in the past few months that enables FreeBSD to talk to devices behind the SDIO bus. It’s a major architectural change, that enables further driver development for devices on SDIO bus. So, first step during backporting is to finalize the revisions from which driver will be imported(d6756a3ac8…

Continue Reading

Benchmark, CAM, File system, FreeBSD, GSoC, mmccam, SDIO

microSD Card benchmarking on BeagleBone Black

Hi all, I have been recently involved in benchmarking two different device drivers of FreeBSD ,namely SDHCI and the SDIO driver to compare their relative performance under different circumstances. Here, I will summarize my results, possible conclusions and the benchmarking procedure. Before moving towards benchmarking, i’d prefer going through this article. It really good and provides a great overview of how data is transferred to disk, different APIs available. This will surely help you selecting options for the benchmark. Benchmarking procedure I initially experimented with different benchmarks like iorate, iozone, fio, bonnie++ etc but the one i really liked was…

Continue Reading

FreeBSD, GSoC, Software

Setting up FreeBSD environment on virtualbox

Hi all, In this post we will review the procedure of setting up the FreeBSD environment on VirtualBox along with setting up Internet on the guest OS(this was pretty tricky!).BTW, my host OS is Ubuntu 14.04 So, I am assuming you have already installed VirtualBox as per your host OS and has downloaded the FreeBSD amd64 iso image(If not you can do it from here and extract it appropriately to get a .iso file. Installing FreeBSD on VirtualBox Installing FreeBSD on virtual box is pretty straight forward, just insert use the downloaded iso to boot up the VM with default…

Continue Reading

CAM, FreeBSD, mmccam

Implementing a MMC/SD/SDIO stack using CAM framework(Part 1)

In this blog post we will have a detailed look at all the files added/changed while implementing the MMC/SD/SDIO stack via CAM framework. We will basically discuss the commit  https://github.com/freebsd/freebsd/commit/a87c7a85be3e3727b6b08b19741b4282f942400d which aims at adding MMC/SD/SDIO stack to FreeBSD’s already existing CAM framework. So, lets start one by one with each file: mmc.h #ifndef CAM_MMC_H #define CAM_MMC_H #include <dev/mmc/mmcreg.h> /* * This structure describes an MMC/SD card */ struct mmc_params { u_int8_t model[40]; /* Card model */ /* Card OCR */ uint32_t card_ocr; /* OCR of the IO portion of the card */ uint32_t io_ocr; /* Card CID — raw and…

Continue Reading