Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Oct 2014 23:44:11 +0200
From:      Zbigniew Bodek <zbb@freebsd.org>
To:        Ollivier Robert <roberto@keltia.freenix.fr>
Cc:        "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>, "freebsd-embedded@freebsd.org" <freebsd-embedded@freebsd.org>
Subject:   Re: Online.net new offer featuring ARMv7 based servers [LONG]
Message-ID:  <CALF_TxntWYSRi95A4TWBNh3jPuz3PkESrD1E1q6%2B63WAdBgRzA@mail.gmail.com>
In-Reply-To: <20141014205203.GA78703@lonrach.local>
References:  <20141014205203.GA78703@lonrach.local>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello Ollivier,

There is a working support for Armada XP in FreeBSD.
You can boot the DB board in SMP although (afaik) there may be some
problems with SMP on GP boards with different u-boot versions.
Kernel works stable but the peripheral interfaces support and
power-management looks poor in comparison to Linux (also we have no
LPAE support for ARM so no more than ~4GB of memory).
Most common interfaces like SATA, USB or PCIe work OK but as you wrote
- there is no networking support.
Networking interface works on NetBSD, however I have no idea how
efficient is it there. AXP's network is not exactly the simplest one
so even with NBSD reference I don't expect it to be a trivial
copy-paste port to FreeBSD.

Also, there is FDT support in FreeBSD but the DTS file is different
for FreeBSD and Linux (you can check out
sys/boot/fdt/dts/arm/db78460.dts). In theory Linux DTS file will not
work with our kernel but with very little work one can tune FreeBSD's
DTS as desired (I know that this isn't exactly how FDT should work
since DTS is supposed to be OS-independent).

I hope that you find these information useful. Please notice that AXP
has received much more effort and engineering work on Linux than on
FreeBSD so someone would need to focus on FreeBSD now to reduce the
distance between those two.

Best regards
zbb

2014-10-14 22:52 GMT+02:00 Ollivier Robert <roberto@keltia.freenix.fr>:
> [not subscribed to -embedded please keep in Cc]
>
> Hello,
>
> My main hosting company here in France (online.net) just started a new "c=
loud" offer, based on ARMv7 machines.  They are running Marvell Armada XP S=
OC with 4 cores (MV78460).  They are currently supporting only Ubuntu & Gen=
too 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 B=
SD support with things line that:
>
> -=3D-=3D-
> 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 th=
e moment, but there are some features that are still missing to have networ=
k.
>
> The design of the hardware requires support of integrated GiE interface a=
nd 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=
)
> -=3D-=3D-
>
> and this
>
> -=3D-=3D-
> We only support the linux kernel for now
> If you have any recommendations/links about running BSD on custom hardwar=
e 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 bypas=
s 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
> -=3D-=3D-
>
> A few other things I gathered:
>
> - We do not have I believe any "nbd" driver (apparently what goes as "dis=
ks" around here).
> - they use uboot for booting
> - they want to know whether we have an equivalent to "initrd" which is II=
RC 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 wee=
ks.  Even then, there might be some possibilities that I could keep some ma=
chines 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=3Drefs/tags
> /v3.17).
>
> -=3D-=3D-
> /*
>  * Device Tree file for Marvell Armada XP evaluation board
>  * (DB-78460-BP)
>  *
>  * Copyright (C) 2012 Marvell
>  *
>  * Lior Amsalem <alior@marvell.com>
>  * Gregory CLEMENT <gregory.clement@free-electrons.com>
>  * Thomas Petazzoni <thomas.petazzoni@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 =3D "C1 Online Computing";
>         compatible =3D "marvell,axp-db", "marvell,armadaxp-mv78460", "mar=
vell,armadaxp", "marvell,armada-370-xp";
>
>         chosen {
>                 bootargs =3D "console=3DttyS0,9600 earlyprintk";
>         };
>
>         memory {
>                 device_type =3D "memory";
>                 reg =3D <0 0x00000000 0 0x80000000>; /* 2 GB */
>         };
>
>         soc {
>                 ranges =3D <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 =3D "okay";
>
>                         /* Device Bus parameters are required */
>
>                         /* Read parameters */
>                         devbus,bus-width    =3D <16>;
>                         devbus,turn-off-ps  =3D <60000>;
>                         devbus,badr-skew-ps =3D <0>;
>                         devbus,acc-first-ps =3D <124000>;
>                         devbus,acc-next-ps  =3D <248000>;
>                         devbus,rd-setup-ps  =3D <0>;
>                         devbus,rd-hold-ps   =3D <0>;
>
>                         /* Write parameters */
>                         devbus,sync-enable =3D <0>;
>                         devbus,wr-high-ps  =3D <60000>;
>                         devbus,wr-low-ps   =3D <60000>;
>                         devbus,ale-wr-ps   =3D <60000>;
>
>                 };
>
>                 internal-regs {
>                         uart0: serial@12000 {
>                                 status =3D "okay";
>                         };
>
>                         eth0: ethernet@70000 {
>                                 status =3D "okay";
>                                 fixed-link =3D <1 1 1000 0 0>;
>                                 phy-mode =3D "sgmii";
>                         };
>
>                         mvsdio@d4000 {
>                                 pinctrl-0 =3D <&sdio_pins>;
>                                 pinctrl-names =3D "default";
>                                 status =3D "okay";
>                                 /* No CD or WP GPIOs */
>                                 broken-cd;
>                         };
>
>                 };
>         };
>         aliases {
>                 ethernet0 =3D &eth0;
>                 serial0 =3D &uart0;
>         };
> };-=3D-=3D-
>
>
> --
> Ollivier ROBERT -=3D- FreeBSD: The Power to Serve! -=3D- roberto@keltia.f=
reenix.fr
> In memoriam to Ondine : http://ondine.keltia.net/
> _______________________________________________
> freebsd-embedded@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-embedded
> To unsubscribe, send any mail to "freebsd-embedded-unsubscribe@freebsd.or=
g"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALF_TxntWYSRi95A4TWBNh3jPuz3PkESrD1E1q6%2B63WAdBgRzA>