kernel: add support for 3.9-rc2
[openwrt.git] / target / linux / generic / patches-3.9 / 261-move_bcm963xx_tag.patch
1 --- a/arch/mips/include/asm/mach-bcm63xx/bcm963xx_tag.h
2 +++ /dev/null
3 @@ -1,96 +0,0 @@
4 -#ifndef __BCM963XX_TAG_H
5 -#define __BCM963XX_TAG_H
6 -
7 -#define TAGVER_LEN             4       /* Length of Tag Version */
8 -#define TAGLAYOUT_LEN          4       /* Length of FlashLayoutVer */
9 -#define SIG1_LEN               20      /* Company Signature 1 Length */
10 -#define SIG2_LEN               14      /* Company Signature 2 Length */
11 -#define BOARDID_LEN            16      /* Length of BoardId */
12 -#define ENDIANFLAG_LEN         2       /* Endian Flag Length */
13 -#define CHIPID_LEN             6       /* Chip Id Length */
14 -#define IMAGE_LEN              10      /* Length of Length Field */
15 -#define ADDRESS_LEN            12      /* Length of Address field */
16 -#define DUALFLAG_LEN           2       /* Dual Image flag Length */
17 -#define INACTIVEFLAG_LEN       2       /* Inactie Flag Length */
18 -#define RSASIG_LEN             20      /* Length of RSA Signature in tag */
19 -#define TAGINFO1_LEN           30      /* Length of vendor information field1 in tag */
20 -#define FLASHLAYOUTVER_LEN     4       /* Length of Flash Layout Version String tag */
21 -#define TAGINFO2_LEN           16      /* Length of vendor information field2 in tag */
22 -#define ALTTAGINFO_LEN         54      /* Alternate length for vendor information; Pirelli */
23 -
24 -#define NUM_PIRELLI            2
25 -#define IMAGETAG_CRC_START     0xFFFFFFFF
26 -
27 -#define PIRELLI_BOARDS { \
28 -       "AGPF-S0", \
29 -       "DWV-S0", \
30 -}
31 -
32 -/*
33 - * The broadcom firmware assumes the rootfs starts the image,
34 - * therefore uses the rootfs start (flash_image_address)
35 - * to determine where to flash the image.  Since we have the kernel first
36 - * we have to give it the kernel address, but the crc uses the length
37 - * associated with this address (root_length), which is added to the kernel
38 - * length (kernel_length) to determine the length of image to flash and thus
39 - * needs to be rootfs + deadcode (jffs2 EOF marker)
40 -*/
41 -
42 -struct bcm_tag {
43 -       /* 0-3: Version of the image tag */
44 -       char tag_version[TAGVER_LEN];
45 -       /* 4-23: Company Line 1 */
46 -       char sig_1[SIG1_LEN];
47 -       /*  24-37: Company Line 2 */
48 -       char sig_2[SIG2_LEN];
49 -       /* 38-43: Chip this image is for */
50 -       char chip_id[CHIPID_LEN];
51 -       /* 44-59: Board name */
52 -       char board_id[BOARDID_LEN];
53 -       /* 60-61: Map endianness -- 1 BE 0 LE */
54 -       char big_endian[ENDIANFLAG_LEN];
55 -       /* 62-71: Total length of image */
56 -       char total_length[IMAGE_LEN];
57 -       /* 72-83: Address in memory of CFE */
58 -       char cfe__address[ADDRESS_LEN];
59 -       /* 84-93: Size of CFE */
60 -       char cfe_length[IMAGE_LEN];
61 -       /* 94-105: Address in memory of image start
62 -        * (kernel for OpenWRT, rootfs for stock firmware)
63 -        */
64 -       char flash_image_start[ADDRESS_LEN];
65 -       /* 106-115: Size of rootfs */
66 -       char root_length[IMAGE_LEN];
67 -       /* 116-127: Address in memory of kernel */
68 -       char kernel_address[ADDRESS_LEN];
69 -       /* 128-137: Size of kernel */
70 -       char kernel_length[IMAGE_LEN];
71 -       /* 138-139: Unused at the moment */
72 -       char dual_image[DUALFLAG_LEN];
73 -       /* 140-141: Unused at the moment */
74 -       char inactive_flag[INACTIVEFLAG_LEN];
75 -       /* 142-161: RSA Signature (not used; some vendors may use this) */
76 -       char rsa_signature[RSASIG_LEN];
77 -       /* 162-191: Compilation and related information (not used in OpenWrt) */
78 -       char information1[TAGINFO1_LEN];
79 -       /* 192-195: Version flash layout */
80 -       char flash_layout_ver[FLASHLAYOUTVER_LEN];
81 -       /* 196-199: kernel+rootfs CRC32 */
82 -       __u32 fskernel_crc;
83 -       /* 200-215: Unused except on Alice Gate where is is information */
84 -       char information2[TAGINFO2_LEN];
85 -       /* 216-219: CRC32 of image less imagetag (kernel for Alice Gate) */
86 -       __u32 image_crc;
87 -       /* 220-223: CRC32 of rootfs partition */
88 -       __u32 rootfs_crc;
89 -       /* 224-227: CRC32 of kernel partition */
90 -       __u32 kernel_crc;
91 -       /* 228-235: Unused at present */
92 -       char reserved1[8];
93 -       /* 236-239: CRC32 of header excluding last 20 bytes */
94 -       __u32 header_crc;
95 -       /* 240-255: Unused at present */
96 -       char reserved2[16];
97 -};
98 -
99 -#endif /* __BCM63XX_TAG_H */
100 --- a/drivers/mtd/bcm63xxpart.c
101 +++ b/drivers/mtd/bcm63xxpart.c
102 @@ -32,7 +32,7 @@
103  #include <linux/mtd/mtd.h>
104  #include <linux/mtd/partitions.h>
105  
106 -#include <asm/mach-bcm63xx/bcm963xx_tag.h>
107 +#include <linux/bcm963xx_tag.h>
108  #include <asm/mach-bcm63xx/board_bcm963xx.h>
109  
110  #define BCM63XX_EXTENDED_SIZE  0xBFC00000      /* Extended flash address */
111 --- a/include/uapi/linux/Kbuild
112 +++ b/include/uapi/linux/Kbuild
113 @@ -67,6 +67,7 @@ header-y += binfmts.h
114  header-y += blkpg.h
115  header-y += blktrace_api.h
116  header-y += bpqether.h
117 +header-y += bcm963xx_tag.h
118  header-y += bsg.h
119  header-y += btrfs.h
120  header-y += can.h
121 --- /dev/null
122 +++ b/include/uapi/linux/bcm963xx_tag.h
123 @@ -0,0 +1,96 @@
124 +#ifndef __BCM963XX_TAG_H
125 +#define __BCM963XX_TAG_H
126 +
127 +#define TAGVER_LEN             4       /* Length of Tag Version */
128 +#define TAGLAYOUT_LEN          4       /* Length of FlashLayoutVer */
129 +#define SIG1_LEN               20      /* Company Signature 1 Length */
130 +#define SIG2_LEN               14      /* Company Signature 2 Length */
131 +#define BOARDID_LEN            16      /* Length of BoardId */
132 +#define ENDIANFLAG_LEN         2       /* Endian Flag Length */
133 +#define CHIPID_LEN             6       /* Chip Id Length */
134 +#define IMAGE_LEN              10      /* Length of Length Field */
135 +#define ADDRESS_LEN            12      /* Length of Address field */
136 +#define DUALFLAG_LEN           2       /* Dual Image flag Length */
137 +#define INACTIVEFLAG_LEN       2       /* Inactie Flag Length */
138 +#define RSASIG_LEN             20      /* Length of RSA Signature in tag */
139 +#define TAGINFO1_LEN           30      /* Length of vendor information field1 in tag */
140 +#define FLASHLAYOUTVER_LEN     4       /* Length of Flash Layout Version String tag */
141 +#define TAGINFO2_LEN           16      /* Length of vendor information field2 in tag */
142 +#define ALTTAGINFO_LEN         54      /* Alternate length for vendor information; Pirelli */
143 +
144 +#define NUM_PIRELLI            2
145 +#define IMAGETAG_CRC_START     0xFFFFFFFF
146 +
147 +#define PIRELLI_BOARDS { \
148 +       "AGPF-S0", \
149 +       "DWV-S0", \
150 +}
151 +
152 +/*
153 + * The broadcom firmware assumes the rootfs starts the image,
154 + * therefore uses the rootfs start (flash_image_address)
155 + * to determine where to flash the image.  Since we have the kernel first
156 + * we have to give it the kernel address, but the crc uses the length
157 + * associated with this address (root_length), which is added to the kernel
158 + * length (kernel_length) to determine the length of image to flash and thus
159 + * needs to be rootfs + deadcode (jffs2 EOF marker)
160 +*/
161 +
162 +struct bcm_tag {
163 +       /* 0-3: Version of the image tag */
164 +       char tag_version[TAGVER_LEN];
165 +       /* 4-23: Company Line 1 */
166 +       char sig_1[SIG1_LEN];
167 +       /*  24-37: Company Line 2 */
168 +       char sig_2[SIG2_LEN];
169 +       /* 38-43: Chip this image is for */
170 +       char chip_id[CHIPID_LEN];
171 +       /* 44-59: Board name */
172 +       char board_id[BOARDID_LEN];
173 +       /* 60-61: Map endianness -- 1 BE 0 LE */
174 +       char big_endian[ENDIANFLAG_LEN];
175 +       /* 62-71: Total length of image */
176 +       char total_length[IMAGE_LEN];
177 +       /* 72-83: Address in memory of CFE */
178 +       char cfe__address[ADDRESS_LEN];
179 +       /* 84-93: Size of CFE */
180 +       char cfe_length[IMAGE_LEN];
181 +       /* 94-105: Address in memory of image start
182 +        * (kernel for OpenWRT, rootfs for stock firmware)
183 +        */
184 +       char flash_image_start[ADDRESS_LEN];
185 +       /* 106-115: Size of rootfs */
186 +       char root_length[IMAGE_LEN];
187 +       /* 116-127: Address in memory of kernel */
188 +       char kernel_address[ADDRESS_LEN];
189 +       /* 128-137: Size of kernel */
190 +       char kernel_length[IMAGE_LEN];
191 +       /* 138-139: Unused at the moment */
192 +       char dual_image[DUALFLAG_LEN];
193 +       /* 140-141: Unused at the moment */
194 +       char inactive_flag[INACTIVEFLAG_LEN];
195 +       /* 142-161: RSA Signature (not used; some vendors may use this) */
196 +       char rsa_signature[RSASIG_LEN];
197 +       /* 162-191: Compilation and related information (not used in OpenWrt) */
198 +       char information1[TAGINFO1_LEN];
199 +       /* 192-195: Version flash layout */
200 +       char flash_layout_ver[FLASHLAYOUTVER_LEN];
201 +       /* 196-199: kernel+rootfs CRC32 */
202 +       __u32 fskernel_crc;
203 +       /* 200-215: Unused except on Alice Gate where is is information */
204 +       char information2[TAGINFO2_LEN];
205 +       /* 216-219: CRC32 of image less imagetag (kernel for Alice Gate) */
206 +       __u32 image_crc;
207 +       /* 220-223: CRC32 of rootfs partition */
208 +       __u32 rootfs_crc;
209 +       /* 224-227: CRC32 of kernel partition */
210 +       __u32 kernel_crc;
211 +       /* 228-235: Unused at present */
212 +       char reserved1[8];
213 +       /* 236-239: CRC32 of header excluding last 20 bytes */
214 +       __u32 header_crc;
215 +       /* 240-255: Unused at present */
216 +       char reserved2[16];
217 +};
218 +
219 +#endif /* __BCM63XX_TAG_H */