This blog post is essentially a summary of my presentation(which can be found here) on application and deployment of 5G within IoT scenarios. which revolves around the following publication: https://ieeexplore.ieee.org/document/7397856 In this part of post(previous part : link) we will have a look at: Various Radio Access Technologies within 5G Various Radio Access Networks used in 5G + IoT scenario 5G IOT architectures: OneM2M and SmartM2M So, as mentioned in previous post,RAT is the underlying physical connection method for a radio based communication network like Wifi, bluetooth etc. while RAN is part of a mobile telecommunication system. It implements a…
Category: Software
Using cellular technology within different IOT scenarios(Part-1)
This blog post is essentially a summary of my presentation(which can be found here) on application and deployment of 5G within IoT scenarios. which revolves around the following publication: https://ieeexplore.ieee.org/document/7397856 Content Some basic terminologies Types of IOTs and their requirements MTC Technical requirements IOT communication technologies and their key performance indicator IOT enablers : What all features do we want in 4G-E and 5G for IOT?(Part-2) 5G IOT architectures- SmartM2M and OneM2M (Part-2) Keywords 3GPP – 3rd Generation Partnership Project – The 3rd Generation Partnership Project (3GPP) is a collaboration between groups of telecommunications standards associations, known as the Organizational…
Setting up YAFFS2 and JFFS2 on RTEMS with Flash Simulated on a RAM-Disk
Hi all, In this post, we’ll look forward to setting up flash file systems namely JFFS2 and YAFFS2 on RTEMS with flash simulated on a RAM-disk. For file system benchmarking purposes, we didn’t actually use them on a real flash(as to eliminate the effect of flash driver’s performance) but implementing them on a real flash won’t be very different from the process given in the later sections of this post. So, let’s begin with JFFS2 first: JFFS2 on RTEMS First reference you will see is of testsuites/fstests/jffs2_support/fs_support.c . Configuration here works up to a large extent unless the size of…
GSoC 2018: Final Report
This is the final report of the work done under GSoC’18 with the RTEMS community. I’ll begin with a summary of all the work done during this summer and will then move towards the corresponding code and documentation developed throughout the timeline. Porting SDIO driver to RTEMS and benchmarking Student:- Udit Kumar Agarwal Mentors:- Christian Mauderer, Punit Vara Original proposal link: Here Weekly updates:- https://devel.rtems.org/wiki/GSoC/2018#UditkumarAgarwal Project tickets:- ticket#3429, ticket#3430, ticket#3428 Github Repository:– https://github.com/madaari/GSoC-rtems-18 ABSTRACT RTEMS, being an open-source hard real-time operating system, is already supported by a vast community of developers, hobbyists, and industrialists. With its full application, it…
Benchmarking RTEMS Filesystems using FIO
Hi, In this post we will explore FIO’s RTEMS port and how it can be used to benchmark RTEMS filesystems and drivers. First, let’s have a quick look at all the RTEMS filesystems: RTEMS FILESYSTEMS RTEMS supports mainly two types of filesystems: Network and Physical fs. Benchmarking support for networking filesystems isn’t yet available. However, nearly every other physical filesystem can be benchmarked and contrasted. Heap-based file systems are those which uses malloc() for file allocation. In other words, they reside completely on heap memory. These are mainly used to provide basic directory/file management even if there is no dedicated…
[GSoC Phase-1] Porting FIO to RTEMS
Hi all, This post covers most of my learnings during phase one of GSoC with RTEMS. My main goal of phase 1 was to port an IO benchmark to RTEMS. Towards this, various benchmarks were compared and fio was finalized for the import. FIO is a pretty much widely accepted and highly configurable IO benchmarking tool, which supports a number of large number of different OS and now RTEMS is among one of them. Following were the major considerations i learned while porting a 3rd party user-space tool to RTEMS(I’ll try to generalize as much as possible, but there will…
Comparing IO benchmarks: FIO, IOZONE and BONNIE++
IO benchmarks refer to the computerized test for measuring various properties of an IO device under multiple conditions. Various features include Read/Write speed, IOPS, seek time, etc and various conditions refer to random/sequential reads/writes, block size used by the filesystem, buffer cache size, etc. There are multiple IO benchmarks available online, but the top 3 opensource IO benchmarks, in my view, include FIO, IOZONE, and BONNIE++. There are several pros and cons for each of them, which we will be discussing in this blog post. Fio (Documentation, Repository) FIO is an I/O tool meant to be used both for benchmark and…
Building FreeBSD’s SDIO driver for BeagleBone Black
Hi all, This post mainly concern with building FreeBSD’s SDIO driver for BeagleBone Black by cross compiling it on AMD platform. I had few unresolved issues with the master branch of current FreeBSD tree. So, for this i used another unofficial branch: https://github.com/kibab/freebsd/tree/mmcam-new . It does have the required KERNCONF file with stable SDIO driver. A lot of steps below are similar to the one given on: https://forums.freebsd.org/threads/cross-compiling-beaglebone-on-amd64.64718/#post-384835 with slight but inevitable changes. Procedure: Before proceeding you need to first install git. sudo pkg update -f sudo pkg install git Setup project directory by mkdir /BBB Clone the repository to…
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…
Implementing a MMC/SD/SDIO stack using CAM framework(Part 2)
Hi, In the next part lets look at other files which makes up the SDIO stack within mmccam framework. Please have a look at previous part for more info: https://uditagarwal.in/index.php/2018/03/19/implementing-a-mmc-sd-sdio-stack-using-cam-framework/ mmc_sdio.c +void sdio_fill_mmcio_rw_direct(union ccb *ccb, uint8_t f, uint8_t wr, uint32_t adr, uint8_t *data) { + struct ccb_mmcio *mmcio; + + CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE, + (“sdio_fill_mmcio(f=%d, wr=%d, adr=%02x, data=%02x)\n”, f, wr, adr, (data == NULL ? 0 : *data))); + mmcio = &ccb->mmcio; + + mmcio->cmd.opcode = SD_IO_RW_DIRECT; + mmcio->cmd.arg = SD_IO_RW_FUNC(f) | SD_IO_RW_ADR(adr); + if (wr) + mmcio->cmd.arg |= SD_IO_RW_WR | SD_IO_RW_RAW | SD_IO_RW_DAT(*data); + mmcio->cmd.flags = MMC_RSP_R5 | MMC_CMD_AC; +…