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