| 937 | } |
| 938 | |
| 939 | static void dump_vscc(uint32_t vscc) |
| 940 | { |
| 941 | printf(" Lower Erase Opcode: 0x%02x\n", |
| 942 | vscc >> 24); |
| 943 | printf(" Lower Write Enable on Write Status: 0x%02x\n", |
| 944 | vscc & (1 << 20) ? 0x06 : 0x50); |
| 945 | printf(" Lower Write Status Required: %s\n", |
| 946 | vscc & (1 << 19) ? "Yes" : "No"); |
| 947 | printf(" Lower Write Granularity: %d bytes\n", |
| 948 | vscc & (1 << 18) ? 64 : 1); |
| 949 | printf(" Lower Block / Sector Erase Size: "); |
| 950 | switch ((vscc >> 16) & 0x3) { |
| 951 | case 0: |
| 952 | printf("256 Byte\n"); |
| 953 | break; |
| 954 | case 1: |
| 955 | printf("4KB\n"); |
| 956 | break; |
| 957 | case 2: |
| 958 | printf("8KB\n"); |
| 959 | break; |
| 960 | case 3: |
| 961 | printf("64KB\n"); |
| 962 | break; |
| 963 | } |
| 964 | |
| 965 | printf(" Upper Erase Opcode: 0x%02x\n", |
| 966 | (vscc >> 8) & 0xff); |
| 967 | printf(" Upper Write Enable on Write Status: 0x%02x\n", |
| 968 | vscc & (1 << 4) ? 0x06 : 0x50); |
| 969 | printf(" Upper Write Status Required: %s\n", |
| 970 | vscc & (1 << 3) ? "Yes" : "No"); |
| 971 | printf(" Upper Write Granularity: %d bytes\n", |
| 972 | vscc & (1 << 2) ? 64 : 1); |
| 973 | printf(" Upper Block / Sector Erase Size: "); |
| 974 | switch (vscc & 0x3) { |
| 975 | case 0: |
| 976 | printf("256 Byte\n"); |
| 977 | break; |
| 978 | case 1: |
| 979 | printf("4KB\n"); |
| 980 | break; |
| 981 | case 2: |
| 982 | printf("8KB\n"); |
| 983 | break; |
| 984 | case 3: |
| 985 | printf("64KB\n"); |
| 986 | break; |
| 987 | } |
| 988 | } |
| 989 | |
| 990 | static void dump_vtba(const struct vtba *vtba, int vtl) |
| 991 | { |