DroboFS hardware - droboports/droboports.github.io GitHub Wiki
This page is just a scrapbook of notes from my dissections of the DroboFS. The content can be changed/removed without notice.
Hardware
The best disassembly of the FS I could find on the web is on a chinese website. There I found the best picture so far of the motherboard. With a little help from Google Translate, this is what I gathered:
- CPU: Marvell MV78200-A1 product family page, data sheet. This is a dual-core ARMv5TE processor (more specifically, an ARM926EJ-S). It runs at 800 MHz.
- Memory: Hynix H5PS1G63EFR-S5C product page, data sheet. Those are DDR2-667, 1 Gb modules, the FS has four of them.
- Network: Marvell 88E1116R-NNC1 product page, data sheet. This chip is able to drive up to 4 gigabit ports.
- Disk controller: Marvell 88SX7042-BDU1. PCI-e supporting SATA-II.
- Flash memory: Spansion S29GL512P11TFI01 product family page, data sheet. This is a 512 Mbit chip, i.e., 64 MB.
Overall design
The MV78200 is a dual-core processor, but not in the desktop PC sense. Each CPU operates completely independent from each other, and can only communicate through specifically defined shared memory areas. In other words, the FS cannot use both cores for the same OS. The FS uses the two cores in the following way: one core is used to implement the BeyondRAID algorithm, and runs VxWorks; the other core runs Linux, and provides all the higher level services and apps (Samba, AFP, NFS, DroboApps, etc). This design is confirmed by the output of [DroboFS_dmesg dmesg] and the serial consoles output.
Motherboard
# cat /proc/board_type
DB-MV78200-A-BP
CPU
# cat /proc/cpuinfo
Processor : ARM926EJ-S rev 0 (v5l)
BogoMIPS : 799.53
Features : swp half thumb fastmult vfp edsp
CPU implementer : 0x41
CPU architecture: 5TE
CPU variant : 0x1
CPU part : 0x926
CPU revision : 0
Cache type : write-back
Cache clean : cp15 c7 ops
Cache lockdown : format C
Cache format : Harvard
I size : 32768
I assoc : 4
I line length : 32
I sets : 256
D size : 32768
D assoc : 4
D line length : 32
D sets : 256
Hardware : Feroceon-MV78XX0
Revision : 0000
Serial : 0000000000000000
Memory
# cat /proc/meminfo
MemTotal: 189028 kB
MemFree: 7020 kB
Buffers: 11068 kB
Cached: 68692 kB
SwapCached: 0 kB
Active: 129352 kB
Inactive: 38780 kB
SwapTotal: 262136 kB
SwapFree: 262104 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 88404 kB
Mapped: 16016 kB
Slab: 9044 kB
SReclaimable: 3712 kB
SUnreclaim: 5332 kB
PageTables: 936 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 356648 kB
Committed_AS: 228748 kB
VmallocTotal: 647168 kB
VmallocUsed: 239152 kB
VmallocChunk: 376828 kB
# cat /proc/swaps
Filename Type Size Used Priority
/mnt/DroboFS/swapfile file 262136 32 -1
Serial consoles
There are two serial consoles. One for the vxWorks core, one for the Linux core. Both are TTL (i.e., 3.3V), and run at 115200 baud.
The vxWorks console is labeled J4
on the motherboard. The Linux console is labeled J5
. They are side-by-side, close to the lower right edge of the board when looking at the CPU side with the LEDs on the right. The pinout is [Vcc|Rx|Tx|Gnd], i.e., ground is the right-most pin.