This is a first file for the dbe62. I am adding this so others can see where to get the data sheet and maybe help me get the right values in. :-)
thanks
ron
ron minnich wrote:
This is a first file for the dbe62. I am adding this so others can see where to get the data sheet and maybe help me get the right values in. :-)
thanks
ron
...
+/* The part is a Micron MT46V16M16 P 5B
- 4 M x 16 x 5 Banks, 200 Mhz, Plastic package, TSOP, DDR400B, 5 ns CL3
- Commercial rating.
- @ 200 ns, data-out window, 1.6; access, +- 70 ns; dqs-dq skew: .4ns
- */
+/* SPD array */ +static const u8 spdbytes[] = {
- [SPD_ACCEPTABLE_CAS_LATENCIES] = 0x10,
- [SPD_BANK_DENSITY] = 0x40,
- [SPD_DEVICE_ATTRIBUTES_GENERAL] = 0xff,
- [SPD_MEMORY_TYPE] = 7,
- [SPD_MIN_CYCLE_TIME_AT_CAS_MAX] = 10, /* A guess for the tRAC value */
- [SPD_MODULE_ATTRIBUTES] = 0xff, /* FIXME later when we figure out. */
- [SPD_NUM_BANKS_PER_SDRAM] = 4,
- [SPD_PRIMARY_SDRAM_WIDTH] = 8,
- [SPD_NUM_DIMM_BANKS] = 1,
- [SPD_NUM_COLUMNS] = 0xa,
- [SPD_NUM_ROWS] = 3,
- [SPD_REFRESH] = 0x3a,
- [SPD_SDRAM_CYCLE_TIME_2ND] = 60,
- [SPD_SDRAM_CYCLE_TIME_3RD] = 75,
- [SPD_tRAS] = 40,
- [SPD_tRCD] = 15,
- [SPD_tRFC] = 70,
- [SPD_tRP] = 15,
- [SPD_tRRD] = 10,
+};
+u8 spd_read_byte(u16 device, u8 address) +{
- printk(BIOS_DEBUG, "spd_read_byte dev %04x\n", device);
- if (device != (0x50 << 1)) {
printk(BIOS_DEBUG, " returns 0xff\n");
return 0xff;
- }
- printk(BIOS_DEBUG, " addr %02x returns %02x\n", address, spdbytes[address]);
- return spdbytes[address];
+}
I see that this is done the same as the alix1c but I prefer the way that is done in v2 dbe61. There are a couple problems with doing it this way. This way makes the array as large as the last item. It also doesn't check the address against the array size. Last is that unimplemented bytes should return FF rather than 0 like a real SPD for error checking on the callers side. I admit that all this is low risk since we know what values the memory init code uses.
Marc
ah, shucks, marc, I liked my way. OK, I will convert it to dbe61 if you agree to fill in the values :-)
ron
On 20.02.2008 19:01, ron minnich wrote:
ah, shucks, marc, I liked my way. OK, I will convert it to dbe61 if you agree to fill in the values :-)
In that case we may want to revert r610. Please be aware that both the dbe61 and dbe62 boards come with varying memory setups, though, so we probably need table based initram for both.
Regards, Carl-Daniel