| Index: emcore/trunk/target/ipodnano3g/s5l8702.h |
| — | — | @@ -573,189 +573,189 @@ |
| 574 | 574 | |
| 575 | 575 | |
| 576 | 576 | /////SDCI///// |
| 577 | | -#define SDCI_CTRL (*((uint32_t volatile*)(0x38b00000)))
|
| 578 | | -#define SDCI_DCTRL (*((uint32_t volatile*)(0x38b00004)))
|
| 579 | | -#define SDCI_CMD (*((uint32_t volatile*)(0x38b00008)))
|
| 580 | | -#define SDCI_ARGU (*((uint32_t volatile*)(0x38b0000c)))
|
| 581 | | -#define SDCI_STATE (*((uint32_t volatile*)(0x38b00010)))
|
| 582 | | -#define SDCI_STAC (*((uint32_t volatile*)(0x38b00014)))
|
| 583 | | -#define SDCI_DSTA (*((uint32_t volatile*)(0x38b00018)))
|
| 584 | | -#define SDCI_FSTA (*((uint32_t volatile*)(0x38b0001c)))
|
| 585 | | -#define SDCI_RESP0 (*((uint32_t volatile*)(0x38b00020)))
|
| 586 | | -#define SDCI_RESP1 (*((uint32_t volatile*)(0x38b00024)))
|
| 587 | | -#define SDCI_RESP2 (*((uint32_t volatile*)(0x38b00028)))
|
| 588 | | -#define SDCI_RESP3 (*((uint32_t volatile*)(0x38b0002c)))
|
| 589 | | -#define SDCI_CDIV (*((uint32_t volatile*)(0x38b00030)))
|
| 590 | | -#define SDCI_SDIO_CSR (*((uint32_t volatile*)(0x38b00034)))
|
| 591 | | -#define SDCI_IRQ (*((uint32_t volatile*)(0x38b00038)))
|
| 592 | | -#define SDCI_IRQ_MASK (*((uint32_t volatile*)(0x38b0003c)))
|
| 593 | | -#define SDCI_DATA (*((uint32_t volatile*)(0x38b00040)))
|
| 594 | | -#define SDCI_DMAADDR (*((void* volatile*)(0x38b00044)))
|
| 595 | | -#define SDCI_DMASIZE (*((uint32_t volatile*)(0x38b00048)))
|
| 596 | | -#define SDCI_DMACOUNT (*((uint32_t volatile*)(0x38b0004c)))
|
| 597 | | -#define SDCI_RESET (*((uint32_t volatile*)(0x38b0006c)))
|
| | 577 | +#define SDCI_CTRL (*((uint32_t volatile*)(0x38b00000))) |
| | 578 | +#define SDCI_DCTRL (*((uint32_t volatile*)(0x38b00004))) |
| | 579 | +#define SDCI_CMD (*((uint32_t volatile*)(0x38b00008))) |
| | 580 | +#define SDCI_ARGU (*((uint32_t volatile*)(0x38b0000c))) |
| | 581 | +#define SDCI_STATE (*((uint32_t volatile*)(0x38b00010))) |
| | 582 | +#define SDCI_STAC (*((uint32_t volatile*)(0x38b00014))) |
| | 583 | +#define SDCI_DSTA (*((uint32_t volatile*)(0x38b00018))) |
| | 584 | +#define SDCI_FSTA (*((uint32_t volatile*)(0x38b0001c))) |
| | 585 | +#define SDCI_RESP0 (*((uint32_t volatile*)(0x38b00020))) |
| | 586 | +#define SDCI_RESP1 (*((uint32_t volatile*)(0x38b00024))) |
| | 587 | +#define SDCI_RESP2 (*((uint32_t volatile*)(0x38b00028))) |
| | 588 | +#define SDCI_RESP3 (*((uint32_t volatile*)(0x38b0002c))) |
| | 589 | +#define SDCI_CDIV (*((uint32_t volatile*)(0x38b00030))) |
| | 590 | +#define SDCI_SDIO_CSR (*((uint32_t volatile*)(0x38b00034))) |
| | 591 | +#define SDCI_IRQ (*((uint32_t volatile*)(0x38b00038))) |
| | 592 | +#define SDCI_IRQ_MASK (*((uint32_t volatile*)(0x38b0003c))) |
| | 593 | +#define SDCI_DATA (*((uint32_t volatile*)(0x38b00040))) |
| | 594 | +#define SDCI_DMAADDR (*((void* volatile*)(0x38b00044))) |
| | 595 | +#define SDCI_DMASIZE (*((uint32_t volatile*)(0x38b00048))) |
| | 596 | +#define SDCI_DMACOUNT (*((uint32_t volatile*)(0x38b0004c))) |
| | 597 | +#define SDCI_RESET (*((uint32_t volatile*)(0x38b0006c))) |
| 598 | 598 | |
| 599 | | -#define SDCI_CTRL_SDCIEN BIT(0)
|
| 600 | | -#define SDCI_CTRL_CARD_TYPE_MASK BIT(1)
|
| 601 | | -#define SDCI_CTRL_CARD_TYPE_SD 0
|
| 602 | | -#define SDCI_CTRL_CARD_TYPE_MMC BIT(1)
|
| 603 | | -#define SDCI_CTRL_BUS_WIDTH_MASK BITRANGE(2, 3)
|
| 604 | | -#define SDCI_CTRL_BUS_WIDTH_1BIT 0
|
| 605 | | -#define SDCI_CTRL_BUS_WIDTH_4BIT BIT(2)
|
| 606 | | -#define SDCI_CTRL_BUS_WIDTH_8BIT BIT(3)
|
| 607 | | -#define SDCI_CTRL_DMA_EN BIT(4)
|
| 608 | | -#define SDCI_CTRL_L_ENDIAN BIT(5)
|
| 609 | | -#define SDCI_CTRL_DMA_REQ_CON_MASK BIT(6)
|
| 610 | | -#define SDCI_CTRL_DMA_REQ_CON_NEMPTY 0
|
| 611 | | -#define SDCI_CTRL_DMA_REQ_CON_FULL BIT(6)
|
| 612 | | -#define SDCI_CTRL_CLK_SEL_MASK BIT(7)
|
| 613 | | -#define SDCI_CTRL_CLK_SEL_PCLK 0
|
| 614 | | -#define SDCI_CTRL_CLK_SEL_SDCLK BIT(7)
|
| 615 | | -#define SDCI_CTRL_BIT_8 BIT(8)
|
| 616 | | -#define SDCI_CTRL_BIT_14 BIT(14)
|
| 617 | | -
|
| 618 | | -#define SDCI_DCTRL_TXFIFORST BIT(0)
|
| 619 | | -#define SDCI_DCTRL_RXFIFORST BIT(1)
|
| 620 | | -#define SDCI_DCTRL_TRCONT_MASK BITRANGE(4, 5)
|
| 621 | | -#define SDCI_DCTRL_TRCONT_TX BIT(4)
|
| 622 | | -#define SDCI_DCTRL_BUS_TEST_MASK BITRANGE(6, 7)
|
| 623 | | -#define SDCI_DCTRL_BUS_TEST_TX BIT(6)
|
| 624 | | -#define SDCI_DCTRL_BUS_TEST_RX BIT(7)
|
| 625 | | -
|
| 626 | | -#define SDCI_CDIV_CLKDIV_MASK BITRANGE(0, 7)
|
| 627 | | -#define SDCI_CDIV_CLKDIV(x) ((x) >> 1)
|
| 628 | | -#define SDCI_CDIV_CLKDIV_2 BIT(0)
|
| 629 | | -#define SDCI_CDIV_CLKDIV_4 BIT(1)
|
| 630 | | -#define SDCI_CDIV_CLKDIV_8 BIT(2)
|
| 631 | | -#define SDCI_CDIV_CLKDIV_16 BIT(3)
|
| 632 | | -#define SDCI_CDIV_CLKDIV_32 BIT(4)
|
| 633 | | -#define SDCI_CDIV_CLKDIV_64 BIT(5)
|
| 634 | | -#define SDCI_CDIV_CLKDIV_128 BIT(6)
|
| 635 | | -#define SDCI_CDIV_CLKDIV_256 BIT(7)
|
| 636 | | -
|
| 637 | | -#define SDCI_CMD_CMD_NUM_MASK BITRANGE(0, 5)
|
| 638 | | -#define SDCI_CMD_CMD_NUM_SHIFT 0
|
| 639 | | -#define SDCI_CMD_CMD_NUM(x) (x)
|
| 640 | | -#define SDCI_CMD_CMD_TYPE_MASK BITRANGE(6, 7)
|
| 641 | | -#define SDCI_CMD_CMD_TYPE_BC 0
|
| 642 | | -#define SDCI_CMD_CMD_TYPE_BCR BIT(6)
|
| 643 | | -#define SDCI_CMD_CMD_TYPE_AC BIT(7)
|
| 644 | | -#define SDCI_CMD_CMD_TYPE_ADTC (BIT(6) | BIT(7))
|
| 645 | | -#define SDCI_CMD_CMD_RD_WR BIT(8)
|
| 646 | | -#define SDCI_CMD_RES_TYPE_MASK BITRANGE(16, 18)
|
| 647 | | -#define SDCI_CMD_RES_TYPE_NONE 0
|
| 648 | | -#define SDCI_CMD_RES_TYPE_R1 BIT(16)
|
| 649 | | -#define SDCI_CMD_RES_TYPE_R2 BIT(17)
|
| 650 | | -#define SDCI_CMD_RES_TYPE_R3 (BIT(16) | BIT(17))
|
| 651 | | -#define SDCI_CMD_RES_TYPE_R4 BIT(18)
|
| 652 | | -#define SDCI_CMD_RES_TYPE_R5 (BIT(16) | BIT(18))
|
| 653 | | -#define SDCI_CMD_RES_TYPE_R6 (BIT(17) | BIT(18))
|
| 654 | | -#define SDCI_CMD_RES_BUSY BIT(19)
|
| 655 | | -#define SDCI_CMD_RES_SIZE_MASK BIT(20)
|
| 656 | | -#define SDCI_CMD_RES_SIZE_48 0
|
| 657 | | -#define SDCI_CMD_RES_SIZE_136 BIT(20)
|
| 658 | | -#define SDCI_CMD_NCR_NID_MASK BIT(21)
|
| 659 | | -#define SDCI_CMD_NCR_NID_NCR 0
|
| 660 | | -#define SDCI_CMD_NCR_NID_NID BIT(21)
|
| 661 | | -#define SDCI_CMD_CMDSTR BIT(31)
|
| 662 | | -
|
| 663 | | -#define SDCI_STATE_DAT_STATE_MASK BITRANGE(0, 3)
|
| 664 | | -#define SDCI_STATE_DAT_STATE_IDLE 0
|
| 665 | | -#define SDCI_STATE_DAT_STATE_DAT_RCV BIT(0)
|
| 666 | | -#define SDCI_STATE_DAT_STATE_CRC_RCV BIT(1)
|
| 667 | | -#define SDCI_STATE_DAT_STATE_DAT_END (BIT(0) | BIT(1))
|
| 668 | | -#define SDCI_STATE_DAT_STATE_DAT_SET BIT(2)
|
| 669 | | -#define SDCI_STATE_DAT_STATE_DAT_OUT (BIT(0) | BIT(2))
|
| 670 | | -#define SDCI_STATE_DAT_STATE_CRC_TIME (BIT(1) | BIT(2))
|
| 671 | | -#define SDCI_STATE_DAT_STATE_CRC_OUT (BIT(0) | BIT(1) | BIT(2))
|
| 672 | | -#define SDCI_STATE_DAT_STATE_ENDB_OUT BIT(3)
|
| 673 | | -#define SDCI_STATE_DAT_STATE_ENDB_STOD (BIT(0) | BIT(3))
|
| 674 | | -#define SDCI_STATE_DAT_STATE_DAT_CRCR (BIT(1) | BIT(3))
|
| 675 | | -#define SDCI_STATE_DAT_STATE_CARD_PRG (BIT(0) | BIT(1) | BIT(3))
|
| 676 | | -#define SDCI_STATE_DAT_STATE_DAT_BUSY (BIT(2) | BIT(3))
|
| 677 | | -#define SDCI_STATE_CMD_STATE_MASK (BIT(4) | BIT(5) | BIT(6))
|
| 678 | | -#define SDCI_STATE_CMD_STATE_CMD_IDLE 0
|
| 679 | | -#define SDCI_STATE_CMD_STATE_CMD_CMDO BIT(4)
|
| 680 | | -#define SDCI_STATE_CMD_STATE_CMD_CRCO BIT(5)
|
| 681 | | -#define SDCI_STATE_CMD_STATE_CMD_TOUT (BIT(4) | BIT(5))
|
| 682 | | -#define SDCI_STATE_CMD_STATE_CMD_RESR BIT(6)
|
| 683 | | -#define SDCI_STATE_CMD_STATE_CMD_INTV (BIT(4) | BIT(6))
|
| 684 | | -
|
| 685 | | -#define SDCI_STAC_CLR_CMDEND BIT(2)
|
| 686 | | -#define SDCI_STAC_CLR_BIT_3 BIT(3)
|
| 687 | | -#define SDCI_STAC_CLR_RESEND BIT(4)
|
| 688 | | -#define SDCI_STAC_CLR_DATEND BIT(6)
|
| 689 | | -#define SDCI_STAC_CLR_DAT_CRCEND BIT(7)
|
| 690 | | -#define SDCI_STAC_CLR_CRC_STAEND BIT(8)
|
| 691 | | -#define SDCI_STAC_CLR_RESTOUTE BIT(15)
|
| 692 | | -#define SDCI_STAC_CLR_RESENDE BIT(16)
|
| 693 | | -#define SDCI_STAC_CLR_RESINDE BIT(17)
|
| 694 | | -#define SDCI_STAC_CLR_RESCRCE BIT(18)
|
| 695 | | -#define SDCI_STAC_CLR_WR_DATCRCE BIT(22)
|
| 696 | | -#define SDCI_STAC_CLR_RD_DATCRCE BIT(23)
|
| 697 | | -#define SDCI_STAC_CLR_RD_DATENDE0 BIT(24)
|
| 698 | | -#define SDCI_STAC_CLR_RD_DATENDE1 BIT(25)
|
| 699 | | -#define SDCI_STAC_CLR_RD_DATENDE2 BIT(26)
|
| 700 | | -#define SDCI_STAC_CLR_RD_DATENDE3 BIT(27)
|
| 701 | | -#define SDCI_STAC_CLR_RD_DATENDE4 BIT(28)
|
| 702 | | -#define SDCI_STAC_CLR_RD_DATENDE5 BIT(29)
|
| 703 | | -#define SDCI_STAC_CLR_RD_DATENDE6 BIT(30)
|
| 704 | | -#define SDCI_STAC_CLR_RD_DATENDE7 BIT(31)
|
| 705 | | -
|
| 706 | | -#define SDCI_DSTA_CMDRDY BIT(0)
|
| 707 | | -#define SDCI_DSTA_CMDPRO BIT(1)
|
| 708 | | -#define SDCI_DSTA_CMDEND BIT(2)
|
| 709 | | -#define SDCI_DSTA_RESPRO BIT(3)
|
| 710 | | -#define SDCI_DSTA_RESEND BIT(4)
|
| 711 | | -#define SDCI_DSTA_DATPRO BIT(5)
|
| 712 | | -#define SDCI_DSTA_DATEND BIT(6)
|
| 713 | | -#define SDCI_DSTA_DAT_CRCEND BIT(7)
|
| 714 | | -#define SDCI_DSTA_CRC_STAEND BIT(8)
|
| 715 | | -#define SDCI_DSTA_DAT_BUSY BIT(9)
|
| 716 | | -#define SDCI_DSTA_SDCLK_HOLD BIT(12)
|
| 717 | | -#define SDCI_DSTA_DAT0_STATUS BIT(13)
|
| 718 | | -#define SDCI_DSTA_WP_DECT_INPUT BIT(14)
|
| 719 | | -#define SDCI_DSTA_RESTOUTE BIT(15)
|
| 720 | | -#define SDCI_DSTA_RESENDE BIT(16)
|
| 721 | | -#define SDCI_DSTA_RESINDE BIT(17)
|
| 722 | | -#define SDCI_DSTA_RESCRCE BIT(18)
|
| 723 | | -#define SDCI_DSTA_WR_CRC_STATUS_MASK BITRANGE(19, 21)
|
| 724 | | -#define SDCI_DSTA_WR_CRC_STATUS_OK BIT(20)
|
| 725 | | -#define SDCI_DSTA_WR_CRC_STATUS_TXERR (BIT(19) | BIT(21))
|
| 726 | | -#define SDCI_DSTA_WR_CRC_STATUS_CARDERR (BIT(19) | BIT(20) | BIT(21))
|
| 727 | | -#define SDCI_DSTA_WR_DATCRCE BIT(22)
|
| 728 | | -#define SDCI_DSTA_RD_DATCRCE BIT(23)
|
| 729 | | -#define SDCI_DSTA_RD_DATENDE0 BIT(24)
|
| 730 | | -#define SDCI_DSTA_RD_DATENDE1 BIT(25)
|
| 731 | | -#define SDCI_DSTA_RD_DATENDE2 BIT(26)
|
| 732 | | -#define SDCI_DSTA_RD_DATENDE3 BIT(27)
|
| 733 | | -#define SDCI_DSTA_RD_DATENDE4 BIT(28)
|
| 734 | | -#define SDCI_DSTA_RD_DATENDE5 BIT(29)
|
| 735 | | -#define SDCI_DSTA_RD_DATENDE6 BIT(30)
|
| 736 | | -#define SDCI_DSTA_RD_DATENDE7 BIT(31)
|
| 737 | | -
|
| 738 | | -#define SDCI_FSTA_RX_FIFO_EMPTY BIT(0)
|
| 739 | | -#define SDCI_FSTA_RX_FIFO_FULL BIT(1)
|
| 740 | | -#define SDCI_FSTA_TX_FIFO_EMPTY BIT(2)
|
| 741 | | -#define SDCI_FSTA_TX_FIFO_FULL BIT(3)
|
| 742 | | -
|
| 743 | | -#define SDCI_SDIO_CSR_SDIO_RW_EN BIT(0)
|
| 744 | | -#define SDCI_SDIO_CSR_SDIO_INT_EN BIT(1)
|
| 745 | | -#define SDCI_SDIO_CSR_SDIO_RW_REQ BIT(2)
|
| 746 | | -#define SDCI_SDIO_CSR_SDIO_RW_STOP BIT(3)
|
| 747 | | -#define SDCI_SDIO_CSR_SDIO_INT_PERIOD_MASK BIT(4)
|
| 748 | | -#define SDCI_SDIO_CSR_SDIO_INT_PERIOD_MORE 0
|
| 749 | | -#define SDCI_SDIO_CSR_SDIO_INT_PERIOD_XACT BIT(4)
|
| 750 | | -
|
| 751 | | -#define SDCI_IRQ_DAT_DONE_INT BIT(0)
|
| 752 | | -#define SDCI_IRQ_IOCARD_IRQ_INT BIT(1)
|
| 753 | | -#define SDCI_IRQ_READ_WAIT_INT BIT(2)
|
| 754 | | -
|
| 755 | | -#define SDCI_IRQ_MASK_MASK_DAT_DONE_INT BIT(0)
|
| 756 | | -#define SDCI_IRQ_MASK_MASK_IOCARD_IRQ_INT BIT(1)
|
| 757 | | -#define SDCI_IRQ_MASK_MASK_READ_WAIT_INT BIT(2)
|
| 758 | | -
|
| | 599 | +#define SDCI_CTRL_SDCIEN BIT(0) |
| | 600 | +#define SDCI_CTRL_CARD_TYPE_MASK BIT(1) |
| | 601 | +#define SDCI_CTRL_CARD_TYPE_SD 0 |
| | 602 | +#define SDCI_CTRL_CARD_TYPE_MMC BIT(1) |
| | 603 | +#define SDCI_CTRL_BUS_WIDTH_MASK BITRANGE(2, 3) |
| | 604 | +#define SDCI_CTRL_BUS_WIDTH_1BIT 0 |
| | 605 | +#define SDCI_CTRL_BUS_WIDTH_4BIT BIT(2) |
| | 606 | +#define SDCI_CTRL_BUS_WIDTH_8BIT BIT(3) |
| | 607 | +#define SDCI_CTRL_DMA_EN BIT(4) |
| | 608 | +#define SDCI_CTRL_L_ENDIAN BIT(5) |
| | 609 | +#define SDCI_CTRL_DMA_REQ_CON_MASK BIT(6) |
| | 610 | +#define SDCI_CTRL_DMA_REQ_CON_NEMPTY 0 |
| | 611 | +#define SDCI_CTRL_DMA_REQ_CON_FULL BIT(6) |
| | 612 | +#define SDCI_CTRL_CLK_SEL_MASK BIT(7) |
| | 613 | +#define SDCI_CTRL_CLK_SEL_PCLK 0 |
| | 614 | +#define SDCI_CTRL_CLK_SEL_SDCLK BIT(7) |
| | 615 | +#define SDCI_CTRL_BIT_8 BIT(8) |
| | 616 | +#define SDCI_CTRL_BIT_14 BIT(14) |
| 759 | 617 | |
| | 618 | +#define SDCI_DCTRL_TXFIFORST BIT(0) |
| | 619 | +#define SDCI_DCTRL_RXFIFORST BIT(1) |
| | 620 | +#define SDCI_DCTRL_TRCONT_MASK BITRANGE(4, 5) |
| | 621 | +#define SDCI_DCTRL_TRCONT_TX BIT(4) |
| | 622 | +#define SDCI_DCTRL_BUS_TEST_MASK BITRANGE(6, 7) |
| | 623 | +#define SDCI_DCTRL_BUS_TEST_TX BIT(6) |
| | 624 | +#define SDCI_DCTRL_BUS_TEST_RX BIT(7) |
| | 625 | + |
| | 626 | +#define SDCI_CDIV_CLKDIV_MASK BITRANGE(0, 7) |
| | 627 | +#define SDCI_CDIV_CLKDIV(x) ((x) >> 1) |
| | 628 | +#define SDCI_CDIV_CLKDIV_2 BIT(0) |
| | 629 | +#define SDCI_CDIV_CLKDIV_4 BIT(1) |
| | 630 | +#define SDCI_CDIV_CLKDIV_8 BIT(2) |
| | 631 | +#define SDCI_CDIV_CLKDIV_16 BIT(3) |
| | 632 | +#define SDCI_CDIV_CLKDIV_32 BIT(4) |
| | 633 | +#define SDCI_CDIV_CLKDIV_64 BIT(5) |
| | 634 | +#define SDCI_CDIV_CLKDIV_128 BIT(6) |
| | 635 | +#define SDCI_CDIV_CLKDIV_256 BIT(7) |
| | 636 | + |
| | 637 | +#define SDCI_CMD_CMD_NUM_MASK BITRANGE(0, 5) |
| | 638 | +#define SDCI_CMD_CMD_NUM_SHIFT 0 |
| | 639 | +#define SDCI_CMD_CMD_NUM(x) (x) |
| | 640 | +#define SDCI_CMD_CMD_TYPE_MASK BITRANGE(6, 7) |
| | 641 | +#define SDCI_CMD_CMD_TYPE_BC 0 |
| | 642 | +#define SDCI_CMD_CMD_TYPE_BCR BIT(6) |
| | 643 | +#define SDCI_CMD_CMD_TYPE_AC BIT(7) |
| | 644 | +#define SDCI_CMD_CMD_TYPE_ADTC (BIT(6) | BIT(7)) |
| | 645 | +#define SDCI_CMD_CMD_RD_WR BIT(8) |
| | 646 | +#define SDCI_CMD_RES_TYPE_MASK BITRANGE(16, 18) |
| | 647 | +#define SDCI_CMD_RES_TYPE_NONE 0 |
| | 648 | +#define SDCI_CMD_RES_TYPE_R1 BIT(16) |
| | 649 | +#define SDCI_CMD_RES_TYPE_R2 BIT(17) |
| | 650 | +#define SDCI_CMD_RES_TYPE_R3 (BIT(16) | BIT(17)) |
| | 651 | +#define SDCI_CMD_RES_TYPE_R4 BIT(18) |
| | 652 | +#define SDCI_CMD_RES_TYPE_R5 (BIT(16) | BIT(18)) |
| | 653 | +#define SDCI_CMD_RES_TYPE_R6 (BIT(17) | BIT(18)) |
| | 654 | +#define SDCI_CMD_RES_BUSY BIT(19) |
| | 655 | +#define SDCI_CMD_RES_SIZE_MASK BIT(20) |
| | 656 | +#define SDCI_CMD_RES_SIZE_48 0 |
| | 657 | +#define SDCI_CMD_RES_SIZE_136 BIT(20) |
| | 658 | +#define SDCI_CMD_NCR_NID_MASK BIT(21) |
| | 659 | +#define SDCI_CMD_NCR_NID_NCR 0 |
| | 660 | +#define SDCI_CMD_NCR_NID_NID BIT(21) |
| | 661 | +#define SDCI_CMD_CMDSTR BIT(31) |
| | 662 | + |
| | 663 | +#define SDCI_STATE_DAT_STATE_MASK BITRANGE(0, 3) |
| | 664 | +#define SDCI_STATE_DAT_STATE_IDLE 0 |
| | 665 | +#define SDCI_STATE_DAT_STATE_DAT_RCV BIT(0) |
| | 666 | +#define SDCI_STATE_DAT_STATE_CRC_RCV BIT(1) |
| | 667 | +#define SDCI_STATE_DAT_STATE_DAT_END (BIT(0) | BIT(1)) |
| | 668 | +#define SDCI_STATE_DAT_STATE_DAT_SET BIT(2) |
| | 669 | +#define SDCI_STATE_DAT_STATE_DAT_OUT (BIT(0) | BIT(2)) |
| | 670 | +#define SDCI_STATE_DAT_STATE_CRC_TIME (BIT(1) | BIT(2)) |
| | 671 | +#define SDCI_STATE_DAT_STATE_CRC_OUT (BIT(0) | BIT(1) | BIT(2)) |
| | 672 | +#define SDCI_STATE_DAT_STATE_ENDB_OUT BIT(3) |
| | 673 | +#define SDCI_STATE_DAT_STATE_ENDB_STOD (BIT(0) | BIT(3)) |
| | 674 | +#define SDCI_STATE_DAT_STATE_DAT_CRCR (BIT(1) | BIT(3)) |
| | 675 | +#define SDCI_STATE_DAT_STATE_CARD_PRG (BIT(0) | BIT(1) | BIT(3)) |
| | 676 | +#define SDCI_STATE_DAT_STATE_DAT_BUSY (BIT(2) | BIT(3)) |
| | 677 | +#define SDCI_STATE_CMD_STATE_MASK (BIT(4) | BIT(5) | BIT(6)) |
| | 678 | +#define SDCI_STATE_CMD_STATE_CMD_IDLE 0 |
| | 679 | +#define SDCI_STATE_CMD_STATE_CMD_CMDO BIT(4) |
| | 680 | +#define SDCI_STATE_CMD_STATE_CMD_CRCO BIT(5) |
| | 681 | +#define SDCI_STATE_CMD_STATE_CMD_TOUT (BIT(4) | BIT(5)) |
| | 682 | +#define SDCI_STATE_CMD_STATE_CMD_RESR BIT(6) |
| | 683 | +#define SDCI_STATE_CMD_STATE_CMD_INTV (BIT(4) | BIT(6)) |
| | 684 | + |
| | 685 | +#define SDCI_STAC_CLR_CMDEND BIT(2) |
| | 686 | +#define SDCI_STAC_CLR_BIT_3 BIT(3) |
| | 687 | +#define SDCI_STAC_CLR_RESEND BIT(4) |
| | 688 | +#define SDCI_STAC_CLR_DATEND BIT(6) |
| | 689 | +#define SDCI_STAC_CLR_DAT_CRCEND BIT(7) |
| | 690 | +#define SDCI_STAC_CLR_CRC_STAEND BIT(8) |
| | 691 | +#define SDCI_STAC_CLR_RESTOUTE BIT(15) |
| | 692 | +#define SDCI_STAC_CLR_RESENDE BIT(16) |
| | 693 | +#define SDCI_STAC_CLR_RESINDE BIT(17) |
| | 694 | +#define SDCI_STAC_CLR_RESCRCE BIT(18) |
| | 695 | +#define SDCI_STAC_CLR_WR_DATCRCE BIT(22) |
| | 696 | +#define SDCI_STAC_CLR_RD_DATCRCE BIT(23) |
| | 697 | +#define SDCI_STAC_CLR_RD_DATENDE0 BIT(24) |
| | 698 | +#define SDCI_STAC_CLR_RD_DATENDE1 BIT(25) |
| | 699 | +#define SDCI_STAC_CLR_RD_DATENDE2 BIT(26) |
| | 700 | +#define SDCI_STAC_CLR_RD_DATENDE3 BIT(27) |
| | 701 | +#define SDCI_STAC_CLR_RD_DATENDE4 BIT(28) |
| | 702 | +#define SDCI_STAC_CLR_RD_DATENDE5 BIT(29) |
| | 703 | +#define SDCI_STAC_CLR_RD_DATENDE6 BIT(30) |
| | 704 | +#define SDCI_STAC_CLR_RD_DATENDE7 BIT(31) |
| | 705 | + |
| | 706 | +#define SDCI_DSTA_CMDRDY BIT(0) |
| | 707 | +#define SDCI_DSTA_CMDPRO BIT(1) |
| | 708 | +#define SDCI_DSTA_CMDEND BIT(2) |
| | 709 | +#define SDCI_DSTA_RESPRO BIT(3) |
| | 710 | +#define SDCI_DSTA_RESEND BIT(4) |
| | 711 | +#define SDCI_DSTA_DATPRO BIT(5) |
| | 712 | +#define SDCI_DSTA_DATEND BIT(6) |
| | 713 | +#define SDCI_DSTA_DAT_CRCEND BIT(7) |
| | 714 | +#define SDCI_DSTA_CRC_STAEND BIT(8) |
| | 715 | +#define SDCI_DSTA_DAT_BUSY BIT(9) |
| | 716 | +#define SDCI_DSTA_SDCLK_HOLD BIT(12) |
| | 717 | +#define SDCI_DSTA_DAT0_STATUS BIT(13) |
| | 718 | +#define SDCI_DSTA_WP_DECT_INPUT BIT(14) |
| | 719 | +#define SDCI_DSTA_RESTOUTE BIT(15) |
| | 720 | +#define SDCI_DSTA_RESENDE BIT(16) |
| | 721 | +#define SDCI_DSTA_RESINDE BIT(17) |
| | 722 | +#define SDCI_DSTA_RESCRCE BIT(18) |
| | 723 | +#define SDCI_DSTA_WR_CRC_STATUS_MASK BITRANGE(19, 21) |
| | 724 | +#define SDCI_DSTA_WR_CRC_STATUS_OK BIT(20) |
| | 725 | +#define SDCI_DSTA_WR_CRC_STATUS_TXERR (BIT(19) | BIT(21)) |
| | 726 | +#define SDCI_DSTA_WR_CRC_STATUS_CARDERR (BIT(19) | BIT(20) | BIT(21)) |
| | 727 | +#define SDCI_DSTA_WR_DATCRCE BIT(22) |
| | 728 | +#define SDCI_DSTA_RD_DATCRCE BIT(23) |
| | 729 | +#define SDCI_DSTA_RD_DATENDE0 BIT(24) |
| | 730 | +#define SDCI_DSTA_RD_DATENDE1 BIT(25) |
| | 731 | +#define SDCI_DSTA_RD_DATENDE2 BIT(26) |
| | 732 | +#define SDCI_DSTA_RD_DATENDE3 BIT(27) |
| | 733 | +#define SDCI_DSTA_RD_DATENDE4 BIT(28) |
| | 734 | +#define SDCI_DSTA_RD_DATENDE5 BIT(29) |
| | 735 | +#define SDCI_DSTA_RD_DATENDE6 BIT(30) |
| | 736 | +#define SDCI_DSTA_RD_DATENDE7 BIT(31) |
| | 737 | + |
| | 738 | +#define SDCI_FSTA_RX_FIFO_EMPTY BIT(0) |
| | 739 | +#define SDCI_FSTA_RX_FIFO_FULL BIT(1) |
| | 740 | +#define SDCI_FSTA_TX_FIFO_EMPTY BIT(2) |
| | 741 | +#define SDCI_FSTA_TX_FIFO_FULL BIT(3) |
| | 742 | + |
| | 743 | +#define SDCI_SDIO_CSR_SDIO_RW_EN BIT(0) |
| | 744 | +#define SDCI_SDIO_CSR_SDIO_INT_EN BIT(1) |
| | 745 | +#define SDCI_SDIO_CSR_SDIO_RW_REQ BIT(2) |
| | 746 | +#define SDCI_SDIO_CSR_SDIO_RW_STOP BIT(3) |
| | 747 | +#define SDCI_SDIO_CSR_SDIO_INT_PERIOD_MASK BIT(4) |
| | 748 | +#define SDCI_SDIO_CSR_SDIO_INT_PERIOD_MORE 0 |
| | 749 | +#define SDCI_SDIO_CSR_SDIO_INT_PERIOD_XACT BIT(4) |
| | 750 | + |
| | 751 | +#define SDCI_IRQ_DAT_DONE_INT BIT(0) |
| | 752 | +#define SDCI_IRQ_IOCARD_IRQ_INT BIT(1) |
| | 753 | +#define SDCI_IRQ_READ_WAIT_INT BIT(2) |
| | 754 | + |
| | 755 | +#define SDCI_IRQ_MASK_MASK_DAT_DONE_INT BIT(0) |
| | 756 | +#define SDCI_IRQ_MASK_MASK_IOCARD_IRQ_INT BIT(1) |
| | 757 | +#define SDCI_IRQ_MASK_MASK_READ_WAIT_INT BIT(2) |
| | 758 | + |
| | 759 | + |
| 760 | 760 | /////CLICKWHEEL///// |
| 761 | 761 | #define WHEEL00 (*((uint32_t volatile*)(0x3C200000))) |
| 762 | 762 | #define WHEEL04 (*((uint32_t volatile*)(0x3C200004))) |
| Index: emcore/trunk/fat.h |
| — | — | @@ -90,11 +90,11 @@ |
| 91 | 91 |
|
| 92 | 92 | struct fat_dir
|
| 93 | 93 | {
|
| | 94 | + unsigned char sectorcache[SECTOR_SIZE] CACHEALIGN_ATTR;
|
| 94 | 95 | unsigned int entry;
|
| 95 | 96 | unsigned int entrycount;
|
| 96 | 97 | long sector;
|
| 97 | 98 | struct fat_file file;
|
| 98 | | - unsigned char sectorcache[SECTOR_SIZE] CACHEALIGN_ATTR;
|
| 99 | 99 | /* There are 2-bytes per characters. We don't want to bother too much, as LFN entries are
|
| 100 | 100 | * at much 255 characters longs, that's at most 20 LFN entries. Each entry hold at most
|
| 101 | 101 | * 13 characters, that a total of 260 characters. So we keep a buffer of that size.
|
| Index: emcore/trunk/dir.h |
| — | — | @@ -48,9 +48,9 @@ |
| 49 | 49 | #include "fat.h" |
| 50 | 50 | |
| 51 | 51 | typedef struct dirdesc { |
| | 52 | + struct fat_dir fatdir CACHEALIGN_ATTR; |
| 52 | 53 | struct dirdesc* next; |
| 53 | 54 | long startcluster; |
| 54 | | - struct fat_dir fatdir; |
| 55 | 55 | struct dirent theent; |
| 56 | 56 | struct scheduler_thread* process; |
| 57 | 57 | #ifdef HAVE_MULTIVOLUME |