Angel Pons | 4b42983 | 2020-04-02 23:48:50 +0200 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
Martin Roth | 5474eb1 | 2018-05-26 19:22:33 -0600 | [diff] [blame] | 2 | |
Stefan Reinauer | b15975b | 2011-10-21 12:57:59 -0700 | [diff] [blame] | 3 | #ifndef RAMINIT_H |
| 4 | #define RAMINIT_H |
| 5 | |
Elyes HAOUAS | c4e4193 | 2018-11-01 11:29:50 +0100 | [diff] [blame] | 6 | #include <stdint.h> |
| 7 | |
Stefan Reinauer | b15975b | 2011-10-21 12:57:59 -0700 | [diff] [blame] | 8 | #define MAX_DIMM_SOCKETS_PER_CHANNEL 4 |
| 9 | #define MAX_NUM_CHANNELS 2 |
| 10 | #define MAX_DIMM_SOCKETS (MAX_NUM_CHANNELS * MAX_DIMM_SOCKETS_PER_CHANNEL) |
| 11 | |
| 12 | struct mem_controller { |
Antonello Dettori | 7ea0fe5 | 2016-09-03 10:45:33 +0200 | [diff] [blame] | 13 | pci_devfn_t d0, d0f1; // PCI bus/device/fcns of E7501 memory controller |
Stefan Reinauer | b15975b | 2011-10-21 12:57:59 -0700 | [diff] [blame] | 14 | |
| 15 | // SMBus addresses of DIMM slots for each channel, |
| 16 | // in order from closest to MCH to furthest away |
| 17 | // 0 == not present |
| 18 | uint16_t channel0[MAX_DIMM_SOCKETS_PER_CHANNEL]; |
| 19 | uint16_t channel1[MAX_DIMM_SOCKETS_PER_CHANNEL]; |
| 20 | }; |
| 21 | |
Kyösti Mälkki | d1141ab | 2020-01-07 11:16:35 +0200 | [diff] [blame] | 22 | void sdram_initialize(void); |
Kyösti Mälkki | 93b4ed9 | 2012-04-18 21:13:33 +0300 | [diff] [blame] | 23 | |
Stefan Reinauer | b15975b | 2011-10-21 12:57:59 -0700 | [diff] [blame] | 24 | #endif /* RAMINIT_H */ |