Changeset 798
- Timestamp:
- 05/06/00 19:49:53 (9 years ago)
- Files:
-
- lm-sensors/trunk/CHANGES (modified) (1 diff)
- lm-sensors/trunk/prog/dump/isadump.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
lm-sensors/trunk/CHANGES
r797 r798 19 19 Module via686a: Enable sensors if not enabled by BIOS 20 20 Module w83781d: Improve w83783s support, w83627hf always has 2 pwm 21 Program isadump: Add Winbond-style bank selection 21 22 Program sensors-detect: Fix i801 detection 22 23 lm-sensors/trunk/prog/dump/isadump.c
r505 r798 1 1 /* 2 2 isadump.c - Part of isadump, a user-space program to dump ISA registers 3 Copyright (c) 1999 Frodo Looijaard <frodol@dds.nl> 3 Copyright (c) 2000 Frodo Looijaard <frodol@dds.nl>, and 4 Mark D. Studebaker <mdsxyz123@yahoo.com> 4 5 5 6 This program is free software; you can redistribute it and/or modify … … 45 46 void help(void) 46 47 { 47 fprintf(stderr,"Syntax: isadump ADDRREG DATAREG \n");48 fprintf(stderr,"Syntax: isadump ADDRREG DATAREG [BANK [BANKREG]]\n"); 48 49 } 49 50 50 51 int main(int argc, char *argv[]) 51 52 { 52 int addrreg, datareg ;53 int addrreg, datareg, bank = 0, bankreg = 0x4E; 53 54 char *end; 54 55 int i,j,res; 55 56 56 57 if (argc < 2) { 57 fprintf(stderr,"Error: No address registerspecified!\n");58 fprintf(stderr,"Error: No registers specified!\n"); 58 59 help(); 59 60 exit(1); … … 69 70 fprintf(stderr,"Error: Address register out of range!\n"); 70 71 help(); 72 exit(1); 71 73 } 72 74 … … 76 78 exit(1); 77 79 } 80 78 81 datareg = strtol(argv[2],&end,0); 79 82 if (*end) { … … 85 88 fprintf(stderr,"Error: Data register out of range!\n"); 86 89 help(); 90 exit(1); 91 } 92 93 if(argc > 3) { 94 bank = strtol(argv[3],&end,0); 95 if (*end) { 96 fprintf(stderr,"Error: Invalid bank number!\n"); 97 help(); 98 exit(1); 99 } 100 if ((bank < 0) || (bank > 15)) { 101 fprintf(stderr,"Error: bank out of range (0-15)!\n"); 102 help(); 103 exit(1); 104 } 105 106 if(argc > 4) { 107 bankreg = strtol(argv[4],&end,0); 108 if (*end) { 109 fprintf(stderr,"Error: Invalid bank register number!\n"); 110 help(); 111 exit(1); 112 } 113 if ((bankreg < 0) || (bankreg > 0xff)) { 114 fprintf(stderr,"Error: bank out of range (0-0xff)!\n"); 115 help(); 116 exit(1); 117 } 118 } 87 119 } 88 120 … … 96 128 fprintf(stderr," I will probe address register 0x%04x and " 97 129 "data register 0x%04x.\n",addrreg,datareg); 130 if(bank) 131 fprintf(stderr," Probing bank %d using bank register 0x%02x.\n", 132 bank, bankreg); 98 133 fprintf(stderr," You have five seconds to reconsider and press CTRL-C!\n\n"); 99 134 sleep(5); … … 117 152 #endif 118 153 154 /* See Winbond w83781d data sheet for bank details */ 155 if(bank) { 156 outb(bankreg,addrreg); 157 outb(bank | 0x80,datareg); /* OR in high byte flag */ 158 } 159 119 160 printf(" 0 1 2 3 4 5 6 7 8 9 a b c d e f\n"); 120 161 for (i = 0; i < 256; i+=16) { … … 127 168 printf("\n"); 128 169 } 170 if(bank) { 171 outb(bankreg,addrreg); 172 outb(0x80,datareg); /* put back in bank 0 high byte */ 173 } 129 174 exit(0); 130 175 }
