summaryrefslogtreecommitdiff
path: root/cleopatre/devkit
diff options
context:
space:
mode:
Diffstat (limited to 'cleopatre/devkit')
-rw-r--r--cleopatre/devkit/plcdrv/src/plcdrv.c30
-rw-r--r--cleopatre/devkit/tests/plcdrv/utests/stub/linux/inc/asm/arch/hardware/regbank.h2
2 files changed, 32 insertions, 0 deletions
diff --git a/cleopatre/devkit/plcdrv/src/plcdrv.c b/cleopatre/devkit/plcdrv/src/plcdrv.c
index e87190ffd3..30431fd314 100644
--- a/cleopatre/devkit/plcdrv/src/plcdrv.c
+++ b/cleopatre/devkit/plcdrv/src/plcdrv.c
@@ -233,6 +233,33 @@ plcdrv_writeproc_set_mark (struct file *file, const char *buffer,
}
/**
+ * Read some regbank registers.
+ * \param page buffer to write data to
+ * \param start unused
+ * \param offset unused
+ * \param count unused
+ * \param eof to be set if end of file reached
+ * \param data priv structure
+ * \return number of read bytes
+ */
+static int
+plcdrv_readproc_regbank (char *page, char **start, off_t offset, int count,
+ int *eof, void *data)
+{
+ char *p;
+
+ p = page;
+ p += sprintf (p, "RB_RESET_CAUSE = 0x%08x\n", RB_RST_GSRC_VA);
+ p += sprintf (p, "RB_PACKAGE = 0x%08x\n", RB_PACKAGE_VA);
+ *eof = 1;
+
+ /* Clear the register after reading it. */
+ RB_RST_GSRC_VA = 0x0;
+
+ return p - page;
+}
+
+/**
* Set/Unset Reset the Leon processor.
* \param activate true to activate reset
* \return error code
@@ -813,6 +840,7 @@ plcdrv_uninit (struct net_device *dev)
unregister_chrdev_region (priv->dev_number, 2);
/* Remove proc. */
+ remove_proc_entry ("regbank", priv->proc_dir_plc);
remove_proc_entry ("set_mark", priv->proc_dir_plc);
remove_proc_entry ("stats", priv->proc_dir_plc);
remove_proc_entry ("version", priv->proc_dir_plc);
@@ -883,6 +911,8 @@ plcdrv_init (struct net_device *dev)
entry->write_proc = plcdrv_writeproc_set_mark;
entry->data = priv;
}
+ create_proc_read_entry ("regbank", 0, priv->proc_dir_plc,
+ plcdrv_readproc_regbank, priv);
/* Set Leon code base address (translation). */
leon_start_addr_ptr = (uint32_t *) ioremap (RB_LEON_ADD_START, 1);
diff --git a/cleopatre/devkit/tests/plcdrv/utests/stub/linux/inc/asm/arch/hardware/regbank.h b/cleopatre/devkit/tests/plcdrv/utests/stub/linux/inc/asm/arch/hardware/regbank.h
index 21406fb8ad..1da385b4a4 100644
--- a/cleopatre/devkit/tests/plcdrv/utests/stub/linux/inc/asm/arch/hardware/regbank.h
+++ b/cleopatre/devkit/tests/plcdrv/utests/stub/linux/inc/asm/arch/hardware/regbank.h
@@ -7,6 +7,8 @@
#define RB_RST_GROUP_VA (*(volatile uint32_t *)0x12345678)
#define RB_RST_MODULE_VA (*(volatile uint32_t *)0x87654321)
#define RB_RST_GLOBAL_VA (*(volatile uint32_t *)0x55555555)
+#define RB_RST_GSRC_VA (*(volatile uint32_t *)0x24242424)
+#define RB_PACKAGE_VA (*(volatile uint32_t *)0x42424242)
#define RST_LEONSS (0x8)
#define RST_LCPU (0x800)
#define RST_DSP (0x4)