Skip to content

[Nexthop] Add new ast2600-based target nexthopbmc#266

Open
nate-nexthop wants to merge 6 commits into
facebook:heliumfrom
nexthop-ai:nate.nexthopbmc-init
Open

[Nexthop] Add new ast2600-based target nexthopbmc#266
nate-nexthop wants to merge 6 commits into
facebook:heliumfrom
nexthop-ai:nate.nexthopbmc-init

Conversation

@nate-nexthop

Copy link
Copy Markdown

Description

Add support for a new BMC system, nexthopbmc. Run the new-fblite.py script, then fix the build. Add in support for the correct UARTs for this platform. Fix the RGMII timing for the ASPEED mac4 which is used here.

Motivation

Need to have nexthopbmc be a supported platform in OpenBMC.

Test Plan

bitbake nexthopbmc-image completes locally.
Running the image on real hardware, we can see the u-boot output, then the kernel output as it boots up.

  1. "bitbake nexthopbmc-image" succeeded.
  2. booted up nexthopbmc-image on physical hardware:
    • "u-boot" loads and hands off control to kernel successfully.
U-Boot 2019.04 nexthopbmc-4ea50441f8-dirty (Oct 03 2025 - 19:24:25 +0000)

SOC: AST2620-A3
RST: Power On
FMC 2nd Boot (ABR): Enable, Dual flashes, Source: Primary
eSPI Mode: SIO:Enable : SuperIO-2e
Eth: MAC0: RMII/NCSI, MAC1: RMII/NCSI, MAC2: RMII/NCSI, MAC3: RMII/NCSI
Model: Aspeed BMC
DRAM:  1.8 GiB (capacity:2048 MiB, VGA:0 MiB, ECC:on, ECC size:1820 MiB)
Watchdog: 1200s
MMC:   emmc_slot0@100: 0
Loading Environment from SPI Flash... SF: Detected w25q01jv with page size 256 Bytes, erase size 64 KiB, total 128 MiB
*** Warning - bad CRC, using default environment

Saving Environment to SPI Flash... SF: Detected w25q01jv with page size 256 Bytes, erase size 64 KiB, total 128 MiB
Erasing SPI flash...Writing to SPI flash...done
OK
In:    serial
Out:   serial
Err:   serial
Model: Aspeed BMC
Net:   No MDIO found.

Warning: ftgmac@1e690000 (eth0) using random MAC address - 22:24:a5:e9:2a:16
eth0: ftgmac@1e690000
autoboot in 3 seconds (stop with 'Delete' key)... 
<snip>
   Booting using the fdt blob at 0x21f36408
   Loading Kernel Image ... OK
   Loading Ramdisk to 9e5c1000, end 9ffff604 ... OK
   Loading Device Tree to 8fff2000, end 8ffffa24 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0xf00
[    0.000000] Linux version 6.12.55-nexthopbmc-ge9eab0b071ef (oe-user@oe-host) (arm-fb-linux-gnueabi-gcc (GCC) 15.2.0, GNU ld (GNU Binutils) 2.46) #1 SMP Thu Oct 23 23:41:05 UTC 2025
  • Linux kernel boots up successfully.
[  OK  ] Started Process Core Dump (PID 390/UID 0).
[  OK  ] Finished Set up DHCP vendor options.
[  OK  ] Reached target Preparation for Network.
         Starting Network Management...
[  OK  ] Started    57.797288] ftgmac100 1e690000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
1;39mNetwork Management.

OpenBMC Release nexthopbmc-4ea50441f8-dirty

bmc login: root
Password:
root@bmc:~# cat /etc/os-release
ID=openbmc-fb-master
NAME="Facebook OpenBMC Open Source"
VERSION="nexthopbmc-4ea50441f8-dirty (master)"
VERSION_ID=nexthopbmc-4ea50441f8-dirty
VERSION_CODENAME="master"
PRETTY_NAME="Facebook OpenBMC nexthopbmc-4ea50441f8-dirty (master)"
CPE_NAME="cpe:/o:openembedded:openbmc-fb-master:nexthopbmc-4ea50441f8-dirty"
  • BMC "eth0" is functional (with random MAC address) after boot up.
root@bmc:~# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 22:24:a5:e9:2a:16 brd ff:ff:ff:ff:ff:ff
    inet 192.168.68.159/24 metric 1024 brd 192.168.68.255 scope global dynamic eth0
       valid_lft 43169sec preferred_lft 43169sec
    inet6 fdec:496d:1654::b21/128 scope global dynamic noprefixroute
       valid_lft 43168sec preferred_lft 43168sec
    inet6 fdec:496d:1654:0:2024:a5ff:fee9:2a16/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 5368sec preferred_lft 2668sec
    inet6 fe80::2024:a5ff:fee9:2a16/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
  • Flash "data0" partition is mounted under /mnt/data as UBIFS.
root@bmc:~# mount | grep ubi
/dev/ubi0_0 on /mnt/data type ubifs (rw,relatime,sync,compr=zstd,assert=read-only,ubi=0,vol=0)

Summary:

The patch adds the initial machine layer of the BMC-Lite FBOSS OpenBMC
platform nexthopbmc.

DO NOT EDIT: THE PATCH IS GENERATED BY AUTOMATION TOOLS.

Test Plan:

1) "bitbake nexthopbmc-image" succeeded.
2) booted up nexthopbmc-image on physical hardware:
   - "u-boot" loads and hands off control to kernel successfully.
   - Linux kernel boots up successfully.
   - BMC "eth0" is functional (with random MAC address) after boot up.
   - Flash "data0" partition is mounted under /mnt/data as UBIFS.
Test plan:

bitbake nexthopbmc-image completes successfully.

Signed-off-by: Nate White <nate@nexthop.ai>
Add eeprom.json to fix the build and describe the IDPROMs in the system

Signed-off-by: Nate White <nate@nexthop.ai>
nexthopbmc has the console port on UART5 which is ttyS4 rather than
uart1 which is ttyS0 as the reference layer assumes. With this change,
the console port works correctly.

Signed-off-by: Nate White <nate@nexthop.ai>
The COME is connected to ASPEED UART3 which is ttyS2 in Linux, update
the device tree to enable this port and fix mTerm config to use it.

Signed-off-by: Nate White <nate@nexthop.ai>
For eth0 on nexthopbmc which is using mac3 with an RGMII connection, we
need to ensure the default RX and TX delay for 1000 Mbps is set to 0,
this requires programming 0x1a into the mac3-clk-delay entry for 1000
Mbps. 100 and 10 Mbps entries are provided as the device tree node takes
6 entries, but those link modes will never be used so it doesn't matter.

Signed-off-by: Nate White <nate@nexthop.ai>
@meta-cla meta-cla Bot added the CLA Signed label Jun 2, 2026
@meta-codesync

meta-codesync Bot commented Jun 2, 2026

Copy link
Copy Markdown

This pull request has been imported. If you are a Meta employee, you can view this in D107271032. (Because this pull request was imported automatically, there will not be any future comments.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant