#include #include #include #include main(int argc, char *argv[]) { int i; volatile unsigned char *cp; int fd; void *v; off_t nvram; size_t length = 0x1000; fd = open("/proc/bus/pci/00/0a.1",O_RDONLY); lseek(fd,0x10,0); read(fd,&nvram,sizeof(nvram)); close(fd); //printf("Star %x\n",nvram); if((fd = open("/dev/mem",O_RDWR)) != -1) { v = mmap(0, length, PROT_READ | PROT_WRITE, MAP_SHARED,fd,nvram); fprintf(stderr, "mmap returns %p\n", v); if ( v == (void *) -1) { perror("mmap"); exit(1); } } else { perror("open /dev/mem"); exit(1); } for( i = 0x836 ; i < 0x840 ; i++){ *(unsigned char *)(v+i) = 0; } }