Beispiel #1
0
int
csa_match(device_t parent, cfdata_t cf, void *aux)
{
	struct podule_attach_args *pa = aux;

	if (pa->pa_product == PODULE_CUMANA_SCSI1)
		return 1;

	/* PowerROM */
        if (pa->pa_product == PODULE_ALSYSTEMS_SCSI &&
            podulebus_initloader(pa) == 0 &&
            (podloader_callloader(pa, 0, 0) == PRID_CUMANA_SCSI1_8 ||
	     podloader_callloader(pa, 0, 0) == PRID_CUMANA_SCSI1_16))
                return 1;

	return 0;
}
Beispiel #2
0
void
powerrom_attach(struct device *parent, struct device *self, void *aux)
{
	struct podulebus_attach_args *pa = aux;

	if (podulebus_initloader(pa) == 0)
		printf(": card id = 0x%x", podloader_callloader(pa, 0, 0));
	printf("\n");
}
Beispiel #3
0
int
hcsc_match(device_t parent, cfdata_t cf, void *aux)
{
	struct podulebus_attach_args *pa = aux;

	/* Normal ROM */
	if (pa->pa_product == PODULE_HCCS_IDESCSI &&
	    strncmp(pa->pa_descr, "SCSI", 4) == 0)
		return 1;
	/* PowerROM */
	if (pa->pa_product == PODULE_ALSYSTEMS_SCSI &&
	    podulebus_initloader(pa) == 0 &&
	    podloader_callloader(pa, 0, 0) == PRID_HCCS_SCSI1)
		return 1;
	return 0;
}
Beispiel #4
0
int
oak_match(struct device *parent, struct cfdata *cf, void *aux)
{
	struct podulebus_attach_args *pa = aux;

	if (matchpodule(pa, MANUFACTURER_OAK, PODULE_OAK_SCSI, -1))
		return 1;

	/* PowerROM */
	if (pa->pa_product == PODULE_ALSYSTEMS_SCSI &&
	    podulebus_initloader(pa) == 0 &&
	    podloader_callloader(pa, 0, 0) == PRID_OAK_SCSI1)
		return 1;

	return 0;
}
static int
sec_match(device_t parent, cfdata_t cf, void *aux)
{
	struct podulebus_attach_args *pa = aux;

	/* Standard ROM, skipping the MCS card that used the same ID. */
	if (pa->pa_product == PODULE_ACORN_SCSI &&
	    strncmp(pa->pa_descr, "MCS", 3) != 0)
		return 1;

	/* PowerROM */
        if (pa->pa_product == PODULE_ALSYSTEMS_SCSI &&
            podulebus_initloader(pa) == 0 &&
            podloader_callloader(pa, 0, 0) == PRID_ACORN_SCSI1)
                return 1;

	return 0;
}