#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: dec_eb64plus.c,v 1.44 2025/03/09 01:06:41 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/device.h>
#include <uvm/uvm_extern.h>
#include <machine/rpb.h>
#include <machine/autoconf.h>
#include <machine/cpuconf.h>
#include <dev/pci/pcivar.h>
#include <alpha/pci/apecsreg.h>
#include <alpha/pci/apecsvar.h>
void dec_eb64plus_init(void);
static void dec_eb64plus_cons_init(void);
static void dec_eb64plus_device_register(device_t, void *);
const struct alpha_variation_table dec_eb64plus_variations[] = {
{ 0, "DEC EB64+" },
{ 0, NULL },
};
void
dec_eb64plus_init(void)
{
uint64_t variation;
platform.family = "EB64+";
if ((platform.model = alpha_dsr_sysname()) == NULL) {
variation = hwrpb->rpb_variation & SV_ST_MASK;
if ((platform.model = alpha_variation_name(variation,
dec_eb64plus_variations)) == NULL)
platform.model = alpha_unknown_sysname();
}
platform.iobus = "apecs";
platform.cons_init = dec_eb64plus_cons_init;
platform.device_register = dec_eb64plus_device_register;
uvmexp.ncolors = atop(1 * 1024 * 1024);
}
static void
dec_eb64plus_cons_init(void)
{
struct apecs_config *acp;
extern struct apecs_config apecs_configuration;
acp = &apecs_configuration;
apecs_init(acp);
pci_consinit(&acp->ac_pc, &acp->ac_iot, &acp->ac_memt,
&acp->ac_iot, &acp->ac_memt);
}
static void
dec_eb64plus_device_register(device_t dev, void *aux)
{
pci_find_bootdev(NULL, dev, aux);
}