Ejemplo n.º 1
0
void
register_keycache(u_int nslots,
	int def_srev_min, int def_srev_max, int def_phy_min, int def_phy_max)
{
#define	SET(r, a) do { \
	r->addr = a; r->type = DUMP_KEYCACHE; r++; \
} while(0)
	struct dumpreg *keyregs, *r;
	int i;

	keyregs = (struct dumpreg *) calloc(nslots, 8*sizeof(struct dumpreg));
	if (keyregs == NULL)
		errx(-1, "no space to %d keycache slots\n", nslots);
	r = keyregs;
	for (i = 0; i < nslots; i++) {
		SET(r, AR_KEYTABLE_KEY0(i));
		SET(r, AR_KEYTABLE_KEY1(i));
		SET(r, AR_KEYTABLE_KEY2(i));
		SET(r, AR_KEYTABLE_KEY3(i));
		SET(r, AR_KEYTABLE_KEY4(i));
		SET(r, AR_KEYTABLE_TYPE(i));
		SET(r, AR_KEYTABLE_MAC0(i));
		SET(r, AR_KEYTABLE_MAC1(i));
	}
	register_regs(keyregs, 8*nslots,
	    def_srev_min, def_srev_max, def_phy_min, def_phy_max);
#undef SET
}
Ejemplo n.º 2
0
static __constructor void
ar5210_ctor(void)
{
#define	MAC5210	SREV(1,0), SREV(2,0)
    register_regs(ar5210regs, nitems(ar5210regs), MAC5210, PHYANY);
    register_keycache(64, MAC5210, PHYANY);

    register_range(0x9800, 0x9840, DUMP_BASEBAND, MAC5210, PHYANY);
}
Ejemplo n.º 3
0
static __constructor void
ar5211_ctor(void)
{
#define	MAC5211	SREV(2,0), SREV(4,5)
	register_regs(ar5211regs, N(ar5211regs), MAC5211, PHYANY);
	register_keycache(128, MAC5211, PHYANY);

	register_range(0x9800, 0x987c, DUMP_BASEBAND, MAC5211, PHYANY);
	register_range(0x9900, 0x995c, DUMP_BASEBAND, MAC5211, PHYANY);
	register_range(0x9c00, 0x9c1c, DUMP_BASEBAND, MAC5211, PHYANY);
}
Ejemplo n.º 4
0
static __constructor void
ar5212_ctor(void)
{
	register_regs(ar5212regs, N(ar5212regs), MAC5212, PHYANY);
	register_keycache(128, MAC5212, PHYANY);

	register_range(0x9800, 0x987c, DUMP_BASEBAND, MAC5212, PHYANY);
	register_range(0x9900, 0x995c, DUMP_BASEBAND, MAC5212, PHYANY);
	register_range(0x9c00, 0x9c1c, DUMP_BASEBAND, MAC5212, PHYANY);
	register_range(0xa180, 0xa238, DUMP_BASEBAND, MAC5212, PHYANY);
	register_range(0xa258, 0xa26c, DUMP_BASEBAND,
	    SREV(7,8), SREV(15,15), PHYANY);
}
Ejemplo n.º 5
0
static __constructor void
ar5416_ctor(void)
{
	register_regs(ar5416regs, N(ar5416regs), MAC5416, PHYANY);
	register_keycache(128, MAC5416, PHYANY);

	register_range(0x9800, 0x987c, DUMP_BASEBAND, MAC5416, PHYANY);
	register_range(0x9900, 0x997c, DUMP_BASEBAND, MAC5416, PHYANY);
	register_range(0x99a4, 0x99a4, DUMP_BASEBAND, MAC5416, PHYANY);
	register_range(0x9c00, 0x9c1c, DUMP_BASEBAND, MAC5416, PHYANY);
	register_range(0xa180, 0xa238, DUMP_BASEBAND, MAC5416, PHYANY);
	register_range(0xa258, 0xa26c, DUMP_BASEBAND, MAC5416, PHYANY);
	register_range(0xa3c8, 0xa3d4, DUMP_BASEBAND, MAC5416, PHYANY);
	register_range(0xa864, 0xa864, DUMP_BASEBAND, MAC5416, PHYANY);
	register_range(0xa9bc, 0xa9bc, DUMP_BASEBAND, MAC5416, PHYANY);
	register_range(0xb864, 0xb864, DUMP_BASEBAND, MAC5416, PHYANY);
	register_range(0xb9bc, 0xb9bc, DUMP_BASEBAND, MAC5416, PHYANY);
}
Ejemplo n.º 6
0
void
register_range(u_int brange, u_int erange, int type,
	int def_srev_min, int def_srev_max, int def_phy_min, int def_phy_max)
{
	struct dumpreg *bbregs, *r;
	int i, nregs;

	nregs = (erange - brange) / sizeof(uint32_t);
	bbregs = (struct dumpreg *) calloc(nregs, sizeof(struct dumpreg));
	if (bbregs == NULL)
		errx(-1, "no space for %d register slots (type %d)\n",
		    nregs, type);
	r = bbregs;
	for (i = 0; i < nregs; i++) {
		r->addr = brange + (i<<2);
		r->type = type;
		r++;
	}
	register_regs(bbregs, nregs,
	    def_srev_min, def_srev_max, def_phy_min, def_phy_max);
}