Lines Matching refs:fc

137 	struct esas2r_flash_context *fc =
144 if (fc->sgc.cur_offset == NULL)
155 rq->interrupt_cb = fc->interrupt_cb;
169 (*fc->interrupt_cb)(a, rq);
179 struct esas2r_flash_context *fc =
181 struct esas2r_sg_context *sgc = &fc->sgc;
185 if (fc->func == VDA_FLASH_BEGINW) {
192 rq->interrupt_cb = fc->interrupt_cb;
196 fc->func,
198 fc->flsh_addr,
208 fc->curr_len = fc->sgc.length;
219 fc->sgc.length = 0;
223 fc->flsh_addr += fc->curr_len;
305 struct esas2r_flash_context *fc =
307 struct esas2r_flash_img *fi = fc->fi;
315 memset(fc->scratch, 0, FM_BUF_SZ);
326 struct esas2r_flash_context *fc =
328 struct esas2r_flash_img *fi = fc->fi;
342 if (fc->func == VDA_FLASH_READ
343 && fc->cmp_len) {
344 ch = &fi->cmp_hdr[fc->comp_typ];
346 p = fc->scratch;
350 - fc->cmp_len; /* where we are now */
356 for (len = fc->curr_len; len; len--)
360 fc->cmp_len -= fc->curr_len; /* # left to compare */
362 /* Update fc and determine the length for the next upload */
363 if (fc->cmp_len > FM_BUF_SZ)
364 fc->sgc.length = FM_BUF_SZ;
366 fc->sgc.length = fc->cmp_len;
368 fc->sgc.cur_offset = fc->sgc_offset +
369 ((u8 *)fc->scratch - (u8 *)fi);
378 while (fc->sgc.length == 0) {
379 ch = &fi->cmp_hdr[fc->comp_typ];
381 switch (fc->task) {
388 fc->task = FMTSK_WRTBIOS;
389 fc->func = VDA_FLASH_BEGINW;
390 fc->comp_typ = CH_IT_BIOS;
391 fc->flsh_addr = FLS_OFFSET_BOOT;
392 fc->sgc.length = ch->length;
393 fc->sgc.cur_offset = fc->sgc_offset +
402 fc->task = FMTSK_READBIOS;
403 fc->func = VDA_FLASH_READ;
404 fc->flsh_addr = FLS_OFFSET_BOOT;
405 fc->cmp_len = ch->length;
406 fc->sgc.length = FM_BUF_SZ;
407 fc->sgc.cur_offset = fc->sgc_offset
408 + ((u8 *)fc->scratch -
425 fc->task = FMTSK_WRTMAC;
426 fc->func = VDA_FLASH_BEGINW;
427 fc->comp_typ = CH_IT_MAC;
428 fc->flsh_addr = FLS_OFFSET_BOOT
430 fc->sgc.length = ch->length;
431 fc->sgc.cur_offset = fc->sgc_offset +
437 fc->task = FMTSK_READMAC;
438 fc->func = VDA_FLASH_READ;
439 fc->flsh_addr -= ch->length;
440 fc->cmp_len = ch->length;
441 fc->sgc.length = FM_BUF_SZ;
442 fc->sgc.cur_offset = fc->sgc_offset
443 + ((u8 *)fc->scratch -
460 fc->task = FMTSK_WRTEFI;
461 fc->func = VDA_FLASH_BEGINW;
462 fc->comp_typ = CH_IT_EFI;
463 fc->flsh_addr = FLS_OFFSET_BOOT
466 fc->sgc.length = ch->length;
467 fc->sgc.cur_offset = fc->sgc_offset +
473 fc->task = FMTSK_READEFI;
474 fc->func = VDA_FLASH_READ;
475 fc->flsh_addr -= ch->length;
476 fc->cmp_len = ch->length;
477 fc->sgc.length = FM_BUF_SZ;
478 fc->sgc.cur_offset = fc->sgc_offset
479 + ((u8 *)fc->scratch -
496 fc->task = FMTSK_WRTCFG;
497 fc->func = VDA_FLASH_BEGINW;
498 fc->comp_typ = CH_IT_CFG;
499 fc->flsh_addr = FLS_OFFSET_CPYR - ch->length;
500 fc->sgc.length = ch->length;
501 fc->sgc.cur_offset = fc->sgc_offset +
507 fc->task = FMTSK_READCFG;
508 fc->func = VDA_FLASH_READ;
509 fc->flsh_addr = FLS_OFFSET_CPYR - ch->length;
510 fc->cmp_len = ch->length;
511 fc->sgc.length = FM_BUF_SZ;
512 fc->sgc.cur_offset = fc->sgc_offset
513 + ((u8 *)fc->scratch -
543 if (fc->func == VDA_FLASH_READ
544 && fc->sgc.length > fc->cmp_len)
545 fc->sgc.length = fc->cmp_len;
551 if (fc->comp_typ < fi->num_comps) {
552 ch = &fi->cmp_hdr[fc->comp_typ];
664 static u16 calc_fi_checksum(struct esas2r_flash_context *fc)
666 struct esas2r_flash_img *fi = fc->fi;
671 for (len = (fi->length - fc->fi_hdr_len) / 2,
672 pw = (u16 *)((u8 *)fi + fc->fi_hdr_len),
693 struct esas2r_flash_context *fc)
695 struct esas2r_flash_img *fi = fc->fi;
706 || len < fc->fi_hdr_len) {
812 if (len != fi->length - fc->fi_hdr_len) {
818 if (fi->checksum != calc_fi_checksum(fc)) {
1393 struct esas2r_flash_context *fc = &a->flash_context;
1403 memcpy(&fc->sgc, sgc, sizeof(struct esas2r_sg_context));
1404 sgc = &fc->sgc;
1405 fc->fi = fi;
1406 fc->sgc_offset = sgc->cur_offset;
1408 rq->interrupt_cx = fc;
1412 fc->scratch = ((struct esas2r_flash_img *)fi)->scratch_buf;
1413 fc->num_comps = FI_NUM_COMPS_V1;
1414 fc->fi_hdr_len = sizeof(struct esas2r_flash_img);
1427 if (!verify_fi(a, fc))
1447 fi->checksum = calc_fi_checksum(fc);
1453 fc->task = FMTSK_ERASE_BOOT;
1454 fc->func = VDA_FLASH_BEGINW;
1455 fc->comp_typ = CH_IT_CFG;
1456 fc->flsh_addr = FLS_OFFSET_BOOT;
1457 fc->sgc.length = FLS_LENGTH_BOOT;
1458 fc->sgc.cur_offset = NULL;
1461 fc->interrupt_cb = fw_download_proc;
1467 fi->num_comps = fc->num_comps;
1468 fi->length = fc->fi_hdr_len;
1511 * If we make it here, fc has been setup to do the first task. Call