blob: 8a1e1f6385e6867e4770d598aaf9ead51de3b57f [file] [log] [blame]
// Copyright 2023 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <fidl/fuchsia.sysinfo/cpp/wire.h>
#include <lib/component/incoming/cpp/protocol.h>
#include "zircon/system/utest/device-enumeration/common.h"
namespace {
TEST_F(DeviceEnumerationTest, Vim3DeviceTreeTest) {
static const char* kDevicePaths[] = {
"sys/platform/adc-9000",
"sys/platform/adc-buttons/adc-buttons_group/adc-buttons",
"sys/platform/arm-mali-0",
"sys/platform/audio-controller-ff642000/audio-controller-ff642000_group/aml-g12-audio-composite",
// bt-transport-uart is not included in bootfs on vim3.
"sys/platform/bt-uart-ffd24000/bt-uart-ffd24000_group/aml-uart",
// TODO(b/291154545): Add bluetooth paths when firmware is publicly available.
// "sys/platform/bt-uart-ffd24000/bt-uart-ffd24000_group/aml-uart/bt-transport-uart/bt-hci-broadcom",
"sys/platform/canvas-ff638000/aml-canvas",
"sys/platform/clock-controller-ff63c000/clocks",
"sys/platform/clock-controller-ff63c000/clocks/clock-init",
"sys/platform/dsi-display-ff900000",
// TODO(https://fxbug.dev/42068759): Update topopath when dwmac is off
// netdevice migration.
"sys/platform/ethernet-phy-ff634000/ethernet-phy-ff634000_group/aml-ethernet/dwmac-ff3f0000_group/dwmac/Designware-MAC/netdevice-migration/network-device",
"sys/platform/ethernet-phy-ff634000/ethernet-phy-ff634000_group/aml-ethernet/dwmac-ff3f0000_group/dwmac/eth_phy/phy_null_device",
"sys/platform/fuchsia-sysmem/sysmem",
"sys/platform/gpio-buttons/gpio-buttons_group/buttons",
"sys/platform/gpio-controller-ff634400/aml-gpio/gpio-init",
"sys/platform/gpio-controller-ff634400/aml-gpio/gpio",
"sys/platform/gpio-controller-ff634400/aml-gpio/gpio/gpio-93/fusb302-22_group/fusb302",
"sys/platform/hdmi-display-ff900000",
"sys/platform/hrtimer-0/aml-hrtimer",
"sys/platform/i2c-1c000",
"sys/platform/i2c-1c000/i2c-1c000_group/aml-i2c/i2c/i2c-1-56/touchscreen-38_group/focaltouch-HidDevice",
"sys/platform/i2c-5000",
"sys/platform/i2c-5000/i2c-5000_group/aml-i2c/i2c/i2c-0-24",
"sys/platform/i2c-5000/i2c-5000_group/aml-i2c/i2c/i2c-0-24/khadas-mcu-18_group/vim3-mcu",
"sys/platform/i2c-5000/i2c-5000_group/aml-i2c/i2c/i2c-0-32/gpio-controller-20_group/ti-tca6408a/gpio",
"sys/platform/interrupt-controller-ffc01000",
"sys/platform/nna-ff100000/nna-ff100000_group/aml-nna",
// SDIO
"sys/platform/mmc-ffe03000/mmc-ffe03000_group/aml-sd-emmc/sdmmc",
// SD card
"sys/platform/mmc-ffe05000/mmc-ffe05000_group/aml-sd-emmc/sdmmc",
// EMMC
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/boot1/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/boot2/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/rpmb",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-000/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-001/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-002/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-003/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-004/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-005/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-006/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-007/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-008/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-009/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-010/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-011/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-012/block",
"sys/platform/mmc-ffe07000/mmc-ffe07000_group/aml-sd-emmc/sdmmc/sdmmc-mmc/user/block/part-013/block",
"sys/platform/phy-ffe09000/phy-ffe09000_group/aml_usb_phy",
"sys/platform/phy-ffe09000/phy-ffe09000_group/aml_usb_phy/dwc2",
"sys/platform/phy-ffe09000/phy-ffe09000_group/aml_usb_phy/dwc2/usb-ff400000_group/dwc2",
"sys/platform/phy-ffe09000/phy-ffe09000_group/aml_usb_phy/dwc2/usb-ff400000_group/dwc2/usb-peripheral/function-000/cdc-eth-function",
"sys/platform/phy-ffe09000/phy-ffe09000_group/aml_usb_phy/xhci",
"sys/platform/power-controller/power-controller_group/power-impl/power-core/power-0",
"sys/platform/power-controller/power-controller_group/power-impl/power-core/power-0/cpu-controller-0_group/a311d-arm-a53",
"sys/platform/power-controller/power-controller_group/power-impl/power-core/power-0/cpu-controller-0_group/a311d-arm-a73",
"sys/platform/power-controller/power-controller_group/power-impl/power-core/power-1",
"sys/platform/pt",
"sys/platform/pt/dt-root",
"sys/platform/pt/suspend/aml-suspend-device",
"sys/platform/pwm-ffd1b000/aml-pwm-device",
"sys/platform/pwm-ffd1b000/aml-pwm-device/pwm-0/pwm_a-regulator_group/pwm_vreg_big",
"sys/platform/pwm-ffd1b000/aml-pwm-device/pwm-4/pwm-init_group/aml-pwm-init",
"sys/platform/pwm-ffd1b000/aml-pwm-device/pwm-9/pwm_a0_d-regulator_group/pwm_vreg_little",
"sys/platform/register-controller-1000",
"sys/platform/temperature-sensor-ff634800/temperature-sensor-ff634800_group/aml-trip-device",
"sys/platform/temperature-sensor-ff634c00/temperature-sensor-ff634c00_group/aml-trip-device",
"sys/platform/usb-ff500000/usb-ff500000_group/xhci",
// USB 2.0 Hub
// Ignored because we've had a spate of vim3 devices that seem to have
// broken or flaky root hubs, and we don't make use of the XHCI bus in
// any way so we'd rather ignore such failures than cause flakiness or
// have to remove more devices from the fleet.
// See b/296738636 for more information.
// "sys/platform/usb-ff500000/usb-ff500000_group/xhci/usb-bus",
"sys/platform/video-decoder-ffd00000",
#ifdef include_packaged_drivers
// RTC
"sys/platform/i2c-5000/i2c-5000_group/aml-i2c/i2c/i2c-0-81/rtc",
// WLAN
"sys/platform/mmc-ffe03000/mmc-ffe03000_group/aml-sd-emmc/sdmmc/sdmmc-sdio/sdmmc-sdio-1/wifi_group/brcmfmac-wlanphyimpl",
"sys/platform/mmc-ffe03000/mmc-ffe03000_group/aml-sd-emmc/sdmmc/sdmmc-sdio/sdmmc-sdio-1/wifi_group/brcmfmac-wlanphyimpl/wlanphy",
// GPU
"sys/platform/gpu-ffe40000/gpu-ffe40000_group/aml-gpu",
#endif
};
ASSERT_NO_FATAL_FAILURE(TestRunner(kDevicePaths, std::size(kDevicePaths)));
static const char* kDisplayDevicePaths[] = {
"sys/platform/hdmi-display-ff900000/hdmi-display-ff900000_group/amlogic-display/display-coordinator",
"sys/platform/dsi-display-ff900000/dsi-display-ff900000_group/amlogic-display/display-coordinator",
};
ASSERT_NO_FATAL_FAILURE(device_enumeration::WaitForOne(
cpp20::span(kDisplayDevicePaths, std::size(kDisplayDevicePaths))));
}
} // namespace