Posts

Understanding FreeBSD's CAM Framework

Image
This blog post presents a gist of Free BSD's doc on CAM( here ) and chapter 14 of the book FreeBSD device driver- A guide for intrepid. It gives an introduction to the CAM(Common access method), it's applications, it's working and it's organization in FreeBSD. It is written to get myself a really good understanding of mmccam stack which is nothing but SDHC/SDIO protocols wired within the CAM framework. COMMON ACCESS METHOD CAM is a method for separating HBA adapters from storage adapters and is primarily used for SCSI. By separating these drivers it reduces the complexity of both the drivers.Furthermore, this separation enables storage drivers (such as CD-ROM and tape drivers) to control their devices on any I/O bus (such as IDE, SCSI, and so on) as long as an appropriate HBA driver is available. Note: HBA(Host Bus Adapters) are devices (IC/Card) that connects the host to other devices. For example, USB HBA allows host OS to communicate to USB. In CAM terminology, HBA ...

Understanding SD, SDIO and MMC Interface

Image
    In this blog post i will present the gist of the paper http://www.kaltech.co.il/pdf/Eureka_sd_wp1.pdf ,  It's crucial for anyone willing to understand how removable devices like sd card work, different protocols/functionalities they support. Secure Digital (SD) memory card today, is one of the most popular non-volatile removable data storage media for consumer applications. It's not intended to remove hard-disk. Hard-disk can still deliver much better speed and memory capacity. SD card is used in applications demanding optimum memory capacity, smaller size, and low end product cost.  The combination of small foot print, lower cost and optimal performance contributed in SD-card's success. What is MultiMedia Card (MMC)? MMC and Sd-card share many common features and have the same physical and electrical specifications. The differences between the two standards are mainly on the software level commands. The similarities allow many hosts to accept both MMC and SD cards on ...

Coding conventions : RTEMS

From my experience till now, If you desire to contribute to open source, it's necessary to adapt!! Your old sluggish, inconsistence coding practices wont do any good, neither to you nor to the community. ^^ That was my story!! After a month of working with professionals , I realized that my 5 years of coding was trash! It's not about logic, it's about ethics. To be a good coder, you don't only need to work on your algorithmic skills, but one should also have some ethics, a set of rules to which he adheres.  Earlier, I used to code the way i want to, the way i like. Nevertheless, I am really glad to have some one (In fact a lot of well wisher) trying to improve my skills, trying to lift me up towards professionalism. GSoC does pays it's purpose!! Thanks a lot, Mentors! I really learned a lot, even during my application period. So, this blog post is for new applicants or for someone willing to contribute to any open source community. I spent a lot of time and went thr...

Building and testing RTEMS-libbsd for BeagleBone Black BSP

------------------------------------------------------------------------ Building and testing libbsd for BeagleBone Black BSP ------------------------------------------------------------------------ == Installation overview == === Initial setup === - Jump into your workspace and make a directory named sandbox This folder will contain all our project files - cd sandbox/ - export sandbox=$PWD - git clone git://git.rtems.org/rtems-source-builder.git - git clone git://git.rtems.org/rtems.git - git clone git://git.rtems.org/rtems-libbsd.git === Building desired toolset for ARM === - cd rtems-source-builder/rtems/ - ../source-builder/sb-check - ../source-builder/sb-set-builder --prefix=$sandbox/5 5/rtems-arm - cd $sandbox - export PATH=$PWD/5/bin:$PATH After having required toolchain, we can now proceed towards building our Board Support Package(BSP) === Building Beagleboneblack BSP === - cd $sandbox - mkdir beagleboneblack - cd rtems - ./bootstrap -c &&  ./bootstrap - ../rtems-sourc...

Building and testing RTEMS-libbsd for BeagleBone Black BSP

Image
------------------------------------------------------------------------ Building and testing libbsd for BeagleBone Black BSP ------------------------------------------------------------------------ == Installation overview == === Initial setup === - Jump into your workspace and make a directory named sandbox   This folder will contain all our project files - cd sandbox/ - export sandbox=$PWD - git clone git://git.rtems.org/rtems-source-builder.git - git clone git://git.rtems.org/rtems.git - git clone git://git.rtems.org/rtems-libbsd.git === Building desired toolset for ARM === - cd rtems-source-builder/rtems/ - ../source-builder/sb-check - ../source-builder/sb-set-builder --prefix=$sandbox/5 5/rtems-arm - cd $sandbox - export PATH=$PWD/5/bin:$PATH After having required toolchain, we can now proceed towards building our Board Support Package(BSP) === Building Beagleboneblack BSP === - cd $sandbox - mkdir beagleboneblack - cd rtems - ./bootstrap -c...

Software licensing : Introduction and it's types

A lot of things changes when you write your first code for commercially use. Software licensing is one of those. Usually while coding for my own projects, i earlier use to omit this. However, recently i was hit hard by this 'vague' topic of licensing. So, i decided to study in depth about different types of licenses for open source and propriety usage and here's the summary: A software license is a type of contract between the company/person who produces the code and the one who uses it. It defines the terms of usage of that piece of code. Before moving forward i have a curious question: What if, i copy a code without accepting it's license and use it under my own terms?Who's gonna know it, just copy, paste and use!! ? Well after searching the net i came across various case studies, some of which are very interesting... Reference: here Now, coming to the types of available licenses in Open source community:  GNU GPL License   GPL license has mainly two versions,...

Software licensing : Introduction and it's types

Image
A lot of things changes when you write your first code for commercially use. Software licensing is one of those. Usually while coding for my own projects, i earlier use to omit this. However, recently i was hit hard by this 'vague' topic of licensing. So, i decided to study in depth about different types of licenses for open source and propriety usage and here's the summary: A software license is a type of contract between the company/person who produces the code and the one who uses it. It defines the terms of usage of that piece of code. Before moving forward i have a curious question: What if, i copy a code without accepting it's license and use it under my own terms?Who's gonna know it, just copy, paste and use!! ? Well after searching the net i came across various case studies, some of which are very interesting... Reference: here Now, coming to the types of available licenses in Open source community:  GNU GPL License GPL license has mai...