- printf("Min clock delay, back-to-back random column addresses %d\n",
- data[15]);
- printf("Burst length(s) ");
- if(data[16] & 0x80) printf(" Page");
- if(data[16] & 0x08) printf(" 8");
- if(data[16] & 0x04) printf(" 4");
- if(data[16] & 0x02) printf(" 2");
- if(data[16] & 0x01) printf(" 1");
- printf("\n");
- printf("Number of banks %d\n", data[17]);
- printf("CAS latency(s) ");
- if(data[18] & 0x80) printf(" TBD");
- if(data[18] & 0x40) printf(" 7");
- if(data[18] & 0x20) printf(" 6");
- if(data[18] & 0x10) printf(" 5");
- if(data[18] & 0x08) printf(" 4");
- if(data[18] & 0x04) printf(" 3");
- if(data[18] & 0x02) printf(" 2");
- if(data[18] & 0x01) printf(" 1");
- printf("\n");
- printf("CS latency(s) ");
- if(data[19] & 0x80) printf(" TBD");
- if(data[19] & 0x40) printf(" 6");
- if(data[19] & 0x20) printf(" 5");
- if(data[19] & 0x10) printf(" 4");
- if(data[19] & 0x08) printf(" 3");
- if(data[19] & 0x04) printf(" 2");
- if(data[19] & 0x02) printf(" 1");
- if(data[19] & 0x01) printf(" 0");
- printf("\n");
- printf("WE latency(s) ");
- if(data[20] & 0x80) printf(" TBD");
- if(data[20] & 0x40) printf(" 6");
- if(data[20] & 0x20) printf(" 5");
- if(data[20] & 0x10) printf(" 4");
- if(data[20] & 0x08) printf(" 3");
- if(data[20] & 0x04) printf(" 2");
- if(data[20] & 0x02) printf(" 1");
- if(data[20] & 0x01) printf(" 0");
- printf("\n");
- printf("Module attributes:\n");
- if(!data[21]) printf(" (none)\n");
- if(data[21] & 0x80) printf(" TBD (bit 7)\n");
- if(data[21] & 0x40) printf(" Redundant row address\n");
- if(data[21] & 0x20) printf(" Differential clock input\n");
- if(data[21] & 0x10) printf(" Registerd DQMB inputs\n");
- if(data[21] & 0x08) printf(" Buffered DQMB inputs\n");
- if(data[21] & 0x04) printf(" On-card PLL\n");
- if(data[21] & 0x02) printf(" Registered address/control lines\n");
- if(data[21] & 0x01) printf(" Buffered address/control lines\n");
- printf("Device attributes:\n");
- if(data[22] & 0x80) printf(" TBD (bit 7)\n");
- if(data[22] & 0x40) printf(" TBD (bit 6)\n");
- if(data[22] & 0x20) printf(" Upper Vcc tolerance 5%%\n");
- else printf(" Upper Vcc tolerance 10%%\n");
- if(data[22] & 0x10) printf(" Lower Vcc tolerance 5%%\n");
- else printf(" Lower Vcc tolerance 10%%\n");
- if(data[22] & 0x08) printf(" Supports write1/read burst\n");
- if(data[22] & 0x04) printf(" Supports precharge all\n");
- if(data[22] & 0x02) printf(" Supports auto precharge\n");
- if(data[22] & 0x01) printf(" Supports early RAS# precharge\n");
- printf("SDRAM cycle time (2nd highest CAS latency) %d.%d nS\n",
- (data[23] >> 4) & 0x0F, data[23] & 0x0F);
- printf("SDRAM access from clock (2nd highest CAS latency) %d.%d nS\n",
- (data[24] >> 4) & 0x0F, data[24] & 0x0F);
- printf("SDRAM cycle time (3rd highest CAS latency) %d.%d nS\n",
- (data[25] >> 4) & 0x0F, data[25] & 0x0F);
- printf("SDRAM access from clock (3rd highest CAS latency) %d.%d nS\n",
- (data[26] >> 4) & 0x0F, data[26] & 0x0F);
- printf("Minimum row precharge %d nS\n", data[27]);
- printf("Row active to row active min %d nS\n", data[28]);
- printf("RAS to CAS delay min %d nS\n", data[29]);
- printf("Minimum RAS pulse width %d nS\n", data[30]);
- printf("Density of each row ");
- if(data[31] & 0x80) printf(" 512MByte");
- if(data[31] & 0x40) printf(" 256MByte");
- if(data[31] & 0x20) printf(" 128MByte");
- if(data[31] & 0x10) printf(" 64MByte");
- if(data[31] & 0x08) printf(" 32MByte");
- if(data[31] & 0x04) printf(" 16MByte");
- if(data[31] & 0x02) printf(" 8MByte");
- if(data[31] & 0x01) printf(" 4MByte");
- printf("\n");
- printf("Command and Address setup %c%d.%d nS\n",
- (data[32] & 0x80) ? '-' : '+',
- (data[32] >> 4) & 0x07, data[32] & 0x0F);
- printf("Command and Address hold %c%d.%d nS\n",
- (data[33] & 0x80) ? '-' : '+',
- (data[33] >> 4) & 0x07, data[33] & 0x0F);
- printf("Data signal input setup %c%d.%d nS\n",
- (data[34] & 0x80) ? '-' : '+',
- (data[34] >> 4) & 0x07, data[34] & 0x0F);
- printf("Data signal input hold %c%d.%d nS\n",
- (data[35] & 0x80) ? '-' : '+',
- (data[35] >> 4) & 0x07, data[35] & 0x0F);
- printf("Manufacturer's JEDEC ID ");
- for(j = 64; j <= 71; j++)
- printf("%02X ", data[j]);
- printf("\n");
- printf("Manufacturing Location %02X\n", data[72]);
- printf("Manufacturer's Part Number ");
- for(j = 73; j <= 90; j++)
- printf("%02X ", data[j]);
- printf("\n");
- printf("Revision Code %02X %02X\n", data[91], data[92]);
- printf("Manufacturing Date %02X %02X\n", data[93], data[94]);
- printf("Assembly Serial Number ");
- for(j = 95; j <= 98; j++)
- printf("%02X ", data[j]);
- printf("\n");
- printf("Speed rating PC%d\n",
- data[126] == 0x66 ? 66 : data[126]);