diff target-utils/include/romvars.h @ 0:e7502631a0f9

initial import from freecalypso-sw rev 1033:5ab737ac3ad7
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 11 Jun 2016 00:13:35 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/target-utils/include/romvars.h	Sat Jun 11 00:13:35 2016 +0000
@@ -0,0 +1,36 @@
+/*
+ * Our loadagent will always be loaded into Calypso targets by the on-chip
+ * boot ROM operating in the UART download mode.  The lowest IRAM address
+ * at which we can load our code is 0x800750; somewhat lower at 0x800518
+ * the boot ROM downloader has a few variables which may have been intended
+ * to be private to the boot ROM, but which are useful to us.  For example,
+ * by looking at these variables, we can see which of the two UARTs was
+ * used to feed our code to the boot ROM, and use the same UART for
+ * subsequent communication - without building multiple versions of our
+ * loadagent or resorting to other ugliness.
+ *
+ * This header file defines the layout of the IRAM structure in question,
+ * based on the disassembly of the boot ROM.
+ */
+
+#ifndef __ROMVARS_H
+#define	__ROMVARS_H
+
+#include "types.h"
+
+struct boot_rom_vars {
+	u8	baud_rate_code;
+	u8	pad1[3];
+	u32	uart_timeout;
+	u8	uart_id;
+	u8	pll_config;
+	u16	cs_ws_config;
+	u8	clktcxo_13mhz;
+	u8	rhea_cntl;
+	u16	chksum_cmd;
+	u16	chksum_accum;
+	u16	pad2;
+	u32	branch_addr;
+};
+
+#endif	/* include guard */