diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2009-01-05 14:18:11 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-01-07 16:51:44 -0500 |
commit | 3a03eb797ce76ae8868a1497e9e746ad0add1e3b (patch) | |
tree | 2dc17c39b7c1e35248b35f7433de8711f0b6656a /drivers/scsi/qla2xxx/qla_fw.h | |
parent | 444786d7fdd770f67e29a068ec8ee981d323f7a7 (diff) |
[SCSI] qla2xxx: Add ISP81XX support.
Codes to support new FCoE boards.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_fw.h')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_fw.h | 294 |
1 files changed, 291 insertions, 3 deletions
diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h index ee1f1e794c2d..7abb045a0410 100644 --- a/drivers/scsi/qla2xxx/qla_fw.h +++ b/drivers/scsi/qla2xxx/qla_fw.h | |||
@@ -1215,9 +1215,10 @@ struct qla_fdt_layout { | |||
1215 | 1215 | ||
1216 | struct qla_flt_location { | 1216 | struct qla_flt_location { |
1217 | uint8_t sig[4]; | 1217 | uint8_t sig[4]; |
1218 | uint32_t start_lo; | 1218 | uint16_t start_lo; |
1219 | uint32_t start_hi; | 1219 | uint16_t start_hi; |
1220 | uint16_t unused; | 1220 | uint8_t version; |
1221 | uint8_t unused[5]; | ||
1221 | uint16_t checksum; | 1222 | uint16_t checksum; |
1222 | }; | 1223 | }; |
1223 | 1224 | ||
@@ -1390,4 +1391,291 @@ struct access_chip_rsp_84xx { | |||
1390 | 1391 | ||
1391 | uint32_t reserved[12]; | 1392 | uint32_t reserved[12]; |
1392 | }; | 1393 | }; |
1394 | |||
1395 | /* 81XX Support **************************************************************/ | ||
1396 | |||
1397 | #define MBA_DCBX_START 0x8016 | ||
1398 | #define MBA_DCBX_COMPLETE 0x8030 | ||
1399 | #define MBA_FCF_CONF_ERR 0x8031 | ||
1400 | #define MBA_DCBX_PARAM_UPDATE 0x8032 | ||
1401 | #define MBA_IDC_COMPLETE 0x8100 | ||
1402 | #define MBA_IDC_NOTIFY 0x8101 | ||
1403 | #define MBA_IDC_TIME_EXT 0x8102 | ||
1404 | |||
1405 | struct nvram_81xx { | ||
1406 | /* NVRAM header. */ | ||
1407 | uint8_t id[4]; | ||
1408 | uint16_t nvram_version; | ||
1409 | uint16_t reserved_0; | ||
1410 | |||
1411 | /* Firmware Initialization Control Block. */ | ||
1412 | uint16_t version; | ||
1413 | uint16_t reserved_1; | ||
1414 | uint16_t frame_payload_size; | ||
1415 | uint16_t execution_throttle; | ||
1416 | uint16_t exchange_count; | ||
1417 | uint16_t reserved_2; | ||
1418 | |||
1419 | uint8_t port_name[WWN_SIZE]; | ||
1420 | uint8_t node_name[WWN_SIZE]; | ||
1421 | |||
1422 | uint16_t login_retry_count; | ||
1423 | uint16_t reserved_3; | ||
1424 | uint16_t interrupt_delay_timer; | ||
1425 | uint16_t login_timeout; | ||
1426 | |||
1427 | uint32_t firmware_options_1; | ||
1428 | uint32_t firmware_options_2; | ||
1429 | uint32_t firmware_options_3; | ||
1430 | |||
1431 | uint16_t reserved_4[4]; | ||
1432 | |||
1433 | /* Offset 64. */ | ||
1434 | uint8_t enode_mac[6]; | ||
1435 | uint16_t reserved_5[5]; | ||
1436 | |||
1437 | /* Offset 80. */ | ||
1438 | uint16_t reserved_6[24]; | ||
1439 | |||
1440 | /* Offset 128. */ | ||
1441 | uint16_t reserved_7[64]; | ||
1442 | |||
1443 | /* | ||
1444 | * BIT 0 = Enable spinup delay | ||
1445 | * BIT 1 = Disable BIOS | ||
1446 | * BIT 2 = Enable Memory Map BIOS | ||
1447 | * BIT 3 = Enable Selectable Boot | ||
1448 | * BIT 4 = Disable RISC code load | ||
1449 | * BIT 5 = Disable Serdes | ||
1450 | * BIT 6 = Opt boot mode | ||
1451 | * BIT 7 = Interrupt enable | ||
1452 | * | ||
1453 | * BIT 8 = EV Control enable | ||
1454 | * BIT 9 = Enable lip reset | ||
1455 | * BIT 10 = Enable lip full login | ||
1456 | * BIT 11 = Enable target reset | ||
1457 | * BIT 12 = Stop firmware | ||
1458 | * BIT 13 = Enable nodename option | ||
1459 | * BIT 14 = Default WWPN valid | ||
1460 | * BIT 15 = Enable alternate WWN | ||
1461 | * | ||
1462 | * BIT 16 = CLP LUN string | ||
1463 | * BIT 17 = CLP Target string | ||
1464 | * BIT 18 = CLP BIOS enable string | ||
1465 | * BIT 19 = CLP Serdes string | ||
1466 | * BIT 20 = CLP WWPN string | ||
1467 | * BIT 21 = CLP WWNN string | ||
1468 | * BIT 22 = | ||
1469 | * BIT 23 = | ||
1470 | * BIT 24 = Keep WWPN | ||
1471 | * BIT 25 = Temp WWPN | ||
1472 | * BIT 26-31 = | ||
1473 | */ | ||
1474 | uint32_t host_p; | ||
1475 | |||
1476 | uint8_t alternate_port_name[WWN_SIZE]; | ||
1477 | uint8_t alternate_node_name[WWN_SIZE]; | ||
1478 | |||
1479 | uint8_t boot_port_name[WWN_SIZE]; | ||
1480 | uint16_t boot_lun_number; | ||
1481 | uint16_t reserved_8; | ||
1482 | |||
1483 | uint8_t alt1_boot_port_name[WWN_SIZE]; | ||
1484 | uint16_t alt1_boot_lun_number; | ||
1485 | uint16_t reserved_9; | ||
1486 | |||
1487 | uint8_t alt2_boot_port_name[WWN_SIZE]; | ||
1488 | uint16_t alt2_boot_lun_number; | ||
1489 | uint16_t reserved_10; | ||
1490 | |||
1491 | uint8_t alt3_boot_port_name[WWN_SIZE]; | ||
1492 | uint16_t alt3_boot_lun_number; | ||
1493 | uint16_t reserved_11; | ||
1494 | |||
1495 | /* | ||
1496 | * BIT 0 = Selective Login | ||
1497 | * BIT 1 = Alt-Boot Enable | ||
1498 | * BIT 2 = Reserved | ||
1499 | * BIT 3 = Boot Order List | ||
1500 | * BIT 4 = Reserved | ||
1501 | * BIT 5 = Selective LUN | ||
1502 | * BIT 6 = Reserved | ||
1503 | * BIT 7-31 = | ||
1504 | */ | ||
1505 | uint32_t efi_parameters; | ||
1506 | |||
1507 | uint8_t reset_delay; | ||
1508 | uint8_t reserved_12; | ||
1509 | uint16_t reserved_13; | ||
1510 | |||
1511 | uint16_t boot_id_number; | ||
1512 | uint16_t reserved_14; | ||
1513 | |||
1514 | uint16_t max_luns_per_target; | ||
1515 | uint16_t reserved_15; | ||
1516 | |||
1517 | uint16_t port_down_retry_count; | ||
1518 | uint16_t link_down_timeout; | ||
1519 | |||
1520 | /* FCode parameters. */ | ||
1521 | uint16_t fcode_parameter; | ||
1522 | |||
1523 | uint16_t reserved_16[3]; | ||
1524 | |||
1525 | /* Offset 352. */ | ||
1526 | uint8_t reserved_17[4]; | ||
1527 | uint16_t reserved_18[5]; | ||
1528 | uint8_t reserved_19[2]; | ||
1529 | uint16_t reserved_20[8]; | ||
1530 | |||
1531 | /* Offset 384. */ | ||
1532 | uint8_t reserved_21[16]; | ||
1533 | uint16_t reserved_22[8]; | ||
1534 | |||
1535 | /* Offset 416. */ | ||
1536 | uint16_t reserved_23[32]; | ||
1537 | |||
1538 | /* Offset 480. */ | ||
1539 | uint8_t model_name[16]; | ||
1540 | |||
1541 | /* Offset 496. */ | ||
1542 | uint16_t feature_mask_l; | ||
1543 | uint16_t feature_mask_h; | ||
1544 | uint16_t reserved_24[2]; | ||
1545 | |||
1546 | uint16_t subsystem_vendor_id; | ||
1547 | uint16_t subsystem_device_id; | ||
1548 | |||
1549 | uint32_t checksum; | ||
1550 | }; | ||
1551 | |||
1552 | /* | ||
1553 | * ISP Initialization Control Block. | ||
1554 | * Little endian except where noted. | ||
1555 | */ | ||
1556 | #define ICB_VERSION 1 | ||
1557 | struct init_cb_81xx { | ||
1558 | uint16_t version; | ||
1559 | uint16_t reserved_1; | ||
1560 | |||
1561 | uint16_t frame_payload_size; | ||
1562 | uint16_t execution_throttle; | ||
1563 | uint16_t exchange_count; | ||
1564 | |||
1565 | uint16_t reserved_2; | ||
1566 | |||
1567 | uint8_t port_name[WWN_SIZE]; /* Big endian. */ | ||
1568 | uint8_t node_name[WWN_SIZE]; /* Big endian. */ | ||
1569 | |||
1570 | uint16_t response_q_inpointer; | ||
1571 | uint16_t request_q_outpointer; | ||
1572 | |||
1573 | uint16_t login_retry_count; | ||
1574 | |||
1575 | uint16_t prio_request_q_outpointer; | ||
1576 | |||
1577 | uint16_t response_q_length; | ||
1578 | uint16_t request_q_length; | ||
1579 | |||
1580 | uint16_t reserved_3; | ||
1581 | |||
1582 | uint16_t prio_request_q_length; | ||
1583 | |||
1584 | uint32_t request_q_address[2]; | ||
1585 | uint32_t response_q_address[2]; | ||
1586 | uint32_t prio_request_q_address[2]; | ||
1587 | |||
1588 | uint8_t reserved_4[8]; | ||
1589 | |||
1590 | uint16_t atio_q_inpointer; | ||
1591 | uint16_t atio_q_length; | ||
1592 | uint32_t atio_q_address[2]; | ||
1593 | |||
1594 | uint16_t interrupt_delay_timer; /* 100us increments. */ | ||
1595 | uint16_t login_timeout; | ||
1596 | |||
1597 | /* | ||
1598 | * BIT 0-3 = Reserved | ||
1599 | * BIT 4 = Enable Target Mode | ||
1600 | * BIT 5 = Disable Initiator Mode | ||
1601 | * BIT 6 = Reserved | ||
1602 | * BIT 7 = Reserved | ||
1603 | * | ||
1604 | * BIT 8-13 = Reserved | ||
1605 | * BIT 14 = Node Name Option | ||
1606 | * BIT 15-31 = Reserved | ||
1607 | */ | ||
1608 | uint32_t firmware_options_1; | ||
1609 | |||
1610 | /* | ||
1611 | * BIT 0 = Operation Mode bit 0 | ||
1612 | * BIT 1 = Operation Mode bit 1 | ||
1613 | * BIT 2 = Operation Mode bit 2 | ||
1614 | * BIT 3 = Operation Mode bit 3 | ||
1615 | * BIT 4-7 = Reserved | ||
1616 | * | ||
1617 | * BIT 8 = Enable Class 2 | ||
1618 | * BIT 9 = Enable ACK0 | ||
1619 | * BIT 10 = Reserved | ||
1620 | * BIT 11 = Enable FC-SP Security | ||
1621 | * BIT 12 = FC Tape Enable | ||
1622 | * BIT 13 = Reserved | ||
1623 | * BIT 14 = Enable Target PRLI Control | ||
1624 | * BIT 15-31 = Reserved | ||
1625 | */ | ||
1626 | uint32_t firmware_options_2; | ||
1627 | |||
1628 | /* | ||
1629 | * BIT 0-3 = Reserved | ||
1630 | * BIT 4 = FCP RSP Payload bit 0 | ||
1631 | * BIT 5 = FCP RSP Payload bit 1 | ||
1632 | * BIT 6 = Enable Receive Out-of-Order data frame handling | ||
1633 | * BIT 7 = Reserved | ||
1634 | * | ||
1635 | * BIT 8 = Reserved | ||
1636 | * BIT 9 = Enable Out-of-Order FCP_XFER_RDY relative offset handling | ||
1637 | * BIT 10-16 = Reserved | ||
1638 | * BIT 17 = Enable multiple FCFs | ||
1639 | * BIT 18-20 = MAC addressing mode | ||
1640 | * BIT 21-25 = Ethernet data rate | ||
1641 | * BIT 26 = Enable ethernet header rx IOCB for ATIO q | ||
1642 | * BIT 27 = Enable ethernet header rx IOCB for response q | ||
1643 | * BIT 28 = SPMA selection bit 0 | ||
1644 | * BIT 28 = SPMA selection bit 1 | ||
1645 | * BIT 30-31 = Reserved | ||
1646 | */ | ||
1647 | uint32_t firmware_options_3; | ||
1648 | |||
1649 | uint8_t reserved_5[8]; | ||
1650 | |||
1651 | uint8_t enode_mac[6]; | ||
1652 | |||
1653 | uint8_t reserved_6[10]; | ||
1654 | }; | ||
1655 | |||
1656 | struct mid_init_cb_81xx { | ||
1657 | struct init_cb_81xx init_cb; | ||
1658 | |||
1659 | uint16_t count; | ||
1660 | uint16_t options; | ||
1661 | |||
1662 | struct mid_conf_entry_24xx entries[MAX_MULTI_ID_FABRIC]; | ||
1663 | }; | ||
1664 | |||
1665 | #define FARX_ACCESS_FLASH_CONF_81XX 0x7FFD0000 | ||
1666 | #define FARX_ACCESS_FLASH_DATA_81XX 0x7F800000 | ||
1667 | |||
1668 | /* 81XX Flash locations -- occupies second 2MB region. */ | ||
1669 | #define FA_BOOT_CODE_ADDR_81 0x80000 | ||
1670 | #define FA_RISC_CODE_ADDR_81 0xA0000 | ||
1671 | #define FA_FW_AREA_ADDR_81 0xC0000 | ||
1672 | #define FA_VPD_NVRAM_ADDR_81 0xD0000 | ||
1673 | #define FA_FEATURE_ADDR_81 0xD4000 | ||
1674 | #define FA_FLASH_DESCR_ADDR_81 0xD8000 | ||
1675 | #define FA_FLASH_LAYOUT_ADDR_81 0xD8400 | ||
1676 | #define FA_HW_EVENT0_ADDR_81 0xDC000 | ||
1677 | #define FA_HW_EVENT1_ADDR_81 0xDC400 | ||
1678 | #define FA_NPIV_CONF0_ADDR_81 0xD1000 | ||
1679 | #define FA_NPIV_CONF1_ADDR_81 0xD2000 | ||
1680 | |||
1393 | #endif | 1681 | #endif |