Lines Matching refs:block

405         cvmx_dprintf("%s: Defaults: page size: %d, OOB size: %d, pages per block %d, blocks: %d, timing mode: %d\n",
746 cvmx_dprintf("%s: Defaults: page size: %d, OOB size: %d, pages per block %d, part size: %d MBytes, timing mode: %d\n",
977 * This include column bits, padding, page bits, and block bits.
1452 * Erase a NAND block. A single block contains multiple pages.
1664 * Get the number of pages per NAND block
1668 * @return Number of pages in each block or a negative cvmx_nand_status_t error
1742 * @param block pointer to 256 bytes of data
1745 void cvmx_nand_compute_boot_ecc(unsigned char *block, unsigned char *eccp)
1753 pd0 ^= (block[i] ^ (block[i] >> 2) ^ (block[i] >> 4) ^ (block[i] >> 6)) & 1;
1755 pd0 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 4) ^ (block[i] >> 5)) & 1) << 1;
1757 pd0 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 2) ^ (block[i] >> 3)) & 1) << 2;
1759 pd0 ^= ((block[2*i] ^ (block[2*i] >> 1) ^ (block[2*i] >> 2) ^
1760 (block[2*i] >> 3) ^ (block[2*i] >> 4) ^ (block[2*i] >> 5) ^
1761 (block[2*i] >> 6) ^ (block[2*i] >> 7)) & 1) << 3;
1764 pd0 ^= ((block[4*i+j] ^ (block[4*i+j] >> 1) ^ (block[4*i+j] >> 2) ^
1765 (block[4*i+j] >> 3) ^ (block[4*i+j] >> 4) ^ (block[4*i+j] >> 5) ^
1766 (block[4*i+j] >> 6) ^ (block[4*i+j] >> 7)) & 1) << 4;
1769 pd0 ^= ((block[8*i+j] ^ (block[8*i+j] >> 1) ^ (block[8*i+j] >> 2) ^
1770 (block[8*i+j] >> 3) ^ (block[8*i+j] >> 4) ^ (block[8*i+j] >> 5) ^
1771 (block[8*i+j] >> 6) ^ (block[8*i+j] >> 7)) & 1) << 5;
1774 pd0 ^= ((block[16*i+j] ^ (block[16*i+j] >> 1) ^ (block[16*i+j] >> 2) ^
1775 (block[16*i+j] >> 3) ^ (block[16*i+j] >> 4) ^ (block[16*i+j] >> 5) ^
1776 (block[16*i+j] >> 6) ^ (block[16*i+j] >> 7)) & 1) << 6;
1779 pd0 ^= ((block[32*i+j] ^ (block[32*i+j] >> 1) ^ (block[32*i+j] >> 2) ^
1780 (block[32*i+j] >> 3) ^ (block[32*i+j] >> 4) ^ (block[32*i+j] >> 5) ^
1781 (block[32*i+j] >> 6) ^ (block[32*i+j] >> 7)) & 1) << 7;
1784 pd1 ^= ((block[64*i+j] ^ (block[64*i+j] >> 1) ^ (block[64*i+j] >> 2) ^
1785 (block[64*i+j] >> 3) ^ (block[64*i+j] >> 4) ^ (block[64*i+j] >> 5) ^
1786 (block[64*i+j] >> 6) ^ (block[64*i+j] >> 7)) & 1) << 0;
1789 pd1 ^= ((block[128*i+j] ^ (block[128*i+j] >> 1) ^ (block[128*i+j] >> 2) ^
1790 (block[128*i+j] >> 3) ^ (block[128*i+j] >> 4) ^ (block[128*i+j] >> 5) ^
1791 (block[128*i+j] >> 6) ^ (block[128*i+j] >> 7)) & 1) << 1;
1793 pd1 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 2) ^
1794 (block[i] >> 3) ^ (block[i] >> 4) ^ (block[i] >> 5) ^
1795 (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 2;
1799 pd1 ^= (((block[i] >> 1) ^ (block[i] >> 3) ^ (block[i] >> 5) ^ (block[i] >> 7)) & 1) << 5;
1801 pd1 ^= (((block[i] >> 2) ^ (block[i] >> 3) ^ (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 6;
1803 pd1 ^= (((block[i] >> 4) ^ (block[i] >> 5) ^ (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 7;
1805 pd2 ^= ((block[2*i+1] ^ (block[2*i+1] >> 1) ^ (block[2*i+1] >> 2) ^
1806 (block[2*i+1] >> 3) ^ (block[2*i+1] >> 4) ^ (block[2*i+1] >> 5) ^
1807 (block[2*i+1] >> 6) ^ (block[2*i+1] >> 7)) & 1) << 0;
1810 pd2 ^= ((block[4*i+j] ^ (block[4*i+j] >> 1) ^ (block[4*i+j] >> 2) ^
1811 (block[4*i+j] >> 3) ^ (block[4*i+j] >> 4) ^ (block[4*i+j] >> 5) ^
1812 (block[4*i+j] >> 6) ^ (block[4*i+j] >> 7)) & 1) << 1;
1815 pd2 ^= ((block[8*i+j] ^ (block[8*i+j] >> 1) ^ (block[8*i+j] >> 2) ^
1816 (block[8*i+j] >> 3) ^ (block[8*i+j] >> 4) ^ (block[8*i+j] >> 5) ^
1817 (block[8*i+j] >> 6) ^ (block[8*i+j] >> 7)) & 1) << 2;
1820 pd2 ^= ((block[16*i+j] ^ (block[16*i+j] >> 1) ^ (block[16*i+j] >> 2) ^
1821 (block[16*i+j] >> 3) ^ (block[16*i+j] >> 4) ^ (block[16*i+j] >> 5) ^
1822 (block[16*i+j] >> 6) ^ (block[16*i+j] >> 7)) & 1) << 3;
1825 pd2 ^= ((block[32*i+j] ^ (block[32*i+j] >> 1) ^ (block[32*i+j] >> 2) ^
1826 (block[32*i+j] >> 3) ^ (block[32*i+j] >> 4) ^ (block[32*i+j] >> 5) ^
1827 (block[32*i+j] >> 6) ^ (block[32*i+j] >> 7)) & 1) << 4;
1830 pd2 ^= ((block[64*i+j] ^ (block[64*i+j] >> 1) ^ (block[64*i+j] >> 2) ^
1831 (block[64*i+j] >> 3) ^ (block[64*i+j] >> 4) ^ (block[64*i+j] >> 5) ^
1832 (block[64*i+j] >> 6) ^ (block[64*i+j] >> 7)) & 1) << 5;
1835 pd2 ^= ((block[128*i+j] ^ (block[128*i+j] >> 1) ^ (block[128*i+j] >> 2) ^
1836 (block[128*i+j] >> 3) ^ (block[128*i+j] >> 4) ^ (block[128*i+j] >> 5) ^
1837 (block[128*i+j] >> 6) ^ (block[128*i+j] >> 7)) & 1) << 6;
1839 pd2 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 2) ^
1840 (block[i] >> 3) ^ (block[i] >> 4) ^ (block[i] >> 5) ^
1841 (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 7;
1849 * Check an Octeon ECC block, fixing errors if possible
1851 * @param block Pointer to block to check
1853 * @return Zero if block has no errors, one if errors were corrected, two
1856 int cvmx_nand_correct_boot_ecc(uint8_t *block)
1864 asm volatile ("pref 0,0(%0);pref 0,128(%0);pref 0,256(%0)\n" :: "r" (block));
1869 pd0 ^= (block[i] ^ (block[i] >> 2) ^ (block[i] >> 4) ^ (block[i] >> 6)) & 1;
1871 pd0 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 4) ^ (block[i] >> 5)) & 1) << 1;
1873 pd0 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 2) ^ (block[i] >> 3)) & 1) << 2;
1875 pd0 ^= ((block[2*i] ^ (block[2*i] >> 1) ^ (block[2*i] >> 2) ^
1876 (block[2*i] >> 3) ^ (block[2*i] >> 4) ^ (block[2*i] >> 5) ^
1877 (block[2*i] >> 6) ^ (block[2*i] >> 7)) & 1) << 3;
1880 pd0 ^= ((block[4*i+j] ^ (block[4*i+j] >> 1) ^ (block[4*i+j] >> 2) ^
1881 (block[4*i+j] >> 3) ^ (block[4*i+j] >> 4) ^ (block[4*i+j] >> 5) ^
1882 (block[4*i+j] >> 6) ^ (block[4*i+j] >> 7)) & 1) << 4;
1885 pd0 ^= ((block[8*i+j] ^ (block[8*i+j] >> 1) ^ (block[8*i+j] >> 2) ^
1886 (block[8*i+j] >> 3) ^ (block[8*i+j] >> 4) ^ (block[8*i+j] >> 5) ^
1887 (block[8*i+j] >> 6) ^ (block[8*i+j] >> 7)) & 1) << 5;
1890 pd0 ^= ((block[16*i+j] ^ (block[16*i+j] >> 1) ^ (block[16*i+j] >> 2) ^
1891 (block[16*i+j] >> 3) ^ (block[16*i+j] >> 4) ^ (block[16*i+j] >> 5) ^
1892 (block[16*i+j] >> 6) ^ (block[16*i+j] >> 7)) & 1) << 6;
1895 pd0 ^= ((block[32*i+j] ^ (block[32*i+j] >> 1) ^ (block[32*i+j] >> 2) ^
1896 (block[32*i+j] >> 3) ^ (block[32*i+j] >> 4) ^ (block[32*i+j] >> 5) ^
1897 (block[32*i+j] >> 6) ^ (block[32*i+j] >> 7)) & 1) << 7;
1900 pd1 ^= ((block[64*i+j] ^ (block[64*i+j] >> 1) ^ (block[64*i+j] >> 2) ^
1901 (block[64*i+j] >> 3) ^ (block[64*i+j] >> 4) ^ (block[64*i+j] >> 5) ^
1902 (block[64*i+j] >> 6) ^ (block[64*i+j] >> 7)) & 1) << 0;
1905 pd1 ^= ((block[128*i+j] ^ (block[128*i+j] >> 1) ^ (block[128*i+j] >> 2) ^
1906 (block[128*i+j] >> 3) ^ (block[128*i+j] >> 4) ^ (block[128*i+j] >> 5) ^
1907 (block[128*i+j] >> 6) ^ (block[128*i+j] >> 7)) & 1) << 1;
1909 pd1 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 2) ^
1910 (block[i] >> 3) ^ (block[i] >> 4) ^ (block[i] >> 5) ^
1911 (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 2;
1915 pd1 ^= (((block[i] >> 1) ^ (block[i] >> 3) ^ (block[i] >> 5) ^ (block[i] >> 7)) & 1) << 5;
1917 pd1 ^= (((block[i] >> 2) ^ (block[i] >> 3) ^ (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 6;
1919 pd1 ^= (((block[i] >> 4) ^ (block[i] >> 5) ^ (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 7;
1921 pd2 ^= ((block[2*i+1] ^ (block[2*i+1] >> 1) ^ (block[2*i+1] >> 2) ^
1922 (block[2*i+1] >> 3) ^ (block[2*i+1] >> 4) ^ (block[2*i+1] >> 5) ^
1923 (block[2*i+1] >> 6) ^ (block[2*i+1] >> 7)) & 1) << 0;
1926 pd2 ^= ((block[4*i+j] ^ (block[4*i+j] >> 1) ^ (block[4*i+j] >> 2) ^
1927 (block[4*i+j] >> 3) ^ (block[4*i+j] >> 4) ^ (block[4*i+j] >> 5) ^
1928 (block[4*i+j] >> 6) ^ (block[4*i+j] >> 7)) & 1) << 1;
1931 pd2 ^= ((block[8*i+j] ^ (block[8*i+j] >> 1) ^ (block[8*i+j] >> 2) ^
1932 (block[8*i+j] >> 3) ^ (block[8*i+j] >> 4) ^ (block[8*i+j] >> 5) ^
1933 (block[8*i+j] >> 6) ^ (block[8*i+j] >> 7)) & 1) << 2;
1936 pd2 ^= ((block[16*i+j] ^ (block[16*i+j] >> 1) ^ (block[16*i+j] >> 2) ^
1937 (block[16*i+j] >> 3) ^ (block[16*i+j] >> 4) ^ (block[16*i+j] >> 5) ^
1938 (block[16*i+j] >> 6) ^ (block[16*i+j] >> 7)) & 1) << 3;
1941 pd2 ^= ((block[32*i+j] ^ (block[32*i+j] >> 1) ^ (block[32*i+j] >> 2) ^
1942 (block[32*i+j] >> 3) ^ (block[32*i+j] >> 4) ^ (block[32*i+j] >> 5) ^
1943 (block[32*i+j] >> 6) ^ (block[32*i+j] >> 7)) & 1) << 4;
1946 pd2 ^= ((block[64*i+j] ^ (block[64*i+j] >> 1) ^ (block[64*i+j] >> 2) ^
1947 (block[64*i+j] >> 3) ^ (block[64*i+j] >> 4) ^ (block[64*i+j] >> 5) ^
1948 (block[64*i+j] >> 6) ^ (block[64*i+j] >> 7)) & 1) << 5;
1951 pd2 ^= ((block[128*i+j] ^ (block[128*i+j] >> 1) ^ (block[128*i+j] >> 2) ^
1952 (block[128*i+j] >> 3) ^ (block[128*i+j] >> 4) ^ (block[128*i+j] >> 5) ^
1953 (block[128*i+j] >> 6) ^ (block[128*i+j] >> 7)) & 1) << 6;
1955 pd2 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 2) ^
1956 (block[i] >> 3) ^ (block[i] >> 4) ^ (block[i] >> 5) ^
1957 (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 7;
1959 xorpd0 = pd0 ^ block[256];
1960 xorpd1 = pd1 ^ block[257];
1961 xorpd2 = pd2 ^ block[258];
1974 block[xorpd2] ^= 1 << (xorpd1 >> 5);