Lines Matching refs:block

395         cvmx_dprintf("%s: Defaults: page size: %d, OOB size: %d, pages per block %d, blocks: %d, timing mode: %d\n",
716 cvmx_dprintf("%s: Defaults: page size: %d, OOB size: %d, pages per block %d, part size: %d MBytes, timing mode: %d\n",
947 * This include column bits, padding, page bits, and block bits.
1417 * Erase a NAND block. A single block contains multiple pages.
1625 * Get the number of pages per NAND block
1629 * @return Number of pages in each block or a negative cvmx_nand_status_t error
1703 * @param block pointer to 256 bytes of data
1706 void cvmx_nand_compute_boot_ecc(unsigned char *block, unsigned char *eccp)
1714 pd0 ^= (block[i] ^ (block[i] >> 2) ^ (block[i] >> 4) ^ (block[i] >> 6)) & 1;
1716 pd0 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 4) ^ (block[i] >> 5)) & 1) << 1;
1718 pd0 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 2) ^ (block[i] >> 3)) & 1) << 2;
1720 pd0 ^= ((block[2*i] ^ (block[2*i] >> 1) ^ (block[2*i] >> 2) ^
1721 (block[2*i] >> 3) ^ (block[2*i] >> 4) ^ (block[2*i] >> 5) ^
1722 (block[2*i] >> 6) ^ (block[2*i] >> 7)) & 1) << 3;
1725 pd0 ^= ((block[4*i+j] ^ (block[4*i+j] >> 1) ^ (block[4*i+j] >> 2) ^
1726 (block[4*i+j] >> 3) ^ (block[4*i+j] >> 4) ^ (block[4*i+j] >> 5) ^
1727 (block[4*i+j] >> 6) ^ (block[4*i+j] >> 7)) & 1) << 4;
1730 pd0 ^= ((block[8*i+j] ^ (block[8*i+j] >> 1) ^ (block[8*i+j] >> 2) ^
1731 (block[8*i+j] >> 3) ^ (block[8*i+j] >> 4) ^ (block[8*i+j] >> 5) ^
1732 (block[8*i+j] >> 6) ^ (block[8*i+j] >> 7)) & 1) << 5;
1735 pd0 ^= ((block[16*i+j] ^ (block[16*i+j] >> 1) ^ (block[16*i+j] >> 2) ^
1736 (block[16*i+j] >> 3) ^ (block[16*i+j] >> 4) ^ (block[16*i+j] >> 5) ^
1737 (block[16*i+j] >> 6) ^ (block[16*i+j] >> 7)) & 1) << 6;
1740 pd0 ^= ((block[32*i+j] ^ (block[32*i+j] >> 1) ^ (block[32*i+j] >> 2) ^
1741 (block[32*i+j] >> 3) ^ (block[32*i+j] >> 4) ^ (block[32*i+j] >> 5) ^
1742 (block[32*i+j] >> 6) ^ (block[32*i+j] >> 7)) & 1) << 7;
1745 pd1 ^= ((block[64*i+j] ^ (block[64*i+j] >> 1) ^ (block[64*i+j] >> 2) ^
1746 (block[64*i+j] >> 3) ^ (block[64*i+j] >> 4) ^ (block[64*i+j] >> 5) ^
1747 (block[64*i+j] >> 6) ^ (block[64*i+j] >> 7)) & 1) << 0;
1750 pd1 ^= ((block[128*i+j] ^ (block[128*i+j] >> 1) ^ (block[128*i+j] >> 2) ^
1751 (block[128*i+j] >> 3) ^ (block[128*i+j] >> 4) ^ (block[128*i+j] >> 5) ^
1752 (block[128*i+j] >> 6) ^ (block[128*i+j] >> 7)) & 1) << 1;
1754 pd1 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 2) ^
1755 (block[i] >> 3) ^ (block[i] >> 4) ^ (block[i] >> 5) ^
1756 (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 2;
1760 pd1 ^= (((block[i] >> 1) ^ (block[i] >> 3) ^ (block[i] >> 5) ^ (block[i] >> 7)) & 1) << 5;
1762 pd1 ^= (((block[i] >> 2) ^ (block[i] >> 3) ^ (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 6;
1764 pd1 ^= (((block[i] >> 4) ^ (block[i] >> 5) ^ (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 7;
1766 pd2 ^= ((block[2*i+1] ^ (block[2*i+1] >> 1) ^ (block[2*i+1] >> 2) ^
1767 (block[2*i+1] >> 3) ^ (block[2*i+1] >> 4) ^ (block[2*i+1] >> 5) ^
1768 (block[2*i+1] >> 6) ^ (block[2*i+1] >> 7)) & 1) << 0;
1771 pd2 ^= ((block[4*i+j] ^ (block[4*i+j] >> 1) ^ (block[4*i+j] >> 2) ^
1772 (block[4*i+j] >> 3) ^ (block[4*i+j] >> 4) ^ (block[4*i+j] >> 5) ^
1773 (block[4*i+j] >> 6) ^ (block[4*i+j] >> 7)) & 1) << 1;
1776 pd2 ^= ((block[8*i+j] ^ (block[8*i+j] >> 1) ^ (block[8*i+j] >> 2) ^
1777 (block[8*i+j] >> 3) ^ (block[8*i+j] >> 4) ^ (block[8*i+j] >> 5) ^
1778 (block[8*i+j] >> 6) ^ (block[8*i+j] >> 7)) & 1) << 2;
1781 pd2 ^= ((block[16*i+j] ^ (block[16*i+j] >> 1) ^ (block[16*i+j] >> 2) ^
1782 (block[16*i+j] >> 3) ^ (block[16*i+j] >> 4) ^ (block[16*i+j] >> 5) ^
1783 (block[16*i+j] >> 6) ^ (block[16*i+j] >> 7)) & 1) << 3;
1786 pd2 ^= ((block[32*i+j] ^ (block[32*i+j] >> 1) ^ (block[32*i+j] >> 2) ^
1787 (block[32*i+j] >> 3) ^ (block[32*i+j] >> 4) ^ (block[32*i+j] >> 5) ^
1788 (block[32*i+j] >> 6) ^ (block[32*i+j] >> 7)) & 1) << 4;
1791 pd2 ^= ((block[64*i+j] ^ (block[64*i+j] >> 1) ^ (block[64*i+j] >> 2) ^
1792 (block[64*i+j] >> 3) ^ (block[64*i+j] >> 4) ^ (block[64*i+j] >> 5) ^
1793 (block[64*i+j] >> 6) ^ (block[64*i+j] >> 7)) & 1) << 5;
1796 pd2 ^= ((block[128*i+j] ^ (block[128*i+j] >> 1) ^ (block[128*i+j] >> 2) ^
1797 (block[128*i+j] >> 3) ^ (block[128*i+j] >> 4) ^ (block[128*i+j] >> 5) ^
1798 (block[128*i+j] >> 6) ^ (block[128*i+j] >> 7)) & 1) << 6;
1800 pd2 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 2) ^
1801 (block[i] >> 3) ^ (block[i] >> 4) ^ (block[i] >> 5) ^
1802 (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 7;
1810 * Check an Octeon ECC block, fixing errors if possible
1812 * @param block Pointer to block to check
1814 * @return Zero if block has no errors, one if errors were corrected, two
1817 int cvmx_nand_correct_boot_ecc(uint8_t *block)
1825 asm volatile ("pref 0,0(%0);pref 0,128(%0);pref 0,256(%0)\n" :: "r" (block));
1830 pd0 ^= (block[i] ^ (block[i] >> 2) ^ (block[i] >> 4) ^ (block[i] >> 6)) & 1;
1832 pd0 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 4) ^ (block[i] >> 5)) & 1) << 1;
1834 pd0 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 2) ^ (block[i] >> 3)) & 1) << 2;
1836 pd0 ^= ((block[2*i] ^ (block[2*i] >> 1) ^ (block[2*i] >> 2) ^
1837 (block[2*i] >> 3) ^ (block[2*i] >> 4) ^ (block[2*i] >> 5) ^
1838 (block[2*i] >> 6) ^ (block[2*i] >> 7)) & 1) << 3;
1841 pd0 ^= ((block[4*i+j] ^ (block[4*i+j] >> 1) ^ (block[4*i+j] >> 2) ^
1842 (block[4*i+j] >> 3) ^ (block[4*i+j] >> 4) ^ (block[4*i+j] >> 5) ^
1843 (block[4*i+j] >> 6) ^ (block[4*i+j] >> 7)) & 1) << 4;
1846 pd0 ^= ((block[8*i+j] ^ (block[8*i+j] >> 1) ^ (block[8*i+j] >> 2) ^
1847 (block[8*i+j] >> 3) ^ (block[8*i+j] >> 4) ^ (block[8*i+j] >> 5) ^
1848 (block[8*i+j] >> 6) ^ (block[8*i+j] >> 7)) & 1) << 5;
1851 pd0 ^= ((block[16*i+j] ^ (block[16*i+j] >> 1) ^ (block[16*i+j] >> 2) ^
1852 (block[16*i+j] >> 3) ^ (block[16*i+j] >> 4) ^ (block[16*i+j] >> 5) ^
1853 (block[16*i+j] >> 6) ^ (block[16*i+j] >> 7)) & 1) << 6;
1856 pd0 ^= ((block[32*i+j] ^ (block[32*i+j] >> 1) ^ (block[32*i+j] >> 2) ^
1857 (block[32*i+j] >> 3) ^ (block[32*i+j] >> 4) ^ (block[32*i+j] >> 5) ^
1858 (block[32*i+j] >> 6) ^ (block[32*i+j] >> 7)) & 1) << 7;
1861 pd1 ^= ((block[64*i+j] ^ (block[64*i+j] >> 1) ^ (block[64*i+j] >> 2) ^
1862 (block[64*i+j] >> 3) ^ (block[64*i+j] >> 4) ^ (block[64*i+j] >> 5) ^
1863 (block[64*i+j] >> 6) ^ (block[64*i+j] >> 7)) & 1) << 0;
1866 pd1 ^= ((block[128*i+j] ^ (block[128*i+j] >> 1) ^ (block[128*i+j] >> 2) ^
1867 (block[128*i+j] >> 3) ^ (block[128*i+j] >> 4) ^ (block[128*i+j] >> 5) ^
1868 (block[128*i+j] >> 6) ^ (block[128*i+j] >> 7)) & 1) << 1;
1870 pd1 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 2) ^
1871 (block[i] >> 3) ^ (block[i] >> 4) ^ (block[i] >> 5) ^
1872 (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 2;
1876 pd1 ^= (((block[i] >> 1) ^ (block[i] >> 3) ^ (block[i] >> 5) ^ (block[i] >> 7)) & 1) << 5;
1878 pd1 ^= (((block[i] >> 2) ^ (block[i] >> 3) ^ (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 6;
1880 pd1 ^= (((block[i] >> 4) ^ (block[i] >> 5) ^ (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 7;
1882 pd2 ^= ((block[2*i+1] ^ (block[2*i+1] >> 1) ^ (block[2*i+1] >> 2) ^
1883 (block[2*i+1] >> 3) ^ (block[2*i+1] >> 4) ^ (block[2*i+1] >> 5) ^
1884 (block[2*i+1] >> 6) ^ (block[2*i+1] >> 7)) & 1) << 0;
1887 pd2 ^= ((block[4*i+j] ^ (block[4*i+j] >> 1) ^ (block[4*i+j] >> 2) ^
1888 (block[4*i+j] >> 3) ^ (block[4*i+j] >> 4) ^ (block[4*i+j] >> 5) ^
1889 (block[4*i+j] >> 6) ^ (block[4*i+j] >> 7)) & 1) << 1;
1892 pd2 ^= ((block[8*i+j] ^ (block[8*i+j] >> 1) ^ (block[8*i+j] >> 2) ^
1893 (block[8*i+j] >> 3) ^ (block[8*i+j] >> 4) ^ (block[8*i+j] >> 5) ^
1894 (block[8*i+j] >> 6) ^ (block[8*i+j] >> 7)) & 1) << 2;
1897 pd2 ^= ((block[16*i+j] ^ (block[16*i+j] >> 1) ^ (block[16*i+j] >> 2) ^
1898 (block[16*i+j] >> 3) ^ (block[16*i+j] >> 4) ^ (block[16*i+j] >> 5) ^
1899 (block[16*i+j] >> 6) ^ (block[16*i+j] >> 7)) & 1) << 3;
1902 pd2 ^= ((block[32*i+j] ^ (block[32*i+j] >> 1) ^ (block[32*i+j] >> 2) ^
1903 (block[32*i+j] >> 3) ^ (block[32*i+j] >> 4) ^ (block[32*i+j] >> 5) ^
1904 (block[32*i+j] >> 6) ^ (block[32*i+j] >> 7)) & 1) << 4;
1907 pd2 ^= ((block[64*i+j] ^ (block[64*i+j] >> 1) ^ (block[64*i+j] >> 2) ^
1908 (block[64*i+j] >> 3) ^ (block[64*i+j] >> 4) ^ (block[64*i+j] >> 5) ^
1909 (block[64*i+j] >> 6) ^ (block[64*i+j] >> 7)) & 1) << 5;
1912 pd2 ^= ((block[128*i+j] ^ (block[128*i+j] >> 1) ^ (block[128*i+j] >> 2) ^
1913 (block[128*i+j] >> 3) ^ (block[128*i+j] >> 4) ^ (block[128*i+j] >> 5) ^
1914 (block[128*i+j] >> 6) ^ (block[128*i+j] >> 7)) & 1) << 6;
1916 pd2 ^= ((block[i] ^ (block[i] >> 1) ^ (block[i] >> 2) ^
1917 (block[i] >> 3) ^ (block[i] >> 4) ^ (block[i] >> 5) ^
1918 (block[i] >> 6) ^ (block[i] >> 7)) & 1) << 7;
1920 xorpd0 = pd0 ^ block[256];
1921 xorpd1 = pd1 ^ block[257];
1922 xorpd2 = pd2 ^ block[258];
1935 block[xorpd2] ^= 1 << (xorpd1 >> 5);