76 lines
		
	
	
	
		
			2.7 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			76 lines
		
	
	
	
		
			2.7 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Copyright (c) 2011 Broadcom Corporation
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Permission to use, copy, modify, and/or distribute this software for any
							 | 
						||
| 
								 | 
							
								 * purpose with or without fee is hereby granted, provided that the above
							 | 
						||
| 
								 | 
							
								 * copyright notice and this permission notice appear in all copies.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
							 | 
						||
| 
								 | 
							
								 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
							 | 
						||
| 
								 | 
							
								 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
							 | 
						||
| 
								 | 
							
								 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
							 | 
						||
| 
								 | 
							
								 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
							 | 
						||
| 
								 | 
							
								 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
							 | 
						||
| 
								 | 
							
								 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef _USB_RDL_H
							 | 
						||
| 
								 | 
							
								#define _USB_RDL_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Control messages: bRequest values */
							 | 
						||
| 
								 | 
							
								#define DL_GETSTATE	0	/* returns the rdl_state_t struct */
							 | 
						||
| 
								 | 
							
								#define DL_CHECK_CRC	1	/* currently unused */
							 | 
						||
| 
								 | 
							
								#define DL_GO		2	/* execute downloaded image */
							 | 
						||
| 
								 | 
							
								#define DL_START	3	/* initialize dl state */
							 | 
						||
| 
								 | 
							
								#define DL_REBOOT	4	/* reboot the device in 2 seconds */
							 | 
						||
| 
								 | 
							
								#define DL_GETVER	5	/* returns the bootrom_id_t struct */
							 | 
						||
| 
								 | 
							
								#define DL_GO_PROTECTED	6	/* execute the downloaded code and set reset
							 | 
						||
| 
								 | 
							
												 * event to occur in 2 seconds.  It is the
							 | 
						||
| 
								 | 
							
												 * responsibility of the downloaded code to
							 | 
						||
| 
								 | 
							
												 * clear this event
							 | 
						||
| 
								 | 
							
												 */
							 | 
						||
| 
								 | 
							
								#define DL_EXEC		7	/* jump to a supplied address */
							 | 
						||
| 
								 | 
							
								#define DL_RESETCFG	8	/* To support single enum on dongle
							 | 
						||
| 
								 | 
							
												 * - Not used by bootloader
							 | 
						||
| 
								 | 
							
												 */
							 | 
						||
| 
								 | 
							
								#define DL_DEFER_RESP_OK 9	/* Potentially defer the response to setup
							 | 
						||
| 
								 | 
							
												 * if resp unavailable
							 | 
						||
| 
								 | 
							
												 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* states */
							 | 
						||
| 
								 | 
							
								#define DL_WAITING	0	/* waiting to rx first pkt */
							 | 
						||
| 
								 | 
							
								#define DL_READY	1	/* hdr was good, waiting for more of the
							 | 
						||
| 
								 | 
							
												 * compressed image */
							 | 
						||
| 
								 | 
							
								#define DL_BAD_HDR	2	/* hdr was corrupted */
							 | 
						||
| 
								 | 
							
								#define DL_BAD_CRC	3	/* compressed image was corrupted */
							 | 
						||
| 
								 | 
							
								#define DL_RUNNABLE	4	/* download was successful,waiting for go cmd */
							 | 
						||
| 
								 | 
							
								#define DL_START_FAIL	5	/* failed to initialize correctly */
							 | 
						||
| 
								 | 
							
								#define DL_NVRAM_TOOBIG	6	/* host specified nvram data exceeds DL_NVRAM
							 | 
						||
| 
								 | 
							
												 * value */
							 | 
						||
| 
								 | 
							
								#define DL_IMAGE_TOOBIG	7	/* download image too big (exceeds DATA_START
							 | 
						||
| 
								 | 
							
												 *  for rdl) */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								struct rdl_state_le {
							 | 
						||
| 
								 | 
							
									__le32 state;
							 | 
						||
| 
								 | 
							
									__le32 bytes;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								struct bootrom_id_le {
							 | 
						||
| 
								 | 
							
									__le32 chip;	/* Chip id */
							 | 
						||
| 
								 | 
							
									__le32 chiprev;	/* Chip rev */
							 | 
						||
| 
								 | 
							
									__le32 ramsize;	/* Size of  RAM */
							 | 
						||
| 
								 | 
							
									__le32 remapbase;	/* Current remap base address */
							 | 
						||
| 
								 | 
							
									__le32 boardtype;	/* Type of board */
							 | 
						||
| 
								 | 
							
									__le32 boardrev;	/* Board revision */
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define RDL_CHUNK	1500  /* size of each dl transfer */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define TRX_OFFSETS_DLFWLEN_IDX	0
							 | 
						||
| 
								 | 
							
								#define TRX_OFFSETS_JUMPTO_IDX	1
							 | 
						||
| 
								 | 
							
								#define TRX_OFFSETS_NVM_LEN_IDX	2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define TRX_OFFSETS_DLBASE_IDX  0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif  /* _USB_RDL_H */
							 |