Move translate_spd_to_i82810[] from .h to .c file (trivial).
This is in preparation of further i810 fixes and switching it to CAR. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5944 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
74d1a6e8a1
commit
f1aa9841a9
|
@ -57,6 +57,60 @@ Macros and definitions.
|
|||
#define RAM_COMMAND_MRS 0x6 /* Mode register set */
|
||||
#define RAM_COMMAND_CBR 0x7 /* CBR */
|
||||
|
||||
/*
|
||||
* This table is used to translate the value read from SPD Byte 31 to a value
|
||||
* the northbridge can understand in DRP, aka Rx52[7:4], [3:0]. Where most
|
||||
* northbridges have some sort of simple calculation that can be done for this,
|
||||
* I haven't yet figured out one for this northbridge. Until someone does,
|
||||
* this table is necessary.
|
||||
*/
|
||||
static const u8 translate_spd_to_i82810[] = {
|
||||
/* Note: 4MB sizes are not supported, so dual-sided DIMMs with a 4MB
|
||||
* side can't be either, at least for now.
|
||||
*/
|
||||
/* TODO: For above case, only use the other side if > 4MB, and get some
|
||||
* of these DIMMs to test it with. Same for unsupported 128/x sizes.
|
||||
*/
|
||||
|
||||
/* SPD Byte 31 Memory Size [Side 1/2] */
|
||||
0xff, /* 0x01 No memory */
|
||||
0xff, /* 0x01 4/0 */
|
||||
0x01, /* 0x02 8/0 */
|
||||
0xff, /* 0x03 8/4 */
|
||||
0x04, /* 0x04 16/0 or 16 */
|
||||
0xff, /* 0x05 16/4 */
|
||||
0x05, /* 0x06 16/8 */
|
||||
0xff, /* 0x07 Invalid */
|
||||
0x07, /* 0x08 32/0 or 32 */
|
||||
0xff, /* 0x09 32/4 */
|
||||
0xff, /* 0x0A 32/8 */
|
||||
0xff, /* 0x0B Invalid */
|
||||
0x08, /* 0x0C 32/16 */
|
||||
0xff, 0xff, 0xff, /* 0x0D-0F Invalid */
|
||||
0x0a, /* 0x10 64/0 or 64 */
|
||||
0xff, /* 0x11 64/4 */
|
||||
0xff, /* 0x12 64/8 */
|
||||
0xff, /* 0x13 Invalid */
|
||||
0xff, /* 0x14 64/16 */
|
||||
0xff, 0xff, 0xff, /* 0x15-17 Invalid */
|
||||
0x0b, /* 0x18 64/32 */
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x19-1f Invalid */
|
||||
0x0d, /* 0x20 128/0 or 128 */
|
||||
/* These configurations are not supported by the i810 */
|
||||
0xff, /* 0x21 128/4 */
|
||||
0xff, /* 0x22 128/8 */
|
||||
0xff, /* 0x23 Invalid */
|
||||
0xff, /* 0x24 128/16 */
|
||||
0xff, 0xff, 0xff, /* 0x25-27 Invalid */
|
||||
0xff, /* 0x28 128/32 */
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x29-2f Invalid */
|
||||
0x0e, /* 0x30 128/64 */
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, /* 0x31-3f Invalid */
|
||||
0x0f, /* 0x40 256/0 or 256 */
|
||||
/* Anything larger is not supported by the 82810. */
|
||||
};
|
||||
|
||||
/*
|
||||
* Table which returns the RAM size in MB when fed the DRP[7:4] or [3:0] value.
|
||||
* Note that 2 is a value which the DRP should never be programmed to.
|
||||
|
|
|
@ -27,61 +27,4 @@
|
|||
/* DIMM0 is at 0x50, DIMM1 is at 0x51. */
|
||||
#define DIMM_SPD_BASE 0x50
|
||||
|
||||
/* The following table has been bumped over to this header to avoid clutter in
|
||||
* raminit.c. It's used to translate the value read from SPD Byte 31 to a value
|
||||
* the northbridge can understand in DRP, aka Rx52[7:4], [3:0]. Where most
|
||||
* northbridges have some sort of simple calculation that can be done for this,
|
||||
* I haven't yet figured out one for this northbridge. Until someone does,
|
||||
* this table is necessary.
|
||||
*/
|
||||
|
||||
/* TODO: Find a better way of doing this. */
|
||||
|
||||
static const uint8_t translate_spd_to_i82810[] = {
|
||||
/* Note: 4MB sizes are not supported, so dual-sided DIMMs with a 4MB
|
||||
* side can't be either, at least for now.
|
||||
*/
|
||||
/* TODO: For above case, only use the other side if > 4MB, and get some
|
||||
* of these DIMMs to test it with. Same for unsupported 128/x sizes.
|
||||
*/
|
||||
|
||||
/* SPD Byte 31 Memory Size [Side 1/2] */
|
||||
0xff, /* 0x01 No memory */
|
||||
0xff, /* 0x01 4/0 */
|
||||
0x01, /* 0x02 8/0 */
|
||||
0xff, /* 0x03 8/4 */
|
||||
0x04, /* 0x04 16/0 or 16 */
|
||||
0xff, /* 0x05 16/4 */
|
||||
0x05, /* 0x06 16/8 */
|
||||
0xff, /* 0x07 Invalid */
|
||||
0x07, /* 0x08 32/0 or 32 */
|
||||
0xff, /* 0x09 32/4 */
|
||||
0xff, /* 0x0A 32/8 */
|
||||
0xff, /* 0x0B Invalid */
|
||||
0x08, /* 0x0C 32/16 */
|
||||
0xff, 0xff, 0xff, /* 0x0D-0F Invalid */
|
||||
0x0a, /* 0x10 64/0 or 64 */
|
||||
0xff, /* 0x11 64/4 */
|
||||
0xff, /* 0x12 64/8 */
|
||||
0xff, /* 0x13 Invalid */
|
||||
0xff, /* 0x14 64/16 */
|
||||
0xff, 0xff, 0xff, /* 0x15-17 Invalid */
|
||||
0x0b, /* 0x18 64/32 */
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x19-1f Invalid */
|
||||
0x0d, /* 0x20 128/0 or 128 */
|
||||
/* These configurations are not supported by the i810 */
|
||||
0xff, /* 0x21 128/4 */
|
||||
0xff, /* 0x22 128/8 */
|
||||
0xff, /* 0x23 Invalid */
|
||||
0xff, /* 0x24 128/16 */
|
||||
0xff, 0xff, 0xff, /* 0x25-27 Invalid */
|
||||
0xff, /* 0x28 128/32 */
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x29-2f Invalid */
|
||||
0x0e, /* 0x30 128/64 */
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, /* 0x31-3f Invalid */
|
||||
0x0f, /* 0x40 256/0 or 256 */
|
||||
/* Anything larger is not supported by the 82810. */
|
||||
};
|
||||
|
||||
#endif /* NORTHBRIDGE_INTEL_I82810_RAMINIT_H */
|
||||
|
|
Loading…
Reference in New Issue