xref: /openbmc/qemu/docs/system/arm/fby35.rst (revision b278b60d)
1Facebook Yosemite v3.5 Platform and CraterLake Server (``fby35``)
2==================================================================
3
4Facebook has a series of multi-node compute server designs named
5Yosemite. The most recent version released was
6`Yosemite v3 <https://www.opencompute.org/documents/ocp-yosemite-v3-platform-design-specification-1v16-pdf>`__.
7
8Yosemite v3.5 is an iteration on this design, and is very similar: there's a
9baseboard with a BMC, and 4 server slots. The new server board design termed
10"CraterLake" includes a Bridge IC (BIC), with room for expansion boards to
11include various compute accelerators (video, inferencing, etc). At the moment,
12only the first server slot's BIC is included.
13
14Yosemite v3.5 is itself a sled which fits into a 40U chassis, and 3 sleds
15can be fit into a chassis. See `here <https://www.opencompute.org/products/423/wiwynn-yosemite-v3-server>`__
16for an example.
17
18In this generation, the BMC is an AST2600 and each BIC is an AST1030. The BMC
19runs `OpenBMC <https://github.com/facebook/openbmc>`__, and the BIC runs
20`OpenBIC <https://github.com/facebook/openbic>`__.
21
22Firmware images can be retrieved from the Github releases or built from the
23source code, see the README's for instructions on that. This image uses the
24"fby35" machine recipe from OpenBMC, and the "yv35-cl" target from OpenBIC.
25Some reference images can also be found here:
26
27.. code-block:: bash
28
29    $ wget https://github.com/facebook/openbmc/releases/download/openbmc-e2294ff5d31d/fby35.mtd
30    $ wget https://github.com/peterdelevoryas/OpenBIC/releases/download/oby35-cl-2022.13.01/Y35BCL.elf
31
32Since this machine has multiple SoC's, each with their own serial console, the
33recommended way to run it is to allocate a pseudoterminal for each serial
34console and let the monitor use stdio. Also, starting in a paused state is
35useful because it allows you to attach to the pseudoterminals before the boot
36process starts.
37
38.. code-block:: bash
39
40    $ qemu-system-arm -machine fby35 \
41        -drive file=fby35.mtd,format=raw,if=mtd \
42        -device loader,file=Y35BCL.elf,addr=0,cpu-num=2 \
43        -serial pty -serial pty -serial mon:stdio \
44        -display none -S
45    $ screen /dev/tty0 # In a separate TMUX pane, terminal window, etc.
46    $ screen /dev/tty1
47    $ (qemu) c		   # Start the boot process once screen is setup.
48