OPTEE 用来干嘛的呢?
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
-
回复: A133 提高一点温度应该没事吧?
@yuzukitsuru
现在的情况是,我的测试箱环境温度80度, CPU温度上升到110度左右的时候就挂了。今天试一试把这三组温度都加高20度。 -
回复: 芒果tiny200s f1c200s 板子,不改硬件不提升电压,CPU跑到816Mhz杠杠,改成960Mhz终于挂了
@yuzukitsuru
问题不大,我记得司徒提高了CPU电压,都可以跑到1.5G。 -
回复: 请问tina /etc/rc.d/ 里面的初始化脚本是按字典顺序执行吗?
@wm_ch
嗯,我就是加 echo 命令测试出来的,上面日志里面就是echo显示的。 -
回复: 请问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 -
请问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
-
回复: Linux4.9 A100 加载 gpio-keys 驱动可以使用,但是装载过程驱动报错,并且无法卸载。
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");
看了一下驱动,按键长按是 电源键。
-
回复: Linux4.9 A100 加载 gpio-keys 驱动可以使用,但是装载过程驱动报错,并且无法卸载。
@yuzukitsuru
意外发现 R818 TINA SDK 里面的 gpio_keys.c 和你的一模一样。 -
回复: 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
然后就没然后了。
-
回复: Linux4.9 A100 加载 gpio-keys 驱动可以使用,但是装载过程驱动报错,并且无法卸载。
但是同样的配置用在旋转编码器 CONFIG_INPUT_GPIO_ROTARY_ENCODER=m 完全正常,也是中断模式。
-
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:~#
-
回复: 突然发现 D1 / D1s 不支持 GD5F1GQ4UAYIG
2楼那个 在 lichee/brandy-2.0/u-boot-2018/drivers/mtd/awnand/spinand/physic/id.c 添加了 GD5F1GQ4UAYIG 配置
-
回复: 突然发现 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
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:/#
-
回复: 突然发现 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
-
回复: 突然发现 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
-
突然发现 D1 / D1s 不支持 GD5F1GQ4UAYIG
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); }
-
回复: 第一次编译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
-
回复: 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
-
回复: 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;
-
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
-
回复: 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: 737 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
-
回复: 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:/ #
-
回复: A100 + 8723DS 安卓上面点击开WIFI, 发现并没有开起来,控制台提示这个错误信息
如果先在命令行先执行:
1|console:/ # insmod /vendor/modules/8723ds.ko [ 5624.751744] sunxi-wlan soc@03000000:wlan@0: bus_index: 1
再在屏幕开启 wifi,那个按钮就迅速跳回原来的状态。
-
回复: 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,但是没成功?
-
回复: A100 + 8723DS 安卓上面点击开WIFI, 发现并没有开起来,控制台提示这个错误信息
lsmod 发现并没有加载 8723ds.ko ,
但是手动加载是可以的。
-
回复: 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
-
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'
-
回复: 第一次编译A133 Android SDK,请问这是什么问题呢?
@lbklbk
是自己做的板子,还是买的成品开发板?里面有没有烧程序?串口有没有输出?电脑有没有发现新usb设备? -
回复: 一觉醒来,发现 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
-
一觉醒来,发现 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
-
欲哭无泪,酿成大错, 删除目录的软链接,把原目录全删了
比如 tina 软链接到 -> tina5/ 目录
如果 rm tina/ 就会把 tina5/ 全删了,
如果只想删除软链接, 应该用: rm tina
参考: https://stackoverflow.com/questions/210120/remove-a-symlink-to-a-directory
-
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 文件, 但是发现运行后就退出了。
-
回复: 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.confalsa官网解释: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.html4.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
-
回复: V3s + RTL8723DS tina 执行 bt_test 蓝牙sink程序,发现本机声卡不出声,并且报以下错误 Couldn't open PCM:default
@yuzukitsuru
a2dp source 理论上也可以,晚些我试一试。 -
回复: 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.
-
回复: 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 }
-
回复: V3s + RTL8723DS tina 执行 bt_test 蓝牙sink程序,发现本机声卡不出声,并且报以下错误 Couldn't open PCM:default
@yuzukitsuru
soc自带的内置声卡,tinyplay正常,看日志我怀疑alsa的配置有问题。 -
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