platforms: Add fuji platform Add platform code for fuji Power11 system, derived from rainier platform with few differences. Fuji's probing is slightly different from rainier platform's probe, as fuji skips rainier_pau_create_i2c_bus, which used to create i2cm nodes for rainier. 'rainier_pau_create_i2c_bus' job is to create i2cm@a1000 nodes if they are missing from device tree. But for Fuji, hostboot already passes i2cm@a2000 nodes, so no need to create duplicate nodes, hence skip rainier_pau_create_i2c_bus Fuji's init is also slightly different from rainier init, we don't do 'rainier_init_slot_power' like done for rainier, as even with the generic code path of astbmc_init, the slot's are powering up and able to use successfully, so did not need rainier_init_slot_power Signed-off-by: Aditya Gupta <adityag@linux.ibm.com> [arbab@linux.ibm.com: Fixed up copyright line] Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
diff --git a/platforms/astbmc/Makefile.inc b/platforms/astbmc/Makefile.inc index 1cdf37f..81aad21 100644 --- a/platforms/astbmc/Makefile.inc +++ b/platforms/astbmc/Makefile.inc
@@ -4,7 +4,7 @@ witherspoon.o zaius.o romulus.o p9dsu.o \ nicole.o mihawk.o mowgli.o \ talos.o blackbird.o \ - swift.o rainier.o + swift.o rainier.o fuji.o ifeq ($(CONFIG_P8),1) ASTBMC_OBJS += palmetto.o habanero.o firestone.o \
diff --git a/platforms/astbmc/fuji.c b/platforms/astbmc/fuji.c new file mode 100644 index 0000000..ece03a9 --- /dev/null +++ b/platforms/astbmc/fuji.c
@@ -0,0 +1,38 @@ +// SPDX-License-Identifier: Apache-2.0 +/* + * Copyright (c) 2026 IBM Corp. + */ + +#include <skiboot.h> +#include <stdbool.h> + +#include "astbmc.h" +#include "device.h" +#include "ipmi.h" + +static bool fuji_probe(void) +{ + if (!dt_node_is_compatible(dt_root, "ibm,fuji")) + return false; + + astbmc_early_init(); + + /* Setup UART for use by OPAL (Linux hvc) */ + uart_set_console_policy(UART_CONSOLE_OPAL); + + return true; +} + +DECLARE_PLATFORM(fuji) = { + .name = "Fuji", + .probe = fuji_probe, + .init = astbmc_init, + .start_preload_resource = flash_start_preload_resource, + .resource_loaded = flash_resource_loaded, + .bmc = &bmc_plat_ast2600_openbmc, + .cec_power_down = astbmc_ipmi_power_down, + .cec_reboot = astbmc_ipmi_reboot, + .elog_commit = ipmi_elog_commit, + .exit = astbmc_exit, + .terminate = ipmi_terminate, +};