Lines Matching defs:geom

189 #define NS_IS_INITIALIZED(ns) ((ns)->geom.totsz != 0)
199 (((ns)->regs.row * (ns)->geom.pgszoob) + (ns)->regs.column)
202 #define NS_RAW_OFFSET_OOB(ns) (NS_RAW_OFFSET(ns) + ns->geom.pgsz)
331 } geom;
557 BITS_TO_LONGS(ns->geom.pgnum)));
563 ns->file_buf = kmalloc(ns->geom.pgszoob, GFP_KERNEL);
581 ns->pages = vmalloc(array_size(sizeof(union ns_mem), ns->geom.pgnum));
586 for (i = 0; i < ns->geom.pgnum; i++) {
590 ns->geom.pgszoob, 0, 0, NULL);
620 for (i = 0; i < ns->geom.pgnum; i++) {
655 ns->geom.totsz = mtd->size;
656 ns->geom.pgsz = mtd->writesize;
657 ns->geom.oobsz = mtd->oobsize;
658 ns->geom.secsz = mtd->erasesize;
659 ns->geom.pgszoob = ns->geom.pgsz + ns->geom.oobsz;
660 ns->geom.pgnum = div_u64(ns->geom.totsz, ns->geom.pgsz);
661 ns->geom.totszoob = ns->geom.totsz + (uint64_t)ns->geom.pgnum * ns->geom.oobsz;
662 ns->geom.secshift = ffs(ns->geom.secsz) - 1;
663 ns->geom.pgshift = chip->page_shift;
664 ns->geom.pgsec = ns->geom.secsz / ns->geom.pgsz;
665 ns->geom.secszoob = ns->geom.secsz + ns->geom.oobsz * ns->geom.pgsec;
668 if (ns->geom.pgsz == 512) {
672 } else if (ns->geom.pgsz == 2048) {
674 } else if (ns->geom.pgsz == 4096) {
677 NS_ERR("init_nandsim: unknown page size %u\n", ns->geom.pgsz);
682 if (ns->geom.totsz <= (32 << 20)) {
683 ns->geom.pgaddrbytes = 3;
684 ns->geom.secaddrbytes = 2;
686 ns->geom.pgaddrbytes = 4;
687 ns->geom.secaddrbytes = 3;
690 if (ns->geom.totsz <= (128 << 20)) {
691 ns->geom.pgaddrbytes = 4;
692 ns->geom.secaddrbytes = 2;
694 ns->geom.pgaddrbytes = 5;
695 ns->geom.secaddrbytes = 3;
704 remains = ns->geom.totsz;
707 uint64_t part_sz = (uint64_t)parts[i] * ns->geom.secsz;
745 (unsigned long long)ns->geom.totsz >> 20);
746 printk("page size: %u bytes\n", ns->geom.pgsz);
747 printk("OOB area size: %u bytes\n", ns->geom.oobsz);
748 printk("sector size: %u KiB\n", ns->geom.secsz >> 10);
749 printk("pages number: %u\n", ns->geom.pgnum);
750 printk("pages per sector: %u\n", ns->geom.pgsec);
752 printk("bits in sector size: %u\n", ns->geom.secshift);
753 printk("bits in page size: %u\n", ns->geom.pgshift);
754 printk("bits in OOB size: %u\n", ffs(ns->geom.oobsz) - 1);
756 (unsigned long long)ns->geom.totszoob >> 10);
757 printk("page address bytes: %u\n", ns->geom.pgaddrbytes);
758 printk("sector address bytes: %u\n", ns->geom.secaddrbytes);
766 ns->buf.byte = kmalloc(ns->geom.pgszoob, GFP_KERNEL);
769 ns->geom.pgszoob);
773 memset(ns->buf.byte, 0xFF, ns->geom.pgszoob);
819 offset = (loff_t)erase_block_no * ns->geom.secsz;
1142 if (ns->regs.count < (ns->geom.pgaddrbytes - ns->geom.secaddrbytes))
1146 ns->geom.pgaddrbytes +
1147 ns->geom.secaddrbytes));
1474 for (i = 0; i < ns->geom.pgsec; i++)
1483 for (i = 0; i < ns->geom.pgsec; i++) {
1512 memset(ns->file_buf, 0xff, ns->geom.pgszoob);
1524 loff_t pos = (loff_t)ns->regs.row * ns->geom.pgszoob;
1526 ns->geom.pgszoob, pos);
1527 if (tx != ns->geom.pgszoob) {
1556 memset(mypage->byte, 0xFF, ns->geom.pgszoob);
1580 if (action != ACTION_SECERASE && ns->regs.row >= ns->geom.pgnum) {
1593 if (ns->regs.column >= (ns->geom.pgszoob - ns->regs.off)) {
1597 num = ns->geom.pgszoob - NS_PAGE_BYTE_SHIFT(ns);
1605 else if (ns->regs.off < ns->geom.pgsz)
1611 NS_UDELAY(input_cycle * ns->geom.pgsz / 1000 / busdiv);
1625 if (ns->regs.row >= ns->geom.pgnum - ns->geom.pgsec
1626 || (ns->regs.row & ~(ns->geom.secsz - 1))) {
1632 8 * (ns->geom.pgaddrbytes - ns->geom.secaddrbytes)) | ns->regs.column;
1635 erase_block_no = ns->regs.row >> (ns->geom.secshift - ns->geom.pgshift);
1665 num = ns->geom.pgszoob - NS_PAGE_BYTE_SHIFT(ns);
1682 NS_UDELAY(output_cycle * ns->geom.pgsz / 1000 / busdiv);
1702 NS_DBG("do_state_action: set internal offset to %d\n", ns->geom.pgsz/2);
1703 ns->regs.off = ns->geom.pgsz/2;
1707 NS_DBG("do_state_action: set internal offset to %d\n", ns->geom.pgsz);
1708 ns->regs.off = ns->geom.pgsz;
1809 ns->regs.num = ns->geom.pgszoob - NS_PAGE_BYTE_SHIFT(ns);
1813 ns->regs.num = ns->geom.idbytes;
1834 ns->regs.num = ns->geom.pgaddrbytes;
1838 ns->regs.num = ns->geom.secaddrbytes;
1847 ns->regs.num = ns->geom.pgaddrbytes - ns->geom.secaddrbytes;
2008 ns->regs.num = ns->geom.pgaddrbytes;
2011 ns->regs.num = ns->geom.secaddrbytes;
2304 ns->geom.idbytes = 8;
2306 ns->geom.idbytes = 6;
2308 ns->geom.idbytes = 4;
2310 ns->geom.idbytes = 2;