test: Add tests for IOMMU uclass
Add a set of tests for the IOMMU uclass. Signed-off-by: Mark Kettenis <kettenis@openbsd.org> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
40dbf03d7d
commit
fb57462437
@ -764,6 +764,11 @@
|
||||
vss-microvolts = <0>;
|
||||
};
|
||||
|
||||
iommu: iommu@0 {
|
||||
compatible = "sandbox,iommu";
|
||||
#iommu-cells = <0>;
|
||||
};
|
||||
|
||||
irq: irq {
|
||||
compatible = "sandbox,irq";
|
||||
interrupt-controller;
|
||||
@ -1226,6 +1231,7 @@
|
||||
|
||||
usb_1: usb@1 {
|
||||
compatible = "sandbox,usb";
|
||||
iommus = <&iommu>;
|
||||
hub {
|
||||
compatible = "usb-hub";
|
||||
usb,device-class = <9>;
|
||||
|
@ -130,6 +130,7 @@ CONFIG_SPL_I2C_MUX=y
|
||||
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
||||
CONFIG_CROS_EC_KEYB=y
|
||||
CONFIG_I8042_KEYB=y
|
||||
CONFIG_IOMMU=y
|
||||
CONFIG_LED=y
|
||||
CONFIG_LED_BLINK=y
|
||||
CONFIG_LED_GPIO=y
|
||||
|
@ -168,6 +168,7 @@ CONFIG_SPL_I2C_MUX=y
|
||||
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
||||
CONFIG_CROS_EC_KEYB=y
|
||||
CONFIG_I8042_KEYB=y
|
||||
CONFIG_IOMMU=y
|
||||
CONFIG_LED=y
|
||||
CONFIG_LED_BLINK=y
|
||||
CONFIG_LED_GPIO=y
|
||||
|
@ -107,6 +107,7 @@ CONFIG_SPL_I2C_MUX=y
|
||||
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
||||
CONFIG_CROS_EC_KEYB=y
|
||||
CONFIG_I8042_KEYB=y
|
||||
CONFIG_IOMMU=y
|
||||
CONFIG_LED=y
|
||||
CONFIG_LED_BLINK=y
|
||||
CONFIG_LED_GPIO=y
|
||||
|
@ -128,6 +128,7 @@ CONFIG_I2C_MUX=y
|
||||
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
||||
CONFIG_CROS_EC_KEYB=y
|
||||
CONFIG_I8042_KEYB=y
|
||||
CONFIG_IOMMU=y
|
||||
CONFIG_LED=y
|
||||
CONFIG_LED_BLINK=y
|
||||
CONFIG_LED_GPIO=y
|
||||
|
@ -130,6 +130,7 @@ CONFIG_I2C_MUX=y
|
||||
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
||||
CONFIG_CROS_EC_KEYB=y
|
||||
CONFIG_I8042_KEYB=y
|
||||
CONFIG_IOMMU=y
|
||||
CONFIG_LED=y
|
||||
CONFIG_LED_BLINK=y
|
||||
CONFIG_LED_GPIO=y
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
obj-$(CONFIG_IOMMU) += iommu-uclass.o
|
||||
|
||||
obj-$(CONFIG_SANDBOX) += sandbox_iommu.o
|
||||
|
18
drivers/iommu/sandbox_iommu.c
Normal file
18
drivers/iommu/sandbox_iommu.c
Normal file
@ -0,0 +1,18 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2021 Mark Kettenis <kettenis@openbsd.org>
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <dm.h>
|
||||
|
||||
static const struct udevice_id sandbox_iommu_ids[] = {
|
||||
{ .compatible = "sandbox,iommu" },
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
|
||||
U_BOOT_DRIVER(sandbox_iommu) = {
|
||||
.name = "sandbox_iommu",
|
||||
.id = UCLASS_IOMMU,
|
||||
.of_match = sandbox_iommu_ids,
|
||||
};
|
@ -48,6 +48,7 @@ obj-$(CONFIG_DM_I2C) += i2c.o
|
||||
obj-$(CONFIG_SOUND) += i2s.o
|
||||
obj-y += irq.o
|
||||
obj-$(CONFIG_CLK_K210_SET_RATE) += k210_pll.o
|
||||
obj-$(CONFIG_IOMMU) += iommu.o
|
||||
obj-$(CONFIG_LED) += led.o
|
||||
obj-$(CONFIG_DM_MAILBOX) += mailbox.o
|
||||
obj-$(CONFIG_DM_MDIO) += mdio.o
|
||||
|
28
test/dm/iommu.c
Normal file
28
test/dm/iommu.c
Normal file
@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2021 Mark Kettenis <kettenis@openbsd.org>
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <dm.h>
|
||||
#include <dm/test.h>
|
||||
#include <dm/uclass-internal.h>
|
||||
#include <iommu.h>
|
||||
#include <test/test.h>
|
||||
#include <test/ut.h>
|
||||
|
||||
static int dm_test_iommu(struct unit_test_state *uts)
|
||||
{
|
||||
struct udevice *dev;
|
||||
|
||||
ut_assertok(uclass_find_device(UCLASS_IOMMU, 0, &dev));
|
||||
ut_assert(!(dev_get_flags(dev) & DM_FLAG_ACTIVATED));
|
||||
|
||||
/* Probing USB probes the IOMMU through the "iommus" property */
|
||||
ut_assertok(uclass_probe_all(UCLASS_USB));
|
||||
ut_assert(dev_get_flags(dev) & DM_FLAG_ACTIVATED);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
DM_TEST(dm_test_iommu, UT_TESTF_SCAN_FDT);
|
Loading…
Reference in New Issue
Block a user