mirror of
https://github.com/smaeul/u-boot.git
synced 2025-10-14 04:46:01 +01:00
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>;
|
vss-microvolts = <0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
iommu: iommu@0 {
|
||||||
|
compatible = "sandbox,iommu";
|
||||||
|
#iommu-cells = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
irq: irq {
|
irq: irq {
|
||||||
compatible = "sandbox,irq";
|
compatible = "sandbox,irq";
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
@ -1226,6 +1231,7 @@
|
|||||||
|
|
||||||
usb_1: usb@1 {
|
usb_1: usb@1 {
|
||||||
compatible = "sandbox,usb";
|
compatible = "sandbox,usb";
|
||||||
|
iommus = <&iommu>;
|
||||||
hub {
|
hub {
|
||||||
compatible = "usb-hub";
|
compatible = "usb-hub";
|
||||||
usb,device-class = <9>;
|
usb,device-class = <9>;
|
||||||
|
@ -130,6 +130,7 @@ CONFIG_SPL_I2C_MUX=y
|
|||||||
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
||||||
CONFIG_CROS_EC_KEYB=y
|
CONFIG_CROS_EC_KEYB=y
|
||||||
CONFIG_I8042_KEYB=y
|
CONFIG_I8042_KEYB=y
|
||||||
|
CONFIG_IOMMU=y
|
||||||
CONFIG_LED=y
|
CONFIG_LED=y
|
||||||
CONFIG_LED_BLINK=y
|
CONFIG_LED_BLINK=y
|
||||||
CONFIG_LED_GPIO=y
|
CONFIG_LED_GPIO=y
|
||||||
|
@ -168,6 +168,7 @@ CONFIG_SPL_I2C_MUX=y
|
|||||||
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
||||||
CONFIG_CROS_EC_KEYB=y
|
CONFIG_CROS_EC_KEYB=y
|
||||||
CONFIG_I8042_KEYB=y
|
CONFIG_I8042_KEYB=y
|
||||||
|
CONFIG_IOMMU=y
|
||||||
CONFIG_LED=y
|
CONFIG_LED=y
|
||||||
CONFIG_LED_BLINK=y
|
CONFIG_LED_BLINK=y
|
||||||
CONFIG_LED_GPIO=y
|
CONFIG_LED_GPIO=y
|
||||||
|
@ -107,6 +107,7 @@ CONFIG_SPL_I2C_MUX=y
|
|||||||
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
||||||
CONFIG_CROS_EC_KEYB=y
|
CONFIG_CROS_EC_KEYB=y
|
||||||
CONFIG_I8042_KEYB=y
|
CONFIG_I8042_KEYB=y
|
||||||
|
CONFIG_IOMMU=y
|
||||||
CONFIG_LED=y
|
CONFIG_LED=y
|
||||||
CONFIG_LED_BLINK=y
|
CONFIG_LED_BLINK=y
|
||||||
CONFIG_LED_GPIO=y
|
CONFIG_LED_GPIO=y
|
||||||
|
@ -128,6 +128,7 @@ CONFIG_I2C_MUX=y
|
|||||||
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
||||||
CONFIG_CROS_EC_KEYB=y
|
CONFIG_CROS_EC_KEYB=y
|
||||||
CONFIG_I8042_KEYB=y
|
CONFIG_I8042_KEYB=y
|
||||||
|
CONFIG_IOMMU=y
|
||||||
CONFIG_LED=y
|
CONFIG_LED=y
|
||||||
CONFIG_LED_BLINK=y
|
CONFIG_LED_BLINK=y
|
||||||
CONFIG_LED_GPIO=y
|
CONFIG_LED_GPIO=y
|
||||||
|
@ -130,6 +130,7 @@ CONFIG_I2C_MUX=y
|
|||||||
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
||||||
CONFIG_CROS_EC_KEYB=y
|
CONFIG_CROS_EC_KEYB=y
|
||||||
CONFIG_I8042_KEYB=y
|
CONFIG_I8042_KEYB=y
|
||||||
|
CONFIG_IOMMU=y
|
||||||
CONFIG_LED=y
|
CONFIG_LED=y
|
||||||
CONFIG_LED_BLINK=y
|
CONFIG_LED_BLINK=y
|
||||||
CONFIG_LED_GPIO=y
|
CONFIG_LED_GPIO=y
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0+
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
obj-$(CONFIG_IOMMU) += iommu-uclass.o
|
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-$(CONFIG_SOUND) += i2s.o
|
||||||
obj-y += irq.o
|
obj-y += irq.o
|
||||||
obj-$(CONFIG_CLK_K210_SET_RATE) += k210_pll.o
|
obj-$(CONFIG_CLK_K210_SET_RATE) += k210_pll.o
|
||||||
|
obj-$(CONFIG_IOMMU) += iommu.o
|
||||||
obj-$(CONFIG_LED) += led.o
|
obj-$(CONFIG_LED) += led.o
|
||||||
obj-$(CONFIG_DM_MAILBOX) += mailbox.o
|
obj-$(CONFIG_DM_MAILBOX) += mailbox.o
|
||||||
obj-$(CONFIG_DM_MDIO) += mdio.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…
x
Reference in New Issue
Block a user