| plan 9 kernel history: overview | file list | diff list |
1999/0504/alphapc/fdc37c93x.c (diff list | history)
| 1999/0503/sys/src/9/alphapc/fdc37c93x.c:5,7 – 1999/0504/sys/src/9/alphapc/fdc37c93x.c:5,61 (short | long) | ||
| 1999/0503 | #include "fns.h" #include "io.h" | |
| 1999/0504 | /* * SMC FDC37C93x Plug and Play Compatible Ultra I/O Controller. */ enum { /* I/O Ports */ Config = 0x370, /* could also be 0x3F0 */ Index = 0, Data = 1, }; static int fddregs[] = { 0x30, 0x60, 0x61, 0x70, 0x74, 0xF0, 0xF1, 0xF2, 0xF4, 0xF5, 0, }; void fdc37c93xdump(void) { int config, i, x; config = Config; outb(config, 0x55); outb(config, 0x55); outb(config+Index, 0x20); x = inb(config+Data); print("fdc37c93x: Device ID 0x%2.2uX\n", x); outb(config+Index, 0x07); outb(config+Data, 0); for(i = 0; fddregs[i]; i++){ outb(config+Index, fddregs[i]); x = inb(config+Data); print("FDD%2.2uX: 0x%2.2uX\n", fddregs[i], x); } outb(config, 0x70); outb(config, 0x06); outb(config, 0x74); outb(config, 0x02); outb(config, 0x30); outb(config, 0x01); outb(config, 0xAA); } | |
| 1999/0504/sys/src/9/alphapc/fdc37c93x.c:28,33 – 1999/0506/sys/src/9/alphapc/fdc37c93x.c:28,35 (short | long) | ||
| 1999/0504 | 0, }; | |
| 1999/0506 | #define OUTB(p, d) outb(p, d); microdelay(10); | |
| 1999/0504 | void fdc37c93xdump(void) { | |
| 1999/0504/sys/src/9/alphapc/fdc37c93x.c:35,61 – 1999/0506/sys/src/9/alphapc/fdc37c93x.c:37,66 | ||
| 1999/0504 | config = Config; | |
| 1999/0506 | OUTB(config, 0x55); OUTB(config, 0x55); | |
| 1999/0504 |
| |
| 1999/0506 | OUTB(config+Index, 0x20); | |
| 1999/0504 | x = inb(config+Data); print("fdc37c93x: Device ID 0x%2.2uX\n", x); | |
| 1999/0506 | OUTB(config+Index, 0x22); x = inb(config+Data); print("fdc37c93x: Power/Control 0x%2.2uX\n", x); | |
| 1999/0504 |
| |
| 1999/0506 | OUTB(config+Index, 0x07); OUTB(config+Data, 0); | |
| 1999/0504 | for(i = 0; fddregs[i]; i++){ | |
| 1999/0506 | OUTB(config+Index, fddregs[i]); | |
| 1999/0504 | x = inb(config+Data); print("FDD%2.2uX: 0x%2.2uX\n", fddregs[i], x); } | |
| 1999/0506 | OUTB(config+Index, 0x70); OUTB(config+Data, 0x06); OUTB(config+Index, 0x74); OUTB(config+Data, 0x02); OUTB(config+Index, 0x30); OUTB(config+Data, 0x01); | |
| 1999/0504 |
| |
| 1999/0506 | OUTB(config, 0xAA); | |
| 1999/0504 | } | |