view target-utils/include/romvars.h @ 421:ab8fb95a28da

rvinterf/rvtat converted to use libinterf
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 27 Oct 2018 23:48:20 +0000
parents e7502631a0f9
children
line wrap: on
line source

/*
 * 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 */