diff loadagent/romvars.h @ 0:9beb566ded04

starting with the toolchain for building our loadagent
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Sun, 28 Apr 2013 17:36:07 +0000
parents
children da98dc08f575
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/loadagent/romvars.h	Sun Apr 28 17:36:07 2013 +0000
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+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;
+};