[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 12/12] tests: add mvme3100-test
From: |
Michael Davidsaver |
Subject: |
[Qemu-ppc] [PATCH 12/12] tests: add mvme3100-test |
Date: |
Sun, 19 Nov 2017 21:24:20 -0600 |
Exercise some features of the mvme3100 CPLD logic
and read from the eeprom w/ VPD.
Signed-off-by: Michael Davidsaver <address@hidden>
---
tests/Makefile.include | 3 ++
tests/mvme3100-test.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 82 insertions(+)
create mode 100644 tests/mvme3100-test.c
diff --git a/tests/Makefile.include b/tests/Makefile.include
index ad1c219423..7ea041a885 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -372,6 +372,8 @@ check-qtest-s390x-y += tests/virtio-balloon-test$(EXESUF)
check-qtest-s390x-y += tests/virtio-console-test$(EXESUF)
check-qtest-s390x-y += tests/virtio-serial-test$(EXESUF)
+check-qtest-ppc-$(CONFIG_E500) += tests/mvme3100-test$(EXESUF)
+
check-qtest-generic-y += tests/qom-test$(EXESUF)
check-qtest-generic-y += tests/test-hmp$(EXESUF)
@@ -781,6 +783,7 @@ tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
tests/ac97-test$(EXESUF): tests/ac97-test.o
tests/es1370-test$(EXESUF): tests/es1370-test.o
tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
+tests/mvme3100-test$(EXESUF): tests/mvme3100-test.o $(libqos-e500-obj-y)
tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
diff --git a/tests/mvme3100-test.c b/tests/mvme3100-test.c
new file mode 100644
index 0000000000..6dde8d1d29
--- /dev/null
+++ b/tests/mvme3100-test.c
@@ -0,0 +1,79 @@
+#include <stdio.h>
+
+#include "qemu/osdep.h"
+#include "libqtest.h"
+#include "libqos/libqos.h"
+#include "libqos/i2c.h"
+
+#define assert_equal(A, B) g_assert_cmphex((A), ==, (B))
+
+static
+I2CAdapter *i2c;
+
+static
+void test_ccsr(void)
+{
+ /* CCSRBAR is self referential */
+ assert_equal(readl(0xff700000), 0x000ff700);
+
+ /* introspect memory size */
+ assert_equal(readl(0xff702080), 0x80000000);
+ /* value is (ram_size-1)>>24 */
+ assert_equal(readl(0xff702000), 15);
+}
+
+static
+void test_cpld(void)
+{
+ /* read/write to test register */
+ assert_equal(readl(0xe2000010), 0x00000000);
+ assert_equal(readl(0xe2000014), 0xffffffff);
+
+ writel(0xe2000010, 0x12345678);
+
+ assert_equal(readl(0xe2000010), 0x12345678);
+ assert_equal(readl(0xe2000014), 0x12345678 ^ 0xffffffff);
+}
+
+static
+void test_eeprom(void)
+{
+ char buf[] = "\x00\x00MOTOROLA";
+
+ /* 1. zero address pointer
+ * 2. write 8 bytes,
+ * 3. re-zero address pointer
+ */
+ i2c_send(i2c, 0xa8, (uint8_t *)buf, 10);
+ i2c_send(i2c, 0xa8, (uint8_t *)buf, 2);
+
+ /* read 8 bytes */
+ i2c_recv(i2c, 0xa8, (uint8_t *)buf, 8);
+ buf[8] = '\0';
+
+ /* Read header for Motorola VPD info */
+ g_assert_cmpstr(buf, ==, "MOTOROLA");
+}
+
+int main(int argc, char *argv[])
+{
+ int ret;
+ g_test_init(&argc, &argv, NULL);
+
+ qtest_start("-machine mvme3100-1152");
+
+ i2c = e500_i2c_create(0xff700000);
+
+ qtest_add_func("/mvme3100/ccsr", test_ccsr);
+ qtest_add_func("/mvme3100/cpld", test_cpld);
+ qtest_add_func("/mvme3100/eeprom", test_eeprom);
+
+ ret = g_test_run();
+
+ printf("Tests done\n");
+
+ qtest_end();
+ printf("Tests end\n");
+
+ return ret;
+}
--
2.11.0
- [Qemu-ppc] [PATCH 07/12] qtest: add e500_i2c_create(), (continued)
- [Qemu-ppc] [PATCH 07/12] qtest: add e500_i2c_create(), Michael Davidsaver, 2017/11/19
- [Qemu-ppc] [PATCH 06/12] i2c: add mpc8540 i2c controller, Michael Davidsaver, 2017/11/19
- [Qemu-ppc] [PATCH 08/12] e500: add mpc8540 i2c controller to ccsr, Michael Davidsaver, 2017/11/19
- [Qemu-ppc] [PATCH 09/12] nvram: add AT24Cx i2c eeprom, Michael Davidsaver, 2017/11/19
- [Qemu-ppc] [PATCH 12/12] tests: add mvme3100-test,
Michael Davidsaver <=
- [Qemu-ppc] [PATCH 10/12] timer: add ds1375 RTC, Michael Davidsaver, 2017/11/19
- [Qemu-ppc] [PATCH 11/12] ppc: add mvme3100 machine, Michael Davidsaver, 2017/11/19
- Re: [Qemu-ppc] [PATCH 00/12] Add MVME3100 PPC SBC, David Gibson, 2017/11/21
- Message not available