<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[突然发现 D1 &#x2F; D1s 不支持 GD5F1GQ4UAYIG]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/1648359448280-5c3a6063-1605-46c7-a0ce-55d1b63cf2f6-3b79685db2648b9eeb02699429151f7.jpg" alt="5c3a6063-1605-46c7-a0ce-55d1b63cf2f6-3b79685db2648b9eeb02699429151f7.jpg" class=" img-responsive img-markdown" width="789" height="545" /></p>
<pre><code>U-Boot 2018.05-g24521d6-dirty (Mar 27 2022 - 11:58:13 +0800) Allwinner Technology

[08.090]DRAM:  64 MiB
[08.095]Relocation Offset is: 01ee7000
[08.121]secure enable bit: 0
[08.127]CPU=720 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
[08.133]flash init start
[08.136]workmode = 16,storage type = 0
try card 2
set card number 2
get card number 2
[08.143][mmc]: mmc driver ver uboot2018:2021-11-19 15:38:00
[08.153][mmc]: get sdc_type fail and use default host:tm4.
[08.185][mmc]: Is not Boot mode!
[08.188][mmc]: SUNXI SDMMC Controller Version:0x50310
[08.199][mmc]: ************Try SD card 2************
[08.205][mmc]: mmc 2 cmd timeout 100 status 100
[08.209][mmc]: smc 2 err, cmd 8,  RTO
[08.212][mmc]: mmc 2 close bus gating and reset
[08.217][mmc]: mmc 2 cmd timeout 100 status 100
[08.221][mmc]: smc 2 err, cmd 55,  RTO
[08.225][mmc]: mmc 2 close bus gating and reset
[08.229][mmc]: ************Try MMC card 2************
[08.238][mmc]: mmc 2 cmd timeout 100 status 100
[08.242][mmc]: smc 2 err, cmd 1,  RTO
[08.246][mmc]: mmc 2 close bus gating and reset
[08.250][mmc]: Card did not respond to voltage select!
[08.255][mmc]: ************SD/MMC 2 init error!************
[08.260][mmc]: mmc init product failed
MMC init failed
try emmc fail
[08.277]sunxi-spinand: AW SPINand MTD Layer Version: 1.5 20200407
[08.282]sunxi-spinand-phy: AW SPINand Phy Layer Version: 1.9 20200306
[08.347]sunxi-spinand-phy: request spi0 gpio ok
[08.351]sunxi-spinand-phy: request general tx dma channel ok!
[08.357]sunxi-spinand-phy: request general rx dma channel ok!
[08.362]sunxi-spinand-phy: set spic0 clk to 20 Mhz
[08.367]sunxi-spinand-phy: init spic0 clk ok
sspi-&gt;base_addr = 0x4025000, the SPI control register:
[VER] 0x4025000 = 0x00010001, [GCR] 0x4025004 = 0x00000083, [TCR] 0x4025008 = 0x00000184
[ICR] 0x4025010 = 0x00000f00, [ISR] 0x4025014 = 0x00000032, [FCR] 0x4025018 = 0x00200020
[FSR] 0x402501c = 0x00000000, [WCR] 0x4025020 = 0x00000000, [CCR] 0x4025024 = 0x00000002
[SDC] 0x4025028 = 0x00002000, [BCR] 0x4025030 = 0x00000000, [TCR] 0x4025034 = 0x00000000
[BCC] 0x4025038 = 0x00000000, [DMA] 0x4025088 = 0x000000e5

[08.413]sunxi-spinand-phy: not detect any munufacture from id table
[08.429]sunxi-spinand-phy: get spi-nand Model from fdt fail
[08.434]sunxi-spinand-phy: get phy info from fdt fail
[08.439]sunxi-spinand-phy: not detect munufacture from fdt
[08.444]sunxi-spinand-phy: detect munufacture from id table: GD
[08.460]sunxi-spinand-phy: get spi-nand Model from fdt fail
[08.465]sunxi-spinand-phy: get phy info from fdt fail
[08.470]sunxi-spinand-phy: not detect munufacture from fdt
[08.475]sunxi-spinand-phy: not match spinand: f1c8f1c8 f1c8f1c8
try nand fail
[08.542]unrecognized JEDEC id bytes: ff, c8, f1
try spinor fail
initcall sequence 0000000043f90fc8 failed at call 000000004200e88e (err=-1)
### ERROR ### Please RESET the board ###
</code></pre>
<p dir="auto">突然发现 D1 / D1s 不支持 GD5F1GQ4U<em><strong>A</strong></em>YIG</p>
<p dir="auto"><em><strong>lichee/brandy-2.0/u-boot-2018/drivers/mtd/awnand/spinand/physic/id.c</strong></em>：</p>
<pre><code>

// SPDX-License-Identifier: GPL-2.0

#define pr_fmt(fmt) "sunxi-spinand-phy: " fmt
#include &lt;common.h&gt;
#include &lt;linux/kernel.h&gt;
#include &lt;linux/errno.h&gt;
#include &lt;linux/mtd/aw-spinand.h&gt;
#include &lt;fdt_support.h&gt;
#include &lt;fdtdec.h&gt;

#include "physic.h"

#define KB (1024)
#define MB (KB * 1024)
#define to_kb(size) (size / KB)
#define to_mb(size) (size / MB)

/* manufacture num */
#define MICRON_MANUFACTURE      0x2c
#define GD_MANUFACTURE          0xc8
#define ATO_MANUFACTURE         0x9b
#define WINBOND_MANUFACTURE     0xef
#define MXIC_MANUFACTURE        0xc2
#define TOSHIBA_MANUFACTURE     0x98
#define ETRON_MANUFACTURE       0xd5
#define XTXTECH_MANUFACTURE     0x0b
#define DSTECH_MANUFACTURE      0xe5
#define FORESEE_MANUFACTURE     0xcd
#define ZETTA_MANUFACTURE       0xba
#define FM_MANUFACTURE          0xa1

#define DEBUG_ON(val) \
        do \
                if (!val) { \
                        pr_err("%s %d %s crack\n", __FILE__, __LINE__, __func__); \
                        return false; \
                } \
        while (0)

struct spinand_manufacture m;

struct aw_spinand_phy_info gigadevice[] =
{
        {
                .Model          = "GD5F1GQ4UCYIG",
                .NandID         = {0xc8, 0xb1, 0x48, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ | SPINAND_ONEDUMMY_AFTER_RANDOMREAD,
                .MaxEraseTimes  = 50000,
                .EccType        = BIT3_LIMIT2_TO_6_ERR7,
                .EccProtectedType = SIZE16_OFF0_LEN16,
                .BadBlockFlag   = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
        {
                .Model          = "GD5F1GQ4UBYIG",
                .NandID         = {0xc8, 0xd1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 50000,
                .EccFlag        = HAS_EXT_ECC_SE01,
                .EccType        = BIT4_LIMIT5_TO_7_ERR8_LIMIT_12,
                .EccProtectedType = SIZE16_OFF4_LEN8_OFF4,
                .BadBlockFlag   = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
        {
                /* GD5F2GQ4UB9IG did not check yet */
                .Model          = "GD5F2GQ4UB9IG",
                .NandID         = {0xc8, 0xd2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 2048,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 50000,
                .EccFlag        = HAS_EXT_ECC_SE01,
                .EccType        = BIT4_LIMIT5_TO_7_ERR8_LIMIT_12,
                .EccProtectedType = SIZE16_OFF4_LEN12,
                .BadBlockFlag   = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
        {
                .Model          = "F50L1G41LB(2M)",
                .NandID         = {0xc8, 0x01, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ | SPINAND_QUAD_NO_NEED_ENABLE,
                .MaxEraseTimes  = 65000,
                .EccType        = BIT2_LIMIT1_ERR2,
                .EccProtectedType = SIZE16_OFF4_LEN4_OFF8,
                .BadBlockFlag   = BAD_BLK_FLAG_FIRST_2_PAGE,
        },
        {
                .Model          = "GD5F1GQ5UEYIG",
                .NandID         = {0xc8, 0x51, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 50000,
                .EccFlag        = HAS_EXT_ECC_SE01,
                .EccType        = BIT4_LIMIT5_TO_7_ERR8_LIMIT_12,
                .EccProtectedType = SIZE16_OFF4_LEN12,
                .BadBlockFlag   = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
        {
                .Model          = "GD5F2GQ5UEYIGR",
                .NandID         = {0xc8, 0x52, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 2048,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 50000,
                .EccFlag        = HAS_EXT_ECC_SE01,
                .EccType        = BIT4_LIMIT5_TO_7_ERR8_LIMIT_12,
                .EccProtectedType = SIZE16_OFF4_LEN12,
                .BadBlockFlag   = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
};

struct aw_spinand_phy_info micron[] =
{
        {
                .Model          = "MT29F1G01ABAGDWB",
                .NandID         = {0x2c, 0x14, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ | SPINAND_QUAD_NO_NEED_ENABLE,
                .MaxEraseTimes  = 65000,
                .EccType        = BIT3_LIMIT5_ERR2,
                .EccProtectedType = SIZE16_OFF32_LEN16,
                .BadBlockFlag   = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
        {
                .Model          = "MT29F2G01ABAGDWB",
                .NandID         = {0x2c, 0x24, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 2048,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ | SPINAND_QUAD_NO_NEED_ENABLE |
                        SPINAND_TWO_PLANE_SELECT,
                .MaxEraseTimes  = 65000,
                .EccType        = BIT3_LIMIT5_ERR2 ,
                .EccProtectedType = SIZE16_OFF32_LEN16,
                .BadBlockFlag   = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
};

struct aw_spinand_phy_info xtx[] =
{
        {
                /* XTX26G02A */
                .Model          = "XTX26G02A",
                .NandID         = {0x0B, 0xE2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 2048,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 50000,
                .ecc_status_shift = ECC_STATUS_SHIFT_2,
                .EccType        = BIT4_LIMIT5_TO_7_ERR8_LIMIT_12,
                .EccProtectedType = SIZE16_OFF8_LEN16,
                .BadBlockFlag   = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
        {
                /* XTX26G01A */
                .Model          = "XTX26G01A",
                .NandID         = {0x0B, 0xE1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_DUAL_READ,
                .MaxEraseTimes  = 50000,
                .ecc_status_shift = ECC_STATUS_SHIFT_2,
                .EccType        = BIT4_LIMIT5_TO_7_ERR8_LIMIT_12,
                .EccProtectedType = SIZE16_OFF8_LEN16,
                .BadBlockFlag   = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
        {
                /* XT26G01C */
                .Model          = "XT26G01C",
                .NandID         = {0x0B, 0x11, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 50000,
                .ecc_status_shift = ECC_STATUS_SHIFT_4,
                .EccType        = BIT4_LIMIT5_TO_8_ERR9_TO_15,
                .EccProtectedType = SIZE16_OFF0_LEN16,
                .BadBlockFlag   = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
};

struct aw_spinand_phy_info fm[] = {
        {
                /* only rw stress test */
                .Model          = "FM25S01",
                .NandID         = {0xa1, 0xa1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ | SPINAND_QUAD_NO_NEED_ENABLE,
                .MaxEraseTimes  = 65000,
                .EccType        = BIT2_LIMIT1_ERR2,
                .EccProtectedType = SIZE16_OFF0_LEN16,
                .BadBlockFlag = BAD_BLK_FLAG_FIRST_2_PAGE,
        },
};

struct aw_spinand_phy_info etron[] =
{

};

struct aw_spinand_phy_info toshiba[] =
{

};

struct aw_spinand_phy_info ato[] =
{

};

struct aw_spinand_phy_info mxic[] =
{
        {
                .Model          = "MX35LF1GE4AB",
                .NandID         = {0xc2, 0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 65000,
                .EccFlag        = HAS_EXT_ECC_STATUS,
                .EccType        = BIT4_LIMIT3_TO_4_ERR15,
                /**
                 * MX35LF1GE4AB should use SIZE16_OFF4_LEN12, however, in order
                 * to compatibility with versions already sent to customers,
                 * which do not use general physical layout, we used
                 * SIZE16_OFF4_LEN4_OFF8 instead.
                 */
                .EccProtectedType = SIZE16_OFF4_LEN4_OFF8,
                .BadBlockFlag = BAD_BLK_FLAG_FIRST_2_PAGE,
        },
        {
                .Model          = "MX35LF2GE4AD",
                .NandID         = {0xc2, 0x26, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 2048,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 65000,
                .EccFlag        = HAS_EXT_ECC_STATUS,
                .EccType        = BIT4_LIMIT5_TO_8_ERR9_TO_15,
                .EccProtectedType = SIZE16_OFF4_LEN4_OFF8,
                .BadBlockFlag = BAD_BLK_FLAG_FIRST_2_PAGE,
        },

};

struct aw_spinand_phy_info winbond[] =
{
        {
                .Model          = "W25N01GVZEIG",
                .NandID         = {0xef, 0xaa, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 65000,
                .EccType        = BIT2_LIMIT1_ERR2,
                .EccProtectedType = SIZE16_OFF4_LEN4_OFF8,
                .BadBlockFlag = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
};

struct aw_spinand_phy_info dosilicon[] =
{
        {
                .Model          = "DS35X1GAXXX",
                .NandID         = {0xe5, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 65000,
                .EccType        = BIT2_LIMIT1_ERR2,
                .EccProtectedType = SIZE16_OFF4_LEN4_OFF8,
                .BadBlockFlag = BAD_BLK_FLAG_FIRST_2_PAGE,
        },
};

struct aw_spinand_phy_info foresee[] =
{
        {
                .Model          = "FS35ND01G-S1F1QWFI000",
                .NandID         = {0xcd, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 50000,
                .EccType        = BIT3_LIMIT3_TO_4_ERR7,
                .EccProtectedType = SIZE16_OFF0_LEN16,
                .BadBlockFlag = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
        {
                .Model          = "FS35ND01G-S1Y2QWFI000",
                .NandID         = {0xcd, 0xea, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 50000,
                .EccType        = BIT2_LIMIT1_ERR2,
                .EccProtectedType = SIZE16_OFF0_LEN16,
                .BadBlockFlag = BAD_BLK_FLAG_FRIST_1_PAGE,
        }
};

struct aw_spinand_phy_info zetta[] =
{
        {
                .Model          = "ZD35Q1GAIB",
                .NandID         = {0xba, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 50000,
                .EccType        = BIT2_LIMIT1_ERR2,
                .EccProtectedType = SIZE16_OFF4_LEN4_OFF8,
                .BadBlockFlag = BAD_BLK_FLAG_FIRST_2_PAGE,
        },
};

static const char *aw_spinand_info_model(struct aw_spinand_chip *chip)
{
        struct aw_spinand_phy_info *pinfo = chip-&gt;info-&gt;phy_info;

        return pinfo-&gt;Model;
}

static void aw_spinand_info_nandid(struct aw_spinand_chip *chip, unsigned char *id,
                int cnt)
{
        int i;
        struct aw_spinand_phy_info *pinfo = chip-&gt;info-&gt;phy_info;

        cnt = min(cnt, MAX_ID_LEN);
        for (i = 0; i &lt; cnt; i++)
                id[i] = pinfo-&gt;NandID[i];
}

static unsigned int aw_spinand_info_sector_size(struct aw_spinand_chip *chip)
{
        return 1 &lt;&lt; SECTOR_SHIFT;
}

static unsigned int aw_spinand_info_phy_page_size(struct aw_spinand_chip *chip)
{
        struct aw_spinand_phy_info *pinfo = chip-&gt;info-&gt;phy_info;

        return pinfo-&gt;SectCntPerPage * aw_spinand_info_sector_size(chip);
}

static unsigned int aw_spinand_info_page_size(struct aw_spinand_chip *chip)
{
#if SIMULATE_MULTIPLANE
        return aw_spinand_info_phy_page_size(chip) * 2;
#else
        return aw_spinand_info_phy_page_size(chip);
#endif
}

static unsigned int aw_spinand_info_phy_block_size(struct aw_spinand_chip *chip)
{
        struct aw_spinand_phy_info *pinfo = chip-&gt;info-&gt;phy_info;

        return pinfo-&gt;PageCntPerBlk * aw_spinand_info_phy_page_size(chip);
}

static unsigned int aw_spinand_info_block_size(struct aw_spinand_chip *chip)
{
        struct aw_spinand_phy_info *pinfo = chip-&gt;info-&gt;phy_info;

        return pinfo-&gt;PageCntPerBlk * aw_spinand_info_page_size(chip);
}

static unsigned int aw_spinand_info_phy_oob_size(struct aw_spinand_chip *chip)
{
        struct aw_spinand_phy_info *pinfo = chip-&gt;info-&gt;phy_info;

        return pinfo-&gt;OobSizePerPage;
}

static unsigned int aw_spinand_info_oob_size(struct aw_spinand_chip *chip)
{
#if SIMULATE_MULTIPLANE
        return aw_spinand_info_phy_oob_size(chip) * 2;
#else
        return aw_spinand_info_phy_oob_size(chip);
#endif
}

static unsigned int aw_spinand_info_die_cnt(struct aw_spinand_chip *chip)
{
        struct aw_spinand_phy_info *pinfo = chip-&gt;info-&gt;phy_info;

        return pinfo-&gt;DieCntPerChip;
}

static unsigned int aw_spinand_info_total_size(struct aw_spinand_chip *chip)
{
        struct aw_spinand_phy_info *pinfo = chip-&gt;info-&gt;phy_info;

        return pinfo-&gt;DieCntPerChip * pinfo-&gt;BlkCntPerDie *
                aw_spinand_info_phy_block_size(chip);
}

static int aw_spinand_info_operation_opt(struct aw_spinand_chip *chip)
{
        struct aw_spinand_phy_info *pinfo = chip-&gt;info-&gt;phy_info;

        return pinfo-&gt;OperationOpt;
}

static int aw_spinand_info_max_erase_times(struct aw_spinand_chip *chip)
{
        struct aw_spinand_phy_info *pinfo = chip-&gt;info-&gt;phy_info;

        return pinfo-&gt;MaxEraseTimes;
}

struct spinand_manufacture {
        unsigned char id;
        const char *name;
        struct aw_spinand_phy_info *info;
        unsigned int cnt;
};

#define SPINAND_FACTORY_INFO(_id, _name, _info)                 \
        {                                                       \
                .id = _id,                                      \
                .name = _name,                                  \
                .info = _info,                                  \
                .cnt = ARRAY_SIZE(_info),                       \
        }
static struct spinand_manufacture spinand_factory[] = {
        SPINAND_FACTORY_INFO(MICRON_MANUFACTURE, "Micron", micron),
        SPINAND_FACTORY_INFO(GD_MANUFACTURE, "GD", gigadevice),
        SPINAND_FACTORY_INFO(ATO_MANUFACTURE, "ATO", ato),
        SPINAND_FACTORY_INFO(WINBOND_MANUFACTURE, "Winbond", winbond),
        SPINAND_FACTORY_INFO(MXIC_MANUFACTURE, "Mxic", mxic),
        SPINAND_FACTORY_INFO(TOSHIBA_MANUFACTURE, "Toshiba", toshiba),
        SPINAND_FACTORY_INFO(ETRON_MANUFACTURE, "Etron", etron),
        SPINAND_FACTORY_INFO(XTXTECH_MANUFACTURE, "XTX", xtx),
        SPINAND_FACTORY_INFO(DSTECH_MANUFACTURE, "Dosilicon", dosilicon),
        SPINAND_FACTORY_INFO(FORESEE_MANUFACTURE, "Foresee", foresee),
        SPINAND_FACTORY_INFO(ZETTA_MANUFACTURE, "Zetta", zetta),
        SPINAND_FACTORY_INFO(FM_MANUFACTURE, "FM", fm),
};


static int spinand_get_chip_munufacture(struct aw_spinand_chip *chip, const char **m)
{
        DEBUG_ON(chip-&gt;info);

        struct aw_spinand_phy_info *info = chip-&gt;info-&gt;phy_info;

        switch (info-&gt;NandID[0]) {
        case MICRON_MANUFACTURE:
                *m = "Micron";
        break;
        case GD_MANUFACTURE:
                *m = "GD";
        break;
        case ATO_MANUFACTURE:
                *m = "ATO";
        break;
        case WINBOND_MANUFACTURE:
                *m = "Winbond";
        break;
        case MXIC_MANUFACTURE:
                *m = "Mxic";
        break;
        case TOSHIBA_MANUFACTURE:
                *m = "Toshiba";
        break;
        case ETRON_MANUFACTURE:
                *m = "Etron";
        break;
        case XTXTECH_MANUFACTURE:
                *m = "XTX";
        break;
        case DSTECH_MANUFACTURE:
                *m = "Dosilicon";
        break;
        case FORESEE_MANUFACTURE:
                *m = "Foresee";
        break;
        case ZETTA_MANUFACTURE:
                *m = "Zetta";
        break;
        default:
                *m = NULL;
        break;
        }

        if (*m == NULL)
                return false;
        else
                return true;

}
static const char *aw_spinand_info_manufacture(struct aw_spinand_chip *chip)
{
        int i, j;
        struct spinand_manufacture *m;
        struct aw_spinand_phy_info *pinfo;
        const char *m_name = NULL;
        int ret = 0;

        for (i = 0; i &lt; ARRAY_SIZE(spinand_factory); i++) {
                m = &amp;spinand_factory[i];
                pinfo = chip-&gt;info-&gt;phy_info;
                for (j = 0; j &lt; m-&gt;cnt; j++)
                        if (pinfo == &amp;m-&gt;info[j])
                                return m-&gt;name;
        }

        /*for compatible fdt support spi-nand*/
        ret = spinand_get_chip_munufacture(chip, &amp;m_name);
        if (ret &lt; 0)
                return NULL;
        else
                return m_name;
}

static struct spinand_manufacture *spinand_detect_munufacture(unsigned char id)
{
        int index;
        struct spinand_manufacture *m;

        for (index = 0; index &lt; ARRAY_SIZE(spinand_factory); index++) {
                m = &amp;spinand_factory[index];
                if (m-&gt;id == id) {
                        pr_info("detect munufacture from id table: %s\n", m-&gt;name);
                        return m;
                }
        }

        pr_err("not detect any munufacture from id table\n");
        return NULL;
}

static struct aw_spinand_phy_info *spinand_match_id(
                struct spinand_manufacture *m,
                unsigned char *id)
{
        int i, j, match_max = 1, match_index = 0;
        struct aw_spinand_phy_info *pinfo;

        for (i = 0; i &lt; m-&gt;cnt; i++) {
                int match = 1;

                pinfo = &amp;m-&gt;info[i];
                for (j = 1; j &lt; MAX_ID_LEN; j++) {
                        /* 0xFF matching all ID value */
                        if (pinfo-&gt;NandID[j] != id[j] &amp;&amp;
                                        pinfo-&gt;NandID[j] != 0xFF)
                                break;

                        if (pinfo-&gt;NandID[j] != 0xFF)
                                match++;
                }

                if (match &gt; match_max) {
                        match_max = match;
                        match_index = i;
                }
        }

        if (match_max &gt; 1)
                return &amp;m-&gt;info[match_index];
        return NULL;
}

struct aw_spinand_phy_info *spinand_get_phy_info_from_fdt(struct aw_spinand_chip *chip)
{
        static struct aw_spinand_phy_info info;
        static int had_get;
        int ret = 0;
        int node_offset = 0;
        char *bad_blk_mark_pos = NULL;
        char *quad_read_not_need_enable = NULL;
        char *read_seq_need_onedummy = NULL;
        char *model = NULL;
        int len = 0;
        u32 rx_bus_width = 0;
        u32 tx_bus_width = 0;

        if (had_get == true)
                return &amp;info;

#define BAD_BLK_MARK_POS1 "first_1_page"
#define BAD_BLK_MARK_POS2 "first_2_page"
#define BAD_BLK_MARK_POS3 "last_1_page"
#define BAD_BLK_MARK_POS4 "last_2_page"
        memset(&amp;info, 0, sizeof(struct aw_spinand_phy_info));

        ulong time = 0;
        time = get_timer(0);

        node_offset = fdt_path_offset(working_fdt, "spi0/spi-nand");
        if (node_offset &lt; 0) {
                pr_err("get spi-nand node from fdt failed\n");
                goto err;
        }

        ret = fdt_getprop_string(working_fdt, node_offset, "model", &amp;model);
        if (ret &lt; 0) {
                pr_err("get spi-nand Model from fdt fail\n");
                goto err;
        } else {
                info.Model = model;
        }

        u32 id = 0xffffffff;
        ret = fdt_getprop_u32(working_fdt, node_offset, "id-0", &amp;id);
        if (ret &lt; 0) {
                pr_err("get spi-nand id Low 4 Byte from fdt fail\n");
                goto err;
        }
        len = sizeof(id);
        memmove(info.NandID, &amp;id, min(MAX_ID_LEN, len));

        id = 0xffffffff;
        ret = fdt_getprop_u32(working_fdt, node_offset, "id-1", &amp;id);
        if (ret &lt; 0) {
                pr_info("can't get spi-nand id high 4 Byte from fdt, may be not need\n");
        }
        memmove(info.NandID + min(MAX_ID_LEN, len), &amp;id, max(MAX_ID_LEN, len) - min(MAX_ID_LEN, len));

        ret = fdt_getprop_u32(working_fdt, node_offset, "die_cnt_per_chip", &amp;(info.DieCntPerChip));
        if (ret &lt; 0) {
                pr_err("get spi-nand DieCntPerChip from fdt fail\n");
                goto err;
        }

        ret = fdt_getprop_u32(working_fdt, node_offset, "blk_cnt_per_die", &amp;(info.BlkCntPerDie));
        if (ret &lt; 0) {
                pr_err("get spi-nand BlkCntPerDie from fdt fail\n");
                goto err;
        }

        ret = fdt_getprop_u32(working_fdt, node_offset, "page_cnt_per_blk", &amp;(info.PageCntPerBlk));
        if (ret &lt; 0) {
                pr_err("get spi-nand PageCntPerBlk from fdt fail\n");
                goto err;
        }

        ret = fdt_getprop_u32(working_fdt, node_offset, "sect_cnt_per_page", &amp;(info.SectCntPerPage));
        if (ret &lt; 0) {
                pr_err("get spi-nand SectCntPerPage from fdt fail\n");
                goto err;
        }

        ret = fdt_getprop_u32(working_fdt, node_offset, "oob_size_per_page", &amp;(info.OobSizePerPage));
        if (ret &lt; 0) {
                pr_err("get spi-nand OobSizePerPage from fdt fail\n");
                goto err;
        }

        ret = fdt_getprop_string(working_fdt, node_offset, "bad_block_mark_pos", &amp;bad_blk_mark_pos);
        if (ret &lt; 0 || NULL == bad_blk_mark_pos) {
                pr_err("get spi-nand BadBlockFlag from fdt fail\n");
                goto err;
        } else {
                if (!memcmp(bad_blk_mark_pos, BAD_BLK_MARK_POS1, strlen(BAD_BLK_MARK_POS1)))
                        info.BadBlockFlag = BAD_BLK_FLAG_FRIST_1_PAGE;
                else if (!memcmp(bad_blk_mark_pos, BAD_BLK_MARK_POS2, strlen(BAD_BLK_MARK_POS2)))
                        info.BadBlockFlag = BAD_BLK_FLAG_FRIST_1_PAGE;
                else if (!memcmp(bad_blk_mark_pos, BAD_BLK_MARK_POS3, strlen(BAD_BLK_MARK_POS3)))
                        info.BadBlockFlag = BAD_BLK_FLAG_LAST_1_PAGE;
                else if (!memcmp(bad_blk_mark_pos, BAD_BLK_MARK_POS4, strlen(BAD_BLK_MARK_POS4)))
                        info.BadBlockFlag = BAD_BLK_FLAG_LAST_2_PAGE;
                else {
                        pr_err("get spi-nand BadBlockFlag pattern is not right\n");
                        goto err;
                }
        }

        ret = fdtdec_get_int(working_fdt, node_offset, "max_erase_times", -1);
        if (ret &lt; 0) {
                pr_err("get spi-nand MaxEraseTimes from fdt fail\n");
                goto err;
        } else {
                info.MaxEraseTimes = ret;
        }

        ret = fdt_getprop_u32(working_fdt, node_offset, "ecc_type", &amp;(info.EccType));
        if (ret &lt; 0) {
                pr_err("get spi-nand EccFlag from fdt fail\n");
                goto err;
        }

        ret = fdt_getprop_u32(working_fdt, node_offset, "ecc_protected_type", &amp;(info.EccProtectedType));
        if (ret &lt; 0) {
                pr_err("get spi-nand ecc_protected_type from fdt fail\n");
                goto err;
        }

        ret = fdt_getprop_u32(working_fdt, node_offset, "spi-rx-bus-width", &amp;rx_bus_width);
        if (ret &lt; 0) {
                pr_err("get spi-nand spi-rx-bus-width from fdt fail\n");
                goto err;
        } else {
                switch (rx_bus_width) {
                case SPI_NBITS_DUAL:
                        info.OperationOpt |= SPINAND_DUAL_READ;
                break;
                case SPI_NBITS_QUAD:
                        info.OperationOpt |= SPINAND_QUAD_READ;
                break;
                default:
                        info.OperationOpt |= 0;
                break;
                }
        }

        ret = fdt_getprop_u32(working_fdt, node_offset, "spi-tx-bus-width", &amp;tx_bus_width);
        if (ret &lt; 0) {
                pr_err("get spi-nand spi-tx-bus-width from fdt fail\n");
                goto err;
        } else {
                switch (tx_bus_width) {
                case SPI_NBITS_QUAD:
                        info.OperationOpt |= SPINAND_QUAD_PROGRAM;
                break;
                default:
                        info.OperationOpt |= 0;
                break;
                }
        }

        ret = fdt_getprop_string(working_fdt, node_offset, "read_from_cache_x4_not_need_enable",
                        &amp;quad_read_not_need_enable);
        if (ret &lt; 0 || NULL == quad_read_not_need_enable) {
                pr_info("can't get spi-nand read_from_cache_x4_need_enable or it is null,"
                                " maybe not need enable quad read before read from cache x4\n");
        } else {
                if (!memcmp(quad_read_not_need_enable, "yes", strlen("yes")))
                        info.OperationOpt |= SPINAND_QUAD_NO_NEED_ENABLE;
        }

        ret = fdt_getprop_string(working_fdt, node_offset, "read_from_cache_need_onedummy",
                        &amp;read_seq_need_onedummy);
        if (ret &lt; 0 || NULL == read_seq_need_onedummy) {
                pr_info("can't get spi-nand read_from_cache_need_onedummy or it is null,"
                                " maybe read from cache sequence not need one dummy in second Byte\n");
        } else {
                if (!memcmp(read_seq_need_onedummy, "yes", strlen("yes")))
                        info.OperationOpt |= SPINAND_ONEDUMMY_AFTER_RANDOMREAD;
        }


        ret = fdtdec_get_int(working_fdt, node_offset, "ecc_flag", -1);
        if (ret &lt; 0) {
                pr_err("can't get spi-nand EccFlag from fdt,"
                                " maybe(default) use 0FH + C0H to get feature,wich obtain ecc status\n");
        } else {
                info.EccFlag = ret;
        }

        ret = fdt_getprop_u32(working_fdt, node_offset, "ecc_status_shift", &amp;(info.ecc_status_shift));
        if (ret &lt; 0) {
                pr_info("can't get spi-nand ecc_status_shift from fdt,"
                                " use default ecc_status_shift_4 to get ecc status in C0H\n");
        }
        pr_info("%s consume time:%lu\n", __func__, get_timer(time));

        pr_debug("get spinand phy info from fdt\n");
        pr_debug("Model:%s\n", info.Model);
        pr_debug("ID:%02x %02x %02x %02x %02x %02x %02x %02x\n",
                        info.NandID[0], info.NandID[1], info.NandID[2], info.NandID[3],
                        info.NandID[4], info.NandID[5], info.NandID[6], info.NandID[7]);
        pr_debug("DieCntPerChip:%d\n", info.DieCntPerChip);
        pr_debug("BlkCntPerDie:%d\n", info.BlkCntPerDie);
        pr_debug("PageCntPerBlk:%d\n", info.PageCntPerBlk);
        pr_debug("SectCntPerPage:%d\n", info.SectCntPerPage);
        pr_debug("OobSizePerPage:%d\n", info.OobSizePerPage);
        pr_debug("BadBlockFlag:%d\n", info.BadBlockFlag);
        pr_debug("OperationOpt:0x%x\n", info.OperationOpt);
        pr_debug("MaxEraseTimes:%d\n", info.MaxEraseTimes);
        pr_debug("EccFlag:%x\n", info.EccFlag);
        pr_debug("ecc_status_shift:%x\n", info.ecc_status_shift);
        pr_debug("EccType:%x\n", info.EccType);
        pr_debug("EccProtectedType:%x\n", info.EccProtectedType);

        had_get = true;

        return &amp;info;
err:
        had_get = false;
        return NULL;
}

static struct aw_spinand_info aw_spinand_info = {
        .model = aw_spinand_info_model,
        .manufacture = aw_spinand_info_manufacture,
        .nandid = aw_spinand_info_nandid,
        .die_cnt = aw_spinand_info_die_cnt,
        .oob_size = aw_spinand_info_oob_size,
        .sector_size = aw_spinand_info_sector_size,
        .page_size = aw_spinand_info_page_size,
        .block_size = aw_spinand_info_block_size,
        .phy_oob_size = aw_spinand_info_phy_oob_size,
        .phy_page_size = aw_spinand_info_phy_page_size,
        .phy_block_size = aw_spinand_info_phy_block_size,
        .total_size = aw_spinand_info_total_size,
        .operation_opt = aw_spinand_info_operation_opt,
        .max_erase_times = aw_spinand_info_max_erase_times,
};

static struct spinand_manufacture *spinand_detect_munufacture_from_fdt(struct aw_spinand_chip *chip, unsigned char id)
{
        struct aw_spinand_phy_info *info = NULL;
        struct spinand_manufacture *pm = &amp;m;
        int ret = 0;

        info = spinand_get_phy_info_from_fdt(chip);
        if (info == NULL) {
                pr_err("get phy info from fdt fail\n");
                goto err;
        }

        if (id == info-&gt;NandID[0]) {
                pm-&gt;id = info-&gt;NandID[0];
                pm-&gt;info = info;
                chip-&gt;info = &amp;aw_spinand_info;
                chip-&gt;info-&gt;phy_info = info;
                ret = spinand_get_chip_munufacture(chip, &amp;(pm-&gt;name));
                if (ret &lt; 0)
                        goto err;
                else
                        pr_info("detect munufacture from fdt: %s \n", pm-&gt;name);
        } else {
                goto err;
        }

        return pm;
err:
        pr_info("not detect munufacture from fdt\n");
        return NULL;
}

static struct aw_spinand_phy_info *spinand_match_id_from_fdt(struct aw_spinand_chip *chip,
                struct spinand_manufacture *m,
                unsigned char *id)
{
        struct aw_spinand_phy_info *info = NULL;
        int i = 0;

        info = spinand_get_phy_info_from_fdt(chip);
        if (info == NULL) {
                pr_err("get phy info from fdt fail\n");
                goto err;
        }

        for (i = 0; i &lt; MAX_ID_LEN; i++) {
                /*0xff match all id value*/
                if (id[i] != info-&gt;NandID[i] &amp;&amp; info-&gt;NandID[i] != 0xff)
                        goto err;
        }

        return info;

err:
        return NULL;
}


static int aw_spinand_info_init(struct aw_spinand_chip *chip,
                struct aw_spinand_phy_info *pinfo)
{
        chip-&gt;info = &amp;aw_spinand_info;
        chip-&gt;info-&gt;phy_info = pinfo;

        pr_info("========== arch info ==========\n");
        pr_info("Model:               %s\n", pinfo-&gt;Model);
        pr_info("Munufacture:         %s\n", aw_spinand_info_manufacture(chip));
        pr_info("DieCntPerChip:       %u\n", pinfo-&gt;DieCntPerChip);
        pr_info("BlkCntPerDie:        %u\n", pinfo-&gt;BlkCntPerDie);
        pr_info("PageCntPerBlk:       %u\n", pinfo-&gt;PageCntPerBlk);
        pr_info("SectCntPerPage:      %u\n", pinfo-&gt;SectCntPerPage);
        pr_info("OobSizePerPage:      %u\n", pinfo-&gt;OobSizePerPage);
        pr_info("BadBlockFlag:        0x%x\n", pinfo-&gt;BadBlockFlag);
        pr_info("OperationOpt:        0x%x\n", pinfo-&gt;OperationOpt);
        pr_info("MaxEraseTimes:       %d\n", pinfo-&gt;MaxEraseTimes);
        pr_info("EccFlag:             0x%x\n", pinfo-&gt;EccFlag);
        pr_info("EccType:             %d\n", pinfo-&gt;EccType);
        pr_info("EccProtectedType:    %d\n", pinfo-&gt;EccProtectedType);
        pr_info("========================================\n");
        pr_info("\n");
        pr_info("========== physical info ==========\n");
        pr_info("TotalSize:    %u M\n", to_mb(aw_spinand_info_total_size(chip)));
        pr_info("SectorSize:   %u B\n", aw_spinand_info_sector_size(chip));
        pr_info("PageSize:     %u K\n", to_kb(aw_spinand_info_phy_page_size(chip)));
        pr_info("BlockSize:    %u K\n", to_kb(aw_spinand_info_phy_block_size(chip)));
        pr_info("OOBSize:      %u B\n", aw_spinand_info_phy_oob_size(chip));
        pr_info("========================================\n");
        pr_info("\n");
        pr_info("========== logical info ==========\n");
        pr_info("TotalSize:    %u M\n", to_mb(aw_spinand_info_total_size(chip)));
        pr_info("SectorSize:   %u B\n", aw_spinand_info_sector_size(chip));
        pr_info("PageSize:     %u K\n", to_kb(aw_spinand_info_page_size(chip)));
        pr_info("BlockSize:    %u K\n", to_kb(aw_spinand_info_block_size(chip)));
        pr_info("OOBSize:      %u B\n", aw_spinand_info_oob_size(chip));
        pr_info("========================================\n");

        return 0;
}

int aw_spinand_chip_detect(struct aw_spinand_chip *chip)
{
        struct aw_spinand_phy_info *pinfo;
        struct spinand_manufacture *m;
        unsigned char id[MAX_ID_LEN] = {0xFF};
        struct aw_spinand_chip_ops *ops = chip-&gt;ops;
        int ret, dummy = 0;

retry:
        ret = ops-&gt;read_id(chip, id, MAX_ID_LEN, dummy);
        if (ret) {
                pr_err("read id failed : %d\n", ret);
                return ret;
        }

        m = spinand_detect_munufacture(id[0]);
        if (!m)
                goto detect_from_fdt;

        pinfo = spinand_match_id(m, id);
        if (pinfo)
                goto detect;

detect_from_fdt:
                m = spinand_detect_munufacture_from_fdt(chip, id[0]);
                if (!m)
                        goto not_detect;

                pinfo = spinand_match_id_from_fdt(chip, m, id);
                if (pinfo)
                        goto detect;

not_detect:
        /* retry with dummy */
        if (!dummy) {
                dummy++;
                goto retry;
        }
        pr_info("not match spinand: %x %x\n",
                        *(__u32 *)id,
                        *((__u32 *)id + 1));
        return -ENODEV;
detect:
        pr_info("detect spinand id: %x %x\n",
                        *((__u32 *)pinfo-&gt;NandID),
                        *((__u32 *)pinfo-&gt;NandID + 1));
        return aw_spinand_info_init(chip, pinfo);
}
</code></pre>
]]></description><link>https://bbs.aw-ol.com/topic/1219/突然发现-d1-d1s-不支持-gd5f1gq4uayig</link><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 01:16:52 GMT</lastBuildDate><atom:link href="https://bbs.aw-ol.com/topic/1219.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 27 Mar 2022 05:39:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 突然发现 D1 &#x2F; D1s 不支持 GD5F1GQ4UAYIG on Mon, 12 Sep 2022 11:50:35 GMT]]></title><description><![CDATA[<p dir="auto">我用GigaDevice的也遇到了同样的问题，请问解决了吗</p>
]]></description><link>https://bbs.aw-ol.com/post/10341</link><guid isPermaLink="true">https://bbs.aw-ol.com/post/10341</guid><dc:creator><![CDATA[Lts52341314]]></dc:creator><pubDate>Mon, 12 Sep 2022 11:50:35 GMT</pubDate></item><item><title><![CDATA[Reply to 突然发现 D1 &#x2F; D1s 不支持 GD5F1GQ4UAYIG on Mon, 28 Mar 2022 03:26:37 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://bbs.aw-ol.com/uid/42">@xiaowenge</a></p>
<p dir="auto">2楼那个 在 <em><strong>lichee/brandy-2.0/u-boot-2018/drivers/mtd/awnand/spinand/physic/id.c</strong></em> 添加了 <em><strong>GD5F1GQ4UAYIG</strong></em> 配置</p>
]]></description><link>https://bbs.aw-ol.com/post/5457</link><guid isPermaLink="true">https://bbs.aw-ol.com/post/5457</guid><dc:creator><![CDATA[tigger]]></dc:creator><pubDate>Mon, 28 Mar 2022 03:26:37 GMT</pubDate></item><item><title><![CDATA[Reply to 突然发现 D1 &#x2F; D1s 不支持 GD5F1GQ4UAYIG on Mon, 28 Mar 2022 03:20:14 GMT]]></title><description><![CDATA[<p dir="auto">需要做哪些修改才能适配呢？</p>
]]></description><link>https://bbs.aw-ol.com/post/5456</link><guid isPermaLink="true">https://bbs.aw-ol.com/post/5456</guid><dc:creator><![CDATA[xiaowenge]]></dc:creator><pubDate>Mon, 28 Mar 2022 03:20:14 GMT</pubDate></item><item><title><![CDATA[Reply to 突然发现 D1 &#x2F; D1s 不支持 GD5F1GQ4UAYIG on Mon, 28 Mar 2022 03:15:26 GMT]]></title><description><![CDATA[<pre><code>[53]HELLO! BOOT0 is starting!
[56]BOOT0 commit : 553a5eb
[59]set pll start
[61]periph0 has been enabled
[64]set pll end
[65][pmu]: bus read error
[67]board init ok
[69]rtc[2] value = 0x5aa5a55a
[72]eraly jump fel
[868]fes begin commit:553a5eb
[871]set pll start
[873]periph0 has been enabled
[876]set pll end
[877][pmu]: bus read error
[880]board init ok
[882]beign to init dram
[884]ZQ value = 0x2f
[886]get_pmu_exist() = -1
[888]ddr_efuse_type: 0xa
[891]mark_id: 0x5c
[892]trefi:7.8ms
[895][AUTO DEBUG] single rank and full DQ!
[898]ddr_efuse_type: 0xa
[901]mark_id: 0x5c
[902]trefi:7.8ms
[905][AUTO DEBUG] rank 0 row = 13
[908][AUTO DEBUG] rank 0 bank = 4
[911][AUTO DEBUG] rank 0 page size = 2 KB
[915]DRAM BOOT DRIVE INFO: V0.32
[918]DRAM CLK = 408 MHz
[920]DRAM Type = 2 (2:DDR2,3:DDR3)
[923]DRAMC read ODT  off.
[925]DRAM ODT off.
[927]ddr_efuse_type: 0xa
[930]mark_id: 0x5c
[932]DRAM SIZE =64 M
[934]PLL_DDR_CTRL_REG:0xf9002100
[937]DRAM_CLK_REG:0xc0000000
[939][TIMING DEBUG] MR2= 0x0
[944]DRAM simple test OK.
[947]init dram ok


U-Boot 2018.05-00019-gc7a7584e23 (Sep 26 2021 - 11:44:52 +0000) Allwinner Technology

[14.008]DRAM:  64 MiB
[14.014]Relocation Offset is: 01ee1000
[14.044]secure enable bit: 0
[14.050]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
[14.056]flash init start
[14.059]workmode = 16,storage type = 0
try card 0
set card number 0
get card number 0
[14.066][mmc]: mmc driver ver uboot2018:2021-09-07 19:43:00
[14.076][mmc]: get sdc_type fail and use default host:tm1.
FDT ERROR:fdt_get_all_pin:get property handle pinctrl-0 error:FDT_ERR_INTERNAL
[14.093][mmc]: get card0 default pin fail
[14.103][mmc]: can't find node "mmc0",will add new node
[14.108][mmc]: fdt err returned &lt;no error&gt;
[14.112][mmc]: Using default timing para
[14.116][mmc]: sunxi mmc pin set failed!
[14.119]error card no error
[14.122][mmc]: MMC Device -1 not found
MMC init failed
try card0 fail
try card 1
set card number 1
get card number 1
[14.132][mmc]: mmc driver ver uboot2018:2021-09-07 19:43:00
[14.138][mmc]: get sdc_type fail and use default host:tm1.
[14.143][mmc]: mmc_get_para_from_fex: input sdc_no error: 1
[14.148][mmc]: Using default timing para
[14.152][mmc]: sunxi mmc pin set failed!
[14.156]error,card no error
[14.158][mmc]: MMC Device -1 not found
MMC init failed
try card1 fail
try card 2
set card number 2
get card number 2
[14.169][mmc]: mmc driver ver uboot2018:2021-09-07 19:43:00
[14.179][mmc]: get sdc_type fail and use default host:tm4.
[14.214][mmc]: Is not Boot mode!
[14.217][mmc]: SUNXI SDMMC Controller Version:0x50310
[14.228][mmc]: ************Try SD card 2************
[14.234][mmc]: mmc 2 cmd timeout 100 status 100
[14.238][mmc]: smc 2 err, cmd 8,  RTO
[14.241][mmc]: mmc 2 close bus gating and reset
[14.246][mmc]: mmc 2 cmd timeout 100 status 100
[14.250][mmc]: smc 2 err, cmd 55,  RTO
[14.254][mmc]: mmc 2 close bus gating and reset
[14.258][mmc]: ************Try MMC card 2************
[14.267][mmc]: mmc 2 cmd timeout 100 status 100
[14.271][mmc]: smc 2 err, cmd 1,  RTO
[14.275][mmc]: mmc 2 close bus gating and reset
[14.279][mmc]: Card did not respond to voltage select!
[14.284][mmc]: ************SD/MMC 2 init error!************
[14.289][mmc]: mmc init product failed
MMC init failed
try card2 fail
try emmc fail
[14.308]sunxi-spinand: AW SPINand MTD Layer Version: 1.5 20200407
[14.314]sunxi-spinand-phy: AW SPINand Phy Layer Version: 1.9 20200306
[14.385]sunxi-spinand-phy: request spi0 gpio ok
[14.389]sunxi-spinand-phy: request general tx dma channel ok!
[14.395]sunxi-spinand-phy: request general rx dma channel ok!
[14.400]sunxi-spinand-phy: set spic0 clk to 20 Mhz
[14.405]sunxi-spinand-phy: init spic0 clk ok
sspi-&gt;base_addr = 0x4025000, the SPI control register:
[VER] 0x4025000 = 0x00010001, [GCR] 0x4025004 = 0x00000083, [TCR] 0x4025008 = 0x00000184
[ICR] 0x4025010 = 0x00000f00, [ISR] 0x4025014 = 0x00000032, [FCR] 0x4025018 = 0x00200020
[FSR] 0x402501c = 0x00000000, [WCR] 0x4025020 = 0x00000000, [CCR] 0x4025024 = 0x00000002
[SDC] 0x4025028 = 0x00002000, [BCR] 0x4025030 = 0x00000000, [TCR] 0x4025034 = 0x00000000
[BCC] 0x4025038 = 0x00000000, [DMA] 0x4025088 = 0x000000e5

[14.450]sunxi-spinand-phy: not detect any munufacture from id table
[14.468]sunxi-spinand-phy: get spi-nand Model from fdt fail
[14.473]sunxi-spinand-phy: get phy info from fdt fail
[14.478]sunxi-spinand-phy: not detect munufacture from fdt
[14.483]sunxi-spinand-phy: detect munufacture from id table: GD
[14.489]sunxi-spinand-phy: detect spinand id: ffffd1c8 ffffffff
[14.494]sunxi-spinand-phy: ========== arch info ==========
[14.500]sunxi-spinand-phy: Model:               GD5F1GQ4UBYIG
[14.505]sunxi-spinand-phy: Munufacture:         GD
[14.509]sunxi-spinand-phy: DieCntPerChip:       1
[14.514]sunxi-spinand-phy: BlkCntPerDie:        1024
[14.519]sunxi-spinand-phy: PageCntPerBlk:       64
[14.523]sunxi-spinand-phy: SectCntPerPage:      4
[14.528]sunxi-spinand-phy: OobSizePerPage:      64
[14.532]sunxi-spinand-phy: BadBlockFlag:        0x0
[14.537]sunxi-spinand-phy: OperationOpt:        0x7
[14.541]sunxi-spinand-phy: MaxEraseTimes:       50000
[14.546]sunxi-spinand-phy: EccFlag:             0x1
[14.551]sunxi-spinand-phy: EccType:             7
[14.555]sunxi-spinand-phy: EccProtectedType:    4
[14.559]sunxi-spinand-phy: ========================================
[14.565]sunxi-spinand-phy:
[14.568]sunxi-spinand-phy: ========== physical info ==========
[14.573]sunxi-spinand-phy: TotalSize:    128 M
[14.578]sunxi-spinand-phy: SectorSize:   512 B
[14.582]sunxi-spinand-phy: PageSize:     2 K
[14.586]sunxi-spinand-phy: BlockSize:    128 K
[14.590]sunxi-spinand-phy: OOBSize:      64 B
[14.594]sunxi-spinand-phy: ========================================
[14.600]sunxi-spinand-phy:
[14.602]sunxi-spinand-phy: ========== logical info ==========
[14.608]sunxi-spinand-phy: TotalSize:    128 M
[14.612]sunxi-spinand-phy: SectorSize:   512 B
[14.616]sunxi-spinand-phy: PageSize:     4 K
[14.620]sunxi-spinand-phy: BlockSize:    256 K
[14.624]sunxi-spinand-phy: OOBSize:      128 B
[14.629]sunxi-spinand-phy: ========================================
[14.646]sunxi-spinand-phy: GD5F1GQ4UBYIG reset rx bit width to 1
[14.652]sunxi-spinand-phy: GD5F1GQ4UBYIG reset tx bit width to 1
[14.657]sunxi-spinand-phy: set spic0 clk to 100 Mhz
[14.662]sunxi-spinand-phy: block lock register: 0x00
[14.667]sunxi-spinand-phy: feature register: 0x11
[14.671]sunxi-spinand-phy: sunxi physic nand init end
[14.682]Loading Environment from SUNXI_FLASH... OK
[14.697]try to burn key
[14.701]out of usb burn from boot: not need burn key
[14.705]Net:   [14.707]No ethernet found.
Hit any key to stop autoboot:  0
sunxi work mode=0x10
run usb efex
delay time 2500
weak:otg_phy_config
usb init ok
set address 0x1e
set address 0x1e ok
SUNXI_EFEX_ERASE_TAG
erase_flag = 0x12
origin_erase_flag = 0x1
FEX_CMD_fes_verify_status
FEX_CMD_fes_verify last err=0
the 0 mbr table is ok
the 1 mbr table is ok
the 2 mbr table is ok
the 3 mbr table is ok
*************MBR DUMP***************
total mbr part 7

part[0] name      :boot-resource
part[0] classname :DISK
part[0] addrlo    :0x8000
part[0] lenlo     :0x1f8
part[0] user_type :32768
part[0] keydata   :0
part[0] ro        :0

part[1] name      :env
part[1] classname :DISK
part[1] addrlo    :0x81f8
part[1] lenlo     :0x1f8
part[1] user_type :32768
part[1] keydata   :0
part[1] ro        :0

part[2] name      :env-redund
part[2] classname :DISK
part[2] addrlo    :0x83f0
part[2] lenlo     :0x1f8
part[2] user_type :32768
part[2] keydata   :0
part[2] ro        :0

part[3] name      :boot
part[3] classname :DISK
part[3] addrlo    :0x85e8
part[3] lenlo     :0x5000
part[3] user_type :32768
part[3] keydata   :0
part[3] ro        :0

part[4] name      :rootfs
part[4] classname :DISK
part[4] addrlo    :0xd5e8
part[4] lenlo     :0xf000
part[4] user_type :32768
part[4] keydata   :0
part[4] ro        :0

part[5] name      :rootfs_data
part[5] classname :DISK
part[5] addrlo    :0x1c5e8
part[5] lenlo     :0x2800
part[5] user_type :32768
part[5] keydata   :0
part[5] ro        :0

part[6] name      :UDISK
part[6] classname :DISK
part[6] addrlo    :0x1ede8
part[6] lenlo     :0x0
part[6] user_type :0
part[6] keydata   :0
part[6] ro        :0

total part: 8
mbr 0, 8000, 8000
boot-resource 1, 1f8, 8000
env 2, 1f8, 8000
env-redund 3, 1f8, 8000
boot 4, 5000, 8000
rootfs 5, f000, 8000
rootfs_data 6, 2800, 8000
UDISK 7, 0, 0
[26.405]erase blk 0 to blk 32
need erase flash: 18
[26.467]mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)

device nand0 &lt;nand&gt;, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[26.528]MTD info (4)
[26.530]pagesize: 0x1000
[26.532]blksize: 0x40000
[26.535]num  offset     bytes      name
[26.538]0    0x00000000 0x00100000 boot0
[26.542]1    0x00100000 0x00300000 uboot
[26.546]2    0x00400000 0x00100000 secure_storage
[26.550]3    0x00500000 0x07b00000 sys
[26.553]ubi attach the last part of mtd device: NO.3
[26.681]ubi0: attaching mtd4
[27.011]ubi0: scanning is finished
[27.055]ubi0: attached mtd4 (name "sys", size 123 MiB)
[27.060]ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes
[27.066]ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048
[27.073]ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[27.079]ubi0: good PEBs: 491, bad PEBs: 1, corrupted PEBs: 0
[27.084]ubi0: user volume: 8, internal volumes: 1, max. volumes count: 128
[27.091]ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
[27.099]ubi0: available PEBs: 0, total reserved PEBs: 491, PEBs reserved for bad PEB handling: 19
[27.107]erase blk 0 to blk 32
[27.163]erase blk 40 to blk 1024
[28.786]blk 1023 is bad, skip to erase
[28.789]sunxi-spinand: spinand secure storage ok for phy blk 32 and 33
[28.801]Item0 (Map) magic is bad
[28.804]the secure storage map is empty
[28.980]sunxi-spinand: write secure storage itme 0 ok
[28.984]erase secure storage: 0 ok
SUNXI_EFEX_MBR_TAG
mbr size = 0x10000
force mbr

device nand0 &lt;nand&gt;, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[29.039]MTD info (4)
[29.041]pagesize: 0x1000
[29.043]blksize: 0x40000
[29.045]num  offset     bytes      name
[29.049]0    0x00000000 0x00100000 boot0
[29.053]1    0x00100000 0x00300000 uboot
[29.056]2    0x00400000 0x00100000 secure_storage
[29.061]3    0x00500000 0x07b00000 sys
[29.064]MBR info (unalign):
[29.067]partno   addr       sects      type       name
[29.071]0        0x00000000 0x00008000 0x00000001 mbr
[29.076]1        0x00008000 0x000001f8 0x00008000 boot-resource
[29.082]2        0x000081f8 0x000001f8 0x00008000 env
[29.087]3        0x000083f0 0x000001f8 0x00008000 env-redund
[29.092]4        0x000085e8 0x00005000 0x00008000 boot
[29.097]5        0x0000d5e8 0x0000f000 0x00008000 rootfs
[29.102]6        0x0001c5e8 0x00002800 0x00008000 rootfs_data
[29.107]7        0x0001ede8 0x00000000 0x00000000 UDISK
[29.112]ubi attach the last part of mtd device: NO.3
[29.117]MBR info (align):
[29.119]partno   addr       sects      type       name
[29.124]0        0x00002800 0x000081f0 0x00000001 mbr
[29.129]1        0x0000a9f0 0x000001f8 0x00008000 boot-resource
[29.134]2        0x0000abe8 0x000001f8 0x00008000 env
[29.139]3        0x0000ade0 0x000001f8 0x00008000 env-redund
[29.145]4        0x0000afd8 0x000050b8 0x00008000 boot
[29.149]5        0x00010090 0x0000f030 0x00008000 rootfs
[29.155]6        0x0001f0c0 0x00002958 0x00008000 rootfs_data
[29.160]7        0x00021a18 0x00000000 0x00000000 UDISK
[29.165]ubi attach the last part of mtd device: NO.3
[29.170]ubi attatch mtd, name: sys

[29.173]ubi0: detaching mtd4
[29.177]ubi0: mtd4 is detached
[29.180]ubi0: attaching mtd4
[29.339]ubi0: scanning is finished
[29.342]ubi0: empty MTD device detected
[29.397]ubi0: attached mtd4 (name "sys", size 123 MiB)
[29.402]ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes
[29.408]ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048
[29.414]ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[29.420]ubi0: good PEBs: 491, bad PEBs: 1, corrupted PEBs: 0
[29.426]ubi0: user volume: 0, internal volumes: 1, max. volumes count: 128
[29.432]ubi0: max/mean erase counter: 0/0, WL threshold: 4096, image sequence number: 0
[29.440]ubi0: available PEBs: 468, total reserved PEBs: 23, PEBs reserved for bad PEB handling: 19
Creating static volume mbr of size 17031168
Creating dynamic volume boot-resource of size 258048
Creating dynamic volume env of size 258048
Creating dynamic volume env-redund of size 258048
Creating dynamic volume boot of size 10579968
Creating dynamic volume rootfs of size 31481856
Creating dynamic volume rootfs_data of size 5419008
No size specified -&gt; Using max size (55480320)
[32.019]reset last volume size to 0x1a748
Creating dynamic volume UDISK of size 55480320
[32.133]fill gap start: volume mbr sects 0x7f80
[50.606]fill gap end: volume mbr
[50.608]update partition map
[50.611]logical area info: 468 258048 last_lba: 235871
[50.633]logical area info: 468 258048 last_lba: 235871
[50.654]logical area info: 468 258048 last_lba: 235871
[50.675]logical area info: 468 258048 last_lba: 235871
[50.696]logical area info: 468 258048 last_lba: 235871
[50.716]logical area info: 468 258048 last_lba: 235871
[50.737]logical area info: 468 258048 last_lba: 235871
[50.758]logical area info: 468 258048 last_lba: 235871
[50.779]logical area info: 468 258048 last_lba: 235871
[50.799]logical area info: 468 258048 last_lba: 235871
[50.820]logical area info: 468 258048 last_lba: 235871
[50.841]logical area info: 468 258048 last_lba: 235871
[50.862]logical area info: 468 258048 last_lba: 235871
[50.883]logical area info: 468 258048 last_lba: 235871
[50.903]logical area info: 468 258048 last_lba: 235871
[50.924]logical area info: 468 258048 last_lba: 235871
[50.945]logical area info: 468 258048 last_lba: 235871
[50.965]logical area info: 468 258048 last_lba: 235871
[50.986]logical area info: 468 258048 last_lba: 235871
[51.007]logical area info: 468 258048 last_lba: 235871
[51.028]logical area info: 468 258048 last_lba: 235871
[51.048]logical area info: 468 258048 last_lba: 235871
[51.069]logical area info: 468 258048 last_lba: 235871
[51.090]logical area info: 468 258048 last_lba: 235871
[51.111]logical area info: 468 258048 last_lba: 235871
FEX_CMD_fes_verify_status
FEX_CMD_fes_verify last err=0
[51.181]fill gap start: volume boot-resource sects 0x158
[51.376]fill gap end: volume boot-resource
FEX_CMD_fes_verify_value, start 0x8000, size high 0x0:low 0x14000
FEX_CMD_fes_verify_value 0xe6f75b5c
[51.487]fill gap start: volume env sects 0xf8
[51.679]fill gap end: volume env
FEX_CMD_fes_verify_value, start 0x81f8, size high 0x0:low 0x20000
FEX_CMD_fes_verify_value 0x7610f7e9
[51.782]fill gap start: volume env-redund sects 0xf8
[51.974]fill gap end: volume env-redund
FEX_CMD_fes_verify_value, start 0x83f0, size high 0x0:low 0x20000
FEX_CMD_fes_verify_value 0x7610f7e9
[55.499]fill gap start: volume boot sects 0x2144
[56.718]fill gap end: volume boot
FEX_CMD_fes_verify_value, start 0x85e8, size high 0x0:low 0x5d7800
FEX_CMD_fes_verify_value 0xcbe6925a
[71.824]fill gap start: volume rootfs sects 0x3a00
[73.806]fill gap end: volume rootfs
FEX_CMD_fes_verify_value, start 0xd5e8, size high 0x0:low 0x16c0000
FEX_CMD_fes_verify_value 0x2b5a2951
bootfile_mode=4
SUNXI_EFEX_BOOT1_TAG
boot1 size = 0x108000, max size = 0x200000
uboot size = 0x108000
storage type = 0
[79.091]uboot blk range [8-32)
[79.094]download uboot to block 8 (9 blocks) len 1056K
[79.667]download uboot to block 17 (9 blocks) len 1056K
FEX_CMD_fes_verify_status
FEX_CMD_fes_verify last err=0
bootfile_mode=4
SUNXI_EFEX_BOOT0_TAG
boot0 size = 0x14000
dram para[0] = 198
dram para[1] = 2
dram para[2] = 7b7bf9
dram para[3] = 0
dram para[4] = d2
dram para[5] = 400000
dram para[6] = a63
dram para[7] = 2
dram para[8] = 0
dram para[9] = 0
dram para[10] = 45994e
dram para[11] = 121210a
dram para[12] = 43032
dram para[13] = b4787896
dram para[14] = 0
dram para[15] = 48484848
dram para[16] = 48
dram para[17] = 1621121e
dram para[18] = 0
dram para[19] = 0
dram para[20] = 0
dram para[21] = 30010
dram para[22] = 35
dram para[23] = b4006003
dram para[24] = 0
dram para[25] = 0
dram para[26] = 0
dram para[27] = 0
dram para[28] = 0
dram para[29] = 0
dram para[30] = 0
dram para[31] = 0
storage type = 0
[80.338]download boot0 to block 0 len 80K
[80.386]download boot0 to block 1 len 80K
[80.433]download boot0 to block 2 len 80K
[80.480]download boot0 to block 3 len 80K
[80.528]download boot0 to block 4 len 80K
[80.575]download boot0 to block 5 len 80K
[80.622]download boot0 to block 6 len 80K
[80.670]download boot0 to block 7 len 80K
FEX_CMD_fes_verify_status
FEX_CMD_fes_verify last err=0
sunxi_efex_next_action=2
exit usb
next work 2
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1648437234414-15c55292-e010-40b4-a7ee-368b01b369ef-4ca7826a04f6b2d440c1c239a81c42d.jpg" alt="15c55292-e010-40b4-a7ee-368b01b369ef-4ca7826a04f6b2d440c1c239a81c42d.jpg" class=" img-responsive img-markdown" width="1279" height="1515" /></p>
<p dir="auto"><em><strong>GD5F1GQ4UBYIG</strong></em> 烧录OK，启动OK：</p>
<pre><code>numid=30,iface=MIXER,name='Headphone Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
amixer: Cannot find the given element from control default

The framebuffer device was opened successfully.
800x480, 32bpp
The framebuffer device was mapped to memory successfully.
unable open evdev interface:: No such file or directory
info:&lt;init_text:265&gt;lang=1, dataFile=/usr/res/font/en.bin

connect wpa_supplicant failed,please check wifi driver!

root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/# mount
/dev/root on /rom type squashfs (ro,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=28260k,nr_inodes=7065,mode=755)
/proc on /proc type proc (rw,relatime)
tmpfs on /tmp type tmpfs (rw,relatime)
sys on /sys type sysfs (rw,relatime)
/dev/by-name/rootfs_data on /overlay type ubifs (rw,relatime,assert=read-only,ubi=0,vol=6)
overlayfs:/overlay on / type overlay (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/workdir)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=000)
/dev/ubi0_7 on /mnt/UDISK type ubifs (rw,relatime,assert=read-only,ubi=0,vol=7)
none on /sys/kernel/config type configfs (rw,relatime)
adb on /dev/usb-ffs/adb type functionfs (rw,relatime)
root@TinaLinux:/#
root@TinaLinux:/# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                23296     23296         0 100% /rom
devtmpfs                 28260         0     28260   0% /dev
tmpfs                    29088         0     29088   0% /tmp
/dev/by-name/rootfs_data
                          1420        32      1244   3% /overlay
overlayfs:/overlay        1420        32      1244   3% /
/dev/ubi0_7              47164        24     44700   0% /mnt/UDISK
root@TinaLinux:/#
root@TinaLinux:/# touch test.txt
root@TinaLinux:/#
root@TinaLinux:/# echo "testesttest" &gt; /test.txt
root@TinaLinux:/#
root@TinaLinux:/#
</code></pre>
]]></description><link>https://bbs.aw-ol.com/post/5455</link><guid isPermaLink="true">https://bbs.aw-ol.com/post/5455</guid><dc:creator><![CDATA[tigger]]></dc:creator><pubDate>Mon, 28 Mar 2022 03:15:26 GMT</pubDate></item><item><title><![CDATA[Reply to 突然发现 D1 &#x2F; D1s 不支持 GD5F1GQ4UAYIG on Sun, 27 Mar 2022 13:36:02 GMT]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/1648388090745-7e9338cb-c01b-4e4c-9a6c-5bbfe0042899-3541e3b2af7176e7712f32422b6db46.jpg" alt="7e9338cb-c01b-4e4c-9a6c-5bbfe0042899-3541e3b2af7176e7712f32422b6db46.jpg" class=" img-responsive img-markdown" width="641" height="987" /></p>
<p dir="auto">又翻出一片 <em><strong>MX35LF1GE4AB</strong></em>，看了 id.c 是支持的，换上试一试。</p>
]]></description><link>https://bbs.aw-ol.com/post/5437</link><guid isPermaLink="true">https://bbs.aw-ol.com/post/5437</guid><dc:creator><![CDATA[tigger]]></dc:creator><pubDate>Sun, 27 Mar 2022 13:36:02 GMT</pubDate></item><item><title><![CDATA[Reply to 突然发现 D1 &#x2F; D1s 不支持 GD5F1GQ4UAYIG on Sun, 27 Mar 2022 12:46:11 GMT]]></title><description><![CDATA[<pre><code>[4071]fes begin commit:88480af
[4074]set pll start
[4076]fix vccio detect value:0xc0
[4079]periph0 has been enabled
[4082]set pll end
[4083][pmu]: bus read error
[4086]board init ok
[4088]beign to init dram
[4090]ZQ value = 0x32
[4092]get_pmu_exist() = -1
[4095]ddr_efuse_type: 0xa
[4097]trefi:7.8ms
[4099][AUTO DEBUG] single rank and full DQ!
[4103]ddr_efuse_type: 0xa
[4106]trefi:7.8ms
[4108][AUTO DEBUG] rank 0 row = 13
[4111][AUTO DEBUG] rank 0 bank = 4
[4114][AUTO DEBUG] rank 0 page size = 2 KB
[4118]DRAM BOOT DRIVE INFO: V0.33
[4121]DRAM CLK = 528 MHz
[4124]DRAM Type = 2 (2:DDR2,3:DDR3)
[4127]DRAMC read ODT  off.
[4129]DRAM ODT off.
[4131]ddr_efuse_type: 0xa
[4134]DRAM SIZE =64 M
[4136]dram_tpr4:0x0
[4138]PLL_DDR_CTRL_REG:0xf8002b00
[4141]DRAM_CLK_REG:0xc0000000
[4144][TIMING DEBUG] MR2= 0x0
[4148]DRAM simple test OK.
[4151]init dram ok


U-Boot 2018.05-g24521d6-dirty (Mar 27 2022 - 20:41:23 +0800) Allwinner Technology

[12.169]DRAM:  64 MiB
[12.174]Relocation Offset is: 01ee7000
[12.200]secure enable bit: 0
[12.206]CPU=720 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
[12.213]flash init start
[12.215]workmode = 16,storage type = 0
try card 2
set card number 2
get card number 2
[12.222][mmc]: mmc driver ver uboot2018:2021-11-19 15:38:00
[12.232][mmc]: get sdc_type fail and use default host:tm4.
[12.264][mmc]: Is not Boot mode!
[12.267][mmc]: SUNXI SDMMC Controller Version:0x50310
[12.278][mmc]: ************Try SD card 2************
[12.284][mmc]: mmc 2 cmd timeout 100 status 100
[12.288][mmc]: smc 2 err, cmd 8,  RTO
[12.291][mmc]: mmc 2 close bus gating and reset
[12.296][mmc]: mmc 2 cmd timeout 100 status 100
[12.301][mmc]: smc 2 err, cmd 55,  RTO
[12.304][mmc]: mmc 2 close bus gating and reset
[12.308][mmc]: ************Try MMC card 2************
[12.317][mmc]: mmc 2 cmd timeout 100 status 100
[12.321][mmc]: smc 2 err, cmd 1,  RTO
[12.325][mmc]: mmc 2 close bus gating and reset
[12.329][mmc]: Card did not respond to voltage select!
[12.334][mmc]: ************SD/MMC 2 init error!************
[12.339][mmc]: mmc init product failed
MMC init failed
try emmc fail
[12.356]sunxi-spinand: AW SPINand MTD Layer Version: 1.5 20200407
[12.362]sunxi-spinand-phy: AW SPINand Phy Layer Version: 1.9 20200306
[12.426]sunxi-spinand-phy: request spi0 gpio ok
[12.431]sunxi-spinand-phy: request general tx dma channel ok!
[12.436]sunxi-spinand-phy: request general rx dma channel ok!
[12.442]sunxi-spinand-phy: set spic0 clk to 20 Mhz
[12.446]sunxi-spinand-phy: init spic0 clk ok
sspi-&gt;base_addr = 0x4025000, the SPI control register:
[VER] 0x4025000 = 0x00010001, [GCR] 0x4025004 = 0x00000083, [TCR] 0x4025008 = 0x00000184
[ICR] 0x4025010 = 0x00000f00, [ISR] 0x4025014 = 0x00000032, [FCR] 0x4025018 = 0x00200020
[FSR] 0x402501c = 0x00000000, [WCR] 0x4025020 = 0x00000000, [CCR] 0x4025024 = 0x00000002
[SDC] 0x4025028 = 0x00002000, [BCR] 0x4025030 = 0x00000000, [TCR] 0x4025034 = 0x00000000
[BCC] 0x4025038 = 0x00000000, [DMA] 0x4025088 = 0x000000e5

[12.492]sunxi-spinand-phy: not detect any munufacture from id table
[12.508]sunxi-spinand-phy: get spi-nand Model from fdt fail
[12.513]sunxi-spinand-phy: get phy info from fdt fail
[12.518]sunxi-spinand-phy: not detect munufacture from fdt
[12.523]sunxi-spinand-phy: detect munufacture from id table: GD
[12.529]sunxi-spinand-phy: detect spinand id: ffffd1c8 ffffffff
[12.534]sunxi-spinand-phy: ========== arch info ==========
[12.540]sunxi-spinand-phy: Model:               GD5F1GQ4UBYIG
[12.545]sunxi-spinand-phy: Munufacture:         GD
[12.550]sunxi-spinand-phy: DieCntPerChip:       1
[12.554]sunxi-spinand-phy: BlkCntPerDie:        1024
[12.559]sunxi-spinand-phy: PageCntPerBlk:       64
[12.563]sunxi-spinand-phy: SectCntPerPage:      4
[12.568]sunxi-spinand-phy: OobSizePerPage:      64
[12.572]sunxi-spinand-phy: BadBlockFlag:        0x0
[12.577]sunxi-spinand-phy: OperationOpt:        0x7
[12.581]sunxi-spinand-phy: MaxEraseTimes:       50000
[12.586]sunxi-spinand-phy: EccFlag:             0x1
[12.591]sunxi-spinand-phy: EccType:             7
[12.595]sunxi-spinand-phy: EccProtectedType:    4
[12.600]sunxi-spinand-phy: ========================================
[12.606]sunxi-spinand-phy:
[12.608]sunxi-spinand-phy: ========== physical info ==========
[12.614]sunxi-spinand-phy: TotalSize:    128 M
[12.618]sunxi-spinand-phy: SectorSize:   512 B
[12.622]sunxi-spinand-phy: PageSize:     2 K
[12.626]sunxi-spinand-phy: BlockSize:    128 K
[12.630]sunxi-spinand-phy: OOBSize:      64 B
[12.634]sunxi-spinand-phy: ========================================
[12.640]sunxi-spinand-phy:
[12.643]sunxi-spinand-phy: ========== logical info ==========
[12.648]sunxi-spinand-phy: TotalSize:    128 M
[12.652]sunxi-spinand-phy: SectorSize:   512 B
[12.656]sunxi-spinand-phy: PageSize:     4 K
[12.660]sunxi-spinand-phy: BlockSize:    256 K
[12.665]sunxi-spinand-phy: OOBSize:      128 B
[12.669]sunxi-spinand-phy: ========================================
[12.685]sunxi-spinand-phy: set spic0 clk to 100 Mhz
[12.690]sunxi-spinand-phy: block lock register: 0x80
[12.694]sunxi-spinand-phy: feature register: 0x08
[12.699]sunxi-spinand-phy: sunxi physic nand init end
[12.709]Loading Environment from SUNXI_FLASH... OK
[12.723]try to burn key
[12.727]out of usb burn from boot: not need burn key
[12.731]Net:   [12.732]No ethernet found.
Hit any key to stop autoboot:  0
sunxi work mode=0x10
run usb efex
delay time 2500
weak:otg_phy_config
usb init ok
set address 0x21
set address 0x21 ok
SUNXI_EFEX_ERASE_TAG
erase_flag = 0x12
origin_erase_flag = 0x1
FEX_CMD_fes_verify_status
FEX_CMD_fes_verify last err=0
the 0 mbr table is ok
the 1 mbr table is ok
the 2 mbr table is ok
the 3 mbr table is ok
*************MBR DUMP***************
total mbr part 8

part[0] name      :boot-resource
part[0] classname :DISK
part[0] addrlo    :0x8000
part[0] lenlo     :0x1f8
part[0] user_type :32768
part[0] keydata   :0
part[0] ro        :0

part[1] name      :env
part[1] classname :DISK
part[1] addrlo    :0x81f8
part[1] lenlo     :0x1f8
part[1] user_type :32768
part[1] keydata   :0
part[1] ro        :0

part[2] name      :env-redund
part[2] classname :DISK
part[2] addrlo    :0x83f0
part[2] lenlo     :0x1f8
part[2] user_type :32768
part[2] keydata   :0
part[2] ro        :0

part[3] name      :boot
part[3] classname :DISK
part[3] addrlo    :0x85e8
part[3] lenlo     :0x5000
part[3] user_type :32768
part[3] keydata   :0
part[3] ro        :0

part[4] name      :rootfs
part[4] classname :DISK
part[4] addrlo    :0xd5e8
part[4] lenlo     :0xbe00
part[4] user_type :32768
part[4] keydata   :0
part[4] ro        :0

part[5] name      :recovery
part[5] classname :DISK
part[5] addrlo    :0x193e8
part[5] lenlo     :0x5780
part[5] user_type :32768
part[5] keydata   :0
part[5] ro        :0

part[6] name      :rootfs_data
part[6] classname :DISK
part[6] addrlo    :0x1eb68
part[6] lenlo     :0x2800
part[6] user_type :32768
part[6] keydata   :0
part[6] ro        :0

part[7] name      :UDISK
part[7] classname :DISK
part[7] addrlo    :0x21368
part[7] lenlo     :0x0
part[7] user_type :0
part[7] keydata   :0
part[7] ro        :0

common1(partition3) need it, here is a weak func
total part: 9
mbr 0, 8000, 8000
boot-resource 1, 1f8, 8000
env 2, 1f8, 8000
env-redund 3, 1f8, 8000
boot 4, 5000, 8000
rootfs 5, be00, 8000
recovery 6, 5780, 8000
rootfs_data 7, 2800, 8000
UDISK 8, 0, 0
[19.447]erase blk 0 to blk 32
[19.450]blk 0 is bad, skip to erase
[19.453]blk 1 is bad, skip to erase
[19.456]blk 2 is bad, skip to erase
[19.459]blk 3 is bad, skip to erase
[19.462]blk 4 is bad, skip to erase
[19.466]blk 5 is bad, skip to erase
[19.469]blk 6 is bad, skip to erase
[19.472]blk 7 is bad, skip to erase
[19.475]blk 8 is bad, skip to erase
[19.479]blk 9 is bad, skip to erase
[19.482]blk 10 is bad, skip to erase
[19.485]blk 11 is bad, skip to erase
[19.488]blk 12 is bad, skip to erase
[19.492]blk 13 is bad, skip to erase
[19.495]blk 14 is bad, skip to erase
[19.498]blk 15 is bad, skip to erase
[19.501]blk 16 is bad, skip to erase
[19.505]blk 17 is bad, skip to erase
[19.508]blk 18 is bad, skip to erase
[19.511]blk 19 is bad, skip to erase
[19.515]blk 20 is bad, skip to erase
[19.518]blk 21 is bad, skip to erase
[19.521]blk 22 is bad, skip to erase
[19.525]blk 23 is bad, skip to erase
[19.528]blk 24 is bad, skip to erase
[19.531]blk 25 is bad, skip to erase
[19.534]blk 26 is bad, skip to erase
[19.538]blk 27 is bad, skip to erase
[19.541]blk 28 is bad, skip to erase
[19.544]blk 29 is bad, skip to erase
[19.548]blk 30 is bad, skip to erase
[19.551]blk 31 is bad, skip to erase
need erase flash: 18
[19.558]mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)

device nand0 &lt;nand&gt;, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[19.618]MTD info (4)
[19.620]pagesize: 0x1000
[19.622]blksize: 0x40000
[19.624]num  offset     bytes      name
[19.628]0    0x00000000 0x00100000 boot0
[19.631]1    0x00100000 0x00300000 uboot
[19.635]2    0x00400000 0x00100000 secure_storage
[19.639]3    0x00500000 0x07b00000 sys
[19.643]ubi attach the last part of mtd device: NO.3
[19.686]ubi0: attaching mtd4
[19.699]ubi0: scanning is finished
[19.702]ubi0: empty MTD device detected
[19.708]ubi0 error: ubi_early_get_peb: no free eraseblocks
[19.714]ubi0 error: ubi_attach_mtd_dev: failed to attach mtd4, error -28
[19.720]UBI error: cannot attach mtd4
[19.724]UBI error: cannot initialize UBI, error -28
UBI init error 28
Please check, if the correct MTD partition is used (size big enough?)
[19.736]ubi part sys err !
[19.739]erase blk 0 to blk 32
[19.741]blk 0 is bad, skip to erase
[19.744]blk 1 is bad, skip to erase
[19.748]blk 2 is bad, skip to erase
[19.751]blk 3 is bad, skip to erase
[19.754]blk 4 is bad, skip to erase
[19.757]blk 5 is bad, skip to erase
[19.760]blk 6 is bad, skip to erase
[19.764]blk 7 is bad, skip to erase
[19.767]blk 8 is bad, skip to erase
[19.770]blk 9 is bad, skip to erase
[19.773]blk 10 is bad, skip to erase
[19.777]blk 11 is bad, skip to erase
[19.780]blk 12 is bad, skip to erase
[19.783]blk 13 is bad, skip to erase
[19.786]blk 14 is bad, skip to erase
[19.790]blk 15 is bad, skip to erase
[19.793]blk 16 is bad, skip to erase
[19.796]blk 17 is bad, skip to erase
[19.800]blk 18 is bad, skip to erase
[19.803]blk 19 is bad, skip to erase
[19.806]blk 20 is bad, skip to erase
[19.810]blk 21 is bad, skip to erase
[19.813]blk 22 is bad, skip to erase
[19.816]blk 23 is bad, skip to erase
[19.819]blk 24 is bad, skip to erase
[19.823]blk 25 is bad, skip to erase
[19.826]blk 26 is bad, skip to erase
[19.829]blk 27 is bad, skip to erase
[19.833]blk 28 is bad, skip to erase
[19.836]blk 29 is bad, skip to erase
[19.839]blk 30 is bad, skip to erase
[19.842]blk 31 is bad, skip to erase
[19.846]erase blk 40 to blk 1024
[19.849]blk 40 is bad, skip to erase
[19.852]blk 41 is bad, skip to erase
[19.855]blk 42 is bad, skip to erase
[19.859]blk 43 is bad, skip to erase
[19.862]blk 44 is bad, skip to erase
[19.865]blk 45 is bad, skip to erase
[19.868]blk 46 is bad, skip to erase
[19.872]blk 47 is bad, skip to erase
[19.875]blk 48 is bad, skip to erase
[19.878]blk 49 is bad, skip to erase
[19.882]blk 50 is bad, skip to erase
[19.885]blk 51 is bad, skip to erase
[19.888]blk 52 is bad, skip to erase
[19.892]blk 53 is bad, skip to erase
[19.895]blk 54 is bad, skip to erase
[19.898]blk 55 is bad, skip to erase
[19.901]blk 56 is bad, skip to erase
[19.905]blk 57 is bad, skip to erase
[19.908]blk 58 is bad, skip to erase
[19.911]blk 59 is bad, skip to erase
[19.915]blk 60 is bad, skip to erase
[19.918]blk 61 is bad, skip to erase
[19.921]blk 62 is bad, skip to erase
[19.925]blk 63 is bad, skip to erase
[19.928]blk 64 is bad, skip to erase
[19.931]blk 65 is bad, skip to erase
[19.934]blk 66 is bad, skip to erase
[19.938]blk 67 is bad, skip to erase
[19.941]blk 68 is bad, skip to erase
[19.944]blk 69 is bad, skip to erase
[19.948]blk 70 is bad, skip to erase
[19.951]blk 71 is bad, skip to erase
[19.954]blk 72 is bad, skip to erase
[19.957]blk 73 is bad, skip to erase
[19.961]blk 74 is bad, skip to erase
[19.964]blk 75 is bad, skip to erase
[19.967]blk 76 is bad, skip to erase
[19.971]blk 77 is bad, skip to erase
[19.974]blk 78 is bad, skip to erase
[19.977]blk 79 is bad, skip to erase
[19.980]blk 80 is bad, skip to erase
[19.984]blk 81 is bad, skip to erase
[19.987]blk 82 is bad, skip to erase
[19.990]blk 83 is bad, skip to erase
[19.994]blk 84 is bad, skip to erase
[19.997]blk 85 is bad, skip to erase
[20.000]blk 86 is bad, skip to erase
[20.004]blk 87 is bad, skip to erase
[20.007]blk 88 is bad, skip to erase
[20.010]blk 89 is bad, skip to erase
[20.013]blk 90 is bad, skip to erase
[20.017]blk 91 is bad, skip to erase
[20.020]blk 92 is bad, skip to erase
[20.023]blk 93 is bad, skip to erase
[20.027]blk 94 is bad, skip to erase
[20.030]blk 95 is bad, skip to erase
[20.033]blk 96 is bad, skip to erase
[20.036]blk 97 is bad, skip to erase
[20.040]blk 98 is bad, skip to erase
[20.043]blk 99 is bad, skip to erase
[20.046]blk 100 is bad, skip to erase
[20.050]blk 101 is bad, skip to erase
[20.053]blk 102 is bad, skip to erase
[20.057]blk 103 is bad, skip to erase
[20.060]blk 104 is bad, skip to erase
[20.063]blk 105 is bad, skip to erase
[20.067]blk 106 is bad, skip to erase
[20.070]blk 107 is bad, skip to erase
[20.073]blk 108 is bad, skip to erase
[20.077]blk 109 is bad, skip to erase
[20.080]blk 110 is bad, skip to erase
[20.084]blk 111 is bad, skip to erase
[20.087]blk 112 is bad, skip to erase
[20.090]blk 113 is bad, skip to erase
[20.094]blk 114 is bad, skip to erase
[20.097]blk 115 is bad, skip to erase
[20.100]blk 116 is bad, skip to erase
[20.104]blk 117 is bad, skip to erase
[20.107]blk 118 is bad, skip to erase
[20.111]blk 119 is bad, skip to erase
[20.114]blk 120 is bad, skip to erase
[20.117]blk 121 is bad, skip to erase
[20.121]blk 122 is bad, skip to erase
[20.124]blk 123 is bad, skip to erase
[20.127]blk 124 is bad, skip to erase
[20.131]blk 125 is bad, skip to erase
[20.134]blk 126 is bad, skip to erase
[20.138]blk 127 is bad, skip to erase
[20.141]blk 128 is bad, skip to erase
[20.144]blk 129 is bad, skip to erase
[20.148]blk 130 is bad, skip to erase
[20.151]blk 131 is bad, skip to erase
[20.154]blk 132 is bad, skip to erase
[20.158]blk 133 is bad, skip to erase
[20.161]blk 134 is bad, skip to erase
[20.165]blk 135 is bad, skip to erase
[20.168]blk 136 is bad, skip to erase
[20.171]blk 137 is bad, skip to erase
[20.175]blk 138 is bad, skip to erase
[20.178]blk 139 is bad, skip to erase
[20.182]blk 140 is bad, skip to erase
[20.185]blk 141 is bad, skip to erase
[20.188]blk 142 is bad, skip to erase
[20.192]blk 143 is bad, skip to erase
[20.195]blk 144 is bad, skip to erase
[20.198]blk 145 is bad, skip to erase
[20.202]blk 146 is bad, skip to erase
[20.205]blk 147 is bad, skip to erase
[20.209]blk 148 is bad, skip to erase
[20.212]blk 149 is bad, skip to erase
[20.215]blk 150 is bad, skip to erase
[20.219]blk 151 is bad, skip to erase
[20.222]blk 152 is bad, skip to erase
[20.226]blk 153 is bad, skip to erase
[20.229]blk 154 is bad, skip to erase
[20.232]blk 155 is bad, skip to erase
[20.236]blk 156 is bad, skip to erase
[20.239]blk 157 is bad, skip to erase
[20.242]blk 158 is bad, skip to erase
[20.246]blk 159 is bad, skip to erase
[20.249]blk 160 is bad, skip to erase
[20.253]blk 161 is bad, skip to erase
[20.256]blk 162 is bad, skip to erase
[20.259]blk 163 is bad, skip to erase
[20.263]blk 164 is bad, skip to erase
[20.266]blk 165 is bad, skip to erase
[20.269]blk 166 is bad, skip to erase
[20.273]blk 167 is bad, skip to erase
[20.276]blk 168 is bad, skip to erase
[20.280]blk 169 is bad, skip to erase
[20.283]blk 170 is bad, skip to erase
[20.286]blk 171 is bad, skip to erase
[20.290]blk 172 is bad, skip to erase
[20.293]blk 173 is bad, skip to erase
[20.296]blk 174 is bad, skip to erase
[20.300]blk 175 is bad, skip to erase
[20.303]blk 176 is bad, skip to erase
[20.307]blk 177 is bad, skip to erase
[20.310]blk 178 is bad, skip to erase
[20.313]blk 179 is bad, skip to erase
[20.317]blk 180 is bad, skip to erase
[20.320]blk 181 is bad, skip to erase
[20.323]blk 182 is bad, skip to erase
[20.327]blk 183 is bad, skip to erase
[20.330]blk 184 is bad, skip to erase
[20.334]blk 185 is bad, skip to erase
[20.337]blk 186 is bad, skip to erase
[20.340]blk 187 is bad, skip to erase
[20.344]blk 188 is bad, skip to erase
[20.347]blk 189 is bad, skip to erase
[20.351]blk 190 is bad, skip to erase
[20.354]blk 191 is bad, skip to erase
[20.357]blk 192 is bad, skip to erase
[20.361]blk 193 is bad, skip to erase
[20.364]blk 194 is bad, skip to erase
[20.367]blk 195 is bad, skip to erase
[20.371]blk 196 is bad, skip to erase
[20.374]blk 197 is bad, skip to erase
[20.378]blk 198 is bad, skip to erase
[20.381]blk 199 is bad, skip to erase
[20.384]blk 200 is bad, skip to erase
[20.388]blk 201 is bad, skip to erase
[20.391]blk 202 is bad, skip to erase
[20.395]blk 203 is bad, skip to erase
[20.398]blk 204 is bad, skip to erase
[20.401]blk 205 is bad, skip to erase
[20.405]blk 206 is bad, skip to erase
[20.408]blk 207 is bad, skip to erase
[20.411]blk 208 is bad, skip to erase
[20.415]blk 209 is bad, skip to erase
[20.418]blk 210 is bad, skip to erase
[20.422]blk 211 is bad, skip to erase
[20.425]blk 212 is bad, skip to erase
[20.428]blk 213 is bad, skip to erase
[20.432]blk 214 is bad, skip to erase
[20.435]blk 215 is bad, skip to erase
[20.438]blk 216 is bad, skip to erase
[20.442]blk 217 is bad, skip to erase
[20.445]blk 218 is bad, skip to erase
[20.449]blk 219 is bad, skip to erase
[20.452]blk 220 is bad, skip to erase
[20.455]blk 221 is bad, skip to erase
[20.459]blk 222 is bad, skip to erase
[20.462]blk 223 is bad, skip to erase
[20.465]blk 224 is bad, skip to erase
[20.469]blk 225 is bad, skip to erase
[20.472]blk 226 is bad, skip to erase
[20.476]blk 227 is bad, skip to erase
[20.479]blk 228 is bad, skip to erase
[20.482]blk 229 is bad, skip to erase
[20.486]blk 230 is bad, skip to erase
[20.489]blk 231 is bad, skip to erase
[20.492]blk 232 is bad, skip to erase
[20.496]blk 233 is bad, skip to erase
[20.499]blk 234 is bad, skip to erase
[20.503]blk 235 is bad, skip to erase
[20.506]blk 236 is bad, skip to erase
[20.509]blk 237 is bad, skip to erase
[20.513]blk 238 is bad, skip to erase
[20.516]blk 239 is bad, skip to erase
[20.520]blk 240 is bad, skip to erase
[20.523]blk 241 is bad, skip to erase
[20.526]blk 242 is bad, skip to erase
[20.530]blk 243 is bad, skip to erase
[20.533]blk 244 is bad, skip to erase
[20.536]blk 245 is bad, skip to erase
[20.540]blk 246 is bad, skip to erase
[20.543]blk 247 is bad, skip to erase
[20.547]blk 248 is bad, skip to erase
[20.550]blk 249 is bad, skip to erase
[20.553]blk 250 is bad, skip to erase
[20.557]blk 251 is bad, skip to erase
[20.560]blk 252 is bad, skip to erase
[20.564]blk 253 is bad, skip to erase
[20.567]blk 254 is bad, skip to erase
[20.570]blk 255 is bad, skip to erase
[20.574]blk 256 is bad, skip to erase
[20.577]blk 257 is bad, skip to erase
[20.580]blk 258 is bad, skip to erase
[20.584]blk 259 is bad, skip to erase
[20.587]blk 260 is bad, skip to erase
[20.591]blk 261 is bad, skip to erase
[20.594]blk 262 is bad, skip to erase
[20.597]blk 263 is bad, skip to erase
[20.601]blk 264 is bad, skip to erase
[20.604]blk 265 is bad, skip to erase
[20.607]blk 266 is bad, skip to erase
[20.611]blk 267 is bad, skip to erase
[20.614]blk 268 is bad, skip to erase
[20.618]blk 269 is bad, skip to erase
[20.621]blk 270 is bad, skip to erase
[20.624]blk 271 is bad, skip to erase
[20.628]blk 272 is bad, skip to erase
[20.631]blk 273 is bad, skip to erase
[20.634]blk 274 is bad, skip to erase
[20.638]blk 275 is bad, skip to erase
[20.641]blk 276 is bad, skip to erase
[20.645]blk 277 is bad, skip to erase
[20.648]blk 278 is bad, skip to erase
[20.651]blk 279 is bad, skip to erase
[20.655]blk 280 is bad, skip to erase
[20.658]blk 281 is bad, skip to erase
[20.661]blk 282 is bad, skip to erase
[20.665]blk 283 is bad, skip to erase
[20.668]blk 284 is bad, skip to erase
[20.672]blk 285 is bad, skip to erase
[20.675]blk 286 is bad, skip to erase
[20.678]blk 287 is bad, skip to erase
[20.682]blk 288 is bad, skip to erase
[20.685]blk 289 is bad, skip to erase
[20.689]blk 290 is bad, skip to erase
[20.692]blk 291 is bad, skip to erase
[20.695]blk 292 is bad, skip to erase
[20.699]blk 293 is bad, skip to erase
[20.702]blk 294 is bad, skip to erase
[20.705]blk 295 is bad, skip to erase
[20.709]blk 296 is bad, skip to erase
[20.712]blk 297 is bad, skip to erase
[20.716]blk 298 is bad, skip to erase
[20.719]blk 299 is bad, skip to erase
[20.722]blk 300 is bad, skip to erase
[20.726]blk 301 is bad, skip to erase
[20.729]blk 302 is bad, skip to erase
[20.733]blk 303 is bad, skip to erase
[20.736]blk 304 is bad, skip to erase
[20.739]blk 305 is bad, skip to erase
[20.743]blk 306 is bad, skip to erase
[20.746]blk 307 is bad, skip to erase
[20.749]blk 308 is bad, skip to erase
[20.753]blk 309 is bad, skip to erase
[20.756]blk 310 is bad, skip to erase
[20.760]blk 311 is bad, skip to erase
[20.763]blk 312 is bad, skip to erase
[20.766]blk 313 is bad, skip to erase
[20.770]blk 314 is bad, skip to erase
[20.773]blk 315 is bad, skip to erase
[20.776]blk 316 is bad, skip to erase
[20.780]blk 317 is bad, skip to erase
[20.783]blk 318 is bad, skip to erase
[20.787]blk 319 is bad, skip to erase
[20.790]blk 320 is bad, skip to erase
[20.793]blk 321 is bad, skip to erase
[20.797]blk 322 is bad, skip to erase
[20.800]blk 323 is bad, skip to erase
[20.803]blk 324 is bad, skip to erase
[20.807]blk 325 is bad, skip to erase
[20.810]blk 326 is bad, skip to erase
[20.814]blk 327 is bad, skip to erase
[20.817]blk 328 is bad, skip to erase
[20.820]blk 329 is bad, skip to erase
[20.824]blk 330 is bad, skip to erase
[20.827]blk 331 is bad, skip to erase
[20.830]blk 332 is bad, skip to erase
[20.834]blk 333 is bad, skip to erase
[20.837]blk 334 is bad, skip to erase
[20.841]blk 335 is bad, skip to erase
[20.844]blk 336 is bad, skip to erase
[20.847]blk 337 is bad, skip to erase
[20.851]blk 338 is bad, skip to erase
[20.854]blk 339 is bad, skip to erase
[20.858]blk 340 is bad, skip to erase
[20.861]blk 341 is bad, skip to erase
[20.864]blk 342 is bad, skip to erase
[20.868]blk 343 is bad, skip to erase
[20.871]blk 344 is bad, skip to erase
[20.874]blk 345 is bad, skip to erase
[20.878]blk 346 is bad, skip to erase
[20.881]blk 347 is bad, skip to erase
[20.885]blk 348 is bad, skip to erase
[20.888]blk 349 is bad, skip to erase
[20.891]blk 350 is bad, skip to erase
[20.895]blk 351 is bad, skip to erase
[20.898]blk 352 is bad, skip to erase
[20.902]blk 353 is bad, skip to erase
[20.905]blk 354 is bad, skip to erase
[20.908]blk 355 is bad, skip to erase
[20.912]blk 356 is bad, skip to erase
[20.915]blk 357 is bad, skip to erase
[20.918]blk 358 is bad, skip to erase
[20.922]blk 359 is bad, skip to erase
[20.925]blk 360 is bad, skip to erase
[20.929]blk 361 is bad, skip to erase
[20.932]blk 362 is bad, skip to erase
[20.935]blk 363 is bad, skip to erase
[20.939]blk 364 is bad, skip to erase
[20.942]blk 365 is bad, skip to erase
[20.945]blk 366 is bad, skip to erase
[20.949]blk 367 is bad, skip to erase
[20.952]blk 368 is bad, skip to erase
[20.956]blk 369 is bad, skip to erase
[20.959]blk 370 is bad, skip to erase
[20.962]blk 371 is bad, skip to erase
[20.966]blk 372 is bad, skip to erase
[20.969]blk 373 is bad, skip to erase
[20.972]blk 374 is bad, skip to erase
[20.976]blk 375 is bad, skip to erase
[20.979]blk 376 is bad, skip to erase
[20.983]blk 377 is bad, skip to erase
[20.986]blk 378 is bad, skip to erase
[20.989]blk 379 is bad, skip to erase
[20.993]blk 380 is bad, skip to erase
[20.996]blk 381 is bad, skip to erase
[20.999]blk 382 is bad, skip to erase
[21.003]blk 383 is bad, skip to erase
[21.006]blk 384 is bad, skip to erase
[21.010]blk 385 is bad, skip to erase
[21.013]blk 386 is bad, skip to erase
[21.016]blk 387 is bad, skip to erase
[21.020]blk 388 is bad, skip to erase
[21.023]blk 389 is bad, skip to erase
[21.027]blk 390 is bad, skip to erase
[21.030]blk 391 is bad, skip to erase
[21.033]blk 392 is bad, skip to erase
[21.037]blk 393 is bad, skip to erase
[21.040]blk 394 is bad, skip to erase
[21.043]blk 395 is bad, skip to erase
[21.047]blk 396 is bad, skip to erase
[21.050]blk 397 is bad, skip to erase
[21.054]blk 398 is bad, skip to erase
[21.057]blk 399 is bad, skip to erase
[21.060]blk 400 is bad, skip to erase
[21.064]blk 401 is bad, skip to erase
[21.067]blk 402 is bad, skip to erase
[21.071]blk 403 is bad, skip to erase
[21.074]blk 404 is bad, skip to erase
[21.077]blk 405 is bad, skip to erase
[21.081]blk 406 is bad, skip to erase
[21.084]blk 407 is bad, skip to erase
[21.087]blk 408 is bad, skip to erase
[21.091]blk 409 is bad, skip to erase
[21.094]blk 410 is bad, skip to erase
[21.098]blk 411 is bad, skip to erase
[21.101]blk 412 is bad, skip to erase
[21.104]blk 413 is bad, skip to erase
[21.108]blk 414 is bad, skip to erase
[21.111]blk 415 is bad, skip to erase
[21.114]blk 416 is bad, skip to erase
[21.118]blk 417 is bad, skip to erase
[21.121]blk 418 is bad, skip to erase
[21.125]blk 419 is bad, skip to erase
[21.128]blk 420 is bad, skip to erase
[21.131]blk 421 is bad, skip to erase
[21.135]blk 422 is bad, skip to erase
[21.138]blk 423 is bad, skip to erase
[21.141]blk 424 is bad, skip to erase
[21.145]blk 425 is bad, skip to erase
[21.148]blk 426 is bad, skip to erase
[21.152]blk 427 is bad, skip to erase
[21.155]blk 428 is bad, skip to erase
[21.158]blk 429 is bad, skip to erase
[21.162]blk 430 is bad, skip to erase
[21.165]blk 431 is bad, skip to erase
[21.168]blk 432 is bad, skip to erase
[21.172]blk 433 is bad, skip to erase
[21.175]blk 434 is bad, skip to erase
[21.179]blk 435 is bad, skip to erase
[21.182]blk 436 is bad, skip to erase
[21.185]blk 437 is bad, skip to erase
[21.189]blk 438 is bad, skip to erase
[21.192]blk 439 is bad, skip to erase
[21.196]blk 440 is bad, skip to erase
[21.199]blk 441 is bad, skip to erase
[21.202]blk 442 is bad, skip to erase
[21.206]blk 443 is bad, skip to erase
[21.209]blk 444 is bad, skip to erase
[21.212]blk 445 is bad, skip to erase
[21.216]blk 446 is bad, skip to erase
[21.219]blk 447 is bad, skip to erase
[21.223]blk 448 is bad, skip to erase
[21.226]blk 449 is bad, skip to erase
[21.229]blk 450 is bad, skip to erase
[21.233]blk 451 is bad, skip to erase
[21.236]blk 452 is bad, skip to erase
[21.240]blk 453 is bad, skip to erase
[21.243]blk 454 is bad, skip to erase
[21.246]blk 455 is bad, skip to erase
[21.250]blk 456 is bad, skip to erase
[21.253]blk 457 is bad, skip to erase
[21.256]blk 458 is bad, skip to erase
[21.260]blk 459 is bad, skip to erase
[21.263]blk 460 is bad, skip to erase
[21.267]blk 461 is bad, skip to erase
[21.270]blk 462 is bad, skip to erase
[21.273]blk 463 is bad, skip to erase
[21.277]blk 464 is bad, skip to erase
[21.280]blk 465 is bad, skip to erase
[21.283]blk 466 is bad, skip to erase
[21.287]blk 467 is bad, skip to erase
[21.290]blk 468 is bad, skip to erase
[21.294]blk 469 is bad, skip to erase
[21.297]blk 470 is bad, skip to erase
[21.300]blk 471 is bad, skip to erase
[21.304]blk 472 is bad, skip to erase
[21.307]blk 473 is bad, skip to erase
[21.310]blk 474 is bad, skip to erase
[21.314]blk 475 is bad, skip to erase
[21.317]blk 476 is bad, skip to erase
[21.321]blk 477 is bad, skip to erase
[21.324]blk 478 is bad, skip to erase
[21.327]blk 479 is bad, skip to erase
[21.331]blk 480 is bad, skip to erase
[21.334]blk 481 is bad, skip to erase
[21.337]blk 482 is bad, skip to erase
[21.341]blk 483 is bad, skip to erase
[21.344]blk 484 is bad, skip to erase
[21.348]blk 485 is bad, skip to erase
[21.351]blk 486 is bad, skip to erase
[21.354]blk 487 is bad, skip to erase
[21.358]blk 488 is bad, skip to erase
[21.361]blk 489 is bad, skip to erase
[21.365]blk 490 is bad, skip to erase
[21.368]blk 491 is bad, skip to erase
[21.371]blk 492 is bad, skip to erase
[21.375]blk 493 is bad, skip to erase
[21.378]blk 494 is bad, skip to erase
[21.381]blk 495 is bad, skip to erase
[21.385]blk 496 is bad, skip to erase
[21.388]blk 497 is bad, skip to erase
[21.392]blk 498 is bad, skip to erase
[21.395]blk 499 is bad, skip to erase
[21.398]blk 500 is bad, skip to erase
[21.402]blk 501 is bad, skip to erase
[21.405]blk 502 is bad, skip to erase
[21.409]blk 503 is bad, skip to erase
[21.412]blk 504 is bad, skip to erase
[21.415]blk 505 is bad, skip to erase
[21.419]blk 506 is bad, skip to erase
[21.422]blk 507 is bad, skip to erase
[21.425]blk 508 is bad, skip to erase
[21.429]blk 509 is bad, skip to erase
[21.432]blk 510 is bad, skip to erase
[21.436]blk 511 is bad, skip to erase
[21.439]blk 512 is bad, skip to erase
[21.442]blk 513 is bad, skip to erase
[21.446]blk 514 is bad, skip to erase
[21.449]blk 515 is bad, skip to erase
[21.452]blk 516 is bad, skip to erase
[21.456]blk 517 is bad, skip to erase
[21.459]blk 518 is bad, skip to erase
[21.463]blk 519 is bad, skip to erase
[21.466]blk 520 is bad, skip to erase
[21.469]blk 521 is bad, skip to erase
[21.473]blk 522 is bad, skip to erase
[21.476]blk 523 is bad, skip to erase
[21.479]blk 524 is bad, skip to erase
[21.483]blk 525 is bad, skip to erase
[21.486]blk 526 is bad, skip to erase
[21.490]blk 527 is bad, skip to erase
[21.493]blk 528 is bad, skip to erase
[21.496]blk 529 is bad, skip to erase
[21.500]blk 530 is bad, skip to erase
[21.503]blk 531 is bad, skip to erase
[21.506]blk 532 is bad, skip to erase
[21.510]blk 533 is bad, skip to erase
[21.513]blk 534 is bad, skip to erase
[21.517]blk 535 is bad, skip to erase
[21.520]blk 536 is bad, skip to erase
[21.523]blk 537 is bad, skip to erase
[21.527]blk 538 is bad, skip to erase
[21.530]blk 539 is bad, skip to erase
[21.534]blk 540 is bad, skip to erase
[21.537]blk 541 is bad, skip to erase
[21.540]blk 542 is bad, skip to erase
[21.544]blk 543 is bad, skip to erase
[21.547]blk 544 is bad, skip to erase
[21.550]blk 545 is bad, skip to erase
[21.554]blk 546 is bad, skip to erase
[21.557]blk 547 is bad, skip to erase
[21.561]blk 548 is bad, skip to erase
[21.564]blk 549 is bad, skip to erase
[21.567]blk 550 is bad, skip to erase
[21.571]blk 551 is bad, skip to erase
[21.574]blk 552 is bad, skip to erase
[21.578]blk 553 is bad, skip to erase
[21.581]blk 554 is bad, skip to erase
[21.584]blk 555 is bad, skip to erase
[21.588]blk 556 is bad, skip to erase
[21.591]blk 557 is bad, skip to erase
[21.594]blk 558 is bad, skip to erase
[21.598]blk 559 is bad, skip to erase
[21.601]blk 560 is bad, skip to erase
[21.605]blk 561 is bad, skip to erase
[21.608]blk 562 is bad, skip to erase
[21.611]blk 563 is bad, skip to erase
[21.615]blk 564 is bad, skip to erase
[21.618]blk 565 is bad, skip to erase
[21.621]blk 566 is bad, skip to erase
[21.625]blk 567 is bad, skip to erase
[21.628]blk 568 is bad, skip to erase
[21.632]blk 569 is bad, skip to erase
[21.635]blk 570 is bad, skip to erase
[21.638]blk 571 is bad, skip to erase
[21.642]blk 572 is bad, skip to erase
[21.645]blk 573 is bad, skip to erase
[21.648]blk 574 is bad, skip to erase
[21.652]blk 575 is bad, skip to erase
[21.655]blk 576 is bad, skip to erase
[21.659]blk 577 is bad, skip to erase
[21.662]blk 578 is bad, skip to erase
[21.665]blk 579 is bad, skip to erase
[21.669]blk 580 is bad, skip to erase
[21.672]blk 581 is bad, skip to erase
[21.675]blk 582 is bad, skip to erase
[21.679]blk 583 is bad, skip to erase
[21.682]blk 584 is bad, skip to erase
[21.686]blk 585 is bad, skip to erase
[21.689]blk 586 is bad, skip to erase
[21.692]blk 587 is bad, skip to erase
[21.696]blk 588 is bad, skip to erase
[21.699]blk 589 is bad, skip to erase
[21.703]blk 590 is bad, skip to erase
[21.706]blk 591 is bad, skip to erase
[21.709]blk 592 is bad, skip to erase
[21.713]blk 593 is bad, skip to erase
[21.716]blk 594 is bad, skip to erase
[21.719]blk 595 is bad, skip to erase
[21.723]blk 596 is bad, skip to erase
[21.726]blk 597 is bad, skip to erase
[21.730]blk 598 is bad, skip to erase
[21.733]blk 599 is bad, skip to erase
[21.736]blk 600 is bad, skip to erase
[21.740]blk 601 is bad, skip to erase
[21.743]blk 602 is bad, skip to erase
[21.747]blk 603 is bad, skip to erase
[21.750]blk 604 is bad, skip to erase
[21.753]blk 605 is bad, skip to erase
[21.757]blk 606 is bad, skip to erase
[21.760]blk 607 is bad, skip to erase
[21.763]blk 608 is bad, skip to erase
[21.767]blk 609 is bad, skip to erase
[21.770]blk 610 is bad, skip to erase
[21.774]blk 611 is bad, skip to erase
[21.777]blk 612 is bad, skip to erase
[21.780]blk 613 is bad, skip to erase
[21.784]blk 614 is bad, skip to erase
[21.787]blk 615 is bad, skip to erase
[21.790]blk 616 is bad, skip to erase
[21.794]blk 617 is bad, skip to erase
[21.797]blk 618 is bad, skip to erase
[21.801]blk 619 is bad, skip to erase
[21.804]blk 620 is bad, skip to erase
[21.807]blk 621 is bad, skip to erase
[21.811]blk 622 is bad, skip to erase
[21.814]blk 623 is bad, skip to erase
[21.817]blk 624 is bad, skip to erase
[21.821]blk 625 is bad, skip to erase
[21.824]blk 626 is bad, skip to erase
[21.828]blk 627 is bad, skip to erase
[21.831]blk 628 is bad, skip to erase
[21.834]blk 629 is bad, skip to erase
[21.838]blk 630 is bad, skip to erase
[21.841]blk 631 is bad, skip to erase
[21.844]blk 632 is bad, skip to erase
[21.848]blk 633 is bad, skip to erase
[21.851]blk 634 is bad, skip to erase
[21.855]blk 635 is bad, skip to erase
[21.858]blk 636 is bad, skip to erase
[21.861]blk 637 is bad, skip to erase
[21.865]blk 638 is bad, skip to erase
[21.868]blk 639 is bad, skip to erase
[21.872]blk 640 is bad, skip to erase
[21.875]blk 641 is bad, skip to erase
[21.878]blk 642 is bad, skip to erase
[21.882]blk 643 is bad, skip to erase
[21.885]blk 644 is bad, skip to erase
[21.888]blk 645 is bad, skip to erase
[21.892]blk 646 is bad, skip to erase
[21.895]blk 647 is bad, skip to erase
[21.899]blk 648 is bad, skip to erase
[21.902]blk 649 is bad, skip to erase
[21.905]blk 650 is bad, skip to erase
[21.909]blk 651 is bad, skip to erase
[21.912]blk 652 is bad, skip to erase
[21.916]blk 653 is bad, skip to erase
[21.919]blk 654 is bad, skip to erase
[21.922]blk 655 is bad, skip to erase
[21.926]blk 656 is bad, skip to erase
[21.929]blk 657 is bad, skip to erase
[21.932]blk 658 is bad, skip to erase
[21.936]blk 659 is bad, skip to erase
[21.939]blk 660 is bad, skip to erase
[21.943]blk 661 is bad, skip to erase
[21.946]blk 662 is bad, skip to erase
[21.949]blk 663 is bad, skip to erase
[21.953]blk 664 is bad, skip to erase
[21.956]blk 665 is bad, skip to erase
[21.959]blk 666 is bad, skip to erase
[21.963]blk 667 is bad, skip to erase
[21.966]blk 668 is bad, skip to erase
[21.970]blk 669 is bad, skip to erase
[21.973]blk 670 is bad, skip to erase
[21.976]blk 671 is bad, skip to erase
[21.980]blk 672 is bad, skip to erase
[21.983]blk 673 is bad, skip to erase
[21.986]blk 674 is bad, skip to erase
[21.990]blk 675 is bad, skip to erase
[21.993]blk 676 is bad, skip to erase
[21.997]blk 677 is bad, skip to erase
[22.000]blk 678 is bad, skip to erase
[22.003]blk 679 is bad, skip to erase
[22.007]blk 680 is bad, skip to erase
[22.010]blk 681 is bad, skip to erase
[22.013]blk 682 is bad, skip to erase
[22.017]blk 683 is bad, skip to erase
[22.020]blk 684 is bad, skip to erase
[22.024]blk 685 is bad, skip to erase
[22.027]blk 686 is bad, skip to erase
[22.030]blk 687 is bad, skip to erase
[22.034]blk 688 is bad, skip to erase
[22.037]blk 689 is bad, skip to erase
[22.041]blk 690 is bad, skip to erase
[22.044]blk 691 is bad, skip to erase
[22.047]blk 692 is bad, skip to erase
[22.051]blk 693 is bad, skip to erase
[22.054]blk 694 is bad, skip to erase
[22.057]blk 695 is bad, skip to erase
[22.061]blk 696 is bad, skip to erase
[22.064]blk 697 is bad, skip to erase
[22.068]blk 698 is bad, skip to erase
[22.071]blk 699 is bad, skip to erase
[22.074]blk 700 is bad, skip to erase
[22.078]blk 701 is bad, skip to erase
[22.081]blk 702 is bad, skip to erase
[22.085]blk 703 is bad, skip to erase
[22.088]blk 704 is bad, skip to erase
[22.091]blk 705 is bad, skip to erase
[22.095]blk 706 is bad, skip to erase
[22.098]blk 707 is bad, skip to erase
[22.101]blk 708 is bad, skip to erase
[22.105]blk 709 is bad, skip to erase
[22.108]blk 710 is bad, skip to erase
[22.112]blk 711 is bad, skip to erase
[22.115]blk 712 is bad, skip to erase
[22.118]blk 713 is bad, skip to erase
[22.122]blk 714 is bad, skip to erase
[22.125]blk 715 is bad, skip to erase
[22.128]blk 716 is bad, skip to erase
[22.132]blk 717 is bad, skip to erase
[22.135]blk 718 is bad, skip to erase
[22.139]blk 719 is bad, skip to erase
[22.142]blk 720 is bad, skip to erase
[22.145]blk 721 is bad, skip to erase
[22.149]blk 722 is bad, skip to erase
[22.152]blk 723 is bad, skip to erase
[22.155]blk 724 is bad, skip to erase
[22.159]blk 725 is bad, skip to erase
[22.162]blk 726 is bad, skip to erase
[22.166]blk 727 is bad, skip to erase
[22.169]blk 728 is bad, skip to erase
[22.172]blk 729 is bad, skip to erase
[22.176]blk 730 is bad, skip to erase
[22.179]blk 731 is bad, skip to erase
[22.182]blk 732 is bad, skip to erase
[22.186]blk 733 is bad, skip to erase
[22.189]blk 734 is bad, skip to erase
[22.193]blk 735 is bad, skip to erase
[22.196]blk 736 is bad, skip to erase
[22.199]blk 737 is bad, skip to erase
[22.203]blk 738 is bad, skip to erase
[22.206]blk 739 is bad, skip to erase
[22.210]blk 740 is bad, skip to erase
[22.213]blk 741 is bad, skip to erase
[22.216]blk 742 is bad, skip to erase
[22.220]blk 743 is bad, skip to erase
[22.223]blk 744 is bad, skip to erase
[22.226]blk 745 is bad, skip to erase
[22.230]blk 746 is bad, skip to erase
[22.233]blk 747 is bad, skip to erase
[22.237]blk 748 is bad, skip to erase
[22.240]blk 749 is bad, skip to erase
[22.243]blk 750 is bad, skip to erase
[22.247]blk 751 is bad, skip to erase
[22.250]blk 752 is bad, skip to erase
[22.254]blk 753 is bad, skip to erase
[22.257]blk 754 is bad, skip to erase
[22.260]blk 755 is bad, skip to erase
[22.264]blk 756 is bad, skip to erase
[22.267]blk 757 is bad, skip to erase
[22.270]blk 758 is bad, skip to erase
[22.274]blk 759 is bad, skip to erase
[22.277]blk 760 is bad, skip to erase
[22.281]blk 761 is bad, skip to erase
[22.284]blk 762 is bad, skip to erase
[22.287]blk 763 is bad, skip to erase
[22.291]blk 764 is bad, skip to erase
[22.294]blk 765 is bad, skip to erase
[22.297]blk 766 is bad, skip to erase
[22.301]blk 767 is bad, skip to erase
[22.304]blk 768 is bad, skip to erase
[22.308]blk 769 is bad, skip to erase
[22.311]blk 770 is bad, skip to erase
[22.314]blk 771 is bad, skip to erase
[22.318]blk 772 is bad, skip to erase
[22.321]blk 773 is bad, skip to erase
[22.324]blk 774 is bad, skip to erase
[22.328]blk 775 is bad, skip to erase
[22.331]blk 776 is bad, skip to erase
[22.335]blk 777 is bad, skip to erase
[22.338]blk 778 is bad, skip to erase
[22.341]blk 779 is bad, skip to erase
[22.345]blk 780 is bad, skip to erase
[22.348]blk 781 is bad, skip to erase
[22.351]blk 782 is bad, skip to erase
[22.355]blk 783 is bad, skip to erase
[22.358]blk 784 is bad, skip to erase
[22.362]blk 785 is bad, skip to erase
[22.365]blk 786 is bad, skip to erase
[22.368]blk 787 is bad, skip to erase
[22.372]blk 788 is bad, skip to erase
[22.375]blk 789 is bad, skip to erase
[22.379]blk 790 is bad, skip to erase
[22.382]blk 791 is bad, skip to erase
[22.385]blk 792 is bad, skip to erase
[22.389]blk 793 is bad, skip to erase
[22.392]blk 794 is bad, skip to erase
[22.395]blk 795 is bad, skip to erase
[22.399]blk 796 is bad, skip to erase
[22.402]blk 797 is bad, skip to erase
[22.406]blk 798 is bad, skip to erase
[22.409]blk 799 is bad, skip to erase
[22.412]blk 800 is bad, skip to erase
[22.416]blk 801 is bad, skip to erase
[22.419]blk 802 is bad, skip to erase
[22.423]blk 803 is bad, skip to erase
[22.426]blk 804 is bad, skip to erase
[22.429]blk 805 is bad, skip to erase
[22.433]blk 806 is bad, skip to erase
[22.436]blk 807 is bad, skip to erase
[22.439]blk 808 is bad, skip to erase
[22.443]blk 809 is bad, skip to erase
[22.446]blk 810 is bad, skip to erase
[22.450]blk 811 is bad, skip to erase
[22.453]blk 812 is bad, skip to erase
[22.456]blk 813 is bad, skip to erase
[22.460]blk 814 is bad, skip to erase
[22.463]blk 815 is bad, skip to erase
[22.466]blk 816 is bad, skip to erase
[22.470]blk 817 is bad, skip to erase
[22.473]blk 818 is bad, skip to erase
[22.477]blk 819 is bad, skip to erase
[22.480]blk 820 is bad, skip to erase
[22.483]blk 821 is bad, skip to erase
[22.487]blk 822 is bad, skip to erase
[22.490]blk 823 is bad, skip to erase
[22.493]blk 824 is bad, skip to erase
[22.497]blk 825 is bad, skip to erase
[22.500]blk 826 is bad, skip to erase
[22.504]blk 827 is bad, skip to erase
[22.507]blk 828 is bad, skip to erase
[22.510]blk 829 is bad, skip to erase
[22.514]blk 830 is bad, skip to erase
[22.517]blk 831 is bad, skip to erase
[22.520]blk 832 is bad, skip to erase
[22.524]blk 833 is bad, skip to erase
[22.527]blk 834 is bad, skip to erase
[22.531]blk 835 is bad, skip to erase
[22.534]blk 836 is bad, skip to erase
[22.537]blk 837 is bad, skip to erase
[22.541]blk 838 is bad, skip to erase
[22.544]blk 839 is bad, skip to erase
[22.548]blk 840 is bad, skip to erase
[22.551]blk 841 is bad, skip to erase
[22.554]blk 842 is bad, skip to erase
[22.558]blk 843 is bad, skip to erase
[22.561]blk 844 is bad, skip to erase
[22.564]blk 845 is bad, skip to erase
[22.568]blk 846 is bad, skip to erase
[22.571]blk 847 is bad, skip to erase
[22.575]blk 848 is bad, skip to erase
[22.578]blk 849 is bad, skip to erase
[22.581]blk 850 is bad, skip to erase
[22.585]blk 851 is bad, skip to erase
[22.588]blk 852 is bad, skip to erase
[22.592]blk 853 is bad, skip to erase
[22.595]blk 854 is bad, skip to erase
[22.598]blk 855 is bad, skip to erase
[22.602]blk 856 is bad, skip to erase
[22.605]blk 857 is bad, skip to erase
[22.608]blk 858 is bad, skip to erase
[22.612]blk 859 is bad, skip to erase
[22.615]blk 860 is bad, skip to erase
[22.619]blk 861 is bad, skip to erase
[22.622]blk 862 is bad, skip to erase
[22.625]blk 863 is bad, skip to erase
[22.629]blk 864 is bad, skip to erase
[22.632]blk 865 is bad, skip to erase
[22.635]blk 866 is bad, skip to erase
[22.639]blk 867 is bad, skip to erase
[22.642]blk 868 is bad, skip to erase
[22.646]blk 869 is bad, skip to erase
[22.649]blk 870 is bad, skip to erase
[22.652]blk 871 is bad, skip to erase
[22.656]blk 872 is bad, skip to erase
[22.659]blk 873 is bad, skip to erase
[22.662]blk 874 is bad, skip to erase
[22.666]blk 875 is bad, skip to erase
[22.669]blk 876 is bad, skip to erase
[22.673]blk 877 is bad, skip to erase
[22.676]blk 878 is bad, skip to erase
[22.679]blk 879 is bad, skip to erase
[22.683]blk 880 is bad, skip to erase
[22.686]blk 881 is bad, skip to erase
[22.689]blk 882 is bad, skip to erase
[22.693]blk 883 is bad, skip to erase
[22.696]blk 884 is bad, skip to erase
[22.700]blk 885 is bad, skip to erase
[22.703]blk 886 is bad, skip to erase
[22.706]blk 887 is bad, skip to erase
[22.710]blk 888 is bad, skip to erase
[22.713]blk 889 is bad, skip to erase
[22.717]blk 890 is bad, skip to erase
[22.720]blk 891 is bad, skip to erase
[22.723]blk 892 is bad, skip to erase
[22.727]blk 893 is bad, skip to erase
[22.730]blk 894 is bad, skip to erase
[22.733]blk 895 is bad, skip to erase
[22.737]blk 896 is bad, skip to erase
[22.740]blk 897 is bad, skip to erase
[22.744]blk 898 is bad, skip to erase
[22.747]blk 899 is bad, skip to erase
[22.750]blk 900 is bad, skip to erase
[22.754]blk 901 is bad, skip to erase
[22.757]blk 902 is bad, skip to erase
[22.761]blk 903 is bad, skip to erase
[22.764]blk 904 is bad, skip to erase
[22.767]blk 905 is bad, skip to erase
[22.771]blk 906 is bad, skip to erase
[22.774]blk 907 is bad, skip to erase
[22.777]blk 908 is bad, skip to erase
[22.781]blk 909 is bad, skip to erase
[22.784]blk 910 is bad, skip to erase
[22.788]blk 911 is bad, skip to erase
[22.791]blk 912 is bad, skip to erase
[22.794]blk 913 is bad, skip to erase
[22.798]blk 914 is bad, skip to erase
[22.801]blk 915 is bad, skip to erase
[22.804]blk 916 is bad, skip to erase
[22.808]blk 917 is bad, skip to erase
[22.811]blk 918 is bad, skip to erase
[22.815]blk 919 is bad, skip to erase
[22.818]blk 920 is bad, skip to erase
[22.821]blk 921 is bad, skip to erase
[22.825]blk 922 is bad, skip to erase
[22.828]blk 923 is bad, skip to erase
[22.831]blk 924 is bad, skip to erase
[22.835]blk 925 is bad, skip to erase
[22.838]blk 926 is bad, skip to erase
[22.842]blk 927 is bad, skip to erase
[22.845]blk 928 is bad, skip to erase
[22.848]blk 929 is bad, skip to erase
[22.852]blk 930 is bad, skip to erase
[22.855]blk 931 is bad, skip to erase
[22.858]blk 932 is bad, skip to erase
[22.862]blk 933 is bad, skip to erase
[22.865]blk 934 is bad, skip to erase
[22.869]blk 935 is bad, skip to erase
[22.872]blk 936 is bad, skip to erase
[22.875]blk 937 is bad, skip to erase
[22.879]blk 938 is bad, skip to erase
[22.882]blk 939 is bad, skip to erase
[22.886]blk 940 is bad, skip to erase
[22.889]blk 941 is bad, skip to erase
[22.892]blk 942 is bad, skip to erase
[22.896]blk 943 is bad, skip to erase
[22.899]blk 944 is bad, skip to erase
[22.902]blk 945 is bad, skip to erase
[22.906]blk 946 is bad, skip to erase
[22.909]blk 947 is bad, skip to erase
[22.913]blk 948 is bad, skip to erase
[22.916]blk 949 is bad, skip to erase
[22.919]blk 950 is bad, skip to erase
[22.923]blk 951 is bad, skip to erase
[22.926]blk 952 is bad, skip to erase
[22.930]blk 953 is bad, skip to erase
[22.933]blk 954 is bad, skip to erase
[22.936]blk 955 is bad, skip to erase
[22.940]blk 956 is bad, skip to erase
[22.943]blk 957 is bad, skip to erase
[22.946]blk 958 is bad, skip to erase
[22.950]blk 959 is bad, skip to erase
[22.953]blk 960 is bad, skip to erase
[22.957]blk 961 is bad, skip to erase
[22.960]blk 962 is bad, skip to erase
[22.963]blk 963 is bad, skip to erase
[22.967]blk 964 is bad, skip to erase
[22.970]blk 965 is bad, skip to erase
[22.973]blk 966 is bad, skip to erase
[22.977]blk 967 is bad, skip to erase
[22.980]blk 968 is bad, skip to erase
[22.984]blk 969 is bad, skip to erase
[22.987]blk 970 is bad, skip to erase
[22.990]blk 971 is bad, skip to erase
[22.994]blk 972 is bad, skip to erase
[22.997]blk 973 is bad, skip to erase
[23.000]blk 974 is bad, skip to erase
[23.004]blk 975 is bad, skip to erase
[23.007]blk 976 is bad, skip to erase
[23.011]blk 977 is bad, skip to erase
[23.014]blk 978 is bad, skip to erase
[23.017]blk 979 is bad, skip to erase
[23.021]blk 980 is bad, skip to erase
[23.024]blk 981 is bad, skip to erase
[23.027]blk 982 is bad, skip to erase
[23.031]blk 983 is bad, skip to erase
[23.034]blk 984 is bad, skip to erase
[23.038]blk 985 is bad, skip to erase
[23.041]blk 986 is bad, skip to erase
[23.044]blk 987 is bad, skip to erase
[23.048]blk 988 is bad, skip to erase
[23.051]blk 989 is bad, skip to erase
[23.055]blk 990 is bad, skip to erase
[23.058]blk 991 is bad, skip to erase
[23.061]blk 992 is bad, skip to erase
[23.065]blk 993 is bad, skip to erase
[23.068]blk 994 is bad, skip to erase
[23.071]blk 995 is bad, skip to erase
[23.075]blk 996 is bad, skip to erase
[23.078]blk 997 is bad, skip to erase
[23.082]blk 998 is bad, skip to erase
[23.085]blk 999 is bad, skip to erase
[23.088]blk 1000 is bad, skip to erase
[23.092]blk 1001 is bad, skip to erase
[23.095]blk 1002 is bad, skip to erase
[23.099]blk 1003 is bad, skip to erase
[23.102]blk 1004 is bad, skip to erase
[23.106]blk 1005 is bad, skip to erase
[23.109]blk 1006 is bad, skip to erase
[23.113]blk 1007 is bad, skip to erase
[23.116]blk 1008 is bad, skip to erase
[23.120]blk 1009 is bad, skip to erase
[23.123]blk 1010 is bad, skip to erase
[23.127]blk 1011 is bad, skip to erase
[23.130]blk 1012 is bad, skip to erase
[23.133]blk 1013 is bad, skip to erase
[23.137]blk 1014 is bad, skip to erase
[23.140]blk 1015 is bad, skip to erase
[23.144]blk 1016 is bad, skip to erase
[23.147]blk 1017 is bad, skip to erase
[23.151]blk 1018 is bad, skip to erase
[23.154]blk 1019 is bad, skip to erase
[23.158]blk 1020 is bad, skip to erase
[23.161]blk 1021 is bad, skip to erase
[23.165]blk 1022 is bad, skip to erase
[23.168]blk 1023 is bad, skip to erase
[23.172]sunxi-spinand: no enough good blk between [40 40) for secure storage
[23.178]get secure storage map err
[23.182]sunxi-spinand: no enough good blk between [40 40) for secure storage
[23.188]erase secure storage block 0 err
SUNXI_EFEX_MBR_TAG
mbr size = 0x10000
force mbr

device nand0 &lt;nand&gt;, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[23.243]MTD info (4)
[23.245]pagesize: 0x1000
[23.247]blksize: 0x40000
[23.249]num  offset     bytes      name
[23.253]0    0x00000000 0x00100000 boot0
[23.256]1    0x00100000 0x00300000 uboot
[23.260]2    0x00400000 0x00100000 secure_storage
[23.265]3    0x00500000 0x07b00000 sys
[23.268]MBR info (unalign):
[23.271]partno   addr       sects      type       name
[23.275]0        0x00000000 0x00008000 0x00000001 mbr
[23.280]1        0x00008000 0x000001f8 0x00008000 boot-resource
[23.286]2        0x000081f8 0x000001f8 0x00008000 env
[23.291]3        0x000083f0 0x000001f8 0x00008000 env-redund
[23.296]4        0x000085e8 0x00005000 0x00008000 boot
[23.301]5        0x0000d5e8 0x0000be00 0x00008000 rootfs
[23.306]6        0x000193e8 0x00005780 0x00008000 recovery
[23.311]7        0x0001eb68 0x00002800 0x00008000 rootfs_data
[23.316]8        0x00021368 0x00000000 0x00000000 UDISK
[23.321]ubi attach the last part of mtd device: NO.3
[23.326]MBR info (align):
[23.328]partno   addr       sects      type       name
[23.333]0        0x00002800 0x000081f0 0x00000001 mbr
[23.338]1        0x0000a9f0 0x000001f8 0x00008000 boot-resource
[23.344]2        0x0000abe8 0x000001f8 0x00008000 env
[23.348]3        0x0000ade0 0x000001f8 0x00008000 env-redund
[23.354]4        0x0000afd8 0x000050b8 0x00008000 boot
[23.359]5        0x00010090 0x0000bef8 0x00008000 rootfs
[23.364]6        0x0001bf88 0x00005898 0x00008000 recovery
[23.369]7        0x00021820 0x00002958 0x00008000 rootfs_data
[23.374]8        0x00024178 0x00000000 0x00000000 UDISK
[23.379]ubi attach the last part of mtd device: NO.3
[23.384]ubi attatch mtd, name: sys

[23.387]ubi0: attaching mtd4
[23.401]ubi0: scanning is finished
[23.404]ubi0: empty MTD device detected
[23.410]ubi0 error: ubi_early_get_peb: no free eraseblocks
[23.415]ubi0 error: ubi_attach_mtd_dev: failed to attach mtd4, error -28
[23.422]UBI error: cannot attach mtd4
[23.425]UBI error: cannot initialize UBI, error -28
UBI init error 28
Please check, if the correct MTD partition is used (size big enough?)
[23.438]ubi part sys err !
[23.440]initialize sunxi spinand ubi failed
download_standard_gpt:write mbr sectors fail ret = 0
</code></pre>
<p dir="auto">检测到了 <em><strong>GD5F1GQ4UBYIG</strong></em>，然而还是不行：</p>
<pre><code>[12.523]sunxi-spinand-phy: detect munufacture from id table: GD
[12.529]sunxi-spinand-phy: detect spinand id: ffffd1c8 ffffffff
[12.534]sunxi-spinand-phy: ========== arch info ==========
[12.540]sunxi-spinand-phy: Model:               GD5F1GQ4UBYIG
[12.545]sunxi-spinand-phy: Munufacture:         GD
[12.550]sunxi-spinand-phy: DieCntPerChip:       1
[12.554]sunxi-spinand-phy: BlkCntPerDie:        1024
[12.559]sunxi-spinand-phy: PageCntPerBlk:       64
[12.563]sunxi-spinand-phy: SectCntPerPage:      4
[12.568]sunxi-spinand-phy: OobSizePerPage:      64
[12.572]sunxi-spinand-phy: BadBlockFlag:        0x0
[12.577]sunxi-spinand-phy: OperationOpt:        0x7
[12.581]sunxi-spinand-phy: MaxEraseTimes:       50000
[12.586]sunxi-spinand-phy: EccFlag:             0x1
[12.591]sunxi-spinand-phy: EccType:             7
[12.595]sunxi-spinand-phy: EccProtectedType:    4
[12.600]sunxi-spinand-phy: ========================================
[12.606]sunxi-spinand-phy:
[12.608]sunxi-spinand-phy: ========== physical info ==========
[12.614]sunxi-spinand-phy: TotalSize:    128 M
[12.618]sunxi-spinand-phy: SectorSize:   512 B
[12.622]sunxi-spinand-phy: PageSize:     2 K
[12.626]sunxi-spinand-phy: BlockSize:    128 K
[12.630]sunxi-spinand-phy: OOBSize:      64 B
[12.634]sunxi-spinand-phy: ========================================
[12.640]sunxi-spinand-phy:
[12.643]sunxi-spinand-phy: ========== logical info ==========
[12.648]sunxi-spinand-phy: TotalSize:    128 M
[12.652]sunxi-spinand-phy: SectorSize:   512 B
[12.656]sunxi-spinand-phy: PageSize:     4 K
[12.660]sunxi-spinand-phy: BlockSize:    256 K
[12.665]sunxi-spinand-phy: OOBSize:      128 B
[12.669]sunxi-spinand-phy: ========================================
[12.685]sunxi-spinand-phy: set spic0 clk to 100 Mhz
[12.690]sunxi-spinand-phy: block lock register: 0x80
[12.694]sunxi-spinand-phy: feature register: 0x08
[12.699]sunxi-spinand-phy: sunxi physic nand init end
[12.709]Loading Environment from SUNXI_FLASH... OK
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1648385169330-17d5e76a-e4f7-4668-91bb-14900b2906ff-image.png" alt="17d5e76a-e4f7-4668-91bb-14900b2906ff-image.png" class=" img-responsive img-markdown" width="634" height="217" /></p>
]]></description><link>https://bbs.aw-ol.com/post/5435</link><guid isPermaLink="true">https://bbs.aw-ol.com/post/5435</guid><dc:creator><![CDATA[tigger]]></dc:creator><pubDate>Sun, 27 Mar 2022 12:46:11 GMT</pubDate></item><item><title><![CDATA[Reply to 突然发现 D1 &#x2F; D1s 不支持 GD5F1GQ4UAYIG on Sun, 27 Mar 2022 12:04:56 GMT]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/1648382629664-e4df52a6-f107-45c9-89d5-7b27d89f540c-df7adf65f4f19498f2c22501498bb06.jpg" alt="e4df52a6-f107-45c9-89d5-7b27d89f540c-df7adf65f4f19498f2c22501498bb06.jpg" class=" img-responsive img-markdown" width="1139" height="2153" /></p>
<p dir="auto">家里垃圾堆翻出一片新的 <em><strong>GD5F1GQ4UBYIG</strong></em>，刚好支持，我焊上去试一试。</p>
]]></description><link>https://bbs.aw-ol.com/post/5434</link><guid isPermaLink="true">https://bbs.aw-ol.com/post/5434</guid><dc:creator><![CDATA[tigger]]></dc:creator><pubDate>Sun, 27 Mar 2022 12:04:56 GMT</pubDate></item><item><title><![CDATA[Reply to 突然发现 D1 &#x2F; D1s 不支持 GD5F1GQ4UAYIG on Sun, 27 Mar 2022 12:00:38 GMT]]></title><description><![CDATA[<p dir="auto">在 <em><strong>lichee/brandy-2.0/u-boot-2018/drivers/mtd/awnand/spinand/physic/id.c</strong></em> 添加了  <em><strong>GD5F1GQ4UAYIG</strong></em> 配置：</p>
<pre><code>struct aw_spinand_phy_info gigadevice[] =
{
        {
                .Model          = "GD5F1GQ4UAYIG",
                .NandID         = {0xc8, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ,
                .MaxEraseTimes  = 50000,
                .EccFlag        = HAS_EXT_ECC_SE01,
                .EccType        = BIT4_LIMIT5_TO_7_ERR8_LIMIT_12,
                .EccProtectedType = SIZE16_OFF4_LEN8_OFF4,
                .BadBlockFlag   = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
        {
                .Model          = "GD5F1GQ4UCYIG",
                .NandID         = {0xc8, 0xb1, 0x48, 0xff, 0xff, 0xff, 0xff, 0xff},
                .DieCntPerChip  = 1,
                .SectCntPerPage = 4,
                .PageCntPerBlk  = 64,
                .BlkCntPerDie   = 1024,
                .OobSizePerPage = 64,
                .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM |
                        SPINAND_DUAL_READ | SPINAND_ONEDUMMY_AFTER_RANDOMREAD,
                .MaxEraseTimes  = 50000,
                .EccType        = BIT3_LIMIT2_TO_6_ERR7,
                .EccProtectedType = SIZE16_OFF0_LEN16,
                .BadBlockFlag   = BAD_BLK_FLAG_FRIST_1_PAGE,
        },
</code></pre>
<p dir="auto">发现并没有用：</p>
<pre><code>[5342]fes begin commit:88480af
[5344]set pll start
[5346]fix vccio detect value:0xc0
[5350]periph0 has been enabled
[5353]set pll end
[5354][pmu]: bus read error
[5357]board init ok
[5359]beign to init dram
[5361]ZQ value = 0x32
[5363]get_pmu_exist() = -1
[5366]ddr_efuse_type: 0xa
[5368]trefi:7.8ms
[5370][AUTO DEBUG] single rank and full DQ!
[5374]ddr_efuse_type: 0xa
[5376]trefi:7.8ms
[5379][AUTO DEBUG] rank 0 row = 13
[5382][AUTO DEBUG] rank 0 bank = 4
[5385][AUTO DEBUG] rank 0 page size = 2 KB
[5389]DRAM BOOT DRIVE INFO: V0.33
[5392]DRAM CLK = 528 MHz
[5394]DRAM Type = 2 (2:DDR2,3:DDR3)
[5398]DRAMC read ODT  off.
[5400]DRAM ODT off.
[5402]ddr_efuse_type: 0xa
[5405]DRAM SIZE =64 M
[5407]dram_tpr4:0x0
[5409]PLL_DDR_CTRL_REG:0xf8002b00
[5412]DRAM_CLK_REG:0xc0000000
[5415][TIMING DEBUG] MR2= 0x0
[5419]DRAM simple test OK.
[5422]init dram ok


U-Boot 2018.05-g24521d6-dirty (Mar 27 2022 - 14:01:37 +0800) Allwinner Technology

[13.663]DRAM:  64 MiB
[13.668]Relocation Offset is: 01ee7000
[13.693]secure enable bit: 0
[13.700]CPU=720 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
[13.706]flash init start
[13.708]workmode = 16,storage type = 0
try card 2
set card number 2
get card number 2
[13.716][mmc]: mmc driver ver uboot2018:2021-11-19 15:38:00
[13.726][mmc]: get sdc_type fail and use default host:tm4.
[13.758][mmc]: Is not Boot mode!
[13.761][mmc]: SUNXI SDMMC Controller Version:0x50310
[13.772][mmc]: ************Try SD card 2************
[13.778][mmc]: mmc 2 cmd timeout 100 status 100
[13.782][mmc]: smc 2 err, cmd 8,  RTO
[13.785][mmc]: mmc 2 close bus gating and reset
[13.790][mmc]: mmc 2 cmd timeout 100 status 100
[13.794][mmc]: smc 2 err, cmd 55,  RTO
[13.798][mmc]: mmc 2 close bus gating and reset
[13.802][mmc]: ************Try MMC card 2************
[13.811][mmc]: mmc 2 cmd timeout 100 status 100
[13.815][mmc]: smc 2 err, cmd 1,  RTO
[13.819][mmc]: mmc 2 close bus gating and reset
[13.823][mmc]: Card did not respond to voltage select!
[13.828][mmc]: ************SD/MMC 2 init error!************
[13.833][mmc]: mmc init product failed
MMC init failed
try emmc fail
[13.850]sunxi-spinand: AW SPINand MTD Layer Version: 1.5 20200407
[13.855]sunxi-spinand-phy: AW SPINand Phy Layer Version: 1.9 20200306
[13.920]sunxi-spinand-phy: request spi0 gpio ok
[13.924]sunxi-spinand-phy: request general tx dma channel ok!
[13.930]sunxi-spinand-phy: request general rx dma channel ok!
[13.935]sunxi-spinand-phy: set spic0 clk to 20 Mhz
[13.940]sunxi-spinand-phy: init spic0 clk ok
sspi-&gt;base_addr = 0x4025000, the SPI control register:
[VER] 0x4025000 = 0x00010001, [GCR] 0x4025004 = 0x00000083, [TCR] 0x4025008 = 0x00000184
[ICR] 0x4025010 = 0x00000f00, [ISR] 0x4025014 = 0x00000032, [FCR] 0x4025018 = 0x00200020
[FSR] 0x402501c = 0x00000000, [WCR] 0x4025020 = 0x00000000, [CCR] 0x4025024 = 0x00000002
[SDC] 0x4025028 = 0x00002000, [BCR] 0x4025030 = 0x00000000, [TCR] 0x4025034 = 0x00000000
[BCC] 0x4025038 = 0x00000000, [DMA] 0x4025088 = 0x000000e5

[13.986]sunxi-spinand-phy: not detect any munufacture from id table
[14.002]sunxi-spinand-phy: get spi-nand Model from fdt fail
[14.007]sunxi-spinand-phy: get phy info from fdt fail
[14.012]sunxi-spinand-phy: not detect munufacture from fdt
[14.017]sunxi-spinand-phy: detect munufacture from id table: GD
[14.023]sunxi-spinand-phy: detect spinand id: fffff1c8 ffffffff
[14.028]sunxi-spinand-phy: ========== arch info ==========
[14.033]sunxi-spinand-phy: Model:               GD5F1GQ4UAYIG
[14.039]sunxi-spinand-phy: Munufacture:         GD
[14.043]sunxi-spinand-phy: DieCntPerChip:       1
[14.048]sunxi-spinand-phy: BlkCntPerDie:        1024
[14.053]sunxi-spinand-phy: PageCntPerBlk:       64
[14.057]sunxi-spinand-phy: SectCntPerPage:      4
[14.061]sunxi-spinand-phy: OobSizePerPage:      64
[14.066]sunxi-spinand-phy: BadBlockFlag:        0x0
[14.071]sunxi-spinand-phy: OperationOpt:        0x7
[14.075]sunxi-spinand-phy: MaxEraseTimes:       50000
[14.080]sunxi-spinand-phy: EccFlag:             0x1
[14.084]sunxi-spinand-phy: EccType:             7
[14.089]sunxi-spinand-phy: EccProtectedType:    4
[14.093]sunxi-spinand-phy: ========================================
[14.099]sunxi-spinand-phy:
[14.102]sunxi-spinand-phy: ========== physical info ==========
[14.107]sunxi-spinand-phy: TotalSize:    128 M
[14.112]sunxi-spinand-phy: SectorSize:   512 B
[14.116]sunxi-spinand-phy: PageSize:     2 K
[14.120]sunxi-spinand-phy: BlockSize:    128 K
[14.124]sunxi-spinand-phy: OOBSize:      64 B
[14.128]sunxi-spinand-phy: ========================================
[14.134]sunxi-spinand-phy:
[14.136]sunxi-spinand-phy: ========== logical info ==========
[14.142]sunxi-spinand-phy: TotalSize:    128 M
[14.146]sunxi-spinand-phy: SectorSize:   512 B
[14.150]sunxi-spinand-phy: PageSize:     4 K
[14.154]sunxi-spinand-phy: BlockSize:    256 K
[14.158]sunxi-spinand-phy: OOBSize:      128 B
[14.162]sunxi-spinand-phy: ========================================
[14.179]sunxi-spinand-phy: set spic0 clk to 100 Mhz
[14.183]sunxi-spinand-phy: block lock register: 0x80
[14.188]sunxi-spinand-phy: feature register: 0x08
[14.193]sunxi-spinand-phy: sunxi physic nand init end
[14.203]Loading Environment from SUNXI_FLASH... OK
[14.217]try to burn key
[14.220]out of usb burn from boot: not need burn key
[14.225]Net:   [14.226]No ethernet found.
Hit any key to stop autoboot:  0
sunxi work mode=0x10
run usb efex
delay time 2500
weak:otg_phy_config
usb init ok
set address 0x18
set address 0x18 ok
SUNXI_EFEX_ERASE_TAG
erase_flag = 0x12
origin_erase_flag = 0x1
FEX_CMD_fes_verify_status
FEX_CMD_fes_verify last err=0
the 0 mbr table is ok
the 1 mbr table is ok
the 2 mbr table is ok
the 3 mbr table is ok
*************MBR DUMP***************
total mbr part 8

part[0] name      :boot-resource
part[0] classname :DISK
part[0] addrlo    :0x8000
part[0] lenlo     :0x1f8
part[0] user_type :32768
part[0] keydata   :0
part[0] ro        :0

part[1] name      :env
part[1] classname :DISK
part[1] addrlo    :0x81f8
part[1] lenlo     :0x1f8
part[1] user_type :32768
part[1] keydata   :0
part[1] ro        :0

part[2] name      :env-redund
part[2] classname :DISK
part[2] addrlo    :0x83f0
part[2] lenlo     :0x1f8
part[2] user_type :32768
part[2] keydata   :0
part[2] ro        :0

part[3] name      :boot
part[3] classname :DISK
part[3] addrlo    :0x85e8
part[3] lenlo     :0x5000
part[3] user_type :32768
part[3] keydata   :0
part[3] ro        :0

part[4] name      :rootfs
part[4] classname :DISK
part[4] addrlo    :0xd5e8
part[4] lenlo     :0xbe00
part[4] user_type :32768
part[4] keydata   :0
part[4] ro        :0

part[5] name      :recovery
part[5] classname :DISK
part[5] addrlo    :0x193e8
part[5] lenlo     :0x5780
part[5] user_type :32768
part[5] keydata   :0
part[5] ro        :0

part[6] name      :rootfs_data
part[6] classname :DISK
part[6] addrlo    :0x1eb68
part[6] lenlo     :0x2800
part[6] user_type :32768
part[6] keydata   :0
part[6] ro        :0

part[7] name      :UDISK
part[7] classname :DISK
part[7] addrlo    :0x21368
part[7] lenlo     :0x0
part[7] user_type :0
part[7] keydata   :0
part[7] ro        :0

common1(partition3) need it, here is a weak func
total part: 9
mbr 0, 8000, 8000
boot-resource 1, 1f8, 8000
env 2, 1f8, 8000
env-redund 3, 1f8, 8000
boot 4, 5000, 8000
rootfs 5, be00, 8000
recovery 6, 5780, 8000
rootfs_data 7, 2800, 8000
UDISK 8, 0, 0
[20.527]erase blk 0 to blk 32
[20.530]blk 0 is bad, skip to erase
[20.533]blk 1 is bad, skip to erase
[20.536]blk 2 is bad, skip to erase
[20.540]blk 3 is bad, skip to erase
[20.543]blk 4 is bad, skip to erase
[20.546]blk 5 is bad, skip to erase
[20.549]blk 6 is bad, skip to erase
[20.552]blk 7 is bad, skip to erase
[20.556]blk 8 is bad, skip to erase
[20.559]blk 9 is bad, skip to erase
[20.562]blk 10 is bad, skip to erase
[20.565]blk 11 is bad, skip to erase
[20.569]blk 12 is bad, skip to erase
[20.572]blk 13 is bad, skip to erase
[20.575]blk 14 is bad, skip to erase
[20.579]blk 15 is bad, skip to erase
[20.582]blk 16 is bad, skip to erase
[20.585]blk 17 is bad, skip to erase
[20.588]blk 18 is bad, skip to erase
[20.592]blk 19 is bad, skip to erase
[20.595]blk 20 is bad, skip to erase
[20.598]blk 21 is bad, skip to erase
[20.602]blk 22 is bad, skip to erase
[20.605]blk 23 is bad, skip to erase
[20.608]blk 24 is bad, skip to erase
[20.611]blk 25 is bad, skip to erase
[20.615]blk 26 is bad, skip to erase
[20.618]blk 27 is bad, skip to erase
[20.621]blk 28 is bad, skip to erase
[20.625]blk 29 is bad, skip to erase
[20.628]blk 30 is bad, skip to erase
[20.631]blk 31 is bad, skip to erase
need erase flash: 18
[20.638]mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)

device nand0 &lt;nand&gt;, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[20.698]MTD info (4)
[20.700]pagesize: 0x1000
[20.702]blksize: 0x40000
[20.704]num  offset     bytes      name
[20.708]0    0x00000000 0x00100000 boot0
[20.712]1    0x00100000 0x00300000 uboot
[20.715]2    0x00400000 0x00100000 secure_storage
[20.720]3    0x00500000 0x07b00000 sys
[20.723]ubi attach the last part of mtd device: NO.3
[20.787]ubi0: attaching mtd4
[20.802]ubi0 warning: scan_peb: bad ec header at pnum 491, drop this block

[20.809]ubi0: scanning is finished
[20.812]ubi0: empty MTD device detected
[20.819]sunxi-spinand: [SPINAND]: erase block 511 in addr 0x7fc0000 failed: -5
[20.826]ubi0 warning: do_sync_erase: error -5 while erasing PEB 491, retry
[20.838]sunxi-spinand: [SPINAND]: write single page failed: block 511, page 2, ret -5
[20.846]ubi0 error: ubi_io_write: error -5 while writing 24576 bytes to PEB 491:4096, written 4096 bytes
[20.857]ubi0: dumping 24576 bytes of data from PEB 491, offset 4096
[20.865]sunxi-spinand: [SPINAND]: erase block 511 in addr 0x7fc0000 failed: -5
[20.871]ubi0 warning: do_sync_erase: error -5 while erasing PEB 491, retry
[20.879]sunxi-spinand: [SPINAND]: erase block 511 in addr 0x7fc0000 failed: -5
[20.886]ubi0 warning: do_sync_erase: error -5 while erasing PEB 491, retry
[20.894]sunxi-spinand: [SPINAND]: erase block 511 in addr 0x7fc0000 failed: -5
[20.901]ubi0 warning: do_sync_erase: error -5 while erasing PEB 491, retry
[20.909]sunxi-spinand: [SPINAND]: erase block 511 in addr 0x7fc0000 failed: -5
[20.916]ubi0 error: do_sync_erase: cannot erase PEB 491, error -5
[20.922]ubi0 error: ubi_early_get_peb: no free eraseblocks
[20.927]ubi0 error: ubi_attach_mtd_dev: failed to attach mtd4, error -28
[20.934]UBI error: cannot attach mtd4
[20.937]UBI error: cannot initialize UBI, error -28
UBI init error 28
Please check, if the correct MTD partition is used (size big enough?)
[20.949]ubi part sys err !
[20.952]erase blk 0 to blk 32
[20.955]blk 0 is bad, skip to erase
[20.958]blk 1 is bad, skip to erase
[20.961]blk 2 is bad, skip to erase
[20.964]blk 3 is bad, skip to erase
[20.967]blk 4 is bad, skip to erase
[20.971]blk 5 is bad, skip to erase
[20.974]blk 6 is bad, skip to erase
[20.977]blk 7 is bad, skip to erase
[20.980]blk 8 is bad, skip to erase
[20.983]blk 9 is bad, skip to erase
[20.987]blk 10 is bad, skip to erase
[20.990]blk 11 is bad, skip to erase
[20.993]blk 12 is bad, skip to erase
[20.997]blk 13 is bad, skip to erase
[21.000]blk 14 is bad, skip to erase
[21.003]blk 15 is bad, skip to erase
[21.006]blk 16 is bad, skip to erase
[21.010]blk 17 is bad, skip to erase
[21.013]blk 18 is bad, skip to erase
[21.016]blk 19 is bad, skip to erase
[21.020]blk 20 is bad, skip to erase
[21.023]blk 21 is bad, skip to erase
[21.026]blk 22 is bad, skip to erase
[21.029]blk 23 is bad, skip to erase
[21.033]blk 24 is bad, skip to erase
[21.036]blk 25 is bad, skip to erase
[21.039]blk 26 is bad, skip to erase
[21.043]blk 27 is bad, skip to erase
[21.046]blk 28 is bad, skip to erase
[21.049]blk 29 is bad, skip to erase
[21.053]blk 30 is bad, skip to erase
[21.056]blk 31 is bad, skip to erase
[21.059]erase blk 40 to blk 1024
[21.062]blk 40 is bad, skip to erase
[21.065]blk 41 is bad, skip to erase
[21.070]erase blk 42 failed with -5 back
[21.075]sunxi-spinand-phy: erase phy blk 42 failed with -5 back
[21.082]blk 43 is bad, skip to erase
[21.085]blk 44 is bad, skip to erase
[21.089]blk 45 is bad, skip to erase
[21.093]blk 47 is bad, skip to erase
[21.098]blk 49 is bad, skip to erase
[21.101]blk 50 is bad, skip to erase
[21.104]blk 51 is bad, skip to erase
[21.107]blk 52 is bad, skip to erase
[21.111]blk 53 is bad, skip to erase
[21.115]blk 55 is bad, skip to erase
[21.120]blk 57 is bad, skip to erase
[21.124]blk 59 is bad, skip to erase
[21.129]blk 61 is bad, skip to erase
[21.134]blk 63 is bad, skip to erase
[21.137]blk 64 is bad, skip to erase
[21.140]blk 65 is bad, skip to erase
[21.145]blk 67 is bad, skip to erase
[21.149]blk 69 is bad, skip to erase
[21.152]blk 70 is bad, skip to erase
[21.156]blk 71 is bad, skip to erase
[21.160]blk 73 is bad, skip to erase
[21.165]blk 75 is bad, skip to erase
[21.168]blk 76 is bad, skip to erase
[21.171]blk 77 is bad, skip to erase
[21.176]blk 79 is bad, skip to erase
[21.179]blk 80 is bad, skip to erase
[21.182]blk 81 is bad, skip to erase
[21.187]blk 83 is bad, skip to erase
[21.190]blk 84 is bad, skip to erase
[21.194]blk 85 is bad, skip to erase
[21.198]blk 87 is bad, skip to erase
[21.201]blk 88 is bad, skip to erase
[21.205]blk 89 is bad, skip to erase
[21.209]blk 91 is bad, skip to erase
[21.214]blk 93 is bad, skip to erase
[21.217]blk 94 is bad, skip to erase
[21.220]blk 95 is bad, skip to erase
[21.225]blk 97 is bad, skip to erase
[21.229]blk 99 is bad, skip to erase
[21.234]blk 101 is bad, skip to erase
[21.238]blk 103 is bad, skip to erase
[21.243]blk 105 is bad, skip to erase
[21.248]blk 107 is bad, skip to erase
[21.252]blk 109 is bad, skip to erase
[21.257]blk 111 is bad, skip to erase
[21.262]blk 113 is bad, skip to erase
[21.266]blk 115 is bad, skip to erase
[21.269]blk 116 is bad, skip to erase
[21.273]blk 117 is bad, skip to erase
[21.278]blk 119 is bad, skip to erase
[21.281]blk 120 is bad, skip to erase
[21.284]blk 121 is bad, skip to erase
[21.289]blk 123 is bad, skip to erase
[21.292]blk 124 is bad, skip to erase
[21.296]blk 125 is bad, skip to erase
[21.300]blk 127 is bad, skip to erase
[21.304]blk 128 is bad, skip to erase
[21.307]blk 129 is bad, skip to erase
[21.312]blk 131 is bad, skip to erase
[21.316]blk 133 is bad, skip to erase
[21.319]blk 134 is bad, skip to erase
[21.323]blk 135 is bad, skip to erase
[21.328]blk 137 is bad, skip to erase
[21.331]blk 138 is bad, skip to erase
[21.334]blk 139 is bad, skip to erase
[21.339]blk 141 is bad, skip to erase
[21.342]blk 142 is bad, skip to erase
[21.346]blk 143 is bad, skip to erase
[21.350]blk 145 is bad, skip to erase
[21.355]blk 147 is bad, skip to erase
[21.360]blk 149 is bad, skip to erase
[21.364]blk 151 is bad, skip to erase
[21.369]blk 153 is bad, skip to erase
[21.372]blk 154 is bad, skip to erase
[21.375]blk 155 is bad, skip to erase
[21.380]blk 157 is bad, skip to erase
[21.385]blk 159 is bad, skip to erase
[21.389]blk 161 is bad, skip to erase
[21.393]blk 162 is bad, skip to erase
[21.396]blk 163 is bad, skip to erase
[21.401]blk 165 is bad, skip to erase
[21.405]blk 167 is bad, skip to erase
[21.409]blk 168 is bad, skip to erase
[21.412]blk 169 is bad, skip to erase
[21.415]blk 170 is bad, skip to erase
[21.419]blk 171 is bad, skip to erase
[21.423]blk 173 is bad, skip to erase
[21.428]blk 175 is bad, skip to erase
[21.431]blk 176 is bad, skip to erase
[21.435]blk 177 is bad, skip to erase
[21.439]blk 179 is bad, skip to erase
[21.444]blk 181 is bad, skip to erase
[21.449]blk 183 is bad, skip to erase
[21.453]blk 185 is bad, skip to erase
[21.457]blk 186 is bad, skip to erase
[21.460]blk 187 is bad, skip to erase
[21.465]blk 189 is bad, skip to erase
[21.469]blk 191 is bad, skip to erase
[21.474]blk 193 is bad, skip to erase
[21.479]blk 195 is bad, skip to erase
[21.483]blk 197 is bad, skip to erase
[21.488]blk 199 is bad, skip to erase
[21.492]blk 201 is bad, skip to erase
[21.497]blk 203 is bad, skip to erase
[21.502]blk 205 is bad, skip to erase
[21.506]blk 207 is bad, skip to erase
[21.511]blk 209 is bad, skip to erase
[21.514]blk 210 is bad, skip to erase
[21.517]blk 211 is bad, skip to erase
[21.522]blk 213 is bad, skip to erase
[21.527]blk 215 is bad, skip to erase
[21.531]blk 217 is bad, skip to erase
[21.536]blk 219 is bad, skip to erase
[21.541]blk 221 is bad, skip to erase
[21.545]blk 223 is bad, skip to erase
[21.550]blk 225 is bad, skip to erase
[21.554]blk 227 is bad, skip to erase
[21.559]blk 229 is bad, skip to erase
[21.564]blk 231 is bad, skip to erase
[21.568]blk 233 is bad, skip to erase
[21.572]blk 234 is bad, skip to erase
[21.575]blk 235 is bad, skip to erase
[21.580]blk 237 is bad, skip to erase
[21.584]blk 239 is bad, skip to erase
[21.589]blk 241 is bad, skip to erase
[21.593]blk 243 is bad, skip to erase
[21.598]blk 245 is bad, skip to erase
[21.603]blk 247 is bad, skip to erase
[21.607]blk 249 is bad, skip to erase
[21.612]blk 251 is bad, skip to erase
[21.615]blk 252 is bad, skip to erase
[21.619]blk 253 is bad, skip to erase
[21.623]blk 255 is bad, skip to erase
[21.627]blk 256 is bad, skip to erase
[21.630]blk 257 is bad, skip to erase
[21.633]blk 258 is bad, skip to erase
[21.637]blk 259 is bad, skip to erase
[21.641]blk 261 is bad, skip to erase
[21.645]blk 262 is bad, skip to erase
[21.648]blk 263 is bad, skip to erase
[21.651]blk 264 is bad, skip to erase
[21.655]blk 265 is bad, skip to erase
[21.660]blk 267 is bad, skip to erase
[21.663]blk 268 is bad, skip to erase
[21.666]blk 269 is bad, skip to erase
[21.671]blk 271 is bad, skip to erase
[21.675]blk 273 is bad, skip to erase
[21.680]blk 275 is bad, skip to erase
[21.685]blk 277 is bad, skip to erase
[21.688]blk 278 is bad, skip to erase
[21.691]blk 279 is bad, skip to erase
[21.696]blk 281 is bad, skip to erase
[21.701]blk 283 is bad, skip to erase
[21.705]blk 285 is bad, skip to erase
[21.709]blk 286 is bad, skip to erase
[21.712]blk 287 is bad, skip to erase
[21.717]blk 289 is bad, skip to erase
[21.720]blk 290 is bad, skip to erase
[21.723]blk 291 is bad, skip to erase
[21.728]blk 293 is bad, skip to erase
[21.731]blk 294 is bad, skip to erase
[21.735]blk 295 is bad, skip to erase
[21.738]blk 296 is bad, skip to erase
[21.742]blk 297 is bad, skip to erase
[21.746]blk 299 is bad, skip to erase
[21.751]blk 301 is bad, skip to erase
[21.754]blk 302 is bad, skip to erase
[21.757]blk 303 is bad, skip to erase
[21.762]blk 305 is bad, skip to erase
[21.767]blk 307 is bad, skip to erase
[21.770]blk 308 is bad, skip to erase
[21.773]blk 309 is bad, skip to erase
[21.778]blk 311 is bad, skip to erase
[21.783]blk 313 is bad, skip to erase
[21.786]blk 314 is bad, skip to erase
[21.789]blk 315 is bad, skip to erase
[21.794]blk 317 is bad, skip to erase
[21.797]blk 318 is bad, skip to erase
[21.801]blk 319 is bad, skip to erase
[21.805]blk 321 is bad, skip to erase
[21.810]blk 323 is bad, skip to erase
[21.815]blk 325 is bad, skip to erase
[21.818]blk 326 is bad, skip to erase
[21.821]blk 327 is bad, skip to erase
[21.826]blk 329 is bad, skip to erase
[21.831]blk 331 is bad, skip to erase
[21.835]blk 333 is bad, skip to erase
[21.840]blk 335 is bad, skip to erase
[21.843]blk 336 is bad, skip to erase
[21.847]blk 337 is bad, skip to erase
[21.851]blk 339 is bad, skip to erase
[21.856]blk 341 is bad, skip to erase
[21.860]blk 343 is bad, skip to erase
[21.864]blk 344 is bad, skip to erase
[21.867]blk 345 is bad, skip to erase
[21.872]blk 347 is bad, skip to erase
[21.875]blk 348 is bad, skip to erase
[21.879]blk 349 is bad, skip to erase
[21.883]blk 351 is bad, skip to erase
[21.887]blk 352 is bad, skip to erase
[21.890]blk 353 is bad, skip to erase
[21.895]blk 355 is bad, skip to erase
[21.899]blk 357 is bad, skip to erase
[21.904]blk 359 is bad, skip to erase
[21.907]blk 360 is bad, skip to erase
[21.911]blk 361 is bad, skip to erase
[21.914]blk 362 is bad, skip to erase
[21.917]blk 363 is bad, skip to erase
[21.922]blk 365 is bad, skip to erase
[21.927]blk 367 is bad, skip to erase
[21.931]blk 369 is bad, skip to erase
[21.936]blk 371 is bad, skip to erase
[21.940]blk 373 is bad, skip to erase
[21.944]blk 374 is bad, skip to erase
[21.947]blk 375 is bad, skip to erase
[21.952]blk 377 is bad, skip to erase
[21.956]blk 379 is bad, skip to erase
[21.960]blk 380 is bad, skip to erase
[21.963]blk 381 is bad, skip to erase
[21.968]blk 383 is bad, skip to erase
[21.971]blk 384 is bad, skip to erase
[21.974]blk 385 is bad, skip to erase
[21.979]blk 387 is bad, skip to erase
[21.984]blk 389 is bad, skip to erase
[21.987]blk 390 is bad, skip to erase
[21.990]blk 391 is bad, skip to erase
[21.995]blk 393 is bad, skip to erase
[22.000]blk 395 is bad, skip to erase
[22.003]blk 396 is bad, skip to erase
[22.006]blk 397 is bad, skip to erase
[22.011]blk 399 is bad, skip to erase
[22.014]blk 400 is bad, skip to erase
[22.018]blk 401 is bad, skip to erase
[22.022]blk 403 is bad, skip to erase
[22.026]blk 404 is bad, skip to erase
[22.029]blk 405 is bad, skip to erase
[22.034]blk 407 is bad, skip to erase
[22.038]blk 409 is bad, skip to erase
[22.042]blk 410 is bad, skip to erase
[22.045]blk 411 is bad, skip to erase
[22.048]blk 412 is bad, skip to erase
[22.052]blk 413 is bad, skip to erase
[22.055]blk 414 is bad, skip to erase
[22.059]blk 415 is bad, skip to erase
[22.063]blk 417 is bad, skip to erase
[22.068]blk 419 is bad, skip to erase
[22.073]blk 421 is bad, skip to erase
[22.077]blk 423 is bad, skip to erase
[22.080]blk 424 is bad, skip to erase
[22.084]blk 425 is bad, skip to erase
[22.089]blk 427 is bad, skip to erase
[22.093]blk 429 is bad, skip to erase
[22.098]blk 431 is bad, skip to erase
[22.101]blk 432 is bad, skip to erase
[22.104]blk 433 is bad, skip to erase
[22.109]blk 435 is bad, skip to erase
[22.114]blk 437 is bad, skip to erase
[22.118]blk 439 is bad, skip to erase
[22.122]blk 440 is bad, skip to erase
[22.125]blk 441 is bad, skip to erase
[22.130]blk 443 is bad, skip to erase
[22.134]blk 445 is bad, skip to erase
[22.138]blk 446 is bad, skip to erase
[22.141]blk 447 is bad, skip to erase
[22.146]blk 449 is bad, skip to erase
[22.150]blk 451 is bad, skip to erase
[22.155]blk 453 is bad, skip to erase
[22.160]blk 455 is bad, skip to erase
[22.164]blk 457 is bad, skip to erase
[22.167]blk 458 is bad, skip to erase
[22.171]blk 459 is bad, skip to erase
[22.175]blk 461 is bad, skip to erase
[22.180]blk 463 is bad, skip to erase
[22.183]blk 464 is bad, skip to erase
[22.187]blk 465 is bad, skip to erase
[22.191]blk 467 is bad, skip to erase
[22.195]blk 468 is bad, skip to erase
[22.198]blk 469 is bad, skip to erase
[22.203]blk 471 is bad, skip to erase
[22.206]blk 472 is bad, skip to erase
[22.210]blk 473 is bad, skip to erase
[22.213]blk 474 is bad, skip to erase
[22.216]blk 475 is bad, skip to erase
[22.220]blk 476 is bad, skip to erase
[22.223]blk 477 is bad, skip to erase
[22.228]blk 479 is bad, skip to erase
[22.231]blk 480 is bad, skip to erase
[22.234]blk 481 is bad, skip to erase
[22.239]blk 483 is bad, skip to erase
[22.244]blk 485 is bad, skip to erase
[22.248]blk 487 is bad, skip to erase
[22.252]blk 488 is bad, skip to erase
[22.255]blk 489 is bad, skip to erase
[22.258]blk 490 is bad, skip to erase
[22.262]blk 491 is bad, skip to erase
[22.266]blk 493 is bad, skip to erase
[22.270]blk 494 is bad, skip to erase
[22.273]blk 495 is bad, skip to erase
[22.278]blk 497 is bad, skip to erase
[22.281]blk 498 is bad, skip to erase
[22.285]blk 499 is bad, skip to erase
[22.288]blk 500 is bad, skip to erase
[22.291]blk 501 is bad, skip to erase
[22.296]blk 503 is bad, skip to erase
[22.301]blk 505 is bad, skip to erase
[22.304]blk 506 is bad, skip to erase
[22.307]blk 507 is bad, skip to erase
[22.311]blk 508 is bad, skip to erase
[22.314]blk 509 is bad, skip to erase
[22.319]blk 511 is bad, skip to erase
[22.322]blk 512 is bad, skip to erase
[22.325]blk 513 is bad, skip to erase
[22.330]blk 515 is bad, skip to erase
[22.335]blk 517 is bad, skip to erase
[22.339]blk 519 is bad, skip to erase
[22.344]blk 521 is bad, skip to erase
[22.349]blk 523 is bad, skip to erase
[22.353]blk 525 is bad, skip to erase
[22.358]blk 527 is bad, skip to erase
[22.361]blk 528 is bad, skip to erase
[22.364]blk 529 is bad, skip to erase
[22.369]blk 531 is bad, skip to erase
[22.374]blk 533 is bad, skip to erase
[22.378]blk 535 is bad, skip to erase
[22.383]blk 537 is bad, skip to erase
[22.388]blk 539 is bad, skip to erase
[22.392]blk 541 is bad, skip to erase
[22.397]blk 543 is bad, skip to erase
[22.401]blk 545 is bad, skip to erase
[22.405]blk 546 is bad, skip to erase
[22.408]blk 547 is bad, skip to erase
[22.413]blk 549 is bad, skip to erase
[22.417]blk 551 is bad, skip to erase
[22.421]blk 552 is bad, skip to erase
[22.424]blk 553 is bad, skip to erase
[22.429]blk 555 is bad, skip to erase
[22.432]blk 556 is bad, skip to erase
[22.435]blk 557 is bad, skip to erase
[22.440]blk 559 is bad, skip to erase
[22.443]blk 560 is bad, skip to erase
[22.447]blk 561 is bad, skip to erase
[22.450]blk 562 is bad, skip to erase
[22.454]blk 563 is bad, skip to erase
[22.457]blk 564 is bad, skip to erase
[22.460]blk 565 is bad, skip to erase
[22.465]blk 567 is bad, skip to erase
[22.468]blk 568 is bad, skip to erase
[22.472]blk 569 is bad, skip to erase
[22.476]blk 571 is bad, skip to erase
[22.480]blk 572 is bad, skip to erase
[22.483]blk 573 is bad, skip to erase
[22.488]blk 575 is bad, skip to erase
[22.491]blk 576 is bad, skip to erase
[22.494]blk 577 is bad, skip to erase
[22.499]blk 579 is bad, skip to erase
[22.504]blk 581 is bad, skip to erase
[22.508]blk 583 is bad, skip to erase
[22.513]blk 585 is bad, skip to erase
[22.518]blk 587 is bad, skip to erase
[22.521]blk 588 is bad, skip to erase
[22.524]blk 589 is bad, skip to erase
[22.529]blk 591 is bad, skip to erase
[22.534]blk 593 is bad, skip to erase
[22.538]blk 595 is bad, skip to erase
[22.543]blk 597 is bad, skip to erase
[22.546]blk 598 is bad, skip to erase
[22.549]blk 599 is bad, skip to erase
[22.554]blk 601 is bad, skip to erase
[22.559]blk 603 is bad, skip to erase
[22.562]blk 604 is bad, skip to erase
[22.565]blk 605 is bad, skip to erase
[22.570]blk 607 is bad, skip to erase
[22.573]blk 608 is bad, skip to erase
[22.577]blk 609 is bad, skip to erase
[22.581]blk 611 is bad, skip to erase
[22.585]blk 612 is bad, skip to erase
[22.588]blk 613 is bad, skip to erase
[22.593]blk 615 is bad, skip to erase
[22.596]blk 616 is bad, skip to erase
[22.600]blk 617 is bad, skip to erase
[22.604]blk 619 is bad, skip to erase
[22.609]blk 621 is bad, skip to erase
[22.612]blk 622 is bad, skip to erase
[22.615]blk 623 is bad, skip to erase
[22.620]blk 625 is bad, skip to erase
[22.623]blk 626 is bad, skip to erase
[22.627]blk 627 is bad, skip to erase
[22.632]blk 629 is bad, skip to erase
[22.636]blk 631 is bad, skip to erase
[22.641]blk 633 is bad, skip to erase
[22.644]blk 634 is bad, skip to erase
[22.647]blk 635 is bad, skip to erase
[22.652]blk 637 is bad, skip to erase
[22.657]blk 639 is bad, skip to erase
[22.660]blk 640 is bad, skip to erase
[22.663]blk 641 is bad, skip to erase
[22.668]blk 643 is bad, skip to erase
[22.673]blk 645 is bad, skip to erase
[22.676]blk 646 is bad, skip to erase
[22.679]blk 647 is bad, skip to erase
[22.684]blk 649 is bad, skip to erase
[22.689]blk 651 is bad, skip to erase
[22.693]blk 653 is bad, skip to erase
[22.697]blk 654 is bad, skip to erase
[22.700]blk 655 is bad, skip to erase
[22.705]blk 657 is bad, skip to erase
[22.709]blk 659 is bad, skip to erase
[22.714]blk 661 is bad, skip to erase
[22.719]blk 663 is bad, skip to erase
[22.723]blk 665 is bad, skip to erase
[22.726]blk 666 is bad, skip to erase
[22.730]blk 667 is bad, skip to erase
[22.734]blk 669 is bad, skip to erase
[22.739]blk 671 is bad, skip to erase
[22.742]blk 672 is bad, skip to erase
[22.746]blk 673 is bad, skip to erase
[22.750]blk 675 is bad, skip to erase
[22.754]blk 676 is bad, skip to erase
[22.757]blk 677 is bad, skip to erase
[22.762]blk 679 is bad, skip to erase
[22.765]blk 680 is bad, skip to erase
[22.769]blk 681 is bad, skip to erase
[22.773]blk 683 is bad, skip to erase
[22.776]blk 684 is bad, skip to erase
[22.780]blk 685 is bad, skip to erase
[22.785]blk 687 is bad, skip to erase
[22.788]blk 688 is bad, skip to erase
[22.791]blk 689 is bad, skip to erase
[22.796]blk 691 is bad, skip to erase
[22.799]blk 692 is bad, skip to erase
[22.803]blk 693 is bad, skip to erase
[22.806]blk 694 is bad, skip to erase
[22.809]blk 695 is bad, skip to erase
[22.814]blk 697 is bad, skip to erase
[22.817]blk 698 is bad, skip to erase
[22.821]blk 699 is bad, skip to erase
[22.825]blk 701 is bad, skip to erase
[22.830]blk 703 is bad, skip to erase
[22.833]blk 704 is bad, skip to erase
[22.837]blk 705 is bad, skip to erase
[22.841]blk 707 is bad, skip to erase
[22.845]blk 708 is bad, skip to erase
[22.848]blk 709 is bad, skip to erase
[22.851]blk 710 is bad, skip to erase
[22.855]blk 711 is bad, skip to erase
[22.860]blk 713 is bad, skip to erase
[22.864]blk 715 is bad, skip to erase
[22.869]blk 717 is bad, skip to erase
[22.873]blk 719 is bad, skip to erase
[22.878]blk 721 is bad, skip to erase
[22.883]blk 723 is bad, skip to erase
[22.887]blk 725 is bad, skip to erase
[22.892]blk 727 is bad, skip to erase
[22.896]blk 729 is bad, skip to erase
[22.901]blk 731 is bad, skip to erase
[22.906]blk 733 is bad, skip to erase
[22.910]blk 735 is bad, skip to erase
[22.914]blk 736 is bad, skip to erase
[22.917]blk 737 is bad, skip to erase
[22.922]blk 739 is bad, skip to erase
[22.926]blk 741 is bad, skip to erase
[22.931]blk 743 is bad, skip to erase
[22.935]blk 745 is bad, skip to erase
[22.939]blk 746 is bad, skip to erase
[22.942]blk 747 is bad, skip to erase
[22.946]blk 748 is bad, skip to erase
[22.949]blk 749 is bad, skip to erase
[22.954]blk 751 is bad, skip to erase
[22.957]blk 752 is bad, skip to erase
[22.960]blk 753 is bad, skip to erase
[22.965]blk 755 is bad, skip to erase
[22.968]blk 756 is bad, skip to erase
[22.972]blk 757 is bad, skip to erase
[22.976]blk 759 is bad, skip to erase
[22.981]blk 761 is bad, skip to erase
[22.984]blk 762 is bad, skip to erase
[22.988]blk 763 is bad, skip to erase
[22.992]blk 765 is bad, skip to erase
[22.996]blk 766 is bad, skip to erase
[22.999]blk 767 is bad, skip to erase
[23.002]blk 769 is bad, skip to erase
[23.006]blk 770 is bad, skip to erase
[23.009]blk 771 is bad, skip to erase
[23.014]blk 773 is bad, skip to erase
[23.017]blk 774 is bad, skip to erase
[23.021]blk 775 is bad, skip to erase
[23.025]blk 777 is bad, skip to erase
[23.028]blk 778 is bad, skip to erase
[23.032]blk 779 is bad, skip to erase
[23.037]blk 781 is bad, skip to erase
[23.040]blk 782 is bad, skip to erase
[23.043]blk 783 is bad, skip to erase
[23.048]blk 785 is bad, skip to erase
[23.053]blk 787 is bad, skip to erase
[23.056]blk 788 is bad, skip to erase
[23.059]blk 789 is bad, skip to erase
[23.064]blk 791 is bad, skip to erase
[23.069]blk 793 is bad, skip to erase
[23.073]blk 795 is bad, skip to erase
[23.076]blk 796 is bad, skip to erase
[23.080]blk 797 is bad, skip to erase
[23.085]blk 799 is bad, skip to erase
[23.089]blk 801 is bad, skip to erase
[23.092]blk 802 is bad, skip to erase
[23.096]blk 803 is bad, skip to erase
[23.101]blk 805 is bad, skip to erase
[23.105]blk 807 is bad, skip to erase
[23.110]blk 809 is bad, skip to erase
[23.114]blk 811 is bad, skip to erase
[23.118]blk 812 is bad, skip to erase
[23.121]blk 813 is bad, skip to erase
[23.126]blk 815 is bad, skip to erase
[23.129]blk 816 is bad, skip to erase
[23.132]blk 817 is bad, skip to erase
[23.137]blk 819 is bad, skip to erase
[23.140]blk 820 is bad, skip to erase
[23.144]blk 821 is bad, skip to erase
[23.147]blk 822 is bad, skip to erase
[23.151]blk 823 is bad, skip to erase
[23.155]blk 825 is bad, skip to erase
[23.158]blk 826 is bad, skip to erase
[23.162]blk 827 is bad, skip to erase
[23.165]blk 828 is bad, skip to erase
[23.169]blk 829 is bad, skip to erase
[23.173]blk 831 is bad, skip to erase
[23.178]blk 833 is bad, skip to erase
[23.181]blk 834 is bad, skip to erase
[23.185]blk 835 is bad, skip to erase
[23.189]blk 837 is bad, skip to erase
[23.194]blk 839 is bad, skip to erase
[23.199]blk 841 is bad, skip to erase
[23.203]blk 843 is bad, skip to erase
[23.208]blk 845 is bad, skip to erase
[23.212]blk 847 is bad, skip to erase
[23.217]blk 849 is bad, skip to erase
[23.222]blk 851 is bad, skip to erase
[23.225]blk 852 is bad, skip to erase
[23.228]blk 853 is bad, skip to erase
[23.233]blk 855 is bad, skip to erase
[23.236]blk 856 is bad, skip to erase
[23.240]blk 857 is bad, skip to erase
[23.244]blk 859 is bad, skip to erase
[23.248]blk 860 is bad, skip to erase
[23.251]blk 861 is bad, skip to erase
[23.254]blk 862 is bad, skip to erase
[23.258]blk 863 is bad, skip to erase
[23.262]blk 865 is bad, skip to erase
[23.267]blk 867 is bad, skip to erase
[23.272]blk 869 is bad, skip to erase
[23.276]blk 871 is bad, skip to erase
[23.281]blk 873 is bad, skip to erase
[23.284]blk 874 is bad, skip to erase
[23.288]blk 875 is bad, skip to erase
[23.292]blk 877 is bad, skip to erase
[23.297]blk 879 is bad, skip to erase
[23.301]blk 881 is bad, skip to erase
[23.306]blk 883 is bad, skip to erase
[23.311]blk 885 is bad, skip to erase
[23.315]blk 887 is bad, skip to erase
[23.320]blk 889 is bad, skip to erase
[23.325]blk 891 is bad, skip to erase
[23.329]blk 893 is bad, skip to erase
[23.334]blk 895 is bad, skip to erase
[23.338]blk 897 is bad, skip to erase
[23.342]blk 898 is bad, skip to erase
[23.345]blk 899 is bad, skip to erase
[23.348]blk 900 is bad, skip to erase
[23.352]blk 901 is bad, skip to erase
[23.357]blk 903 is bad, skip to erase
[23.361]blk 905 is bad, skip to erase
[23.364]blk 906 is bad, skip to erase
[23.368]blk 907 is bad, skip to erase
[23.372]blk 909 is bad, skip to erase
[23.376]blk 910 is bad, skip to erase
[23.379]blk 911 is bad, skip to erase
[23.384]blk 913 is bad, skip to erase
[23.388]blk 915 is bad, skip to erase
[23.392]blk 916 is bad, skip to erase
[23.395]blk 917 is bad, skip to erase
[23.400]blk 919 is bad, skip to erase
[23.404]blk 921 is bad, skip to erase
[23.409]blk 923 is bad, skip to erase
[23.414]blk 925 is bad, skip to erase
[23.418]blk 927 is bad, skip to erase
[23.423]blk 929 is bad, skip to erase
[23.428]blk 931 is bad, skip to erase
[23.432]blk 933 is bad, skip to erase
[23.435]blk 934 is bad, skip to erase
[23.439]blk 935 is bad, skip to erase
[23.443]blk 937 is bad, skip to erase
[23.448]blk 939 is bad, skip to erase
[23.451]blk 940 is bad, skip to erase
[23.455]blk 941 is bad, skip to erase
[23.458]blk 942 is bad, skip to erase
[23.462]blk 943 is bad, skip to erase
[23.466]blk 945 is bad, skip to erase
[23.469]blk 946 is bad, skip to erase
[23.473]blk 947 is bad, skip to erase
[23.478]blk 949 is bad, skip to erase
[23.481]blk 950 is bad, skip to erase
[23.484]blk 951 is bad, skip to erase
[23.489]blk 953 is bad, skip to erase
[23.494]blk 955 is bad, skip to erase
[23.497]blk 956 is bad, skip to erase
[23.500]blk 957 is bad, skip to erase
[23.504]blk 958 is bad, skip to erase
[23.507]blk 959 is bad, skip to erase
[23.510]blk 960 is bad, skip to erase
[23.514]blk 961 is bad, skip to erase
[23.518]blk 963 is bad, skip to erase
[23.522]blk 964 is bad, skip to erase
[23.525]blk 965 is bad, skip to erase
[23.530]blk 967 is bad, skip to erase
[23.533]blk 968 is bad, skip to erase
[23.537]blk 969 is bad, skip to erase
[23.540]blk 970 is bad, skip to erase
[23.543]blk 971 is bad, skip to erase
[23.548]blk 973 is bad, skip to erase
[23.551]blk 974 is bad, skip to erase
[23.555]blk 975 is bad, skip to erase
[23.559]blk 977 is bad, skip to erase
[23.563]blk 978 is bad, skip to erase
[23.566]blk 979 is bad, skip to erase
[23.571]blk 981 is bad, skip to erase
[23.575]blk 983 is bad, skip to erase
[23.579]blk 984 is bad, skip to erase
[23.582]blk 985 is bad, skip to erase
[23.585]blk 986 is bad, skip to erase
[23.589]blk 987 is bad, skip to erase
[23.592]blk 988 is bad, skip to erase
[23.596]blk 989 is bad, skip to erase
[23.599]blk 990 is bad, skip to erase
[23.602]blk 991 is bad, skip to erase
[23.607]blk 993 is bad, skip to erase
[23.610]blk 994 is bad, skip to erase
[23.614]blk 995 is bad, skip to erase
[23.617]blk 996 is bad, skip to erase
[23.620]blk 997 is bad, skip to erase
[23.625]blk 999 is bad, skip to erase
[23.630]blk 1001 is bad, skip to erase
[23.633]blk 1002 is bad, skip to erase
[23.637]blk 1003 is bad, skip to erase
[23.641]blk 1005 is bad, skip to erase
[23.645]blk 1006 is bad, skip to erase
[23.648]blk 1007 is bad, skip to erase
[23.653]blk 1009 is bad, skip to erase
[23.656]blk 1010 is bad, skip to erase
[23.660]blk 1011 is bad, skip to erase
[23.663]blk 1012 is bad, skip to erase
[23.667]blk 1013 is bad, skip to erase
[23.670]blk 1014 is bad, skip to erase
[23.674]blk 1015 is bad, skip to erase
[23.677]blk 1016 is bad, skip to erase
[23.681]blk 1017 is bad, skip to erase
[23.684]blk 1018 is bad, skip to erase
[23.688]blk 1019 is bad, skip to erase
[23.691]blk 1020 is bad, skip to erase
[23.695]blk 1021 is bad, skip to erase
[23.700]sunxi-spinand: spinand secure storage ok for phy blk 35 and 39
[23.706]sunxi-spinand: secure storage blks have never used before
[23.713]sunxi-spinand: secure storage has no valid data on item 0
[23.718]Item0 (Map) magic is bad
[23.721]the secure storage map is empty
[23.885]sunxi-spinand: write secure storage itme 0 ok
[23.890]erase secure storage: 0 ok
SUNXI_EFEX_MBR_TAG
mbr size = 0x10000
force mbr

device nand0 &lt;nand&gt;, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[23.944]MTD info (4)
[23.946]pagesize: 0x1000
[23.948]blksize: 0x40000
[23.950]num  offset     bytes      name
[23.954]0    0x00000000 0x00100000 boot0
[23.957]1    0x00100000 0x00300000 uboot
[23.961]2    0x00400000 0x00100000 secure_storage
[23.966]3    0x00500000 0x07b00000 sys
[23.969]MBR info (unalign):
[23.972]partno   addr       sects      type       name
[23.976]0        0x00000000 0x00008000 0x00000001 mbr
[23.981]1        0x00008000 0x000001f8 0x00008000 boot-resource
[23.987]2        0x000081f8 0x000001f8 0x00008000 env
[23.992]3        0x000083f0 0x000001f8 0x00008000 env-redund
[23.997]4        0x000085e8 0x00005000 0x00008000 boot
[24.002]5        0x0000d5e8 0x0000be00 0x00008000 rootfs
[24.007]6        0x000193e8 0x00005780 0x00008000 recovery
[24.012]7        0x0001eb68 0x00002800 0x00008000 rootfs_data
[24.017]8        0x00021368 0x00000000 0x00000000 UDISK
[24.022]ubi attach the last part of mtd device: NO.3
[24.027]MBR info (align):
[24.029]partno   addr       sects      type       name
[24.034]0        0x00002800 0x000081f0 0x00000001 mbr
[24.039]1        0x0000a9f0 0x000001f8 0x00008000 boot-resource
[24.045]2        0x0000abe8 0x000001f8 0x00008000 env
[24.049]3        0x0000ade0 0x000001f8 0x00008000 env-redund
[24.055]4        0x0000afd8 0x000050b8 0x00008000 boot
[24.060]5        0x00010090 0x0000bef8 0x00008000 rootfs
[24.065]6        0x0001bf88 0x00005898 0x00008000 recovery
[24.070]7        0x00021820 0x00002958 0x00008000 rootfs_data
[24.075]8        0x00024178 0x00000000 0x00000000 UDISK
[24.080]ubi attach the last part of mtd device: NO.3
[24.085]ubi attatch mtd, name: sys

[24.088]ubi0: attaching mtd4
[24.103]ubi0 warning: scan_peb: bad ec header at pnum 491, drop this block

[24.110]ubi0: scanning is finished
[24.113]ubi0: empty MTD device detected
[24.124]sunxi-spinand: [SPINAND]: write single page failed: block 511, page 1, ret -5
[24.131]ubi0 error: ubi_io_write: error -5 while writing 24576 bytes to PEB 491:4096, written 0 bytes
[24.142]ubi0: dumping 24576 bytes of data from PEB 491, offset 4096
[24.149]sunxi-spinand: [SPINAND]: erase block 511 in addr 0x7fc0000 failed: -5
[24.156]ubi0 warning: do_sync_erase: error -5 while erasing PEB 491, retry
[24.164]sunxi-spinand: [SPINAND]: erase block 511 in addr 0x7fc0000 failed: -5
[24.171]ubi0 warning: do_sync_erase: error -5 while erasing PEB 491, retry
[24.179]sunxi-spinand: [SPINAND]: erase block 511 in addr 0x7fc0000 failed: -5
[24.186]ubi0 warning: do_sync_erase: error -5 while erasing PEB 491, retry
[24.194]sunxi-spinand: [SPINAND]: erase block 511 in addr 0x7fc0000 failed: -5
[24.201]ubi0 error: do_sync_erase: cannot erase PEB 491, error -5
[24.207]ubi0 error: ubi_early_get_peb: no free eraseblocks
[24.212]ubi0 error: ubi_attach_mtd_dev: failed to attach mtd4, error -28
[24.219]UBI error: cannot attach mtd4
[24.222]UBI error: cannot initialize UBI, error -28
UBI init error 28
Please check, if the correct MTD partition is used (size big enough?)
[24.234]ubi part sys err !
[24.237]initialize sunxi spinand ubi failed
download_standard_gpt:write mbr sectors fail ret = 0
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1648382435260-294ecf5c-cafe-4ce5-a45c-6337004a6b1f-image.png" alt="294ecf5c-cafe-4ce5-a45c-6337004a6b1f-image.png" class=" img-responsive img-markdown" width="800" height="600" /></p>
]]></description><link>https://bbs.aw-ol.com/post/5433</link><guid isPermaLink="true">https://bbs.aw-ol.com/post/5433</guid><dc:creator><![CDATA[tigger]]></dc:creator><pubDate>Sun, 27 Mar 2022 12:00:38 GMT</pubDate></item></channel></rss>