Merge tag 'nfs-for-3.12-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
[linux-2.6-microblaze.git] / drivers / net / wireless / brcm80211 / brcmfmac / usb_rdl.h
1 /*
2  * Copyright (c) 2011 Broadcom Corporation
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11  * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16
17 #ifndef _USB_RDL_H
18 #define _USB_RDL_H
19
20 /* Control messages: bRequest values */
21 #define DL_GETSTATE     0       /* returns the rdl_state_t struct */
22 #define DL_CHECK_CRC    1       /* currently unused */
23 #define DL_GO           2       /* execute downloaded image */
24 #define DL_START        3       /* initialize dl state */
25 #define DL_REBOOT       4       /* reboot the device in 2 seconds */
26 #define DL_GETVER       5       /* returns the bootrom_id_t struct */
27 #define DL_GO_PROTECTED 6       /* execute the downloaded code and set reset
28                                  * event to occur in 2 seconds.  It is the
29                                  * responsibility of the downloaded code to
30                                  * clear this event
31                                  */
32 #define DL_EXEC         7       /* jump to a supplied address */
33 #define DL_RESETCFG     8       /* To support single enum on dongle
34                                  * - Not used by bootloader
35                                  */
36 #define DL_DEFER_RESP_OK 9      /* Potentially defer the response to setup
37                                  * if resp unavailable
38                                  */
39
40 /* states */
41 #define DL_WAITING      0       /* waiting to rx first pkt */
42 #define DL_READY        1       /* hdr was good, waiting for more of the
43                                  * compressed image */
44 #define DL_BAD_HDR      2       /* hdr was corrupted */
45 #define DL_BAD_CRC      3       /* compressed image was corrupted */
46 #define DL_RUNNABLE     4       /* download was successful,waiting for go cmd */
47 #define DL_START_FAIL   5       /* failed to initialize correctly */
48 #define DL_NVRAM_TOOBIG 6       /* host specified nvram data exceeds DL_NVRAM
49                                  * value */
50 #define DL_IMAGE_TOOBIG 7       /* download image too big (exceeds DATA_START
51                                  *  for rdl) */
52
53 struct rdl_state_le {
54         __le32 state;
55         __le32 bytes;
56 };
57
58 struct bootrom_id_le {
59         __le32 chip;    /* Chip id */
60         __le32 chiprev; /* Chip rev */
61         __le32 ramsize; /* Size of  RAM */
62         __le32 remapbase;       /* Current remap base address */
63         __le32 boardtype;       /* Type of board */
64         __le32 boardrev;        /* Board revision */
65 };
66
67 #define RDL_CHUNK       1500  /* size of each dl transfer */
68
69 #define TRX_OFFSETS_DLFWLEN_IDX 0
70 #define TRX_OFFSETS_JUMPTO_IDX  1
71 #define TRX_OFFSETS_NVM_LEN_IDX 2
72
73 #define TRX_OFFSETS_DLBASE_IDX  0
74
75 #endif  /* _USB_RDL_H */