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-chiplets/237/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