Disclaimer: the information provided on this page is given as is, i.e. without warranty that you will not break your system following it. Additionally, do not expect to get support and warranty from NETGEAR if this happens.
After my work on the Duo v2
On the contrary to the Duo v2 which is based on a Marvell Kirkwood SoC (88F6282 single core ARMv5TE @1.6GHz) and the RN102 and RN104 which are both based on the Marvell Armada 370 SoC (single core ARMv7 @1.2GHz), the ReadyNAS 2120 is based on the Marvell Armada XP (MV78230 dual core ARMv7 @1.2GHz). Nonetheless, it shares some hardware with its little brothers:
- RTC and Alarm chip is an ISL 12057
- Fans (3 40x40 instead of a single 92mmx92mm) are protechnic ones
- Those are connected to three GMT G762 fan controllers
- USB 3.0 Controller is a Fresco Logic FL1009
but also has
- 2 GbE interfaces (similar to RN104, instead of 1 on RN102 and Duo v2)
- 4 SATA bays (using 2 Marvell 88SE9170 SATA controllers)
- A dedicated Digital temperature sensor and Thermal watchdog (GMT G751)
Here is the main table of contents for the page, with links to the various sections of the page.
- Changelog for this page
- Work in progress, i.e. TODO list
- Hardware specs
- Configuring alarm for poweroff and automatic reboot
- Configuring custom actions for buttons
Changelog i.e. work done
- June 2015: I found some time to document how alarm support can be used for poweroff and automatic poweron of the device. See the alarm section for details on how to Configure alarm for poweroff and automatic reboot.
- February 2015: I finally managed to have alarm support patches for ReadyNAS RN102, RN202 and RN2120 using the ISL12057 RTC chip accepted in upstream kernel v4.0 (1a67e256dbd8, 298ff0122ab1, fd71493d6797). This allows you to very simply install an alarm time, power off your NAS and see it reboot at the programmed value. cron being your friend, you can very simply program different behaviours for each day of the week.
- January 2014: After a lot of struggle due to an inactive RTC maintainer, Support for Intersil ISL12057 I2C RTC chip has been accepted usptream and will be available in 3.14 kernel. Alarm support is still missing though, i.e. you will not be able to wake-up the NAS with a mainline kernel at the moment.
- December 2014: RN2120 .dts file is now sitting in Jason Cooper's tree (mvebu maintainer), and will be available in v3.14 kernel.
- November 2013: RN2120 received. First disassembly. Initial working .dts file written. Created this page. DTS pushed to linux kernel maintainers for integration in 3.14 kernel.
Work in progress, i.e. TODO list
- Add nodes for NAND controller when support gets available upstream
- Push ISL 12057 RTC and alarm chip driver upstream
- Add GPIO regulators nodes to control SATA disk poweron/off based on presence.
Describe SPI flash purpose
Write GMT G751 digital temperature driver and push it upstream
Finish and submit initial .dts file
This section is dedicated to the hardware specs of the NETGEAR ReadyNAS 2120. It is based on visual inspection of RN2120 main board (and LED/daughter board), completed with reading of NETGEAR 3.0.48 kernel sources and publicly available (read Google-gathered) information .
When available, additional information and software handling details are given for each hardware part. For instance, if you are looking for informations related to the fan controller, simply click the link above to get the details of what is used and how support is provided.
Each picture available on this page is a thumbnail of a larger picture. The larger one can be accessed by clicking the thumbnail.
If you are in a hurry looking for a specific info, you can use this table of contents to directly access information on a specific hardware part of the system or get an overview of what a NETGEAR ReadyNAS 2120 is made of.
- Marvell ARMADA XP mv78230 - Dual core @1.2GHz
- 2GB MB RAM via 2x1G Hynix DDR3 @1333Mhz
- CR2032 Battery
- Fresco Logic FL1009 USB3.0/xHCI host controller
- GMT G751 Temperature sensor and thermal watchdog
- GMT G762 PWM Fan Controller
- Intersil ISL12057 I2C RTC/Alarm
- Front buttons/LED daughter board
- Marvell 88E1318 GbE PHY
- Four SATA disks front LEDs
- Marvell 88E9170 SATA Controller
- Macronix 25L4006E 4Mbit SPI Flash
- Marvell SoC 88F6282 ARMv5TE @1.6Ghz
- 128MB SKHynix H27U1G8F2BTR NAND
Marvell Armada XP mv78230 - Dual core @1.GHz
Unlike its little brothers, the ReadyNAS 2120 is powered by a Marvell Armada XP mv 78230 SoC. This Armada XP flavour is a dual core running @1.2GHz. The SoC block diagram extracted from the product brief is reproduced below:
Also extracted from the datasheet is a
Hynix H5TQ2G83DFR_H9C 2GB RAM
The RN2120 comes with 2GB of soldered RAM, more specifically four Hynix H5TQ2G83DFR_H9C modules, as depicted below:
Here is a closer look at one of the Hynix chip:
The RTC chip (Intersil ISL12057) is powered via a CR2032 battery, which is this time stored vertically.
Fresco Logic FL1009 XHCI Controller
The two USB 3.0 rear ports are connected to a Fresco Logic FL1009 XHCI controller. The controller is connected to the PCIe bus of Marvell Armada XP SoC.
GMT G751 Temperature Sensor and thermal watchdog
The RN2120 includes a GMT G751 Temperature sensor. It is connected on the I2C bus. The chip datasheet is identical to the one of the National Semiconductor LM75 chip. Both datasheets are provided here and here if you want to look for differences. Anyway, after a first submission of a complete driver for the G751, I ended only pushing changes to LM75 driver. In the end, G751 support will be in kernel 3.14.
GMT G762 Fan controller
The RN2120 includes 3 fans. Each of those is driven via a dedicated G762 fan controller connected to the I2C bus. This device was already on Duo v2, RN102 and RN104. I pushed support upstream a while ago now; it is fully supported.
Intersil ISL12057 RTC chip
As the RN102 and RN104, the RN2120 includes an Intersil ISL12057 RTC chip. It is connected on I2C bus. At time of writing, it is still not in upstream kernel, even though I have written and submitted a driver for it. The main reason it was not accepted is due to the fact that I am unable to test the IRQ handling part associated with the alarm, as the IRQ line of the chip is not connected to the SoC but to a power component of the NAS, in order to power it on when alarm rings.
Front button/LED daughter board
On the front of the NAS, from left to right, are a USB 2.0 port, the reset button, 4 LEDs (system error, ethernet interfaces status and activity) and the power button. Only the system error LED can be controlled from userland via the corresponding GPIO. The other ones are not connected to the SoC and provide their function w/o any outside interactions. The 2 buttons are connected to GPIO lines on the SoC, so that they can generate input events.
Marvell 88E1318 GbE PHY
The two GbE PHY connected to the SoC are Marvell 88E1318:
Four SATA disks front LEDs
At the bottom on the right of each disk tray is a red error LED. In practice, the associated LED is in fact located on the motherboard and the light is relayed via a guide/conduit. The LEDs are only available when a disk is present, and can be controlled via the usual GPIO interface, i.e. they are connected to GPIO lines of the SoC.
Marvell 88SE9170 SATA Controller
The ReadyNAS 2120 includes two Marvell 88SE9170 SATA Controllers. They each handle two of the four disks the device can host. Each of those chips are connected on the PCIe bus. One of the chip is depicted below.
Note that each controller gets its configuration from a SPI flash, described below.
If you wonder, the two eSATA ports at the rear of the device are provided by the two SATA ports of the SoC.
Macronix 25L4006E 4Mbit SPI Flash
The device has 2 Macronix 25L4006E 4Mbit SPI Flash. Each of those is directly connected to one of the Marvell 88SE9170 SATA Controller. It holds the controller configuration. The flash is not accessible from the SoC, i.e. its content cannot be read or modified.
Protechnic MGT4012XB-O20 40mmx40mm fans
Unlike all othe ReadyNAS model which inclde a single 92mmx92mm fan, the thickness of the RN2120 has made NETGEAR switch to 40mmx40mm fans. They put three of them in the device, each of those been controlled by a dedicated G762 fan controller. Thes Protechnic MGT4012XB-O20 fans have a macimum speed rotation of 8000RPM.
Here are a closer look at the fan:
And a view of the three, connected to their fan controllers:
128MB SKhynix H27U1G8F2BTR_BC NAND
The system boots on a 128 MB NAND. It finds there its u-boot and associated environment. This flash is also used to host the kernel image (uImage) and an uInitramfs or a rootfs.
Configuring custom actions for buttons
If you want to trigger custom actions using the power, backup and reset buttons, you can probably use this script as a basis.
Configuring alarm for poweroff and automatic reboot
Alarm IRQ pin (IRQ#2) of ISL12057 RTC chip is not directly connected to the SoC on RN102, RN104 and RN2120, but to a PMIC (TPS65251), handling powering of the device. The PMIC does not provide a way to report the status of the IRQ#2 pin. This is not a common design pattern on Linux and requires some specific kernel adaptation. This is the reason why alarm support (1a67e256dbd8, 298ff0122ab1, fd71493d6797) for those NAS took a bit longer than expected. If you are interested by the details, the commit messages and the code provides more information.
As also documented in alarm support commits, using the alarm feature now available on the device is very simple. Here is a straightforward example of how this can be done:
# echo `date '+%s' -d '+ 1 minutes'` > /sys/class/rtc/rtc0/wakealarm # shutdown -h now
After having configured the alarm one minute in the future, and then having powered off the system, you should see it come back to life after a minute. Now, if you want to poweroff the device each night and have it come back say in the morning or in the afternoon, you simply need to create a crontab. This is left as an exercise for the reader.