Online.net new offer featuring ARMv7 based servers [LONG]

Ollivier Robert roberto at keltia.freenix.fr
Tue Oct 14 20:52:14 UTC 2014


[not subscribed to -embedded please keep in Cc]

Hello,

My main hosting company here in France (online.net) just started a new "cloud" offer, based on ARMv7 machines.  They are running Marvell Armada XP SOC with 4 cores (MV78460).  They are currently supporting only Ubuntu & Gentoo on these machines so I have offered to see how hard it would be to put FreeBSD there.

I have access to the support forums and have found a small thread about BSD support with things line that:

-=-=-
Concerning the support of other OSs there are two BSDs (net & free) that have partial support of the SoC. Booting on the SoC might be possible at the moment, but there are some features that are still missing to have network.

The design of the hardware requires support of integrated GiE interface and MDIO bus support/PHY Emulation (called fixed-phy in linux) to be able to have network. Also an equivalent of a linux "device tree" description has to be created.

Related information :
- http://blog.netbsd.org/tnf/entry/support_for_marvell_armada_xp
- https://www.freebsd.org/news/status/report-2011-10-2011-12.html#FreeBSD/arm-on-Marvell-Armada-XP
- https://origin-www.marvell.com/embedded-processors/armada-xp/1 (MV78460)
-=-=-

and this

-=-=-
We only support the linux kernel for now
If you have any recommendations/links about running BSD on custom hardware with arm architecture, your help will be greatly appreciated

Today, you can only boot your instance using NBD, but you can imagine to:
- boot a linux server on a NBD volume
- install a NFS/iSCSI/Samba/S3/TFTP server
- export a volume/disk/...
- (bonus: you can do raid, encryption, compression)
- boot a new server on the exported NFS/iSCSI root volume

It is unoptimized, and gives you constraints (i.e. to have the ISCSI host's ip in your boot cmdline) to boot your new servers, but it lets you bypass current limitations

We are currently focused on getting a solution for the most common needs: recent kernel, working modules, standard public distributions; But we are also interested about other needs and appreciate help from experts
-=-=-

A few other things I gathered:

- We do not have I believe any "nbd" driver (apparently what goes as "disks" around here).
- they use uboot for booting
- they want to know whether we have an equivalent to "initrd" which is IIRC the ramdisk-based boot linux has.  They use initrd to mount volumes from the nas (and IP/port change with each reboot).
- console is through a 9000 bauds serial port

More detailed information there:
http://philippe.lewin.me/2014/10/14/benchs-specs-online-cloud-preview/

Prices are not yet fixed and they will not start charging till 2 or 3 weeks.  Even then, there might be some possibilities that I could keep some machines for free (I'll see about that).

In any case, I can get a few of these machines and make them available to anyone interested and server as intermediary.

Anyone?

They have sent me by mail one of the files (so called c1.dts) (see below)

c1.dts (headers in https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts?id=refs/tags
/v3.17).

-=-=-
/*
 * Device Tree file for Marvell Armada XP evaluation board
 * (DB-78460-BP)
 *
 * Copyright (C) 2012 Marvell
 *
 * Lior Amsalem <alior at marvell.com>
 * Gregory CLEMENT <gregory.clement at free-electrons.com>
 * Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
 *
 * This file is licensed under the terms of the GNU General Public
 * License version 2.  This program is licensed "as is" without any
 * warranty of any kind, whether express or implied.
 */

/dts-v1/;
#include "armada-xp-mv78460.dtsi"

/ {
	model = "C1 Online Computing";
	compatible = "marvell,axp-db", "marvell,armadaxp-mv78460", "marvell,armadaxp", "marvell,armada-370-xp";

	chosen {
		bootargs = "console=ttyS0,9600 earlyprintk";
	};

	memory {
		device_type = "memory";
		reg = <0 0x00000000 0 0x80000000>; /* 2 GB */
	};

	soc {
		ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000
			  MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
			  MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000>;

		devbus-bootcs {
			status = "okay";

			/* Device Bus parameters are required */

			/* Read parameters */
			devbus,bus-width    = <16>;
			devbus,turn-off-ps  = <60000>;
			devbus,badr-skew-ps = <0>;
			devbus,acc-first-ps = <124000>;
			devbus,acc-next-ps  = <248000>;
			devbus,rd-setup-ps  = <0>;
			devbus,rd-hold-ps   = <0>;

			/* Write parameters */
			devbus,sync-enable = <0>;
			devbus,wr-high-ps  = <60000>;
			devbus,wr-low-ps   = <60000>;
			devbus,ale-wr-ps   = <60000>;

		};

		internal-regs {
			uart0: serial at 12000 {
				status = "okay";
			};

			eth0: ethernet at 70000 {
				status = "okay";
				fixed-link = <1 1 1000 0 0>;
				phy-mode = "sgmii";
			};

			mvsdio at d4000 {
				pinctrl-0 = <&sdio_pins>;
				pinctrl-names = "default";
				status = "okay";
				/* No CD or WP GPIOs */
				broken-cd;
			};

		};
	};
	aliases {
		ethernet0 = &eth0;
		serial0 = &uart0;
	};
};-=-=-


-- 
Ollivier ROBERT -=- FreeBSD: The Power to Serve! -=- roberto at keltia.freenix.fr
In memoriam to Ondine : http://ondine.keltia.net/


More information about the freebsd-arm mailing list