导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. tigger
    3. 帖子
    • 资料
    • 关注 0
    • 粉丝 12
    • 我的积分 9409
    • 主题 93
    • 帖子 432
    • 最佳 29
    • 群组 0

    tigger 发布的帖子

    • 回复: T113 Tina Linux 禁用 OPTEE 启动

      OPTEE 用来干嘛的呢?

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: RTT D1s RDC2022开发板开箱及在macOS下成功点亮LCD

      @cnxiaoma 期待后续

      发布在 MR Series
      tigger
      tigger
    • 回复: 收集 "焊"武帝们的杰作

      mmexport1667273167025.jpg

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: D1s 接 MCP2515 CAN芯片本地收发测试

      记得勾选 iproute2,这里面的ip命令才支持can bus,

      busybox自带的ip不行。

      发布在 MR Series
      tigger
      tigger
    • 回复: D1s 接 MCP2515 CAN芯片本地收发测试
      ip link set can0 down
      
      ip link set can0 type can loopback on
      
      ip link set can0 up type can bitrate 1000000
      
      candump any,0:0,#FFFFFFFF > /tmp/a.txt &
      
      cansend can0 123#deadbeef
      
      cansend can0 123#AAAAAA
      
      cansend can0 123#CCCCCC
      

      参考: https://wiki.rdu.im/_pages/Application-Notes/Software/can-bus-in-linux.html

      发布在 MR Series
      tigger
      tigger
    • D1s 接 MCP2515 CAN芯片本地收发测试

      43d895a1-9546-4c0d-ae97-99850ffb379b-image.png

      发布在 MR Series
      tigger
      tigger
    • 回复: 全志V3S做音频网络对讲,存在回声和噪音,求救啊

      @sdlmd2020
      可以用硬件dsp实现

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: XR829模块加载出现Timeout waiting for FIFO问题

      @lgkgkfg
      请问具体怎么换呢?

      发布在 MR Series
      tigger
      tigger
    • 回复: Tina Linux 存储介质切换:eMMC,SPI NAND,SPI NOR,SD Card,SD NAND

      好详细喔,收藏起来慢慢消化。

      发布在 Linux
      tigger
      tigger
    • 回复: A133 提高一点温度应该没事吧?

      @yuzukitsuru
      现在的情况是,我的测试箱环境温度80度, CPU温度上升到110度左右的时候就挂了。今天试一试把这三组温度都加高20度。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: A133 提高一点温度应该没事吧?

      @yuzukitsuru
      我的意思是在DTS里面把那个温度提高20度,会不会把芯片烧掉?

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • A133 提高一点温度应该没事吧?

      2791b103-a1c8-4c60-8e6c-68b080867a54-image.png

      52c63683-833a-463e-a21d-0f22f21575ef-63996d367d8c9270e86e371f8c386d0.png

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • A133 可以接 单片4G DDR芯片吗?

      A133 可以接 单片4G DDR芯片吗?

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: ARM Cortex A7 NEON 指令加速

      37a5571d-5626-40a9-81ce-edb1e06c1dcb-image.png

      发布在 Linux
      tigger
      tigger
    • 回复: ARM Cortex A7 NEON 指令加速

      NEON模拟器: https://szeged.github.io/nevada/

      发布在 Linux
      tigger
      tigger
    • ARM Cortex A7 NEON 指令加速

      转载: NEON 日历 2020

      1。Arm指令集和NEON扩展

      发布在 Linux
      tigger
      tigger
    • 回复: 新人新画的853板子,zero尺寸0.45/0.2孔

      @ckh123
      高一,我觉得我受到了暴击。😖

      发布在 V Series
      tigger
      tigger
    • 回复: 收集 "焊"武帝们的杰作

      mmexport1658207701617.jpg

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: 【V853开发板试用】使用屏幕输出命令行

      这个可以有,连串口都省了。

      发布在 V Series
      tigger
      tigger
    • 回复: Tina Linux 存储介质切换:eMMC,SPI NAND,SPI NOR,SD Card,SD NAND

      没有SDK,只能偷偷看你玩了。

      发布在 Linux
      tigger
      tigger
    • 回复: 获取全志芯片的唯一ID

      这样更容易破解啦,
      找到这个路径字符串,
      然后自己构造一个文件替代这个文件。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: 芒果tiny200s f1c200s 板子,不改硬件不提升电压,CPU跑到816Mhz杠杠,改成960Mhz终于挂了

      @yuzukitsuru
      问题不大,我记得司徒提高了CPU电压,都可以跑到1.5G。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: 解决串口终端显示文件列表乱码的问题

      @tigger

      d7a36b9e-e415-4fae-a6c1-eb6ed6d83f32-image.png

      只改 kernel 和 mount 参数,看来还是不行,一定得对busybox动手?

      发布在 Linux
      tigger
      tigger
    • 回复: 解决串口终端显示文件列表乱码的问题

      68654eb5-f1e4-42f1-b9b6-5f6cd5655eea-image.png

      我的就是这样,都是问号.

      发布在 Linux
      tigger
      tigger
    • 回复: 动手让LVGL8带的Music-Demo音乐响起来(代码已上传)

      请问楼主有完整工程吗?

      发布在 GUI
      tigger
      tigger
    • 回复: 给Neza-D1设计个扩展板

      请问楼主,最后板子做出来了吗?

      发布在 MR Series
      tigger
      tigger
    • 回复: 闲鱼 2.66寸 墨水屏推荐

      这个CC2510用什么烧录器调试器呢?

      发布在 灌水区
      tigger
      tigger
    • 回复: 请问D1可以驱动EDP屏吗?

      谢谢大家,看来得用转换芯片了。

      发布在 MR Series
      tigger
      tigger
    • 回复: 基于D1开发板的 微信/支付宝 物联网(MQTT)支付平台

      有没有哪位大佬玩起来了?

      发布在 MR Series
      tigger
      tigger
    • 回复: Porject Yosemite - 基于全志V853的开发板

      @yelong98
      学渣过来强行解释一下,自己做因为边际成本太高。

      发布在 V Series
      tigger
      tigger
    • 请问A133最大支持4GB DDR吗?

      -20d9e180722429c7.png

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: T113-S3 CAN模块使用的全部信息

      楼主牛,是不是对照a20手册搞定的?

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: 五一劳动节,画个V8发动机小板,哪个好看呢?

      真是劳模+画板小王子

      发布在 V Series
      tigger
      tigger
    • 回复: 百问网韦老师 D1 开发板 ---- 东山哪吒STU

      @yixiuge
      想知道最多可以叠几个?

      发布在 MR Series
      tigger
      tigger
    • 回复: d1适配spi lcd时,编译报错,缺少文件

      貌似现在也不支持吧?

      发布在 MR Series
      tigger
      tigger
    • 回复: 其实你细品,H616还挺有意思的

      中间那一块有什么玄机吗?没有看出来。

      发布在 H/F/TV Series
      tigger
      tigger
    • 回复: V3s的网络很难连,很挑线是什么问题呢?1米、2米都不行,有一条很长的确可以。

      @whycan
      搞定了,是这个电阻问题,谢谢。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: 麻雀系列的最后一坑:四核MQ:MQ-Quad ?

      @mangogeek
      没看到,再发一个到帖子里面

      发布在 H/F/TV Series
      tigger
      tigger
    • V3s的网络很难连,很挑线是什么问题呢?1米、2米都不行,有一条很长的确可以。

      -253f2012916c472d.png

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: 【芯片型号变更公告】D1芯片型号变更为D1-H

      @mangogeek
      可能IP厂家搞事情

      发布在 公告
      tigger
      tigger
    • 回复: D1-H/D1s SPI NAND & DDR支持列表

      tina v2.0 里面很多flash代码里面都搜不到,比如 xt26 那些,一个都没发现有支持。

      发布在 MR Series
      tigger
      tigger
    • 回复: adb devices找不到设备,设备管理器显示设备无法启动

      能用usb烧录吗?

      发布在 编译和烧写问题专区
      tigger
      tigger
    • 回复: 试试用哪吒MQ板运行lvgl demo(鼠标)

      @yelong98
      基本没有问题 可以跑。

      发布在 GUI
      tigger
      tigger
    • 回复: 请问tina /etc/rc.d/ 里面的初始化脚本是按字典顺序执行吗?

      @wm_ch
      嗯,我就是加 echo 命令测试出来的,上面日志里面就是echo显示的。

      发布在 MR Series
      tigger
      tigger
    • 回复: T507 主线内核支持吗

      @yuzukitsuru
      少一个驱动我都觉得难受

      发布在 Linux
      tigger
      tigger
    • 回复: 请问tina /etc/rc.d/ 里面的初始化脚本是按字典顺序执行吗?
      [    6.147927] procd: - init -
      Please press Enter to activate this console.
      [    6.282949]
      [    6.282949] insmod_device_driver
      [    6.282949]
      [    6.559613] udevd[151]: starting version 3.2.9
      -------------------ucgui --------------------
      -------------------ucgui --------------------
      ........
      [   22.349162] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
      [   22.724196] EXT4-fs (mmcblk0p5): warning: mounting unchecked fs, running e2fsck is recommended
      [   23.605463] EXT4-fs (mmcblk0p5): re-mounted. Opts: (null)
      ------------boot-play---------------
      ------------boot-play---------------
      [   25.388938] [SNDCODEC][sunxi_card_hw_params][620]:stream_flag: 0
      Trying to connect to SWUpdate...
      
      
      BusyBox v1.27.2 () built-in shell (ash)
      
       _____  _              __     _
      |_   _||_| ___  _ _   |  |   |_| ___  _ _  _ _
        | |   _ |   ||   |  |  |__ | ||   || | ||_'_|
        | |  | || | || _ |  |_____||_||_|_||___||_,_|
        |_|  |_||_|_||_|_|  Tina is Based on OpenWrt!
       ----------------------------------------------
       Tina Linux (Neptune, 5C1C9C53)
       ----------------------------------------------
      root@TinaLinux:/#
      

      不知道为啥 /etc/rc.d/S99ucgui 要先执行,
      然后才执行 /etc/rc.d/S98play

      发布在 MR Series
      tigger
      tigger
    • 请问tina /etc/rc.d/ 里面的初始化脚本是按字典顺序执行吗?
      root@TinaLinux:/# ls /etc/rc.d/S* -l
      lrwxrwxrwx    1 root     root            20 Apr  6  2022 /etc/rc.d/S00sysfixtime -> ../init.d/sysfixtime
      lrwxrwxrwx    1 root     root            14 Apr  6  2022 /etc/rc.d/S10boot -> ../init.d/boot
      lrwxrwxrwx    1 root     root            14 Apr  6  2022 /etc/rc.d/S10dbus -> ../init.d/dbus
      lrwxrwxrwx    1 root     root            16 Apr  6  2022 /etc/rc.d/S10system -> ../init.d/system
      lrwxrwxrwx    1 root     root            16 Apr  6  2022 /etc/rc.d/S11sysctl -> ../init.d/sysctl
      lrwxrwxrwx    1 root     root            17 Apr  6  2022 /etc/rc.d/S20network -> ../init.d/network
      lrwxrwxrwx    1 root     root            15 Apr  6  2022 /etc/rc.d/S40fstab -> ../init.d/fstab
      lrwxrwxrwx    1 root     root            14 Apr  6  2022 /etc/rc.d/S50cron -> ../init.d/cron
      lrwxrwxrwx    1 root     root            18 Apr  6  2022 /etc/rc.d/S50dropbear -> ../init.d/dropbear
      lrwxrwxrwx    1 root     root            17 Apr  6  2022 /etc/rc.d/S60dnsmasq -> ../init.d/dnsmasq
      lrwxrwxrwx    1 root     root            14 Apr  6  2022 /etc/rc.d/S80adbd -> ../init.d/adbd
      lrwxrwxrwx    1 root     root            14 Apr  6  2022 /etc/rc.d/S80udev -> ../init.d/udev
      lrwxrwxrwx    1 root     root            14 Apr  6  2022 /etc/rc.d/S95done -> ../init.d/done
      lrwxrwxrwx    1 root     root            24 Apr  6  2022 /etc/rc.d/S96wpa_supplicant -> ../init.d/wpa_supplicant
      lrwxrwxrwx    1 root     root            13 Apr  6  2022 /etc/rc.d/S98mtp -> ../init.d/mtp
      lrwxrwxrwx    1 root     root            14 Apr  6  2022 /etc/rc.d/S98play -> ../init.d/play
      lrwxrwxrwx    1 root     root            17 Apr  6  2022 /etc/rc.d/S98sysntpd -> ../init.d/sysntpd
      lrwxrwxrwx    1 root     root            21 Apr  6  2022 /etc/rc.d/S99lv_examples -> ../init.d/lv_examples
      lrwxrwxrwx    1 root     root            18 Apr  6  2022 /etc/rc.d/S99lvgldemo -> ../init.d/lvgldemo
      lrwxrwxrwx    1 root     root            29 Apr  6  2022 /etc/rc.d/S99swupdate_autorun -> ../init.d/S99swupdate_autorun
      lrwxrwxrwx    1 root     root            18 Apr  6  2022 /etc/rc.d/S99tinatest -> ../init.d/tinatest
      lrwxrwxrwx    1 root     root            15 Apr  6  2022 /etc/rc.d/S99ucgui -> ../init.d/ucgui
      
      发布在 MR Series
      tigger
      tigger
    • 回复: repo克隆D1-H_Tina_Open v2.0卡住

      看下硬盘剩余空间。

      发布在 代码下载问题专区
      tigger
      tigger
    • 请问烧录软件 phoenixsuit 可以读出A133平板电脑的eMMC固件吗?

      请问烧录软件 phoenixsuit 可以读出A133平板电脑的eMMC固件吗?

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: Linux4.9 A100 加载 gpio-keys 驱动可以使用,但是装载过程驱动报错,并且无法卸载。

      @tigger

      Kconfig:

      config GPIOKEYS_AS_POWERKEY
              bool "gpio-keys used as power-key"
              default n
              depends on KEYBOARD_GPIO
              help
                Say Y here to enable the function that can add long-press
                funciton in gpio-keys and use it as power-key.
      

      gpio_keys.c:

      
      /*
       * Driver for keys on GPIO lines capable of generating interrupts.
       *
       * Copyright 2005 Phil Blundell
       * Copyright 2010, 2011 David Jander <david@protonic.nl>
       *
       * This program is free software; you can redistribute it and/or modify
       * it under the terms of the GNU General Public License version 2 as
       * published by the Free Software Foundation.
       */
      
      #include <linux/module.h>
      
      #include <linux/init.h>
      #include <linux/fs.h>
      #include <linux/interrupt.h>
      #include <linux/irq.h>
      #include <linux/sched.h>
      #include <linux/pm.h>
      #include <linux/slab.h>
      #include <linux/sysctl.h>
      #include <linux/proc_fs.h>
      #include <linux/delay.h>
      #include <linux/platform_device.h>
      #include <linux/input.h>
      #include <linux/gpio_keys.h>
      #include <linux/workqueue.h>
      #include <linux/gpio.h>
      #include <linux/gpio/consumer.h>
      #include <linux/of.h>
      #include <linux/of_platform.h>
      #include <linux/of_gpio.h>
      #include <linux/of_irq.h>
      #include <linux/spinlock.h>
      
      #ifdef CONFIG_ARCH_SUNXI
      #include <linux/sunxi-gpio.h>
      #ifdef CONFIG_GPIOKEYS_AS_POWERKEY
      #include <linux/kthread.h>
      #include <linux/reboot.h>
      #include <linux/jiffies.h>
      struct long_press_key {
              struct delayed_work long_work;
              unsigned long start;
              int press_sta;
      };
      
      static struct long_press_key long_press_key;
      #endif
      #endif
      
      struct gpio_button_data {
              const struct gpio_keys_button *button;
              struct input_dev *input;
              struct gpio_desc *gpiod;
      
              struct timer_list release_timer;
              unsigned int release_delay;     /* in msecs, for IRQ-only buttons */
      
              struct delayed_work work;
              unsigned int software_debounce; /* in msecs, for GPIO-driven buttons */
      
              unsigned int irq;
              spinlock_t lock;
              bool disabled;
              bool key_pressed;
      };
      
      struct gpio_keys_drvdata {
              const struct gpio_keys_platform_data *pdata;
              struct input_dev *input;
              struct mutex disable_lock;
              struct gpio_button_data data[0];
      };
      
      /*
       * SYSFS interface for enabling/disabling keys and switches:
       *
       * There are 4 attributes under /sys/devices/platform/gpio-keys/
       *      keys [ro]              - bitmap of keys (EV_KEY) which can be
       *                               disabled
       *      switches [ro]          - bitmap of switches (EV_SW) which can be
       *                               disabled
       *      disabled_keys [rw]     - bitmap of keys currently disabled
       *      disabled_switches [rw] - bitmap of switches currently disabled
       *
       * Userland can change these values and hence disable event generation
       * for each key (or switch). Disabling a key means its interrupt line
       * is disabled.
       *
       * For example, if we have following switches set up as gpio-keys:
       *      SW_DOCK = 5
       *      SW_CAMERA_LENS_COVER = 9
       *      SW_KEYPAD_SLIDE = 10
       *      SW_FRONT_PROXIMITY = 11
       * This is read from switches:
       *      11-9,5
       * Next we want to disable proximity (11) and dock (5), we write:
       *      11,5
       * to file disabled_switches. Now proximity and dock IRQs are disabled.
       * This can be verified by reading the file disabled_switches:
       *      11,5
       * If we now want to enable proximity (11) switch we write:
       *      5
       * to disabled_switches.
       *
       * We can disable only those keys which don't allow sharing the irq.
       */
      
      /**
       * get_n_events_by_type() - returns maximum number of events per @type
       * @type: type of button (%EV_KEY, %EV_SW)
       *
       * Return value of this function can be used to allocate bitmap
       * large enough to hold all bits for given type.
       */
      static int get_n_events_by_type(int type)
      {
              BUG_ON(type != EV_SW && type != EV_KEY);
      
              return (type == EV_KEY) ? KEY_CNT : SW_CNT;
      }
      
      /**
       * get_bm_events_by_type() - returns bitmap of supported events per @type
       * @input: input device from which bitmap is retrieved
       * @type: type of button (%EV_KEY, %EV_SW)
       *
       * Return value of this function can be used to allocate bitmap
       * large enough to hold all bits for given type.
       */
      static const unsigned long *get_bm_events_by_type(struct input_dev *dev,
                                                        int type)
      {
              BUG_ON(type != EV_SW && type != EV_KEY);
      
              return (type == EV_KEY) ? dev->keybit : dev->swbit;
      }
      
      /**
       * gpio_keys_disable_button() - disables given GPIO button
       * @bdata: button data for button to be disabled
       *
       * Disables button pointed by @bdata. This is done by masking
       * IRQ line. After this function is called, button won't generate
       * input events anymore. Note that one can only disable buttons
       * that don't share IRQs.
       *
       * Make sure that @bdata->disable_lock is locked when entering
       * this function to avoid races when concurrent threads are
       * disabling buttons at the same time.
       */
      static void gpio_keys_disable_button(struct gpio_button_data *bdata)
      {
              if (!bdata->disabled) {
                      /*
                       * Disable IRQ and associated timer/work structure.
                       */
                      disable_irq(bdata->irq);
      
                      if (bdata->gpiod) {
                              cancel_delayed_work_sync(&bdata->work);
      #ifdef CONFIG_GPIOKEYS_AS_POWERKEY
                              cancel_delayed_work_sync(&long_press_key.long_work);
      #endif
                      } else {
                              del_timer_sync(&bdata->release_timer);
                      }
      
                      bdata->disabled = true;
              }
      }
      
      /**
       * gpio_keys_enable_button() - enables given GPIO button
       * @bdata: button data for button to be disabled
       *
       * Enables given button pointed by @bdata.
       *
       * Make sure that @bdata->disable_lock is locked when entering
       * this function to avoid races with concurrent threads trying
       * to enable the same button at the same time.
       */
      static void gpio_keys_enable_button(struct gpio_button_data *bdata)
      {
              if (bdata->disabled) {
                      enable_irq(bdata->irq);
                      bdata->disabled = false;
              }
      }
      
      /**
       * gpio_keys_attr_show_helper() - fill in stringified bitmap of buttons
       * @ddata: pointer to drvdata
       * @buf: buffer where stringified bitmap is written
       * @type: button type (%EV_KEY, %EV_SW)
       * @only_disabled: does caller want only those buttons that are
       *                 currently disabled or all buttons that can be
       *                 disabled
       *
       * This function writes buttons that can be disabled to @buf. If
       * @only_disabled is true, then @buf contains only those buttons
       * that are currently disabled. Returns 0 on success or negative
       * errno on failure.
       */
      static ssize_t gpio_keys_attr_show_helper(struct gpio_keys_drvdata *ddata,
                                                char *buf, unsigned int type,
                                                bool only_disabled)
      {
              int n_events = get_n_events_by_type(type);
              unsigned long *bits;
              ssize_t ret;
              int i;
      
              bits = kcalloc(BITS_TO_LONGS(n_events), sizeof(*bits), GFP_KERNEL);
              if (!bits)
                      return -ENOMEM;
      
              for (i = 0; i < ddata->pdata->nbuttons; i++) {
                      struct gpio_button_data *bdata = &ddata->data[i];
      
                      if (bdata->button->type != type)
                              continue;
      
                      if (only_disabled && !bdata->disabled)
                              continue;
      
                      __set_bit(bdata->button->code, bits);
              }
      
              ret = scnprintf(buf, PAGE_SIZE - 1, "%*pbl", n_events, bits);
              buf[ret++] = '\n';
              buf[ret] = '\0';
      
              kfree(bits);
      
              return ret;
      }
      
      /**
       * gpio_keys_attr_store_helper() - enable/disable buttons based on given bitmap
       * @ddata: pointer to drvdata
       * @buf: buffer from userspace that contains stringified bitmap
       * @type: button type (%EV_KEY, %EV_SW)
       *
       * This function parses stringified bitmap from @buf and disables/enables
       * GPIO buttons accordingly. Returns 0 on success and negative error
       * on failure.
       */
      static ssize_t gpio_keys_attr_store_helper(struct gpio_keys_drvdata *ddata,
                                                 const char *buf, unsigned int type)
      {
              int n_events = get_n_events_by_type(type);
              const unsigned long *bitmap = get_bm_events_by_type(ddata->input, type);
              unsigned long *bits;
              ssize_t error;
              int i;
      
              bits = kcalloc(BITS_TO_LONGS(n_events), sizeof(*bits), GFP_KERNEL);
              if (!bits)
                      return -ENOMEM;
      
              error = bitmap_parselist(buf, bits, n_events);
              if (error)
                      goto out;
      
              /* First validate */
              if (!bitmap_subset(bits, bitmap, n_events)) {
                      error = -EINVAL;
                      goto out;
              }
      
              for (i = 0; i < ddata->pdata->nbuttons; i++) {
                      struct gpio_button_data *bdata = &ddata->data[i];
      
                      if (bdata->button->type != type)
                              continue;
      
                      if (test_bit(bdata->button->code, bits) &&
                          !bdata->button->can_disable) {
                              error = -EINVAL;
                              goto out;
                      }
              }
      
              mutex_lock(&ddata->disable_lock);
      
              for (i = 0; i < ddata->pdata->nbuttons; i++) {
                      struct gpio_button_data *bdata = &ddata->data[i];
      
                      if (bdata->button->type != type)
                              continue;
      
                      if (test_bit(bdata->button->code, bits))
                              gpio_keys_disable_button(bdata);
                      else
                              gpio_keys_enable_button(bdata);
              }
      
              mutex_unlock(&ddata->disable_lock);
      
      out:
              kfree(bits);
              return error;
      }
      
      #define ATTR_SHOW_FN(name, type, only_disabled)                         \
      static ssize_t gpio_keys_show_##name(struct device *dev,                \
                                           struct device_attribute *attr,     \
                                           char *buf)                         \
      {                                                                       \
              struct platform_device *pdev = to_platform_device(dev);         \
              struct gpio_keys_drvdata *ddata = platform_get_drvdata(pdev);   \
                                                                              \
              return gpio_keys_attr_show_helper(ddata, buf,                   \
                                                type, only_disabled);         \
      }
      
      ATTR_SHOW_FN(keys, EV_KEY, false);
      ATTR_SHOW_FN(switches, EV_SW, false);
      ATTR_SHOW_FN(disabled_keys, EV_KEY, true);
      ATTR_SHOW_FN(disabled_switches, EV_SW, true);
      
      /*
       * ATTRIBUTES:
       *
       * /sys/devices/platform/gpio-keys/keys [ro]
       * /sys/devices/platform/gpio-keys/switches [ro]
       */
      static DEVICE_ATTR(keys, S_IRUGO, gpio_keys_show_keys, NULL);
      static DEVICE_ATTR(switches, S_IRUGO, gpio_keys_show_switches, NULL);
      
      #define ATTR_STORE_FN(name, type)                                       \
      static ssize_t gpio_keys_store_##name(struct device *dev,               \
                                            struct device_attribute *attr,    \
                                            const char *buf,                  \
                                            size_t count)                     \
      {                                                                       \
              struct platform_device *pdev = to_platform_device(dev);         \
              struct gpio_keys_drvdata *ddata = platform_get_drvdata(pdev);   \
              ssize_t error;                                                  \
                                                                              \
              error = gpio_keys_attr_store_helper(ddata, buf, type);          \
              if (error)                                                      \
                      return error;                                           \
                                                                              \
              return count;                                                   \
      }
      
      ATTR_STORE_FN(disabled_keys, EV_KEY);
      ATTR_STORE_FN(disabled_switches, EV_SW);
      
      /*
       * ATTRIBUTES:
       *
       * /sys/devices/platform/gpio-keys/disabled_keys [rw]
       * /sys/devices/platform/gpio-keys/disables_switches [rw]
       */
      static DEVICE_ATTR(disabled_keys, S_IWUSR | S_IRUGO,
                         gpio_keys_show_disabled_keys,
                         gpio_keys_store_disabled_keys);
      static DEVICE_ATTR(disabled_switches, S_IWUSR | S_IRUGO,
                         gpio_keys_show_disabled_switches,
                         gpio_keys_store_disabled_switches);
      
      static struct attribute *gpio_keys_attrs[] = {
              &dev_attr_keys.attr,
              &dev_attr_switches.attr,
              &dev_attr_disabled_keys.attr,
              &dev_attr_disabled_switches.attr,
              NULL,
      };
      
      static struct attribute_group gpio_keys_attr_group = {
              .attrs = gpio_keys_attrs,
      };
      
      #ifdef CONFIG_GPIOKEYS_AS_POWERKEY
      static void gpio_keys_long_press_func(struct work_struct *work)
      {
              struct long_press_key *key = &long_press_key;
              unsigned long end;
              unsigned long diff_time;
      
              end = jiffies;
              diff_time = jiffies_to_msecs(end - key->start);
              if ((key->press_sta == 1) && (diff_time >= 5000)) {
                      orderly_poweroff(true);
                      return;
              } else {
                      return;
              }
      }
      #endif
      
      static void gpio_keys_gpio_report_event(struct gpio_button_data *bdata)
      {
              const struct gpio_keys_button *button = bdata->button;
              struct input_dev *input = bdata->input;
              unsigned int type = button->type ?: EV_KEY;
              int state;
      #ifdef CONFIG_GPIOKEYS_AS_POWERKEY
              struct long_press_key *key = &long_press_key;
      #endif
      
              state = gpiod_get_value_cansleep(bdata->gpiod);
              if (state < 0) {
                      dev_err(input->dev.parent,
                              "failed to get gpio state: %d\n", state);
                      return;
              }
      
              if (type == EV_ABS) {
                      if (state)
                              input_event(input, type, button->code, button->value);
              } else {
      #ifdef CONFIG_GPIOKEYS_AS_POWERKEY
                      if (button->code != KEY_POWER) {
                              input_event(input, type, button->code, state);
                      } else {
                              if (state) {
                                      key->start = jiffies;
                                      key->press_sta = 1;
                                      queue_delayed_work(system_wq, &key->long_work,
                                              msecs_to_jiffies(5 * 1000));
                              } else if ((!state) && (key->start != 0)) {
                                      key->press_sta = 0;
                                      cancel_delayed_work(&key->long_work);
                                      input_event(input, EV_KEY, button->code, 1);
                                      input_sync(input);
                                      udelay(5000);
                                      input_event(input, EV_KEY, button->code, 0);
                                      input_sync(input);
                              }
                      }
      #else
                      input_event(input, type, button->code, state);
      #endif
      
              }
              input_sync(input);
      }
      
      static void gpio_keys_gpio_work_func(struct work_struct *work)
      {
              struct gpio_button_data *bdata =
                      container_of(work, struct gpio_button_data, work.work);
      
              gpio_keys_gpio_report_event(bdata);
      
              if (bdata->button->wakeup)
                      pm_relax(bdata->input->dev.parent);
      }
      
      static irqreturn_t gpio_keys_gpio_isr(int irq, void *dev_id)
      {
              struct gpio_button_data *bdata = dev_id;
      
              BUG_ON(irq != bdata->irq);
      
              if (bdata->button->wakeup)
                      pm_stay_awake(bdata->input->dev.parent);
      
              mod_delayed_work(system_wq,
                               &bdata->work,
                               msecs_to_jiffies(bdata->software_debounce));
      
              return IRQ_HANDLED;
      }
      
      static void gpio_keys_irq_timer(unsigned long _data)
      {
              struct gpio_button_data *bdata = (struct gpio_button_data *)_data;
              struct input_dev *input = bdata->input;
              unsigned long flags;
      
              spin_lock_irqsave(&bdata->lock, flags);
              if (bdata->key_pressed) {
                      input_event(input, EV_KEY, bdata->button->code, 0);
                      input_sync(input);
                      bdata->key_pressed = false;
              }
              spin_unlock_irqrestore(&bdata->lock, flags);
      }
      
      static irqreturn_t gpio_keys_irq_isr(int irq, void *dev_id)
      {
              struct gpio_button_data *bdata = dev_id;
              const struct gpio_keys_button *button = bdata->button;
              struct input_dev *input = bdata->input;
              unsigned long flags;
      
              BUG_ON(irq != bdata->irq);
      
              spin_lock_irqsave(&bdata->lock, flags);
      
              if (!bdata->key_pressed) {
                      if (bdata->button->wakeup)
                              pm_wakeup_event(bdata->input->dev.parent, 0);
      
                      input_event(input, EV_KEY, button->code, 1);
                      input_sync(input);
      
                      if (!bdata->release_delay) {
                              input_event(input, EV_KEY, button->code, 0);
                              input_sync(input);
                              goto out;
                      }
      
                      bdata->key_pressed = true;
              }
      
              if (bdata->release_delay)
                      mod_timer(&bdata->release_timer,
                              jiffies + msecs_to_jiffies(bdata->release_delay));
      out:
              spin_unlock_irqrestore(&bdata->lock, flags);
              return IRQ_HANDLED;
      }
      
      static void gpio_keys_quiesce_key(void *data)
      {
              struct gpio_button_data *bdata = data;
      
              if (bdata->gpiod) {
                      cancel_delayed_work_sync(&bdata->work);
      #ifdef CONFIG_GPIOKEYS_AS_POWERKEY
                      cancel_delayed_work_sync(&long_press_key.long_work);
      #endif
              } else {
                      del_timer_sync(&bdata->release_timer);
              }
      }
      
      static int gpio_keys_setup_key(struct platform_device *pdev,
                                      struct input_dev *input,
                                      struct gpio_button_data *bdata,
                                      const struct gpio_keys_button *button)
      {
              const char *desc = button->desc ? button->desc : "gpio_keys";
              struct device *dev = &pdev->dev;
              irq_handler_t isr;
              unsigned long irqflags;
              int irq;
              int error;
      
              bdata->input = input;
              bdata->button = button;
              spin_lock_init(&bdata->lock);
      
              /*
               * Legacy GPIO number, so request the GPIO here and
               * convert it to descriptor.
               */
              if (gpio_is_valid(button->gpio)) {
                      unsigned flags = GPIOF_IN;
      
                      if (button->active_low)
                              flags |= GPIOF_ACTIVE_LOW;
      
                      error = devm_gpio_request_one(&pdev->dev, button->gpio, flags,
                                                    desc);
                      if (error < 0) {
                              dev_err(dev, "Failed to request GPIO %d, error %d\n",
                                      button->gpio, error);
                              return error;
                      }
      
                      bdata->gpiod = gpio_to_desc(button->gpio);
                      if (!bdata->gpiod)
                              return -EINVAL;
      #if 0
                      if (button->debounce_interval) {
                              error = gpiod_set_debounce(bdata->gpiod,
                                              button->debounce_interval * 1000);
                              /* use timer if gpiolib doesn't provide debounce */
                              if (error < 0)
                                      bdata->software_debounce =
                                                      button->debounce_interval;
                      }
      #else
                      bdata->software_debounce = button->debounce_interval;
      #endif
      
                      if (button->irq) {
                              bdata->irq = button->irq;
                      } else {
                              irq = gpiod_to_irq(bdata->gpiod);
                              if (irq < 0) {
                                      error = irq;
                                      dev_err(dev,
                                              "Unable to get irq number for GPIO %d, error %d\n",
                                              button->gpio, error);
                                      return error;
                              }
                              bdata->irq = irq;
                      }
      
      #ifdef CONFIG_GPIOKEYS_AS_POWERKEY
                      INIT_DELAYED_WORK(&long_press_key.long_work,
                                      gpio_keys_long_press_func);
      #endif
                      INIT_DELAYED_WORK(&bdata->work, gpio_keys_gpio_work_func);
      
                      isr = gpio_keys_gpio_isr;
                      irqflags = IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING;
      
              } else {
                      if (!button->irq) {
                              dev_err(dev, "No IRQ specified\n");
                              return -EINVAL;
                      }
                      bdata->irq = button->irq;
      
                      if (button->type && button->type != EV_KEY) {
                              dev_err(dev, "Only EV_KEY allowed for IRQ buttons.\n");
                              return -EINVAL;
                      }
      
                      bdata->release_delay = button->debounce_interval;
                      setup_timer(&bdata->release_timer,
                                  gpio_keys_irq_timer, (unsigned long)bdata);
      
                      isr = gpio_keys_irq_isr;
                      irqflags = 0;
              }
      
              input_set_capability(input, button->type ?: EV_KEY, button->code);
      
              /*
               * Install custom action to cancel release timer and
               * workqueue item.
               */
              error = devm_add_action(&pdev->dev, gpio_keys_quiesce_key, bdata);
              if (error) {
                      dev_err(&pdev->dev,
                              "failed to register quiesce action, error: %d\n",
                              error);
                      return error;
              }
      
              /*
               * If platform has specified that the button can be disabled,
               * we don't want it to share the interrupt line.
               */
              if (!button->can_disable)
                      irqflags |= IRQF_SHARED;
      
              error = devm_request_any_context_irq(&pdev->dev, bdata->irq,
                                                   isr, irqflags, desc, bdata);
              if (error < 0) {
                      dev_err(dev, "Unable to claim irq %d; error %d\n",
                              bdata->irq, error);
                      return error;
              }
      
              return 0;
      }
      
      static void gpio_keys_report_state(struct gpio_keys_drvdata *ddata)
      {
              struct input_dev *input = ddata->input;
              int i;
      
              for (i = 0; i < ddata->pdata->nbuttons; i++) {
                      struct gpio_button_data *bdata = &ddata->data[i];
                      if (bdata->gpiod)
                              gpio_keys_gpio_report_event(bdata);
              }
              input_sync(input);
      }
      
      static int gpio_keys_open(struct input_dev *input)
      {
              struct gpio_keys_drvdata *ddata = input_get_drvdata(input);
              const struct gpio_keys_platform_data *pdata = ddata->pdata;
              int error;
      
              if (pdata->enable) {
                      error = pdata->enable(input->dev.parent);
                      if (error)
                              return error;
              }
      
              /* Report current state of buttons that are connected to GPIOs */
              gpio_keys_report_state(ddata);
      
              return 0;
      }
      
      static void gpio_keys_close(struct input_dev *input)
      {
              struct gpio_keys_drvdata *ddata = input_get_drvdata(input);
              const struct gpio_keys_platform_data *pdata = ddata->pdata;
      
              if (pdata->disable)
                      pdata->disable(input->dev.parent);
      }
      
      /*
       * Handlers for alternative sources of platform_data
       */
      
      #ifdef CONFIG_OF
      /*
       * Translate OpenFirmware node properties into platform_data
       */
      static struct gpio_keys_platform_data *
      gpio_keys_get_devtree_pdata(struct device *dev)
      {
              struct device_node *node, *pp;
              struct gpio_keys_platform_data *pdata;
              struct gpio_keys_button *button;
              int error;
              int nbuttons;
              int i;
      
              node = dev->of_node;
              if (!node)
                      return ERR_PTR(-ENODEV);
      
              nbuttons = of_get_available_child_count(node);
              if (nbuttons == 0)
                      return ERR_PTR(-ENODEV);
      
              pdata = devm_kzalloc(dev,
                                   sizeof(*pdata) + nbuttons * sizeof(*button),
                                   GFP_KERNEL);
              if (!pdata)
                      return ERR_PTR(-ENOMEM);
      
              pdata->buttons = (struct gpio_keys_button *)(pdata + 1);
              pdata->nbuttons = nbuttons;
      
              pdata->rep = !!of_get_property(node, "autorepeat", NULL);
      
              of_property_read_string(node, "label", &pdata->name);
      
              i = 0;
              for_each_available_child_of_node(node, pp) {
      #ifdef CONFIG_ARCH_SUNXI
                      struct gpio_config flags;
      #else
                      enum of_gpio_flags flags;
      #endif
      
                      button = &pdata->buttons[i++];
      
                      button->gpio = of_get_gpio_flags(pp, 0, (enum of_gpio_flags *)&flags);
                      if (button->gpio < 0) {
                              error = button->gpio;
                              if (error != -ENOENT) {
                                      if (error != -EPROBE_DEFER)
                                              dev_err(dev,
                                                      "Failed to get gpio flags, error: %d\n",
                                                      error);
                                      return ERR_PTR(error);
                              }
                      } else {
      #ifdef CONFIG_ARCH_SUNXI
                              button->active_low = flags.data & OF_GPIO_ACTIVE_LOW;
      #else
                              button->active_low = flags & OF_GPIO_ACTIVE_LOW;
      #endif
                      }
      
                      button->irq = irq_of_parse_and_map(pp, 0);
      
                      if (!gpio_is_valid(button->gpio) && !button->irq) {
                              dev_err(dev, "Found button without gpios or irqs\n");
                              return ERR_PTR(-EINVAL);
                      }
      
                      if (of_property_read_u32(pp, "linux,code", &button->code)) {
                              dev_err(dev, "Button without keycode: 0x%x\n",
                                      button->gpio);
                              return ERR_PTR(-EINVAL);
                      }
      
                      button->desc = of_get_property(pp, "label", NULL);
      
                      if (of_property_read_u32(pp, "linux,input-type", &button->type))
                              button->type = EV_KEY;
      
                      button->wakeup = of_property_read_bool(pp, "wakeup-source") ||
                                       /* legacy name */
                                       of_property_read_bool(pp, "gpio-key,wakeup");
      
                      button->can_disable = !!of_get_property(pp, "linux,can-disable", NULL);
      
                      if (of_property_read_u32(pp, "debounce-interval",
                                               &button->debounce_interval))
                              button->debounce_interval = 5;
              }
      
              if (pdata->nbuttons == 0)
                      return ERR_PTR(-EINVAL);
      
              return pdata;
      }
      
      static const struct of_device_id gpio_keys_of_match[] = {
              { .compatible = "gpio-keys", },
              { },
      };
      MODULE_DEVICE_TABLE(of, gpio_keys_of_match);
      
      #else
      
      static inline struct gpio_keys_platform_data *
      gpio_keys_get_devtree_pdata(struct device *dev)
      {
              return ERR_PTR(-ENODEV);
      }
      
      #endif
      
      static int gpio_keys_probe(struct platform_device *pdev)
      {
              struct device *dev = &pdev->dev;
              const struct gpio_keys_platform_data *pdata = dev_get_platdata(dev);
              struct gpio_keys_drvdata *ddata;
              struct input_dev *input;
              size_t size;
              int i, error;
              int wakeup = 0;
      
              if (!pdata) {
                      pdata = gpio_keys_get_devtree_pdata(dev);
                      if (IS_ERR(pdata))
                              return PTR_ERR(pdata);
              }
      
              size = sizeof(struct gpio_keys_drvdata) +
                              pdata->nbuttons * sizeof(struct gpio_button_data);
              ddata = devm_kzalloc(dev, size, GFP_KERNEL);
              if (!ddata) {
                      dev_err(dev, "failed to allocate state\n");
                      return -ENOMEM;
              }
      
              input = devm_input_allocate_device(dev);
              if (!input) {
                      dev_err(dev, "failed to allocate input device\n");
                      return -ENOMEM;
              }
      
              ddata->pdata = pdata;
              ddata->input = input;
              mutex_init(&ddata->disable_lock);
      
              platform_set_drvdata(pdev, ddata);
              input_set_drvdata(input, ddata);
      
              input->name = pdata->name ? : pdev->name;
              input->phys = "gpio-keys/input0";
              input->dev.parent = &pdev->dev;
              input->open = gpio_keys_open;
              input->close = gpio_keys_close;
      
              input->id.bustype = BUS_HOST;
              input->id.vendor = 0x0001;
              input->id.product = 0x0001;
              input->id.version = 0x0100;
      
              /* Enable auto repeat feature of Linux input subsystem */
              if (pdata->rep)
                      __set_bit(EV_REP, input->evbit);
      
              for (i = 0; i < pdata->nbuttons; i++) {
                      const struct gpio_keys_button *button = &pdata->buttons[i];
                      struct gpio_button_data *bdata = &ddata->data[i];
      
                      error = gpio_keys_setup_key(pdev, input, bdata, button);
                      if (error)
                              return error;
      
                      if (button->wakeup)
                              wakeup = 1;
              }
      
              error = sysfs_create_group(&pdev->dev.kobj, &gpio_keys_attr_group);
              if (error) {
                      dev_err(dev, "Unable to export keys/switches, error: %d\n",
                              error);
                      return error;
              }
      
              error = input_register_device(input);
              if (error) {
                      dev_err(dev, "Unable to register input device, error: %d\n",
                              error);
                      goto err_remove_group;
              }
      
              device_init_wakeup(&pdev->dev, wakeup);
      
              return 0;
      
      err_remove_group:
              sysfs_remove_group(&pdev->dev.kobj, &gpio_keys_attr_group);
              return error;
      }
      
      static int gpio_keys_remove(struct platform_device *pdev)
      {
              sysfs_remove_group(&pdev->dev.kobj, &gpio_keys_attr_group);
      
              device_init_wakeup(&pdev->dev, 0);
      
              return 0;
      }
      
      #ifdef CONFIG_PM_SLEEP
      static int gpio_keys_suspend(struct device *dev)
      {
              struct gpio_keys_drvdata *ddata = dev_get_drvdata(dev);
              struct input_dev *input = ddata->input;
              int i;
      
              if (device_may_wakeup(dev)) {
                      for (i = 0; i < ddata->pdata->nbuttons; i++) {
                              struct gpio_button_data *bdata = &ddata->data[i];
                              if (bdata->button->wakeup)
                                      enable_irq_wake(bdata->irq);
                      }
              } else {
                      mutex_lock(&input->mutex);
                      if (input->users)
                              gpio_keys_close(input);
                      mutex_unlock(&input->mutex);
              }
      
              return 0;
      }
      
      static int gpio_keys_resume(struct device *dev)
      {
              struct gpio_keys_drvdata *ddata = dev_get_drvdata(dev);
              struct input_dev *input = ddata->input;
              int error = 0;
              int i;
      
              if (device_may_wakeup(dev)) {
                      for (i = 0; i < ddata->pdata->nbuttons; i++) {
                              struct gpio_button_data *bdata = &ddata->data[i];
                              if (bdata->button->wakeup)
                                      disable_irq_wake(bdata->irq);
                      }
              } else {
                      mutex_lock(&input->mutex);
                      if (input->users)
                              error = gpio_keys_open(input);
                      mutex_unlock(&input->mutex);
              }
      
              if (error)
                      return error;
      
              gpio_keys_report_state(ddata);
              return 0;
      }
      #endif
      
      static SIMPLE_DEV_PM_OPS(gpio_keys_pm_ops, gpio_keys_suspend, gpio_keys_resume);
      
      static struct platform_driver gpio_keys_device_driver = {
              .probe          = gpio_keys_probe,
              .remove         = gpio_keys_remove,
              .driver         = {
                      .name   = "gpio-keys",
                      .pm     = &gpio_keys_pm_ops,
                      .of_match_table = of_match_ptr(gpio_keys_of_match),
              }
      };
      
      static int __init gpio_keys_init(void)
      {
              return platform_driver_register(&gpio_keys_device_driver);
      }
      
      static void __exit gpio_keys_exit(void)
      {
              platform_driver_unregister(&gpio_keys_device_driver);
      }
      
      late_initcall(gpio_keys_init);
      module_exit(gpio_keys_exit);
      
      MODULE_LICENSE("GPL");
      MODULE_AUTHOR("Phil Blundell <pb@handhelds.org>");
      MODULE_DESCRIPTION("Keyboard driver for GPIOs");
      MODULE_ALIAS("platform:gpio-keys");
      

      看了一下驱动,按键长按是 电源键。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: Linux4.9 A100 加载 gpio-keys 驱动可以使用,但是装载过程驱动报错,并且无法卸载。

      @yuzukitsuru
      意外发现 R818 TINA SDK 里面的 gpio_keys.c 和你的一模一样。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: Linux4.9 A100 加载 gpio-keys 驱动可以使用,但是装载过程驱动报错,并且无法卸载。

      @yuzukitsuru

      感谢大佬,我合并了一下: gpio_keys.c

      现在没有报错了。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: Linux4.9 A100 加载 gpio-keys 驱动可以使用,但是装载过程驱动报错,并且无法卸载。

      我开始以为这个问题可以不解决,结果Linux是可以用,但是进入安卓系统会直接挂掉:

      [    3.123534] input: soc@03000000:gpio_keys as /devices/platform/soc/soc@03000000:gpio_keys/input/input2
      [    3.134354] Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: gpio_keys_probe+0x844/0x848
      

      然后就没然后了。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: Linux4.9 A100 加载 gpio-keys 驱动可以使用,但是装载过程驱动报错,并且无法卸载。

      但是同样的配置用在旋转编码器 CONFIG_INPUT_GPIO_ROTARY_ENCODER=m 完全正常,也是中断模式。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: Linux4.9 A100 加载 gpio-keys 驱动可以使用,但是装载过程驱动报错,并且无法卸载。

      参考链接: Linux_GPIO_开发指南.pdf

      d520d153-770e-4c7a-86b5-0c725e45659b-image.png

      a0554512-69bc-4057-840b-2ddff9f1a625-image.png

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • Linux4.9 A100 加载 gpio-keys 驱动可以使用,但是装载过程驱动报错,并且无法卸载。

      kernel/linux-4.9/.config 配置:

      CONFIG_KEYBOARD_GPIO=m
      

      board.dts 配置:

                      gpio_keys {
                              device_type = "gpiokey";
                              compatible = "gpio-keys";
                              status = "okay";
      
                              power_key {
                                      device_type = "ok_key";
                                      label = "gpio key power";
                                      linux,code = <KEY_POWER>;
                                      gpios = <&pio PJ 1 0 1 0 1>;
                                      wakeup-source = <0x1>;
                              };
              };
      

      安装驱动 insmod /lib/modules/4.9.170/gpio_keys.ko:

      root@dragonboard:~# insmod /lib/modules/4.9.170/gpio_keys.ko
      [   35.432556] input: gpiokey as /devices/platform/soc/gpiokey/input/input4
      [   35.441194] Unable to handle kernel paging request at virtual address 100000000
      [   35.449447] pgd = ffffffc03c8e8000
      [   35.453317] [100000000] *pgd=0000000000000000, *pud=0000000000000000
      [   35.460308] Internal error: Oops: 86000005 [#1] PREEMPT SMP
      Segmentation fault
      [   35.460311] Modules linked in:root@dragonboard:~#  gpio_keys(+) 8723ds gt9xxnew_ts
      [   35.460325] CPU: 3 PID: 2010 Comm: insmod Not tainted 4.9.170 #41
      [   35.460327] Hardware name: sun50iw10 (DT)
      [   35.460330] task: ffffffc03ad20e00 task.stack: ffffffc03ca28000
      [   35.460335] PC is at 0x100000000
      [   35.460337] LR is at 0x100000000
      [   35.460341] pc : [<0000000100000000>] lr : [<0000000100000000>] pstate: 40000145
      [   35.460342] sp : ffffffc03ca2bab0
      [   35.460347] x29: 0000000100000000 x28: 0000000000000001
      [   35.460352] x27: 0000000000000000 x26: 0000000000000001
      [   35.460356] x25: ffffffc03b32e7d0 x24: ffffff80008d49d0
      [   35.460361] x23: 0000000000000005 x22: ffffff80008d4818
      [   35.460365] x21: 0000000000000000 x20: ffffff8008ae5000
      [   35.460369] x19: ffffffc03d3dec90 x18: 000000000000000a
      [   35.460374] x17: 0000000000000007 x16: 0000000000000001
      [   35.460378] x15: 000000000000033b x14: ffffff8008abd100
      [   35.460383] x13: 000000000214d000 x12: 0000000000000038
      [   35.460387] x11: 0101010101010101 x10: 7f7f7f7f7f7f7f7f
      [   35.460391] x9 : 0000000000000000 x8 : ffffffc03c5c2538
      [   35.460396] x7 : 0000000000000000 x6 : 000000000000448e
      [   35.460400] x5 : 000000003600e0f6 x4 : ffffffc03b0467b0
      [   35.460404] x3 : 0000000000000001 x2 : 0000000000000000
      [   35.460408] x1 : 0000000000000000 x0 : 0000000000000000
      [   35.460411]
      [   35.460411] SP: 0xffffffc03ca2ba30:
      [   35.460424] ba30  008d4818 ffffff80 00000005 00000000 008d49d0 ffffff80 3b32e7d0 ffffffc0
      [   35.460435] ba50  00000001 00000000 00000000 00000000 00000001 00000000 00000000 00000001
      [   35.460446] ba70  00000000 00000001 3ca2bab0 ffffffc0 00000000 00000001 40000145 00000000
      [   35.460458] ba90  3d3dec90 ffffffc0 08ae5000 ffffff80 ffffffff 0000007f 08ae5000 ffffff80
      [   35.460469] bab0  3ca2baf0 ffffffc0 08380314 ffffff80 3d3dec90 ffffffc0 3d3decf0 ffffffc0
      [   35.460481] bad0  008d4818 ffffff80 08a74000 ffffff80 08a74cf0 ffffff80 08a74000 ffffff80
      [   35.460492] baf0  3ca2bb20 ffffffc0 0837e738 ffffff80 00000000 00000000 008d4818 ffffff80
      [   35.460504] bb10  083802a0 ffffff80 0837e724 ffffff80 3ca2bb60 ffffffc0 0837fc0c ffffff80
      [   35.460508]
      [   35.460508] X4: 0xffffffc03b046730:
      [   35.460523] 6730  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
      [   35.460535] 6750  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
      [   35.460546] 6770  cccccccc cccccccc cccccccc cccccccc 3b03e600 ffffffc0 3d3d9ae0 ffffffc0
      [   35.460558] 6790  08383148 ffffff80 00000001 00000166 00000164 00000010 0887ecba ffffff80
      [   35.460569] 67b0  3b045e88 ffffffc0 3c5c2488 ffffffc0 00000000 00000000 00000000 00000000
      [   35.460580] 67d0  00000000 00000000 00000000 00000000 00000000 00000000 0838de4c ffffff80
      [   35.460591] 67f0  3b0467a8 ffffffc0 00000003 00000000 00000000 00000000 00000000 00000000
      [   35.460602] 6810  00000000 00000000 8f313930 00000000 00000000 00000000 00000000 00000000
      [   35.460606]
      [   35.460606] X8: 0xffffffc03c5c24b8:
      [   35.460618] 24b8  00000000 00000000 0838de4c ffffff80 3c5c2480 ffffffc0 00000003 00000000
      [   35.460628] 24d8  00000000 00000000 00000000 00000000 00000000 00000000 3cb04c66 00000008
      [   35.460639] 24f8  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [   35.460650] 2518  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [   35.460662] 2538  6b6b6b6b 6b6b6b6b 6b6b6b6b 6b6b6b6b 6b6b6b6b 6b6b6b6b 6b6b6b6b 6b6b6b6b
      [   35.460673] 2558  6b6b6b6b 6b6b6b6b 6b6b6b6b 6b6b6b6b 6b6b6b6b 6b6b6b6b 6b6b6b6b 6b6b6b6b
      [   35.460685] 2578  6b6b6b6b a56b6b6b cccccccc cccccccc 3c5c2d80 ffffffc0 0838d5dc ffffff80
      [   35.460696] 2598  081527c0 ffffff80 08153b94 ffffff80 08153cec ffffff80 08153da0 ffffff80
      [   35.460703]
      [   35.460703] X19: 0xffffffc03d3dec10:
      [   35.460714] ec10  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
      [   35.460726] ec30  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
      [   35.460738] ec50  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
      [   35.460749] ec70  cccccccc cccccccc cccccccc cccccccc 3d3d6b00 ffffffc0 ffffffff 00000000
      [   35.460761] ec90  3d006690 ffffffc0 3d36b080 ffffffc0 3d3d6b00 ffffffc0 3d3d92a8 ffffffc0
      [   35.460772] ecb0  3d3d8ca8 ffffffc0 3d0066a0 ffffffc0 3e234800 ffffffc0 08a74770 ffffff80
      [   35.460783] ecd0  3d3f11d8 ffffffc0 00000005 00000007 00000000 00000000 00000000 00000000
      [   35.460794] ecf0  00000000 00030003 3d3decf8 ffffffc0 3d3decf8 ffffffc0 3ad20e00 ffffffc0
      [   35.460799]
      [   35.460799] X25: 0xffffffc03b32e750:
      [   35.460811] e750  00000000 00000000 00000000 00000000 088227db ffffff80 00000124 00000000
      [   35.460822] e770  080fcee0 ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
      [   35.460833] e790  00000000 00000000 0881e79f ffffff80 00000124 00000000 080fcc6c ffffff80
      [   35.460844] e7b0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [   35.460855] e7d0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [   35.460866] e7f0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [   35.460877] e810  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [   35.460887] e830  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [   35.460890]
      [   35.460894] Process insmod (pid: 2010, stack limit = 0xffffffc03ca28000)
      [   35.460897] Stack: (0xffffffc03ca2bab0 to 0xffffffc03ca2c000)
      [   35.460902] baa0:                                   ffffffc03ca2baf0 ffffff8008380314
      [   35.460907] bac0: ffffffc03d3dec90 ffffffc03d3decf0 ffffff80008d4818 ffffff8008a74000
      [   35.460912] bae0: ffffff8008a74cf0 ffffff8008a74000 ffffffc03ca2bb20 ffffff800837e738
      [   35.460917] bb00: 0000000000000000 ffffff80008d4818 ffffff80083802a0 ffffff800837e724
      [   35.460922] bb20: ffffffc03ca2bb60 ffffff800837fc0c ffffff80008d4818 0000000000000000
      [   35.460927] bb40: ffffffc03cb15280 ffffff80086e0484 ffffffc03e197d28 ffffffc03d36b0e8
      [   35.460932] bb60: ffffffc03ca2bb70 ffffff800837f7c8 ffffffc03ca2bbb0 ffffff8008380bd8
      [   35.460937] bb80: ffffff80008d4818 ffffffc03ad20e00 0000000000000000 ffffff800897d000
      [   35.460942] bba0: ffffff80008d7000 ffffff800829e09c ffffffc03ca2bbe0 ffffff8008381a8c
      [   35.460947] bbc0: 00000000ffffffff ffffffc03ad20e00 0000000000000000 0000000100150014
      [   35.460952] bbe0: ffffffc03ca2bbf0 ffffff80008d7018 ffffffc03ca2bc00 ffffff80080839e0
      [   35.460957] bc00: ffffffc03ca2bc90 ffffff8008110f88 ffffff80008d4980 ffffff8008990000
      [   35.460962] bc20: ffffffc03c623048 ffffffc03c621200 0000000000000000 ffffff8008110f5c
      [   35.460967] bc40: ffffff80008d4980 ffffff8008990000 ffffffc03c623048 ffffff8008990000
      [   35.460972] bc60: 0000000000000000 ffffff80008d49d0 ffffffc03b32e7d0 0000000000000001
      [   35.460977] bc80: 0000000000000000 00000000000409aa ffffffc03ca2bcc0 ffffff80080ff83c
      [   35.460982] bca0: ffffff80008d4980 ffffffc03ca2be58 ffffffc03c623048 ffffff8008990000
      [   35.460987] bcc0: ffffffc03ca2be00 ffffff80080ffd50 00000000000001b8 00000000f6f931c0
      [   35.460992] bce0: ffffff800a0ec1b8 0000000000000000 0000000001555008 0000000000010000
      [   35.460997] bd00: ffffffc03ad20e00 0000000000000080 ffffff8008705000 ffffffc03ad20e00
      [   35.461002] bd20: ffffffc03b32aa80 ffffff8008ab2080 ffffff8008705000 ffffff8000000064
      [   35.461007] bd40: ffffff8000000072 ffffff800897d000 ffffffc00000006e 0000000001555008
      [   35.461012] bd60: ffffff8000000124 ffffff80080fccf4 ffffff800870a000 00000000024000c0
      [   35.461017] bd80: ffffffc03ca2bde0 ffffff8008147094 0000000000000000 0000000000000000
      [   35.461022] bda0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      [   35.461027] bdc0: 00006c656e72656b 0000000000000000 0000000000000000 0000000000000000
      [   35.461031] bde0: 0000000000000000 0000000000000000 0000000000000000 00000000000409aa
      [   35.461036] be00: 0000000000000000 ffffff8008083200 fffffffffffffe76 0000004036dd6000
      [   35.461041] be20: ffffffffffffffff 00000000f7067ad0 0000000060000010 0000000000000011
      [   35.461046] be40: 000000000000018a ffffff80080877c8 0000000000400004 ffffff800a0ac000
      [   35.461051] be60: 00000000000401b8 ffffff800a0eb7f8 ffffff800a0cc280 ffffff800a0cd510
      [   35.461056] be80: 0000000000001c00 00000000000022f0 0000000000000000 0000000000000000
      [   35.461060] bea0: 00000000000018f0 0000002600000025 0000000000000010 000000000000000c
      [   35.461065] bec0: 00000000f6f53008 00000000000401b8 0000000001555008 00000000ff9c3dd1
      [   35.461069] bee0: 00000000000401b8 0000000000000002 00000000ff9c3dd1 0000000000000080
      [   35.461074] bf00: 00000000000b17f8 0000000000000000 00000000f70d7000 0000000000000000
      [   35.461079] bf20: 00000000ff9c3018 00000000ff9c3008 0000000000019a5c 0000000000000000
      [   35.461083] bf40: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      [   35.461087] bf60: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      [   35.461092] bf80: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      [   35.461096] bfa0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      [   35.461101] bfc0: 00000000f7067ad0 0000000060000010 00000000f6f53008 0000000000000080
      [   35.461105] bfe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      [   35.461108] Call trace:
      [   35.461111] Exception stack(0xffffffc03ca2b8e0 to 0xffffffc03ca2ba10)
      [   35.461116] b8e0: ffffffc03d3dec90 0000007fffffffff ffffffc03ca2bab0 0000000100000000
      [   35.461121] b900: ffffffc03ca2b940 ffffff80080b7f64 ffffff8008ae5bb0 0000000000000000
      [   35.461126] b920: ffffff800838e294 ffffffc03ca2b980 ffffffc03ca2b970 ffffff800838e294
      [   35.461131] b940: ffffffc03ca2b960 ffffff80086e7ddc ffffffc03d3ded40 ffffffc03d3ded40
      [   35.461136] b960: ffffffc03ca2b970 ffffff80086e819c ffffffc03ca2b980 ffffff800838e2d0
      [   35.461140] b980: 0000000000000000 0000000000000000 0000000000000000 0000000000000001
      [   35.461145] b9a0: ffffffc03b0467b0 000000003600e0f6 000000000000448e 0000000000000000
      [   35.461149] b9c0: ffffffc03c5c2538 0000000000000000 7f7f7f7f7f7f7f7f 0101010101010101
      [   35.461154] b9e0: 0000000000000038 000000000214d000 ffffff8008abd100 000000000000033b
      [   35.461157] ba00: 0000000000000001 0000000000000007
      [   35.461160] [<0000000100000000>] 0x100000000
      [   35.461168] Code: bad PC value
      [   35.461172] ---[ end trace 907da43ec18b52e9 ]---
      root@dragonboard:~#
      

      使用测试:

      root@dragonboard:~# evtest /dev/input/event4
      Input driver version is 1.0.1
      Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
      Input device name: "gpiokey"
      Supported events:
        Event type 0 (Sync)
        Event type 1 (Key)
          Event code 116 (Power)
      Testing ... (interrupt to exit)
      Event: time 1329177649.837142, type 1 (Key), code 116 (Power), value 1
      Event: time 1329177649.837142, -------------- Report Sync ------------
      Event: time 1329177649.884949, type 1 (Key), code 116 (Power), value 0
      Event: time 1329177649.884949, -------------- Report Sync ------------
      Event: time 1329177654.314768, type 1 (Key), code 116 (Power), value 1
      Event: time 1329177654.314768, -------------- Report Sync ------------
      Event: time 1329177654.538283, type 1 (Key), code 116 (Power), value 0
      Event: time 1329177654.538283, -------------- Report Sync ------------
      Event: time 1329177654.538466, type 1 (Key), code 116 (Power), value 1
      Event: time 1329177654.538466, -------------- Report Sync ------------
      Event: time 1329177654.539263, type 1 (Key), code 116 (Power), value 0
      Event: time 1329177654.539263, -------------- Report Sync ------------
      Event: time 1329177654.828112, type 1 (Key), code 116 (Power), value 1
      Event: time 1329177654.828112, -------------- Report Sync ------------
      Event: time 1329177655.048398, type 1 (Key), code 116 (Power), value 0
      Event: time 1329177655.048398, -------------- Report Sync ------------
      Event: time 1329177655.282155, type 1 (Key), code 116 (Power), value 1
      Event: time 1329177655.282155, -------------- Report Sync ------------
      Event: time 1329177655.475772, type 1 (Key), code 116 (Power), value 0
      Event: time 1329177655.475772, -------------- Report Sync ------------
      

      中断正常:

      root@dragonboard:~# cat /proc/interrupts
                 CPU0       CPU1       CPU2       CPU3
        5:      15931      16899      32881      12213     GIC-0  27 Level     arch_timer
        7:          0          0          0          0  wakeupgen 119 Level     ppu_interrupt
        8:          0          0          0          0  wakeupgen  66 Level     30f0000.iommu
       17:          0          0          0          0  sunxi_pio_edge   7 Edge      rtw_wifi_gpio_wakeup
      185:          1          0          0          0  sunxi_pio_edge 134 Edge      sdc0 cd
      308:         13          0          0          0  sunxi_pio_edge 257 Edge      gpio key power
      

      不能卸载:

      root@dragonboard:~# rmmod gpio_keys
      rmmod: can't unload 'gpio_keys': Device or resource busy
      root@dragonboard:~# 
      
      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: XR829 使用 40M 晶振与使用 24M 晶振有什么区别

      @rcfly
      省流小助手: 用24Mhz可以省下一颗有源晶振。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: 突然发现 D1 / D1s 不支持 GD5F1GQ4UAYIG

      @xiaowenge

      2楼那个 在 lichee/brandy-2.0/u-boot-2018/drivers/mtd/awnand/spinand/physic/id.c 添加了 GD5F1GQ4UAYIG 配置

      发布在 MR Series
      tigger
      tigger
    • 回复: 突然发现 D1 / D1s 不支持 GD5F1GQ4UAYIG
      [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 <no error>
      [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->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 <nand>, # 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 <nand>, # 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 -> 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
      

      15c55292-e010-40b4-a7ee-368b01b369ef-4ca7826a04f6b2d440c1c239a81c42d.jpg

      GD5F1GQ4UBYIG 烧录OK,启动OK:

      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:<init_text:265>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" > /test.txt
      root@TinaLinux:/#
      root@TinaLinux:/#
      
      发布在 MR Series
      tigger
      tigger
    • 回复: Linux下的sd卡烧写工具LiveSuit

      试了一下,不是所有平台都支持 reboot efex,D1的tina就不支持。

      发布在 编译和烧写问题专区
      tigger
      tigger
    • 回复: 突然发现 D1 / D1s 不支持 GD5F1GQ4UAYIG

      7e9338cb-c01b-4e4c-9a6c-5bbfe0042899-3541e3b2af7176e7712f32422b6db46.jpg

      又翻出一片 MX35LF1GE4AB,看了 id.c 是支持的,换上试一试。

      发布在 MR Series
      tigger
      tigger
    • 回复: 突然发现 D1 / D1s 不支持 GD5F1GQ4UAYIG
      [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->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 <nand>, # 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 <nand>, # 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
      

      检测到了 GD5F1GQ4UBYIG,然而还是不行:

      [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
      

      17d5e76a-e4f7-4668-91bb-14900b2906ff-image.png

      发布在 MR Series
      tigger
      tigger
    • 回复: 突然发现 D1 / D1s 不支持 GD5F1GQ4UAYIG

      e4df52a6-f107-45c9-89d5-7b27d89f540c-df7adf65f4f19498f2c22501498bb06.jpg

      家里垃圾堆翻出一片新的 GD5F1GQ4UBYIG,刚好支持,我焊上去试一试。

      发布在 MR Series
      tigger
      tigger
    • 回复: 突然发现 D1 / D1s 不支持 GD5F1GQ4UAYIG

      在 lichee/brandy-2.0/u-boot-2018/drivers/mtd/awnand/spinand/physic/id.c 添加了 GD5F1GQ4UAYIG 配置:

      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,
              },
      

      发现并没有用:

      [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->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 <nand>, # 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 <nand>, # 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
      

      294ecf5c-cafe-4ce5-a45c-6337004a6b1f-image.png

      发布在 MR Series
      tigger
      tigger
    • 突然发现 D1 / D1s 不支持 GD5F1GQ4UAYIG

      5c3a6063-1605-46c7-a0ce-55d1b63cf2f6-3b79685db2648b9eeb02699429151f7.jpg

      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->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 ###
      

      突然发现 D1 / D1s 不支持 GD5F1GQ4UAYIG

      lichee/brandy-2.0/u-boot-2018/drivers/mtd/awnand/spinand/physic/id.c:

      
      
      // SPDX-License-Identifier: GPL-2.0
      
      #define pr_fmt(fmt) "sunxi-spinand-phy: " fmt
      #include <common.h>
      #include <linux/kernel.h>
      #include <linux/errno.h>
      #include <linux/mtd/aw-spinand.h>
      #include <fdt_support.h>
      #include <fdtdec.h>
      
      #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->info->phy_info;
      
              return pinfo->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->info->phy_info;
      
              cnt = min(cnt, MAX_ID_LEN);
              for (i = 0; i < cnt; i++)
                      id[i] = pinfo->NandID[i];
      }
      
      static unsigned int aw_spinand_info_sector_size(struct aw_spinand_chip *chip)
      {
              return 1 << SECTOR_SHIFT;
      }
      
      static unsigned int aw_spinand_info_phy_page_size(struct aw_spinand_chip *chip)
      {
              struct aw_spinand_phy_info *pinfo = chip->info->phy_info;
      
              return pinfo->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->info->phy_info;
      
              return pinfo->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->info->phy_info;
      
              return pinfo->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->info->phy_info;
      
              return pinfo->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->info->phy_info;
      
              return pinfo->DieCntPerChip;
      }
      
      static unsigned int aw_spinand_info_total_size(struct aw_spinand_chip *chip)
      {
              struct aw_spinand_phy_info *pinfo = chip->info->phy_info;
      
              return pinfo->DieCntPerChip * pinfo->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->info->phy_info;
      
              return pinfo->OperationOpt;
      }
      
      static int aw_spinand_info_max_erase_times(struct aw_spinand_chip *chip)
      {
              struct aw_spinand_phy_info *pinfo = chip->info->phy_info;
      
              return pinfo->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->info);
      
              struct aw_spinand_phy_info *info = chip->info->phy_info;
      
              switch (info->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 < ARRAY_SIZE(spinand_factory); i++) {
                      m = &spinand_factory[i];
                      pinfo = chip->info->phy_info;
                      for (j = 0; j < m->cnt; j++)
                              if (pinfo == &m->info[j])
                                      return m->name;
              }
      
              /*for compatible fdt support spi-nand*/
              ret = spinand_get_chip_munufacture(chip, &m_name);
              if (ret < 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 < ARRAY_SIZE(spinand_factory); index++) {
                      m = &spinand_factory[index];
                      if (m->id == id) {
                              pr_info("detect munufacture from id table: %s\n", m->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 < m->cnt; i++) {
                      int match = 1;
      
                      pinfo = &m->info[i];
                      for (j = 1; j < MAX_ID_LEN; j++) {
                              /* 0xFF matching all ID value */
                              if (pinfo->NandID[j] != id[j] &&
                                              pinfo->NandID[j] != 0xFF)
                                      break;
      
                              if (pinfo->NandID[j] != 0xFF)
                                      match++;
                      }
      
                      if (match > match_max) {
                              match_max = match;
                              match_index = i;
                      }
              }
      
              if (match_max > 1)
                      return &m->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 &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(&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 < 0) {
                      pr_err("get spi-nand node from fdt failed\n");
                      goto err;
              }
      
              ret = fdt_getprop_string(working_fdt, node_offset, "model", &model);
              if (ret < 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", &id);
              if (ret < 0) {
                      pr_err("get spi-nand id Low 4 Byte from fdt fail\n");
                      goto err;
              }
              len = sizeof(id);
              memmove(info.NandID, &id, min(MAX_ID_LEN, len));
      
              id = 0xffffffff;
              ret = fdt_getprop_u32(working_fdt, node_offset, "id-1", &id);
              if (ret < 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), &id, max(MAX_ID_LEN, len) - min(MAX_ID_LEN, len));
      
              ret = fdt_getprop_u32(working_fdt, node_offset, "die_cnt_per_chip", &(info.DieCntPerChip));
              if (ret < 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", &(info.BlkCntPerDie));
              if (ret < 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", &(info.PageCntPerBlk));
              if (ret < 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", &(info.SectCntPerPage));
              if (ret < 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", &(info.OobSizePerPage));
              if (ret < 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", &bad_blk_mark_pos);
              if (ret < 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 < 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", &(info.EccType));
              if (ret < 0) {
                      pr_err("get spi-nand EccFlag from fdt fail\n");
                      goto err;
              }
      
              ret = fdt_getprop_u32(working_fdt, node_offset, "ecc_protected_type", &(info.EccProtectedType));
              if (ret < 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", &rx_bus_width);
              if (ret < 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", &tx_bus_width);
              if (ret < 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",
                              &quad_read_not_need_enable);
              if (ret < 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",
                              &read_seq_need_onedummy);
              if (ret < 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 < 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", &(info.ecc_status_shift));
              if (ret < 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 &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 = &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->NandID[0]) {
                      pm->id = info->NandID[0];
                      pm->info = info;
                      chip->info = &aw_spinand_info;
                      chip->info->phy_info = info;
                      ret = spinand_get_chip_munufacture(chip, &(pm->name));
                      if (ret < 0)
                              goto err;
                      else
                              pr_info("detect munufacture from fdt: %s \n", pm->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 < MAX_ID_LEN; i++) {
                      /*0xff match all id value*/
                      if (id[i] != info->NandID[i] && info->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->info = &aw_spinand_info;
              chip->info->phy_info = pinfo;
      
              pr_info("========== arch info ==========\n");
              pr_info("Model:               %s\n", pinfo->Model);
              pr_info("Munufacture:         %s\n", aw_spinand_info_manufacture(chip));
              pr_info("DieCntPerChip:       %u\n", pinfo->DieCntPerChip);
              pr_info("BlkCntPerDie:        %u\n", pinfo->BlkCntPerDie);
              pr_info("PageCntPerBlk:       %u\n", pinfo->PageCntPerBlk);
              pr_info("SectCntPerPage:      %u\n", pinfo->SectCntPerPage);
              pr_info("OobSizePerPage:      %u\n", pinfo->OobSizePerPage);
              pr_info("BadBlockFlag:        0x%x\n", pinfo->BadBlockFlag);
              pr_info("OperationOpt:        0x%x\n", pinfo->OperationOpt);
              pr_info("MaxEraseTimes:       %d\n", pinfo->MaxEraseTimes);
              pr_info("EccFlag:             0x%x\n", pinfo->EccFlag);
              pr_info("EccType:             %d\n", pinfo->EccType);
              pr_info("EccProtectedType:    %d\n", pinfo->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->ops;
              int ret, dummy = 0;
      
      retry:
              ret = ops->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->NandID),
                              *((__u32 *)pinfo->NandID + 1));
              return aw_spinand_info_init(chip, pinfo);
      }
      
      发布在 MR Series
      tigger
      tigger
    • 回复: 第一次编译A133 Android SDK,请问这是什么问题呢?

      发现1G的 DDR跑安卓还是不太够,动不动内存警告,使用交换分区:

      [ 1354.972377] warn_alloc: 86 callbacks suppressed
      [ 1354.972383] dashi.benchmark: page allocation failure: order:0, mode:0x240000a(GFP_NOIO|__GFP_HIGHMEM|__GFP_MOVABLE)
      [ 1355.001185] CPU: 1 PID: 2532 Comm: dashi.benchmark Tainted: G           O    4.9.170 #13
      [ 1355.010298] Hardware name: sun50iw10 (DT)
      [ 1355.014823] Call trace:
      [ 1355.017588] [<ffffff800808c038>] dump_backtrace+0x0/0x2b8
      [ 1355.023649] [<ffffff800808c314>] show_stack+0x24/0x30
      [ 1355.029322] [<ffffff800847c160>] dump_stack+0x90/0xb0
      [ 1355.035004] [<ffffff80081d3118>] warn_alloc+0x130/0x148
      [ 1355.040882] [<ffffff80081d34f4>] __alloc_pages_nodemask+0x334/0xba8
      [ 1355.047935] [<ffffff8008232190>] zs_malloc+0x168/0x4e8
      [ 1355.053713] [<ffffff80085f69b0>] zram_bvec_rw.isra.22+0x410/0x880
      [ 1355.060575] [<ffffff80085f6ea8>] zram_rw_page+0x88/0x110
      [ 1355.066562] [<ffffff800827d58c>] bdev_write_page+0x84/0xc8
      [ 1355.072744] [<ffffff8008217300>] __swap_writepage+0x78/0x3b0
      [ 1355.079113] [<ffffff8008217674>] swap_writepage+0x3c/0x60
      [ 1355.085191] [<ffffff80081e1c8c>] shrink_page_list+0x5c4/0xda0
      [ 1355.091659] [<ffffff80081e2be0>] shrink_inactive_list+0x1a8/0x540
      [ 1355.098522] [<ffffff80081e3784>] shrink_node_memcg+0x4b4/0x6d0
      [ 1355.105086] [<ffffff80081e3a74>] shrink_node+0xd4/0x350
      [ 1355.110962] [<ffffff80081e3dc8>] do_try_to_free_pages+0xd8/0x330
      [ 1355.117729] [<ffffff80081e4120>] try_to_free_pages+0x100/0x290
      [ 1355.124300] [<ffffff80081d370c>] __alloc_pages_nodemask+0x54c/0xba8
      [ 1355.131355] [<ffffff800885c358>] binder_update_page_range+0x2c0/0x800
      [ 1355.138603] [<ffffff800885d248>] binder_alloc_new_buf_locked+0x208/0x580
      [ 1355.146147] [<ffffff800885d610>] binder_alloc_new_buf+0x50/0x78
      [ 1355.152812] [<ffffff8008857284>] binder_transaction+0x594/0x2370
      [ 1355.159576] [<ffffff8008859d70>] binder_thread_write+0xd10/0x1850
      [ 1355.166432] [<ffffff800885b2d0>] binder_ioctl+0xa20/0xd58
      [ 1355.172509] [<ffffff80082a5fdc>] compat_SyS_ioctl+0xbc/0x1d78
      [ 1355.178984] [<ffffff8008083540>] el0_svc_naked+0x34/0x38
      [ 1355.186067] Mem-Info:
      [ 1355.188740] active_anon:57061 inactive_anon:57057 isolated_anon:35
      [ 1355.188740]  active_file:10273 inactive_file:8539 isolated_file:16
      [ 1355.188740]  unevictable:743 dirty:21 writeback:0 unstable:0
      [ 1355.188740]  slab_reclaimable:7022 slab_unreclaimable:12955
      [ 1355.188740]  mapped:18343 shmem:1087 pagetables:4604 bounce:0
      [ 1355.188740]  free:3231 free_pcp:156 free_cma:26
      [ 1355.228120] Node 0 active_anon:227160kB inactive_anon:227024kB active_file:39480kB inactive_file:34020kB unevictable:2972kB isolated(anon):140kB isolated(file):64kB mapped:73272kB dirty:84kB writeback:0kB shmem:4348kB writeback_tmp:0kB unstable:0kB pages_scanned:44 all_unreclaimable? no
      [ 1355.256809] DMA free:4212kB min:3960kB low:7548kB high:8540kB active_anon:226332kB inactive_anon:226368kB active_file:37716kB inactive_file:34028kB unevictable:2972kB writepending:88kB present:1048576kB managed:993884kB mlocked:2972kB slab_reclaimable:27864kB slab_unreclaimable:51816kB kernel_stack:16240kB pagetables:18416kB bounce:0kB free_pcp:2264kB local_pcp:124kB free_cma:264kB
      [ 1355.295277] lowmem_reserve[]: 0 0 0
      [ 1355.299328] DMA: 823*4kB (UMHC) 97*8kB (UMHC) 22*16kB (MHC) 22*32kB (H) 18*64kB (H) 3*128kB (H) 3*256kB (H) 0*512kB 0*1024kB 0*2048kB 0*4096kB = 7428kB
      [ 1355.315230] 21280 total pagecache pages
      [ 1355.319695] 2429 pages in swap cache
      [ 1355.323904] Swap cache stats: add 172850, delete 170430, find 20693/40184
      [ 1355.331619] Free swap  = 606220kB
      [ 1355.335356] Total swap = 745408kB
      [ 1355.339184] 262144 pages RAM
      [ 1355.342467] 0 pages HighMem/MovableOnly
      [ 1355.346834] 13673 pages reserved
      [ 1355.350529] 2048 pages cma reserved
      [ 1390.266736] type=1400 audit(1648307183.535:471): avc: denied { getattr } for comm="dashi.benchmark" path="/proc/vmstat" dev="proc" ino=4026532021 scontext=u:r:untrusted_app_27:s0:c68,c256,c512,c768 tcontext=u:object_r:proc_vmstat:s0 tclass=file permissive=1 app=com.ludashi.benchmark
      [ 1390.298115] type=1400 audit(1648307268.141:472): avc: denied { open } for comm="GC_start_routin" path="/proc/uptime" dev="proc" ino=4026531978 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:proc_uptime:s0 tclass=file permissive=1 app=com.ludashi.benchmark2
      [ 1390.326671] type=1400 audit(1648307268.141:473): avc: denied { open } for comm="GC_start_routin" path="/proc/uptime" dev="proc" ino=4026531978 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:proc_uptime:s0 tclass=file permissive=1 app=com.ludashi.benchmark2 duplicate messages suppressed
      [ 1390.364207] type=1400 audit(1648307268.141:475): avc: denied { getattr } for comm="GC_start_routin" path="/proc/uptime" dev="proc" ino=4026531978 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:proc_uptime:s0 tclass=file permissive=1 app=com.ludashi.benchmark2
      
      发布在 编译和烧写问题专区
      tigger
      tigger
    • 回复: A100 tina pwm7 PI6 测试

      使能pwm7:

      echo 7 > /sys/class/pwm/pwmchip0/export
      echo 25000000 > /sys/class/pwm/pwmchip0/pwm7/period
      echo 12000000 > /sys/class/pwm/pwmchip0/pwm7/duty_cycle
      echo 1 > /sys/class/pwm/pwmchip0/pwm7/enable
      

      查看pwm信息:

      mount -t debugfs none /sys/kernel/debug;
      cat /sys/kernel/debug/pwm
      
      # cat /sys/kernel/debug/pwm
      platform/300a000.pwm, 16 PWM devices
       pwm-0   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-1   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-2   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-3   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-4   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-5   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-6   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-7   (sysfs               ): requested enabled period: 25000000 ns duty: 12000000 ns polarity: normal
       pwm-8   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-9   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-10  ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-11  ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-12  ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-13  ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-14  ((null)              ): period: 0 ns duty: 0 ns polarity: normal
       pwm-15  ((null)              ): period: 0 ns duty: 0 ns polarity: normal
      
      发布在 MR Series
      tigger
      tigger
    • 回复: A100 tina pwm7 PI6 测试

      用io翻转测试pwm:

      echo 262 > /sys/class/gpio/export
      echo out > /sys/class/gpio/gpio262/direction
      while [ 1 ]; do echo 1 > /sys/class/gpio/gpio262/value ;echo 0 > /sys/class/gpio/gpio262/value ;   done;
      
      发布在 MR Series
      tigger
      tigger
    • A100 tina pwm7 PI6 测试

      board.dts:

                      pio: pinctrl@0300b000 {
      ...
                              pwm7_pin_a: pwm7@0 {
                                      allwinner,pins = "PI6";
                                      allwinner,function = "pwm7";
                                      allwinner,muxsel = <0x04>;
                                      allwinner,drive = <0x2>;
                                      allwinner,pull = <0>;
                                      allwinner,data = <0xffffffff>;
                              };
      
                              pwm7_pin_b: pwm7@1 {
                                      allwinner,pins = "PI6";
                                      allwinner,function = "io_disabled";
                                      allwinner,muxsel = <0x07>;
                                      allwinner,drive = <0x2>;
                                      allwinner,pull = <0>;
                                      allwinner,data = <0xffffffff>;
                              };
      ...
      
                      pwm7: pwm7@0300a000 {
                              pinctrl-names = "active", "sleep";
                              pinctrl-0 = <&pwm7_pin_a>;
                              pinctrl-1 = <&pwm7_pin_b>;
                              status = "okay"
                      };
      
      

      .config 配置:

      CONFIG_PWM=y
      CONFIG_PWM_SYSFS=y
      CONFIG_PWM_SUNXI_GROUP=y
      
      发布在 MR Series
      tigger
      tigger
    • 请问 A100 和 A133 两个CPU 的区别

      A133 和A100有啥区别?我从CPU datasheet上来看,基本是一模一样的。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: 小白求助,hdmi相关

      分两步走:
      ① 抓usb camera的图像到文件,看是哪种格式 YUV,RGB,JEPG
      ② 显示指定格式文件到 fb0

      发布在 MR Series
      tigger
      tigger
    • 回复: Buildroot-2022.2主线已经支持Nezha开发板,原来有这么多大佬喜欢这款芯片,真的太香了!

      主线会不会驱动不全?

      发布在 MR Series
      tigger
      tigger
    • 回复: A100 + 8723DS 安卓上面点击开WIFI, 发现并没有开起来,控制台提示这个错误信息

      8f086275-d8f8-4ded-abb7-d80abe078fef-image.png

      终于搞定: https://www.voycn.com/article/quanzhia33-android44-rtl8723ds-wifibtqudongdiaoshi

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: A100 + 8723DS 安卓上面点击开WIFI, 发现并没有开起来,控制台提示这个错误信息

      按下wifi使能按钮之后logcat 日志:

      130|console:/ #
      130|console:/ # logcat -c
      console:/ # logcat
      [ 8585.702223] logd: logdr: UID=0 GID=0 PID=29922 b tail=0 logMask=19 pid=0 start=0ns timeout=0ns
      --------- beginning of main
      03-26 19:37:00.003  5374  5374 D KeyguardClockSwitch: Updating clock: 737
      03-26 19:37:25.316  1818  1818 E AW_PowerHAL: Error opening /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies: No such file or directory
      03-26 19:37:25.316  1818  1818 E AW_PowerHAL: Error opening /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies: No such file or directory
      03-26 19:37:25.383  6294  6294 W SettingsMetricsFeature: action(Pair<Integer, Object>... taggedData) is deprecated, Use action(int, int, int, String, int) instead.
      03-26 19:37:25.385  2326  2635 I WifiService: setWifiEnabled package=com.android.settings uid=1000 enable=true
      03-26 19:37:25.385  2326  5226 D WifiController: StaEnabledState.enter()
      03-26 19:37:25.386  2326  5227 D WifiActiveModeWarden: received a message in WifiDisabledState: { when=0 what=0 target=com.android.internal.util.StateMachine$SmHandler }
      03-26 19:37:25.386  2326  5227 D WifiActiveModeWarden: Switching from WifiDisabledState to ClientMode
      03-26 19:37:25.386  2326  5227 D WifiActiveModeWarden: Entering ClientModeActiveState
      03-26 19:37:25.387  2326  5227 D WifiClientModeManager: entering IdleState
      03-26 19:37:25.387  2326  5227 D WifiActiveModeWarden: State changed from client mode. state = 2
      03-26 19:37:25.396  2326  2326 D WifiP2pService: Wifi enabled=false, P2P Interface availability=false
      03-26 19:37:25.399  1808  8018 D audio_hw_primary: start_output_stream
      03-26 19:37:25.400  1808  8018 V audio_platform: disable backend pcm(direction:PCM_OUT)
      03-26 19:37:25.400  1808  8018 D audio_route: Apply path: out-reset
      03-26 19:37:25.400  1808  8018 V audio_platform: mode(0),devices(0x2):platform device:OUT_SPK(0x3)
      03-26 19:37:25.400  1808  8018 D audio_route: Apply path: media-single-speaker
      03-26 19:37:25.400  1808  8018 D audio_hw_primary: select device(out):pdev:OUT_SPK, path:media-single-speaker
      03-26 19:37:25.400  1808  8018 V audio_platform: mode(0),devices(0x2):platform device:OUT_SPK(0x3)
      03-26 19:37:25.400  1808  8018 D audio_hw_primary: +++++++++++++++ start_output_stream: pcm sample_rate: 48000,pcm fmt: 0x00000000,pcm channels: 2
      03-26 19:37:25.494  1826  2002 D AudioFlinger: mixer(0xec9cff40) throttle end: throttle time(9)
      [ 8589.048320] sunxi-wlan soc@03000000:wlan@0: bus_index: 1
      03-26 19:37:27.025  2326  2348 D EthernetNetworkFactoryExt: interfaceAdded: iface = wlan0
      03-26 19:37:27.025  2326  5360 I EthernetTracker: maybeTrackInterface wlan0
      03-26 19:37:27.028  2326  5212 W BestClock: java.time.DateTimeException: Missing NTP fix
      03-26 19:37:27.036  2326  2348 I EthernetTracker: interfaceLinkStateChanged, iface: wlan0, up: false
      03-26 19:37:27.038  2326  2348 D EthernetNetworkFactoryExt: interfaceLinkStateChanged: iface = wlan0, up = false
      03-26 19:37:27.039  2326  2348 D EthernetNetworkFactoryExt: interfaceAdded: iface = wlan1
      03-26 19:37:27.039  2326  5360 I EthernetTracker: maybeTrackInterface wlan1
      03-26 19:37:27.049  2326  2348 I EthernetTracker: interfaceLinkStateChanged, iface: wlan1, up: false
      03-26 19:37:27.050  2326  2348 D EthernetNetworkFactoryExt: interfaceLinkStateChanged: iface = wlan1, up = false
      03-26 19:37:27.057  1804  5366 I netd    : trafficSwapActiveStatsMap() <27.20ms>
      03-26 19:37:27.064  1804  5366 I netd    : tetherGetStats() <4.73ms>
      03-26 19:37:27.081  2326  5212 W BestClock: java.time.DateTimeException: Missing NTP fix
      03-26 19:37:27.087  2326  5214 W BestClock: java.time.DateTimeException: Missing NTP fix
      03-26 19:37:28.631  1808  1870 D audio_hw_primary: out_standby
      --------- beginning of system
      [ 8594.444177] init: Unable to set property 'wlan.driver.status' to 'timeout' from uid:1010 gid:1010 pid:5346: Property type check failed, value doesn't match expected type 'enum ok unloaded'
      03-26 19:37:31.066  5346  5346 I android.hardware.wifi@1.0-service-lazy: Timeout, register net device wlan0/p2p0 failed.
      03-26 19:37:31.089  5346  5346 W libc    : Unable to set property "wlan.driver.status" to "timeout": error code: 0x14
      03-26 19:37:31.119  2326  2348 D EthernetNetworkFactoryExt: interfaceRemoved: iface = wlan0
      03-26 19:37:31.119  2326  5360 D EthernetNetworkFactory: updateCapabilityFilter: [ Transports: ETHERNET Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&NOT_ROAMING&NOT_CONGESTED LinkUpBandwidth>=100000Kbps LinkDnBandwidth>=100000Kbps]
      03-26 19:37:31.119  2326  5360 D EthernetNetworkFactory: acceptRequest, request: NetworkRequest [ REQUEST id=1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ], score: 0
      03-26 19:37:31.120  2326  5360 I EthernetNetworkFactory: networkForRequest, request: NetworkRequest [ REQUEST id=1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ], network: NetworkInterfaceState{ refCount: 2, iface: eth0, up: false, hwAddress: 36:c9:e3:f1:b8:05, networkInfo: [type: Ethernet[], state: DISCONNECTED/IDLE, reason: (unspecified), extra: (none), failover: false, available: false, roaming: false], networkCapabilities: [ Transports: ETHERNET Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&NOT_ROAMING&NOT_CONGESTED LinkUpBandwidth>=100000Kbps LinkDnBandwidth>=100000Kbps], networkAgent: null, score: 0, ipClient: null,linkProperties: {LinkAddresses: [ ] DnsAddresses: [ ] Domains: null MTU: 0 Routes: [ ]}}
      03-26 19:37:31.120  2326  5360 D EthernetNetworkFactory: acceptRequest, request: NetworkRequest [ REQUEST id=10, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ], score: 0
      03-26 19:37:31.120  2326  5360 I EthernetNetworkFactory: networkForRequest, request: NetworkRequest [ REQUEST id=10, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ], network: NetworkInterfaceState{ refCount: 2, iface: eth0, up: false, hwAddress: 36:c9:e3:f1:b8:05, networkInfo: [type: Ethernet[], state: DISCONNECTED/IDLE, reason: (unspecified), extra: (none), failover: false, available: false, roaming: false], networkCapabilities: [ Transports: ETHERNET Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&NOT_ROAMING&NOT_CONGESTED LinkUpBandwidth>=100000Kbps LinkDnBandwidth>=100000Kbps], networkAgent: null, score: 0, ipClient: null,linkProperties: {LinkAddresses: [ ] DnsAddresses: [ ] Domains: null MTU: 0 Routes: [ ]}}
      03-26 19:37:31.124  2326  5212 W BestClock: java.time.DateTimeException: Missing NTP fix
      03-26 19:37:31.143  1804  5366 I netd    : trafficSwapActiveStatsMap() <17.98ms>
      03-26 19:37:31.149  1804  5366 I netd    : tetherGetStats() <4.44ms>
      03-26 19:37:31.165  2326  5212 W BestClock: java.time.DateTimeException: Missing NTP fix
      03-26 19:37:31.168  2326  5214 W BestClock: java.time.DateTimeException: Missing NTP fix
      03-26 19:37:31.219  2326  2348 D EthernetNetworkFactoryExt: interfaceRemoved: iface = wlan1
      03-26 19:37:31.219  2326  5360 D EthernetNetworkFactory: updateCapabilityFilter: [ Transports: ETHERNET Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&NOT_ROAMING&NOT_CONGESTED LinkUpBandwidth>=100000Kbps LinkDnBandwidth>=100000Kbps]
      03-26 19:37:31.220  2326  5360 D EthernetNetworkFactory: acceptRequest, request: NetworkRequest [ REQUEST id=1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ], score: 0
      03-26 19:37:31.220  2326  5360 I EthernetNetworkFactory: networkForRequest, request: NetworkRequest [ REQUEST id=1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ], network: NetworkInterfaceState{ refCount: 2, iface: eth0, up: false, hwAddress: 36:c9:e3:f1:b8:05, networkInfo: [type: Ethernet[], state: DISCONNECTED/IDLE, reason: (unspecified), extra: (none), failover: false, available: false, roaming: false], networkCapabilities: [ Transports: ETHERNET Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&NOT_ROAMING&NOT_CONGESTED LinkUpBandwidth>=100000Kbps LinkDnBandwidth>=100000Kbps], networkAgent: null, score: 0, ipClient: null,linkProperties: {LinkAddresses: [ ] DnsAddresses: [ ] Domains: null MTU: 0 Routes: [ ]}}
      03-26 19:37:31.221  2326  5360 D EthernetNetworkFactory: acceptRequest, request: NetworkRequest [ REQUEST id=10, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ], score: 0
      03-26 19:37:31.221  2326  5360 I EthernetNetworkFactory: networkForRequest, request: NetworkRequest [ REQUEST id=10, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ], network: NetworkInterfaceState{ refCount: 2, iface: eth0, up: false, hwAddress: 36:c9:e3:f1:b8:05, networkInfo: [type: Ethernet[], state: DISCONNECTED/IDLE, reason: (unspecified), extra: (none), failover: false, available: false, roaming: false], networkCapabilities: [ Transports: ETHERNET Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&NOT_ROAMING&NOT_CONGESTED LinkUpBandwidth>=100000Kbps LinkDnBandwidth>=100000Kbps], networkAgent: null, score: 0, ipClient: null,linkProperties: {LinkAddresses: [ ] DnsAddresses: [ ] Domains: null MTU: 0 Routes: [ ]}}
      03-26 19:37:31.440  5346  5346 E android.hardware.wifi@1.0-service-lazy: Failed to load WiFi driver
      03-26 19:37:31.440  5346  5346 E android.hardware.wifi@1.0-service-lazy: Failed to initialize firmware mode controller
      03-26 19:37:31.440  5346  5346 E android.hardware.wifi@1.0-service-lazy: Wifi HAL start failed
      03-26 19:37:31.441  2326  5227 E HalDevMgr: Cannot start IWifi: 9 ()
      03-26 19:37:31.441  2326  5298 E HalDevMgr: IWifiEventCallback.onFailure: 9 ()
      03-26 19:37:31.441  2326  5227 E WifiVendorHal: Failed to start vendor HAL
      03-26 19:37:31.441  2326  5227 E WifiNative: Failed to start vendor HAL
      03-26 19:37:31.441  2326  5227 E WifiNative: Failed to start Hal
      03-26 19:37:31.441  2326  5227 E WifiClientModeManager: Failed to create ClientInterface. Sit in Idle
      03-26 19:37:31.445  2326  5227 D WifiActiveModeWarden: State changed from client mode. state = 4
      03-26 19:37:31.445  2326  5227 D WifiClientModeManager: expected stop, not triggering callbacks: newState = 1
      03-26 19:37:31.446  2326  5227 E WifiNative: Could not get Iface object for interface null
      03-26 19:37:31.446  2326  2326 D WifiP2pService: Wifi enabled=false, P2P Interface availability=false
      03-26 19:37:31.448  2326  5227 D WifiActiveModeWarden: ClientMode failed, return to WifiDisabledState.
      03-26 19:37:31.449  2326  5227 D WifiController: ClientMode unexpected failure: state unknown
      03-26 19:37:31.452  2326  5227 D WifiClientModeManager:  currentstate: IdleState
      03-26 19:37:31.453  2326  5254 I WifiScanningService: wifi driver unloaded
      03-26 19:37:31.453  2326  5227 D WifiScanRequestProxy: Sending scan available broadcast: false
      03-26 19:37:31.456  2326  5227 I WifiScanRequestProxy: Scanning is disabled
      03-26 19:37:31.457  2326  5227 D WifiActiveModeWarden: Entering WifiDisabledState
      03-26 19:37:31.459  2326  5227 D WifiActiveModeWarden: received a message in WifiDisabledState: { when=-8ms what=3 target=com.android.internal.util.StateMachine$SmHandler }
      03-26 19:37:31.460  2326  5227 D WifiActiveModeWarden: Switching from WifiDisabledState to WifiDisabled
      03-26 19:37:31.460  2326  5227 D WifiActiveModeWarden: Entering WifiDisabledState
      03-26 19:37:31.460  2326  5227 E WifiNative: Could not get Iface object for interface null
      
      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: A100 + 8723DS 安卓上面点击开WIFI, 发现并没有开起来,控制台提示这个错误信息

      执行 *iw list 结果:

      console:/ # iw list
      Wiphy phy24
              max # scan SSIDs: 9
              max scan IEs length: 2304 bytes
              max # sched scan SSIDs: 0
              max # match sets: 0
              Retry short limit: 7
              Retry long limit: 4
              Coverage class: 0 (up to 0m)
              Supported Ciphers:
                      * WEP40 (00-0f-ac:1)
                      * WEP104 (00-0f-ac:5)
                      * TKIP (00-0f-ac:2)
                      * CCMP (00-0f-ac:4)
              Available Antennas: TX 0 RX 0
              Supported interface modes:
                       * IBSS
                       * managed
                       * AP
                       * P2P-client
                       * P2P-GO
              Band 1:
                      Bitrates (non-HT):
                              * 1.0 Mbps
                              * 2.0 Mbps
                              * 5.5 Mbps
                              * 11.0 Mbps
                              * 6.0 Mbps
                              * 9.0 Mbps
                              * 12.0 Mbps
                              * 18.0 Mbps
                              * 24.0 Mbps
                              * 36.0 Mbps
                              * 48.0 Mbps
                              * 54.0 Mbps
                      Frequencies:
                              * 2412 MHz [1] (20.0 dBm)
                              * 2417 MHz [2] (20.0 dBm)
                              * 2422 MHz [3] (20.0 dBm)
                              * 2427 MHz [4] (20.0 dBm)
                              * 2432 MHz [5] (20.0 dBm)
                              * 2437 MHz [6] (20.0 dBm)
                              * 2442 MHz [7] (20.0 dBm)
                              * 2447 MHz [8] (20.0 dBm)
                              * 2452 MHz [9] (20.0 dBm)
                              * 2457 MHz [10] (20.0 dBm)
                              * 2462 MHz [11] (20.0 dBm)
                              * 2467 MHz [12] (20.0 dBm) (no IR)
                              * 2472 MHz [13] (20.0 dBm) (no IR)
                              * 2484 MHz [14] (disabled)
              Supported commands:
                       * new_interface
                       * set_interface
                       * new_key
                       * start_ap
                       * new_station
                       * set_bss
                       * join_ibss
                       * set_pmksa
                       * del_pmksa
                       * flush_pmksa
                       * remain_on_channel
                       * frame
                       * set_channel
                       * connect
                       * disconnect
              Supported TX frame types:
                       * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                       * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                       * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                       * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                       * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                       * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
              Supported RX frame types:
                       * IBSS: 0xd0
                       * managed: 0x40 0xd0
                       * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                       * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                       * P2P-client: 0x40 0xd0
                       * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
              WoWLAN support:
                       * wake up on anything (device continues operating normally)
              software interface modes (can always be added):
              interface combinations are not supported
              Device supports scan flush.
      Wiphy phy23
              max # scan SSIDs: 9
              max scan IEs length: 2304 bytes
              max # sched scan SSIDs: 0
              max # match sets: 0
              Retry short limit: 7
              Retry long limit: 4
              Coverage class: 0 (up to 0m)
              Supported Ciphers:
                      * WEP40 (00-0f-ac:1)
                      * WEP104 (00-0f-ac:5)
                      * TKIP (00-0f-ac:2)
                      * CCMP (00-0f-ac:4)
              Available Antennas: TX 0 RX 0
              Supported interface modes:
                       * IBSS
                       * managed
                       * AP
              Band 1:
                      Bitrates (non-HT):
                              * 1.0 Mbps
                              * 2.0 Mbps
                              * 5.5 Mbps
                              * 11.0 Mbps
                              * 6.0 Mbps
                              * 9.0 Mbps
                              * 12.0 Mbps
                              * 18.0 Mbps
                              * 24.0 Mbps
                              * 36.0 Mbps
                              * 48.0 Mbps
                              * 54.0 Mbps
                      Frequencies:
                              * 2412 MHz [1] (20.0 dBm)
                              * 2417 MHz [2] (20.0 dBm)
                              * 2422 MHz [3] (20.0 dBm)
                              * 2427 MHz [4] (20.0 dBm)
                              * 2432 MHz [5] (20.0 dBm)
                              * 2437 MHz [6] (20.0 dBm)
                              * 2442 MHz [7] (20.0 dBm)
                              * 2447 MHz [8] (20.0 dBm)
                              * 2452 MHz [9] (20.0 dBm)
                              * 2457 MHz [10] (20.0 dBm)
                              * 2462 MHz [11] (20.0 dBm)
                              * 2467 MHz [12] (20.0 dBm) (no IR)
                              * 2472 MHz [13] (20.0 dBm) (no IR)
                              * 2484 MHz [14] (disabled)
              Supported commands:
                       * new_interface
                       * set_interface
                       * new_key
                       * start_ap
                       * new_station
                       * set_bss
                       * join_ibss
                       * set_pmksa
                       * del_pmksa
                       * flush_pmksa
                       * remain_on_channel
                       * frame
                       * set_channel
                       * connect
                       * disconnect
              Supported TX frame types:
                       * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                       * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                       * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                       * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                       * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                       * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
              Supported RX frame types:
                       * IBSS: 0xd0
                       * managed: 0x40 0xd0
                       * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                       * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                       * P2P-client: 0x40 0xd0
                       * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
              WoWLAN support:
                       * wake up on anything (device continues operating normally)
              software interface modes (can always be added):
              interface combinations are not supported
              Device supports scan flush.
      console:/ #
      

      up网卡wlan0:

      console:/ #
      console:/ # ifconfig wlan0 up
      [ 7245.956020] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
      console:/ #
      

      扫描热点:

      console:/ # iw wlan0 scan
      BSS 30:b2:37:7e:a5:89(on wlan0)
              TSF: 7251149191 usec (0d, 02:00:51)
              freq: 2412
              beacon interval: 100 TUs
              capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431)
              signal: -63.00 dBm
              last seen: 3 ms ago
              SSID: midea_ca_0356
              Supported rates: 1.0* 2.0* 5.5* 6.0 9.0 11.0* 12.0 18.0
              DS Parameter set: channel 1
              Country: US     Environment: Indoor/Outdoor
                      Channels [1 - 11] @ 30 dBm
              ERP: <no flags>
              Extended supported rates: 24.0 36.0 48.0 54.0
              HT capabilities:
                      Capabilities: 0x120
                              HT20
                              Static SM Power Save
                              RX HT20 SGI
                              RX STBC 1-stream
                              Max AMSDU length: 3839 bytes
                              No DSSS/CCK HT40
                      Maximum RX AMPDU length 16383 bytes (exponent: 0x001)
                      Minimum RX AMPDU time spacing: No restriction (0x00)
                      HT RX MCS rate indexes supported: 0-7
                      HT TX MCS rate indexes are undefined
              HT operation:
                       * primary channel: 1
                       * secondary channel offset: no secondary
                       * STA channel width: 20 MHz
                       * RIFS: 0
                       * HT protection: nonmember
                       * non-GF present: 0
                       * OBSS non-GF present: 0
                       * dual beacon: 0
                       * dual CTS protection: 0
                       * STBC beacon: 0
                       * L-SIG TXOP Prot: 0
                       * PCO active: 0
                       * PCO phase: 0
              RSN:     * Version: 1
                       * Group cipher: CCMP
                       * Pairwise ciphers: CCMP
                       * Authentication suites: PSK
                       * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)
              WMM:     * Parameter version 1
                       * BE: CW 15-1023, AIFSN 3
                       * BK: CW 15-1023, AIFSN 7
                       * VI: CW 7-15, AIFSN 2, TXOP 3008 usec
                       * VO: CW 3-7, AIFSN 2, TXOP 1504 usec
      BSS 70:95:40:7f:7a:fa(on wlan0)
              TSF: 7251149208 usec (0d, 02:00:51)
              freq: 2412
              beacon interval: 100 TUs
              capability: ESS Privacy ShortSlotTime (0x0411)
              signal: -63.00 dBm
              last seen: 3 ms ago
              SSID: USER_200411
              Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0
              DS Parameter set: channel 1
              ERP: <no flags>
              Extended supported rates: 24.0 36.0 48.0 54.0
              HT capabilities:
                      Capabilities: 0x19ee
                              HT20/HT40
                              SM Power Save disabled
                              RX HT20 SGI
                              RX HT40 SGI
                              TX STBC
                              RX STBC 1-stream
                              Max AMSDU length: 7935 bytes
                              DSSS/CCK HT40
                      Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                      Minimum RX AMPDU time spacing: 16 usec (0x07)
                      HT RX MCS rate indexes supported: 0-15
                      HT TX MCS rate indexes are undefined
              HT operation:
                       * primary channel: 1
                       * secondary channel offset: above
                       * STA channel width: any
                       * RIFS: 0
                       * HT protection: no
                       * non-GF present: 0
                       * OBSS non-GF present: 0
                       * dual beacon: 0
                       * dual CTS protection: 0
                       * STBC beacon: 0
                       * L-SIG TXOP Prot: 0
                       * PCO active: 0
                       * PCO phase: 0
              RSN:     * Version: 1
                       * Group cipher: CCMP
                       * Pairwise ciphers: CCMP
                       * Authentication suites: PSK
                       * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)
              WMM:     * Parameter version 1
                       * BE: CW 15-1023, AIFSN 3
                       * BK: CW 15-1023, AIFSN 7
                       * VI: CW 7-15, AIFSN 2, TXOP 3008 usec
                       * VO: CW 3-7, AIFSN 2, TXOP 1504 usec
              WPS:     * Version: 1.0
                       * Wi-Fi Protected Setup State: 2 (Configured)
                       * Response Type: 3 (AP)
                       * UUID: 63041253-1019-2006-1228-00017301ffff
                       * Manufacturer: Realtek Semiconductor Corp.
                       * Model: RTL8xxx
                       * Model Number: EV-2010-09-20
                       * Serial Number: 123456789012347
                       * Primary Device Type: 6-0050f204-1
                       * Device name: RTK_AP
                       * Config methods: Display
                       * RF Bands: 0x3
                       * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20
              Extended capabilities:
      BSS 70:85:40:7f:7a:fa(on wlan0)
              TSF: 7251149214 usec (0d, 02:00:51)
              freq: 2412
              beacon interval: 100 TUs
              capability: ESS ShortSlotTime (0x0401)
              signal: -62.00 dBm
              last seen: 3 ms ago
              Information elements from Probe Response frame:
              SSID: \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
              Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0
              DS Parameter set: channel 1
              TIM: DTIM Count 0 DTIM Period 1 Bitmap Control 0x0 Bitmap[0] 0x0
              ERP: Barker_Preamble_Mode
              Extended supported rates: 24.0 36.0 48.0 54.0
              HT capabilities:
                      Capabilities: 0x19ee
                              HT20/HT40
                              SM Power Save disabled
                              RX HT20 SGI
                              RX HT40 SGI
                              TX STBC
                              RX STBC 1-stream
                              Max AMSDU length: 7935 bytes
                              DSSS/CCK HT40
                      Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                      Minimum RX AMPDU time spacing: 8 usec (0x06)
                      HT RX MCS rate indexes supported: 0-15
                      HT TX MCS rate indexes are undefined
              HT operation:
                       * primary channel: 1
                       * secondary channel offset: no secondary
                       * STA channel width: 20 MHz
                       * RIFS: 0
                       * HT protection: no
                       * non-GF present: 0
                       * OBSS non-GF present: 0
                       * dual beacon: 0
                       * dual CTS protection: 0
                       * STBC beacon: 0
                       * L-SIG TXOP Prot: 0
                       * PCO active: 0
                       * PCO phase: 0
              Overlapping BSS scan params:
                       * passive dwell: 20 TUs
                       * active dwell: 10 TUs
                       * channel width trigger scan interval: 180 s
                       * scan passive total per channel: 200 TUs
                       * scan active total per channel: 20 TUs
                       * BSS width channel transition delay factor: 5
                       * OBSS Scan Activity Threshold: 0.25 %
              WMM:     * Parameter version 1
                       * BE: CW 15-1023, AIFSN 3
                       * BK: CW 15-1023, AIFSN 7
                       * VI: CW 7-15, AIFSN 2, TXOP 3008 usec
                       * VO: CW 3-7, AIFSN 2, TXOP 1504 usec
              Extended capabilities: HT Information Exchange Supported
      BSS 38:22:e2:77:90:35(on wlan0)
              TSF: 7251149221 usec (0d, 02:00:51)
              freq: 2462
              beacon interval: 100 TUs
              capability: ESS Privacy SpectrumMgmt ShortSlotTime (0x0511)
              signal: -47.00 dBm
              last seen: 3 ms ago
              SSID: DIRECT-33-HP DeskJet 2600 series
              Supported rates: 6.0* 9.0 12.0* 18.0 24.0* 36.0 48.0 54.0
              DS Parameter set: channel 11
              Power constraint: 0 dB
              TPC report: TX power: 17 dBm
              ERP: Use_Protection
              ERP D4.0: Use_Protection
              RSN:     * Version: 1
                       * Group cipher: CCMP
                       * Pairwise ciphers: CCMP
                       * Authentication suites: PSK
                       * Capabilities: 16-PTKSA-RC 1-GTKSA-RC (0x000c)
              HT capabilities:
                      Capabilities: 0x20
                              HT20
                              Static SM Power Save
                              RX HT20 SGI
                              No RX STBC
                              Max AMSDU length: 3839 bytes
                              No DSSS/CCK HT40
                      Maximum RX AMPDU length 32767 bytes (exponent: 0x002)
                      Minimum RX AMPDU time spacing: 8 usec (0x06)
                      HT RX MCS rate indexes supported: 0-7
                      HT TX MCS rate indexes are undefined
              HT operation:
                       * primary channel: 11
                       * secondary channel offset: no secondary
                       * STA channel width: 20 MHz
                       * RIFS: 0
                       * HT protection: non-HT mixed
                       * non-GF present: 0
                       * OBSS non-GF present: 1
                       * dual beacon: 0
                       * dual CTS protection: 0
                       * STBC beacon: 0
                       * L-SIG TXOP Prot: 0
                       * PCO active: 0
                       * PCO phase: 0
              WMM:     * Parameter version 1
                       * u-APSD
                       * BE: CW 15-63, AIFSN 3
                       * BK: CW 15-1023, AIFSN 7
                       * VI: CW 7-15, AIFSN 1, TXOP 3008 usec
                       * VO: CW 3-7, AIFSN 1, TXOP 1504 usec
              WPS:     * Version: 1.0
                       * Wi-Fi Protected Setup State: 2 (Configured)
                       * AP setup locked: 0x01
                       * Selected Registrar: 0x0
                       * Response Type: 3 (AP)
                       * UUID: 5d4d1c5b-e691-fd89-aa14-5d03ae1a2fec
                       * Manufacturer: HP
                       * Model: 0
                       * Model Number: 0
                       * Serial Number: 0
                       * Primary Device Type: 3-0050f204-5
                       * Device name: DIRECT-33-HP DeskJet 2600 series
                       * Config methods:
                       * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20
                       * Unknown TLV (0x1049, 23 bytes): 00 01 37 10 06 00 10 5d 4d 1c 5b e6 91 fd 89 aa 14 5d 03 ae 1a 2f ec
      BSS e4:26:8b:89:a9:f8(on wlan0)
              TSF: 7251149227 usec (0d, 02:00:51)
              freq: 2462
              beacon interval: 100 TUs
              capability: ESS Privacy ShortPreamble ShortSlotTime RadioMeasure (0x1431)
              signal: -67.00 dBm
              last seen: 3 ms ago
              SSID: whycan.com
              Supported rates: 1.0* 2.0* 5.5* 6.0 9.0 11.0* 12.0 18.0
              DS Parameter set: channel 11
              TPC report: TX power: 30 dBm
              ERP: NonERP_Present Use_Protection
              RSN:     * Version: 1
                       * Group cipher: CCMP
                       * Pairwise ciphers: CCMP
                       * Authentication suites: PSK
                       * Capabilities: 16-PTKSA-RC 1-GTKSA-RC (0x000c)
              WMM:     * Parameter version 1
                       * u-APSD
                       * BE: CW 15-1023, AIFSN 3
                       * BK: CW 15-1023, AIFSN 7
                       * VI: CW 7-15, AIFSN 2, TXOP 3008 usec
                       * VO: CW 3-7, AIFSN 2, TXOP 1504 usec
              Extended supported rates: 24.0 36.0 48.0 54.0
              BSS Load:
                       * station count: 7
                       * channel utilisation: 91/255
                       * available admission capacity: 0 [*32us]
              HT capabilities:
                      Capabilities: 0x1ed
                              RX LDPC
                              HT20
                              SM Power Save disabled
                              RX HT20 SGI
                              RX HT40 SGI
                              TX STBC
                              RX STBC 1-stream
                              Max AMSDU length: 3839 bytes
                              No DSSS/CCK HT40
                      Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                      Minimum RX AMPDU time spacing: 4 usec (0x05)
                      HT TX/RX MCS rate indexes supported: 0-15
              HT operation:
                       * primary channel: 11
                       * secondary channel offset: no secondary
                       * STA channel width: 20 MHz
                       * RIFS: 0
                       * HT protection: nonmember
                       * non-GF present: 1
                       * OBSS non-GF present: 1
                       * dual beacon: 0
                       * dual CTS protection: 0
                       * STBC beacon: 0
                       * L-SIG TXOP Prot: 0
                       * PCO active: 0
                       * PCO phase: 0
              Overlapping BSS scan params:
                       * passive dwell: 20 TUs
                       * active dwell: 10 TUs
                       * channel width trigger scan interval: 300 s
                       * scan passive total per channel: 200 TUs
                       * scan active total per channel: 20 TUs
                       * BSS width channel transition delay factor: 5
                       * OBSS Scan Activity Threshold: 0.25 %
              Extended capabilities: HT Information Exchange Supported, BSS Transition, 6
              VHT capabilities:
                      VHT Capabilities (0x02810991):
                              Max MPDU length: 7991
                              Supported Channel Width: neither 160 nor 80+80
                              RX LDPC
                              TX STBC
                              SU Beamformer
                      VHT RX MCS set:
                              1 streams: MCS 0-8
                              2 streams: MCS 0-8
                              3 streams: not supported
                              4 streams: not supported
                              5 streams: not supported
                              6 streams: not supported
                              7 streams: not supported
                              8 streams: not supported
                      VHT RX highest supported: 173 Mbps
                      VHT TX MCS set:
                              1 streams: MCS 0-8
                              2 streams: MCS 0-8
                              3 streams: not supported
                              4 streams: not supported
                              5 streams: not supported
                              6 streams: not supported
                              7 streams: not supported
                              8 streams: not supported
                      VHT TX highest supported: 173 Mbps
              VHT operation:
                       * channel width: 0 (20 or 40 MHz)
                       * center freq segment 1: 11
                       * center freq segment 2: 0
                       * VHT basic MCS set: 0xfff5
              WPS:     * Version: 1.0
                       * Wi-Fi Protected Setup State: 2 (Configured)
                       * Response Type: 3 (AP)
                       * UUID: 9f2e0266-fbd5-5df5-b8b1-9fc3b8a97f24
                       * Manufacturer: Huawei Technology Co.,Ltd
                       * Model: Wireless AP
                       * Model Number: 123
                       * Serial Number: 12345
                       * Primary Device Type: 6-0050f204-1
                       * Device name: WS5281-10
                       * Config methods: Label, PBC
                       * RF Bands: 0x1
                       * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20
      BSS e4:26:8b:89:a9:fd(on wlan0)
              TSF: 7251149233 usec (0d, 02:00:51)
              freq: 2462
              beacon interval: 100 TUs
              capability: ESS Privacy ShortPreamble ShortSlotTime RadioMeasure (0x1431)
              signal: -58.00 dBm
              last seen: 3 ms ago
              Information elements from Probe Response frame:
              SSID:
              Supported rates: 1.0* 2.0* 5.5* 6.0 9.0 11.0* 12.0 18.0
              DS Parameter set: channel 11
              TIM: DTIM Count 0 DTIM Period 2 Bitmap Control 0x0 Bitmap[0] 0x0
              TPC report: TX power: 30 dBm
              ERP: NonERP_Present Use_Protection
              RSN:     * Version: 1
                       * Group cipher: CCMP
                       * Pairwise ciphers: CCMP
                       * Authentication suites: PSK
                       * Capabilities: 16-PTKSA-RC 1-GTKSA-RC (0x000c)
              WMM:     * Parameter version 1
                       * u-APSD
                       * BE: CW 15-1023, AIFSN 3
                       * BK: CW 15-1023, AIFSN 7
                       * VI: CW 7-15, AIFSN 2, TXOP 3008 usec
                       * VO: CW 3-7, AIFSN 2, TXOP 1504 usec
              Extended supported rates: 24.0 36.0 48.0 54.0
              BSS Load:
                       * station count: 0
                       * channel utilisation: 91/255
                       * available admission capacity: 0 [*32us]
              HT capabilities:
                      Capabilities: 0x1ed
                              RX LDPC
                              HT20
                              SM Power Save disabled
                              RX HT20 SGI
                              RX HT40 SGI
                              TX STBC
                              RX STBC 1-stream
                              Max AMSDU length: 3839 bytes
                              No DSSS/CCK HT40
                      Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                      Minimum RX AMPDU time spacing: 4 usec (0x05)
                      HT TX/RX MCS rate indexes supported: 0-15
              HT operation:
                       * primary channel: 11
                       * secondary channel offset: no secondary
                       * STA channel width: 20 MHz
                       * RIFS: 0
                       * HT protection: nonmember
                       * non-GF present: 0
                       * OBSS non-GF present: 1
                       * dual beacon: 0
                       * dual CTS protection: 0
                       * STBC beacon: 0
                       * L-SIG TXOP Prot: 0
                       * PCO active: 0
                       * PCO phase: 0
              Overlapping BSS scan params:
                       * passive dwell: 20 TUs
                       * active dwell: 10 TUs
                       * channel width trigger scan interval: 300 s
                       * scan passive total per channel: 200 TUs
                       * scan active total per channel: 20 TUs
                       * BSS width channel transition delay factor: 5
                       * OBSS Scan Activity Threshold: 0.25 %
              Extended capabilities: HT Information Exchange Supported, 6
              VHT capabilities:
                      VHT Capabilities (0x02810991):
                              Max MPDU length: 7991
                              Supported Channel Width: neither 160 nor 80+80
                              RX LDPC
                              TX STBC
                              SU Beamformer
                      VHT RX MCS set:
                              1 streams: MCS 0-8
                              2 streams: MCS 0-8
                              3 streams: not supported
                              4 streams: not supported
                              5 streams: not supported
                              6 streams: not supported
                              7 streams: not supported
                              8 streams: not supported
                      VHT RX highest supported: 173 Mbps
                      VHT TX MCS set:
                              1 streams: MCS 0-8
                              2 streams: MCS 0-8
                              3 streams: not supported
                              4 streams: not supported
                              5 streams: not supported
                              6 streams: not supported
                              7 streams: not supported
                              8 streams: not supported
                      VHT TX highest supported: 173 Mbps
              VHT operation:
                       * channel width: 0 (20 or 40 MHz)
                       * center freq segment 1: 11
                       * center freq segment 2: 0
                       * VHT basic MCS set: 0xfff5
      BSS d8:a4:91:84:63:58(on wlan0)
              TSF: 7251149240 usec (0d, 02:00:51)
              freq: 2462
              beacon interval: 100 TUs
              capability: ESS Privacy ShortPreamble ShortSlotTime RadioMeasure (0x1431)
              signal: -77.00 dBm
              last seen: 3 ms ago
              Information elements from Probe Response frame:
              SSID: whycan.com
              Supported rates: 1.0* 2.0* 5.5* 6.0 9.0 11.0* 12.0 18.0
              DS Parameter set: channel 11
              Country: CN     Environment: Indoor/Outdoor
                      Channels [1 - 13] @ 27 dBm
              TPC report: TX power: 30 dBm
              ERP: NonERP_Present Use_Protection
              RSN:     * Version: 1
                       * Group cipher: CCMP
                       * Pairwise ciphers: CCMP
                       * Authentication suites: PSK
                       * Capabilities: 16-PTKSA-RC 1-GTKSA-RC (0x000c)
              WMM:     * Parameter version 1
                       * u-APSD
                       * BE: CW 15-1023, AIFSN 3
                       * BK: CW 15-1023, AIFSN 7
                       * VI: CW 7-15, AIFSN 2, TXOP 3008 usec
                       * VO: CW 3-7, AIFSN 2, TXOP 1504 usec
              Extended supported rates: 24.0 36.0 48.0 54.0
              BSS Load:
                       * station count: 3
                       * channel utilisation: 82/255
                       * available admission capacity: 0 [*32us]
              HT capabilities:
                      Capabilities: 0x51ed
                              RX LDPC
                              HT20
                              SM Power Save disabled
                              RX HT20 SGI
                              RX HT40 SGI
                              TX STBC
                              RX STBC 1-stream
                              Max AMSDU length: 3839 bytes
                              DSSS/CCK HT40
                              40 MHz Intolerant
                      Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                      Minimum RX AMPDU time spacing: 4 usec (0x05)
                      HT TX/RX MCS rate indexes supported: 0-15
              HT operation:
                       * primary channel: 11
                       * secondary channel offset: no secondary
                       * STA channel width: 20 MHz
                       * RIFS: 0
                       * HT protection: nonmember
                       * non-GF present: 1
                       * OBSS non-GF present: 1
                       * dual beacon: 0
                       * dual CTS protection: 0
                       * STBC beacon: 0
                       * L-SIG TXOP Prot: 0
                       * PCO active: 0
                       * PCO phase: 0
              Overlapping BSS scan params:
                       * passive dwell: 20 TUs
                       * active dwell: 10 TUs
                       * channel width trigger scan interval: 300 s
                       * scan passive total per channel: 200 TUs
                       * scan active total per channel: 20 TUs
                       * BSS width channel transition delay factor: 5
                       * OBSS Scan Activity Threshold: 0.25 %
              Extended capabilities: HT Information Exchange Supported, BSS Transition
              WPS:     * Version: 1.0
                       * Wi-Fi Protected Setup State: 2 (Configured)
                       * Response Type: 3 (AP)
                       * UUID: e3811aaf-2d00-5515-b4de-fe9c4018ace7
                       * Manufacturer: Huawei Technology Co.,Ltd
                       * Model: Wireless AP
                       * Model Number: 123
                       * Serial Number: 12345
                       * Primary Device Type: 6-0050f204-1
                       * Device name: PT8021-10
                       * Config methods: Label, PBC
                       * RF Bands: 0x1
                       * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20
      console:/ #
      
      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: 配置好config之后重新编译,lvgl还是没有显示,屏幕上一直是原来的哪吒图片

      @lbklbk
      这个是 D1 SDK v2.0 吗?

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: A100 + 8723DS 安卓上面点击开WIFI, 发现并没有开起来,控制台提示这个错误信息

      如果先在命令行先执行:

      1|console:/ # insmod /vendor/modules/8723ds.ko
      [ 5624.751744] sunxi-wlan soc@03000000:wlan@0: bus_index: 1
      

      再在屏幕开启 wifi,那个按钮就迅速跳回原来的状态。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: A100 + 8723DS 安卓上面点击开WIFI, 发现并没有开起来,控制台提示这个错误信息

      在屏幕上面点击 wifi 启动按钮,
      同时在命令行执行 insmod /vendor/modules/8723ds.ko

      发现控制台提示:

      1|console:/ # 
       [ 4830.998347] sunxi-wlan soc@03000000:wlan@0: bus_index: 1
      insmod: failed to load /vendor/modules/8723ds.ko: File exists
      [ 4836.322256] init: Unable to set property 'wlan.driver.status' to 'timeout' from uid:1010 gid:1010 pid:5346: Property type check failed, value doesn't match expected type 'enum ok unloaded'
      

      看来安卓系统也在同时 insmod 8723ds.ko ?说明执行了安装ko,但是没成功?

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: A100 + 8723DS 安卓上面点击开WIFI, 发现并没有开起来,控制台提示这个错误信息

      把 out/ 目录删了,花2小时重新编译一次试一试。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: A100 + 8723DS 安卓上面点击开WIFI, 发现并没有开起来,控制台提示这个错误信息

      lsmod 发现并没有加载 8723ds.ko ,

      但是手动加载是可以的。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: A100 + 8723DS 安卓上面点击开WIFI, 发现并没有开起来,控制台提示这个错误信息
      console:/ # ps |grep 5721
      wifi          5721     1   13256   4144 binder_thread_read  0 S android.hardware.wifi@1.0-service-lazy
      

      看了一下 5721 进程是 android.hardware.wifi@1.0-service-lazy

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • A100 + 8723DS 安卓上面点击开WIFI, 发现并没有开起来,控制台提示这个错误信息

      A100 + 8723DS 安卓上面点击开WIFI, 发现并没有开起来,控制台提示这个信息:

      [ 1072.231005] sunxi-wlan soc@03000000:wlan@0: bus_index: 1
      [ 1077.574935] init: Unable to set property 'wlan.driver.status' to 'timeout' from uid:1010 gid:1010 pid:5721: Property type check failed, value doesn't match expected type 'enum ok unloaded'
      
      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: A33 uboot在线仿真环境搭建

      uboot直接用 printf 输出调试信息就好了,别玩JTAG,没有意思,学习除外。

      发布在 编译和烧写问题专区
      tigger
      tigger
    • 回复: 最近编译A133的Android Q longan的源码不能道过

      请贴上完整log

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: 第一次编译A133 Android SDK,请问这是什么问题呢?

      @lbklbk
      是自己做的板子,还是买的成品开发板?里面有没有烧程序?串口有没有输出?电脑有没有发现新usb设备?

      发布在 编译和烧写问题专区
      tigger
      tigger
    • 回复: A133 BOARD_HAS_SECURE_OS

      @tevet SECURE OS 还没玩过

      @gworld 不知道怎么看版本

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: D1s同时启用TVD和DVP接口摄像头,图像显示黑白

      是设置vin的clk bit,修改了别的bit吗?

      发布在 MR Series
      tigger
      tigger
    • 回复: D1s的ALDO和HPLDO是内置的吗?还是需要外部LDO?

      看一下D1的手册,如果D1上面有的话,而D1s上面没有,说明可能在D1s封装到里面去了。

      发布在 MR Series
      tigger
      tigger
    • 回复: 一觉醒来,发现 A100 + RTL8723DS 奔溃了,这是怎么回事?

      咦,居然还能用, 没有奔溃:

      root@TinaLinux:/tmp# ping www.163.com
      PING www.163.com (183.252.198.14): 56 data bytes
      64 bytes from 183.252.198.14: seq=0 ttl=55 time=36.918 ms
      64 bytes from 183.252.198.14: seq=1 ttl=55 time=33.576 ms
      64 bytes from 183.252.198.14: seq=2 ttl=55 time=30.510 ms
      64 bytes from 183.252.198.14: seq=3 ttl=55 time=32.753 ms
      64 bytes from 183.252.198.14: seq=4 ttl=55 time=28.647 ms
      64 bytes from 183.252.198.14: seq=5 ttl=55 time=33.671 ms
      64 bytes from 183.252.198.14: seq=6 ttl=55 time=28.999 ms
      64 bytes from 183.252.198.14: seq=7 ttl=55 time=37.768 ms
      64 bytes from 183.252.198.14: seq=8 ttl=55 time=38.900 ms
      64 bytes from 183.252.198.14: seq=9 ttl=55 time=34.483 ms
      64 bytes from 183.252.198.14: seq=10 ttl=55 time=30.540 ms
      
      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 一觉醒来,发现 A100 + RTL8723DS 奔溃了,这是怎么回事?
      [ 7515.181641] ------------[ cut here ]------------
      [ 7515.187348] WARNING: CPU: 0 PID: 1571 at drivers/net/wireless/rtl8723ds/hal/hal_com.c:11520 rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [ 7515.200358] Modules linked in: 8723ds vin_v4l2 imx386_2lane_mipi imx278_mipi vin_io videobuf2_dma_contig fuse dc_sunxi(O) pvrsrvkm(O)
      [ 7515.213907]
      [ 7515.215586] CPU: 0 PID: 1571 Comm: RTW_CMD_THREAD Tainted: G           O    4.9.191 #1
      [ 7515.224490] Hardware name: sun50iw10 (DT)
      [ 7515.228998] task: ffffffc027fa8e00 task.stack: ffffffc027e44000
      [ 7515.236112] PC is at rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [ 7515.242618] LR is at rtw_lps_state_chk+0x40/0x64 [8723ds]
      [ 7515.248689] pc : [<ffffff800095f6c4>] lr : [<ffffff800095f6b8>] pstate: 40000145
      [ 7515.257006] sp : ffffffc027e47b00
      [ 7515.260730] x29: ffffffc027e47b00 x28: ffffff80009cd0c8
      [ 7515.266717] x27: 0000000000000008 x26: ffffff80008e7e40
      [ 7515.272703] x25: ffffff800b3810a8 x24: ffffff80009cd4f8
      [ 7515.278689] x23: 0000000000000000 x22: 0000000000000001
      [ 7515.284675] x21: 0000000000000604 x20: ffffff800b380000
      [ 7515.290660] x19: 0000000000000000 x18: 0000000000000084
      [ 7515.296646] x17: 0000007f7981ee94 x16: ffffff80080e9614
      [ 7515.302632] x15: 00004b0c5e7b3ad2 x14: 0000000000000000
      [ 7515.308617] x13: 0000000000000000 x12: 0000000000000016
      [ 7515.314603] x11: ffffffc03f714db0 x10: 0000000000000790
      [ 7515.320589] x9 : ffffffc027e479b0 x8 : ffffffc027fa95f0
      [ 7515.326574] x7 : ffffffc027fa8e80 x6 : ffffffffffe236e7
      [ 7515.332560] x5 : 0000000000000001 x4 : 0000000000000000
      [ 7515.338546] x3 : 00000000001929d4 x2 : ffffffc03f712000
      [ 7515.344531] x1 : 0000000000000000 x0 : 0000000000000000
      [ 7515.350518]
      [ 7515.350518] SP: 0xffffffc027e47a80:
      [ 7515.356100] 7a80  00000001 00000000 00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80
      [ 7515.365366] 7aa0  008e7e40 ffffff80 00000008 00000000 009cd0c8 ffffff80 27e47b00 ffffffc0
      [ 7515.374628] 7ac0  0095f6b8 ffffff80 27e47b00 ffffffc0 0095f6c4 ffffff80 40000145 00000000
      [ 7515.383891] 7ae0  00000001 00000000 000f4240 00000000 ffffffff ffffffff 0095f6b8 ffffff80
      [ 7515.393153] 7b00  27e47b30 ffffffc0 00962b64 ffffff80 0b380000 ffffff80 0000006d 00000000
      [ 7515.402415] 7b20  27e47caf ffffffc0 0b386000 ffffff80 27e47bd0 ffffffc0 00979390 ffffff80
      [ 7515.411678] 7b40  0b380000 ffffff80 0000006d 00000000 27e47caf ffffffc0 0b386000 ffffff80
      [ 7515.420940] 7b60  00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [ 7515.430205]
      [ 7515.430205] X2: 0xffffffc03f711f80:
      [ 7515.435787] 1f80  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 7515.445050] 1fa0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 7515.454312] 1fc0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 7515.463574] 1fe0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 7515.472836] 2000  20482048 001929d4 00000000 00000000 00000000 00000001 00000005 00020101
      [ 7515.482098] 2020  c0bc6baf 000006d5 3e177e48 ffffffc0 00064f6d 00000335 00000000 00000000
      [ 7515.491361] 2040  3f712000 ffffffc0 00000000 00000001 29edb8c8 ffffffc0 3e177e48 ffffffc0
      [ 7515.500623] 2060  080eced8 ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
      [ 7515.509888]
      [ 7515.509888] X6: 0xffffffffffe23667:
      [ 7515.515470] 3664  ******** ******** ******** ******** ******** ******** ******** ********
      [ 7515.524741] 3684  ******** ******** ******** ******** ******** ******** ******** ********
      [ 7515.534004] 36a4  ******** ******** ******** ******** ******** ******** ******** ********
      [ 7515.543268] 36c4  ******** ******** ******** ******** ******** ******** ******** ********
      [ 7515.552531] 36e4  ******** ******** ******** ******** ******** ******** ******** ********
      [ 7515.561794] 3704  ******** ******** ******** ******** ******** ******** ******** ********
      [ 7515.571058] 3724  ******** ******** ******** ******** ******** ******** ******** ********
      [ 7515.580321] 3744  ******** ******** ******** ******** ******** ******** ******** ********
      [ 7515.589584] 3764  ******** ******** ******** ******** ******** ******** ******** ********
      [ 7515.598849]
      [ 7515.598849] X7: 0xffffffc027fa8e00:
      [ 7515.604431] 8e00  00000012 00000000 ffffffff ffffffff 00000000 00000000 00000000 00000000
      [ 7515.613694] 8e20  27e44000 ffffffc0 00000002 00208040 00000000 00000000 00000000 00000000
      [ 7515.622956] 8e40  00000001 00000000 00000001 00000000 001b4ce9 00000001 3e13a900 ffffffc0
      [ 7515.632218] 8e60  00000000 00000001 00000078 00000078 00000078 00000000 086e8270 ffffff80
      [ 7515.641480] 8e80  00100000 00000000 00400000 00000000 00000001 00000000 00000000 00000000
      [ 7515.650742] 8ea0  00000000 00000000 3f7156a0 ffffffc0 3f7156a0 ffffffc0 00000001 00000000
      [ 7515.660004] 8ec0  c3ba27c9 000006d5 27202763 00000000 32f81eb8 0000001f 27202763 00000000
      [ 7515.669267] 8ee0  00000121 00000000 00000000 00000000 00000000 00000000 3f714de8 ffffffc0
      [ 7515.678530]
      [ 7515.678530] X8: 0xffffffc027fa9570:
      [ 7515.684112] 9570  0000c350 00000000 00000001 00000000 00000000 00000000 00000001 00000000
      [ 7515.693375] 9590  08952780 ffffff80 27fa8e00 ffffffc0 08952780 ffffff80 2de1f240 ffffffc0
      [ 7515.702638] 95b0  00000000 00000000 0894c000 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [ 7515.711900] 95d0  00000008 00000000 009cd0c8 ffffff80 27e479b0 ffffffc0 27e479b0 ffffffc0
      [ 7515.721162] 95f0  080851dc ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
      [ 7515.730425] 9610  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 7515.739687] 9630  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 7515.748949] 9650  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 7515.758212]
      [ 7515.758212] X9: 0xffffffc027e47930:
      [ 7515.763794] 7930  40000145 00000000 0000003d 00000000 0b3810a8 ffffff80 008e7e40 ffffff80
      [ 7515.773056] 7950  27e47990 ffffffc0 0829b948 ffffff80 0891e000 ffffff80 27fa8e00 ffffffc0
      [ 7515.782319] 7970  08952780 ffffff80 2de1f240 ffffffc0 27e47990 ffffffc0 086c9024 ffffff80
      [ 7515.791581] 7990  27e479a0 ffffffc0 080b60d0 ffffff80 27e479d0 ffffffc0 086c4a88 ffffff80
      [ 7515.800844] 79b0  3f714d80 ffffffc0 27fa8e00 ffffffc0 08952780 ffffff80 2de1f240 ffffffc0
      [ 7515.810107] 79d0  00000000 00000000 00000000 00000000 3f712000 ffffffc0 001929d4 00000000
      [ 7515.819369] 79f0  00000000 00000000 00000001 00000000 ffe236e7 ffffffff 27fa8e80 ffffffc0
      [ 7515.828631] 7a10  27fa95f0 ffffffc0 27e479b0 ffffffc0 00000790 00000000 3f714db0 ffffffc0
      [ 7515.837895]
      [ 7515.837895] X11: 0xffffffc03f714d30:
      [ 7515.843575] 4d30  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 7515.852837] 4d50  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 7515.862099] 4d70  00000000 00000000 00000000 00000000 07bc07bc 00000001 00000000 00000000
      [ 7515.871361] 4d90  00000007 00000000 00000006 00000000 00000006 00000000 00000006 00000000
      [ 7515.880622] 4db0  00000000 00000000 001b8606 00000001 00000001 00000000 00100000 00000000
      [ 7515.889884] 4dd0  00000000 00000000 00095f51 00000000 001b8529 00000000 00100000 00000000
      [ 7515.899146] 4df0  00000000 00000000 00000001 00000001 00000000 00000000 337a6d45 0000001f
      [ 7515.908409] 4e10  00000000 00000000 00000000 00000000 27fa8e80 ffffffc0 00000000 00000000
      [ 7515.917680]
      [ 7515.917680] X29: 0xffffffc027e47a80:
      [ 7515.923359] 7a80  00000001 00000000 00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80
      [ 7515.932622] 7aa0  008e7e40 ffffff80 00000008 00000000 009cd0c8 ffffff80 27e47b00 ffffffc0
      [ 7515.941884] 7ac0  0095f6b8 ffffff80 27e47b00 ffffffc0 0095f6c4 ffffff80 40000145 00000000
      [ 7515.951146] 7ae0  00000001 00000000 000f4240 00000000 ffffffff ffffffff 0095f6b8 ffffff80
      [ 7515.960408] 7b00  27e47b30 ffffffc0 00962b64 ffffff80 0b380000 ffffff80 0000006d 00000000
      [ 7515.969670] 7b20  27e47caf ffffffc0 0b386000 ffffff80 27e47bd0 ffffffc0 00979390 ffffff80
      [ 7515.978933] 7b40  0b380000 ffffff80 0000006d 00000000 27e47caf ffffffc0 0b386000 ffffff80
      [ 7515.988195] 7b60  00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [ 7515.997457]
      [ 7515.999131] ---[ end trace 2b8ee94b41b5b003 ]---
      [ 7516.004323] Call trace:
      [ 7516.007073] Exception stack(0xffffffc027e47910 to 0xffffffc027e47a40)
      [ 7516.014318] 7900:                                   0000000000000000 0000007fffffffff
      [ 7516.023126] 7920: ffffffc027e47b00 ffffff800095f6c4 0000000040000145 000000000000003d
      [ 7516.031935] 7940: ffffff800b3810a8 ffffff80008e7e40 ffffffc027e47990 ffffff800829b948
      [ 7516.040743] 7960: ffffff800891e000 ffffffc027fa8e00 ffffff8008952780 ffffffc02de1f240
      [ 7516.049551] 7980: ffffffc027e47990 ffffff80086c9024 ffffffc027e479a0 ffffff80080b60d0
      [ 7516.058360] 79a0: ffffffc027e479d0 ffffff80086c4a88 ffffffc03f714d80 ffffffc027fa8e00
      [ 7516.067169] 79c0: ffffff8008952780 ffffffc02de1f240 0000000000000000 0000000000000000
      [ 7516.075977] 79e0: ffffffc03f712000 00000000001929d4 0000000000000000 0000000000000001
      [ 7516.084786] 7a00: ffffffffffe236e7 ffffffc027fa8e80 ffffffc027fa95f0 ffffffc027e479b0
      [ 7516.093595] 7a20: 0000000000000790 ffffffc03f714db0 0000000000000016 0000000000000000
      [ 7516.102847] [<ffffff800095f6c4>] rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [ 7516.110528] [<ffffff8000962b64>] SetHwReg+0x132c/0x13c0 [8723ds]
      [ 7516.117713] [<ffffff8000979390>] SetHwReg8723D+0x964/0x97c [8723ds]
      [ 7516.125188] [<ffffff800097d334>] SetHwReg8723DS+0x124/0x174 [8723ds]
      [ 7516.132764] [<ffffff8000958dac>] rtw_hal_set_hwreg+0x10/0x18 [8723ds]
      [ 7516.140434] [<ffffff8000916eb0>] rtw_set_ps_mode+0x108/0x2f8 [8723ds]
      [ 7516.148102] [<ffffff80009172b8>] LPS_Leave+0xc0/0xf0 [8723ds]
      [ 7516.154978] [<ffffff80008e618c>] lps_ctrl_wk_hdl+0x164/0x1d8 [8723ds]
      [ 7516.162636] [<ffffff80008e7ef8>] rtw_drvextra_cmd_hdl+0xb8/0x3a8 [8723ds]
      [ 7516.170684] [<ffffff80008e3f80>] rtw_cmd_thread+0x190/0x3e8 [8723ds]
      [ 7516.177838] [<ffffff80080b1840>] kthread+0xd4/0xe4
      [ 7516.183229] [<ffffff8008083180>] ret_from_fork+0x10/0x50
      [ 8236.898603] ------------[ cut here ]------------
      [ 8236.904317] WARNING: CPU: 0 PID: 1571 at drivers/net/wireless/rtl8723ds/hal/hal_com.c:11520 rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [ 8236.917327] Modules linked in: 8723ds vin_v4l2 imx386_2lane_mipi imx278_mipi vin_io videobuf2_dma_contig fuse dc_sunxi(O) pvrsrvkm(O)
      [ 8236.930879]
      [ 8236.932557] CPU: 0 PID: 1571 Comm: RTW_CMD_THREAD Tainted: G        W  O    4.9.191 #1
      [ 8236.941460] Hardware name: sun50iw10 (DT)
      [ 8236.945968] task: ffffffc027fa8e00 task.stack: ffffffc027e44000
      [ 8236.953082] PC is at rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [ 8236.959588] LR is at rtw_lps_state_chk+0x40/0x64 [8723ds]
      [ 8236.965659] pc : [<ffffff800095f6c4>] lr : [<ffffff800095f6b8>] pstate: 40000145
      [ 8236.973976] sp : ffffffc027e47b00
      [ 8236.977701] x29: ffffffc027e47b00 x28: ffffff80009cd0c8
      [ 8236.983687] x27: 0000000000000008 x26: ffffff80008e7e40
      [ 8236.989673] x25: ffffff800b3810a8 x24: ffffff80009cd4f8
      [ 8236.995659] x23: 0000000000000000 x22: 0000000000000001
      [ 8237.001645] x21: 0000000000000604 x20: ffffff800b380000
      [ 8237.007631] x19: 0000000000000000 x18: 0000000057cb472a
      [ 8237.013616] x17: 0000007fa2ef36b8 x16: ffffff800816cca8
      [ 8237.019602] x15: 0000000000000018 x14: 0000000000000000
      [ 8237.025588] x13: 0000000000000000 x12: 0000000000000016
      [ 8237.031574] x11: ffffffc03f714db0 x10: 0000000000000790
      [ 8237.037559] x9 : ffffffc027e479b0 x8 : ffffffc027fa95f0
      [ 8237.043545] x7 : ffffffc027fa8e80 x6 : 0000000000000400
      [ 8237.049531] x5 : 0000000000000001 x4 : 0000000000000000
      [ 8237.055516] x3 : 00000000001b4fa4 x2 : ffffffc03f712000
      [ 8237.061502] x1 : 0000000000000000 x0 : 0000000000000000
      [ 8237.067489]
      [ 8237.067489] SP: 0xffffffc027e47a80:
      [ 8237.073071] 7a80  00000001 00000000 00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80
      [ 8237.082336] 7aa0  008e7e40 ffffff80 00000008 00000000 009cd0c8 ffffff80 27e47b00 ffffffc0
      [ 8237.091598] 7ac0  0095f6b8 ffffff80 27e47b00 ffffffc0 0095f6c4 ffffff80 40000145 00000000
      [ 8237.100861] 7ae0  00000001 00000000 000f4240 00000000 ffffffff ffffffff 0095f6b8 ffffff80
      [ 8237.110123] 7b00  27e47b30 ffffffc0 00962b64 ffffff80 0b380000 ffffff80 0000006d 00000000
      [ 8237.119386] 7b20  27e47caf ffffffc0 0b386000 ffffff80 27e47bd0 ffffffc0 00979390 ffffff80
      [ 8237.128648] 7b40  0b380000 ffffff80 0000006d 00000000 27e47caf ffffffc0 0b386000 ffffff80
      [ 8237.137911] 7b60  00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [ 8237.147176]
      [ 8237.147176] X2: 0xffffffc03f711f80:
      [ 8237.152758] 1f80  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8237.162021] 1fa0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8237.171282] 1fc0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8237.180545] 1fe0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8237.189807] 2000  2e382e38 001b4fa4 00000000 00000000 00000000 00000001 00000005 00020101
      [ 8237.199070] 2020  cb1d4700 0000077d 3f712440 ffffffc0 0006d9f9 00000369 00000000 00000000
      [ 8237.208332] 2040  3f712000 ffffffc0 00000000 00000001 29ebb9c8 ffffffc0 3f712440 ffffffc0
      [ 8237.217595] 2060  080eced8 ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8237.226861]
      [ 8237.226861] X7: 0xffffffc027fa8e00:
      [ 8237.232443] 8e00  00000012 00000000 ffffffff ffffffff 00000000 00000000 00000000 00000000
      [ 8237.241705] 8e20  27e44000 ffffffc0 00000002 00208040 00000000 00000000 00000000 00000000
      [ 8237.250967] 8e40  00000001 00000000 00000000 00000000 001c3f11 00000001 3e13a900 ffffffc0
      [ 8237.260230] 8e60  00000000 00000001 00000078 00000078 00000078 00000000 086e8270 ffffff80
      [ 8237.269492] 8e80  00100000 00000000 00400000 00000000 00000001 00000000 00000000 00000000
      [ 8237.278754] 8ea0  00000000 00000000 3f7156a0 ffffffc0 3f7156a0 ffffffc0 00000001 00000000
      [ 8237.288016] 8ec0  cd68f4c6 0000077d 6a0b1515 00000000 83260f7d 0000001f 6a0b1515 00000000
      [ 8237.297279] 8ee0  00000157 00000000 00000000 00000000 00000000 00000000 3f714de8 ffffffc0
      [ 8237.306542]
      [ 8237.306542] X8: 0xffffffc027fa9570:
      [ 8237.312124] 9570  0000c350 00000000 00000001 00000000 00000000 00000000 00000001 00000000
      [ 8237.321386] 9590  08952780 ffffff80 27fa8e00 ffffffc0 08952780 ffffff80 2b0f3940 ffffffc0
      [ 8237.330649] 95b0  00000000 00000000 0894c000 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [ 8237.339912] 95d0  00000008 00000000 009cd0c8 ffffff80 27e479b0 ffffffc0 27e479b0 ffffffc0
      [ 8237.349174] 95f0  080851dc ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8237.358436] 9610  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8237.367698] 9630  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8237.376960] 9650  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8237.386223]
      [ 8237.386223] X9: 0xffffffc027e47930:
      [ 8237.391805] 7930  40000145 00000000 0000003d 00000000 0b3810a8 ffffff80 008e7e40 ffffff80
      [ 8237.401067] 7950  27e47990 ffffffc0 0829b948 ffffff80 0891e000 ffffff80 27fa8e00 ffffffc0
      [ 8237.410330] 7970  08952780 ffffff80 2b0f3940 ffffffc0 27e47990 ffffffc0 086c9024 ffffff80
      [ 8237.419593] 7990  27e479a0 ffffffc0 080b60d0 ffffff80 27e479d0 ffffffc0 086c4a88 ffffff80
      [ 8237.428855] 79b0  3f714d80 ffffffc0 27fa8e00 ffffffc0 08952780 ffffff80 2b0f3940 ffffffc0
      [ 8237.438118] 79d0  00000000 00000000 00000000 00000000 3f712000 ffffffc0 001b4fa4 00000000
      [ 8237.447381] 79f0  00000000 00000000 00000001 00000000 00000400 00000000 27fa8e80 ffffffc0
      [ 8237.456643] 7a10  27fa95f0 ffffffc0 27e479b0 ffffffc0 00000790 00000000 3f714db0 ffffffc0
      [ 8237.465907]
      [ 8237.465907] X11: 0xffffffc03f714d30:
      [ 8237.471587] 4d30  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8237.480849] 4d50  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8237.490111] 4d70  00000000 00000000 00000000 00000000 49e549e5 00000001 00000007 00000000
      [ 8237.499373] 4d90  00000007 00000000 00000006 00000000 00000004 00000000 00000004 00000000
      [ 8237.508635] 4db0  00000000 00000000 001e46d6 00000001 00000001 00000000 00100000 00000000
      [ 8237.517897] 4dd0  00000000 00000000 0009f15b 00000000 001ca29f 00000000 00100000 00000000
      [ 8237.527160] 4df0  00000000 00000000 00000001 00000001 00000000 00000000 83a7d407 0000001f
      [ 8237.536422] 4e10  00000000 00000000 00000000 00000000 27fa8e80 ffffffc0 00000000 00000000
      [ 8237.545693]
      [ 8237.545693] X29: 0xffffffc027e47a80:
      [ 8237.551373] 7a80  00000001 00000000 00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80
      [ 8237.560634] 7aa0  008e7e40 ffffff80 00000008 00000000 009cd0c8 ffffff80 27e47b00 ffffffc0
      [ 8237.569897] 7ac0  0095f6b8 ffffff80 27e47b00 ffffffc0 0095f6c4 ffffff80 40000145 00000000
      [ 8237.579159] 7ae0  00000001 00000000 000f4240 00000000 ffffffff ffffffff 0095f6b8 ffffff80
      [ 8237.588421] 7b00  27e47b30 ffffffc0 00962b64 ffffff80 0b380000 ffffff80 0000006d 00000000
      [ 8237.597684] 7b20  27e47caf ffffffc0 0b386000 ffffff80 27e47bd0 ffffffc0 00979390 ffffff80
      [ 8237.606946] 7b40  0b380000 ffffff80 0000006d 00000000 27e47caf ffffffc0 0b386000 ffffff80
      [ 8237.616208] 7b60  00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [ 8237.625471]
      [ 8237.627145] ---[ end trace 2b8ee94b41b5b004 ]---
      [ 8237.632336] Call trace:
      [ 8237.635087] Exception stack(0xffffffc027e47910 to 0xffffffc027e47a40)
      [ 8237.642331] 7900:                                   0000000000000000 0000007fffffffff
      [ 8237.651140] 7920: ffffffc027e47b00 ffffff800095f6c4 0000000040000145 000000000000003d
      [ 8237.659949] 7940: ffffff800b3810a8 ffffff80008e7e40 ffffffc027e47990 ffffff800829b948
      [ 8237.668757] 7960: ffffff800891e000 ffffffc027fa8e00 ffffff8008952780 ffffffc02b0f3940
      [ 8237.677566] 7980: ffffffc027e47990 ffffff80086c9024 ffffffc027e479a0 ffffff80080b60d0
      [ 8237.686374] 79a0: ffffffc027e479d0 ffffff80086c4a88 ffffffc03f714d80 ffffffc027fa8e00
      [ 8237.695183] 79c0: ffffff8008952780 ffffffc02b0f3940 0000000000000000 0000000000000000
      [ 8237.703991] 79e0: ffffffc03f712000 00000000001b4fa4 0000000000000000 0000000000000001
      [ 8237.712791] 7a00: 0000000000000400 ffffffc027fa8e80 ffffffc027fa95f0 ffffffc027e479b0
      [ 8237.721600] 7a20: 0000000000000790 ffffffc03f714db0 0000000000000016 0000000000000000
      [ 8237.730905] [<ffffff800095f6c4>] rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [ 8237.738599] [<ffffff8000962b64>] SetHwReg+0x132c/0x13c0 [8723ds]
      [ 8237.745785] [<ffffff8000979390>] SetHwReg8723D+0x964/0x97c [8723ds]
      [ 8237.753263] [<ffffff800097d334>] SetHwReg8723DS+0x124/0x174 [8723ds]
      [ 8237.760841] [<ffffff8000958dac>] rtw_hal_set_hwreg+0x10/0x18 [8723ds]
      [ 8237.768512] [<ffffff8000916eb0>] rtw_set_ps_mode+0x108/0x2f8 [8723ds]
      [ 8237.776181] [<ffffff80009172b8>] LPS_Leave+0xc0/0xf0 [8723ds]
      [ 8237.783059] [<ffffff80008e618c>] lps_ctrl_wk_hdl+0x164/0x1d8 [8723ds]
      [ 8237.790717] [<ffffff80008e7ef8>] rtw_drvextra_cmd_hdl+0xb8/0x3a8 [8723ds]
      [ 8237.798766] [<ffffff80008e3f80>] rtw_cmd_thread+0x190/0x3e8 [8723ds]
      [ 8237.805921] [<ffffff80080b1840>] kthread+0xd4/0xe4
      [ 8237.811312] [<ffffff8008083180>] ret_from_fork+0x10/0x50
      [ 8821.443815] ------------[ cut here ]------------
      [ 8821.449532] WARNING: CPU: 0 PID: 1571 at drivers/net/wireless/rtl8723ds/hal/hal_com.c:11520 rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [ 8821.462543] Modules linked in: 8723ds vin_v4l2 imx386_2lane_mipi imx278_mipi vin_io videobuf2_dma_contig fuse dc_sunxi(O) pvrsrvkm(O)
      [ 8821.476094]
      [ 8821.477773] CPU: 0 PID: 1571 Comm: RTW_CMD_THREAD Tainted: G        W  O    4.9.191 #1
      [ 8821.486676] Hardware name: sun50iw10 (DT)
      [ 8821.491184] task: ffffffc027fa8e00 task.stack: ffffffc027e44000
      [ 8821.498296] PC is at rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [ 8821.504802] LR is at rtw_lps_state_chk+0x40/0x64 [8723ds]
      [ 8821.510873] pc : [<ffffff800095f6c4>] lr : [<ffffff800095f6b8>] pstate: 40000145
      [ 8821.519190] sp : ffffffc027e47b00
      [ 8821.522914] x29: ffffffc027e47b00 x28: ffffff80009cd0c8
      [ 8821.528901] x27: 0000000000000008 x26: ffffff80008e7e40
      [ 8821.534887] x25: ffffff800b3810a8 x24: ffffff80009cd4f8
      [ 8821.540873] x23: 0000000000000000 x22: 0000000000000001
      [ 8821.546858] x21: 0000000000000604 x20: ffffff800b380000
      [ 8821.552844] x19: 0000000000000000 x18: 000000000000000a
      [ 8821.558830] x17: 0000007fb20dbff4 x16: ffffff800816d424
      [ 8821.564816] x15: 00000000dbfbb796 x14: 0000000000000000
      [ 8821.570801] x13: 0000000000000000 x12: 0000000000000017
      [ 8821.576787] x11: ffffffc03f714db0 x10: 0000000000000790
      [ 8821.582772] x9 : ffffffc027e479b0 x8 : ffffffc027fa95f0
      [ 8821.588758] x7 : ffffffc027fa8e80 x6 : 0000000000434a80
      [ 8821.594744] x5 : 0000000000000001 x4 : 0000000000000000
      [ 8821.600730] x3 : 00000000001de7d0 x2 : ffffffc03f712000
      [ 8821.606715] x1 : 0000000000000000 x0 : 0000000000000000
      [ 8821.612703]
      [ 8821.612703] SP: 0xffffffc027e47a80:
      [ 8821.618285] 7a80  00000001 00000000 00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80
      [ 8821.627549] 7aa0  008e7e40 ffffff80 00000008 00000000 009cd0c8 ffffff80 27e47b00 ffffffc0
      [ 8821.636811] 7ac0  0095f6b8 ffffff80 27e47b00 ffffffc0 0095f6c4 ffffff80 40000145 00000000
      [ 8821.646073] 7ae0  00000001 00000000 000f4240 00000000 ffffffff ffffffff 0095f6b8 ffffff80
      [ 8821.655335] 7b00  27e47b30 ffffffc0 00962b64 ffffff80 0b380000 ffffff80 0000006d 00000000
      [ 8821.664598] 7b20  27e47caf ffffffc0 0b386000 ffffff80 27e47bd0 ffffffc0 00979390 ffffff80
      [ 8821.673860] 7b40  0b380000 ffffff80 0000006d 00000000 27e47caf ffffffc0 0b386000 ffffff80
      [ 8821.683123] 7b60  00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [ 8821.692387]
      [ 8821.692387] X2: 0xffffffc03f711f80:
      [ 8821.697970] 1f80  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8821.707232] 1fa0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8821.716494] 1fc0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8821.725756] 1fe0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8821.735018] 2000  001a001a 001de7d0 00000000 00000000 00000000 00000001 00000005 00020101
      [ 8821.744280] 2020  ea5fb700 00000805 3f712440 ffffffc0 0007800a 0000036d 00000000 00000000
      [ 8821.753543] 2040  3f712000 ffffffc0 00000000 00000001 29ebb9c8 ffffffc0 3f712440 ffffffc0
      [ 8821.762805] 2060  080eced8 ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8821.772071]
      [ 8821.772071] X7: 0xffffffc027fa8e00:
      [ 8821.777653] 8e00  00000012 00000000 ffffffff ffffffff 00000000 00000000 00000000 00000000
      [ 8821.786915] 8e20  27e44000 ffffffc0 00000002 00208040 00000000 00000000 00000000 00000000
      [ 8821.796177] 8e40  00000001 00000000 00000002 00000000 001ff208 00000001 34d78e00 ffffffc0
      [ 8821.805439] 8e60  00000000 00000001 00000078 00000078 00000078 00000000 086e8270 ffffff80
      [ 8821.814701] 8e80  00100000 00000000 00400000 00000000 00000001 00000000 00000000 00000000
      [ 8821.823963] 8ea0  00000000 00000000 3f7156a0 ffffffc0 3f7156a0 ffffffc0 00000001 00000000
      [ 8821.833225] 8ec0  e704fe0b 00000805 a4ad146f 00000000 f0771072 0000001f a4ad146f 00000000
      [ 8821.842487] 8ee0  00000193 00000000 00000000 00000000 00000000 00000000 3f714de8 ffffffc0
      [ 8821.851751]
      [ 8821.851751] X8: 0xffffffc027fa9570:
      [ 8821.857333] 9570  0000c350 00000000 00000001 00000000 00000000 00000000 00000001 00000000
      [ 8821.866595] 9590  08952780 ffffff80 27fa8e00 ffffffc0 08952780 ffffff80 2de1be00 ffffffc0
      [ 8821.875857] 95b0  00000000 00000000 0894c000 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [ 8821.885120] 95d0  00000008 00000000 009cd0c8 ffffff80 27e479b0 ffffffc0 27e479b0 ffffffc0
      [ 8821.894382] 95f0  080851dc ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8821.903644] 9610  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8821.912906] 9630  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8821.922167] 9650  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8821.931431]
      [ 8821.931431] X9: 0xffffffc027e47930:
      [ 8821.937013] 7930  40000145 00000000 0000003d 00000000 0b3810a8 ffffff80 008e7e40 ffffff80
      [ 8821.946275] 7950  27e47990 ffffffc0 0829b948 ffffff80 0891e000 ffffff80 27fa8e00 ffffffc0
      [ 8821.955538] 7970  08952780 ffffff80 2de1be00 ffffffc0 27e47990 ffffffc0 086c9024 ffffff80
      [ 8821.964800] 7990  27e479a0 ffffffc0 080b60d0 ffffff80 27e479d0 ffffffc0 086c4a88 ffffff80
      [ 8821.974063] 79b0  3f714d80 ffffffc0 27fa8e00 ffffffc0 08952780 ffffff80 2de1be00 ffffffc0
      [ 8821.983325] 79d0  00000000 00000000 00000000 00000000 3f712000 ffffffc0 001de7d0 00000000
      [ 8821.992587] 79f0  00000000 00000000 00000001 00000000 00434a80 00000000 27fa8e80 ffffffc0
      [ 8822.001849] 7a10  27fa95f0 ffffffc0 27e479b0 ffffffc0 00000790 00000000 3f714db0 ffffffc0
      [ 8822.011114]
      [ 8822.011114] X11: 0xffffffc03f714d30:
      [ 8822.016793] 4d30  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8822.026056] 4d50  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [ 8822.035318] 4d70  00000000 00000000 00000000 00000000 11151115 00000001 00000000 00000000
      [ 8822.044579] 4d90  00000008 00000000 00000006 00000000 00000004 00000000 00000004 00000000
      [ 8822.053841] 4db0  00000000 00000000 002081c6 00000001 00000001 00000000 00100000 00000000
      [ 8822.063103] 4dd0  00000000 00000000 000a8ad8 00000000 001d96f9 00000000 00100000 00000000
      [ 8822.072365] 4df0  00000000 00000000 00000001 00000001 00000000 00000000 f0bab5cf 0000001f
      [ 8822.081628] 4e10  00000000 00000000 00000000 00000000 27fa8e80 ffffffc0 00000000 00000000
      [ 8822.090899]
      [ 8822.090899] X29: 0xffffffc027e47a80:
      [ 8822.096579] 7a80  00000001 00000000 00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80
      [ 8822.105841] 7aa0  008e7e40 ffffff80 00000008 00000000 009cd0c8 ffffff80 27e47b00 ffffffc0
      [ 8822.115104] 7ac0  0095f6b8 ffffff80 27e47b00 ffffffc0 0095f6c4 ffffff80 40000145 00000000
      [ 8822.124366] 7ae0  00000001 00000000 000f4240 00000000 ffffffff ffffffff 0095f6b8 ffffff80
      [ 8822.133628] 7b00  27e47b30 ffffffc0 00962b64 ffffff80 0b380000 ffffff80 0000006d 00000000
      [ 8822.142891] 7b20  27e47caf ffffffc0 0b386000 ffffff80 27e47bd0 ffffffc0 00979390 ffffff80
      [ 8822.152153] 7b40  0b380000 ffffff80 0000006d 00000000 27e47caf ffffffc0 0b386000 ffffff80
      [ 8822.161415] 7b60  00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [ 8822.170678]
      [ 8822.172352] ---[ end trace 2b8ee94b41b5b005 ]---
      [ 8822.177543] Call trace:
      [ 8822.180294] Exception stack(0xffffffc027e47910 to 0xffffffc027e47a40)
      [ 8822.187539] 7900:                                   0000000000000000 0000007fffffffff
      [ 8822.196347] 7920: ffffffc027e47b00 ffffff800095f6c4 0000000040000145 000000000000003d
      [ 8822.205156] 7940: ffffff800b3810a8 ffffff80008e7e40 ffffffc027e47990 ffffff800829b948
      [ 8822.213965] 7960: ffffff800891e000 ffffffc027fa8e00 ffffff8008952780 ffffffc02de1be00
      [ 8822.222765] 7980: ffffffc027e47990 ffffff80086c9024 ffffffc027e479a0 ffffff80080b60d0
      [ 8822.231574] 79a0: ffffffc027e479d0 ffffff80086c4a88 ffffffc03f714d80 ffffffc027fa8e00
      [ 8822.240383] 79c0: ffffff8008952780 ffffffc02de1be00 0000000000000000 0000000000000000
      [ 8822.249191] 79e0: ffffffc03f712000 00000000001de7d0 0000000000000000 0000000000000001
      [ 8822.258000] 7a00: 0000000000434a80 ffffffc027fa8e80 ffffffc027fa95f0 ffffffc027e479b0
      [ 8822.266808] 7a20: 0000000000000790 ffffffc03f714db0 0000000000000017 0000000000000000
      [ 8822.276110] [<ffffff800095f6c4>] rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [ 8822.283814] [<ffffff8000962b64>] SetHwReg+0x132c/0x13c0 [8723ds]
      [ 8822.291001] [<ffffff8000979390>] SetHwReg8723D+0x964/0x97c [8723ds]
      [ 8822.298480] [<ffffff800097d334>] SetHwReg8723DS+0x124/0x174 [8723ds]
      [ 8822.306058] [<ffffff8000958dac>] rtw_hal_set_hwreg+0x10/0x18 [8723ds]
      [ 8822.313727] [<ffffff8000916eb0>] rtw_set_ps_mode+0x108/0x2f8 [8723ds]
      [ 8822.321396] [<ffffff80009172b8>] LPS_Leave+0xc0/0xf0 [8723ds]
      [ 8822.328272] [<ffffff80008e618c>] lps_ctrl_wk_hdl+0x164/0x1d8 [8723ds]
      [ 8822.335930] [<ffffff80008e7ef8>] rtw_drvextra_cmd_hdl+0xb8/0x3a8 [8723ds]
      [ 8822.343978] [<ffffff80008e3f80>] rtw_cmd_thread+0x190/0x3e8 [8723ds]
      [ 8822.351132] [<ffffff80080b1840>] kthread+0xd4/0xe4
      [ 8822.356523] [<ffffff8008083180>] ret_from_fork+0x10/0x50
      [10262.904300] ------------[ cut here ]------------
      [10262.910016] WARNING: CPU: 0 PID: 1571 at drivers/net/wireless/rtl8723ds/hal/hal_com.c:11520 rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [10262.923026] Modules linked in: 8723ds vin_v4l2 imx386_2lane_mipi imx278_mipi vin_io videobuf2_dma_contig fuse dc_sunxi(O) pvrsrvkm(O)
      [10262.936576]
      [10262.938255] CPU: 0 PID: 1571 Comm: RTW_CMD_THREAD Tainted: G        W  O    4.9.191 #1
      [10262.947159] Hardware name: sun50iw10 (DT)
      [10262.951667] task: ffffffc027fa8e00 task.stack: ffffffc027e44000
      [10262.958777] PC is at rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [10262.965284] LR is at rtw_lps_state_chk+0x40/0x64 [8723ds]
      [10262.971355] pc : [<ffffff800095f6c4>] lr : [<ffffff800095f6b8>] pstate: 40000145
      [10262.979672] sp : ffffffc027e47b00
      [10262.983396] x29: ffffffc027e47b00 x28: ffffff80009cd0c8
      [10262.989382] x27: 0000000000000008 x26: ffffff80008e7e40
      [10262.995368] x25: ffffff800b3810a8 x24: ffffff80009cd4f8
      [10263.001354] x23: 0000000000000000 x22: 0000000000000001
      [10263.007340] x21: 0000000000000604 x20: ffffff800b380000
      [10263.013325] x19: 0000000000000000 x18: 0000000000000000
      [10263.019311] x17: 0000007f97e530b0 x16: ffffff8008196ce0
      [10263.025296] x15: 00004cbe1c5f98fc x14: 0000000000000000
      [10263.031282] x13: 0000000000000000 x12: 0000000000000017
      [10263.037268] x11: ffffffc03f714db0 x10: 0000000000000790
      [10263.043254] x9 : ffffffc027e479b0 x8 : ffffffc027fa95f0
      [10263.049239] x7 : ffffffc027fa8e80 x6 : 00000000004e4800
      [10263.055225] x5 : 0000000000000001 x4 : 0000000000000000
      [10263.061211] x3 : 00000000002300b4 x2 : ffffffc03f712000
      [10263.067196] x1 : 0000000000000000 x0 : 0000000000000000
      [10263.073184]
      [10263.073184] SP: 0xffffffc027e47a80:
      [10263.078766] 7a80  00000001 00000000 00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80
      [10263.088030] 7aa0  008e7e40 ffffff80 00000008 00000000 009cd0c8 ffffff80 27e47b00 ffffffc0
      [10263.097293] 7ac0  0095f6b8 ffffff80 27e47b00 ffffffc0 0095f6c4 ffffff80 40000145 00000000
      [10263.106555] 7ae0  00000001 00000000 000f4240 00000000 ffffffff ffffffff 0095f6b8 ffffff80
      [10263.115817] 7b00  27e47b30 ffffffc0 00962b64 ffffff80 0b380000 ffffff80 0000006d 00000000
      [10263.125080] 7b20  27e47caf ffffffc0 0b386000 ffffff80 27e47bd0 ffffffc0 00979390 ffffff80
      [10263.134343] 7b40  0b380000 ffffff80 0000006d 00000000 27e47caf ffffffc0 0b386000 ffffff80
      [10263.143605] 7b60  00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [10263.152870]
      [10263.152870] X2: 0xffffffc03f711f80:
      [10263.158453] 1f80  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [10263.167715] 1fa0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [10263.176977] 1fc0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [10263.186239] 1fe0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [10263.195501] 2000  6b016b01 002300b4 00000000 00000000 00000000 00000001 00000005 00020101
      [10263.204764] 2020  86e49f00 00000955 3f712440 ffffffc0 0008c9fa 00000481 00000000 00000000
      [10263.214026] 2040  3f712000 ffffffc0 00000000 00000001 2c53f9c8 ffffffc0 3f712440 ffffffc0
      [10263.223289] 2060  080eced8 ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
      [10263.232555]
      [10263.232555] X7: 0xffffffc027fa8e00:
      [10263.238137] 8e00  00000012 00000000 ffffffff ffffffff 00000000 00000000 00000000 00000000
      [10263.247399] 8e20  27e44000 ffffffc0 00000002 00208040 00000000 00000000 00000000 00000000
      [10263.256661] 8e40  00000001 00000000 00000000 00000000 0025d421 00000001 3e13a900 ffffffc0
      [10263.265923] 8e60  00000000 00000001 00000078 00000078 00000078 00000000 086e8270 ffffff80
      [10263.275185] 8e80  00100000 00000000 00400000 00000000 00000001 00000000 00000000 00000000
      [10263.284448] 8ea0  00000000 00000000 3f7156a0 ffffffc0 3f7156a0 ffffffc0 00000001 00000000
      [10263.293710] 8ec0  84c2733c 00000955 e4eea78d 00000000 9b8812c2 00000020 e4eea78d 00000000
      [10263.302972] 8ee0  0000023d 00000000 00000000 00000000 00000000 00000000 3f714de8 ffffffc0
      [10263.312236]
      [10263.312236] X8: 0xffffffc027fa9570:
      [10263.317818] 9570  0000c350 00000000 00000001 00000000 00000000 00000000 00000001 00000000
      [10263.327080] 9590  08952780 ffffff80 27fa8e00 ffffffc0 08952780 ffffff80 2b0f3e00 ffffffc0
      [10263.336342] 95b0  00000000 00000000 0894c000 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [10263.345605] 95d0  00000008 00000000 009cd0c8 ffffff80 27e479b0 ffffffc0 27e479b0 ffffffc0
      [10263.354867] 95f0  080851dc ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
      [10263.364129] 9610  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [10263.373391] 9630  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [10263.382653] 9650  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [10263.391917]
      [10263.391917] X9: 0xffffffc027e47930:
      [10263.397499] 7930  40000145 00000000 0000003d 00000000 0b3810a8 ffffff80 008e7e40 ffffff80
      [10263.406759] 7950  27e47990 ffffffc0 0829b948 ffffff80 0891e000 ffffff80 27fa8e00 ffffffc0
      [10263.416021] 7970  08952780 ffffff80 2b0f3e00 ffffffc0 27e47990 ffffffc0 086c9024 ffffff80
      [10263.425284] 7990  27e479a0 ffffffc0 080b60d0 ffffff80 27e479d0 ffffffc0 086c4a88 ffffff80
      [10263.434547] 79b0  3f714d80 ffffffc0 27fa8e00 ffffffc0 08952780 ffffff80 2b0f3e00 ffffffc0
      [10263.443809] 79d0  00000000 00000000 00000000 00000000 3f712000 ffffffc0 002300b4 00000000
      [10263.453071] 79f0  00000000 00000000 00000001 00000000 004e4800 00000000 27fa8e80 ffffffc0
      [10263.462333] 7a10  27fa95f0 ffffffc0 27e479b0 ffffffc0 00000790 00000000 3f714db0 ffffffc0
      [10263.471598]
      [10263.471598] X11: 0xffffffc03f714d30:
      [10263.477278] 4d30  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [10263.486540] 4d50  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [10263.495802] 4d70  00000000 00000000 00000000 00000000 3d423d42 00000001 00000000 00000000
      [10263.505064] 4d90  00000008 00000000 00000007 00000000 00000006 00000000 00000006 00000000
      [10263.514326] 4db0  00000000 00000000 0026016e 00000001 00000001 00000000 00100000 00000000
      [10263.523588] 4dd0  00000000 00000000 000bb7bb 00000000 001f4902 00000000 00100000 00000000
      [10263.532850] 4df0  00000000 00000000 00000001 00000001 00000000 00000000 9c06f8ef 00000020
      [10263.542112] 4e10  00000000 00000000 00000000 00000000 27fa8e80 ffffffc0 00000000 00000000
      [10263.551383]
      [10263.551383] X29: 0xffffffc027e47a80:
      [10263.557063] 7a80  00000001 00000000 00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80
      [10263.566326] 7aa0  008e7e40 ffffff80 00000008 00000000 009cd0c8 ffffff80 27e47b00 ffffffc0
      [10263.575589] 7ac0  0095f6b8 ffffff80 27e47b00 ffffffc0 0095f6c4 ffffff80 40000145 00000000
      [10263.584851] 7ae0  00000001 00000000 000f4240 00000000 ffffffff ffffffff 0095f6b8 ffffff80
      [10263.594113] 7b00  27e47b30 ffffffc0 00962b64 ffffff80 0b380000 ffffff80 0000006d 00000000
      [10263.603376] 7b20  27e47caf ffffffc0 0b386000 ffffff80 27e47bd0 ffffffc0 00979390 ffffff80
      [10263.612638] 7b40  0b380000 ffffff80 0000006d 00000000 27e47caf ffffffc0 0b386000 ffffff80
      [10263.621900] 7b60  00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [10263.631163]
      [10263.632837] ---[ end trace 2b8ee94b41b5b006 ]---
      [10263.638028] Call trace:
      [10263.640779] Exception stack(0xffffffc027e47910 to 0xffffffc027e47a40)
      [10263.648024] 7900:                                   0000000000000000 0000007fffffffff
      [10263.656832] 7920: ffffffc027e47b00 ffffff800095f6c4 0000000040000145 000000000000003d
      [10263.665641] 7940: ffffff800b3810a8 ffffff80008e7e40 ffffffc027e47990 ffffff800829b948
      [10263.674450] 7960: ffffff800891e000 ffffffc027fa8e00 ffffff8008952780 ffffffc02b0f3e00
      [10263.683250] 7980: ffffffc027e47990 ffffff80086c9024 ffffffc027e479a0 ffffff80080b60d0
      [10263.692058] 79a0: ffffffc027e479d0 ffffff80086c4a88 ffffffc03f714d80 ffffffc027fa8e00
      [10263.700867] 79c0: ffffff8008952780 ffffffc02b0f3e00 0000000000000000 0000000000000000
      [10263.709675] 79e0: ffffffc03f712000 00000000002300b4 0000000000000000 0000000000000001
      [10263.718484] 7a00: 00000000004e4800 ffffffc027fa8e80 ffffffc027fa95f0 ffffffc027e479b0
      [10263.727292] 7a20: 0000000000000790 ffffffc03f714db0 0000000000000017 0000000000000000
      [10263.736587] [<ffffff800095f6c4>] rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [10263.744285] [<ffffff8000962b64>] SetHwReg+0x132c/0x13c0 [8723ds]
      [10263.751472] [<ffffff8000979390>] SetHwReg8723D+0x964/0x97c [8723ds]
      [10263.758949] [<ffffff800097d334>] SetHwReg8723DS+0x124/0x174 [8723ds]
      [10263.766526] [<ffffff8000958dac>] rtw_hal_set_hwreg+0x10/0x18 [8723ds]
      [10263.774195] [<ffffff8000916eb0>] rtw_set_ps_mode+0x108/0x2f8 [8723ds]
      [10263.781865] [<ffffff80009172b8>] LPS_Leave+0xc0/0xf0 [8723ds]
      [10263.788741] [<ffffff80008e618c>] lps_ctrl_wk_hdl+0x164/0x1d8 [8723ds]
      [10263.796400] [<ffffff80008e7ef8>] rtw_drvextra_cmd_hdl+0xb8/0x3a8 [8723ds]
      [10263.804449] [<ffffff80008e3f80>] rtw_cmd_thread+0x190/0x3e8 [8723ds]
      [10263.811603] [<ffffff80080b1840>] kthread+0xd4/0xe4
      [10263.816994] [<ffffff8008083180>] ret_from_fork+0x10/0x50
      [11280.971275] ------------[ cut here ]------------
      [11280.976992] WARNING: CPU: 0 PID: 1571 at drivers/net/wireless/rtl8723ds/hal/hal_com.c:11520 rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [11280.990001] Modules linked in: 8723ds vin_v4l2 imx386_2lane_mipi imx278_mipi vin_io videobuf2_dma_contig fuse dc_sunxi(O) pvrsrvkm(O)
      [11281.003551]
      [11281.005230] CPU: 0 PID: 1571 Comm: RTW_CMD_THREAD Tainted: G        W  O    4.9.191 #1
      [11281.014134] Hardware name: sun50iw10 (DT)
      [11281.018641] task: ffffffc027fa8e00 task.stack: ffffffc027e44000
      [11281.025751] PC is at rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [11281.032255] LR is at rtw_lps_state_chk+0x40/0x64 [8723ds]
      [11281.038327] pc : [<ffffff800095f6c4>] lr : [<ffffff800095f6b8>] pstate: 40000145
      [11281.046644] sp : ffffffc027e47b00
      [11281.050368] x29: ffffffc027e47b00 x28: ffffff80009cd0c8
      [11281.056354] x27: 0000000000000008 x26: ffffff80008e7e40
      [11281.062340] x25: ffffff800b3810a8 x24: ffffff80009cd4f8
      [11281.068326] x23: 0000000000000000 x22: 0000000000000001
      [11281.074312] x21: 0000000000000604 x20: ffffff800b380000
      [11281.080298] x19: 0000000000000000 x18: 000000000000000a
      [11281.086283] x17: 0000007fb3308ff4 x16: ffffff800816d424
      [11281.092269] x15: 0000000000000010 x14: 0000000000000001
      [11281.098254] x13: 0000000000000000 x12: 0000000000000017
      [11281.104240] x11: ffffffc03f714db0 x10: 0000000000000790
      [11281.110226] x9 : ffffffc027e479b0 x8 : ffffffc027fa95f0
      [11281.116212] x7 : ffffffc027fa8e80 x6 : 0000000000560c34
      [11281.122198] x5 : 0000000000000001 x4 : 0000000000000000
      [11281.128183] x3 : 0000000000274fd0 x2 : ffffffc03f712000
      [11281.134169] x1 : 0000000000000000 x0 : 0000000000000000
      [11281.140156]
      [11281.140156] SP: 0xffffffc027e47a80:
      [11281.145738] 7a80  00000001 00000000 00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80
      [11281.155002] 7aa0  008e7e40 ffffff80 00000008 00000000 009cd0c8 ffffff80 27e47b00 ffffffc0
      [11281.164265] 7ac0  0095f6b8 ffffff80 27e47b00 ffffffc0 0095f6c4 ffffff80 40000145 00000000
      [11281.173527] 7ae0  00000001 00000000 000f4240 00000000 ffffffff ffffffff 0095f6b8 ffffff80
      [11281.182790] 7b00  27e47b30 ffffffc0 00962b64 ffffff80 0b380000 ffffff80 0000006d 00000000
      [11281.192052] 7b20  27e47caf ffffffc0 0b386000 ffffff80 27e47bd0 ffffffc0 00979390 ffffff80
      [11281.201315] 7b40  0b380000 ffffff80 0000006d 00000000 27e47caf ffffffc0 0b386000 ffffff80
      [11281.210578] 7b60  00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [11281.219843]
      [11281.219843] X2: 0xffffffc03f711f80:
      [11281.225426] 1f80  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11281.234688] 1fa0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11281.243950] 1fc0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11281.253212] 1fe0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11281.262474] 2000  ad1cad1c 00274fd0 00000000 00000000 00000000 00000001 00000005 00020101
      [11281.271737] 2020  91309700 00000a42 3f712440 ffffffc0 0009de21 00000492 00000000 00000000
      [11281.280999] 2040  3f712000 ffffffc0 00000000 00000001 2c53f9c8 ffffffc0 3f712440 ffffffc0
      [11281.290262] 2060  080eced8 ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
      [11281.299527]
      [11281.299527] X7: 0xffffffc027fa8e00:
      [11281.305109] 8e00  00000012 00000000 ffffffff ffffffff 00000000 00000000 00000000 00000000
      [11281.314371] 8e20  27e44000 ffffffc0 00000002 00208040 00000000 00000000 00000000 00000000
      [11281.323634] 8e40  00000001 00000000 00000000 00000000 002990f1 00000001 3e13a900 ffffffc0
      [11281.332896] 8e60  00000000 00000001 00000078 00000078 00000078 00000000 086e8270 ffffff80
      [11281.342158] 8e80  00100000 00000000 00400000 00000000 00000001 00000000 00000000 00000000
      [11281.351420] 8ea0  00000000 00000000 3f7156a0 ffffffc0 3f7156a0 ffffffc0 00000001 00000000
      [11281.360683] 8ec0  8e47c07a 00000a42 282182c5 00000001 1e4d184e 00000021 282182c5 00000001
      [11281.369945] 8ee0  00000279 00000000 00000000 00000000 00000000 00000000 3f714de8 ffffffc0
      [11281.379209]
      [11281.379209] X8: 0xffffffc027fa9570:
      [11281.384791] 9570  0000c350 00000000 00000001 00000000 00000000 00000000 00000001 00000000
      [11281.394054] 9590  08952780 ffffff80 27fa8e00 ffffffc0 08952780 ffffff80 2de1b940 ffffffc0
      [11281.403316] 95b0  00000000 00000000 0894c000 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [11281.412579] 95d0  00000008 00000000 009cd0c8 ffffff80 27e479b0 ffffffc0 27e479b0 ffffffc0
      [11281.421841] 95f0  080851dc ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
      [11281.431103] 9610  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11281.440365] 9630  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11281.449627] 9650  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11281.458891]
      [11281.458891] X9: 0xffffffc027e47930:
      [11281.464473] 7930  40000145 00000000 0000003d 00000000 0b3810a8 ffffff80 008e7e40 ffffff80
      [11281.473735] 7950  27e47990 ffffffc0 0829b948 ffffff80 0891e000 ffffff80 27fa8e00 ffffffc0
      [11281.482998] 7970  08952780 ffffff80 2de1b940 ffffffc0 27e47990 ffffffc0 086c9024 ffffff80
      [11281.492260] 7990  27e479a0 ffffffc0 080b60d0 ffffff80 27e479d0 ffffffc0 086c4a88 ffffff80
      [11281.501523] 79b0  3f714d80 ffffffc0 27fa8e00 ffffffc0 08952780 ffffff80 2de1b940 ffffffc0
      [11281.510786] 79d0  00000000 00000000 00000000 00000000 3f712000 ffffffc0 00274fd0 00000000
      [11281.520048] 79f0  00000000 00000000 00000001 00000000 00560c34 00000000 27fa8e80 ffffffc0
      [11281.529310] 7a10  27fa95f0 ffffffc0 27e479b0 ffffffc0 00000790 00000000 3f714db0 ffffffc0
      [11281.538576]
      [11281.538576] X11: 0xffffffc03f714d30:
      [11281.544255] 4d30  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11281.553517] 4d50  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11281.562780] 4d70  00000000 00000000 00000000 00000000 882a882a 00000001 00000000 00000000
      [11281.572042] 4d90  00000008 00000000 00000006 00000000 00000004 00000000 00000004 00000000
      [11281.581304] 4db0  00000000 00000000 0029e3a6 00000001 00000001 00000000 00100000 00000000
      [11281.590566] 4dd0  00000000 00000000 000cb710 00000000 0021195b 00000000 00100000 00000000
      [11281.599829] 4df0  00000000 00000000 00000001 00000001 00000000 00000000 1e6d0048 00000021
      [11281.609091] 4e10  00000000 00000000 00000000 00000000 27fa8e80 ffffffc0 00000000 00000000
      [11281.618362]
      [11281.618362] X29: 0xffffffc027e47a80:
      [11281.624042] 7a80  00000001 00000000 00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80
      [11281.633305] 7aa0  008e7e40 ffffff80 00000008 00000000 009cd0c8 ffffff80 27e47b00 ffffffc0
      [11281.642567] 7ac0  0095f6b8 ffffff80 27e47b00 ffffffc0 0095f6c4 ffffff80 40000145 00000000
      [11281.651830] 7ae0  00000001 00000000 000f4240 00000000 ffffffff ffffffff 0095f6b8 ffffff80
      [11281.661092] 7b00  27e47b30 ffffffc0 00962b64 ffffff80 0b380000 ffffff80 0000006d 00000000
      [11281.670354] 7b20  27e47caf ffffffc0 0b386000 ffffff80 27e47bd0 ffffffc0 00979390 ffffff80
      [11281.679616] 7b40  0b380000 ffffff80 0000006d 00000000 27e47caf ffffffc0 0b386000 ffffff80
      [11281.688879] 7b60  00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [11281.698141]
      [11281.699816] ---[ end trace 2b8ee94b41b5b007 ]---
      [11281.705007] Call trace:
      [11281.707757] Exception stack(0xffffffc027e47910 to 0xffffffc027e47a40)
      [11281.715003] 7900:                                   0000000000000000 0000007fffffffff
      [11281.723811] 7920: ffffffc027e47b00 ffffff800095f6c4 0000000040000145 000000000000003d
      [11281.732620] 7940: ffffff800b3810a8 ffffff80008e7e40 ffffffc027e47990 ffffff800829b948
      [11281.741429] 7960: ffffff800891e000 ffffffc027fa8e00 ffffff8008952780 ffffffc02de1b940
      [11281.750238] 7980: ffffffc027e47990 ffffff80086c9024 ffffffc027e479a0 ffffff80080b60d0
      [11281.759046] 79a0: ffffffc027e479d0 ffffff80086c4a88 ffffffc03f714d80 ffffffc027fa8e00
      [11281.767846] 79c0: ffffff8008952780 ffffffc02de1b940 0000000000000000 0000000000000000
      [11281.776654] 79e0: ffffffc03f712000 0000000000274fd0 0000000000000000 0000000000000001
      [11281.785464] 7a00: 0000000000560c34 ffffffc027fa8e80 ffffffc027fa95f0 ffffffc027e479b0
      [11281.794272] 7a20: 0000000000000790 ffffffc03f714db0 0000000000000017 0000000000000000
      [11281.803576] [<ffffff800095f6c4>] rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [11281.811271] [<ffffff8000962b64>] SetHwReg+0x132c/0x13c0 [8723ds]
      [11281.818457] [<ffffff8000979390>] SetHwReg8723D+0x964/0x97c [8723ds]
      [11281.825933] [<ffffff800097d334>] SetHwReg8723DS+0x124/0x174 [8723ds]
      [11281.833511] [<ffffff8000958dac>] rtw_hal_set_hwreg+0x10/0x18 [8723ds]
      [11281.841180] [<ffffff8000916eb0>] rtw_set_ps_mode+0x108/0x2f8 [8723ds]
      [11281.848849] [<ffffff80009172b8>] LPS_Leave+0xc0/0xf0 [8723ds]
      [11281.855725] [<ffffff80008e618c>] lps_ctrl_wk_hdl+0x164/0x1d8 [8723ds]
      [11281.863383] [<ffffff80008e7ef8>] rtw_drvextra_cmd_hdl+0xb8/0x3a8 [8723ds]
      [11281.871431] [<ffffff80008e3f80>] rtw_cmd_thread+0x190/0x3e8 [8723ds]
      [11281.878585] [<ffffff80080b1840>] kthread+0xd4/0xe4
      [11281.883975] [<ffffff8008083180>] ret_from_fork+0x10/0x50
      [11301.130330] ------------[ cut here ]------------
      [11301.136044] WARNING: CPU: 0 PID: 1571 at drivers/net/wireless/rtl8723ds/hal/hal_com.c:11520 rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [11301.149055] Modules linked in: 8723ds vin_v4l2 imx386_2lane_mipi imx278_mipi vin_io videobuf2_dma_contig fuse dc_sunxi(O) pvrsrvkm(O)
      [11301.162605]
      [11301.164284] CPU: 0 PID: 1571 Comm: RTW_CMD_THREAD Tainted: G        W  O    4.9.191 #1
      [11301.173188] Hardware name: sun50iw10 (DT)
      [11301.177696] task: ffffffc027fa8e00 task.stack: ffffffc027e44000
      [11301.184817] PC is at rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [11301.191326] LR is at rtw_lps_state_chk+0x40/0x64 [8723ds]
      [11301.197397] pc : [<ffffff800095f6c4>] lr : [<ffffff800095f6b8>] pstate: 40000145
      [11301.205714] sp : ffffffc027e47b00
      [11301.209439] x29: ffffffc027e47b00 x28: ffffff80009cd0c8
      [11301.215425] x27: 0000000000000008 x26: ffffff80008e7e40
      [11301.221411] x25: ffffff800b3810a8 x24: ffffff80009cd4f8
      [11301.227397] x23: 0000000000000000 x22: 0000000000000001
      [11301.233383] x21: 0000000000000604 x20: ffffff800b380000
      [11301.239368] x19: 0000000000000000 x18: 0000000000000084
      [11301.245354] x17: 0000007f7981ee94 x16: ffffff80080e9614
      [11301.251340] x15: 00005d97fae1026b x14: 0000000000000000
      [11301.257326] x13: 0000000000000000 x12: 0000000000000016
      [11301.263311] x11: ffffffc03f714db0 x10: 0000000000000790
      [11301.269297] x9 : ffffffc027e479b0 x8 : ffffffc027fa95f0
      [11301.275283] x7 : ffffffc027fa8e80 x6 : 0000000000563394
      [11301.281269] x5 : 0000000000000001 x4 : 0000000000000000
      [11301.287254] x3 : 00000000002795fc x2 : ffffffc03f712000
      [11301.293240] x1 : 0000000000000000 x0 : 0000000000000000
      [11301.299227]
      [11301.299227] SP: 0xffffffc027e47a80:
      [11301.304809] 7a80  00000001 00000000 00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80
      [11301.314073] 7aa0  008e7e40 ffffff80 00000008 00000000 009cd0c8 ffffff80 27e47b00 ffffffc0
      [11301.323335] 7ac0  0095f6b8 ffffff80 27e47b00 ffffffc0 0095f6c4 ffffff80 40000145 00000000
      [11301.332598] 7ae0  00000001 00000000 000f4240 00000000 ffffffff ffffffff 0095f6b8 ffffff80
      [11301.341860] 7b00  27e47b30 ffffffc0 00962b64 ffffff80 0b380000 ffffff80 0000006d 00000000
      [11301.351123] 7b20  27e47caf ffffffc0 0b386000 ffffff80 27e47bd0 ffffffc0 00979390 ffffff80
      [11301.360385] 7b40  0b380000 ffffff80 0000006d 00000000 27e47caf ffffffc0 0b386000 ffffff80
      [11301.369648] 7b60  00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [11301.378913]
      [11301.378913] X2: 0xffffffc03f711f80:
      [11301.384495] 1f80  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11301.393758] 1fa0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11301.403019] 1fc0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11301.412282] 1fe0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11301.421544] 2000  fe07fe07 002795fc 00000000 00000000 00000000 00000001 00000005 00020101
      [11301.430806] 2020  42d1c700 00000a47 3f712440 ffffffc0 0009ef9c 00000492 00000000 00000000
      [11301.440068] 2040  3f712000 ffffffc0 00000000 00000001 2c53f9c8 ffffffc0 3f712440 ffffffc0
      [11301.449331] 2060  080eced8 ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
      [11301.458596]
      [11301.458596] X7: 0xffffffc027fa8e00:
      [11301.464178] 8e00  00000012 00000000 ffffffff ffffffff 00000000 00000000 00000000 00000000
      [11301.473441] 8e20  27e44000 ffffffc0 00000002 00208040 00000000 00000000 00000000 00000000
      [11301.482703] 8e40  00000001 00000000 00000001 00000000 0029e48c 00000001 38630e00 ffffffc0
      [11301.491965] 8e60  00000000 00000001 00000078 00000078 00000078 00000000 086e8270 ffffff80
      [11301.501227] 8e80  00100000 00000000 00400000 00000000 00000001 00000000 00000000 00000000
      [11301.510490] 8ea0  00000000 00000000 3f7156a0 ffffffc0 3f7156a0 ffffffc0 00000001 00000000
      [11301.519752] 8ec0  3fda7f3c 00000a47 5f42b568 00000001 5a6bee05 00000021 5f42b568 00000001
      [11301.529015] 8ee0  0000027f 00000000 00000000 00000000 00000000 00000000 3f714de8 ffffffc0
      [11301.538278]
      [11301.538278] X8: 0xffffffc027fa9570:
      [11301.543860] 9570  0000c350 00000000 00000001 00000000 00000000 00000000 00000001 00000000
      [11301.553122] 9590  08952780 ffffff80 27fa8e00 ffffffc0 08952780 ffffff80 2de1f240 ffffffc0
      [11301.562385] 95b0  00000000 00000000 0894c000 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [11301.571648] 95d0  00000008 00000000 009cd0c8 ffffff80 27e479b0 ffffffc0 27e479b0 ffffffc0
      [11301.580910] 95f0  080851dc ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
      [11301.590173] 9610  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11301.599435] 9630  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11301.608696] 9650  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11301.617958]
      [11301.617958] X9: 0xffffffc027e47930:
      [11301.623541] 7930  40000145 00000000 0000003d 00000000 0b3810a8 ffffff80 008e7e40 ffffff80
      [11301.632804] 7950  27e47990 ffffffc0 0829b948 ffffff80 0891e000 ffffff80 27fa8e00 ffffffc0
      [11301.642067] 7970  08952780 ffffff80 2de1f240 ffffffc0 27e47990 ffffffc0 086c9024 ffffff80
      [11301.651330] 7990  27e479a0 ffffffc0 080b60d0 ffffff80 27e479d0 ffffffc0 086c4a88 ffffff80
      [11301.660592] 79b0  3f714d80 ffffffc0 27fa8e00 ffffffc0 08952780 ffffff80 2de1f240 ffffffc0
      [11301.669853] 79d0  00000000 00000000 00000000 00000000 3f712000 ffffffc0 002795fc 00000000
      [11301.679115] 79f0  00000000 00000000 00000001 00000000 00563394 00000000 27fa8e80 ffffffc0
      [11301.688377] 7a10  27fa95f0 ffffffc0 27e479b0 ffffffc0 00000790 00000000 3f714db0 ffffffc0
      [11301.697642]
      [11301.697642] X11: 0xffffffc03f714d30:
      [11301.703322] 4d30  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11301.712585] 4d50  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [11301.721847] 4d70  00000000 00000000 00000000 00000000 cc15cc15 00000001 00000000 00000000
      [11301.731109] 4d90  00000007 00000000 00000005 00000000 00000004 00000000 00000004 00000000
      [11301.740371] 4db0  00000000 00000000 0029f756 00000001 00000001 00000000 00100000 00000000
      [11301.749634] 4dd0  00000000 00000000 000cc48b 00000000 0021324c 00000000 00100000 00000000
      [11301.758896] 4df0  00000000 00000000 00000001 00000001 00000000 00000000 5aed7026 00000021
      [11301.768158] 4e10  00000000 00000000 00000000 00000000 27fa8e80 ffffffc0 00000000 00000000
      [11301.777430]
      [11301.777430] X29: 0xffffffc027e47a80:
      [11301.783109] 7a80  00000001 00000000 00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80
      [11301.792371] 7aa0  008e7e40 ffffff80 00000008 00000000 009cd0c8 ffffff80 27e47b00 ffffffc0
      [11301.801634] 7ac0  0095f6b8 ffffff80 27e47b00 ffffffc0 0095f6c4 ffffff80 40000145 00000000
      [11301.810896] 7ae0  00000001 00000000 000f4240 00000000 ffffffff ffffffff 0095f6b8 ffffff80
      [11301.820158] 7b00  27e47b30 ffffffc0 00962b64 ffffff80 0b380000 ffffff80 0000006d 00000000
      [11301.829421] 7b20  27e47caf ffffffc0 0b386000 ffffff80 27e47bd0 ffffffc0 00979390 ffffff80
      [11301.838683] 7b40  0b380000 ffffff80 0000006d 00000000 27e47caf ffffffc0 0b386000 ffffff80
      [11301.847945] 7b60  00000000 00000000 009cd4f8 ffffff80 0b3810a8 ffffff80 008e7e40 ffffff80
      [11301.857208]
      [11301.858882] ---[ end trace 2b8ee94b41b5b008 ]---
      [11301.864073] Call trace:
      [11301.866824] Exception stack(0xffffffc027e47910 to 0xffffffc027e47a40)
      [11301.874060] 7900:                                   0000000000000000 0000007fffffffff
      [11301.882869] 7920: ffffffc027e47b00 ffffff800095f6c4 0000000040000145 000000000000003d
      [11301.891678] 7940: ffffff800b3810a8 ffffff80008e7e40 ffffffc027e47990 ffffff800829b948
      [11301.900486] 7960: ffffff800891e000 ffffffc027fa8e00 ffffff8008952780 ffffffc02de1f240
      [11301.909295] 7980: ffffffc027e47990 ffffff80086c9024 ffffffc027e479a0 ffffff80080b60d0
      [11301.918103] 79a0: ffffffc027e479d0 ffffff80086c4a88 ffffffc03f714d80 ffffffc027fa8e00
      [11301.926912] 79c0: ffffff8008952780 ffffffc02de1f240 0000000000000000 0000000000000000
      [11301.935721] 79e0: ffffffc03f712000 00000000002795fc 0000000000000000 0000000000000001
      [11301.944530] 7a00: 0000000000563394 ffffffc027fa8e80 ffffffc027fa95f0 ffffffc027e479b0
      [11301.953338] 7a20: 0000000000000790 ffffffc03f714db0 0000000000000016 0000000000000000
      [11301.962645] [<ffffff800095f6c4>] rtw_lps_state_chk+0x4c/0x64 [8723ds]
      [11301.970341] [<ffffff8000962b64>] SetHwReg+0x132c/0x13c0 [8723ds]
      [11301.977529] [<ffffff8000979390>] SetHwReg8723D+0x964/0x97c [8723ds]
      [11301.985005] [<ffffff800097d334>] SetHwReg8723DS+0x124/0x174 [8723ds]
      [11301.992582] [<ffffff8000958dac>] rtw_hal_set_hwreg+0x10/0x18 [8723ds]
      [11302.000252] [<ffffff8000916eb0>] rtw_set_ps_mode+0x108/0x2f8 [8723ds]
      [11302.007913] [<ffffff80009172b8>] LPS_Leave+0xc0/0xf0 [8723ds]
      [11302.014789] [<ffffff80008e618c>] lps_ctrl_wk_hdl+0x164/0x1d8 [8723ds]
      [11302.022447] [<ffffff80008e7ef8>] rtw_drvextra_cmd_hdl+0xb8/0x3a8 [8723ds]
      [11302.030496] [<ffffff80008e3f80>] rtw_cmd_thread+0x190/0x3e8 [8723ds]
      [11302.037650] [<ffffff80080b1840>] kthread+0xd4/0xe4
      [11302.043041] [<ffffff8008083180>] ret_from_fork+0x10/0x50
      
      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: 基于T507的 OpenHarmony 分布式音乐播放器2.0

      其实我还没看懂是啥

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 欲哭无泪,酿成大错, 删除目录的软链接,把原目录全删了

      比如 tina 软链接到 -> tina5/ 目录

      如果 rm tina/ 就会把 tina5/ 全删了,

      如果只想删除软链接, 应该用: rm tina

      参考: https://stackoverflow.com/questions/210120/remove-a-symlink-to-a-directory

      发布在 Linux
      tigger
      tigger
    • 回复: 搭建环境时候第一步就出错了

      大概是这个域名被墙了: https://gerrit.googlesource.com/

      发布在 Wireless & Analog Series
      tigger
      tigger
    • tplayerdemo 可以在后台播放吗?

      我想添加到开机脚 /etc/init.d/play

      #!/bin/sh /etc/rc.common
      # Copyright (C) 2006 OpenWrt.org
      
      START=88
      STOP=88
      USE_PROCD=1
      
      start_service() {
              /usr/bin/tplayerdemo /mnt/SDCARD/bh.mp4 > /dev/console &
      }
      
      shutdown() {
              echo stop
      }
      

      启动后,在后台自动播放 mp4 文件, 但是发现运行后就退出了。

      发布在 MR Series
      tigger
      tigger
    • 回复: V3s + RTL8723DS tina 执行 bt_test 蓝牙sink程序,发现本机声卡不出声,并且报以下错误 Couldn't open PCM:default

      学习 alsa 配置: alsa 配置文件asound.conf

      1.介绍
      笔者在博客《Alsa调试下篇:应用篇》中一文中提到过asound.conf这个配置文件,在本文中,笔者将为你详细介绍这个文件。在《Alsa调试上篇:编译篇》中通过交叉编译我们可以得到alsa-lib的一些文件,在usr/local/shar/alsa/中有一个文件叫---alsa.conf

      alsa官网解释:https://www.alsa-project.org/main/index.php/Asoundrc

      这个文件在调用snd_pcm_open这个api函数时,会被加载同时解析。接下来看看官网给的解释:

      Why asoundrc?

      What is it good for, why do I want one?
      
      Neither the user-side .asoundrc nor the asound.conf configuration files are required for ALSA to work properly. Most applications will work without them. These files are used to allow extra functionality, such as routing and sample-rate conversion, through the alsa-lib layer. The actual reason that most applications will work without these user-side custom config files is that usually a default install of alsa-lib provides a sufficiently capable setup consisting of hierarchical config files (which always make use of the standard .asoundrc format syntax as well), which are specifically capable of supporting certain soundcard brands each. Thus, let's start with a quick overview of how ALSA config file framework evaluation is composed, globally:
      
      Global view of ALSA config file framework, executive summary
      The alsa-lib package (at least on Debian libasound2-data 1.0.27) provides the /usr/share/alsa/alsa.conf file as the main entry point. That file is responsible for including the full list of potential .asoundrc-format-type files on the system. It contains a reference to the ALSA "DATADIR" (Debian: /usr/share/alsa/). It continues by loading the DATADIR's cards/aliases.conf file: that one defines translation mappings from the kernel driver's sound card name (as listed at /proc/asound/cards, or aplay -Ll) to a "more detailed" description string. That "more detailed name" of a sound card then gets used to lookup a corresponding card-specific config file at DATADIR/cards/CARD.conf. And THAT card-specific file then attempts to provide a maximally elegant sound setup for its specific card brand, by compensating for various limitations of cards (e.g. use dmix to combat single-stream playback only, or stereo downmix to lessen a mono-output-only restriction). Finally (to support those cases where the standard setup of a soundcard is deficient/lacking, or custom plugin setup is desired), alsa.conf loads a system-global custom settings file /etc/asound.conf and a per-user custom settings file ~/.asoundrc.
      
      So, the objective should be to achieve having the common alsa-lib configuration file framework enhanced by default in the best possible manner for each specific soundcard brand, to avoid the need of creating manually customized config files in all standard cases.
      
      With this global overview done and cared for, let's have a look at the actual configuration format of alsa-lib files.
      

      上面的主要说明点:

      .asoundrc和asound.conf的引入提供用户定制化
      /usr/share/alsa/alsa.conf为alsa-api的主要入口点

      2. asound.conf的作用

      asound.conf允许对声卡或者设备进行更高级的控制,提供访问alsa-lib中的pcm插件方法,允许你做更多的复杂的控制,比如可以把声卡组合成一个或者多声卡访问多个I/O。

      3.Default plugin

      pcm.!default {
      	type hw
      	card 0
      }
       
      ctl.!default {
      	type hw           
      	card 0
      }
      

      关键字default定义在alsa-lib中,将会访问hw:0,0声卡。

      aplay -D default test.wav  (== aplay -Dhw:0,0 test.wav)
      

      4.Plugin
      在alsa中,pcm插件扩展pcm设备的功能和特性。这些插件自动处理诸如命令设备,采样率转换,通道之间的采样复制,写入文件,为多个输入/输出(未采样同步)加入声卡/设备,使用多通道声卡/设备以及其他可能留给你的开发任务,详细的plugin和选项的完整列表:http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html

      4.1rate_convert

      pcm.rate_convert {
      	type rate
      	slave {
      		pcm
      		rate 48000
      	}
      }
      

      调用这个接口,比如之前44.1k的采样频率将会转换为48khz。

      更复杂的用法:

      type plug             	# Format adjusted PCM
      slave STR               # Slave name (see pcm_slave)
      # or
      slave {                 # Slave definition
      	pcm STR         # Slave PCM name
      	# or
      	pcm { }         # Slave PCM definition
      	[format STR]    # Slave format (default nearest) or "unchanged"
      	[channels INT]  # Slave channels (default nearest) or "unchanged"
      	[rate INT]      # Slave rate (default nearest) or "unchanged"
      }
      route_policy STR 	# route policy for automatic ttable generation
            	                # STR can be 'default', 'average', 'copy', 'duplicate'
                             # average: result is average of input channels
                            	# copy: only first channels are copied to destination
                            	# duplicate: duplicate first set of channels
                             # default: copy policy, except for mono capture - sum
      ttable {               # Transfer table (bidimensional compound of 
                             # cchannels * schannels numbers)
      	CCHANNEL {
      		SCHANNEL REAL     # route value (0.0 ... 1.0)
      	}
      }
      pcm_slave.sl3 {
      	pcm "hw:1,0"
      	format S16_LE
      	channels 1
      	rate 16000
      }
       
      pcm.complex_convert {
      	type plug
      	slave sl3
      }
      4.2dmix
      pcm.!default {
      	type plug
      	slave.pcm "dmixer"
      }
       
      pcm.dmixer  {
       	type dmix
       	ipc_key 1024
       	slave {
      		pcm "hw:1,0"
      		period_time 0
      		period_size 1024
      		buffer_size 4096
      		rate 44100
      	}
      	bindings {
      		0 0
      		1 1
      	}
      }
       
      ctl.dmixer {
      	type hw
      	card 0
      }
      
      aplay -f cd -D default test.wav
      

      4.3 dsnoop

      pcm.mixin {
      	type dsnoop
      	ipc_key 5978293	# must be unique for all dmix plugins!!!!
      	ipc_key_add_uid yes
      	slave {
      		pcm "hw:0,0"
      		channels 2
      		period_size 1024
      		buffer_size 4096
      		rate 44100
      		periods 0 
      		period_time 0
      	}
      	bindings {
      		0 0
      		0 1
      	}
      }
      4.4 jack plugin
      pcm.jackplug {
      	type plug
      	slave { pcm "jack" }
      }
       
      pcm.jack {
      	type jack
      	playback_ports {
      		0 alsa_pcm:playback_1
      		1 alsa_pcm:playback_2
      	}
      	capture_ports {
      		0 alsa_pcm:capture_1
      		1 alsa_pcm:capture_2
      	}
      }
      
      aplay -Djackplug somefile
      arecord -Djackplug somefile
      

      4.5Virtual multi channel devices
        如果你想链接两个或者多个alsa设备,以便你有一个虚拟的多通道设备。

      # create a virtual four-channel device with two sound devices:
      # This is in fact two interleaved stereo streams in
      # different memory locations, so JACK will complain that it
      # cannot get mmap-based access. see below.
       
      pcm.multi {
              type multi;
              slaves.a.pcm "hw:0,0";
              slaves.a.channels 2;
              slaves.b.pcm "hw:1,0";
              slaves.b.channels 2;
              bindings.0.slave a;
              bindings.0.channel 0;
              bindings.1.slave a;
              bindings.1.channel 1;
              bindings.2.slave b;
              bindings.2.channel 0;
              bindings.3.slave b;
              bindings.3.channel 1;
      }
       
      # JACK will be unhappy if there is no mixer to talk to, so we set
      # this to card 0. This could be any device but 0 is easy. 
       
      ctl.multi {
              type hw;
              card 0;
      }
       
      # This creates a 4 channel interleaved pcm stream based on
      # the multi device. JACK will work with this one.
       
      pcm.ttable {
              type route;
              slave.pcm "multi";
              slave.channels 4;
              ttable.0.0 1;
              ttable.1.1 1;
              ttable.2.2 1;
              ttable.3.3 1;
      }
      # see above.
      ctl.ttable {
              type hw;
              card 0;
      }
      
      arecord -f S16_LE -r 44100 -c 4 -D multi | aplay -f S16_LE -r 44100 -c 4 -D multi
      
      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: V3s + RTL8723DS tina 执行 bt_test 蓝牙sink程序,发现本机声卡不出声,并且报以下错误 Couldn't open PCM:default

      @yuzukitsuru
      a2dp source 理论上也可以,晚些我试一试。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: V3s + RTL8723DS tina 执行 bt_test 蓝牙sink程序,发现本机声卡不出声,并且报以下错误 Couldn't open PCM:default

      网上抄来一个 /etc/asound.conf 搞定:

      pcm.!default {
              type hw
              card 0
      }
       
      ctl.!default {
              type hw           
              card 0
      }
      

      把V3s RTL8723D 当蓝牙喇叭成功:

      root@TinaLinux:/# 1254.646041: [bt_manager_init:212]:  enable default profile from bt config.
      1254.646179: [bt_manager_enable:400]:  bt manager version:Version:3.0.1.202012201630,builed time:Dec 29 2020-02:46:30
      1254.646199: [bt_test_status_cb:71]:  bt is turnning on.
      [ 1040.680371] sunxi-bt soc@03000000:bt@0: block state already is 1
      [ 1041.697694] sunxi-bt soc@03000000:bt@0: set block: 0
      1259.223757: [bt_profile_global_init:356]:  start bluealsa :1 times
      1259.754977: [bt_test_adapter_power_state_cb:41]:  Turn on bt successfully
      1260.226341: [bt_test_status_cb:61]:  BT is ON
      1276.712300: [bt_test_dev_add_cb:104]:  address:74:15:75:F3:25:92,name:memory,class:5898764,icon:phone,address type:public,rssi:0
      AGENT: Authorize Service (74:15:75:F3:25:92, 0000110d-0000-1000-8000-00805f9b34fb)
      1283.160852: [bt_test_a2dp_sink_connection_state_cb:261]:  A2DP sink connected with device: 74:15:75:F3:25:92
      1283.197730: [bt_test_avrcp_play_state_cb:315]:  BT palying music paused with device: 74:15:75:F3:25:92
      1283.197786: [bt_test_a2dp_sink_audio_state_cb:270]:  A2DP sink audio suspended with device: 74:15:75:F3:25:92
      1284.845902: [bt_test_avrcp_play_state_cb:313]:  BT palying music playing with device: 74:15:75:F3:25:92
      1284.845961: [bt_test_a2dp_sink_audio_state_cb:274]:  A2DP sink audio started with device: 74:15:75:F3:25:92
      1285.086664: [bt_a2dp_sink_start:523]:  a2dp sink start transmit.
      1285.656253: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1285.713279: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1285.766153: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1285.844472: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1285.892388: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1285.953642: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1286.035757: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1286.111549: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1286.173635: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1286.253223: [comsumer_thread:623]:  fifo is empty:a2sin(0,10)
      1286.301144: [comsumer_thread:623]:  fifo is empty:a2sin(0,11)
      1286.359971: [comsumer_thread:623]:  fifo is empty:a2sin(0,12)
      1286.419953: [comsumer_thread:623]:  fifo is empty:a2sin(0,13)
      1286.495765: [comsumer_thread:623]:  fifo is empty:a2sin(0,14)
      1286.555757: [comsumer_thread:623]:  fifo is empty:a2sin(0,15)
      1286.603660: [comsumer_thread:623]:  fifo is empty:a2sin(0,16)
      1286.665002: [comsumer_thread:623]:  fifo is empty:a2sin(0,17)
      1286.665037: [comsumer_thread:629]:  time_ms[1008] empty_count:17
      1286.689455: [comsumer_thread:603]:  trigger cache timeout:a2sin,17
      1287.203218: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1287.256174: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1287.318641: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1287.398262: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1287.447394: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1287.526990: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1287.579885: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1287.660723: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1287.733244: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1287.733278: [comsumer_thread:629]:  time_ms[1068] empty_count:9
      1287.746930: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1288.227081: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1288.287419: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1288.348633: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1288.409879: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1288.488201: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1288.536106: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1288.617001: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1288.664951: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1288.725033: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1288.784952: [comsumer_thread:623]:  fifo is empty:a2sin(0,10)
      1288.784986: [comsumer_thread:629]:  time_ms[1051] empty_count:10
      1288.811884: [comsumer_thread:603]:  trigger cache timeout:a2sin,10
      1289.330775: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1289.387371: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1289.446093: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1289.523133: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1289.568587: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1289.612615: [bt_test_avrcp_play_state_cb:315]:  BT palying music paused with device: 74:15:75:F3:25:92
      1289.612661: [bt_test_a2dp_sink_audio_state_cb:270]:  A2DP sink audio suspended with device: 74:15:75:F3:25:92
      1289.645855: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1289.696187: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1289.780759: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1289.829858: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1289.829898: [comsumer_thread:629]:  time_ms[1044] empty_count:9
      1289.856901: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1290.337631: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1290.416520: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1290.482814: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1290.544094: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1290.605250: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1290.670228: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1290.731476: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1290.792856: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1290.853993: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1290.854030: [comsumer_thread:629]:  time_ms[1024] empty_count:9
      1290.865197: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1291.152339: [bt_test_avrcp_play_state_cb:313]:  BT palying music playing with device: 74:15:75:F3:25:92
      1291.152387: [bt_test_a2dp_sink_audio_state_cb:274]:  A2DP sink audio started with device: 74:15:75:F3:25:92
      1291.379649: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1291.446926: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1291.494895: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1291.573089: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1291.624874: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1291.686024: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1291.756920: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1291.828077: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1291.896786: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1291.896822: [comsumer_thread:629]:  time_ms[1042] empty_count:9
      1291.910662: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1292.488120: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1292.544883: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1292.621918: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1292.667233: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1292.725985: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1292.801900: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1292.847247: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1292.905978: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1292.906013: [comsumer_thread:629]:  time_ms[1009] empty_count:8
      1292.931757: [comsumer_thread:603]:  trigger cache timeout:a2sin,8
      1293.483365: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1293.559337: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1293.639311: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1293.711864: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1293.785523: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1293.856797: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1293.934280: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1293.934317: [comsumer_thread:629]:  time_ms[1028] empty_count:7
      1293.954296: [comsumer_thread:603]:  trigger cache timeout:a2sin,7
      1294.254936: [bt_test_avrcp_play_state_cb:315]:  BT palying music paused with device: 74:15:75:F3:25:92
      1294.254994: [bt_test_a2dp_sink_audio_state_cb:270]:  A2DP sink audio suspended with device: 74:15:75:F3:25:92
      1294.433923: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1294.498502: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1294.577289: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1294.638832: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1294.701367: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1294.766449: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1294.827614: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1294.888863: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1294.955101: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1294.955142: [comsumer_thread:629]:  time_ms[1020] empty_count:9
      1294.965079: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1295.444981: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1295.520122: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1295.580078: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1295.638825: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1295.700094: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1295.780060: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1295.840061: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1295.912631: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1295.996331: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1295.996365: [comsumer_thread:629]:  time_ms[1041] empty_count:9
      1296.005049: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1296.099593: [bt_test_avrcp_play_state_cb:313]:  BT palying music playing with device: 74:15:75:F3:25:92
      1296.099641: [bt_test_a2dp_sink_audio_state_cb:274]:  A2DP sink audio started with device: 74:15:75:F3:25:92
      1296.487764: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1296.549734: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1296.627997: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1296.680905: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1296.759232: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1296.807124: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1296.868367: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1296.946720: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1296.997115: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1296.997151: [comsumer_thread:629]:  time_ms[1000] empty_count:9
      1297.031639: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1297.541671: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1297.615468: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1297.686651: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1297.735838: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1297.797093: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1297.875399: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1297.923339: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1297.984618: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1298.045846: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1298.045887: [comsumer_thread:629]:  time_ms[1048] empty_count:9
      1298.074099: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1298.573532: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1298.644125: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1298.689552: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1298.748329: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1298.807091: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1298.865832: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1298.924592: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1298.983323: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1299.043288: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1299.102041: [comsumer_thread:623]:  fifo is empty:a2sin(0,10)
      1299.102081: [comsumer_thread:629]:  time_ms[1056] empty_count:10
      1299.126632: [comsumer_thread:603]:  trigger cache timeout:a2sin,10
      1299.667980: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1299.724964: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1299.782459: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1299.839954: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1299.883252: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1299.940792: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1299.998275: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1300.059594: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1300.118270: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1300.118306: [comsumer_thread:629]:  time_ms[1016] empty_count:9
      1300.144051: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1300.649364: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1300.700776: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1300.781616: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1300.829478: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1300.888259: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1300.948246: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1301.024091: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1301.073228: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1301.135726: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1301.135762: [comsumer_thread:629]:  time_ms[1017] empty_count:9
      1301.160409: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1301.701207: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1301.751972: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1301.811975: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1301.871969: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1301.930750: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1301.974871: [bt_test_avrcp_play_state_cb:315]:  BT palying music paused with device: 74:15:75:F3:25:92
      1301.974919: [bt_test_a2dp_sink_audio_state_cb:270]:  A2DP sink audio suspended with device: 74:15:75:F3:25:92
      1301.990809: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1302.069247: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1302.115773: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1302.618809: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1302.618863: [comsumer_thread:629]:  time_ms[1483] empty_count:9
      1302.642359: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1302.851466: [bt_test_avrcp_play_state_cb:313]:  BT palying music playing with device: 74:15:75:F3:25:92
      1302.851517: [bt_test_a2dp_sink_audio_state_cb:274]:  A2DP sink audio started with device: 74:15:75:F3:25:92
      1303.120182: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1303.181995: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1303.259025: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1303.305690: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1303.364392: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1303.423168: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1303.481894: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1303.540716: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1303.600668: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1303.659398: [comsumer_thread:623]:  fifo is empty:a2sin(0,10)
      1303.659440: [comsumer_thread:629]:  time_ms[1040] empty_count:10
      1303.683983: [comsumer_thread:603]:  trigger cache timeout:a2sin,10
      1304.163816: [bt_test_avrcp_play_state_cb:315]:  BT palying music paused with device: 74:15:75:F3:25:92
      1304.163865: [bt_test_a2dp_sink_audio_state_cb:270]:  A2DP sink audio suspended with device: 74:15:75:F3:25:92
      1304.191536: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1304.240912: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1304.300767: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1304.375250: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1304.433559: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1304.491061: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1304.548562: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1304.622330: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1304.704824: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1304.704861: [comsumer_thread:629]:  time_ms[1045] empty_count:9
      1304.727293: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1305.197973: [bt_test_avrcp_play_state_cb:313]:  BT palying music playing with device: 74:15:75:F3:25:92
      1305.198023: [bt_test_a2dp_sink_audio_state_cb:274]:  A2DP sink audio started with device: 74:15:75:F3:25:92
      1305.213913: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1305.292536: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1305.359859: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1305.422301: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1305.494173: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1305.558934: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1305.625218: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1305.675651: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1305.755192: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1305.755230: [comsumer_thread:629]:  time_ms[1050] empty_count:9
      1305.768953: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1306.292658: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1306.346830: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1306.422637: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1306.470601: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1306.555192: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1306.627670: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1306.698913: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1306.771419: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1306.771454: [comsumer_thread:629]:  time_ms[1016] empty_count:8
      1306.793908: [comsumer_thread:603]:  trigger cache timeout:a2sin,8
      1307.267699: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1307.355168: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1307.427615: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1307.503876: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1307.577626: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1307.650169: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1307.705599: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1307.766809: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1307.848830: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1307.848867: [comsumer_thread:629]:  time_ms[1077] empty_count:9
      1307.862635: [comsumer_thread:603]:  trigger cache timeout:a2sin,9
      1308.389815: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1308.503041: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1308.587707: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1308.633021: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1308.691755: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1308.749288: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1308.809260: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1308.866764: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1308.866799: [comsumer_thread:629]:  time_ms[1017] empty_count:8
      1308.890066: [comsumer_thread:603]:  trigger cache timeout:a2sin,8
      1309.379073: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1309.435535: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1309.525110: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1309.608812: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1309.685073: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1309.771347: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1309.855068: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1309.900463: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1309.900500: [comsumer_thread:629]:  time_ms[1033] empty_count:8
      1309.923812: [comsumer_thread:603]:  trigger cache timeout:a2sin,8
      1309.983926: [bt_test_avrcp_play_state_cb:315]:  BT palying music paused with device: 74:15:75:F3:25:92
      1309.983972: [bt_test_a2dp_sink_audio_state_cb:270]:  A2DP sink audio suspended with device: 74:15:75:F3:25:92
      1310.439194: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1310.509658: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1310.572133: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1310.633390: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1311.212146: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1311.212194: [comsumer_thread:629]:  time_ms[1311] empty_count:5
      1311.289617: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1311.360873: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1311.435878: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1311.518380: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1311.588376: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1311.775494: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1311.827103: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1311.908346: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1311.969609: [comsumer_thread:623]:  fifo is empty:a2sin(0,9)
      1312.034597: [comsumer_thread:623]:  fifo is empty:a2sin(0,10)
      1312.095846: [comsumer_thread:623]:  fifo is empty:a2sin(0,11)
      1312.157099: [comsumer_thread:623]:  fifo is empty:a2sin(0,12)
      1312.222086: [comsumer_thread:623]:  fifo is empty:a2sin(0,13)
      1312.222123: [comsumer_thread:629]:  time_ms[1009] empty_count:13
      1312.232067: [comsumer_thread:603]:  trigger cache timeout:a2sin,13
      1312.714332: [comsumer_thread:623]:  fifo is empty:a2sin(0,1)
      1312.785856: [comsumer_thread:623]:  fifo is empty:a2sin(0,2)
      1312.844570: [comsumer_thread:623]:  fifo is empty:a2sin(0,3)
      1312.905829: [comsumer_thread:623]:  fifo is empty:a2sin(0,4)
      1312.967059: [comsumer_thread:623]:  fifo is empty:a2sin(0,5)
      1313.029580: [comsumer_thread:623]:  fifo is empty:a2sin(0,6)
      1313.095810: [comsumer_thread:623]:  fifo is empty:a2sin(0,7)
      1313.157072: [comsumer_thread:623]:  fifo is empty:a2sin(0,8)
      1313.631313: [bt_a2dp_sink_stop:549]:  a2dp sink stop transmit.
      
      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: V3s + RTL8723DS tina 执行 bt_test 蓝牙sink程序,发现本机声卡不出声,并且报以下错误 Couldn't open PCM:default

      试了一下 D1 哪吒开发板正常

      板上执行bt_test,D1作为蓝牙喇叭(a2dp sink):

      root@TinaLinux:/# bt_test
      root@TinaLinux:/# 58.869509: BTMG[bt_manager_set_enable_default:513]:  enable default profile from bt config.
      58.869777: BTMG[bt_manager_enable:407]:  bt manager version:Version:3.0.1.202110291544,builed time:Oct 29 2021-09:42:35
      58.869823: BTMG[bt_test_status_cb:82]:  bt is turnning on.
      hcidump_xr start
      /etc/bluetooth/bt_init.sh: line 92: hcidump_xr: not found
      [   57.306631] sunxi-rfkill soc@3000000:rfkill@0: block state already is 1
      [   57.334566] sunxi-rfkill soc@3000000:rfkill@0: set block: 0
      [   57.351853] sunxi-rfkill soc@3000000:rfkill@0: bt power on success
      [   57.384869] [XR_BT_LPM] bluedroid_write_proc_btwake: bluedroid_write_proc_btwake 1
      [   57.393554] [XR_BT_LPM] bluedroid_write_proc_btwake: wakeup bt device
      [   57.400848] [XR_BT_LPM] bluedroid_write_proc_lpm: disable lpm mode
      

      手机连接蓝牙a2dp sink并播放音乐到D1:

      root@TinaLinux:/#
      root@TinaLinux:/#
      root@TinaLinux:/# [   60.836469] random: crng init done
      [   60.840265] random: 6 urandom warning(s) missed due to ratelimiting
      64.110834: BTMG[bt_profile_global_init:355]:  start bluealsa :1 times
      64.702252: BTMG[bt_test_adapter_power_state_cb:47]:  Turn on bt successfully
      65.114472: BTMG[bt_test_status_cb:67]:  BT is ON
      AGENT: Authorize Service (74:15:75:F3:25:92, 0000111E-0000-1000-8000-00805F9B34FB)
      89.698483: [rfcomm_cind_resp_cb:140]:  indicator strings: ("call",(0,1)),("callsetup",(0-3)),("service",(0-1)),("signal",(0-5)),("roam",(0,1)),("battchg",(0-5)),("callheld",(0-2))
      89.698568: BTMG[bt_test_hfp_event_cb:423]:  event HFP_CIND
      89.802776: [rfcomm_slc_resp_cb:123]:  ++
      89.802854: BTMG[bt_test_hfp_event_cb:423]:  event HFP_CONNECT
      90.088349: BTMG[bt_test_hfp_event_cb:423]:  event HFP_CIEV
      90.089534: BTMG[bt_test_hfp_event_cb:423]:  event HFP_CIEV
      AGENT: Authorize Service (74:15:75:F3:25:92, 0000110d-0000-1000-8000-00805f9b34fb)
      92.772168: BTMG[bt_test_a2dp_sink_connection_state_cb:272]:  A2DP sink connected with device: 74:15:75:F3:25:92
      92.806233: BTMG[bt_test_avrcp_play_state_cb:326]:  BT palying music paused with device: 74:15:75:F3:25:92
      92.806317: BTMG[bt_test_a2dp_sink_audio_state_cb:281]:  A2DP sink audio suspended with device: 74:15:75:F3:25:92
      104.896559: BTMG[bt_test_avrcp_play_state_cb:324]:  BT palying music playing with device: 74:15:75:F3:25:92
      104.896645: BTMG[bt_test_a2dp_sink_audio_state_cb:285]:  A2DP sink audio started with device: 74:15:75:F3:25:92
      105.123050: [bt_a2dp_sink_start:550]:  a2dp sink start transmit.
      [  103.869544] [SNDCODEC][sunxi_card_hw_params][620]:stream_flag: 0
      108.333289: BTMG[bt_test_avrcp_play_state_cb:326]:  BT palying music paused with device: 74:15:75:F3:25:92
      108.333374: BTMG[bt_test_a2dp_sink_audio_state_cb:281]:  A2DP sink audio suspended with device: 74:15:75:F3:25:92
      111.935371: [bt_a2dp_sink_stop:576]:  a2dp sink stop transmit.
      [  124.761718] [SNDCODEC][sunxi_check_hs_detect_status][191]:plugin --> switch:3
      129.032725: BTMG[bt_test_avrcp_play_state_cb:324]:  BT palying music playing with device: 74:15:75:F3:25:92
      129.032816: BTMG[bt_test_a2dp_sink_audio_state_cb:285]:  A2DP sink audio started with device: 74:15:75:F3:25:92
      129.265234: [bt_a2dp_sink_start:550]:  a2dp sink start transmit.
      129.765237: [aw_pcm_write:478]:  An underrun has occurred
      
      root@TinaLinux:/#
      root@TinaLinux:/#
      
      root@TinaLinux:/# ps
        PID USER       VSZ STAT COMMAND
          1 root      2092 S    /sbin/procd
          2 root         0 SW   [kthreadd]
          3 root         0 IW<  [rcu_gp]
          4 root         0 IW<  [rcu_par_gp]
          5 root         0 IW   [kworker/0:0-mm_]
          6 root         0 IW<  [kworker/0:0H-kb]
          7 root         0 IW   [kworker/u2:0-fl]
          8 root         0 IW<  [mm_percpu_wq]
          9 root         0 SW   [ksoftirqd/0]
         10 root         0 IW   [rcu_preempt]
         11 root         0 SW   [kdevtmpfs]
         12 root         0 SW   [rcu_tasks_kthre]
         13 root         0 IW   [kworker/0:1-eve]
         14 root         0 SW   [oom_reaper]
         15 root         0 IW<  [writeback]
         16 root         0 SW   [kcompactd0]
         46 root         0 IW<  [kblockd]
         47 root         0 SW   [ion_system_heap]
         48 root         0 SW   [watchdogd]
         49 root         0 IW<  [cfg80211]
         50 root         0 SW   [kswapd0]
         52 root         0 SW   [vsync proc 0]
         53 root         0 SW   [vsync proc 1]
         54 root         0 IW   [kworker/u2:1-ev]
         57 root         0 IW<  [uas]
         58 root         0 SW   [irq/56-mmc0]
         59 root         0 SW   [irq/178-4020000]
         60 root         0 SW   [irq/57-mmc1]
         61 root         0 IW   [kworker/0:2-rcu]
         62 root         0 IW<  [mmc_complete]
         63 root         0 IW   [kworker/0:3-eve]
         64 root         0 IW<  [kworker/0:1H-kb]
         65 root         0 IW<  [rpmsg_hifi0]
         66 root         0 IW<  [ipv6_addrconf]
         67 root         0 SW<  [krfcommd]
         68 root         0 SW   [hdmi proc]
         69 root         0 SW   [cec thread]
         70 root         0 SW   [irq/5-2-0038]
         71 root         0 DW   [usb-hardware-sc]
         76 root         0 IW<  [kworker/0:2H]
        121 root      1660 S    /sbin/ubusd
        133 root      2684 S    /bin/ash --login
        134 root      1624 S    /sbin/askfirst /bin/ash --login
        240 root      289m S    /bin/adbd -D
        242 root      2096 S    /usr/sbin/dbus-daemon --system
        243 root         0 IW<  [goodix_wq]
        333 root         0 SW   [xradio_etf]
        334 root         0 IW<  [xradio_wq]
        335 root         0 IW<  [xradio_spare_wq]
        336 root         0 SW   [xradio_proc]
        343 root         0 SW   [xradio_bh]
        353 root         0 IW<  [goodix_wq]
        486 root      1760 S    /sbin/netifd
        500 root      9848 S    /usr/sbin/MtpDaemon -D
        527 root      1496 S    /sbin/swupdate-progress -w
        554 root      2708 S<   /usr/sbin/ntpd -n -N -S /usr/sbin/ntpd-hotplug -p nt
        563 root     85548 S    tt
        590 root         0 IW   [kworker/u2:2-ev]
        600 root      606m S    bt_test
        613 root      1628 S    hciattach -n ttyS1 xradio
        648 root         0 IW<  [kworker/u3:0-hc]
        649 root         0 IW<  [kworker/u3:1-hc]
        650 root         0 IW<  [kworker/u3:2-hc]
        662 root      3668 S    /usr/bin/bluetoothd -n
        674 root      309m S    bluealsa -p a2dp-sink -p hfp-hf
        703 root      2684 R    ps
      root@TinaLinux:/# 
      

      看一下 *** /etc/asound.conf ***

      # D1-H
      # audiocodec
      
      ctl.!default {
          type hw
          card audiocodec
      }
      
      pcm.!default {
          type asym
          playback.pcm "Playback"
          capture.pcm "CaptureMic"
      }
      
      pcm.PlaybackEQ {
          type plug
          slave.pcm {
              type awequal
              slave.pcm "Playback"
              config_file "/etc/awequal.conf"
              tuning_support false
              verbose true
          }
          slave.rate 48000
          slave.format S16_LE
          slave.channels 2
      }
      
      pcm.Playback {
          type plug
          slave.pcm {
              type softvol
              slave.pcm PlaybackDmix
              control {
                  name "Soft Volume Master"
                  card audiocodec
              }
              min_dB -51.0
              max_dB 0.0
              resolution 256
          }
          slave.channels 1
          slave.rate 48000
          slave.format S16_LE
      }
      
      pcm.PlaybackDmix {
          type plug
          slave.pcm {
              type dmix
              ipc_key 1111
              ipc_perm 0666
              slave {
                  pcm "hw:audiocodec"
                  format S16_LE
                  rate 48000
                  channels 2
                  period_size 960
                  periods 4
              }
          }
      }
      
      pcm.PlaybackHDMI {
          type plug
          slave.pcm {
              type dmix
              ipc_key 1111
              ipc_perm 0666
              slave {
                  pcm "hw:sndhdmi"
                  format S16_LE
                  rate 48000
                  channels 2
                  period_size 960
                  periods 4
              }
          }
      }
      
      pcm.Capture {
          type hw
          card audiocodec
      }
      
      #AEC: ADC1, ADC2
      pcm.CaptureAec {
          type plug
          slave.pcm {
              type dsnoop
              ipc_key 2222
              ipc_perm 0666
              slave {
                  pcm "hw:audiocodec"
                  rate 16000
                  channels 3
                  period_size 960
                  periods 4
              }
          }
          ttable.0.0 1
          ttable.1.1 1
      }
      
      #headset MIC: ADC3
      pcm.CaptureMic {
          type plug
          slave.pcm {
              type dsnoop
              ipc_key 2222
              ipc_perm 0666
              slave {
                  pcm "hw:audiocodec"
                  rate 16000
                  channels 3
                  period_size 960
                  periods 4
              }
          }
          ttable.0.2 1
      }
      
      pcm.CaptureDsnoop {
          type plug
          slave.pcm {
              type dsnoop
              ipc_key 2222
              ipc_perm 0666
              slave {
                  pcm "hw:audiocodec"
                  rate 16000
                  channels 3
                  period_size 960
                  periods 4
              }
          }
      }
      
      pcm.CaptureDmic {
          type plug
          slave.pcm {
              type dsnoop
              ipc_key 2223
              ipc_perm 0666
              slave {
                  pcm "hw:snddmic"
                  rate 16000
                  channels 6
                  period_size 960
                  periods 4
              }
          }
      }
      
      pcm.CaptureMulti1 {
          type plug
          slave.pcm {
              type multi
              slaves {
                  a { pcm "CaptureDmic" channels 6 }
                  b { pcm "CaptureDsnoop" channels 3 }
              }
              bindings {
                  0 { slave a channel 0 }
                  1 { slave a channel 1 }
                  2 { slave a channel 2 }
                  3 { slave a channel 3 }
                  4 { slave a channel 4 }
                  5 { slave a channel 5 }
                  6 { slave b channel 0 }
                  7 { slave b channel 1 }
                  8 { slave b channel 2 }
              }
          }
          ttable.0.0 1
          ttable.1.1 1
          ttable.2.2 1
          ttable.3.3 1
          ttable.4.4 1
          ttable.5.5 1
          ttable.6.6 1
          ttable.7.7 1
          ttable.8.8 1
      }
      
      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 回复: V3s + RTL8723DS tina 执行 bt_test 蓝牙sink程序,发现本机声卡不出声,并且报以下错误 Couldn't open PCM:default

      @yuzukitsuru
      soc自带的内置声卡,tinyplay正常,看日志我怀疑alsa的配置有问题。

      发布在 其它全志芯片讨论区
      tigger
      tigger
    • V3s + RTL8723DS tina 执行 bt_test 蓝牙sink程序,发现本机声卡不出声,并且报以下错误 Couldn't open PCM:default
      root@TinaLinux:/# bt_test
      root@TinaLinux:/# 2499.726214: [bt_manager_init:212]:  enable default profile from bt config.
      2499.726348: [bt_manager_enable:400]:  bt manager version:Version:3.0.1.202012201630,builed time:Dec 29 2020-02:46:30
      2499.726369: [bt_test_status_cb:71]:  bt is turnning on.
      Bluetooth init has been completed!!
      2500.158192: [bt_profile_global_init:356]:  start bluealsa :1 times
      2500.172669: [bt_test_dev_add_cb:104]:  address:74:15:75:F3:25:92,name:memory,class:5898764,icon:phone,address type:public,rssi:0
      2500.715659: [bt_test_adapter_power_state_cb:41]:  Turn on bt successfully
      2501.160441: [bt_test_status_cb:61]:  BT is ON
      addr:74:15:75:F3:25:92,name:memory,state:CONNECTED
      AGENT: Authorize Service (74:15:75:F3:25:92, 0000110d-0000-1000-8000-00805f9b34fb)
      2529.003802: [bt_test_a2dp_sink_connection_state_cb:261]:  A2DP sink connected with device: 74:15:75:F3:25:92
      2529.036032: [bt_test_avrcp_play_state_cb:315]:  BT palying music paused with device: 74:15:75:F3:25:92
      2529.036082: [bt_test_a2dp_sink_audio_state_cb:270]:  A2DP sink audio suspended with device: 74:15:75:F3:25:92
      2531.658987: [bt_test_avrcp_play_state_cb:313]:  BT palying music playing with device: 74:15:75:F3:25:92
      2531.659037: [bt_test_a2dp_sink_audio_state_cb:274]:  A2DP sink audio started with device: 74:15:75:F3:25:92
      2531.929696: [bt_a2dp_sink_start:523]:  a2dp sink start transmit.
      ALSA lib bluealsa-pcm.c:678:(_snd_pcm_bluealsa_open) Couldn't get BlueALSA transport: No such device
      2532.426324: [aw_pcm_open:399]:  --->Couldn't open PCM:default
      2532.426348: [_a2dp_sink_pcm_write:464]:  a2dp sink open pcm error:Operation not permitted
      ALSA lib bluealsa-pcm.c:678:(_snd_pcm_bluealsa_open) Couldn't get BlueALSA transport: No such device
      2532.427004: [aw_pcm_open:399]:  --->Couldn't open PCM:default
      2532.427024: [_a2dp_sink_pcm_write:464]:  a2dp sink open pcm error:Operation not permitted
      ALSA lib bluealsa-pcm.c:678:(_snd_pcm_bluealsa_open) Couldn't get BlueALSA transport: No such device
      2532.427598: [aw_pcm_open:399]:  --->Couldn't open PCM:default
      2532.427618: [_a2dp_sink_pcm_write:464]:  a2dp sink open pcm error:Operation not permitted
      ALSA lib bluealsa-pcm.c:678:(_snd_pcm_bluealsa_open) Couldn't get BlueALSA transport: No such device
      2532.428142: [aw_pcm_open:399]:  --->Couldn't open PCM:default
      2532.428161: [_a2dp_sink_pcm_write:464]:  a2dp sink open pcm error:Operation not permitted
      ALSA lib bluealsa-pcm.c:678:(_snd_pcm_bluealsa_open) Couldn't get BlueALSA transport: No such device
      2532.428789: [aw_pcm_open:399]:  --->Couldn't open PCM:default
      2532.428809: [_a2dp_sink_pcm_write:464]:  a2dp sink open pcm error:Operation not permitted
      ALSA lib bluealsa-pcm.c:678:(_snd_pcm_bluealsa_open) Couldn't get BlueALSA transport: No such device
      
      发布在 其它全志芯片讨论区
      tigger
      tigger
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1 / 5