version 1.7.2.2, 2014/05/18 17:45:38 |
version 1.8, 2013/07/19 01:02:49 |
Line 47 __KERNEL_RCSID(0, "$NetBSD$"); |
|
Line 47 __KERNEL_RCSID(0, "$NetBSD$"); |
|
#include <dev/ic/spdmemreg.h> |
#include <dev/ic/spdmemreg.h> |
#include <dev/ic/spdmemvar.h> |
#include <dev/ic/spdmemvar.h> |
|
|
|
SYSCTL_SETUP_PROTO(sysctl_spdmem_setup); |
|
|
/* Routines for decoding spd data */ |
/* Routines for decoding spd data */ |
static void decode_edofpm(const struct sysctlnode *, device_t, struct spdmem *); |
static void decode_edofpm(const struct sysctlnode *, device_t, struct spdmem *); |
static void decode_rom(const struct sysctlnode *, device_t, struct spdmem *); |
static void decode_rom(const struct sysctlnode *, device_t, struct spdmem *); |
Line 124 static const uint16_t spdmem_cycle_frac[ |
|
Line 126 static const uint16_t spdmem_cycle_frac[ |
|
/* Format string for timing info */ |
/* Format string for timing info */ |
#define LATENCY "tAA-tRCD-tRP-tRAS: %d-%d-%d-%d\n" |
#define LATENCY "tAA-tRCD-tRP-tRAS: %d-%d-%d-%d\n" |
|
|
|
/* sysctl stuff */ |
|
static int hw_node = CTL_EOL; |
|
|
/* CRC functions used for certain memory types */ |
/* CRC functions used for certain memory types */ |
|
|
static uint16_t spdcrc16 (struct spdmem_softc *sc, int count) |
static uint16_t spdcrc16 (struct spdmem_softc *sc, int count) |
Line 258 spdmem_common_attach(struct spdmem_softc |
|
Line 263 spdmem_common_attach(struct spdmem_softc |
|
* Setup our sysctl subtree, hw.spdmemN |
* Setup our sysctl subtree, hw.spdmemN |
*/ |
*/ |
sc->sc_sysctl_log = NULL; |
sc->sc_sysctl_log = NULL; |
sysctl_createv(&sc->sc_sysctl_log, 0, NULL, &node, |
if (hw_node != CTL_EOL) |
0, CTLTYPE_NODE, |
sysctl_createv(&sc->sc_sysctl_log, 0, NULL, &node, |
device_xname(self), NULL, NULL, 0, NULL, 0, |
0, CTLTYPE_NODE, |
CTL_HW, CTL_CREATE, CTL_EOL); |
device_xname(self), NULL, NULL, 0, NULL, 0, |
|
CTL_HW, CTL_CREATE, CTL_EOL); |
if (node != NULL && spd_len != 0) |
if (node != NULL && spd_len != 0) |
sysctl_createv(&sc->sc_sysctl_log, 0, NULL, NULL, |
sysctl_createv(&sc->sc_sysctl_log, 0, NULL, NULL, |
0, |
0, |
Line 384 spdmem_common_detach(struct spdmem_softc |
|
Line 390 spdmem_common_detach(struct spdmem_softc |
|
return 0; |
return 0; |
} |
} |
|
|
|
SYSCTL_SETUP(sysctl_spdmem_setup, "sysctl hw.spdmem subtree setup") |
|
{ |
|
const struct sysctlnode *node; |
|
|
|
if (sysctl_createv(clog, 0, NULL, &node, |
|
#ifdef _MODULE |
|
0, |
|
#else |
|
CTLFLAG_PERMANENT, |
|
#endif |
|
CTLTYPE_NODE, "hw", NULL, NULL, 0, NULL, 0, |
|
CTL_HW, CTL_EOL) != 0) |
|
return; |
|
|
|
hw_node = node->sysctl_num; |
|
} |
|
|
static void |
static void |
decode_size_speed(device_t self, const struct sysctlnode *node, |
decode_size_speed(device_t self, const struct sysctlnode *node, |
int dimm_size, int cycle_time, int d_clk, int bits, |
int dimm_size, int cycle_time, int d_clk, int bits, |