[U-Boot] [PATCH 10/18] dm: test: Add a test for the ram uclass

Simon Glass sjg at chromium.org
Mon Jul 6 20:54:31 CEST 2015


Add a test to confirm that we can probe this device and get information on
the available RAM.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 arch/sandbox/dts/test.dts |  4 ++++
 configs/sandbox_defconfig |  1 +
 drivers/ram/Makefile      |  1 +
 drivers/ram/sandbox_ram.c | 38 ++++++++++++++++++++++++++++++++++++++
 test/dm/Makefile          |  1 +
 test/dm/ram.c             | 28 ++++++++++++++++++++++++++++
 6 files changed, 73 insertions(+)
 create mode 100644 drivers/ram/sandbox_ram.c
 create mode 100644 test/dm/ram.c

diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
index 65bcf03..c884aeb 100644
--- a/arch/sandbox/dts/test.dts
+++ b/arch/sandbox/dts/test.dts
@@ -204,6 +204,10 @@
 		compatible = "sandbox,pinctrl";
 	};
 
+	ram {
+		compatible = "sandbox,ram";
+	};
+
 	reset at 0 {
 		compatible = "sandbox,warm-reset";
 	};
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index feba8d9..2e4a0a7 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -46,3 +46,4 @@ CONFIG_SANDBOX_SERIAL=y
 CONFIG_CLK=y
 CONFIG_PINCTRL=y
 CONFIG_RESET=y
+CONFIG_RAM=y
diff --git a/drivers/ram/Makefile b/drivers/ram/Makefile
index 4494d81..0e10249 100644
--- a/drivers/ram/Makefile
+++ b/drivers/ram/Makefile
@@ -5,3 +5,4 @@
 # SPDX-License-Identifier:      GPL-2.0+
 #
 obj-$(CONFIG_RAM) += ram-uclass.o
+obj-$(CONFIG_SANDBOX) += sandbox_ram.o
diff --git a/drivers/ram/sandbox_ram.c b/drivers/ram/sandbox_ram.c
new file mode 100644
index 0000000..06bf3ec
--- /dev/null
+++ b/drivers/ram/sandbox_ram.c
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2015 Google, Inc
+ * Written by Simon Glass <sjg at chromium.org>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <errno.h>
+#include <ram.h>
+#include <asm/test.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static int sandbox_get_info(struct udevice *dev, struct ram_info *info)
+{
+	info->base = 0;
+	info->size = gd->ram_size;
+
+	return 0;
+}
+
+static const struct ram_ops sandbox_ram_ops = {
+	.get_info	= sandbox_get_info,
+};
+
+static const struct udevice_id sandbox_ram_ids[] = {
+	{ .compatible = "sandbox,ram" },
+	{ }
+};
+
+U_BOOT_DRIVER(warm_ram_sandbox) = {
+	.name		= "ram_sandbox",
+	.id		= UCLASS_RAM,
+	.of_match	= sandbox_ram_ids,
+	.ops		= &sandbox_ram_ops,
+};
diff --git a/test/dm/Makefile b/test/dm/Makefile
index ee0c70a..f649486 100644
--- a/test/dm/Makefile
+++ b/test/dm/Makefile
@@ -21,6 +21,7 @@ obj-$(CONFIG_DM_GPIO) += gpio.o
 obj-$(CONFIG_DM_I2C) += i2c.o
 obj-$(CONFIG_DM_PCI) += pci.o
 obj-$(CONFIG_PINCTRL) += pinctrl.o
+obj-$(CONFIG_RAM) += ram.o
 obj-$(CONFIG_RESET) += reset.o
 obj-$(CONFIG_DM_RTC) += rtc.o
 obj-$(CONFIG_DM_SPI_FLASH) += sf.o
diff --git a/test/dm/ram.c b/test/dm/ram.c
new file mode 100644
index 0000000..3a7c5ff
--- /dev/null
+++ b/test/dm/ram.c
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2015 Google, Inc
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <ram.h>
+#include <dm/test.h>
+#include <test/ut.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/* Basic test of the ram uclass */
+static int dm_test_ram_base(struct unit_test_state *uts)
+{
+	struct udevice *dev;
+	struct ram_info info;
+
+	ut_assertok(uclass_get_device(UCLASS_RAM, 0, &dev));
+	ut_assertok(ram_get_info(dev, &info));
+	ut_asserteq(0, info.base);
+	ut_asserteq(gd->ram_size, info.size);
+
+	return 0;
+}
+DM_TEST(dm_test_ram_base, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
-- 
2.4.3.573.g4eafbef



More information about the U-Boot mailing list