Lines Matching defs:block

165 static void dnet_dump_block(media_block_t *block);
181 media_block_t *block, uchar_t *vi);
1870 media_block_t *block = dnetp->selected_media_block;
1881 fd = block->media_code == MEDIA_TP_FD ||
1882 block->media_code == MEDIA_SYM_SCR_FD;
1967 media_block_t *block = dnetp->selected_media_block;
1979 * block has been selected.
1981 if (block->rstseqlen) {
1982 for (i = 0; i < block->rstseqlen; i++)
1983 write_gpr(dnetp, block->rstseq[i]);
1988 block->rstseqlen = 0;
1994 for (i = 0; i < block->gprseqlen; i++)
1995 write_gpr(dnetp, block->gprseq[i]);
2014 media_block_t *block = dnetp->selected_media_block;
2016 ASSERT(block);
2055 val |= ((block->command & CMD_SCR) && !dnetp->disable_scrambler) ?
2063 fd = block->media_code == MEDIA_TP_FD ||
2064 block->media_code == MEDIA_SYM_SCR_FD;
2068 val |= block->command & CMD_PS ? (PORT_SELECT | HEARTBEAT_DISABLE) : 0;
2071 val |= (block->command) & CMD_PCS ? PCS_FUNCTION : 0;
2086 media_block_t *block = dnetp->selected_media_block;
2089 if (block->type == 2) {
2095 block->un.sia.csr13,
2096 block->un.sia.csr14,
2097 block->un.sia.csr15);
2106 block->un.sia.csr14);
2112 dnetp->gprsia = (dnetp->gprsia&0xffff0000)|block->un.sia.csr15;
2119 block->un.sia.csr13);
2774 * Free the receive buffer used in a stream's message block allocated
3069 * version 1 and 3 of this card did not check the id block CRC value
3151 media_block_t *block;
3186 * Media block and work back to the beginning.
3196 for (block = leaf->block + leaf->block_count - 1;
3197 block >= leaf->block; block--) {
3198 int media = block->media_code;
3200 /* User settings disallow selection of this block */
3205 if (best_allowed == NULL || block == leaf->default_block)
3206 best_allowed = block;
3209 cmn_err(CE_NOTE, "Testing %s medium (block type %d)",
3210 media_str[media], block->type);
3213 dnetp->selected_media_block = block;
3214 switch (block->type) {
3216 case 2: /* SIA Media block: Best we can do is send a packet */
3222 fd_found = block;
3226 /* SYM/SCR or TP block: Use the link-sense bits */
3269 hd_found = block;
3277 fd_found = block;
3283 * MII block: May take up to a second or so to settle if
3296 leaf->mii_block = block;
3343 media_block_t *block = dnetp->selected_media_block;
3351 if (block->command & (1 << 15)) {
3352 /* This should be the default block */
3353 if (block->command & (1UL<<14))
3354 dnetp->sr.leaf[dnetp->leaf].default_block = block;
3372 if (block->media_code == MEDIA_TP || block->media_code == MEDIA_TP_FD)
3378 mask = 1 << ((block->command & CMD_MEDIABIT_MASK) >> 1);
3379 polarity = block->command & CMD_POL ? 0xffffffff : 0;
3763 media_block_t *block;
3769 * Find and configure the PHY media block. If NO PHY blocks are
3775 for (block = leaf->block + leaf->block_count -1;
3776 block >= leaf->block; block --) {
3777 if (block->type == 3 || block->type == 1) {
3778 leaf->mii_block = block;
3784 * If no MII block, select default, and hope this configuration will
4112 vi = parse_media_block(dnetp, leaf->block + i, vi);
4113 if (leaf->block[i].command & CMD_DEFAULT_MEDIUM)
4114 leaf->default_block = leaf->block+i;
4116 /* No explicit default block: use last in the ROM */
4118 leaf->default_block = leaf->block + leaf->block_count -1;
4123 parse_media_block(struct dnetinstance *dnetp, media_block_t *block, uchar_t *vi)
4128 * There are three kinds of media block we need to worry about:
4131 * 2114[023] block from a version 3 SROM
4136 block->media_code = *vi & 0x3f;
4137 block->type = 2;
4139 block->un.sia.csr13 = *vi++;
4140 block->un.sia.csr13 |= *vi++ << 8;
4141 block->un.sia.csr14 = *vi++;
4142 block->un.sia.csr14 |= *vi++ << 8;
4143 block->un.sia.csr15 = *vi++;
4144 block->un.sia.csr15 |= *vi++ << 8;
4147 switch (block->media_code) {
4149 block->un.sia.csr13 = 0xef01;
4150 block->un.sia.csr14 = 0x7f3f;
4151 block->un.sia.csr15 = 0x0008;
4154 block->un.sia.csr13 = 0xef01;
4155 block->un.sia.csr14 = 0x7f3d;
4156 block->un.sia.csr15 = 0x0008;
4159 block->un.sia.csr13 = 0xef09;
4160 block->un.sia.csr14 = 0x0705;
4161 block->un.sia.csr15 = 0x0006;
4164 block->un.sia.csr13 = 0xef09;
4165 block->un.sia.csr14 = 0x0705;
4166 block->un.sia.csr15 = 0x000e;
4172 block->type = *vi++;
4173 switch (block->type) {
4175 block->media_code = (*vi++) & 0x3f;
4176 block->gprseqlen = 1;
4177 block->gprseq[0] = *vi++;
4178 block->command = *vi++;
4179 block->command |= *vi++ << 8;
4183 block->command = CMD_PS;
4184 block->media_code = MEDIA_MII;
4187 block->un.mii.phy_num = *vi++;
4188 block->gprseqlen = *vi++;
4190 for (i = 0; i < block->gprseqlen; i++)
4191 block->gprseq[i] = *vi++;
4192 block->rstseqlen = *vi++;
4193 for (i = 0; i < block->rstseqlen; i++)
4194 block->rstseq[i] = *vi++;
4196 block->un.mii.mediacaps = *vi++;
4197 block->un.mii.mediacaps |= *vi++ << 8;
4198 block->un.mii.nwayadvert = *vi++;
4199 block->un.mii.nwayadvert |= *vi++ << 8;
4200 block->un.mii.fdxmask = *vi++;
4201 block->un.mii.fdxmask |= *vi++ << 8;
4202 block->un.mii.ttmmask = *vi++;
4203 block->un.mii.ttmmask |= *vi++ << 8;
4207 block->media_code = *vi & 0x3f;
4209 block->un.sia.csr13 = *vi++;
4210 block->un.sia.csr13 |= *vi++ << 8;
4211 block->un.sia.csr14 = *vi++;
4212 block->un.sia.csr14 |= *vi++ << 8;
4213 block->un.sia.csr15 = *vi++;
4214 block->un.sia.csr15 |= *vi++ << 8;
4220 switch (block->media_code) {
4222 block->un.sia.csr13 = 0x0009;
4223 block->un.sia.csr14 = 0x0705;
4224 block->un.sia.csr15 = 0x0000;
4227 block->un.sia.csr13 = 0x0009;
4228 block->un.sia.csr14 = 0x0705;
4229 block->un.sia.csr15 = 0x0008;
4232 block->un.sia.csr13 = 0x0001;
4233 block->un.sia.csr14 = 0x7f3f;
4234 block->un.sia.csr15 = 0x0000;
4237 block->un.sia.csr13 = 0x0001;
4238 block->un.sia.csr14 = 0x7f3d;
4239 block->un.sia.csr15 = 0x0000;
4242 block->un.sia.csr13 = 0x0000;
4243 block->un.sia.csr14 = 0x0000;
4244 block->un.sia.csr15 = 0x0000;
4249 block->gprseqlen = 2;
4250 block->gprseq[0] = *vi++;
4251 block->gprseq[0] |= *vi++ << 8;
4252 block->gprseq[0] |= GPR_CONTROL_WRITE;
4253 block->gprseq[1] = *vi++;
4254 block->gprseq[1] |= *vi++ << 8;
4258 block->command = CMD_PS;
4259 block->media_code = MEDIA_MII;
4260 block->un.mii.phy_num = *vi++;
4262 block->gprseqlen = *vi++;
4263 for (i = 0; i < block->gprseqlen; i++) {
4264 block->gprseq[i] = *vi++;
4265 block->gprseq[i] |= *vi++ << 8;
4268 block->rstseqlen = *vi++;
4269 for (i = 0; i < block->rstseqlen; i++) {
4270 block->rstseq[i] = *vi++;
4271 block->rstseq[i] |= *vi++ << 8;
4273 block->un.mii.mediacaps = *vi++;
4274 block->un.mii.mediacaps |= *vi++ << 8;
4275 block->un.mii.nwayadvert = *vi++;
4276 block->un.mii.nwayadvert |= *vi++ << 8;
4277 block->un.mii.fdxmask = *vi++;
4278 block->un.mii.fdxmask |= *vi++ << 8;
4279 block->un.mii.ttmmask = *vi++;
4280 block->un.mii.ttmmask |= *vi++ << 8;
4281 block->un.mii.miiintr |= *vi++;
4285 block->media_code = *vi++ & 0x3f;
4287 block->gprseqlen = 2;
4288 block->gprseq[0] = *vi++;
4289 block->gprseq[0] |= *vi++ << 8;
4290 block->gprseq[0] |= GPR_CONTROL_WRITE;
4291 block->gprseq[1] = *vi++;
4292 block->gprseq[1] |= *vi++ << 8;
4293 block->command = *vi++;
4294 block->command |= *vi++ << 8;
4298 block->rstseqlen = *vi++;
4299 for (i = 0; i < block->rstseqlen; i++)
4300 block->rstseq[i] = *vi++;
4303 default: /* Unknown media block. Skip it. */
4304 cmn_err(CE_WARN, "dnet: Unsupported SROM block.");
4309 block->type = 0;
4310 block->media_code = *vi++ & 0x3f;
4311 block->gprseqlen = 1;
4312 block->gprseq[0] = *vi++;
4313 block->command = *vi++;
4314 block->command |= (*vi++) << 8;
4330 media_block_t *block;
4335 leaf->default_block = &leaf->block[3];
4337 block = leaf->block;
4338 block->media_code = MEDIA_TP_FD;
4339 block->type = 0;
4340 block->command = 0x8e; /* PCS, PS off, media sense: bit7, pol=1 */
4341 block++;
4342 block->media_code = MEDIA_TP;
4343 block->type = 0;
4344 block->command = 0x8e; /* PCS, PS off, media sense: bit7, pol=1 */
4345 block++;
4346 block->media_code = MEDIA_SYM_SCR_FD;
4347 block->type = 0;
4348 block->command = 0x6d; /* PCS, PS, SCR on, media sense: bit6, pol=0 */
4349 block++;
4350 block->media_code = MEDIA_SYM_SCR;
4351 block->type = 0;
4352 block->command = 0x406d; /* PCS, PS, SCR on, media sense: bit6, pol=0 */
4357 leaf->default_block = &leaf->block[4];
4359 block = leaf->block; /* BNC */
4360 block->media_code = MEDIA_BNC;
4361 block->type = 0;
4362 block->command = 0x8000; /* No media sense, PCS, SCR, PS all off */
4363 block->gprseqlen = 2;
4364 block->rstseqlen = 0;
4365 block->gprseq[0] = 0x13f;
4366 block->gprseq[1] = 1;
4368 block++;
4369 block->media_code = MEDIA_TP_FD;
4370 block->type = 0;
4371 block->command = 0x8e; /* PCS, PS off, media sense: bit7, pol=1 */
4372 block->gprseqlen = 2;
4373 block->rstseqlen = 0;
4374 block->gprseq[0] = 0x13f;
4375 block->gprseq[1] = 0x26;
4377 block++; /* 10BaseT */
4378 block->media_code = MEDIA_TP;
4379 block->type = 0;
4380 block->command = 0x8e; /* PCS, PS off, media sense: bit7, pol=1 */
4381 block->gprseqlen = 2;
4382 block->rstseqlen = 0;
4383 block->gprseq[0] = 0x13f;
4384 block->gprseq[1] = 0x3e;
4386 block++; /* 100BaseTX-FD */
4387 block->media_code = MEDIA_SYM_SCR_FD;
4388 block->type = 0;
4389 block->command = 0x6d; /* PCS, PS, SCR on, media sense: bit6, pol=0 */
4390 block->gprseqlen = 2;
4391 block->rstseqlen = 0;
4392 block->gprseq[0] = 0x13f;
4393 block->gprseq[1] = 1;
4395 block++; /* 100BaseTX */
4396 block->media_code = MEDIA_SYM_SCR;
4397 block->type = 0;
4398 block->command = 0x406d; /* PCS, PS, SCR on, media sense: bit6, pol=0 */
4399 block->gprseqlen = 2;
4400 block->rstseqlen = 0;
4401 block->gprseq[0] = 0x13f;
4402 block->gprseq[1] = 1;
4407 leaf->mii_block = leaf->block;
4408 leaf->default_block = &leaf->block[0];
4410 block = leaf->block;
4411 block->media_code = MEDIA_MII;
4412 block->type = 1; /* MII Block type 1 */
4413 block->command = 1; /* Port select */
4414 block->gprseqlen = 0;
4415 block->rstseqlen = 0;
4420 leaf->default_block = &leaf->block[0];
4422 block = leaf->block;
4423 block->media_code = MEDIA_MII;
4424 block->type = 1; /* MII Block type 1 */
4425 block->command = 1; /* Port select */
4426 block->gprseqlen = 3;
4427 block->rstseqlen = 0;
4428 block->gprseq[0] = 0x180;
4429 block->gprseq[1] = 0x80;
4430 block->gprseq[2] = 0x0;
4436 leaf->default_block = &leaf->block[3];
4438 block = leaf->block;
4439 block->media_code = MEDIA_AUI;
4440 block->type = 2;
4441 block->un.sia.csr13 = 0xef09;
4442 block->un.sia.csr14 = 0x0705;
4443 block->un.sia.csr15 = 0x000e;
4445 block++;
4446 block->media_code = MEDIA_TP_FD;
4447 block->type = 2;
4448 block->un.sia.csr13 = 0xef01;
4449 block->un.sia.csr14 = 0x7f3d;
4450 block->un.sia.csr15 = 0x0008;
4452 block++;
4453 block->media_code = MEDIA_BNC;
4454 block->type = 2;
4455 block->un.sia.csr13 = 0xef09;
4456 block->un.sia.csr14 = 0x0705;
4457 block->un.sia.csr15 = 0x0006;
4459 block++;
4460 block->media_code = MEDIA_TP;
4461 block->type = 2;
4462 block->un.sia.csr13 = 0xef01;
4463 block->un.sia.csr14 = 0x7f3f;
4464 block->un.sia.csr15 = 0x0008;
4470 block = leaf->block;
4471 block->media_code = MEDIA_AUI;
4472 block->type = 2;
4473 block->un.sia.csr13 = 0x8f09;
4474 block->un.sia.csr14 = 0x0705;
4475 block->un.sia.csr15 = 0x000e;
4476 block++;
4477 block->media_code = MEDIA_TP_FD;
4478 block->type = 2;
4479 block->un.sia.csr13 = 0x0f01;
4480 block->un.sia.csr14 = 0x7f3d;
4481 block->un.sia.csr15 = 0x0008;
4482 block++;
4483 block->media_code = MEDIA_BNC;
4484 block->type = 2;
4485 block->un.sia.csr13 = 0xef09;
4486 block->un.sia.csr14 = 0x0705;
4487 block->un.sia.csr15 = 0x0006;
4488 block++;
4489 block->media_code = MEDIA_TP;
4490 block->type = 2;
4491 block->un.sia.csr13 = 0x8f01;
4492 block->un.sia.csr14 = 0x7f3f;
4493 block->un.sia.csr15 = 0x0008;
4517 dnet_dump_block(leaf->block+i);
4521 dnet_dump_block(media_block_t *block)
4524 (void *)block,
4525 block->type, media_str[block->media_code], block->command);
4526 dnet_dumpbin("\tGPR Seq", (uchar_t *)block->gprseq, 2,
4527 block->gprseqlen *2);
4528 dnet_dumpbin("\tGPR Reset", (uchar_t *)block->rstseq, 2,
4529 block->rstseqlen *2);
4530 switch (block->type) {
4534 block->un.mii.phy_num, block->un.mii.nwayadvert,
4535 block->un.mii.fdxmask, block->un.mii.ttmmask,
4536 block->un.mii.mediacaps);
4540 block->un.sia.csr13, block->un.sia.csr14,
4541 block->un.sia.csr15);