/dev/nvram useable?

ron minnich rminnich at lanl.gov
Mon Sep 22 09:49:00 CEST 2003


this these.

ron
-------------- next part --------------
/*
 * $Id: rdcmos.c,v 1.1 1998/09/24 21:08:20 hendriks Exp $
 */
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <asm/io.h>

static inline
unsigned char readreg(int regno) {
  outb(regno, 0x70);
  return inb(0x71);
}

static inline
void writereg(int regno, unsigned char val) {
  outb(regno, 0x70);
  outb(val, 0x71);
}

unsigned char data[128];

int main(int argc, char *argv[]) {
  int i;
  if (ioperm(0x70, 2, 1) == -1) {
    perror("ioperm");
    exit(1);
  }
  
  for (i=0; i < 128; i++) data[i] = readreg(i);

  write(STDOUT_FILENO, data, sizeof(data));
  exit(0);
}


-------------- next part --------------
/*
 *
 * $Id: wrcmos.c,v 1.1 1998/09/24 21:08:20 hendriks Exp $
 */
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <asm/io.h>

static inline
unsigned char readreg(int regno) {
  outb(regno, 0x70);
  return inb(0x71);
}

static inline
void writereg(int regno, unsigned char val) {
  outb(regno, 0x70);
  outb(val, 0x71);
}

unsigned char data[128];

int main(int argc, char *argv[]) {
  int i;
  if (ioperm(0x70, 2, 1) == -1) {
    perror("ioperm");
    exit(1);
  }
  
  read(STDIN_FILENO, data, sizeof(data));
  for (i=0; i < 128; i++) writereg(i, data[i]);

  exit(0);
}




More information about the coreboot mailing list