Module Name: src Committed By: cegger Date: Thu Aug 26 07:04:05 UTC 2010
Modified Files: src/usr.sbin/fwctl: fwcontrol.c Log Message: show crom: Print calculated crc. When crc does not match then print expected crc. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/usr.sbin/fwctl/fwcontrol.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.sbin/fwctl/fwcontrol.c diff -u src/usr.sbin/fwctl/fwcontrol.c:1.9 src/usr.sbin/fwctl/fwcontrol.c:1.10 --- src/usr.sbin/fwctl/fwcontrol.c:1.9 Tue Aug 24 08:41:24 2010 +++ src/usr.sbin/fwctl/fwcontrol.c Thu Aug 26 07:04:04 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fwcontrol.c,v 1.9 2010/08/24 08:41:24 cegger Exp $ */ +/* $NetBSD: fwcontrol.c,v 1.10 2010/08/26 07:04:04 cegger Exp $ */ /* * Copyright (C) 2002 * Hidetoshi Shimokawa. All rights reserved. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> //__FBSDID("$FreeBSD: src/usr.sbin/fwcontrol/fwcontrol.c,v 1.23 2006/10/26 22:33:38 imp Exp $"); -__RCSID("$NetBSD: fwcontrol.c,v 1.9 2010/08/24 08:41:24 cegger Exp $"); +__RCSID("$NetBSD: fwcontrol.c,v 1.10 2010/08/26 07:04:04 cegger Exp $"); #include <sys/param.h> #include <sys/malloc.h> @@ -401,6 +401,15 @@ } static void +show_crc(uint16_t crc, uint16_t good_crc) +{ + if (crc == good_crc) + printf("(OK)\n"); + else + printf("(NG, 0x%x)\n", good_crc); +} + +static void show_crom(uint32_t *crom_buf) { int i; @@ -422,16 +431,13 @@ if (hdr->info_len == 1) { /* minimum ROM */ reg = (struct csrreg *)hdr; - printf("verndor ID: 0x%06x\n", reg->val); + printf("vendor ID: 0x%06x\n", reg->val); return; } - printf("info_len=%d crc_len=%d crc=0x%04x", - hdr->info_len, hdr->crc_len, hdr->crc); crc = crom_crc(crom_buf+1, hdr->crc_len); - if (crc == hdr->crc) - printf("(OK)\n"); - else - printf("(NG)\n"); + printf("info_len=%d crc_len=%d crc=0x%04x ", + hdr->info_len, hdr->crc_len, crc); + show_crc(crc, hdr->crc); parse_bus_info_block(crom_buf+1); crom_init_context(&cc, crom_buf); @@ -440,13 +446,10 @@ printf("no root directory - giving up\n"); return; } - printf("root_directory: len=0x%04x(%d) crc=0x%04x", - dir->crc_len, dir->crc_len, dir->crc); crc = crom_crc((uint32_t *)&dir->entry[0], dir->crc_len); - if (crc == dir->crc) - printf("(OK)\n"); - else - printf("(NG)\n"); + printf("root_directory: len=0x%04x(%d) crc=0x%04x ", + dir->crc_len, dir->crc_len, crc); + show_crc(crc, dir->crc); if (dir->crc_len < 1) return; while (cc.depth >= 0) {