11bd4fe43Sopenharmony_ciroot {
21bd4fe43Sopenharmony_ci    platform {
31bd4fe43Sopenharmony_ci        mtd_config {
41bd4fe43Sopenharmony_ci            template mtd_controller {
51bd4fe43Sopenharmony_ci                match_attr = "";
61bd4fe43Sopenharmony_ci                regBase = 0x10000000;
71bd4fe43Sopenharmony_ci                regSize = 0xe0;
81bd4fe43Sopenharmony_ci                memBase = 0x14000000;
91bd4fe43Sopenharmony_ci                memSize = 0x1000000;
101bd4fe43Sopenharmony_ci            }
111bd4fe43Sopenharmony_ci            controller_0x00 :: mtd_controller {
121bd4fe43Sopenharmony_ci                match_attr = "hifmc100_config";
131bd4fe43Sopenharmony_ci                regBase = 0x10000000;
141bd4fe43Sopenharmony_ci                regSize = 0xe0;
151bd4fe43Sopenharmony_ci                memBase = 0x14000000;
161bd4fe43Sopenharmony_ci                memSize = 0x1000000;
171bd4fe43Sopenharmony_ci                spi_nand_dev_table {
181bd4fe43Sopenharmony_ci                    template spinand_device {
191bd4fe43Sopenharmony_ci                        template spinand_op {
201bd4fe43Sopenharmony_ci                            if_type = 0x0;
211bd4fe43Sopenharmony_ci                            cmd = 0x0;
221bd4fe43Sopenharmony_ci                            dummy = 0x0;
231bd4fe43Sopenharmony_ci                            size = 0x0;
241bd4fe43Sopenharmony_ci                            clock = 0x0;
251bd4fe43Sopenharmony_ci                        }
261bd4fe43Sopenharmony_ci                        name = "unkown";
271bd4fe43Sopenharmony_ci                        id = [0x0, 0x0];
281bd4fe43Sopenharmony_ci                        chip_size = 0x1000000; // 16M
291bd4fe43Sopenharmony_ci                        block_size = 0x10000;  // 64K
301bd4fe43Sopenharmony_ci                        page_size = 2048;      // 2K
311bd4fe43Sopenharmony_ci                        oob_size = 64;
321bd4fe43Sopenharmony_ci                        qe_support = 0;
331bd4fe43Sopenharmony_ci                        erase_op :: spinand_op {
341bd4fe43Sopenharmony_ci                        }
351bd4fe43Sopenharmony_ci                        write_op :: spinand_op {
361bd4fe43Sopenharmony_ci                        }
371bd4fe43Sopenharmony_ci                        read_op :: spinand_op {
381bd4fe43Sopenharmony_ci                        }
391bd4fe43Sopenharmony_ci                    }
401bd4fe43Sopenharmony_ci                    DS35Q2GAXXX:: spinand_device {
411bd4fe43Sopenharmony_ci                        name = "DS35Q2GAXXX";
421bd4fe43Sopenharmony_ci                        id = [0xe5, 0x72];
431bd4fe43Sopenharmony_ci                        chip_size = 0x10000000; // 256M
441bd4fe43Sopenharmony_ci                        block_size = 0x20000;   // 128K
451bd4fe43Sopenharmony_ci                        page_size = 2048;       // 2K
461bd4fe43Sopenharmony_ci                        oob_size = 64;
471bd4fe43Sopenharmony_ci                        qe_support = 1;
481bd4fe43Sopenharmony_ci                        read_op {
491bd4fe43Sopenharmony_ci                            if_type = 0x3;     // spi if read quad
501bd4fe43Sopenharmony_ci                            cmd = 0x6b;        // spi cmd read quad
511bd4fe43Sopenharmony_ci                            dummy = 1;
521bd4fe43Sopenharmony_ci                            size = 0xffffffff; // infinite
531bd4fe43Sopenharmony_ci                            clock = 104;
541bd4fe43Sopenharmony_ci                        }
551bd4fe43Sopenharmony_ci                        write_op {
561bd4fe43Sopenharmony_ci                            if_type = 0x3;  // spi if write quad
571bd4fe43Sopenharmony_ci                            cmd = 0x32;     // spi cmd write quad
581bd4fe43Sopenharmony_ci                            dummy = 0x0;
591bd4fe43Sopenharmony_ci                            size = 256;
601bd4fe43Sopenharmony_ci                            clock = 104;
611bd4fe43Sopenharmony_ci                        }
621bd4fe43Sopenharmony_ci                        erase_op {
631bd4fe43Sopenharmony_ci                            if_type = 0x0;  // spi if std erase 
641bd4fe43Sopenharmony_ci                            cmd = 0xd8;     // spi cmd se 64k
651bd4fe43Sopenharmony_ci                            dummy = 0x0;
661bd4fe43Sopenharmony_ci                            size = 0x20000; // 128k
671bd4fe43Sopenharmony_ci                            clock = 104;
681bd4fe43Sopenharmony_ci                        }
691bd4fe43Sopenharmony_ci                    }
701bd4fe43Sopenharmony_ci                }
711bd4fe43Sopenharmony_ci                spi_nor_dev_table {
721bd4fe43Sopenharmony_ci                    template spinor_device {
731bd4fe43Sopenharmony_ci                        template spinor_op {
741bd4fe43Sopenharmony_ci                            if_type = 0x0;
751bd4fe43Sopenharmony_ci                            cmd = 0x0;
761bd4fe43Sopenharmony_ci                            dummy = 0x0;
771bd4fe43Sopenharmony_ci                            size = 0x0;
781bd4fe43Sopenharmony_ci                            clock = 0x0;
791bd4fe43Sopenharmony_ci                        }
801bd4fe43Sopenharmony_ci                        name = "unkown";
811bd4fe43Sopenharmony_ci                        id = [0x0, 0x0, 0x0];
821bd4fe43Sopenharmony_ci                        chip_size = 0x1000000; // 16M
831bd4fe43Sopenharmony_ci                        block_size = 0x10000;  // 64K
841bd4fe43Sopenharmony_ci                        addr_cycle = 3;
851bd4fe43Sopenharmony_ci                        qe_support = 0;
861bd4fe43Sopenharmony_ci                        erase_op :: spinor_op {
871bd4fe43Sopenharmony_ci                        }
881bd4fe43Sopenharmony_ci                        write_op :: spinor_op {
891bd4fe43Sopenharmony_ci                        }
901bd4fe43Sopenharmony_ci                        read_op :: spinor_op {
911bd4fe43Sopenharmony_ci                        }
921bd4fe43Sopenharmony_ci                    }
931bd4fe43Sopenharmony_ci                    xm25qh128a :: spinor_device {
941bd4fe43Sopenharmony_ci                        name = "xm25qh128a";
951bd4fe43Sopenharmony_ci                        id = [0x20, 0x70, 0x18];
961bd4fe43Sopenharmony_ci                        chip_size = 0x1000000; // 16M
971bd4fe43Sopenharmony_ci                        block_size = 0x10000;  // 64K
981bd4fe43Sopenharmony_ci                        addr_cycle = 3;
991bd4fe43Sopenharmony_ci                        qe_support = 1;
1001bd4fe43Sopenharmony_ci                        erase_op {
1011bd4fe43Sopenharmony_ci                            if_type = 0x0; // spi if std erase 
1021bd4fe43Sopenharmony_ci                            cmd = 0xd8;     // spi cmd se 64k
1031bd4fe43Sopenharmony_ci                            dummy = 0x0;
1041bd4fe43Sopenharmony_ci                            size = 0x10000; // 64k
1051bd4fe43Sopenharmony_ci                            clock = 104;
1061bd4fe43Sopenharmony_ci                        }
1071bd4fe43Sopenharmony_ci                        write_op {
1081bd4fe43Sopenharmony_ci                            if_type = 0x0;  // spi if write std
1091bd4fe43Sopenharmony_ci                            cmd = 0x2;      // spi cmd write std
1101bd4fe43Sopenharmony_ci                            dummy = 0x0;
1111bd4fe43Sopenharmony_ci                            size = 256;
1121bd4fe43Sopenharmony_ci                            clock = 104;
1131bd4fe43Sopenharmony_ci                        }
1141bd4fe43Sopenharmony_ci                        read_op {
1151bd4fe43Sopenharmony_ci                            if_type = 0x2; // spi if read dual addr
1161bd4fe43Sopenharmony_ci                            cmd = 0xbb;     // spi cmd read dual addr
1171bd4fe43Sopenharmony_ci                            dummy = 0x1;
1181bd4fe43Sopenharmony_ci                            size = 0xffffffff;
1191bd4fe43Sopenharmony_ci                            clock = 104;
1201bd4fe43Sopenharmony_ci                        }
1211bd4fe43Sopenharmony_ci                    }
1221bd4fe43Sopenharmony_ci                }
1231bd4fe43Sopenharmony_ci            }
1241bd4fe43Sopenharmony_ci        }
1251bd4fe43Sopenharmony_ci    }
1261bd4fe43Sopenharmony_ci}
127