#define NVRAM_REG_DIAGNOSTIC_STATUS 0x0e
#define NVRAM_REG_SHUTDOWN_STATUS 0x0f
+#define NVRAM_IBM_HD_DATA 0x12
+
#define NVRAM_REG_FLOPPY_TYPE 0x10
#define NVRAM_REG_EQUIPMENT_BYTE 0x14
//
// 2 1.44 MB floppy drives
//
+#if 1
nvram_state->mem_state[NVRAM_REG_FLOPPY_TYPE]= 0x44;
+#else
+ nvram_state->mem_state[NVRAM_REG_FLOPPY_TYPE] = 0x00;
+#endif
//
// For old boot sequence style, do floppy first
// Set equipment byte to note 2 floppies, vga display, keyboard,math,floppy
nvram_state->mem_state[NVRAM_REG_EQUIPMENT_BYTE]= 0x4f;
+ //nvram_state->mem_state[NVRAM_REG_EQUIPMENT_BYTE] = 0xf;
// Set conventional memory to 640K
nvram_state->mem_state[NVRAM_REG_BASE_MEMORY_HIGH]= 0x02;
nvram_state->mem_state[NVRAM_REG_EXT_MEMORY_2ND_LOW]= 0x00;
// Set the extended memory beyond 16 MB to 128-16 MB
- nvram_state->mem_state[NVRAM_REG_AMI_BIG_MEMORY_HIGH]= 0x7;
+ // nvram_state->mem_state[NVRAM_REG_AMI_BIG_MEMORY_HIGH]= 0x7;
+ //nvram_state->mem_state[NVRAM_REG_AMI_BIG_MEMORY_LOW]= 0x00;
+
+ nvram_state->mem_state[NVRAM_REG_AMI_BIG_MEMORY_HIGH]= 0x00;
nvram_state->mem_state[NVRAM_REG_AMI_BIG_MEMORY_LOW]= 0x00;
+ // This is the harddisk type.... Set accordingly...
+ nvram_state->mem_state[NVRAM_IBM_HD_DATA] = 0x20;
+
+ // Set the shutdown status gently
+ // soft reset
+ nvram_state->mem_state[NVRAM_REG_SHUTDOWN_STATUS] = 0x0;
+
+
+ // RTC status A
+ // time update in progress, default timebase (32KHz, default interrupt rate 1KHz)
+ // 10100110
+ nvram_state->mem_state[NVRAM_REG_STAT_A] = 0xa6;
+
+ // RTC status B
+ // time updates, default timebase (32KHz, default interrupt rate 1KHz)
+ // 10100110
+ //nvram_state->mem_state[NVRAM_REG_STAT_B] = 0xa6;
+
+
return 0;
struct nvram_internal *data = (struct nvram_internal *) dev->private_data;
memcpy(&(data->thereg), src, 1);
+ PrintDebug("Writing To NVRAM reg: 0x%x\n", data->thereg);
return 1;
memcpy(dst, &(data->mem_state[data->thereg]), 1);
- SerialPrint("nvram_read_data_port(%x)=%x\n",data->thereg,data->mem_state[data->thereg]);
+ PrintDebug("nvram_read_data_port(0x%x)=0x%x\n", data->thereg, data->mem_state[data->thereg]);
+
+ // hack
+ if (data->thereg==NVRAM_REG_STAT_A) {
+ data->mem_state[data->thereg] ^= 0x80; // toggle Update in progess
+ }
+
return 1;
}
memcpy(&(data->mem_state[data->thereg]), src, 1);
- SerialPrint("nvram_write_data_port(%x)=%x\n",data->thereg,data->mem_state[data->thereg]);
+ PrintDebug("nvram_write_data_port(0x%x)=0x%x\n", data->thereg, data->mem_state[data->thereg]);
return 1;
}