Showing posts with label arm-softfloat-linux-gnueabi. Show all posts
Showing posts with label arm-softfloat-linux-gnueabi. Show all posts

20090410

Two Bits

Well, I've finally done it. I've been working for a few months now on porting Linux to a new device. Do you know what it came down to in the end?

Two bits in a 32-bit number.

That's it. There were times when I became quite a hermit working on this device. People would look at me like I was crazy sometimes. I had to open it the case and solder a few connections on. At the very beginning I was probing pcb pads to find the right traces. I hooked it up to a scope, put together a few voltage-level shifter circuits. I designed and fabricated a breakout board for easier access to some really small traces.

Just when I thought that I was destined to lose my grip on reality, I was greeted by what seemed to be some ascii characters on the oscilloscope. Then, with a bit more tinkering, at a point in time that seemed to be more precious than diamonds, as my eyes started to well up a little bit, I saw the following message on my console:
Linux version 2.6.29 (cfriedt@localhost) (gcc version 4.1.2 (Gentoo 4.1.2 p1.1)) #5 Fri Apr 10 18:16:27 CEST 2009
CPU: XScale-PXA270 [69054117] revision 7 (ARMv5TE), cr=0000397f
...

The device itself will remain unnamed .... for now ...

20080915

TS-7800: Linux RAID NAS for the Home User?

Update-20100328: Seeing as how Marvell are essentially the only ARM licensees who have gigabit ethernet technology, this device would decidedly make a really cool control board for the USRP2 from Ettus Research, Inc. Luckily, I've been doing some hacking with libusrp2 lately ;-)

I've had my TS-7800 for quite some time now, and I haven't really done anything fantastic with it yet, although, my original plans were to use it quite suitably as a NAS. The TS-7800 uses the Marvell Feroceon MV88F5182 CPU, and while lacking vector floating point (VFP) support, it is perfect for use as a storage controller.

This would be used by Erin & myself for fault-tolerant storage of important data.

Now, when I say fault-tolerant, I'm speaking of a redundant array of inexpensive disks (RAID). The TS-7800 does not come with a hardware RAID controller, as they are very expensive and usually only found in bulky server equipment, but any linux appliance is perfectly capable of acting as a software RAID controller.

The TS-7800 only supports two SATA connected drives, which means that if I only include these two devices in my software RAID configuration, the RAID level is limited to RAID 0 ("striping", improves speed, no redundant storage), or RAID 1 ("mirroring", data redundancy, slight speed overhead). Of course, I would choose the second option to have our data stored reliably. In that case, my capacity would be half of the total disk capacity.

If I were only including two SATA connected drives in my configuration, my RAID configuration would be limited. However, if I chose to make use of more devices connected via the TS-7800's USB ports, then I could have a RAID 5 configuration (striped, with parity). Just like a RAID 1 configuration, no data is lost if one disk is damaged. Unlike the RAID 1 configuration, rebuilding the damaged disk means more than simply copying the information from the other disk. Furthermore, if I implemented this and mixed SATA / USB disks, then there would surely be a performance hit when reading from / writing to a USB disk, which would slow down the array as a whole since operations would be striped across all disks in a RAID 5 configuration. RAID 5 also performs poorly in software when small files are being repeatedly updated because of the parity calculation requirement.

I think, in the end, I'll choose to use two 500 GB SATA disks, 3.5" in size just because the price is so relatively low, such as these, and start off with a simple RAID 1 configuration. Later on, if I feel the need to upgrade the capacity of the disks, or the raid array itself, I can hopefully buy some more similar disks and connect two more via USB, in spite of the slowdown that it might cause.