您尚未登录。

#2 Re: 上海航芯 » MDK 编译 ACM32 出错,请问这是什么问题? » 2022-08-12 09:23:17

海石生风 说:

估计 Core_Drivers/CMSIS/cmsis_compiler.h 这个文件估计是被修改了,将这个文件的41行的 #include "cmsis_armclang_ltm.h" 改为 #include "cmsis_armclang.h" 即可。
建议重新从SDK里整理工程模板。

感谢大佬指教,刚刚已经搞定了

先装MDK527,再装MDK537即可:

https://armkeil.blob.core.windows.net/eval/MDK527.EXE

https://armkeil.blob.core.windows.net/eval/MDK537.EXE

这样ACL16(ARMCC5),ACM32(ARMCLANG6)都可以编译了。




如果找不到ACL16 找不到 Cortex-M0 device 但是编译正常,可以试一试再安装 MDKCM525.EXE

#3 Re: 上海航芯 » MDK 编译 ACM32 出错,请问这是什么问题? » 2022-08-11 19:04:40

_20220811190108.png

_20220811190014.png





卸载并安装新MDK解决: MDK537.EXE




ACM32F0 SDK & Datasheet: ACM32F0x0-all-whycan-20220615.rar (烧录算法文件等)

ACM32F4 SDK & Datasheet:ACM32F403-all-whycan-20220615.rar (烧录算法文件等)


安装pack:ACM32F403-all-whycan-20220615\ACM32F403\固件包\固件库\Aisinochip.ACM32F4.1.0.2.pack

#4 上海航芯 » MDK 编译 ACM32 出错,请问这是什么问题? » 2022-08-11 17:17:32

歌以咏志
回复: 5
*** Using Compiler 'V6.9', folder: 'C:\Keil_v5\ARM\ARMCLANG\Bin'
Rebuild target 'Project'
assembling Startup_ACM32F4.s...
../Source_Code/main.c(11): warning: In file included from...
../Source_Code/APP\APP.h(14): warning: In file included from...
../../../Core_Drivers/HAL_Driver/Inc\ACM32Fxx_HAL.h(26): warning: In file included from...
../../../Core_Drivers/Device\ACM32F4.h(98): warning: In file included from...
../../../Core_Drivers/CMSIS\core_cm33.h(206): warning: In file included from...
../../../Core_Drivers/CMSIS/cmsis_compiler.h(41): error: 'cmsis_armclang_ltm.h' file not found
  #include "cmsis_armclang_ltm.h"
           ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
compiling main.c...
../../../Core_Drivers/HAL_Driver/Src/HAL_EFlash.c(13): warning: In file included from...
../../../Core_Drivers/HAL_Driver/Inc\ACM32Fxx_HAL.h(26): warning: In file included from...
../../../Core_Drivers/Device\ACM32F4.h(98): warning: In file included from...
../../../Core_Drivers/CMSIS\core_cm33.h(206): warning: In file included from...
../../../Core_Drivers/CMSIS/cmsis_compiler.h(41): error: 'cmsis_armclang_ltm.h' file not found
  #include "cmsis_armclang_ltm.h"
           ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
compiling HAL_EFlash.c...
../Source_Code/APP/APP.c(11): warning: In file included from...
../Source_Code/APP/APP.h(14): warning: In file included from...
../../../Core_Drivers/HAL_Driver/Inc\ACM32Fxx_HAL.h(26): warning: In file included from...
../../../Core_Drivers/Device\ACM32F4.h(98): warning: In file included from...
../../../Core_Drivers/CMSIS\core_cm33.h(206): warning: In file included from...
../../../Core_Drivers/CMSIS/cmsis_compiler.h(41): error: 'cmsis_armclang_ltm.h' file not found
  #include "cmsis_armclang_ltm.h"
           ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
compiling APP.c...
../../../Core_Drivers/HAL_Driver/Src/HAL_GPIO.c(13): warning: In file included from...
../../../Core_Drivers/HAL_Driver/Inc\ACM32Fxx_HAL.h(26): warning: In file included from...
../../../Core_Drivers/Device\ACM32F4.h(98): warning: In file included from...
../../../Core_Drivers/CMSIS\core_cm33.h(206): warning: In file included from...
../../../Core_Drivers/CMSIS/cmsis_compiler.h(41): error: 'cmsis_armclang_ltm.h' file not found
  #include "cmsis_armclang_ltm.h"
           ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
compiling HAL_GPIO.c...
../../../Core_Drivers/HAL_Driver/Src/HAL_Uart.c(14): warning: In file included from...
../../../Core_Drivers/HAL_Driver/Inc\ACM32Fxx_HAL.h(26): warning: In file included from...
../../../Core_Drivers/Device\ACM32F4.h(98): warning: In file included from...
../../../Core_Drivers/CMSIS\core_cm33.h(206): warning: In file included from...
../../../Core_Drivers/CMSIS/cmsis_compiler.h(41): error: 'cmsis_armclang_ltm.h' file not found
  #include "cmsis_armclang_ltm.h"
           ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
compiling HAL_Uart.c...
../../../Core_Drivers/Device/System_ACM32F4.c(10): warning: In file included from...
../../../Core_Drivers/HAL_Driver/Inc\ACM32Fxx_HAL.h(26): warning: In file included from...
../../../Core_Drivers/Device\ACM32F4.h(98): warning: In file included from...
../../../Core_Drivers/CMSIS\core_cm33.h(206): warning: In file included from...
../../../Core_Drivers/CMSIS/cmsis_compiler.h(41): error: 'cmsis_armclang_ltm.h' file not found
  #include "cmsis_armclang_ltm.h"
           ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
compiling System_ACM32F4.c...
../../../Core_Drivers/HAL_Driver/Src/HAL_I2S.c(14): warning: In file included from...
../../../Core_Drivers/HAL_Driver/Inc\ACM32Fxx_HAL.h(26): warning: In file included from...
../../../Core_Drivers/Device\ACM32F4.h(98): warning: In file included from...
../../../Core_Drivers/CMSIS\core_cm33.h(206): warning: In file included from...
../../../Core_Drivers/CMSIS/cmsis_compiler.h(41): error: 'cmsis_armclang_ltm.h' file not found
  #include "cmsis_armclang_ltm.h"
           ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
compiling HAL_I2S.c...
../../../Core_Drivers/HAL_Driver/Src/HAL_DMA.c(13): warning: In file included from...
../../../Core_Drivers/HAL_Driver/Inc\ACM32Fxx_HAL.h(26): warning: In file included from...
../../../Core_Drivers/Device\ACM32F4.h(98): warning: In file included from...
../../../Core_Drivers/CMSIS\core_cm33.h(206): warning: In file included from...
../../../Core_Drivers/CMSIS/cmsis_compiler.h(41): error: 'cmsis_armclang_ltm.h' file not found
  #include "cmsis_armclang_ltm.h"
           ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
compiling HAL_DMA.c...
".\Objects\Project.axf" - 8 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed:  00:00:01

#7 Re: 全志 SOC » 乡下老鼠与城里老鼠交了个朋友,我来试试PWM直驱喇叭 » 2021-07-15 11:31:49

@xboot

慢慢消失 是淡入淡出,
控制脚步声,这个是啥呢?

#8 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 编译 librws websocket 自动测试程序 » 2021-04-28 14:06:15

歌以咏志
回复: 1

源码: librws.git.tgz

命令:

git clone https://github.com/OlehKulykov/librws.git
cd librws/src
gcc -o test                 librws.c               rws_common.c           rws_error.c            rws_frame.c            rws_list.c             rws_memory.c           rws_socketpriv.c       rws_socketpub.c        rws_string.c           rws_thread.c           ../test/test_librws_socket_get_set.c -I../ -lpthread
./test

过程:

# git clone https://github.com/OlehKulykov/librws.git
Cloning into 'librws'...
remote: Enumerating objects: 1020, done.
remote: Total 1020 (delta 0), reused 0 (delta 0), pack-reused 1020
Receiving objects: 100% (1020/1020), 1.95 MiB | 1.22 MiB/s, done.
Resolving deltas: 100% (541/541), done.
#
#
#cd librws/src
#
#gcc -o test                 librws.c               rws_common.c           rws_error.c            rws_frame.c            rws_list.c             rws_memory.c           rws_socketpriv.c       rws_socketpub.c        rws_string.c           rws_thread.c           ../test/test_librws_socket_get_set.c -I../ -lpthread
#
# ./test
52
53
55
56
58
59
61
62
64
65
69
70
72
73
75
76

#9 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 记录一下常用易忘的Linux日常操作 » 2021-04-19 17:34:26

阿黄 说:

删除本目录下所有文件 :mad

rm -rf /*

是这个吗?

从删库(rm -rf /)到跑路系列 之一
http://whycan.com/t_1100.html#p7812

#10 Re: 全志 SOC » 分享我画的启明云端SSD202核心板对应的底板,引出两USB口,网口,TF卡,调试串口转micro USB输出,50Pin标准7寸液晶屏接口 » 2021-04-08 09:11:37

raspberryman 说:

感谢楼主分享,我记得启明的底板是开源的吧,哪位大佬顺手传个pcb截图,我的电脑木得dxp

2021-04-08_090924.png

2021-04-08_091002.png

昨天下载的, 感谢楼主

#11 Re: 全志 SOC » 请问tiny200 f1c200s 从spi nor启动,但是这个开发板没有卡检测引脚,我在tina3.5 linux里面应该如何检测卡插入 » 2021-03-30 14:52:40

文档那个不对, 我是看驱动代码才知道的:
lichee/linux-3.10/drivers/mmc/host/sunxi-mmc-debug.c

这个命令可以:
echo 1 > /sys/devices/soc/sdc0/sunxi_insert

root@TinaLinux:/# echo 1 > /sys/devices/soc/sdc0/sunxi_insert
[  108.740863] sunxi-mmc sdc0: insert 1
[  108.745043] sunxi-mmc sdc0: sdc set ios: clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
root@TinaLinux:/# [  108.775505] sunxi-mmc sdc0: sdc set ios: clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[  108.806324] sunxi-mmc sdc0: smc 0 p0 err, cmd 52, RTO !!
[  108.813173] sunxi-mmc sdc0: smc 0 p0 err, cmd 52, RTO !!
[  108.820225] sunxi-mmc sdc0: sdc set ios: clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[  108.834552] sunxi-mmc sdc0: sdc set ios: clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[  108.848562] sunxi-mmc sdc0: smc 0 p0 err, cmd 5, RTO !!
[  108.855276] sunxi-mmc sdc0: smc 0 p0 err, cmd 5, RTO !!
[  108.863116] sunxi-mmc sdc0: smc 0 p0 err, cmd 5, RTO !!
[  108.869892] sunxi-mmc sdc0: smc 0 p0 err, cmd 5, RTO !!
[  108.877619] sunxi-mmc sdc0: sdc set ios: clk 400000Hz bm PP pm ON vdd 16 width 1 timing LEGACY(SDR12) dt B
[  108.889457] sunxi-mmc sdc0: sdc set ios: clk 400000Hz bm PP pm ON vdd 16 width 1 timing LEGACY(SDR12) dt B
[  108.903769] sunxi-mmc sdc0: sdc set ios: clk 400000Hz bm PP pm ON vdd 16 width 1 timing LEGACY(SDR12) dt B
[  109.264265] mmc0: host does not support reading read-only switch. assuming write-enable.
[  109.281077] sunxi-mmc sdc0: sdc set ios: clk 400000Hz bm PP pm ON vdd 16 width 1 timing SD-HS(SDR25) dt B
[  109.302220] sunxi-mmc sdc0: sdc set ios: clk 50000000Hz bm PP pm ON vdd 16 width 1 timing SD-HS(SDR25) dt B
[  109.326678] sunxi-mmc sdc0: sdc set ios: clk 50000000Hz bm PP pm ON vdd 16 width 4 timing SD-HS(SDR25) dt B
[  109.338611] mmc0: new high speed SD card at address 0002
[  109.347693] mmcblk0: mmc0:0002 N/A   1.85 GiB
[  109.374938]  mmcblk0: p1
[  109.387442] sunxi-wlan wlan: wlan_busnum (0)
[  109.392219] sunxi-wlan wlan: wlan_power_num (0)
[  109.397415] sunxi-wlan wlan: Missing wlan_io_regulator.
[  109.403274] sunxi-wlan wlan: io_regulator_name ((null))
[  109.444716] sunxi-wlan wlan: request pincrtl handle for device [wlan] failed
[  109.452725] ------------SUNXI_RF: Set regon for SUN3IW1P1_R6!----------------
[  109.460744] sunxi-wlan wlan: wlan_regon gpio=-1048148608  mul-sel=-1047011948  pull=-1047011992  drv_level=-1072832404  data=-1072                   834700
[  109.474434] sunxi-wlan wlan: can't request wlan_regon gpio 2041
[  109.554057] platform wlan: Driver sunxi-wlan requests probe deferral
[  109.584832] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.


root@TinaLinux:/# ls /dev/mmcblk0
mmcblk0    mmcblk0p1


echo 1 > /sys/devices/soc/sdc0/sunxi_insert

自动扫描



sys_config.fex 要改一下:

 [sdc0]
 sdc0_used          = 1
-;sdc0_detmode       = 4
+sdc0_detmode       = 4
 sdc0_buswidth      = 4
 sdc0_d1            = port:PF00<2><1><3><default>
 sdc0_d0            = port:PF01<2><1><3><default>
@@ -673,7 +673,7 @@ sdc0_clk           = port:PF02<2><1><3><default>
 sdc0_cmd           = port:PF03<2><1><3><default>
 sdc0_d3            = port:PF04<2><1><3><default>
 sdc0_d2            = port:PF05<2><1><3><default>
-sdc0_det           = port:PA01<0><1><3><default>
+sdc0_det           =
 sdc0_use_wp        = 0
 sdc0_wp            =
 sdc0_isio          = 0

#12 Re: 全志 SOC » 全志R11有人用过吗? » 2021-03-30 10:17:50

R11 带了I2S和EMAC, 可以外界RMII PHY芯片接有线网络,但是去掉了EPHY.

#13 Re: 全志 SOC » 全志官方tina linux sdk sys_config.fex 的 uart_debug_port 参数是如何影响uboot和linux » 2021-03-29 08:58:01

ubuntu:/opt/f1c100s/Tina_rel/tina$ source build/envsetup.sh
Setup env done! Please run lunch next.
ubuntu:/opt/f1c100s/Tina_rel/tina$ lunch

You're building on Linux

Lunch menu... pick a combo:
     1. astar_dm2-tina
     2. astar_dm-tina
     3. astar_evb-tina
...     
     90. v5_dvb-tina
     91. v5_lindeni-tina
     92. violin_F1C200s-tina

Which would you like? [Default violin_F1C200s]: 92
============================================
TINA_BUILD_TOP=/opt/f1c100s/Tina_rel/tina
TINA_TARGET_ARCH=arm
TARGET_PRODUCT=violin_F1C200s
TARGET_PLATFORM=violin
TARGET_BOARD=violin-F1C200s
TARGET_BUILD_VARIANT=tina
TARGET_BUILD_TYPE=release
TARGET_KERNEL_VERSION=3.10
TARGET_UBOOT=u-boot-2014.07
TARGET_CHIP=sun3iw1p1
============================================
ubuntu:/opt/f1c100s/Tina_rel/tina$

默认的根本没得选。

#14 Re: 全志 SOC » 大家好 V3S编译出来的qt引用运行不了,麻烦大家帮忙看下 » 2021-03-28 00:01:09

mysteryli 说:
歌以咏志 说:

看起来应该是缺库, 是不是用同一个gcc编译的?

PC端的库和设备端都是在同一路径下的 scp拷贝过来的

在 ubuntu@x86 用 chroot 到 ARM 平台的 rootfs
http://whycan.com/t_3251.html

用晕哥这个方法, 直接在电脑上面用 qemu 模拟器测试.

#16 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » Simple Linux epoll server ---- example.c » 2021-03-13 14:09:22

i=0;while [ 1 ]; do let i++;echo ${i} | netcat -u -w 1 localhost 22222; done;

用这个shell测试脚本吧, 更好用。

#17 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » Simple Linux epoll server ---- example.c » 2021-03-13 14:01:41

歌以咏志
回复: 1

https://www.geekpage.jp/programming/linux-network/book/08/8-5.php

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/epoll.h>
#include <arpa/inet.h>

#define NEVENTS 16

int
main()
{
  int sock1, sock2;
  struct sockaddr_in addr1, addr2;
  int epfd;
  struct epoll_event ev, ev_ret[NEVENTS];
  char buf[2048];
  int i;
  int nfds;
  int n;

  /* 受信ソケットを2つ作ります */
  sock1 = socket(AF_INET, SOCK_DGRAM, 0);
  sock2 = socket(AF_INET, SOCK_DGRAM, 0);
  addr1.sin_family = AF_INET;
  addr2.sin_family = AF_INET;

  /* "127.0.0.1"の部分は必要に応じて変更して下さい */
  inet_pton(AF_INET, "127.0.0.1", &addr1.sin_addr.s_addr);
  inet_pton(AF_INET, "127.0.0.1", &addr2.sin_addr.s_addr);

  /* 2つの別々のポートで待つために別のポート番号をそれぞれ設定します */
  addr1.sin_port = htons(11111);
  addr2.sin_port = htons(22222);

  /* 2つの別々のポートで待つようにbindします */
  bind(sock1, (struct sockaddr *)&addr1, sizeof(addr1));
  bind(sock2, (struct sockaddr *)&addr2, sizeof(addr2));

  epfd = epoll_create(NEVENTS);
  if (epfd < 0) {
    perror("epoll_create");
    return 1;
  }

  memset(&ev, 0, sizeof(ev));
  ev.events = EPOLLIN;
  ev.data.fd = sock1;
  if (epoll_ctl(epfd, EPOLL_CTL_ADD, sock1, &ev) != 0) {
    perror("epoll_ctl");
    return 1;
  }

  memset(&ev, 0, sizeof(ev));
  ev.events = EPOLLIN;
  ev.data.fd = sock2;
  if (epoll_ctl(epfd, EPOLL_CTL_ADD, sock2, &ev) != 0) {
    perror("epoll_ctl");
    return 1;
  }

/*
無限ループです
このサンプルでは、この無限ループを抜けません
*/
  while (1) {
    printf("before epoll_wait\n");
    nfds = epoll_wait(epfd, ev_ret, NEVENTS, -1);
    if (nfds <= 0) {
      perror("epoll_wait");
      return 1;
    }

    printf("after epoll_wait\n");

    for (i=0; i<nfds; i++) {
      if (ev_ret[i].data.fd == sock1) {

        /* sock2に読み込み可能データがある場合 */
        /* sock1からデータを受信して表示します */
        n = recv(sock1, buf, sizeof(buf), 0);
        write(fileno(stdout), buf, n);

      } else if (ev_ret[i].data.fd == sock2) {

        /* sock2に読み込み可能データがある場合 */
        /* sock2からデータを受信して表示します */
        n = recv(sock2, buf, sizeof(buf), 0);
        write(fileno(stdout), buf, n);
      }
    }
  }

  /* このサンプルでは、ここへは到達しません */
  close(sock1);
  close(sock2);

  return 0;
}

测试方法, shell 输入:

nc -u localhost 11111
#或
nc -u localhost 22222

#19 Re: 全志 SOC » 问下全志fex文件中的<>是啥 » 2021-02-14 19:15:14

OliverKung 说:

比如对下面这句,PD00肯定对应的就是IO了
但是后面的每个<>内部的内容和他们的顺序分别代表啥呢?
搞了一天了没整明白
port:PD00<2><0><default><default>

这个网页说得非常明白: https://linux-sunxi.org/Fex_Guide

#20 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » NXP出了个LVGL界面设计器 ---- Gui-Guider-Setup-1.0.0-GA.exe » 2021-02-14 19:10:53

kingboy100 说:

能下载下来吗? 尝试了好几次,说我邮箱有问题

一楼可以下载了


看起来很专业噢

#25 Re: 全志 SOC » V3S禁用屏幕log,用于显示qt » 2021-02-01 11:04:02

U-Boot 2017.01-rc2 (Jan 31 2021 - 22:37:46 +0800) YK Technology

CPU:   Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM:  64 MiB
MMC:   SUNXI SD/MMC: 0
SF: unrecognized JEDEC id bytes: c2, 20, 19
*** Warning - spi_flash_probe() failed, using default environment

Setting up a 800x480 lcd console (overscan 0x0)
dotclock: 33000kHz = 33000kHz: (1 * 3MHz * 66) / 6
In:    serial@01c28000
Out:   serial@01c28000
Err:   serial@01c28000

我的也显示这个, 但是LCD正常噢。

#27 Re: ESP32/ESP8266 » 发现乐鑫官方已经支持把esp32作为网卡来用了(支持linux和stm32) » 2021-01-10 21:31:17

ESP-Hosted uses SDIO or SPI interface

通过SDIO/SPI与CPU连接上网?

有固件吗?

#28 Re: 全志 SOC » 把mp4格式的h.264视频文件解码成NV12格式, 并使用VLC播放 / V3s 摄像头录制成NV12原始数据 » 2021-01-10 21:29:04

试一试 Qt5 运行 OpenGL 程序
http://whycan.com/t_5820.html#p57901
(出处:哇酷开发者社区【计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2】)


https://rawpixels.net/ (貌似要科学上网)

试了一下, 可以显示:

QQ截图20210110212335.png

#29 Re: 全志 SOC » 新作F1C200S,打算百分之百开源,给大家的新年礼物。 » 2021-01-10 21:08:35

是说视频显示卡对吗?这个问题是因为解码器出来是YUV数据, 转成RGB显示到LCD的, 如果驱动了2D, 就可以直接显示YUV, 显示会流畅很多.

可以考虑把MP4解码到TF卡文件,

然后用VLC播放YUV测试测试:



把mp4格式的h.264视频文件解码成NV12格式, 并使用VLC播放 / V3s 摄像头录制成NV12原始数据
http://whycan.com/t_934.html
(出处:哇酷开发者社区【全志 V3S/F1C100s/X3】)

#31 Re: 全志 SOC » 删除Licheepi-zero上的启动文本 » 2020-12-19 19:32:24

rachid 说:

在boot.cmd文件中,我发现:

setenv bootargs console=ttyS0,115200 panic=5 console=tty0 rootwait root=/dev/mmcblk0p2 rw
load mmc 0:1 0x41000000 zImage
load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb
bootz 0x41000000 - 0x41800000


我可以在这里换吗

是这里, 但是最终要通过 mkimage 命令把这个boot.cmd转为 boot.scr 才行

#32 Re: 全志 SOC » 删除Licheepi-zero上的启动文本 » 2020-12-19 18:37:45

u-boot的bootargs参数 console=/dev/fb0 改为 /dev/ttyS0

#33 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 记录一下常用易忘的Linux日常操作 » 2020-12-12 12:21:47

计算一个表达式用 $(( ))

#echo $((14*17))
238


# a=10;b=20;echo $(($a*$b))
200

#34 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 记录一下常用易忘的Linux日常操作 » 2020-12-11 15:57:59

vi 删除 # 开头的行, 如 .config 文件


1)删除以#开头的行       
:g/^#/d

2).删除空行       
:g/^s*$/d

#35 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 记录一下常用易忘的Linux日常操作 » 2020-12-07 17:20:59

歌以咏志
回复: 30

创建新用户,并且把该用户添加到sudo组:
sudo adduser newuser
sudo usermod -aG sudo newuser



可能需要从当前用户这里复制一些文件:
sudo cp /home/me/* /home/newuser/ -rf
sudo chown -R newuser:newuser /home/newuser/




ssh-keygen -t rsa -f /tmp/key
sudo cp /tmp/key.pub /home/newuser/.ssh/authorized_keys

ssh 私钥就是 /home/key

#42 全志 SOC » 请问Linux kernel空间和User空间的两个复合 usb gadget 功能怎么玩呢? » 2020-11-26 21:43:14

歌以咏志
回复: 2

https://elinux.org/images/e/ef/USB_Gadget_Configfs_API_0.pdf

FunctionFS added in 2010
○ compositable version of gadgetfs
○ now userspace gadget functions can be combined
with kernel gadget functions in a composite gadget
○ e.g. mass storage (kernel) + MTP (via FunctionFS)


aodzip大佬这个只实现了MTP, 没有mass storage实现


buildroot-tiny200 (F1C100/200s) 开发包近期更新内容 * 已支持DVP摄像头 *
http://whycan.com/t_5221.html
(出处:哇酷开发者社区【全志 V3S/F1C100s/X3】)

#44 Re: 全志 SOC » V3S的以太网问题,用的内核是4.13-y,然后发现以太网不插网线常亮,和正常状态反了 » 2020-11-22 22:57:46

哇酷小二 说:

https://github.com/petit-miner/Blueberry-PI/blob/master/Software/devicetree%20examples/sun8i-v3s-blueberrypi.dts

&emac {
	allwinner,leds-active-high;
	status = "okay";
};
&emac {
	allwinner,leds-active-low;
	status = "okay";
};

两个都试一试

亲测有效, 感谢小二.

#45 Re: 全志 SOC » 全志V3s的网口灯引脚电平可以软件控制么 » 2020-11-22 22:40:26

https://github.com/torvalds/linux/blob/master/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c

感谢楼主, 我也找到代码了:

	if (gmac->variant->soc_has_internal_phy) {
		if (of_property_read_bool(node, "allwinner,leds-active-low"))
			reg |= H3_EPHY_LED_POL;
		else
			reg &= ~H3_EPHY_LED_POL;

		/* Force EPHY xtal frequency to 24MHz. */
		reg |= H3_EPHY_CLK_SEL;

		ret = of_mdio_parse_addr(priv->device, priv->plat->phy_node);
		if (ret < 0) {
			dev_err(priv->device, "Could not parse MDIO addr\n");
			return ret;
		}
		/* of_mdio_parse_addr returns a valid (0 ~ 31) PHY
		 * address. No need to mask it again.
		 */
		reg |= 1 << H3_EPHY_ADDR_SHIFT;
	} 

#48 Re: 全志 SOC » 也发一个荔枝派zero 全志V3s 32M spi flash 固件,800x480 LCD, 开机自动运行 Qt analogclock » 2020-11-18 16:06:10

哇酷小二 说:

感谢 @路漫漫 你的分享, 关于有线网线检测可以试一试这个:
http://blog.sina.com.cn/s/blog_1a39e3c4a0102z23x.html

var=$(cat /sys/class/net/eth0/carrier)
var1="0"
SLEEPTIME=1
while :;do
var=$(cat /sys/class/net/eth0/carrier)
if [ "$var" == "1" ];then
if [ "$var" != "$var1" ];then
touch /tmp/netok 
echo "network change  ok "
busybox udhcpc -s /etc/init.d/udhcpc.script &
fi
var1=$var
elif [ "$var" == "0" ];then
var=$(cat /sys/class/net/wlan0/carrier)
if [ "$var" == "1" ];then
if [ "$var" != "$var1" ];then
echo "wifi change ok "
touch /tmp/netok 
busybox udhcpc -s /etc/init.d/udhcpc.script &
fi
elif [ "$var" == "0" ];then

if [  -f "/tmp/netok" ]; then
echo "eth and wifi all NG "
rm -rf /tmp/netok 
fi
fi
var1=$var
fi

#echo "At `date +'%F %T'` "

sleep $SLEEPTIME
done

这个脚本不错, 学习!

#49 Re: 全志 SOC » 嵌入式 利用wpa_supplicant编写WIFI、有线网络管理器 转自CSDN, 估计搞带GUI网络编程的朋友都能用上 » 2020-11-18 16:04:32

void QTENetworkManager::checkLanConnection()
{
    char cmdbuf[MAX_PATH];
    char cmdresult[MAX_PATH]; //设置一个合适的长度,以存储每一行输出
    bzero(cmdbuf, MAX_PATH);
    bzero(cmdresult, MAX_PATH);
    sprintf(cmdbuf, "cat /sys/class/net/eth0/carrier");

这种方法检测网络是否连接成功, 学到了!

#52 Re: 全志 SOC » 将LVGL移植到Tiny200 Linux上,设置标签内容不更新,求大神给看看什么情况 » 2020-10-12 11:23:39

感谢楼主分享, 给楼主出个难题, 能不能整合到buildroot, 直接一个make命令搞定所有事情?


buildroot-tiny200 (F1C100/200s) 开发包近期更新内容 * 已支持DVP摄像头 *
http://whycan.com/t_5221.html
(出处:哇酷开发者社区【全志 V3S/F1C100s/X3】)

#53 Re: 全志 SOC » buildroot-tiny200 (F1C100/200s) 开发包近期更新内容 * 已支持DVP摄像头 *,支持SPI NAND » 2020-09-30 14:40:15

湘楚浪子 说:
路人甲 说:

请问楼主MTP 是 FunctionFS模拟的吗?

楼主66666。

现在只有我一个人发现mtp插入之后文件不一致,不能同步的问题吗?

我也发现了,重新拔插USB才行。



https://dj9399.github.io/post/解决MTP%20USB连接电脑文件或文件夹不同步的问题/

解决MTP USB连接电脑文件或文件夹不同步的问题
发表于 2018-10-31
用手机缓存1080视频文件,然后到电脑上拷贝,却看不到文件
因为MTP机制的设定,当机器内存储新增或变化了文件或文件夹,会有一个同步时间,如果在机器内部索引没有自动更新前,就插入电脑用MTP的方式访问手机内文件的话,会发现看到的文件与手机实际文件不一致的情况。

解决方法:
试过重启,无效。一般要等上半天,手机才会更新缓存
安装media scanner 或者 sd scanner,任选其一安装之。
每次发现存在这个情况,就用这两应用的手动扫描功能执行一遍,即可

#55 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 请问立创商城 LC凭什么卖这么贵? » 2020-09-02 08:52:23

品牌溢价,

就像同样的东西, 京东就是天猫淘宝并夕夕贵,

同样两天达的快递, 顺丰收23元, 其他快递10元。

#56 Re: 全志 SOC » Widora TINY200 R2 体验版开源开发包,修复了大部分F1C100s/F1C200s的遗留问题 » 2020-08-10 21:58:48

INFO: hdimage(sysimage-sdcard.img): writing MBR
INFO: cmd: "mkdir -p "/opt/buildroot-2020.02.3/output/build/genimage.tmp"" (stderr):
INFO: cmd: "rm -rf "/opt/buildroot-2020.02.3/output/build/genimage.tmp"/*" (stderr):
INFO: cmd: "mkdir -p "/opt/buildroot-2020.02.3/output/build/genimage.tmp"" (stderr):
INFO: cmd: "cp -a "/tmp/tmp.MTNKuXOfXM" "/opt/buildroot-2020.02.3/output/build/genimage.tmp/root"" (stderr):
INFO: cmd: "find '/opt/buildroot-2020.02.3/output/build/genimage.tmp/root' -depth -type d -printf '%P\0' | xargs -0 -I {} touch -r '/tmp/tmp.MTNKuXOfXM/{}' '/opt/buildroot-2020.02.3/output/build/genimage.tmp/root/{}'" (stderr):
INFO: cmd: "mkdir -p "/opt/buildroot-2020.02.3/output/images"" (stderr):
INFO: flash(sysimage-flash.img): writing image partition 'u-boot' (0xf0000@0x0)
INFO: flash(sysimage-flash.img): writing image partition 'dtb' (0x10000@0xf0000)
INFO: flash(sysimage-flash.img): writing image partition 'kernel' (0x700000@0x100000)
INFO: flash(sysimage-flash.img): writing image partition 'rootfs' (0x800000@0x800000)
INFO: cmd: "mkdir -p "/opt/buildroot-2020.02.3/output/build/genimage.tmp"" (stderr):
INFO: cmd: "rm -rf "/opt/buildroot-2020.02.3/output/build/genimage.tmp"/*" (stderr):
INFO: cmd: "mkdir -p "/opt/buildroot-2020.02.3/output/build/genimage.tmp"" (stderr):
INFO: cmd: "cp -a "/tmp/tmp.FlkWcxqS5L" "/opt/buildroot-2020.02.3/output/build/genimage.tmp/root"" (stderr):
INFO: cmd: "find '/opt/buildroot-2020.02.3/output/build/genimage.tmp/root' -depth -type d -printf '%P\0' | xargs -0 -I {} touch -r '/tmp/tmp.FlkWcxqS5L/{}' '/opt/buildroot-2020.02.3/output/build/genimage.tmp/root/{}'" (stderr):
INFO: cmd: "mkdir -p "/opt/buildroot-2020.02.3/output/images"" (stderr):
INFO: flash(sysimage-nand.img): writing image partition 'u-boot' (0x80000@0x0)
INFO: flash(sysimage-nand.img): writing image partition 'dtb' (0x20000@0x80000)
INFO: flash(sysimage-nand.img): writing image partition 'kernel' (0x800000@0x100000)
INFO: flash(sysimage-nand.img): writing image partition 'rootfs' (0x7700000@0x900000)
root@test:/opt/buildroot-2020.02.3#
root@test:/opt/buildroot-2020.02.3#
root@test:/opt/buildroot-2020.02.3#
root@test:/opt/buildroot-2020.02.3# ls output/images/ -l
total 186100
-rw-r--r-- 1 root root       578 Aug 10 20:16 boot.scr
-rw-r--r-- 1 root root  16777216 Aug 10 20:52 boot.vfat
-rw-r--r-- 1 root root     12760 Aug 10 20:21 devicetree.dtb
-rw-r--r-- 1 root root  62914560 Aug 10 20:52 rootfs.ext2
lrwxrwxrwx 1 root root        11 Aug 10 20:52 rootfs.ext4 -> rootfs.ext2
-rw-r--r-- 1 root root   2019328 Aug 10 20:52 rootfs.squashfs
-rw-r--r-- 1 root root   5068800 Aug 10 20:52 rootfs.tar
-rw-r--r-- 1 root root  16777216 Aug 10 20:52 sysimage-flash.img
-rw-r--r-- 1 root root 134217728 Aug 10 20:52 sysimage-nand.img
-rw-r--r-- 1 root root  80740352 Aug 10 20:52 sysimage-sdcard.img
-rw-r--r-- 1 root root    397099 Aug 10 20:16 u-boot.bin
-rw-r--r-- 1 root root    450411 Aug 10 20:52 u-boot-sunxi-with-nand-spl.bin
-rw-r--r-- 1 root root    429931 Aug 10 20:16 u-boot-sunxi-with-spl.bin
-rw-r--r-- 1 root root   4122664 Aug 10 20:21 zImage

终于编译完了 ^_^

接下来现在要研究一下怎么烧录了

#57 Re: 全志 SOC » Widora TINY200 R2 体验版开源开发包,修复了大部分F1C100s/F1C200s的遗留问题 » 2020-08-10 17:15:02

终于可以编译了,谢谢楼主,

我的配置, 工作目录 /opt

补丁文件目录: ~/widora.zip

sudo apt-get install unzip -y
cd /opt/
wget https://buildroot.org/downloads/buildroot-2020.02.3.tar.gz
tar xvf /opt/buildroot-2020.02.3.tar.gz
cd /opt/buildroot-2020.02.3/board/
unzip -x ~/widora.zip
cd /opt/buildroot-2020.02.3/configs/
ln -s /opt/buildroot-2020.02.3/board/widora/tiny200/widora_tiny200_defconfig .
cd /opt/buildroot-2020.02.3/
make widora_tiny200_defconfig
make

#59 Re: DOPI开源摄像头(HI3516/HI3518) » sun网友搞定的8bitRGB屏 » 2020-06-27 13:43:22

可以扔掉SPI屏了,弱弱问下有驱动代码吗?

#62 Re: 全志 SOC » DIY一块全志V3S的学习板,尽量引出所有功能(感谢晕哥支持) » 2020-06-18 22:11:16

3V 那组是 ADC 的电源参考吗?感觉只是为了计算ADC电压方便一点, 换3V3问题应该不大, 至少我是这么用的.

#63 Re: 全志 SOC » f1c200s(tiny200) linux+emwin稳定运行 » 2020-06-16 08:39:20

peterlin 说:

看起来应该是这个了,感谢楼主分享。

#64 Re: 全志 SOC » 请教大家,A33 接了 eMMC, Linux识别到 boot0, boot1 是什么操作?eMMC特有的分区? » 2020-06-15 11:18:24

http://trac.gateworks.com/wiki/MMC

卡特定数据(CSD)寄存器(EXT_CSD [179])用于配置加电时选择的分区。可以在Linux中通过mmc-utils应用程序进行配置,也可以在U-Boot中通过mmc partconf命令进行配置(请参见下文)。

#65 Re: 全志 SOC » 大伙有AP6212的原理图和PCB封装可以分享吗? » 2020-06-11 08:30:34

达克罗德 说:

https://github.com/nanfang2000/X1000_BB
这是我的git,这里面有AP6212的原理图和PCB,验证过是OK的

感谢分享, 刚刚看了一下仓库500M ,

手动笑哭.gif

#66 君正Ingenic/X1000/X2000/T10/T20/T30 » 请问buildroot生成的根文件系统的S01syslogd/S02klogd/S02sysctl 可以删掉吗,我感觉用不上. » 2020-06-08 11:10:33

歌以咏志
回复: 0

/etc/init.d/S01syslogd
/etc/init.d/S02klogd
/etc/init.d/S02sysctl

请问buildroot生成的根文件系统的

S01syslogd/S02klogd/S02sysctl

可以删掉吗,我感觉用不上.

#67 Re: ESP32/ESP8266 » esp32-pico-d4淘宝差价这么大 » 2020-06-04 23:47:43

乐鑫这个策略正确, 不和自己的客户抢客户, 要把资源向合作伙伴倾斜.

但是价格这么乱, 乐鑫就有责任了.

#68 Re: 全志 SOC » v3s,zero板子的spiflash启动,调用reboot起不来的问题 » 2020-05-25 14:36:43

简单的说, V3s死机,①你手动按复位键没有反应, ②用看门狗去拉V3s的复位脚也没反应,因为Flash没有退出4-byte地址模式。

#70 Re: 全志 SOC » v3s,zero板子的spiflash启动,调用reboot起不来的问题 » 2020-05-25 14:09:21

你是软件命令reboot? 主动热重启可以改下代码:  https://whycan.cn/t_534.html#p1447

热重启还好可以按照上面的处理,

如果是死机就有有点麻烦,

即使有外部看门狗(如max811)拉低 V3s 8PIN的也不能重启成功,除非flash电源脚也可以用看门狗控制。


所以我现在用16PIN 的 W25Q256, 这样每次都能可靠复位了,

把FLASH的 RESET# 引脚和 V3s的 RESET# 引脚短路到外部看门狗。

#72 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 灾年给万用表DIY一块续命电池, 快递停了挺不方便的, 凑合用吧 » 2020-05-22 12:16:40

sw773 说:

选择低静态电流的升压IC就好了,些无负载时电流100ua或更低,不算自放电待机500天

求推荐IC

#80 Re: 8051/STC8/AT89C51/N76E003 » 新唐的 N76E003 LDROM 和 APROM 烧录文件我能合并成一个文件烧录吗? » 2020-05-19 14:28:15

哎,百度了一圈还是找到了whycan, 我也本来以为可以打包成一个烧录文件,发现怎么弄都没搞成功,现在做成*.icp文件测试成功了。

#82 Re: 8051/STC8/AT89C51/N76E003 » 新唐 N76E003 8051 1T 单片机入坑记录 » 2020-05-18 10:40:08

P1.1死活不能输入, 发现是开了使能时钟输出 set_CLOEN

把这个代码屏蔽就好了。

#83 Re: NB-IoT/2G模块/4G模块/GPRS模块/GPS/北斗 » CAT1 模块 AIR724 资料收集 » 2020-05-15 09:43:35

物联小白 说:

请问这个电流是对应哪个电压?

刚点一楼的链接进去看了, 指的就是典型电压 3.8v

折算了一下:

13.28 * 3.8 = 50.464 mW
13.28 * 3.8 = 12.046 mW

看起来功耗还行。

#86 Re: 全志 SOC » 分享一个tinalinux源码仓库 » 2020-05-11 13:53:34

感谢楼主分享, 管他有用没用先fork, 否则一会迫于压力仓库就不见了。

#87 Re: 全志 SOC » 买了一块荔枝派,烧录好系统后反复重启,麻烦大神帮看看 » 2020-05-08 23:23:38

cache是文件系统占用吧, 如果你申请内存, 这部分会自动释放,

free    +   cached = 10 + 19 = 29M

你应该还有 29M 可以用.

#89 Re: 全志 SOC » 买了一块荔枝派,烧录好系统后反复重启,麻烦大神帮看看 » 2020-05-07 23:41:54

mysteryli 说:

我改了一下,日志变了,你看还是和之前一样文件系统的问题么

直接把日志贴出来吧, 用 code 标签

#91 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库 » 2020-05-07 18:05:45

zq190kg 说:

想在arm9上用,不知道是否可行

没有问题, 坛子里面好多大佬都用 f1c100s + linux + lvgl 量产了.

#92 Re: 全志 SOC » go语言开发f1c100s之oled驱动mmap升级优化版 » 2020-05-04 14:27:43

t1 = 记录开始时间戳;
整屏刷新N次;
t2 = 记录结束时间戳;

帧率fps = N/(t2-t1)


应该是这么算的。

#94 Re: 全志 SOC » go语言开发f1c100s之oled驱动mmap升级优化版 » 2020-05-04 14:16:08

楼主你这个是128*64 的 OLED吧, 模拟SPI驱动可以做到什么帧率?

#95 Re: 全志 SOC » go语言开发f1c100s之oled驱动mmap升级优化版 » 2020-05-04 14:03:05

也就是说 mmap / munmap 导致 dev 这个命令耗时?

#97 Re: 全志 SOC » 求助下wpa_supplicant的错误信息 » 2020-05-03 09:56:31

根文件系统里面确实有 tls 和 ssl 了吗?

#104 Re: 全志 SOC » 请教ST7789V,不显示,发现波形完全不对!请高手指点一二!! » 2020-04-27 11:57:45

果然有两个一样名字的驱动:

$ grep "sitronix,st7789v" -r drivers/
drivers/gpu/drm/panel/panel-sitronix-st7789v.c: { .compatible = "sitronix,st7789v" },
drivers/staging/fbtft/fb_st7789v.c:FBTFT_REGISTER_DRIVER(DRVNAME, "sitronix,st7789v", &display);

#105 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » VMWare Ubuntu18.04 终于起不动了, 悲剧 » 2020-04-23 08:17:10

[    0.000000] Linux version 4.18.0-15-generic (buildd@lcy01-amd64-029) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #16~18.04.1-Ubuntu SMP Thu Feb 7 14:06:04 UTC 2019 (Ubuntu 4.18.0-15.16~18.04.1-generic 4.18.20)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.18.0-15-generic root=UUID=fc72f34e-a9b0-4a7f-b5bc-9c67cfa74fbf ro find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US quiet
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] Disabled fast string operations
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x008: 'MPX bounds registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x010: 'MPX CSR'
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: xstate_offset[3]:  832, xstate_sizes[3]:   64
[    0.000000] x86/fpu: xstate_offset[4]:  896, xstate_sizes[4]:   64
[    0.000000] x86/fpu: Enabled xstate features 0x1f, context size is 960 bytes, using 'compacted' format.
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009e7ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009e800-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007fedffff] usable
[    0.000000] BIOS-e820: [mem 0x000000007fee0000-0x000000007fefefff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000007feff000-0x000000007fefffff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000007ff00000-0x000000007fffffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000f0000000-0x00000000f7ffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec0ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fffe0000-0x00000000ffffffff] reserved
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.7 present.
[    0.000000] DMI: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/19/2017
[    0.000000] Hypervisor detected: VMware
[    0.000000] vmware: TSC freq read from hypervisor : 2208.003 MHz
[    0.000000] vmware: Host bus clock speed read from hypervisor : 66000000 Hz
[    0.000000] vmware: using sched offset of 6613406203 ns
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] last_pfn = 0x80000 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-CFFFF write-protect
[    0.000000]   D0000-EFFFF uncachable
[    0.000000]   F0000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 000C0000000 mask 7FFC0000000 uncachable
[    0.000000]   1 base 00000000000 mask 7FF00000000 write-back
[    0.000000]   2 disabled
[    0.000000]   3 disabled
[    0.000000]   4 disabled
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WP  UC- WT  
[    0.000000] total RAM covered: 3072M
[    0.000000] Found optimal setting for mtrr clean up
[    0.000000]  gran_size: 64K 	chunk_size: 64K 	num_reg: 2  	lose cover RAM: 0G
[    0.000000] found SMP MP-table at [mem 0x000f6a80-0x000f6a8f] mapped at [(____ptrval____)]
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] Base memory trampoline at [(____ptrval____)] 98000 size 24576
[    0.000000] Using GB pages for direct mapping
[    0.000000] BRK [0x54564000, 0x54564fff] PGTABLE
[    0.000000] BRK [0x54565000, 0x54565fff] PGTABLE
[    0.000000] BRK [0x54566000, 0x54566fff] PGTABLE
[    0.000000] BRK [0x54567000, 0x54567fff] PGTABLE
[    0.000000] BRK [0x54568000, 0x54568fff] PGTABLE
[    0.000000] BRK [0x54569000, 0x54569fff] PGTABLE
[    0.000000] RAMDISK: [mem 0x3124b000-0x3491cfff]
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x00000000000F6A10 000024 (v02 PTLTD )
[    0.000000] ACPI: XSDT 0x000000007FEEA65B 00005C (v01 INTEL  440BX    06040000 VMW  01324272)
[    0.000000] ACPI: FACP 0x000000007FEFEE73 0000F4 (v04 INTEL  440BX    06040000 PTL  000F4240)
[    0.000000] ACPI: DSDT 0x000000007FEEBE8F 012FE4 (v01 PTLTD  Custom   06040000 MSFT 03000001)
[    0.000000] ACPI: FACS 0x000000007FEFFFC0 000040
[    0.000000] ACPI: FACS 0x000000007FEFFFC0 000040
[    0.000000] ACPI: BOOT 0x000000007FEEBE67 000028 (v01 PTLTD  $SBFTBL$ 06040000  LTP 00000001)
[    0.000000] ACPI: APIC 0x000000007FEEB725 000742 (v01 PTLTD  ? APIC   06040000  LTP 00000000)
[    0.000000] ACPI: MCFG 0x000000007FEEB6E9 00003C (v01 PTLTD  $PCITBL$ 06040000  LTP 00000001)
[    0.000000] ACPI: SRAT 0x000000007FEEA757 0008A8 (v02 VMWARE MEMPLUG  06040000 VMW  00000001)
[    0.000000] ACPI: HPET 0x000000007FEEA71F 000038 (v01 VMWARE VMW HPET 06040000 VMW  00000001)
[    0.000000] ACPI: WAET 0x000000007FEEA6F7 000028 (v01 VMWARE VMW WAET 06040000 VMW  00000001)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] system APIC only can use physical flat
[    0.000000] Setting APIC routing to physical flat.
[    0.000000] SRAT: PXM 0 -> APIC 0x00 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x02 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x04 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x06 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x08 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x0a -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x0c -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x0e -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x10 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x12 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x14 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x16 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x18 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x1a -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x1c -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x1e -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x20 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x22 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x24 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x26 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x28 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x2a -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x2c -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x2e -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x30 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x32 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x34 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x36 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x38 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x3a -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x3c -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x3e -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x40 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x42 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x44 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x46 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x48 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x4a -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x4c -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x4e -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x50 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x52 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x54 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x56 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x58 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x5a -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x5c -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x5e -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x60 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x62 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x64 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x66 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x68 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x6a -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x6c -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x6e -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x70 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x72 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x74 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x76 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x78 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x7a -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x7c -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x7e -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x80 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x82 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x84 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x86 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x88 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x8a -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x8c -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x8e -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x90 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x92 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x94 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x96 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x98 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x9a -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x9c -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x9e -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xa0 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xa2 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xa4 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xa6 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xa8 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xaa -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xac -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xae -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xb0 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xb2 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xb4 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xb6 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xb8 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xba -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xbc -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xbe -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xc0 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xc2 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xc4 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xc6 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xc8 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xca -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xcc -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xce -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xd0 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xd2 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xd4 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xd6 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xd8 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xda -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xdc -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xde -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xe0 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xe2 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xe4 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xe6 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xe8 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xea -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xec -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xee -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xf0 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xf2 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xf4 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xf6 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xf8 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xfa -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xfc -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0xfe -> Node 0
[    0.000000] ACPI: SRAT: Node 0 PXM 0 [mem 0x00000000-0x0009ffff]
[    0.000000] ACPI: SRAT: Node 0 PXM 0 [mem 0x00100000-0x7fffffff]
[    0.000000] ACPI: SRAT: Node 0 PXM 0 [mem 0x80000000-0xbfffffff] hotplug
[    0.000000] NUMA: Node 0 [mem 0x00000000-0x0009ffff] + [mem 0x00100000-0x7fffffff] -> [mem 0x00000000-0x7fffffff]
[    0.000000] NODE_DATA(0) allocated [mem 0x7ffd5000-0x7fffffff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   DMA32    [mem 0x0000000001000000-0x000000007fffffff]
[    0.000000]   Normal   empty
[    0.000000]   Device   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x000000000009dfff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x000000007fedffff]
[    0.000000]   node   0: [mem 0x000000007ff00000-0x000000007fffffff]
[    0.000000] Reserved but unavailable: 131 pages
[    0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000007fffffff]
[    0.000000] On node 0 totalpages: 524157
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 21 pages reserved
[    0.000000]   DMA zone: 3997 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 8128 pages used for memmap
[    0.000000]   DMA32 zone: 520160 pages, LIFO batch:31
[    0.000000] ACPI: PM-Timer IO Port: 0x1008
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] system APIC only can use physical flat
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x09] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x0a] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x0b] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x0c] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x0d] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x0e] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x0f] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x10] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x11] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x12] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x13] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x14] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x15] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x16] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x17] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x18] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x19] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x1a] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x1b] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x1c] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x1d] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x1e] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x1f] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x20] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x21] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x22] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x23] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x24] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x25] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x26] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x27] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x28] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x29] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x2a] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x2b] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x2c] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x2d] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x2e] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x2f] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x30] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x31] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x32] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x33] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x34] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x35] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x36] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x37] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x38] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x39] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x3a] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x3b] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x3c] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x3d] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x3e] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x3f] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x40] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x41] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x42] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x43] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x44] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x45] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x46] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x47] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x48] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x49] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x4a] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x4b] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x4c] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x4d] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x4e] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x4f] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x50] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x51] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x52] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x53] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x54] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x55] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x56] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x57] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x58] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x59] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x5a] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x5b] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x5c] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x5d] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x5e] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x5f] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x60] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x61] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x62] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x63] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x64] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x65] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x66] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x67] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x68] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x69] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x6a] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x6b] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x6c] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x6d] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x6e] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x6f] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x70] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x71] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x72] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x73] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x74] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x75] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x76] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x77] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x78] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x79] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x7a] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x7b] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x7c] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x7d] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x7e] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x7f] high edge lint[0x1])
[    0.000000] IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086af01 base: 0xfed00000
[    0.000000] smpboot: Allowing 128 CPUs, 124 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009efff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009f000-0x0009ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000dbfff]
[    0.000000] PM: Registered nosave memory: [mem 0x000dc000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x7fee0000-0x7fefefff]
[    0.000000] PM: Registered nosave memory: [mem 0x7feff000-0x7fefffff]
[    0.000000] [mem 0x80000000-0xefffffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on VMware hypervisor
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns
[    0.000000] random: get_random_bytes called from start_kernel+0x99/0x55a with crng_init=0
[    0.000000] setup_percpu: NR_CPUS:8192 nr_cpumask_bits:128 nr_cpu_ids:128 nr_node_ids:1
[    0.000000] percpu: Embedded 46 pages/cpu @(____ptrval____) s151552 r8192 d28672 u262144
[    0.000000] pcpu-alloc: s151552 r8192 d28672 u262144 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 000 001 002 003 004 005 006 007 
[    0.000000] pcpu-alloc: [0] 008 009 010 011 012 013 014 015 
[    0.000000] pcpu-alloc: [0] 016 017 018 019 020 021 022 023 
[    0.000000] pcpu-alloc: [0] 024 025 026 027 028 029 030 031 
[    0.000000] pcpu-alloc: [0] 032 033 034 035 036 037 038 039 
[    0.000000] pcpu-alloc: [0] 040 041 042 043 044 045 046 047 
[    0.000000] pcpu-alloc: [0] 048 049 050 051 052 053 054 055 
[    0.000000] pcpu-alloc: [0] 056 057 058 059 060 061 062 063 
[    0.000000] pcpu-alloc: [0] 064 065 066 067 068 069 070 071 
[    0.000000] pcpu-alloc: [0] 072 073 074 075 076 077 078 079 
[    0.000000] pcpu-alloc: [0] 080 081 082 083 084 085 086 087 
[    0.000000] pcpu-alloc: [0] 088 089 090 091 092 093 094 095 
[    0.000000] pcpu-alloc: [0] 096 097 098 099 100 101 102 103 
[    0.000000] pcpu-alloc: [0] 104 105 106 107 108 109 110 111 
[    0.000000] pcpu-alloc: [0] 112 113 114 115 116 117 118 119 
[    0.000000] pcpu-alloc: [0] 120 121 122 123 124 125 126 127 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 515944
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.18.0-15-generic root=UUID=fc72f34e-a9b0-4a7f-b5bc-9c67cfa74fbf ro find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US quiet
[    0.000000] log_buf_len individual max cpu contribution: 4096 bytes
[    0.000000] log_buf_len total cpu_extra contributions: 520192 bytes
[    0.000000] log_buf_len min size: 262144 bytes
[    0.000000] log_buf_len: 1048576 bytes
[    0.000000] early log buf free: 236360(90%)
[    0.000000] Calgary: detecting Calgary via BIOS EBDA area
[    0.000000] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
[    0.000000] Memory: 1954688K/2096628K available (12300K kernel code, 2633K rwdata, 4360K rodata, 2464K init, 2340K bss, 141940K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=128, Nodes=1
[    0.000000] Kernel/User page tables isolation: enabled
[    0.000000] ftrace: allocating 40831 entries in 160 pages
[    0.004000] Hierarchical RCU implementation.
[    0.004000] 	RCU restricting CPUs from NR_CPUS=8192 to nr_cpu_ids=128.
[    0.004000] 	Tasks RCU enabled.
[    0.004000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=128
[    0.004000] NR_IRQS: 524544, nr_irqs: 1448, preallocated irqs: 16
[    0.004000] Console: colour VGA+ 80x25
[    0.004000] console [tty0] enabled
[    0.004000] ACPI: Core revision 20180531
[    0.004000] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 133484882848 ns
[    0.004000] hpet clockevent registered
[    0.004000] APIC: Switch to symmetric I/O mode setup
[    0.004000] x2apic enabled
[    0.004000] Switched APIC routing to physical x2apic.
[    0.004000] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.004000] tsc: Detected 2208.003 MHz processor
[    0.004000] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x1fd3bb134e8, max_idle_ns: 440795232661 ns
[    0.004000] Calibrating delay loop (skipped) preset value.. 4416.00 BogoMIPS (lpj=8832012)
[    0.004000] pid_max: default: 131072 minimum: 1024
[    0.004000] Security Framework initialized
[    0.004000] Yama: becoming mindful.
[    0.004000] AppArmor: AppArmor initialized
[    0.007168] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.010922] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.011072] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.011181] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.012009] Disabled fast string operations
[    0.012028] mce: CPU supports 8 MCE banks
[    0.012106] Last level iTLB entries: 4KB 64, 2MB 8, 4MB 8
[    0.012106] Last level dTLB entries: 4KB 64, 2MB 0, 4MB 0, 1GB 4
[    0.012108] Spectre V2 : Mitigation: Full generic retpoline
[    0.012109] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch
[    0.012109] Spectre V2 : Spectre v2 mitigation: Enabling Indirect Branch Prediction Barrier
[    0.012109] Spectre V2 : Enabling Restricted Speculation for firmware calls
[    0.012110] Speculative Store Bypass: Vulnerable
[    0.012203] Freeing SMP alternatives memory: 36K
[    0.015460] TSC deadline timer enabled
[    0.015492] smpboot: CPU0: Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz (family: 0x6, model: 0x9e, stepping: 0xa)
[    0.016000] Performance Events: Skylake events, core PMU driver.
[    0.016000] core: CPUID marked event: 'cpu cycles' unavailable
[    0.016000] core: CPUID marked event: 'instructions' unavailable
[    0.016000] core: CPUID marked event: 'bus cycles' unavailable
[    0.016000] core: CPUID marked event: 'cache references' unavailable
[    0.016000] core: CPUID marked event: 'cache misses' unavailable
[    0.016000] core: CPUID marked event: 'branch instructions' unavailable
[    0.016000] core: CPUID marked event: 'branch misses' unavailable
[    0.016000] ... version:                1
[    0.016000] ... bit width:              48
[    0.016000] ... generic registers:      4
[    0.016000] ... value mask:             0000ffffffffffff
[    0.016000] ... max period:             000000007fffffff
[    0.016000] ... fixed-purpose events:   0
[    0.016000] ... event mask:             000000000000000f
[    0.016000] Hierarchical SRCU implementation.
[    0.016000] NMI watchdog: Perf event create on CPU 0 failed with -2
[    0.016000] NMI watchdog: Perf NMI watchdog permanently disabled
[    0.027253] smp: Bringing up secondary CPUs ...
[    0.027921] x86: Booting SMP configuration:
[    0.027922] .... node  #0, CPUs:          #1
[    0.004000] Disabled fast string operations
[    0.004000] smpboot: CPU 1 Converting physical 2 to logical package 1
[    0.028917]    #2
[    0.004000] Disabled fast string operations
[    0.004000] smpboot: CPU 2 Converting physical 4 to logical package 2
[    0.029945]    #3
[    0.004000] Disabled fast string operations
[    0.004000] smpboot: CPU 3 Converting physical 6 to logical package 3
[    0.032934] smp: Brought up 1 node, 4 CPUs
[    0.032934] smpboot: Max logical packages: 128
[    0.032934] smpboot: Total of 4 processors activated (17664.02 BogoMIPS)
[    0.036005] devtmpfs: initialized
[    0.036103] x86/mm: Memory block size: 128MB
[    0.037023] PM: Registering ACPI NVS region [mem 0x7feff000-0x7fefffff] (4096 bytes)
[    0.037023] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.037023] futex hash table entries: 32768 (order: 9, 2097152 bytes)
[    0.045115] pinctrl core: initialized pinctrl subsystem
[    0.045306] RTC time: 15:08:13, date: 04/22/20
[    0.046043] NET: Registered protocol family 16
[    0.046180] audit: initializing netlink subsys (disabled)
[    0.046270] audit: type=2000 audit(1587568093.044:1): state=initialized audit_enabled=0 res=1
[    0.046270] cpuidle: using governor ladder
[    0.046270] cpuidle: using governor menu
[    0.046270] Simple Boot Flag at 0x36 set to 0x80
[    0.046270] ACPI: bus type PCI registered
[    0.046270] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.046270] PCI: MMCONFIG for domain 0000 [bus 00-7f] at [mem 0xf0000000-0xf7ffffff] (base 0xf0000000)
[    0.046270] PCI: MMCONFIG at [mem 0xf0000000-0xf7ffffff] reserved in E820
[    0.046270] PCI: Using configuration type 1 for base access
[    0.049543] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.049543] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.049543] ACPI: Added _OSI(Module Device)
[    0.049543] ACPI: Added _OSI(Processor Device)
[    0.049543] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.049543] ACPI: Added _OSI(Processor Aggregator Device)
[    0.049543] ACPI: Added _OSI(Linux-Dell-Video)
[    0.049543] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[    0.064037] ACPI: 1 ACPI AML tables successfully acquired and loaded
[    0.066512] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    0.085941] ACPI: Interpreter enabled
[    0.085952] ACPI: (supports S0 S1 S4 S5)
[    0.085953] ACPI: Using IOAPIC for interrupt routing
[    0.085976] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.086566] ACPI: Enabled 4 GPEs in block 00 to 0F
[    0.145847] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-7f])
[    0.145861] acpi PNP0A03:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[    0.146052] acpi PNP0A03:00: _OSC: platform does not support [AER LTR]
[    0.146237] acpi PNP0A03:00: _OSC: OS now controls [PCIeHotplug SHPCHotplug PME PCIeCapability]
[    0.149324] PCI host bridge to bus 0000:00
[    0.149326] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]
[    0.149327] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff window]
[    0.149327] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff window]
[    0.149328] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff window]
[    0.149329] pci_bus 0000:00: root bus resource [mem 0xc0000000-0xfebfffff window]
[    0.149330] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7 window]
[    0.149331] pci_bus 0000:00: root bus resource [io  0x0d00-0xfeff window]
[    0.149332] pci_bus 0000:00: root bus resource [bus 00-7f]
[    0.149378] pci 0000:00:00.0: [8086:7190] type 00 class 0x060000
[    0.150207] pci 0000:00:01.0: [8086:7191] type 01 class 0x060400
[    0.151973] pci 0000:00:07.0: [8086:7110] type 00 class 0x060100
[    0.152865] pci 0000:00:07.1: [8086:7111] type 00 class 0x01018a
[    0.154452] pci 0000:00:07.1: reg 0x20: [io  0x1060-0x106f]
[    0.155048] pci 0000:00:07.1: legacy IDE quirk: reg 0x10: [io  0x01f0-0x01f7]
[    0.155049] pci 0000:00:07.1: legacy IDE quirk: reg 0x14: [io  0x03f6]
[    0.155050] pci 0000:00:07.1: legacy IDE quirk: reg 0x18: [io  0x0170-0x0177]
[    0.155051] pci 0000:00:07.1: legacy IDE quirk: reg 0x1c: [io  0x0376]
[    0.155286] pci 0000:00:07.3: [8086:7113] type 00 class 0x068000
[    0.156946] pci 0000:00:07.3: quirk: [io  0x1000-0x103f] claimed by PIIX4 ACPI
[    0.156956] pci 0000:00:07.3: quirk: [io  0x1040-0x104f] claimed by PIIX4 SMB
[    0.157297] pci 0000:00:07.7: [15ad:0740] type 00 class 0x088000
[    0.158134] pci 0000:00:07.7: reg 0x10: [io  0x1080-0x10bf]
[    0.158819] pci 0000:00:07.7: reg 0x14: [mem 0xfebfe000-0xfebfffff 64bit]
[    0.163569] pci 0000:00:0f.0: [15ad:0405] type 00 class 0x030000
[    0.164912] pci 0000:00:0f.0: reg 0x10: [io  0x1070-0x107f]
[    0.166812] pci 0000:00:0f.0: reg 0x14: [mem 0xe8000000-0xefffffff pref]
[    0.168004] pci 0000:00:0f.0: reg 0x18: [mem 0xfe000000-0xfe7fffff]
[    0.175188] pci 0000:00:0f.0: reg 0x30: [mem 0x00000000-0x00007fff pref]
[    0.175886] pci 0000:00:10.0: [1000:0030] type 00 class 0x010000
[    0.176546] pci 0000:00:10.0: reg 0x10: [io  0x1400-0x14ff]
[    0.177617] pci 0000:00:10.0: reg 0x14: [mem 0xfeba0000-0xfebbffff 64bit]
[    0.178665] pci 0000:00:10.0: reg 0x1c: [mem 0xfebc0000-0xfebdffff 64bit]
[    0.180624] pci 0000:00:10.0: reg 0x30: [mem 0x00000000-0x00003fff pref]
[    0.181290] pci 0000:00:11.0: [15ad:0790] type 01 class 0x060401
[    0.182887] pci 0000:00:15.0: [15ad:07a0] type 01 class 0x060400
[    0.183550] pci 0000:00:15.0: PME# supported from D0 D3hot D3cold
[    0.183957] pci 0000:00:15.1: [15ad:07a0] type 01 class 0x060400
[    0.184619] pci 0000:00:15.1: PME# supported from D0 D3hot D3cold
[    0.185095] pci 0000:00:15.2: [15ad:07a0] type 01 class 0x060400
[    0.185758] pci 0000:00:15.2: PME# supported from D0 D3hot D3cold
[    0.186139] pci 0000:00:15.3: [15ad:07a0] type 01 class 0x060400
[    0.186807] pci 0000:00:15.3: PME# supported from D0 D3hot D3cold
[    0.187186] pci 0000:00:15.4: [15ad:07a0] type 01 class 0x060400
[    0.187875] pci 0000:00:15.4: PME# supported from D0 D3hot D3cold
[    0.188247] pci 0000:00:15.5: [15ad:07a0] type 01 class 0x060400
[    0.188946] pci 0000:00:15.5: PME# supported from D0 D3hot D3cold
[    0.189329] pci 0000:00:15.6: [15ad:07a0] type 01 class 0x060400
[    0.189990] pci 0000:00:15.6: PME# supported from D0 D3hot D3cold
[    0.190413] pci 0000:00:15.7: [15ad:07a0] type 01 class 0x060400
[    0.191081] pci 0000:00:15.7: PME# supported from D0 D3hot D3cold
[    0.191713] pci 0000:00:16.0: [15ad:07a0] type 01 class 0x060400
[    0.192375] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    0.192774] pci 0000:00:16.1: [15ad:07a0] type 01 class 0x060400
[    0.193434] pci 0000:00:16.1: PME# supported from D0 D3hot D3cold
[    0.193948] pci 0000:00:16.2: [15ad:07a0] type 01 class 0x060400
[    0.194620] pci 0000:00:16.2: PME# supported from D0 D3hot D3cold
[    0.195005] pci 0000:00:16.3: [15ad:07a0] type 01 class 0x060400
[    0.195682] pci 0000:00:16.3: PME# supported from D0 D3hot D3cold
[    0.196074] pci 0000:00:16.4: [15ad:07a0] type 01 class 0x060400
[    0.196734] pci 0000:00:16.4: PME# supported from D0 D3hot D3cold
[    0.197116] pci 0000:00:16.5: [15ad:07a0] type 01 class 0x060400
[    0.197774] pci 0000:00:16.5: PME# supported from D0 D3hot D3cold
[    0.198164] pci 0000:00:16.6: [15ad:07a0] type 01 class 0x060400
[    0.198831] pci 0000:00:16.6: PME# supported from D0 D3hot D3cold
[    0.199209] pci 0000:00:16.7: [15ad:07a0] type 01 class 0x060400
[    0.199882] pci 0000:00:16.7: PME# supported from D0 D3hot D3cold
[    0.200462] pci 0000:00:17.0: [15ad:07a0] type 01 class 0x060400
[    0.201130] pci 0000:00:17.0: PME# supported from D0 D3hot D3cold
[    0.201560] pci 0000:00:17.1: [15ad:07a0] type 01 class 0x060400
[    0.202231] pci 0000:00:17.1: PME# supported from D0 D3hot D3cold
[    0.202740] pci 0000:00:17.2: [15ad:07a0] type 01 class 0x060400
[    0.203397] pci 0000:00:17.2: PME# supported from D0 D3hot D3cold
[    0.203746] pci 0000:00:17.3: [15ad:07a0] type 01 class 0x060400
[    0.204405] pci 0000:00:17.3: PME# supported from D0 D3hot D3cold
[    0.204792] pci 0000:00:17.4: [15ad:07a0] type 01 class 0x060400
[    0.205449] pci 0000:00:17.4: PME# supported from D0 D3hot D3cold
[    0.205842] pci 0000:00:17.5: [15ad:07a0] type 01 class 0x060400
[    0.206502] pci 0000:00:17.5: PME# supported from D0 D3hot D3cold
[    0.206904] pci 0000:00:17.6: [15ad:07a0] type 01 class 0x060400
[    0.207575] pci 0000:00:17.6: PME# supported from D0 D3hot D3cold
[    0.207959] pci 0000:00:17.7: [15ad:07a0] type 01 class 0x060400
[    0.208619] pci 0000:00:17.7: PME# supported from D0 D3hot D3cold
[    0.209259] pci 0000:00:18.0: [15ad:07a0] type 01 class 0x060400
[    0.209934] pci 0000:00:18.0: PME# supported from D0 D3hot D3cold
[    0.210326] pci 0000:00:18.1: [15ad:07a0] type 01 class 0x060400
[    0.210997] pci 0000:00:18.1: PME# supported from D0 D3hot D3cold
[    0.211520] pci 0000:00:18.2: [15ad:07a0] type 01 class 0x060400
[    0.212183] pci 0000:00:18.2: PME# supported from D0 D3hot D3cold
[    0.212576] pci 0000:00:18.3: [15ad:07a0] type 01 class 0x060400
[    0.213235] pci 0000:00:18.3: PME# supported from D0 D3hot D3cold
[    0.213600] pci 0000:00:18.4: [15ad:07a0] type 01 class 0x060400
[    0.214261] pci 0000:00:18.4: PME# supported from D0 D3hot D3cold
[    0.214648] pci 0000:00:18.5: [15ad:07a0] type 01 class 0x060400
[    0.215316] pci 0000:00:18.5: PME# supported from D0 D3hot D3cold
[    0.215708] pci 0000:00:18.6: [15ad:07a0] type 01 class 0x060400
[    0.216365] pci 0000:00:18.6: PME# supported from D0 D3hot D3cold
[    0.216758] pci 0000:00:18.7: [15ad:07a0] type 01 class 0x060400
[    0.217419] pci 0000:00:18.7: PME# supported from D0 D3hot D3cold
[    0.219540] pci_bus 0000:01: extended config space not accessible
[    0.226317] pci 0000:00:01.0: PCI bridge to [bus 01]
[    0.226649] pci_bus 0000:02: extended config space not accessible
[    0.226945] acpiphp: Slot [32] registered
[    0.227008] acpiphp: Slot [33] registered
[    0.227069] acpiphp: Slot [34] registered
[    0.227130] acpiphp: Slot [35] registered
[    0.227202] acpiphp: Slot [36] registered
[    0.227265] acpiphp: Slot [37] registered
[    0.227325] acpiphp: Slot [38] registered
[    0.227386] acpiphp: Slot [39] registered
[    0.227446] acpiphp: Slot [40] registered
[    0.227537] acpiphp: Slot [41] registered
[    0.227599] acpiphp: Slot [42] registered
[    0.227660] acpiphp: Slot [43] registered
[    0.227720] acpiphp: Slot [44] registered
[    0.227781] acpiphp: Slot [45] registered
[    0.227842] acpiphp: Slot [46] registered
[    0.227902] acpiphp: Slot [47] registered
[    0.227963] acpiphp: Slot [48] registered
[    0.228016] acpiphp: Slot [49] registered
[    0.228077] acpiphp: Slot [50] registered
[    0.228170] acpiphp: Slot [51] registered
[    0.228231] acpiphp: Slot [52] registered
[    0.228338] acpiphp: Slot [53] registered
[    0.228402] acpiphp: Slot [54] registered
[    0.228463] acpiphp: Slot [55] registered
[    0.228542] acpiphp: Slot [56] registered
[    0.228603] acpiphp: Slot [57] registered
[    0.228664] acpiphp: Slot [58] registered
[    0.228724] acpiphp: Slot [59] registered
[    0.228784] acpiphp: Slot [60] registered
[    0.228845] acpiphp: Slot [61] registered
[    0.228905] acpiphp: Slot [62] registered
[    0.228966] acpiphp: Slot [63] registered
[    0.229033] pci 0000:02:00.0: [15ad:0774] type 00 class 0x0c0300
[    0.230454] pci 0000:02:00.0: reg 0x20: [io  0x2080-0x209f]
[    0.231605] pci 0000:02:01.0: [8086:100f] type 00 class 0x020000
[    0.232767] pci 0000:02:01.0: reg 0x10: [mem 0xfd5c0000-0xfd5dffff 64bit]
[    0.233849] pci 0000:02:01.0: reg 0x18: [mem 0xfdff0000-0xfdffffff 64bit]
[    0.234952] pci 0000:02:01.0: reg 0x20: [io  0x2000-0x203f]
[    0.237235] pci 0000:02:01.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[    0.237523] pci 0000:02:01.0: PME# supported from D0 D3hot D3cold
[    0.238166] pci 0000:02:02.0: [1274:1371] type 00 class 0x040100
[    0.238512] pci 0000:02:02.0: reg 0x10: [io  0x2040-0x207f]
[    0.240847] pci 0000:02:03.0: [15ad:0770] type 00 class 0x0c0320
[    0.241410] pci 0000:02:03.0: reg 0x10: [mem 0xfd5ef000-0xfd5effff]
[    0.245144] pci 0000:02:05.0: [15ad:07e0] type 00 class 0x010601
[    0.248269] pci 0000:02:05.0: reg 0x24: [mem 0xfd5ee000-0xfd5eefff]
[    0.248759] pci 0000:02:05.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[    0.249126] pci 0000:02:05.0: PME# supported from D3hot
[    0.255251] pci 0000:00:11.0: PCI bridge to [bus 02] (subtractive decode)
[    0.255272] pci 0000:00:11.0:   bridge window [io  0x2000-0x3fff]
[    0.255291] pci 0000:00:11.0:   bridge window [mem 0xfd500000-0xfdffffff]
[    0.255327] pci 0000:00:11.0:   bridge window [mem 0xe7b00000-0xe7ffffff 64bit pref]
[    0.255328] pci 0000:00:11.0:   bridge window [mem 0x000a0000-0x000bffff window] (subtractive decode)
[    0.255329] pci 0000:00:11.0:   bridge window [mem 0x000d0000-0x000d3fff window] (subtractive decode)
[    0.255330] pci 0000:00:11.0:   bridge window [mem 0x000d4000-0x000d7fff window] (subtractive decode)
[    0.255331] pci 0000:00:11.0:   bridge window [mem 0x000d8000-0x000dbfff window] (subtractive decode)
[    0.255332] pci 0000:00:11.0:   bridge window [mem 0xc0000000-0xfebfffff window] (subtractive decode)
[    0.255332] pci 0000:00:11.0:   bridge window [io  0x0000-0x0cf7 window] (subtractive decode)
[    0.255333] pci 0000:00:11.0:   bridge window [io  0x0d00-0xfeff window] (subtractive decode)
[    0.261387] pci 0000:00:15.0: PCI bridge to [bus 03]
[    0.261409] pci 0000:00:15.0:   bridge window [io  0x4000-0x4fff]
[    0.261427] pci 0000:00:15.0:   bridge window [mem 0xfd400000-0xfd4fffff]
[    0.261463] pci 0000:00:15.0:   bridge window [mem 0xe7a00000-0xe7afffff 64bit pref]
[    0.267458] pci 0000:00:15.1: PCI bridge to [bus 04]
[    0.267480] pci 0000:00:15.1:   bridge window [io  0x8000-0x8fff]
[    0.267498] pci 0000:00:15.1:   bridge window [mem 0xfd000000-0xfd0fffff]
[    0.267534] pci 0000:00:15.1:   bridge window [mem 0xe7600000-0xe76fffff 64bit pref]
[    0.273528] pci 0000:00:15.2: PCI bridge to [bus 05]
[    0.273549] pci 0000:00:15.2:   bridge window [io  0xc000-0xcfff]
[    0.273568] pci 0000:00:15.2:   bridge window [mem 0xfcc00000-0xfccfffff]
[    0.273604] pci 0000:00:15.2:   bridge window [mem 0xe7200000-0xe72fffff 64bit pref]
[    0.280182] pci 0000:00:15.3: PCI bridge to [bus 06]
[    0.280221] pci 0000:00:15.3:   bridge window [mem 0xfc800000-0xfc8fffff]
[    0.280257] pci 0000:00:15.3:   bridge window [mem 0xe6e00000-0xe6efffff 64bit pref]
[    0.286789] pci 0000:00:15.4: PCI bridge to [bus 07]
[    0.286828] pci 0000:00:15.4:   bridge window [mem 0xfc400000-0xfc4fffff]
[    0.286864] pci 0000:00:15.4:   bridge window [mem 0xe6a00000-0xe6afffff 64bit pref]
[    0.293149] pci 0000:00:15.5: PCI bridge to [bus 08]
[    0.293191] pci 0000:00:15.5:   bridge window [mem 0xfc000000-0xfc0fffff]
[    0.293227] pci 0000:00:15.5:   bridge window [mem 0xe6600000-0xe66fffff 64bit pref]
[    0.300062] pci 0000:00:15.6: PCI bridge to [bus 09]
[    0.300105] pci 0000:00:15.6:   bridge window [mem 0xfbc00000-0xfbcfffff]
[    0.300141] pci 0000:00:15.6:   bridge window [mem 0xe6200000-0xe62fffff 64bit pref]
[    0.306644] pci 0000:00:15.7: PCI bridge to [bus 0a]
[    0.306685] pci 0000:00:15.7:   bridge window [mem 0xfb800000-0xfb8fffff]
[    0.306720] pci 0000:00:15.7:   bridge window [mem 0xe5e00000-0xe5efffff 64bit pref]
[    0.312000] pci 0000:00:16.0: PCI bridge to [bus 0b]
[    0.312012] pci 0000:00:16.0:   bridge window [io  0x5000-0x5fff]
[    0.312031] pci 0000:00:16.0:   bridge window [mem 0xfd300000-0xfd3fffff]
[    0.312067] pci 0000:00:16.0:   bridge window [mem 0xe7900000-0xe79fffff 64bit pref]
[    0.318886] pci 0000:00:16.1: PCI bridge to [bus 0c]
[    0.318908] pci 0000:00:16.1:   bridge window [io  0x9000-0x9fff]
[    0.318927] pci 0000:00:16.1:   bridge window [mem 0xfcf00000-0xfcffffff]
[    0.318964] pci 0000:00:16.1:   bridge window [mem 0xe7500000-0xe75fffff 64bit pref]
[    0.324338] pci 0000:00:16.2: PCI bridge to [bus 0d]
[    0.324362] pci 0000:00:16.2:   bridge window [io  0xd000-0xdfff]
[    0.324380] pci 0000:00:16.2:   bridge window [mem 0xfcb00000-0xfcbfffff]
[    0.324416] pci 0000:00:16.2:   bridge window [mem 0xe7100000-0xe71fffff 64bit pref]
[    0.331251] pci 0000:00:16.3: PCI bridge to [bus 0e]
[    0.331294] pci 0000:00:16.3:   bridge window [mem 0xfc700000-0xfc7fffff]
[    0.331337] pci 0000:00:16.3:   bridge window [mem 0xe6d00000-0xe6dfffff 64bit pref]
[    0.337891] pci 0000:00:16.4: PCI bridge to [bus 0f]
[    0.337971] pci 0000:00:16.4:   bridge window [mem 0xfc300000-0xfc3fffff]
[    0.338015] pci 0000:00:16.4:   bridge window [mem 0xe6900000-0xe69fffff 64bit pref]
[    0.344568] pci 0000:00:16.5: PCI bridge to [bus 10]
[    0.344612] pci 0000:00:16.5:   bridge window [mem 0xfbf00000-0xfbffffff]
[    0.344648] pci 0000:00:16.5:   bridge window [mem 0xe6500000-0xe65fffff 64bit pref]
[    0.351299] pci 0000:00:16.6: PCI bridge to [bus 11]
[    0.351343] pci 0000:00:16.6:   bridge window [mem 0xfbb00000-0xfbbfffff]
[    0.351379] pci 0000:00:16.6:   bridge window [mem 0xe6100000-0xe61fffff 64bit pref]
[    0.358228] pci 0000:00:16.7: PCI bridge to [bus 12]
[    0.358270] pci 0000:00:16.7:   bridge window [mem 0xfb700000-0xfb7fffff]
[    0.358306] pci 0000:00:16.7:   bridge window [mem 0xe5d00000-0xe5dfffff 64bit pref]
[    0.364885] pci 0000:00:17.0: PCI bridge to [bus 13]
[    0.364911] pci 0000:00:17.0:   bridge window [io  0x6000-0x6fff]
[    0.364930] pci 0000:00:17.0:   bridge window [mem 0xfd200000-0xfd2fffff]
[    0.364966] pci 0000:00:17.0:   bridge window [mem 0xe7800000-0xe78fffff 64bit pref]
[    0.371964] pci 0000:00:17.1: PCI bridge to [bus 14]
[    0.371990] pci 0000:00:17.1:   bridge window [io  0xa000-0xafff]
[    0.372003] pci 0000:00:17.1:   bridge window [mem 0xfce00000-0xfcefffff]
[    0.372039] pci 0000:00:17.1:   bridge window [mem 0xe7400000-0xe74fffff 64bit pref]
[    0.378708] pci 0000:00:17.2: PCI bridge to [bus 15]
[    0.378729] pci 0000:00:17.2:   bridge window [io  0xe000-0xefff]
[    0.378748] pci 0000:00:17.2:   bridge window [mem 0xfca00000-0xfcafffff]
[    0.378784] pci 0000:00:17.2:   bridge window [mem 0xe7000000-0xe70fffff 64bit pref]
[    0.384776] pci 0000:00:17.3: PCI bridge to [bus 16]
[    0.384815] pci 0000:00:17.3:   bridge window [mem 0xfc600000-0xfc6fffff]
[    0.384851] pci 0000:00:17.3:   bridge window [mem 0xe6c00000-0xe6cfffff 64bit pref]
[    0.390860] pci 0000:00:17.4: PCI bridge to [bus 17]
[    0.390896] pci 0000:00:17.4:   bridge window [mem 0xfc200000-0xfc2fffff]
[    0.390931] pci 0000:00:17.4:   bridge window [mem 0xe6800000-0xe68fffff 64bit pref]
[    0.396000] pci 0000:00:17.5: PCI bridge to [bus 18]
[    0.396028] pci 0000:00:17.5:   bridge window [mem 0xfbe00000-0xfbefffff]
[    0.396064] pci 0000:00:17.5:   bridge window [mem 0xe6400000-0xe64fffff 64bit pref]
[    0.402913] pci 0000:00:17.6: PCI bridge to [bus 19]
[    0.402951] pci 0000:00:17.6:   bridge window [mem 0xfba00000-0xfbafffff]
[    0.402988] pci 0000:00:17.6:   bridge window [mem 0xe6000000-0xe60fffff 64bit pref]
[    0.408000] pci 0000:00:17.7: PCI bridge to [bus 1a]
[    0.408036] pci 0000:00:17.7:   bridge window [mem 0xfb600000-0xfb6fffff]
[    0.408072] pci 0000:00:17.7:   bridge window [mem 0xe5c00000-0xe5cfffff 64bit pref]
[    0.415039] pci 0000:00:18.0: PCI bridge to [bus 1b]
[    0.415060] pci 0000:00:18.0:   bridge window [io  0x7000-0x7fff]
[    0.415078] pci 0000:00:18.0:   bridge window [mem 0xfd100000-0xfd1fffff]
[    0.415114] pci 0000:00:18.0:   bridge window [mem 0xe7700000-0xe77fffff 64bit pref]
[    0.421063] pci 0000:00:18.1: PCI bridge to [bus 1c]
[    0.421082] pci 0000:00:18.1:   bridge window [io  0xb000-0xbfff]
[    0.421101] pci 0000:00:18.1:   bridge window [mem 0xfcd00000-0xfcdfffff]
[    0.421137] pci 0000:00:18.1:   bridge window [mem 0xe7300000-0xe73fffff 64bit pref]
[    0.427251] pci 0000:00:18.2: PCI bridge to [bus 1d]
[    0.427288] pci 0000:00:18.2:   bridge window [mem 0xfc900000-0xfc9fffff]
[    0.427323] pci 0000:00:18.2:   bridge window [mem 0xe6f00000-0xe6ffffff 64bit pref]
[    0.433788] pci 0000:00:18.3: PCI bridge to [bus 1e]
[    0.433826] pci 0000:00:18.3:   bridge window [mem 0xfc500000-0xfc5fffff]
[    0.433861] pci 0000:00:18.3:   bridge window [mem 0xe6b00000-0xe6bfffff 64bit pref]
[    0.440432] pci 0000:00:18.4: PCI bridge to [bus 1f]
[    0.440474] pci 0000:00:18.4:   bridge window [mem 0xfc100000-0xfc1fffff]
[    0.440510] pci 0000:00:18.4:   bridge window [mem 0xe6700000-0xe67fffff 64bit pref]
[    0.446616] pci 0000:00:18.5: PCI bridge to [bus 20]
[    0.446654] pci 0000:00:18.5:   bridge window [mem 0xfbd00000-0xfbdfffff]
[    0.446689] pci 0000:00:18.5:   bridge window [mem 0xe6300000-0xe63fffff 64bit pref]
[    0.452000] pci 0000:00:18.6: PCI bridge to [bus 21]
[    0.452029] pci 0000:00:18.6:   bridge window [mem 0xfb900000-0xfb9fffff]
[    0.452065] pci 0000:00:18.6:   bridge window [mem 0xe5f00000-0xe5ffffff 64bit pref]
[    0.458813] pci 0000:00:18.7: PCI bridge to [bus 22]
[    0.458856] pci 0000:00:18.7:   bridge window [mem 0xfb500000-0xfb5fffff]
[    0.458892] pci 0000:00:18.7:   bridge window [mem 0xe5b00000-0xe5bfffff 64bit pref]
[    0.461396] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 *9 10 11 14 15)
[    0.461475] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 10 *11 14 15)
[    0.461551] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 9 *10 11 14 15)
[    0.461626] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 *7 9 10 11 14 15)
[    0.475359] SCSI subsystem initialized
[    0.475498] libata version 3.00 loaded.
[    0.475498] pci 0000:00:0f.0: vgaarb: setting as boot VGA device
[    0.475498] pci 0000:00:0f.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none
[    0.475498] pci 0000:00:0f.0: vgaarb: bridge control possible
[    0.475498] vgaarb: loaded
[    0.475498] ACPI: bus type USB registered
[    0.475498] usbcore: registered new interface driver usbfs
[    0.475498] usbcore: registered new interface driver hub
[    0.475498] usbcore: registered new device driver usb
[    0.475498] pps_core: LinuxPPS API ver. 1 registered
[    0.475498] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.475498] PTP clock support registered
[    0.476667] EDAC MC: Ver: 3.0.0
[    0.478035] PCI: Using ACPI for IRQ routing
[    0.520242] PCI: pci_cache_line_size set to 64 bytes
[    0.521122] e820: reserve RAM buffer [mem 0x0009e800-0x0009ffff]
[    0.521125] e820: reserve RAM buffer [mem 0x7fee0000-0x7fffffff]
[    0.521667] NetLabel: Initializing
[    0.521667] NetLabel:  domain hash size = 128
[    0.521668] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    0.521676] NetLabel:  unlabeled traffic allowed by default
[    0.525406] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
[    0.525411] hpet0: 16 comparators, 64-bit 14.318180 MHz counter
[    0.528054] clocksource: Switched to clocksource tsc-early
[    0.568043] VFS: Disk quotas dquot_6.6.0
[    0.568101] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.568563] AppArmor: AppArmor Filesystem Enabled
[    0.568615] pnp: PnP ACPI init
[    0.568788] system 00:00: [io  0x1000-0x103f] has been reserved
[    0.568789] system 00:00: [io  0x1040-0x104f] has been reserved
[    0.568791] system 00:00: [io  0x0cf0-0x0cf1] has been reserved
[    0.568794] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.568849] pnp 00:01: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.568863] pnp 00:02: Plug and Play ACPI device, IDs PNP0303 (active)
[    0.568874] pnp 00:03: Plug and Play ACPI device, IDs VMW0003 PNP0f13 (active)
[    0.569084] system 00:04: [mem 0xfed00000-0xfed003ff] has been reserved
[    0.569087] system 00:04: Plug and Play ACPI device, IDs PNP0103 PNP0c01 (active)
[    0.570569] pnp 00:05: Plug and Play ACPI device, IDs PNP0501 (active)
[    0.570930] system 00:06: [io  0xfce0-0xfcff] has been reserved
[    0.570932] system 00:06: [mem 0xf0000000-0xf7ffffff] has been reserved
[    0.570933] system 00:06: [mem 0xfe800000-0xfe9fffff] has been reserved
[    0.570936] system 00:06: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.576178] pnp: PnP ACPI: found 7 devices
[    0.587471] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[    0.587764] pci 0000:00:15.3: bridge window [io  0x1000-0x0fff] to [bus 06] add_size 1000
[    0.587818] pci 0000:00:15.4: bridge window [io  0x1000-0x0fff] to [bus 07] add_size 1000
[    0.587871] pci 0000:00:15.5: bridge window [io  0x1000-0x0fff] to [bus 08] add_size 1000
[    0.587924] pci 0000:00:15.6: bridge window [io  0x1000-0x0fff] to [bus 09] add_size 1000
[    0.587978] pci 0000:00:15.7: bridge window [io  0x1000-0x0fff] to [bus 0a] add_size 1000
[    0.588193] pci 0000:00:16.3: bridge window [io  0x1000-0x0fff] to [bus 0e] add_size 1000
[    0.588246] pci 0000:00:16.4: bridge window [io  0x1000-0x0fff] to [bus 0f] add_size 1000
[    0.588300] pci 0000:00:16.5: bridge window [io  0x1000-0x0fff] to [bus 10] add_size 1000
[    0.588353] pci 0000:00:16.6: bridge window [io  0x1000-0x0fff] to [bus 11] add_size 1000
[    0.588406] pci 0000:00:16.7: bridge window [io  0x1000-0x0fff] to [bus 12] add_size 1000
[    0.588613] pci 0000:00:17.3: bridge window [io  0x1000-0x0fff] to [bus 16] add_size 1000
[    0.588666] pci 0000:00:17.4: bridge window [io  0x1000-0x0fff] to [bus 17] add_size 1000
[    0.588719] pci 0000:00:17.5: bridge window [io  0x1000-0x0fff] to [bus 18] add_size 1000
[    0.588772] pci 0000:00:17.6: bridge window [io  0x1000-0x0fff] to [bus 19] add_size 1000
[    0.588826] pci 0000:00:17.7: bridge window [io  0x1000-0x0fff] to [bus 1a] add_size 1000
[    0.588991] pci 0000:00:18.2: bridge window [io  0x1000-0x0fff] to [bus 1d] add_size 1000
[    0.589045] pci 0000:00:18.3: bridge window [io  0x1000-0x0fff] to [bus 1e] add_size 1000
[    0.589104] pci 0000:00:18.4: bridge window [io  0x1000-0x0fff] to [bus 1f] add_size 1000
[    0.589158] pci 0000:00:18.5: bridge window [io  0x1000-0x0fff] to [bus 20] add_size 1000
[    0.589211] pci 0000:00:18.6: bridge window [io  0x1000-0x0fff] to [bus 21] add_size 1000
[    0.589265] pci 0000:00:18.7: bridge window [io  0x1000-0x0fff] to [bus 22] add_size 1000
[    0.589312] pci 0000:00:0f.0: BAR 6: assigned [mem 0xc0000000-0xc0007fff pref]
[    0.589314] pci 0000:00:10.0: BAR 6: assigned [mem 0xc0008000-0xc000bfff pref]
[    0.589317] pci 0000:00:15.3: BAR 13: no space for [io  size 0x1000]
[    0.589318] pci 0000:00:15.3: BAR 13: failed to assign [io  size 0x1000]
[    0.589319] pci 0000:00:15.4: BAR 13: no space for [io  size 0x1000]
[    0.589320] pci 0000:00:15.4: BAR 13: failed to assign [io  size 0x1000]
[    0.589322] pci 0000:00:15.5: BAR 13: no space for [io  size 0x1000]
[    0.589322] pci 0000:00:15.5: BAR 13: failed to assign [io  size 0x1000]
[    0.589324] pci 0000:00:15.6: BAR 13: no space for [io  size 0x1000]
[    0.589324] pci 0000:00:15.6: BAR 13: failed to assign [io  size 0x1000]
[    0.589326] pci 0000:00:15.7: BAR 13: no space for [io  size 0x1000]
[    0.589327] pci 0000:00:15.7: BAR 13: failed to assign [io  size 0x1000]
[    0.589328] pci 0000:00:16.3: BAR 13: no space for [io  size 0x1000]
[    0.589329] pci 0000:00:16.3: BAR 13: failed to assign [io  size 0x1000]
[    0.589330] pci 0000:00:16.4: BAR 13: no space for [io  size 0x1000]
[    0.589331] pci 0000:00:16.4: BAR 13: failed to assign [io  size 0x1000]
[    0.589332] pci 0000:00:16.5: BAR 13: no space for [io  size 0x1000]
[    0.589333] pci 0000:00:16.5: BAR 13: failed to assign [io  size 0x1000]
[    0.589334] pci 0000:00:16.6: BAR 13: no space for [io  size 0x1000]
[    0.589335] pci 0000:00:16.6: BAR 13: failed to assign [io  size 0x1000]
[    0.589336] pci 0000:00:16.7: BAR 13: no space for [io  size 0x1000]
[    0.589337] pci 0000:00:16.7: BAR 13: failed to assign [io  size 0x1000]
[    0.589338] pci 0000:00:17.3: BAR 13: no space for [io  size 0x1000]
[    0.589339] pci 0000:00:17.3: BAR 13: failed to assign [io  size 0x1000]
[    0.589340] pci 0000:00:17.4: BAR 13: no space for [io  size 0x1000]
[    0.589341] pci 0000:00:17.4: BAR 13: failed to assign [io  size 0x1000]
[    0.589342] pci 0000:00:17.5: BAR 13: no space for [io  size 0x1000]
[    0.589343] pci 0000:00:17.5: BAR 13: failed to assign [io  size 0x1000]
[    0.589344] pci 0000:00:17.6: BAR 13: no space for [io  size 0x1000]
[    0.589345] pci 0000:00:17.6: BAR 13: failed to assign [io  size 0x1000]
[    0.589347] pci 0000:00:17.7: BAR 13: no space for [io  size 0x1000]
[    0.589347] pci 0000:00:17.7: BAR 13: failed to assign [io  size 0x1000]
[    0.589349] pci 0000:00:18.2: BAR 13: no space for [io  size 0x1000]
[    0.589349] pci 0000:00:18.2: BAR 13: failed to assign [io  size 0x1000]
[    0.589351] pci 0000:00:18.3: BAR 13: no space for [io  size 0x1000]
[    0.589351] pci 0000:00:18.3: BAR 13: failed to assign [io  size 0x1000]
[    0.589353] pci 0000:00:18.4: BAR 13: no space for [io  size 0x1000]
[    0.589353] pci 0000:00:18.4: BAR 13: failed to assign [io  size 0x1000]
[    0.589355] pci 0000:00:18.5: BAR 13: no space for [io  size 0x1000]
[    0.589355] pci 0000:00:18.5: BAR 13: failed to assign [io  size 0x1000]
[    0.589357] pci 0000:00:18.6: BAR 13: no space for [io  size 0x1000]
[    0.589357] pci 0000:00:18.6: BAR 13: failed to assign [io  size 0x1000]
[    0.589359] pci 0000:00:18.7: BAR 13: no space for [io  size 0x1000]
[    0.589359] pci 0000:00:18.7: BAR 13: failed to assign [io  size 0x1000]
[    0.589362] pci 0000:00:18.7: BAR 13: no space for [io  size 0x1000]
[    0.589363] pci 0000:00:18.7: BAR 13: failed to assign [io  size 0x1000]
[    0.589365] pci 0000:00:18.6: BAR 13: no space for [io  size 0x1000]
[    0.589365] pci 0000:00:18.6: BAR 13: failed to assign [io  size 0x1000]
[    0.589367] pci 0000:00:18.5: BAR 13: no space for [io  size 0x1000]
[    0.589367] pci 0000:00:18.5: BAR 13: failed to assign [io  size 0x1000]
[    0.589369] pci 0000:00:18.4: BAR 13: no space for [io  size 0x1000]
[    0.589369] pci 0000:00:18.4: BAR 13: failed to assign [io  size 0x1000]
[    0.589371] pci 0000:00:18.3: BAR 13: no space for [io  size 0x1000]
[    0.589371] pci 0000:00:18.3: BAR 13: failed to assign [io  size 0x1000]
[    0.589373] pci 0000:00:18.2: BAR 13: no space for [io  size 0x1000]
[    0.589374] pci 0000:00:18.2: BAR 13: failed to assign [io  size 0x1000]
[    0.589375] pci 0000:00:17.7: BAR 13: no space for [io  size 0x1000]
[    0.589376] pci 0000:00:17.7: BAR 13: failed to assign [io  size 0x1000]
[    0.589377] pci 0000:00:17.6: BAR 13: no space for [io  size 0x1000]
[    0.589378] pci 0000:00:17.6: BAR 13: failed to assign [io  size 0x1000]
[    0.589379] pci 0000:00:17.5: BAR 13: no space for [io  size 0x1000]
[    0.589380] pci 0000:00:17.5: BAR 13: failed to assign [io  size 0x1000]
[    0.589381] pci 0000:00:17.4: BAR 13: no space for [io  size 0x1000]
[    0.589382] pci 0000:00:17.4: BAR 13: failed to assign [io  size 0x1000]
[    0.589383] pci 0000:00:17.3: BAR 13: no space for [io  size 0x1000]
[    0.589384] pci 0000:00:17.3: BAR 13: failed to assign [io  size 0x1000]
[    0.589385] pci 0000:00:16.7: BAR 13: no space for [io  size 0x1000]
[    0.589386] pci 0000:00:16.7: BAR 13: failed to assign [io  size 0x1000]
[    0.589387] pci 0000:00:16.6: BAR 13: no space for [io  size 0x1000]
[    0.589388] pci 0000:00:16.6: BAR 13: failed to assign [io  size 0x1000]
[    0.589389] pci 0000:00:16.5: BAR 13: no space for [io  size 0x1000]
[    0.589390] pci 0000:00:16.5: BAR 13: failed to assign [io  size 0x1000]
[    0.589391] pci 0000:00:16.4: BAR 13: no space for [io  size 0x1000]
[    0.589392] pci 0000:00:16.4: BAR 13: failed to assign [io  size 0x1000]
[    0.589393] pci 0000:00:16.3: BAR 13: no space for [io  size 0x1000]
[    0.589394] pci 0000:00:16.3: BAR 13: failed to assign [io  size 0x1000]
[    0.589395] pci 0000:00:15.7: BAR 13: no space for [io  size 0x1000]
[    0.589396] pci 0000:00:15.7: BAR 13: failed to assign [io  size 0x1000]
[    0.589397] pci 0000:00:15.6: BAR 13: no space for [io  size 0x1000]
[    0.589398] pci 0000:00:15.6: BAR 13: failed to assign [io  size 0x1000]
[    0.589399] pci 0000:00:15.5: BAR 13: no space for [io  size 0x1000]
[    0.589400] pci 0000:00:15.5: BAR 13: failed to assign [io  size 0x1000]
[    0.589401] pci 0000:00:15.4: BAR 13: no space for [io  size 0x1000]
[    0.589402] pci 0000:00:15.4: BAR 13: failed to assign [io  size 0x1000]
[    0.589403] pci 0000:00:15.3: BAR 13: no space for [io  size 0x1000]
[    0.589404] pci 0000:00:15.3: BAR 13: failed to assign [io  size 0x1000]
[    0.589406] pci 0000:00:01.0: PCI bridge to [bus 01]
[    0.589489] pci 0000:02:01.0: BAR 6: assigned [mem 0xfd500000-0xfd50ffff pref]
[    0.589490] pci 0000:02:05.0: BAR 6: assigned [mem 0xfd510000-0xfd51ffff pref]
[    0.589491] pci 0000:00:11.0: PCI bridge to [bus 02]
[    0.589502] pci 0000:00:11.0:   bridge window [io  0x2000-0x3fff]
[    0.589529] pci 0000:00:11.0:   bridge window [mem 0xfd500000-0xfdffffff]
[    0.589547] pci 0000:00:11.0:   bridge window [mem 0xe7b00000-0xe7ffffff 64bit pref]
[    0.589583] pci 0000:00:15.0: PCI bridge to [bus 03]
[    0.589593] pci 0000:00:15.0:   bridge window [io  0x4000-0x4fff]
[    0.589620] pci 0000:00:15.0:   bridge window [mem 0xfd400000-0xfd4fffff]
[    0.589638] pci 0000:00:15.0:   bridge window [mem 0xe7a00000-0xe7afffff 64bit pref]
[    0.589706] pci 0000:00:15.1: PCI bridge to [bus 04]
[    0.589717] pci 0000:00:15.1:   bridge window [io  0x8000-0x8fff]
[    0.589744] pci 0000:00:15.1:   bridge window [mem 0xfd000000-0xfd0fffff]
[    0.589762] pci 0000:00:15.1:   bridge window [mem 0xe7600000-0xe76fffff 64bit pref]
[    0.589812] pci 0000:00:15.2: PCI bridge to [bus 05]
[    0.589822] pci 0000:00:15.2:   bridge window [io  0xc000-0xcfff]
[    0.589849] pci 0000:00:15.2:   bridge window [mem 0xfcc00000-0xfccfffff]
[    0.589867] pci 0000:00:15.2:   bridge window [mem 0xe7200000-0xe72fffff 64bit pref]
[    0.589916] pci 0000:00:15.3: PCI bridge to [bus 06]
[    0.589944] pci 0000:00:15.3:   bridge window [mem 0xfc800000-0xfc8fffff]
[    0.589962] pci 0000:00:15.3:   bridge window [mem 0xe6e00000-0xe6efffff 64bit pref]
[    0.590010] pci 0000:00:15.4: PCI bridge to [bus 07]
[    0.590038] pci 0000:00:15.4:   bridge window [mem 0xfc400000-0xfc4fffff]
[    0.590056] pci 0000:00:15.4:   bridge window [mem 0xe6a00000-0xe6afffff 64bit pref]
[    0.590108] pci 0000:00:15.5: PCI bridge to [bus 08]
[    0.590140] pci 0000:00:15.5:   bridge window [mem 0xfc000000-0xfc0fffff]
[    0.590165] pci 0000:00:15.5:   bridge window [mem 0xe6600000-0xe66fffff 64bit pref]
[    0.590213] pci 0000:00:15.6: PCI bridge to [bus 09]
[    0.590241] pci 0000:00:15.6:   bridge window [mem 0xfbc00000-0xfbcfffff]
[    0.590259] pci 0000:00:15.6:   bridge window [mem 0xe6200000-0xe62fffff 64bit pref]
[    0.590307] pci 0000:00:15.7: PCI bridge to [bus 0a]
[    0.590335] pci 0000:00:15.7:   bridge window [mem 0xfb800000-0xfb8fffff]
[    0.590353] pci 0000:00:15.7:   bridge window [mem 0xe5e00000-0xe5efffff 64bit pref]
[    0.590401] pci 0000:00:16.0: PCI bridge to [bus 0b]
[    0.590412] pci 0000:00:16.0:   bridge window [io  0x5000-0x5fff]
[    0.590438] pci 0000:00:16.0:   bridge window [mem 0xfd300000-0xfd3fffff]
[    0.590457] pci 0000:00:16.0:   bridge window [mem 0xe7900000-0xe79fffff 64bit pref]
[    0.590505] pci 0000:00:16.1: PCI bridge to [bus 0c]
[    0.590515] pci 0000:00:16.1:   bridge window [io  0x9000-0x9fff]
[    0.590542] pci 0000:00:16.1:   bridge window [mem 0xfcf00000-0xfcffffff]
[    0.590560] pci 0000:00:16.1:   bridge window [mem 0xe7500000-0xe75fffff 64bit pref]
[    0.590608] pci 0000:00:16.2: PCI bridge to [bus 0d]
[    0.590619] pci 0000:00:16.2:   bridge window [io  0xd000-0xdfff]
[    0.590646] pci 0000:00:16.2:   bridge window [mem 0xfcb00000-0xfcbfffff]
[    0.590664] pci 0000:00:16.2:   bridge window [mem 0xe7100000-0xe71fffff 64bit pref]
[    0.590712] pci 0000:00:16.3: PCI bridge to [bus 0e]
[    0.590739] pci 0000:00:16.3:   bridge window [mem 0xfc700000-0xfc7fffff]
[    0.590757] pci 0000:00:16.3:   bridge window [mem 0xe6d00000-0xe6dfffff 64bit pref]
[    0.590805] pci 0000:00:16.4: PCI bridge to [bus 0f]
[    0.590833] pci 0000:00:16.4:   bridge window [mem 0xfc300000-0xfc3fffff]
[    0.590851] pci 0000:00:16.4:   bridge window [mem 0xe6900000-0xe69fffff 64bit pref]
[    0.590899] pci 0000:00:16.5: PCI bridge to [bus 10]
[    0.590926] pci 0000:00:16.5:   bridge window [mem 0xfbf00000-0xfbffffff]
[    0.590944] pci 0000:00:16.5:   bridge window [mem 0xe6500000-0xe65fffff 64bit pref]
[    0.590992] pci 0000:00:16.6: PCI bridge to [bus 11]
[    0.591020] pci 0000:00:16.6:   bridge window [mem 0xfbb00000-0xfbbfffff]
[    0.591038] pci 0000:00:16.6:   bridge window [mem 0xe6100000-0xe61fffff 64bit pref]
[    0.591108] pci 0000:00:16.7: PCI bridge to [bus 12]
[    0.591138] pci 0000:00:16.7:   bridge window [mem 0xfb700000-0xfb7fffff]
[    0.591156] pci 0000:00:16.7:   bridge window [mem 0xe5d00000-0xe5dfffff 64bit pref]
[    0.591205] pci 0000:00:17.0: PCI bridge to [bus 13]
[    0.591216] pci 0000:00:17.0:   bridge window [io  0x6000-0x6fff]
[    0.591243] pci 0000:00:17.0:   bridge window [mem 0xfd200000-0xfd2fffff]
[    0.591261] pci 0000:00:17.0:   bridge window [mem 0xe7800000-0xe78fffff 64bit pref]
[    0.591310] pci 0000:00:17.1: PCI bridge to [bus 14]
[    0.591320] pci 0000:00:17.1:   bridge window [io  0xa000-0xafff]
[    0.591347] pci 0000:00:17.1:   bridge window [mem 0xfce00000-0xfcefffff]
[    0.591365] pci 0000:00:17.1:   bridge window [mem 0xe7400000-0xe74fffff 64bit pref]
[    0.591414] pci 0000:00:17.2: PCI bridge to [bus 15]
[    0.591424] pci 0000:00:17.2:   bridge window [io  0xe000-0xefff]
[    0.591451] pci 0000:00:17.2:   bridge window [mem 0xfca00000-0xfcafffff]
[    0.591469] pci 0000:00:17.2:   bridge window [mem 0xe7000000-0xe70fffff 64bit pref]
[    0.591517] pci 0000:00:17.3: PCI bridge to [bus 16]
[    0.591545] pci 0000:00:17.3:   bridge window [mem 0xfc600000-0xfc6fffff]
[    0.591563] pci 0000:00:17.3:   bridge window [mem 0xe6c00000-0xe6cfffff 64bit pref]
[    0.591610] pci 0000:00:17.4: PCI bridge to [bus 17]
[    0.591638] pci 0000:00:17.4:   bridge window [mem 0xfc200000-0xfc2fffff]
[    0.591656] pci 0000:00:17.4:   bridge window [mem 0xe6800000-0xe68fffff 64bit pref]
[    0.591704] pci 0000:00:17.5: PCI bridge to [bus 18]
[    0.591731] pci 0000:00:17.5:   bridge window [mem 0xfbe00000-0xfbefffff]
[    0.591749] pci 0000:00:17.5:   bridge window [mem 0xe6400000-0xe64fffff 64bit pref]
[    0.591797] pci 0000:00:17.6: PCI bridge to [bus 19]
[    0.591825] pci 0000:00:17.6:   bridge window [mem 0xfba00000-0xfbafffff]
[    0.591843] pci 0000:00:17.6:   bridge window [mem 0xe6000000-0xe60fffff 64bit pref]
[    0.591891] pci 0000:00:17.7: PCI bridge to [bus 1a]
[    0.591918] pci 0000:00:17.7:   bridge window [mem 0xfb600000-0xfb6fffff]
[    0.591936] pci 0000:00:17.7:   bridge window [mem 0xe5c00000-0xe5cfffff 64bit pref]
[    0.591984] pci 0000:00:18.0: PCI bridge to [bus 1b]
[    0.591994] pci 0000:00:18.0:   bridge window [io  0x7000-0x7fff]
[    0.592030] pci 0000:00:18.0:   bridge window [mem 0xfd100000-0xfd1fffff]
[    0.592048] pci 0000:00:18.0:   bridge window [mem 0xe7700000-0xe77fffff 64bit pref]
[    0.592098] pci 0000:00:18.1: PCI bridge to [bus 1c]
[    0.592109] pci 0000:00:18.1:   bridge window [io  0xb000-0xbfff]
[    0.592136] pci 0000:00:18.1:   bridge window [mem 0xfcd00000-0xfcdfffff]
[    0.592154] pci 0000:00:18.1:   bridge window [mem 0xe7300000-0xe73fffff 64bit pref]
[    0.592202] pci 0000:00:18.2: PCI bridge to [bus 1d]
[    0.592230] pci 0000:00:18.2:   bridge window [mem 0xfc900000-0xfc9fffff]
[    0.592248] pci 0000:00:18.2:   bridge window [mem 0xe6f00000-0xe6ffffff 64bit pref]
[    0.592295] pci 0000:00:18.3: PCI bridge to [bus 1e]
[    0.592323] pci 0000:00:18.3:   bridge window [mem 0xfc500000-0xfc5fffff]
[    0.592341] pci 0000:00:18.3:   bridge window [mem 0xe6b00000-0xe6bfffff 64bit pref]
[    0.592396] pci 0000:00:18.4: PCI bridge to [bus 1f]
[    0.592424] pci 0000:00:18.4:   bridge window [mem 0xfc100000-0xfc1fffff]
[    0.592442] pci 0000:00:18.4:   bridge window [mem 0xe6700000-0xe67fffff 64bit pref]
[    0.592489] pci 0000:00:18.5: PCI bridge to [bus 20]
[    0.592517] pci 0000:00:18.5:   bridge window [mem 0xfbd00000-0xfbdfffff]
[    0.592535] pci 0000:00:18.5:   bridge window [mem 0xe6300000-0xe63fffff 64bit pref]
[    0.592583] pci 0000:00:18.6: PCI bridge to [bus 21]
[    0.592611] pci 0000:00:18.6:   bridge window [mem 0xfb900000-0xfb9fffff]
[    0.592629] pci 0000:00:18.6:   bridge window [mem 0xe5f00000-0xe5ffffff 64bit pref]
[    0.592677] pci 0000:00:18.7: PCI bridge to [bus 22]
[    0.592704] pci 0000:00:18.7:   bridge window [mem 0xfb500000-0xfb5fffff]
[    0.592722] pci 0000:00:18.7:   bridge window [mem 0xe5b00000-0xe5bfffff 64bit pref]
[    0.592771] pci_bus 0000:00: resource 4 [mem 0x000a0000-0x000bffff window]
[    0.592772] pci_bus 0000:00: resource 5 [mem 0x000d0000-0x000d3fff window]
[    0.592772] pci_bus 0000:00: resource 6 [mem 0x000d4000-0x000d7fff window]
[    0.592773] pci_bus 0000:00: resource 7 [mem 0x000d8000-0x000dbfff window]
[    0.592774] pci_bus 0000:00: resource 8 [mem 0xc0000000-0xfebfffff window]
[    0.592775] pci_bus 0000:00: resource 9 [io  0x0000-0x0cf7 window]
[    0.592776] pci_bus 0000:00: resource 10 [io  0x0d00-0xfeff window]
[    0.592777] pci_bus 0000:02: resource 0 [io  0x2000-0x3fff]
[    0.592778] pci_bus 0000:02: resource 1 [mem 0xfd500000-0xfdffffff]
[    0.592778] pci_bus 0000:02: resource 2 [mem 0xe7b00000-0xe7ffffff 64bit pref]
[    0.592779] pci_bus 0000:02: resource 4 [mem 0x000a0000-0x000bffff window]
[    0.592780] pci_bus 0000:02: resource 5 [mem 0x000d0000-0x000d3fff window]
[    0.592781] pci_bus 0000:02: resource 6 [mem 0x000d4000-0x000d7fff window]
[    0.592782] pci_bus 0000:02: resource 7 [mem 0x000d8000-0x000dbfff window]
[    0.592783] pci_bus 0000:02: resource 8 [mem 0xc0000000-0xfebfffff window]
[    0.592783] pci_bus 0000:02: resource 9 [io  0x0000-0x0cf7 window]
[    0.592784] pci_bus 0000:02: resource 10 [io  0x0d00-0xfeff window]
[    0.592785] pci_bus 0000:03: resource 0 [io  0x4000-0x4fff]
[    0.592786] pci_bus 0000:03: resource 1 [mem 0xfd400000-0xfd4fffff]
[    0.592787] pci_bus 0000:03: resource 2 [mem 0xe7a00000-0xe7afffff 64bit pref]
[    0.592788] pci_bus 0000:04: resource 0 [io  0x8000-0x8fff]
[    0.592788] pci_bus 0000:04: resource 1 [mem 0xfd000000-0xfd0fffff]
[    0.592789] pci_bus 0000:04: resource 2 [mem 0xe7600000-0xe76fffff 64bit pref]
[    0.592790] pci_bus 0000:05: resource 0 [io  0xc000-0xcfff]
[    0.592791] pci_bus 0000:05: resource 1 [mem 0xfcc00000-0xfccfffff]
[    0.592792] pci_bus 0000:05: resource 2 [mem 0xe7200000-0xe72fffff 64bit pref]
[    0.592792] pci_bus 0000:06: resource 1 [mem 0xfc800000-0xfc8fffff]
[    0.592793] pci_bus 0000:06: resource 2 [mem 0xe6e00000-0xe6efffff 64bit pref]
[    0.592794] pci_bus 0000:07: resource 1 [mem 0xfc400000-0xfc4fffff]
[    0.592795] pci_bus 0000:07: resource 2 [mem 0xe6a00000-0xe6afffff 64bit pref]
[    0.592796] pci_bus 0000:08: resource 1 [mem 0xfc000000-0xfc0fffff]
[    0.592797] pci_bus 0000:08: resource 2 [mem 0xe6600000-0xe66fffff 64bit pref]
[    0.592798] pci_bus 0000:09: resource 1 [mem 0xfbc00000-0xfbcfffff]
[    0.592798] pci_bus 0000:09: resource 2 [mem 0xe6200000-0xe62fffff 64bit pref]
[    0.592799] pci_bus 0000:0a: resource 1 [mem 0xfb800000-0xfb8fffff]
[    0.592800] pci_bus 0000:0a: resource 2 [mem 0xe5e00000-0xe5efffff 64bit pref]
[    0.592801] pci_bus 0000:0b: resource 0 [io  0x5000-0x5fff]
[    0.592802] pci_bus 0000:0b: resource 1 [mem 0xfd300000-0xfd3fffff]
[    0.592802] pci_bus 0000:0b: resource 2 [mem 0xe7900000-0xe79fffff 64bit pref]
[    0.592803] pci_bus 0000:0c: resource 0 [io  0x9000-0x9fff]
[    0.592804] pci_bus 0000:0c: resource 1 [mem 0xfcf00000-0xfcffffff]
[    0.592805] pci_bus 0000:0c: resource 2 [mem 0xe7500000-0xe75fffff 64bit pref]
[    0.592806] pci_bus 0000:0d: resource 0 [io  0xd000-0xdfff]
[    0.592806] pci_bus 0000:0d: resource 1 [mem 0xfcb00000-0xfcbfffff]
[    0.592807] pci_bus 0000:0d: resource 2 [mem 0xe7100000-0xe71fffff 64bit pref]
[    0.592808] pci_bus 0000:0e: resource 1 [mem 0xfc700000-0xfc7fffff]
[    0.592809] pci_bus 0000:0e: resource 2 [mem 0xe6d00000-0xe6dfffff 64bit pref]
[    0.592809] pci_bus 0000:0f: resource 1 [mem 0xfc300000-0xfc3fffff]
[    0.592810] pci_bus 0000:0f: resource 2 [mem 0xe6900000-0xe69fffff 64bit pref]
[    0.592811] pci_bus 0000:10: resource 1 [mem 0xfbf00000-0xfbffffff]
[    0.592812] pci_bus 0000:10: resource 2 [mem 0xe6500000-0xe65fffff 64bit pref]
[    0.592813] pci_bus 0000:11: resource 1 [mem 0xfbb00000-0xfbbfffff]
[    0.592814] pci_bus 0000:11: resource 2 [mem 0xe6100000-0xe61fffff 64bit pref]
[    0.592814] pci_bus 0000:12: resource 1 [mem 0xfb700000-0xfb7fffff]
[    0.592815] pci_bus 0000:12: resource 2 [mem 0xe5d00000-0xe5dfffff 64bit pref]
[    0.592816] pci_bus 0000:13: resource 0 [io  0x6000-0x6fff]
[    0.592817] pci_bus 0000:13: resource 1 [mem 0xfd200000-0xfd2fffff]
[    0.592818] pci_bus 0000:13: resource 2 [mem 0xe7800000-0xe78fffff 64bit pref]
[    0.592818] pci_bus 0000:14: resource 0 [io  0xa000-0xafff]
[    0.592819] pci_bus 0000:14: resource 1 [mem 0xfce00000-0xfcefffff]
[    0.592820] pci_bus 0000:14: resource 2 [mem 0xe7400000-0xe74fffff 64bit pref]
[    0.592821] pci_bus 0000:15: resource 0 [io  0xe000-0xefff]
[    0.592822] pci_bus 0000:15: resource 1 [mem 0xfca00000-0xfcafffff]
[    0.592822] pci_bus 0000:15: resource 2 [mem 0xe7000000-0xe70fffff 64bit pref]
[    0.592823] pci_bus 0000:16: resource 1 [mem 0xfc600000-0xfc6fffff]
[    0.592824] pci_bus 0000:16: resource 2 [mem 0xe6c00000-0xe6cfffff 64bit pref]
[    0.592825] pci_bus 0000:17: resource 1 [mem 0xfc200000-0xfc2fffff]
[    0.592826] pci_bus 0000:17: resource 2 [mem 0xe6800000-0xe68fffff 64bit pref]
[    0.592826] pci_bus 0000:18: resource 1 [mem 0xfbe00000-0xfbefffff]
[    0.592827] pci_bus 0000:18: resource 2 [mem 0xe6400000-0xe64fffff 64bit pref]
[    0.592828] pci_bus 0000:19: resource 1 [mem 0xfba00000-0xfbafffff]
[    0.592829] pci_bus 0000:19: resource 2 [mem 0xe6000000-0xe60fffff 64bit pref]
[    0.592830] pci_bus 0000:1a: resource 1 [mem 0xfb600000-0xfb6fffff]
[    0.592830] pci_bus 0000:1a: resource 2 [mem 0xe5c00000-0xe5cfffff 64bit pref]
[    0.592831] pci_bus 0000:1b: resource 0 [io  0x7000-0x7fff]
[    0.592832] pci_bus 0000:1b: resource 1 [mem 0xfd100000-0xfd1fffff]
[    0.592833] pci_bus 0000:1b: resource 2 [mem 0xe7700000-0xe77fffff 64bit pref]
[    0.592834] pci_bus 0000:1c: resource 0 [io  0xb000-0xbfff]
[    0.592834] pci_bus 0000:1c: resource 1 [mem 0xfcd00000-0xfcdfffff]
[    0.592835] pci_bus 0000:1c: resource 2 [mem 0xe7300000-0xe73fffff 64bit pref]
[    0.592836] pci_bus 0000:1d: resource 1 [mem 0xfc900000-0xfc9fffff]
[    0.592837] pci_bus 0000:1d: resource 2 [mem 0xe6f00000-0xe6ffffff 64bit pref]
[    0.592838] pci_bus 0000:1e: resource 1 [mem 0xfc500000-0xfc5fffff]
[    0.592838] pci_bus 0000:1e: resource 2 [mem 0xe6b00000-0xe6bfffff 64bit pref]
[    0.592839] pci_bus 0000:1f: resource 1 [mem 0xfc100000-0xfc1fffff]
[    0.592840] pci_bus 0000:1f: resource 2 [mem 0xe6700000-0xe67fffff 64bit pref]
[    0.592841] pci_bus 0000:20: resource 1 [mem 0xfbd00000-0xfbdfffff]
[    0.592842] pci_bus 0000:20: resource 2 [mem 0xe6300000-0xe63fffff 64bit pref]
[    0.592842] pci_bus 0000:21: resource 1 [mem 0xfb900000-0xfb9fffff]
[    0.592843] pci_bus 0000:21: resource 2 [mem 0xe5f00000-0xe5ffffff 64bit pref]
[    0.592844] pci_bus 0000:22: resource 1 [mem 0xfb500000-0xfb5fffff]
[    0.592845] pci_bus 0000:22: resource 2 [mem 0xe5b00000-0xe5bfffff 64bit pref]
[    0.593153] NET: Registered protocol family 2
[    0.594967] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes)
[    0.595046] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[    0.595572] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
[    0.596475] TCP: Hash tables configured (established 16384 bind 16384)
[    0.597722] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[    0.597852] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[    0.598955] NET: Registered protocol family 1
[    0.598958] NET: Registered protocol family 44
[    0.598962] pci 0000:00:00.0: Limiting direct PCI/PCI transfers
[    0.599060] pci 0000:00:0f.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]
[    0.600368] PCI: CLS mismatch (32 != 64), using 64 bytes
[    0.601117] Unpacking initramfs...
[    1.806608] Freeing initrd memory: 56136K
[    1.806958] Scanning for low memory corruption every 60 seconds
[    1.809865] Initialise system trusted keyrings
[    1.809873] Key type blacklist registered
[    1.810176] workingset: timestamp_bits=36 max_order=19 bucket_order=0
[    1.812864] zbud: loaded
[    1.813937] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.814289] fuse init (API version 7.27)
[    1.814458] pstore: using deflate compression
[    1.820005] Key type asymmetric registered
[    1.820006] Asymmetric key parser 'x509' registered
[    1.820038] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[    1.820312] io scheduler noop registered
[    1.820312] io scheduler deadline registered
[    1.820369] io scheduler cfq registered (default)
[    1.837885] pcieport 0000:00:15.0: Signaling PME with IRQ 24
[    1.838046] pcieport 0000:00:15.1: Signaling PME with IRQ 25
[    1.838206] pcieport 0000:00:15.2: Signaling PME with IRQ 26
[    1.838366] pcieport 0000:00:15.3: Signaling PME with IRQ 27
[    1.838527] pcieport 0000:00:15.4: Signaling PME with IRQ 28
[    1.838686] pcieport 0000:00:15.5: Signaling PME with IRQ 29
[    1.838847] pcieport 0000:00:15.6: Signaling PME with IRQ 30
[    1.839007] pcieport 0000:00:15.7: Signaling PME with IRQ 31
[    1.839167] pcieport 0000:00:16.0: Signaling PME with IRQ 32
[    1.839334] pcieport 0000:00:16.1: Signaling PME with IRQ 33
[    1.839502] pcieport 0000:00:16.2: Signaling PME with IRQ 34
[    1.839664] pcieport 0000:00:16.3: Signaling PME with IRQ 35
[    1.839832] pcieport 0000:00:16.4: Signaling PME with IRQ 36
[    1.839992] pcieport 0000:00:16.5: Signaling PME with IRQ 37
[    1.840161] pcieport 0000:00:16.6: Signaling PME with IRQ 38
[    1.840322] pcieport 0000:00:16.7: Signaling PME with IRQ 39
[    1.840483] pcieport 0000:00:17.0: Signaling PME with IRQ 40
[    1.840644] pcieport 0000:00:17.1: Signaling PME with IRQ 41
[    1.840816] pcieport 0000:00:17.2: Signaling PME with IRQ 42
[    1.840978] pcieport 0000:00:17.3: Signaling PME with IRQ 43
[    1.841137] pcieport 0000:00:17.4: Signaling PME with IRQ 44
[    1.841296] pcieport 0000:00:17.5: Signaling PME with IRQ 45
[    1.841455] pcieport 0000:00:17.6: Signaling PME with IRQ 46
[    1.841614] pcieport 0000:00:17.7: Signaling PME with IRQ 47
[    1.841775] pcieport 0000:00:18.0: Signaling PME with IRQ 48
[    1.841935] pcieport 0000:00:18.1: Signaling PME with IRQ 49
[    1.842096] pcieport 0000:00:18.2: Signaling PME with IRQ 50
[    1.842255] pcieport 0000:00:18.3: Signaling PME with IRQ 51
[    1.842415] pcieport 0000:00:18.4: Signaling PME with IRQ 52
[    1.842574] pcieport 0000:00:18.5: Signaling PME with IRQ 53
[    1.842734] pcieport 0000:00:18.6: Signaling PME with IRQ 54
[    1.842893] pcieport 0000:00:18.7: Signaling PME with IRQ 55
[    1.842955] pciehp 0000:00:15.0:pcie004: Slot #160 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.843046] pciehp 0000:00:15.1:pcie004: Slot #161 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.843130] pciehp 0000:00:15.2:pcie004: Slot #162 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.843213] pciehp 0000:00:15.3:pcie004: Slot #163 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.843294] pciehp 0000:00:15.4:pcie004: Slot #164 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.843378] pciehp 0000:00:15.5:pcie004: Slot #165 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.843460] pciehp 0000:00:15.6:pcie004: Slot #166 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.843542] pciehp 0000:00:15.7:pcie004: Slot #167 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.843624] pciehp 0000:00:16.0:pcie004: Slot #192 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.843708] pciehp 0000:00:16.1:pcie004: Slot #193 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.843799] pciehp 0000:00:16.2:pcie004: Slot #194 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.843881] pciehp 0000:00:16.3:pcie004: Slot #195 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.843963] pciehp 0000:00:16.4:pcie004: Slot #196 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.844053] pciehp 0000:00:16.5:pcie004: Slot #197 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.844135] pciehp 0000:00:16.6:pcie004: Slot #198 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.844218] pciehp 0000:00:16.7:pcie004: Slot #199 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.844300] pciehp 0000:00:17.0:pcie004: Slot #224 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.844383] pciehp 0000:00:17.1:pcie004: Slot #225 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.844466] pciehp 0000:00:17.2:pcie004: Slot #226 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.844548] pciehp 0000:00:17.3:pcie004: Slot #227 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.844630] pciehp 0000:00:17.4:pcie004: Slot #228 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.844712] pciehp 0000:00:17.5:pcie004: Slot #229 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.844803] pciehp 0000:00:17.6:pcie004: Slot #230 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.844886] pciehp 0000:00:17.7:pcie004: Slot #231 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.844968] pciehp 0000:00:18.0:pcie004: Slot #256 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.845051] pciehp 0000:00:18.1:pcie004: Slot #257 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.845133] pciehp 0000:00:18.2:pcie004: Slot #258 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.845215] pciehp 0000:00:18.3:pcie004: Slot #259 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.845297] pciehp 0000:00:18.4:pcie004: Slot #260 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.845381] pciehp 0000:00:18.5:pcie004: Slot #261 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.845463] pciehp 0000:00:18.6:pcie004: Slot #262 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.845546] pciehp 0000:00:18.7:pcie004: Slot #263 AttnBtn+ PwrCtrl+ MRL- AttnInd- PwrInd- HotPlug+ Surprise- Interlock- NoCompl+ LLActRep+
[    1.845618] shpchp 0000:00:01.0: Cannot get control of SHPC hotplug
[    1.845633] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[    1.845689] intel_idle: Please enable MWAIT in BIOS SETUP
[    1.845949] ACPI: AC Adapter [ACAD] (on-line)
[    1.846030] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
[    1.846058] ACPI: Power Button [PWRF]
[    1.847175] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[    1.870131] 00:05: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    1.874494] Linux agpgart interface v0.103
[    1.874619] agpgart-intel 0000:00:00.0: Intel 440BX Chipset
[    1.875392] agpgart-intel 0000:00:00.0: AGP aperture is 256M @ 0x0
[    1.897431] loop: module loaded
[    1.897515] ata_piix 0000:00:07.1: version 2.13
[    1.898057] scsi host0: ata_piix
[    1.898500] scsi host1: ata_piix
[    1.898522] ata1: PATA max UDMA/33 cmd 0x1f0 ctl 0x3f6 bmdma 0x1060 irq 14
[    1.898523] ata2: PATA max UDMA/33 cmd 0x170 ctl 0x376 bmdma 0x1068 irq 15
[    1.898624] libphy: Fixed MDIO Bus: probed
[    1.898625] tun: Universal TUN/TAP device driver, 1.6
[    1.898648] PPP generic driver version 2.4.2
[    1.898671] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.898672] ehci-pci: EHCI PCI platform driver
[    1.899097] ehci-pci 0000:02:03.0: EHCI Host Controller
[    1.899101] ehci-pci 0000:02:03.0: new USB bus registered, assigned bus number 1
[    1.899245] ehci-pci 0000:02:03.0: cache line size of 64 is not supported
[    1.899255] ehci-pci 0000:02:03.0: irq 17, io mem 0xfd5ef000
[    1.912836] ehci-pci 0000:02:03.0: USB 2.0 started, EHCI 1.00
[    1.912884] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.18
[    1.912885] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.912886] usb usb1: Product: EHCI Host Controller
[    1.912887] usb usb1: Manufacturer: Linux 4.18.0-15-generic ehci_hcd
[    1.912887] usb usb1: SerialNumber: 0000:02:03.0
[    1.912952] hub 1-0:1.0: USB hub found
[    1.912956] hub 1-0:1.0: 6 ports detected
[    1.913089] ehci-platform: EHCI generic platform driver
[    1.913097] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.913099] ohci-pci: OHCI PCI platform driver
[    1.913108] ohci-platform: OHCI generic platform driver
[    1.913112] uhci_hcd: USB Universal Host Controller Interface driver
[    1.913476] uhci_hcd 0000:02:00.0: UHCI Host Controller
[    1.913479] uhci_hcd 0000:02:00.0: new USB bus registered, assigned bus number 2
[    1.913519] uhci_hcd 0000:02:00.0: detected 2 ports
[    1.913678] uhci_hcd 0000:02:00.0: irq 18, io base 0x00002080
[    1.913775] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 4.18
[    1.913776] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.913777] usb usb2: Product: UHCI Host Controller
[    1.913777] usb usb2: Manufacturer: Linux 4.18.0-15-generic uhci_hcd
[    1.913778] usb usb2: SerialNumber: 0000:02:00.0
[    1.913829] hub 2-0:1.0: USB hub found
[    1.913832] hub 2-0:1.0: 2 ports detected
[    1.913978] i8042: PNP: PS/2 Controller [PNP0303:KBC,PNP0f13:MOUS] at 0x60,0x64 irq 1,12
[    1.914732] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.914736] serio: i8042 AUX port at 0x60,0x64 irq 12
[    1.914798] mousedev: PS/2 mouse device common for all mice
[    1.935201] rtc_cmos 00:01: registered as rtc0
[    1.935216] rtc_cmos 00:01: alarms up to one month, y3k, 114 bytes nvram, hpet irqs
[    1.935224] i2c /dev entries driver
[    1.935228] pcie_mp2_amd: AMD(R) PCI-E MP2 Communication Driver Version: 1.0
[    1.935296] device-mapper: uevent: version 1.0.3
[    1.935359] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com
[    1.935780] ledtrig-cpu: registered to indicate activity on CPUs
[    1.936334] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input1
[    1.937258] NET: Registered protocol family 10
[    1.942189] Segment Routing with IPv6
[    1.942210] NET: Registered protocol family 17
[    1.942338] Key type dns_resolver registered
[    1.942818] RAS: Correctable Errors collector initialized.
[    1.942825] sched_clock: Marking stable (1942746459, 0)->(2180753168, -238006709)
[    1.944234] registered taskstats version 1
[    1.944241] Loading compiled-in X.509 certificates
[    1.946980] Loaded X.509 cert 'Build time autogenerated kernel key: 93c6e076713d738d171f44766725faeef9510f02'
[    1.947004] zswap: loaded using pool lzo/zbud
[    1.951001] Key type big_key registered
[    1.951003] Key type trusted registered
[    1.952522] Key type encrypted registered
[    1.952524] AppArmor: AppArmor sha1 policy hashing enabled
[    1.952528] ima: No TPM chip found, activating TPM-bypass! (rc=-19)
[    1.952531] ima: Allocated hash algorithm: sha1
[    1.952539] evm: Initialising EVM extended attributes:
[    1.952539] evm: security.selinux
[    1.952539] evm: security.SMACK64
[    1.952540] evm: security.SMACK64EXEC
[    1.952540] evm: security.SMACK64TRANSMUTE
[    1.952540] evm: security.SMACK64MMAP
[    1.952540] evm: security.apparmor
[    1.952541] evm: security.ima
[    1.952541] evm: security.capability
[    1.952541] evm: HMAC attrs: 0x1
[    1.953967]   Magic number: 0:297:134
[    1.954087] acpi device:09: hash matches
[    1.954248] rtc_cmos 00:01: setting system clock to 2020-04-22 15:08:15 UTC (1587568095)
[    2.080169] Freeing unused kernel image memory: 2464K
[    2.092253] Write protecting the kernel read-only data: 20480k
[    2.093081] Freeing unused kernel image memory: 2008K
[    2.093614] Freeing unused kernel image memory: 1784K
[    2.098952] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[    2.098952] x86/mm: Checking user space page tables
[    2.103931] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[    2.234186] piix4_smbus 0000:00:07.3: SMBus Host Controller not enabled!
[    2.235684] Fusion MPT base driver 3.04.20
[    2.235685] Copyright (c) 1999-2008 LSI Corporation
[    2.237711] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
[    2.237712] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    2.238741] Fusion MPT SPI Host driver 3.04.20
[    2.239170] input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input4
[    2.239549] mptbase: ioc0: Initiating bringup
[    2.239977] input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input3
[    2.242450] ahci 0000:02:05.0: version 3.0
[    2.243414] ahci 0000:02:05.0: AHCI 0001.0300 32 slots 30 ports 6 Gbps 0x3fffffff impl SATA mode
[    2.243416] ahci 0000:02:05.0: flags: 64bit ncq clo only 
[    2.245668] scsi host2: ahci
[    2.245823] scsi host3: ahci
[    2.246481] scsi host4: ahci
[    2.248928] scsi host5: ahci
[    2.249107] scsi host6: ahci
[    2.249196] scsi host7: ahci
[    2.251838] scsi host8: ahci
[    2.251925] scsi host9: ahci
[    2.253236] usb 2-1: new full-speed USB device number 2 using uhci_hcd
[    2.255189] scsi host10: ahci
[    2.255291] scsi host11: ahci
[    2.255383] scsi host12: ahci
[    2.255632] scsi host13: ahci
[    2.255676] [drm] DMA map mode: Using physical TTM page addresses.
[    2.255778] [drm] Capabilities:
[    2.255778] [drm]   Rect copy.
[    2.255778] [drm]   Cursor.
[    2.255779] [drm]   Cursor bypass.
[    2.255779] [drm]   Cursor bypass 2.
[    2.255779] [drm]   8bit emulation.
[    2.255779] [drm]   Alpha cursor.
[    2.255779] [drm]   3D.
[    2.255780] [drm]   Extended Fifo.
[    2.255780] [drm]   Multimon.
[    2.255780] [drm]   Pitchlock.
[    2.255780] [drm]   Irq mask.
[    2.255780] [drm]   Display Topology.
[    2.255781] [drm]   GMR.
[    2.255781] [drm]   Traces.
[    2.255781] [drm]   GMR2.
[    2.255782] [drm]   Screen Object 2.
[    2.255782] [drm]   Command Buffers.
[    2.255782] [drm]   Command Buffers 2.
[    2.255782] [drm]   Guest Backed Resources.
[    2.255782] [drm]   DX Features.
[    2.255783] [drm]   HP Command Queue.
[    2.255783] [drm] Max GMR ids is 64
[    2.255783] [drm] Max number of GMR pages is 65536
[    2.255784] [drm] Max dedicated hypervisor surface memory is 0 kiB
[    2.255784] [drm] Maximum display memory size is 131072 kiB
[    2.255785] [drm] VRAM at 0xe8000000 size is 4096 kiB
[    2.255785] [drm] MMIO at 0xfe000000 size is 256 kiB
[    2.255786] [drm] global init.
[    2.255904] scsi host14: ahci
[    2.255917] [TTM] Zone  kernel: Available graphics memory: 1008562 kiB
[    2.255918] [TTM] Initializing pool allocator
[    2.255920] [TTM] Initializing DMA pool allocator
[    2.256241] scsi host15: ahci
[    2.256354] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    2.256355] [drm] No driver support for vblank timestamp query.
[    2.256545] [drm] Screen Target Display device initialized
[    2.256574] [drm] width 640
[    2.256579] [drm] height 480
[    2.256583] [drm] bpp 32
[    2.256766] scsi host16: ahci
[    2.256964] scsi host17: ahci
[    2.257305] scsi host18: ahci
[    2.257695] scsi host19: ahci
[    2.258009] scsi host20: ahci
[    2.258332] scsi host21: ahci
[    2.258566] scsi host22: ahci
[    2.258750] scsi host23: ahci
[    2.258925] scsi host24: ahci
[    2.259071] scsi host25: ahci
[    2.259222] scsi host26: ahci
[    2.259409] scsi host27: ahci
[    2.259650] scsi host28: ahci
[    2.259804] scsi host29: ahci
[    2.259906] [drm] Fifo max 0x00040000 min 0x00001000 cap 0x0000077f
[    2.259919] scsi host30: ahci
[    2.260103] scsi host31: ahci
[    2.260135] ata3: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee100 irq 56
[    2.260137] ata4: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee180 irq 56
[    2.260138] ata5: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee200 irq 56
[    2.260139] ata6: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee280 irq 56
[    2.260140] ata7: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee300 irq 56
[    2.260141] ata8: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee380 irq 56
[    2.260143] ata9: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee400 irq 56
[    2.260144] ata10: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee480 irq 56
[    2.260145] ata11: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee500 irq 56
[    2.260146] ata12: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee580 irq 56
[    2.260147] ata13: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee600 irq 56
[    2.260148] ata14: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee680 irq 56
[    2.260149] ata15: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee700 irq 56
[    2.260150] ata16: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee780 irq 56
[    2.260151] ata17: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee800 irq 56
[    2.260153] ata18: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee880 irq 56
[    2.260154] ata19: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee900 irq 56
[    2.260154] ata20: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5ee980 irq 56
[    2.260155] ata21: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5eea00 irq 56
[    2.260156] ata22: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5eea80 irq 56
[    2.260157] ata23: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5eeb00 irq 56
[    2.260158] ata24: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5eeb80 irq 56
[    2.260160] ata25: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5eec00 irq 56
[    2.260161] ata26: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5eec80 irq 56
[    2.260162] ata27: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5eed00 irq 56
[    2.260163] ata28: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5eed80 irq 56
[    2.260163] ata29: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5eee00 irq 56
[    2.260164] ata30: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5eee80 irq 56
[    2.260165] ata31: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5eef00 irq 56
[    2.260166] ata32: SATA max UDMA/133 abar m4096@0xfd5ee000 port 0xfd5eef80 irq 56
[    2.260819] [drm] Using command buffers with DMA pool.
[    2.260824] [drm] DX: yes.
[    2.260824] [drm] Atomic: yes
[    2.264850] fbcon: svgadrmfb (fb0) is primary device
[    2.268772] Console: switching to colour frame buffer device 100x37
[    2.282203] [drm] Initialized vmwgfx 2.14.1 20180322 for 0000:00:0f.0 on minor 0
[    2.344511] ioc0: LSI53C1030 B0: Capabilities={Initiator}
[    2.445650] usb 2-1: New USB device found, idVendor=0e0f, idProduct=0003, bcdDevice= 1.03
[    2.445651] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.445652] usb 2-1: Product: VMware Virtual USB Mouse
[    2.445653] usb 2-1: Manufacturer: VMware
[    2.574758] ata6: SATA link down (SStatus 0 SControl 300)
[    2.574808] ata4: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    2.574873] ata7: SATA link down (SStatus 0 SControl 300)
[    2.574926] ata8: SATA link down (SStatus 0 SControl 300)
[    2.574944] ata5: SATA link down (SStatus 0 SControl 300)
[    2.574951] ata4.00: ATAPI: VMware Virtual SATA CDRW Drive, 00000001, max UDMA/33
[    2.574997] ata3: SATA link down (SStatus 0 SControl 300)
[    2.575217] ata4.00: configured for UDMA/33
[    2.575694] scsi 3:0:0:0: CD-ROM            NECVMWar VMware SATA CD01 1.00 PQ: 0 ANSI: 5
[    2.577777] ata9: SATA link down (SStatus 0 SControl 300)
[    2.577798] ata10: SATA link down (SStatus 0 SControl 300)
[    2.581004] ata14: SATA link down (SStatus 0 SControl 300)
[    2.583752] ata15: SATA link down (SStatus 0 SControl 300)
[    2.583775] ata13: SATA link down (SStatus 0 SControl 300)
[    2.583784] ata19: SATA link down (SStatus 0 SControl 300)
[    2.583792] ata12: SATA link down (SStatus 0 SControl 300)
[    2.583812] ata16: SATA link down (SStatus 0 SControl 300)
[    2.583819] ata11: SATA link down (SStatus 0 SControl 300)
[    2.584797] usb 2-2: new full-speed USB device number 3 using uhci_hcd
[    2.586771] ata24: SATA link down (SStatus 0 SControl 300)
[    2.586783] ata22: SATA link down (SStatus 0 SControl 300)
[    2.586801] ata25: SATA link down (SStatus 0 SControl 300)
[    2.586820] ata29: SATA link down (SStatus 0 SControl 300)
[    2.586828] ata18: SATA link down (SStatus 0 SControl 300)
[    2.586841] ata23: SATA link down (SStatus 0 SControl 300)
[    2.586860] ata30: SATA link down (SStatus 0 SControl 300)
[    2.586868] ata17: SATA link down (SStatus 0 SControl 300)
[    2.586881] ata27: SATA link down (SStatus 0 SControl 300)
[    2.586898] ata26: SATA link down (SStatus 0 SControl 300)
[    2.586905] ata20: SATA link down (SStatus 0 SControl 300)
[    2.586918] ata28: SATA link down (SStatus 0 SControl 300)
[    2.586935] ata21: SATA link down (SStatus 0 SControl 300)
[    2.588881] ata31: SATA link down (SStatus 0 SControl 300)
[    2.588901] ata32: SATA link down (SStatus 0 SControl 300)
[    2.591323] scsi host32: ioc0: LSI53C1030 B0, FwRev=01032920h, Ports=1, MaxQ=128, IRQ=17
[    2.609244] sr 3:0:0:0: [sr0] scsi3-mmc drive: 1x/1x writer dvd-ram cd/rw xa/form2 cdda tray
[    2.609246] cdrom: Uniform CD-ROM driver Revision: 3.20
[    2.609471] sr 3:0:0:0: Attached scsi CD-ROM sr0
[    2.609714] sr 3:0:0:0: Attached scsi generic sg0 type 5
[    2.626125] e1000 0000:02:01.0 eth0: (PCI:66MHz:32-bit) 00:0c:29:1e:b9:8f
[    2.626129] e1000 0000:02:01.0 eth0: Intel(R) PRO/1000 Network Connection
[    2.627715] e1000 0000:02:01.0 ens33: renamed from eth0
[    2.746736] usb 2-2: New USB device found, idVendor=0e0f, idProduct=0002, bcdDevice= 1.00
[    2.746737] usb 2-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    2.746738] usb 2-2: Product: VMware Virtual USB Hub
[    2.754856] hub 2-2:1.0: USB hub found
[    2.758193] hub 2-2:1.0: 7 ports detected
[    2.758308] scsi 32:0:0:0: Direct-Access     VMware,  VMware Virtual S 1.0  PQ: 0 ANSI: 2
[    2.779476] hidraw: raw HID events driver (C) Jiri Kosina
[    2.783672] usbcore: registered new interface driver usbhid
[    2.783673] usbhid: USB HID core driver
[    2.785656] input: VMware VMware Virtual USB Mouse as /devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-1/2-1:1.0/0003:0E0F:0003.0001/input/input5
[    2.785710] hid-generic 0003:0E0F:0003.0001: input,hidraw0: USB HID v1.10 Mouse [VMware VMware Virtual USB Mouse] on usb-0000:02:00.0-1/input0
[    2.792536] scsi target32:0:0: Beginning Domain Validation
[    2.794810] scsi target32:0:0: Domain Validation skipping write tests
[    2.794811] scsi target32:0:0: Ending Domain Validation
[    2.794873] scsi target32:0:0: FAST-40 WIDE SCSI 80.0 MB/s ST (25 ns, offset 127)
[    2.795435] scsi 32:0:1:0: Direct-Access     VMware,  VMware Virtual S 1.0  PQ: 0 ANSI: 2
[    2.816697] tsc: Refined TSC clocksource calibration: 2208.003 MHz
[    2.816750] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x1fd3bb134e8, max_idle_ns: 440795232661 ns
[    2.816789] clocksource: Switched to clocksource tsc
[    2.824587] scsi target32:0:1: Beginning Domain Validation
[    2.827081] scsi target32:0:1: Domain Validation skipping write tests
[    2.827082] scsi target32:0:1: Ending Domain Validation
[    2.827144] scsi target32:0:1: FAST-40 WIDE SCSI 80.0 MB/s ST (25 ns, offset 127)
[    2.831223] sd 32:0:0:0: [sda] 503316480 512-byte logical blocks: (258 GB/240 GiB)
[    2.831291] sd 32:0:0:0: [sda] Write Protect is off
[    2.831292] sd 32:0:0:0: [sda] Mode Sense: 61 00 00 00
[    2.831358] sd 32:0:0:0: Attached scsi generic sg1 type 0
[    2.831411] sd 32:0:0:0: [sda] Cache data unavailable
[    2.831412] sd 32:0:0:0: [sda] Assuming drive cache: write through
[    2.831773] sd 32:0:1:0: [sdb] 503316480 512-byte logical blocks: (258 GB/240 GiB)
[    2.831820] sd 32:0:1:0: [sdb] Write Protect is off
[    2.831821] sd 32:0:1:0: [sdb] Mode Sense: 61 00 00 00
[    2.832024] sd 32:0:1:0: [sdb] Cache data unavailable
[    2.832025] sd 32:0:1:0: [sdb] Assuming drive cache: write through
[    2.832093] sd 32:0:1:0: Attached scsi generic sg2 type 0
[    2.835537]  sda: sda1
[    2.835779]  sdb: sdb1
[    2.836148] sd 32:0:0:0: [sda] Attached SCSI disk
[    2.836248] sd 32:0:1:0: [sdb] Attached SCSI disk
[    2.852714] random: fast init done
[    2.864260] random: systemd-udevd: uninitialized urandom read (16 bytes read)
[    2.864269] random: systemd-udevd: uninitialized urandom read (16 bytes read)
[    2.864584] random: systemd-udevd: uninitialized urandom read (16 bytes read)
[    2.935482] EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)
[    3.072184] usb 2-2.1: new full-speed USB device number 4 using uhci_hcd
[    3.190342] usb 2-2.1: New USB device found, idVendor=0e0f, idProduct=0008, bcdDevice= 1.00
[    3.190343] usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    3.190344] usb 2-2.1: Product: Virtual Bluetooth Adapter
[    3.190345] usb 2-2.1: Manufacturer: VMware
[    3.190346] usb 2-2.1: SerialNumber: 000650268328
[    3.200745] systemd[1]: Failed to insert module 'autofs4': No such file or directory
[    3.219243] systemd[1]: systemd 237 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[    3.219262] systemd[1]: Detected virtualization vmware.
[    3.219296] systemd[1]: Detected architecture x86-64.
[    3.231347] systemd[1]: Set hostname to <Test.com>.
[    3.505045] systemd[1]: Configuration file /etc/systemd/system/runsunloginclient.service is marked executable. Please remove executable permission bits. Proceeding anyway.
[    3.551609] systemd[1]: Created slice System Slice.
[    3.551711] systemd[1]: Created slice User and Session Slice.
[    3.551751] systemd[1]: Listening on fsck to fsckd communication Socket.
[    3.551784] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[    3.551791] systemd[1]: Reached target Slices.
[    3.596580] EXT4-fs (sdb1): re-mounted. Opts: errors=remount-ro
[    3.692530] Adding 2097148k swap on /swapfile.  Priority:-2 extents:6 across:2260988k FS
[    4.033357] systemd-journald[348]: Received request to flush runtime journal from PID 1
[    4.218252] audit: type=1400 audit(1587568097.758:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/lightdm/lightdm-guest-session" pid=478 comm="apparmor_parser"
[    4.218254] audit: type=1400 audit(1587568097.758:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/lightdm/lightdm-guest-session//chromium" pid=478 comm="apparmor_parser"
[    4.232428] audit: type=1400 audit(1587568097.774:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/sbin/dhclient" pid=479 comm="apparmor_parser"
[    4.232431] audit: type=1400 audit(1587568097.774:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=479 comm="apparmor_parser"
[    4.232432] audit: type=1400 audit(1587568097.774:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-helper" pid=479 comm="apparmor_parser"
[    4.232433] audit: type=1400 audit(1587568097.774:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=479 comm="apparmor_parser"
[    4.271109] audit: type=1400 audit(1587568097.810:8): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/evince" pid=480 comm="apparmor_parser"
[    4.271111] audit: type=1400 audit(1587568097.810:9): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/evince//sanitized_helper" pid=480 comm="apparmor_parser"
[    4.271112] audit: type=1400 audit(1587568097.810:10): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/evince-previewer" pid=480 comm="apparmor_parser"
[    4.953911] random: crng init done
[    4.953912] random: 7 urandom warning(s) missed due to ratelimiting
[    6.663286] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready
[    6.668567] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready
[    6.672082] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
[    6.672924] IPv6: ADDRCONF(NETDEV_CHANGE): ens33: link becomes ready
[   16.346882] rfkill: input handler disabled

想了一个晚上, 我还是没想明白, 为什么会直接把第二个硬盘挂载成 rootfs 呢?

还有挂载的时候为什么没有提示要修复磁盘呢?

上面是log, 还望路过的大神指点。

重点怀疑对象:

[    2.935482] EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)

#106 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » VMWare Ubuntu18.04 终于起不动了, 悲剧 » 2020-04-22 23:48:27

[    2.831223] sd 32:0:0:0: [sda] 503316480 512-byte logical blocks: (258 GB/240 GiB)
[    2.831291] sd 32:0:0:0: [sda] Write Protect is off
[    2.831292] sd 32:0:0:0: [sda] Mode Sense: 61 00 00 00
[    2.831358] sd 32:0:0:0: Attached scsi generic sg1 type 0
[    2.831411] sd 32:0:0:0: [sda] Cache data unavailable
[    2.831412] sd 32:0:0:0: [sda] Assuming drive cache: write through
[    2.831773] sd 32:0:1:0: [sdb] 503316480 512-byte logical blocks: (258 GB/240 GiB)
[    2.831820] sd 32:0:1:0: [sdb] Write Protect is off
[    2.831821] sd 32:0:1:0: [sdb] Mode Sense: 61 00 00 00
[    2.832024] sd 32:0:1:0: [sdb] Cache data unavailable
[    2.832025] sd 32:0:1:0: [sdb] Assuming drive cache: write through
[    2.832093] sd 32:0:1:0: Attached scsi generic sg2 type 0
[    2.835537]  sda: sda1
[    2.835779]  sdb: sdb1
[    2.836148] sd 32:0:0:0: [sda] Attached SCSI disk
[    2.836248] sd 32:0:1:0: [sdb] Attached SCSI disk

不是把 /dev/sda (第一个硬盘)挂载成 rootfs
而是把 /dev/sdb (第二个硬盘)挂载成 rootfs

理论上要 fsck.ext4 /dev/sdb 修复之后才能挂载吧?

#107 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » VMWare Ubuntu18.04 终于起不动了, 悲剧 » 2020-04-22 23:46:33

QQ截图20200422234433.png

好险, 居然搞定了.

新装一个Ubuntu18.04虚拟机,然后添加一个新硬盘(从上面那个不能启动的系统导入),

然后启动后居然自动把这个不能启动的硬盘自动挂载成根文件系统了.

好神奇, 几乎什么都不用做.

#111 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 请问 modbus 的功能码 3/4 有什么区别? » 2020-04-18 23:33:30

hox 说:

你贴的链接写的很清楚了,
03H 读保持寄存器 - 该寄存器是可读可写的,这里是读
04H 读输入寄存器 - 该寄存器是只读

谢谢, 我再了解了解.

#112 DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 请问 modbus 的功能码 3/4 有什么区别? » 2020-04-18 22:57:37

歌以咏志
回复: 8

https://www.jianshu.com/p/0f44d3b659e8

功能码	描述	PLC地址	寄存器地址	位/字操作	操作数量
01H	读线圈寄存器	00001-09999	0000H-FFFFH	位操作	单个或多个
02H	读离散输入寄存器	10001-19999	0000H-FFFFH	位操作	单个或多个
03H	读保持寄存器	40001-49999	0000H-FFFFH	字操作	单个或多个
04H	读输入寄存器	30001-39999	0000H-FFFFH	字操作	单个或多个
05H	写单个线圈寄存器	00001-09999	0000H-FFFFH	位操作	单个
06H	写单个保持寄存器	40001-49999	0000H-FFFFH	字操作	单个
0FH	写多个线圈寄存器	00001-09999	0000H-FFFFH	位操作	多个
10H	写多个保持寄存器	40001-49999	0000H-FFFFH	字操作	多个

03H    读保持寄存器
04H    读输入寄存器

#113 Re: 全志 SOC » 网上看到的F1C200s最新资料,包括Datasheet(V1.1)和User Manual(V1.2) » 2020-04-17 21:25:01

Blueskull 说:

十一块、十三块全新,7块、9块拆机。

100S内置32MB内存,200S翻倍。

除非有芯片测试座和测试平台挑选, 否则强烈不建议用翻新的芯片.

浪费的时间和感情不够这几毛钱差价

#115 Re: 全志 SOC » F1C100S/F1C200S-减少开机时间、uboot、内核、根文件系统裁减优化问题 » 2020-04-17 20:42:25

jiangming1399 说:

之前SPI频率没设置好,导致用默认的1MHZ读取,所以才那么慢……这次改了之后,启动到shell只要4.72秒了

在哪里设置呢? u-boot 吗?

#116 Re: 全志 SOC » H5的spi控制器驱动, 可以通过 gpio 控制 spi 片选 (转载) » 2020-04-16 15:10:43

也就是说,我现在用SPI FLASH作为S3/V3s的存储器, 还能挂一个ST7789这种SPI LCD吗?

#118 Re: 全志 SOC » 请教一下全志V3S晶振不起振的问题 » 2020-04-15 15:46:09

ZZL 说:

给RTC时钟供个3.3V的电压就解决了!

我怎么记得 Vrtc 不供电, 24Mhz 也能正常起振呢?

#120 Re: 全志 SOC » v3s sd卡启动 有时出错 » 2020-04-15 15:09:45

psst 说:

总线宽度改成1,是否会降低读写速度,我改成了1,试试看

肯定会降速嘛,要是速度一样,干嘛不全用1bit省IO.

#121 Re: 全志 SOC » v3s sd卡启动 有时出错 » 2020-04-14 19:41:28

十有八九硬件问题, 对照荔枝派原理图看是不是SDIO没有上拉.

#124 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 和大家聊聊最近学linux驱动的感受 » 2020-04-11 15:08:09

iki1120 说:

直接面向CV编程,内核里面的例子拿来修改就好了,不用从头开始写

什么是 CV ?

#125 Re: 全志 SOC » 刚入坑f1c100s,萌新有问 » 2020-04-10 16:41:38

小丸子 说:

Traceback (most recent call last):
  File "scripts/dtc/pylibfdt/setup.py", line 21, in <module>
    from distutils.core import setup, Extension
ImportError: No module named distutils.core
make[3]: *** [scripts/dtc/pylibfdt/_libfdt.so] Error 1
make[2]: *** [scripts/dtc/pylibfdt] Error 2
make[1]: *** [scripts/dtc] Error 2
make: *** [scripts] Error 2
谁知道是什么原因吗


执行这个, 药到病除:

sudo apt-get install python3-distutils libpython3-dev swig gcc-arm-linux-gnueabihf bison flex libncurses-dev libssl-dev -y



但是 u-boot v2020.01 编译后出现这个问题:

  LD      spl/dts/built-in.o
  CC      spl/fs/fs_internal.o
  LD      spl/fs/built-in.o
  LDS     spl/u-boot-spl.lds
  LD      spl/u-boot-spl
  OBJCOPY spl/u-boot-spl-nodtb.bin
  COPY    spl/u-boot-spl.bin
  MKSUNXI spl/sunxi-spl.bin
  MKIMAGE u-boot.img
  COPY    u-boot.dtb
  MKIMAGE u-boot-dtb.img
  BINMAN  u-boot-sunxi-with-spl.bin
===================== WARNING ======================
This board does not use CONFIG_DM_VIDEO Please update
the board to use CONFIG_DM_VIDEO before the v2019.07 release.
Failure to update by the deadline may result in board removal.
See doc/driver-model/MIGRATION.txt for more info.
====================================================
  CFGCHK  u-boot.cfg

不知道咋办。

#127 Re: 全志 SOC » MX25L51245G/W25Q512JV 64MB(512Mbit)的SPI Flash 有人用过吗? » 2020-04-10 14:38:31

修改 drivers/mtd/spi-nor/spi-nor.c:

        { "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
+       { "mx25l51235f", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },

启动log, 64M spi flash OK:

[    0.935189] 6 cmdlinepart partitions found on MTD device spi32766.0
[    0.941502] Creating 6 MTD partitions on "spi32766.0":
[    0.946657] 0x000000000000-0x000000050000 : "uboot"
[    0.953878] 0x000000050000-0x0000000a0000 : "logob"
[    0.960793] 0x0000000a0000-0x0000000f0000 : "logoa"
[    0.967459] 0x0000000f0000-0x000000100000 : "dtb"
[    0.974305] 0x000000100000-0x000000600000 : "kernel"
[    0.981114] 0x000000600000-0x000004000000 : "rootfs"

生成多个随机数bin文件:

cd /opt
dd if=/dev/urandom of=*.bin bs=1M count=8
# md5sum *
f7a1c8476056e68c4da1196b334e14e9  1.bin
fec2bb418ebbe9eac54e9f20d1990c5e  2.bin
58ded8e3dc0a3b6ddcfa0a09b7c9d900  3.bin
ff0080fa3cd0d1134c3e78a6b9f41bdb  4.bin
d4061aa0567478cae0b19fe2a8953f07  5.bin

多次启动后文件大小和校验和均正常.

#128 Re: Php/Nodejs/Web/HTML5/Javascript/微信开发/Python » 微软基于新版edge浏览器体验还真不错, 基于google开源chromium内核,真是应验那句老话----打不过你就加入你! » 2020-04-10 10:29:01

新版 edge 体验真不错, google 也开始封杀 edge了, 昔日屠龙少年也变成了恶龙, 变成了他曾经最讨厌的样子。

#129 Re: 全志 SOC » 试一试用MDK ARMCC 编译全志官方f1c100s sdk --- melis » 2020-04-10 09:01:16

mcu1234mcu 说:

是的,我发现我的windows下也有这些命令,但是打包的时候还是出现那样的提示,我用的windows10

你用 cygwin shell ? 有可能你的 shell有问题,建议用晕哥一楼用的 git 自带的shell

https://git-scm.com/download/win

#131 Re: 全志 SOC » MX25L51245G/W25Q512JV 64MB(512Mbit)的SPI Flash 有人用过吗? » 2020-04-09 22:00:18

liuchangyin 说:

64MB的价格如何?

https://detail.tmall.com/item.htm?id=608913139149

23元左右, 是有点贵, 不过我们这个利润还行, 甲方要求用spi nor flash.

#133 Re: 全志 SOC » 试一试用MDK ARMCC 编译全志官方f1c100s sdk --- melis » 2020-04-09 11:58:31

提示很明显了啊,wmic,findstr,xcopy这些命令都找不到,I:\meils\SDK\workspace\suniv\beetles\udisk.iso 这个文件也找不到

#135 Re: 全志 SOC » MX25L51245G/W25Q512JV 64MB(512Mbit)的SPI Flash 有人用过吗? » 2020-04-08 11:52:30

2020-04-08_115051.png

昨晚下单今天就收到了,速度真快。

jflashspi.exe 测试了一把, 烧了一个64M 文件, 校验 OK。

#137 Re: 全志 SOC » 试一试 S3 Linux 4.13 读取 USB 条码枪 » 2020-03-27 13:59:39

想知道这个条码枪用什么方案, 灵敏度如何?

#140 Re: 全志 SOC » Debian buster (10) rootfs 制作 » 2020-03-24 10:16:55

感谢楼主分享, 但是我试了一下有问题:

debootstrap --keyring=./debian-release-10.gpg --foreign --verbose --arch=armhf  stretch rootfs http://ftp2.cn.debian.org/debian

/opt# debootstrap --keyring=./debian-release-10.gpg --foreign --verbose --arch=armhf  stretch rootfs http://ftp2.cn.debian.org/debianI: Retrieving InRelease
I: Retrieving Release
I: Checking Release signature
E: Release signed by unknown key (key id EF0F382A1A7B6500)

#143 Re: 全志 SOC » 关于 lichee-pi zero v3s 以太网硬件严重发热问题和解决办法 » 2020-03-19 09:32:48

路人甲 说:

晕,我照抄了这个电路 而且还出货了,同事反应很烫,不会是这个问题吧,我晕。。。。

惨了,我也抄荔枝派这个电路,领导一直说芯片发热,我左检查又检查,和zero核对N次,还是没能发现这个问题。


L1 取掉前 0.186A@12V
L1 取掉后 0.146A@12V

足足相差了 0.04A*12V = 0.48W

这么大的功率都拿去发热了, 我热 sad

#144 Re: 华芯微特 » SWM320成功移植micropython » 2020-03-19 09:14:52

伍零壹 说:

1.现在stm32大概有那些型号支持这个?
2.自己移植到一个新的MCU上  工作量大致能估计么

看下楼主那个gitee链接就知道移植过程复杂度了。

#145 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » aliyun真是啥都干,域名代备案, 注册商标,现在又可以注册公司了 » 2020-03-16 14:47:24

想起了多年前那些大大小小牛鬼蛇神般的虚拟主机公司,要么挂了,要么加入阿里云腾讯云阵营。

想想以后被这些巨无霸一样的公司统治了,那么阶级固化会不会越来越严重呢?

#146 Re: 全志 SOC » 要做这样的一个东西,全志那个cpu比较合适?V3s? » 2020-03-13 16:39:37

jiangchun9981 说:

这个规模的系统,跑sip phone ,还有相关协议,看上去是现成的,但系统架构庞大,还要和你的应用集成一块,开发难度还有周期和以后的应用部署配置维护?

同感,如果不考虑外部接入,我觉得自己撸几行代码搞定,简简单单。

#149 Re: 全志 SOC » 要做这样的一个东西,全志那个cpu比较合适?V3s? » 2020-03-11 13:48:58

V3s自带的声卡有点渣, 语音勉强能听,播放音乐就算了吧。

#150 Re: 全志 SOC » 全志又发马甲了 » 2020-03-11 09:12:52

Blueskull 说:

想上A系列又想要SiP不如去买OSD3358,就是含税300多块钱一颗。里面是TI的AM3358+DDR3+PMIC。工业级,美国原装进口。就是Beagle的芯片,BSP超完善,而且版本还多,RTOS也多,Linux还有专门的发行版,需要啥功能可以直接apt-get,就是一个字,贵。

刚刚手一哆嗦去搜了一下,果然有这玩意。

手册: https://octavosystems.com/octavo_products/osd335x/

购买链接: https://www.mouser.cn/ProductDetail/Octavo-Systems/OSD3358-512M-BAS?qs=l%2FgYmo23PNND%2FVQo4YI05A%3D%3D

#152 Re: NB-IoT/2G模块/4G模块/GPRS模块/GPS/北斗 » nbiot + gsm + 室外定位 + 室内定位 + 录音 » 2020-03-03 09:13:14

jlau 说:

貌似移远BC32挂个wifi就可以开干了

围观了一下, 这个BC32不错,感谢推荐。

#154 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » linux framebuffer使用问题 » 2020-03-03 09:00:46

解决方案

#隐藏光标
echo -e "\033[?25l"


#显示光标
echo -e "\033[?25h"

这是什么原理?

#155 Re: 全志 SOC » 关于nano pi从u-boot启动到kernal出现1秒的花屏问题的分析及解决方法 » 2020-03-03 08:55:49

及时雨, 感谢分享, 那个花屏我想了一个月都没想明白。

#156 Re: 全志 SOC » 不得不说, V3s的RTC就是渣渣, 电流10uA, 导致CR2032纽扣电池很快就放完电了, 不得不赶工改用PCF8563或者别的RTC » 2020-03-03 08:38:53

wupaul2001 说:

普通CR2302也得充电,应该在1N4148上并一个1K的电阻,1N4148换成BAT54, 4148压降有点大了

谢谢,刚刚查了一下 BAT54 压降也是 0.8v 左右, 市场上的1N4148压降 1.25v, 确实有点差距。

不过我已经更改设计了 Vrtc 直接接 dcdc 的 3v3了, 这下至少能保证可以正常启动了。

#157 Re: 全志 SOC » 不得不说, V3s的RTC就是渣渣, 电流10uA, 导致CR2032纽扣电池很快就放完电了, 不得不赶工改用PCF8563或者别的RTC » 2020-03-02 17:08:14

算法没有问题,我们的设计也有一点问题,

不知道哪里抄来的电路,

CR2032 中间串了一个 1N4148 的二极管,

然后才接 V3s 98脚 Vrtc,

这样新电池 Vrtc 的电压 3.0v - 0.7v = 2.3v,

然而就是这个脚对电压也有要求(3v3 ???),

一段时间之后, 电池电压可能会降到 0.2v

导致无法开机。

#158 全志 SOC » 不得不说, V3s的RTC就是渣渣, 电流10uA, 导致CR2032纽扣电池很快就放完电了, 不得不赶工改用PCF8563或者别的RTC » 2020-03-02 14:45:05

歌以咏志
回复: 20

不得不说, V3s的RTC就是渣渣, 电流10uA,

导致CR2032纽扣电池很快就放完电了, 不得不赶工改用PCF8563或者别的RTC

NXP的PCF8563手册标称电流 0.25uA, 实际上我用万用表测量也是差不多这个值。

#159 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » QT5.14.1交叉编译添加tslib出错 » 2020-02-28 16:47:08

邮箱里面翻出来的当年编译qt4.8的记录, 随便看看:

export PATH=/usr/local/arm_linux_4.8/bin/:$PATH
cd /opt/nuc970bsp/applications/tslib-1.1
./configure --host=arm-linux    --prefix=${PWD}/../install
make
make install
cd /opt/nuc970bsp/applications/qt-everywhere-opensource-src-4.8.5
MY_CC_QT4_PREFIX=/usr/local/Trolltech/QtEmbedded-4.8.5
./configure \
-prefix ${MY_CC_QT4_PREFIX} \
-release \
-opensource \
-static \
-qconfig dist \
-no-exceptions \
-no-accessibility \
-no-stl \
-no-qt3support \
-no-xmlpatterns \
-no-multimedia \
-no-audio-backend \
-no-phonon \
-no-phonon-backend \
-no-svg \
-no-webkit \
-no-javascript-jit \
-no-script \
-no-scripttools \
-no-declarative \
-no-declarative-debug \
-qt-zlib \
-qt-freetype \
-no-gif \
-qt-libpng \
-no-libmng \
-no-libtiff \
-qt-libjpeg \
-no-openssl \
-nomake tools \
-nomake demos \
-nomake examples \
-nomake docs \
-nomake translations \
-no-nis \
-no-cups \
-no-iconv \
-no-pch \
-no-dbus \
-embedded arm \
-platform qws/linux-x86-g++ \
-xplatform qws/linux-arm-g++ \
-no-gtkstyle \
-no-nas-sound \
-no-opengl \
-no-openvg \
-no-sm \
-no-xshape \
-no-xvideo \
-no-xsync \
-no-xinerama \
-no-xcursor \
-no-xfixes \
-no-xrandr \
-no-xrender \
-no-mitshm \
-no-fontconfig \
-no-xinput \
-no-xkb \
-no-glib \
-qt-gfx-linuxfb \
-qt-mouse-tslib \
-qt-kbd-linuxinput \
-I /opt/nuc970bsp/applications/install/include/ \
-L /opt/nuc970bsp/applications/install/lib
make
make install

#160 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 哎哟,腾讯云双十一促销的乞丐版云服务器从88元涨到99元了 » 2020-02-28 08:40:30

1066950103 说:

需要新用户

问题不大,他这个只是一个形式而已, 反正可以绑到同一个微信下面。

微信扫码登陆的时候, 选择对应的子账户就行了, 登陆之后也可以切换子账户。

#161 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 哎哟,腾讯云双十一促销的乞丐版云服务器从88元涨到99元了 » 2020-02-27 14:21:29

我心飞翔 说:

真可惜, 没有了:

本次活动已结束,感谢您的关注!5秒后将自动跳转至云产品采购季活动。


刚刚看了一下, 还有 99 元乞丐版哦, 只是新用户才能参加:

【腾讯云】云产品采购季,助力行业复工。1核2G云服务器,首年99元





不过没事, 那些用户都可以绑在同一个微信下面。

#163 Re: NXP i.MX6UL/6ULL » 野火imx6ul mini板到了,如何安装远程桌面? » 2020-01-02 13:57:29

Gentlepig 说:

好吧,请教,如果不用桌面,直接通过网口实现显示qt程序,该怎么做?

framebuffer显示Qt app: app -platform linuxfb

vnc显示Qt app: app -platform vnc  (电脑用vncviewer.exe连接 ip地址:5900)

#168 Re: 华芯微特 » 本来想找个pdf, 但是被网站绕晕了, 吐槽一下华芯微特的网站 » 2019-12-27 10:49:53

歌以咏志 说:

还有, 这种图片有没有对应的 pdf 文件呢, 不太清晰, 而且不能搜索。

官网找到的选型手册也是这个图片 http://www.synwit.cn/support-1/15.html

#170 Re: 华芯微特 » 本来想找个pdf, 但是被网站绕晕了, 吐槽一下华芯微特的网站 » 2019-12-27 10:46:25

none_20191225-1719.jpg

还有, 这种图片有没有对应的 pdf 文件呢, 不太清晰, 而且不能搜索。

#171 华芯微特 » 本来想找个pdf, 但是被网站绕晕了, 吐槽一下华芯微特的网站 » 2019-12-27 10:42:23

歌以咏志
回复: 7

点左边导航 SWM050 , http://www.synwit.cn/productList1/6.html

没有找到 pdf

然后继续进入下面的子页面

SWM050I2P7-65 http://www.synwit.cn/productInfo/54/2.html
SWM050Q2S7-65 http://www.synwit.cn/productInfo/55/2.html

仍然没有找到pdf


再点左边导航 SWM3X0 http://www.synwit.cn/productList1/9.html
有下载地址, 但是是个 rar 文件,还得自己下载下来解压缩

感觉有改进的地方.


随便吐槽一下, 没别的意思。

#172 Re: 全志 SOC » F1C100S做的串口屏硬件图纸分享,有需要的可以联系,坛友优惠价 » 2019-12-09 18:15:33

gary 说:

图中PCF8563 上的匹配电容只需要一个,焊2个的话很难调准

这是什么原理?

#173 Re: 全志 SOC » V3s SPI NAND u-boot @openwrt » 2019-12-04 22:59:09

太棒了, 强帖留名, 这种干货帖我喜欢.

#174 Re: 全志 SOC » V3s/S3/f1c100s通过USB启动Linux,并把SD NAND/TF卡挂载为U盘, 可以dd或Win32DiskImager任烧写 » 2019-12-03 22:18:44

WhyKen395 说:

可否分享一下那个串口工具,MobaXterm 破解版

收费版有哪些功能?我一直用免费版, 感觉够用了.

#175 Re: 全志 SOC » 产品小批量压成本问题, DIY打样量产问题讨论(SMT) » 2019-12-03 22:17:19

WhyKen395 说:

JLC下单界面SMT里面,好像可以自己邮寄物料去

真的吗?我怎么没发现,有没有哪位朋友试过?

#178 Re: 全志 SOC » V3s LCD接口如何转VGA输出,USB接口用开关芯片切换影响OTG吗? » 2019-11-29 10:15:16

再发一个: https://www.geeks3d.com/20091230/vga-hack-how-to-make-a-vga-dummy-plug/

一个VGA虚设插头是一个简单的黑客愚弄通过让他们想有一个插入卡上的监视器中的GPU和Windows。在某些情况下,当您拥有两个或更多图形卡并且需要将它们激活时,此技巧很有用:
在1张以上的卡上运行F @ H:Folding @ Home GPU客户端要求该卡处于活动状态(具有其自己的桌面),然后才能在图形核心上启动折叠(请参阅此处)。
在第一个卡(Radeon)用于3D渲染时,为PhysX启用NVIDIA卡(请参阅此处)。
VGA虚拟原理很简单:使用3个电阻器模拟显示器的RGB通道负载。50至150欧姆之间的任何电阻都可以。



vga_dummy_electronic_01.jpg

vga_dummy_electronic_02.jpg

VGA虚拟插头电子方案

vga_dummy_electronic_schema.jpg



这是DVI连接器的电子方案:

vga_dummy_electronic_dvi.jpg

#179 Re: 全志 SOC » V3s LCD接口如何转VGA输出,USB接口用开关芯片切换影响OTG吗? » 2019-11-29 10:11:49

科学上网打开这个: https://olimex.wordpress.com/2012/06/12/low-cost-lcd-to-vga-adapter/


A13处理器没有他的兄弟A10的HDMI和VGA输出,因此我们不得不使用它的LCD接口来解决问题。

我们浏览了IC视频DAC,并且有很多,但是它们很昂贵并且不适合OLinuXino低成本概念,因此我们决定尝试制作简单的R梯形视频DAC。

A13 LCD接口为18位,这意味着我们将需要3通道x 6位视频DAC。

所有VGA监视器的输入线上都带有75欧姆的终结器,视频信号白电平为0.75V,黑电平为0V。因此,知道了这一点,我们就可以制作电阻梯形DAC,其中R,2R,4R,8R,16R,32R与RGB 0-5位并联。当我们知道LCD缓冲器的输出电压为3.3V以及所有位均为1(即0.75V)时我们想要的电压时,就可以轻松计算这些值。使用选择的1%精度值的电阻是549欧姆,1050欧姆,2180欧姆,4370欧姆,8660欧姆,17800欧姆。

路由了适配器并运行了PCB原型。组装好的适配器通过4.3英寸LCD连接到LPC1788板上,并调整输出以匹配VGA锁定频率,因此效果非常理想。

lcd2vga-2.jpg

LCD上显示的图像是带有小球的彩色条纹,您可以通过倾斜电路板(使用板载加速度计)来移动它,从图像中您可以看到颜色是完美的,并且图像静止不动,没有毛刺和抖动。

因此,现在我们为A13-OLinuXino提供了低成本VGA解决方案,并且可以继续进行PCB原理图的完成和布线。请注意,VGA信号经过门控的缓冲器,即我们可以启用和禁用VGA输出,并且A13-OLinuXino将能够与LCD和VGA一起使用。

lcd2vga-sch.gif

#180 Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » VS2019/VC2019 离线版下载,约15G » 2019-11-25 14:31:08

歌以咏志
回复: 3

离线包为6个分卷,单个分卷3.5GB,须全部下载并解压
Algorithm : SHA1
Hash      : 952E102538489DF5DCFCA4AAD051E9380FD1645D
Path      : W:\Visual Studio Enterprise 2019.7z.001
Hash      : 5FF1624242E274724A47885686E698DD8BA1C818
Path      : W:\Visual Studio Enterprise 2019.7z.002
Hash      : 38E1A5CE390DBE22E13F7E8FA4A46FCB2704A83B
Path      : W:\Visual Studio Enterprise 2019.7z.003
Hash      : 82D7F8C3D0658EB662C36637BF7726FD82C8E4A9
Path      : W:\Visual Studio Enterprise 2019.7z.004
Hash      : 05FFF5BC0F2109105FD26D43C529FE676C6EB5B4
Path      : W:\Visual Studio Enterprise 2019.7z.005
Hash      : 2B1F7824A501529851B3BFEB2050AB57F72967E3
Path      : W:\Visual Studio Enterprise 2019.7z.006


离线安装包下载地址

链接:  https://pan.baidu.com/s/1d2DC38QSUiIMFXCgwew1FQ 提取码: kp1s 复制这段内容后打开百度网盘手机App,操作更方便哦


将链接复制到浏览器中即可下载。


在线安装包
https://visualstudio.microsoft.com/zh-hans/downloads/




visual studio 2019激活码密钥key

Visual Studio 2019 Enterprise 企业版
BF8Y8-GN2QH-T84XB-QVY3B-RC4DF

Visual Studio 2019 Professional 专业版
NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y

#181 Re: 全志 SOC » 发个很久之前写的一键licheepi nano的环境部署,编译打包脚本 » 2019-11-25 13:36:34

墙内 github.com 克隆经常会出这种问题,网络通讯异常。

#182 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 客户要求系统需要四个串口,现在芯片的板载串口严重不够,求推荐spi/i2c扩四路uart的芯片,最好有linux驱动 » 2019-11-25 10:38:09

小智 说:

不不不,改下驱动而已,就行了,具体我忘记改哪里了,有个数据帧错误或者溢出错误,屏蔽一下就ok了,和应用层没关系

原来如此, 大神有空的时候做个diff文件,谢谢了。

我也研究一下 ^_^

#184 Re: 全志 SOC » 求助,480*272的lcd在linux起来后不能正常显示 » 2019-11-25 10:18:28

来日方长 说:

太感谢了 这个问题弄了我好久

大神现在搞定了吗?可以显示正常了吗?

#185 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 客户要求系统需要四个串口,现在芯片的板载串口严重不够,求推荐spi/i2c扩四路uart的芯片,最好有linux驱动 » 2019-11-25 10:11:48

小智 说:

立创上都是偏高的,不值得参考,我发的官方网站就有源码呀,

果然有, 谢谢!

Makefile

ARCH= arm
MVTOOL_PREFIX = /home/xxw/rk3288/arm-eabi-4.6/bin/arm-eabi-
CROSS_COMPILE= $(MVTOOL_PREFIX)
KDIR := /home/xxw/rk3288/firefly-rk3288-kernel
TARGET				=wk2xxx_spi
EXEC = $(TARGET)
obj-m :=$(TARGET).o
PWD :=$(shell pwd)
all:
	$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
	rm -rf *.o *~core.depend.*.cmd *.ko *.mod.c .tmp_versions $(TARGET)

wk2xxx_spi.c

/*
*   FILE NAME  : wk2xxx_spi.c   
*
*   WKIC Ltd.
*   By  Xu XunWei Tech  
*   DEMO Version :2.0 Data:2018-8-08
*
*   DESCRIPTION: Implements an interface for the wk2xxx of spi interface
*
*   1. compiler warnings all changes
*/




#include <linux/init.h>                        
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/console.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/serial_core.h>
#include <linux/delay.h>
#include <linux/err.h>
#include <linux/freezer.h>
#include <linux/spi/spi.h>
#include <linux/timer.h>
#include <linux/of_gpio.h>
#include <linux/gpio.h>


#include <linux/workqueue.h>
#include <linux/platform_device.h>
#include <asm/mach/map.h>
#include <asm/irq.h>
#include <asm/io.h>
#include <linux/platform_data/spi-rockchip.h>
#include "wk2xxx.h"



MODULE_LICENSE("Dual BSD/GPL");

//#define _DEBUG_WK2XXX
//#define _DEBUG_WK2XXX1
//#define _DEBUG_WK2XXX2
//#define _DEBUG_WK2XXX4
//#define _DEBUG_WK2XXX5

#define WK2XXX_STATUS_PE    1
#define WK2XXX_STATUS_FE    2
#define WK2XXX_STATUS_BRK   4
#define WK2XXX_STATUS_OE    8


static DEFINE_MUTEX(wk2xxxs_lock);                /* race on probe */
static DEFINE_MUTEX(wk2xxxs_reg_lock);
static DEFINE_MUTEX(wk2xxs_work_lock);                /* work on probe */

struct wk2xxx_port 
{
    //struct timer_list mytimer;    
    
    struct uart_port port;//[NR_PORTS];
    struct spi_device *spi_wk;
    spinlock_t conf_lock;   /* shared data */
    struct workqueue_struct *workqueue;
    struct work_struct work;
    int suspending;
    void (*wk2xxx_hw_suspend) (int suspend);
    int tx_done;

    int force_end_work;
    int irq;
    int minor;      /* minor number */
    int tx_empty; 
    int tx_empty_flag;


    int start_tx_flag;
    int stop_tx_flag;
    int stop_rx_flag; 
    int irq_flag;
    int conf_flag;

    int tx_empty_fail;
    int start_tx_fail;
    int stop_tx_fail;
    int stop_rx_fail;
    int irq_fail;
    int conf_fail;


    uint8_t new_lcr;
	uint8_t new_fwcr;
    uint8_t new_scr; 
    /*set baud 0f register*/
    uint8_t new_baud1;
    uint8_t new_baud0;
    uint8_t new_pres;

};

static struct wk2xxx_port wk2xxxs[NR_PORTS]; /* the chips */
/*
* This function read wk2xxx of Global register:
*/
static int wk2xxx_read_global_reg(struct spi_device *spi,uint8_t reg,uint8_t *dat)
{
        struct spi_message msg;
        uint8_t buf_wdat[2];
        uint8_t buf_rdat[2];
        int status;
        struct spi_transfer index_xfer = {
                .len            = 2,
                //.cs_change      = 1,
                .speed_hz	= wk2xxx_spi_speed,
        };
        mutex_lock(&wk2xxxs_reg_lock);
        status =0;
        spi_message_init(&msg);
        buf_wdat[0] = 0x40|reg;
        buf_wdat[1] = 0x00;
        buf_rdat[0] = 0x00;
        buf_rdat[1] = 0x00;
        index_xfer.tx_buf = buf_wdat;
        index_xfer.rx_buf =(void *) buf_rdat;
        spi_message_add_tail(&index_xfer, &msg);
        status = spi_sync(spi, &msg);
        mutex_unlock(&wk2xxxs_reg_lock);
        if(status)
        {
         return status;
         }
        *dat = buf_rdat[1];
         return 0;

}
/*
* This function write wk2xxx of Global register:
*/
static int wk2xxx_write_global_reg(struct spi_device *spi,uint8_t reg,uint8_t dat)
{
        struct spi_message msg;
        uint8_t buf_reg[2];
        int status;
        struct spi_transfer index_xfer = {
                .len            = 2,
                //.cs_change      = 1,
                .speed_hz	= wk2xxx_spi_speed,
        };
        mutex_lock(&wk2xxxs_reg_lock);
        spi_message_init(&msg);
        /* register index */
        buf_reg[0] = 0x00|reg;
        buf_reg[1] = dat;
        index_xfer.tx_buf = buf_reg;
        spi_message_add_tail(&index_xfer, &msg);
        status = spi_sync(spi, &msg);
        mutex_unlock(&wk2xxxs_reg_lock);
        return status;
}
/*
* This function read wk2xxx of slave register:
*/
static int wk2xxx_read_slave_reg(struct spi_device *spi,uint8_t port,uint8_t reg,uint8_t *dat)
{
        struct spi_message msg;
        uint8_t buf_wdat[2];
        uint8_t buf_rdat[2];
        int status;
        struct spi_transfer index_xfer = {
                .len            = 2,
                //.cs_change      = 1,
                .speed_hz	= wk2xxx_spi_speed,
        };
        mutex_lock(&wk2xxxs_reg_lock);
        status =0;
        spi_message_init(&msg);
        buf_wdat[0] = 0x40|(((port-1)<<4)|reg);
        buf_wdat[1] = 0x00;
        buf_rdat[0] = 0x00;
        buf_rdat[1] = 0x00;
        index_xfer.tx_buf = buf_wdat;
        index_xfer.rx_buf =(void *) buf_rdat;
        spi_message_add_tail(&index_xfer, &msg);
        status = spi_sync(spi, &msg);
        mutex_unlock(&wk2xxxs_reg_lock);
        if(status)
        {
           return status;
         }
        *dat = buf_rdat[1];
         return 0;

}
/*
* This function write wk2xxx of Slave register:
*/
static int wk2xxx_write_slave_reg(struct spi_device *spi,uint8_t port,uint8_t reg,uint8_t dat)
{
        struct spi_message msg;
        uint8_t buf_reg[2];
        int status;
        struct spi_transfer index_xfer = {
                .len            = 2,
                //.cs_change      = 1,
				.speed_hz	= wk2xxx_spi_speed,
        };
        mutex_lock(&wk2xxxs_reg_lock);
        spi_message_init(&msg);
        /* register index */
        buf_reg[0] = ((port-1)<<4)|reg;
        buf_reg[1] = dat;
        index_xfer.tx_buf = buf_reg;
        spi_message_add_tail(&index_xfer, &msg);
        status = spi_sync(spi, &msg);
        mutex_unlock(&wk2xxxs_reg_lock);
        return status;
}

#define MAX_RFCOUNT_SIZE 256

/*
* This function read wk2xxx of fifo:
*/
static int wk2xxx_read_fifo(struct spi_device *spi,uint8_t port,uint8_t fifolen,uint8_t *dat)
{
        struct spi_message msg;
        int status,i;
        uint8_t recive_fifo_data[MAX_RFCOUNT_SIZE+1]={0};
        uint8_t transmit_fifo_data[MAX_RFCOUNT_SIZE+1]={0};
        struct spi_transfer index_xfer = {
                .len            = fifolen+1,
                //.cs_change      = 1,
                .speed_hz	= wk2xxx_spi_speed,
        }; 
	    if(!(fifolen>0))
	      {
			printk(KERN_ERR "%s,fifolen error!!\n", __func__);
			return 1;
		  }
        mutex_lock(&wk2xxxs_reg_lock);
        spi_message_init(&msg);
        /* register index */
        transmit_fifo_data[0] = ((port-1)<<4)|0xc0;
        index_xfer.tx_buf = transmit_fifo_data;
        index_xfer.rx_buf =(void *) recive_fifo_data;
        spi_message_add_tail(&index_xfer, &msg);
        
        status = spi_sync(spi, &msg);
        udelay(1);
        for(i=0;i<fifolen;i++)
            *(dat+i)=recive_fifo_data[i+1];
        mutex_unlock(&wk2xxxs_reg_lock);
        return status;
        
}
/*
* This function write wk2xxx of fifo:
*/
static int wk2xxx_write_fifo(struct spi_device *spi,uint8_t port,uint8_t fifolen,uint8_t *dat)
{
        struct spi_message msg;
        int status,i;
        uint8_t recive_fifo_data[MAX_RFCOUNT_SIZE+1]={0};
        uint8_t transmit_fifo_data[MAX_RFCOUNT_SIZE+1]={0};
        struct spi_transfer index_xfer = {
                .len            = fifolen+1,
                //.cs_change      = 1,
                .speed_hz	= wk2xxx_spi_speed,
        }; 
	    if(!(fifolen>0))
	      {
			printk(KERN_ERR "%s,fifolen error!!\n", __func__);
			return 1;
		  }

        mutex_lock(&wk2xxxs_reg_lock);
        spi_message_init(&msg);
        /* register index */
        transmit_fifo_data[0] = ((port-1)<<4)|0x80;
         for(i=0;i<fifolen;i++)
            {
            transmit_fifo_data[i+1]=*(dat+i);
            }
        index_xfer.tx_buf = transmit_fifo_data;
        index_xfer.rx_buf =(void *) recive_fifo_data;
        spi_message_add_tail(&index_xfer, &msg);
        status = spi_sync(spi, &msg);
        mutex_unlock(&wk2xxxs_reg_lock);
        return status;
        
}

static void wk2xxxirq_app(struct uart_port *port);
static void conf_wk2xxx_subport(struct uart_port *port);
static void wk2xxx_work(struct work_struct *w);
static void wk2xxx_stop_tx(struct uart_port *port);
static u_int wk2xxx_tx_empty(struct uart_port *port);// or query the tx fifo is not empty?

static int wk2xxx_dowork(struct wk2xxx_port *s)
{    
#ifdef _DEBUG_WK2XXX
    printk( "--wk2xxx_dowork()---\n");
#endif

    if (!s->force_end_work && !work_pending(&s->work) && !freezing(current) && !s->suspending)
    {
        queue_work(s->workqueue, &s->work);//
        #ifdef _DEBUG_WK2XXX
         printk( "--queue_work---ok---\n");;
// printk("work_pending =: %d s->force_end_work  = : %d freezing(current) = :%d s->suspending= :%d\n" ,work_pending(&s->work),s->force_end_work ,freezing(current),s->suspending);
      #endif
        return 1;   
    }
    else
    {
      #ifdef _DEBUG_WK2XXX
        printk( "--queue_work---error---\n");
      #endif

//printk("work_pending =: %d s->force_end_work  = : %d freezing(current) = :%d s->suspending= :%d\n" ,work_pending(&s->work),s->force_end_work ,freezing(current),s->suspending);
    //  return 0;
//  printk("work_pending() =: %d tx_empty_flag = : %d start_tx_flag = :%d stop_tx_flag = :%d conf_flag =: %d irq_flag =: %d tx_empty=:%d\n",work_pending(&s->work),s->tx_empty_flag,s->start_tx_flag,s->stop_tx_flag,s->stop_rx_flag,s->conf_flag,s->irq_flag,s->tx_empty);
        return 0;
    }

}

static void wk2xxx_work(struct work_struct *w)
{  


    struct wk2xxx_port *s = container_of(w, struct wk2xxx_port, work);
    uint8_t rx;

        

    int work_start_tx_flag; 
    int work_stop_rx_flag;
    int work_irq_flag;
    int work_conf_flag;
#ifdef _DEBUG_WK2XXX
printk( "--wk2xxx_work---in---\n");
#endif
    do {

             mutex_lock(&wk2xxs_work_lock);
     
             work_start_tx_flag = s->start_tx_flag;
             if(work_start_tx_flag)
             s->start_tx_flag = 0;
     
             work_stop_rx_flag = s->stop_rx_flag;
             if(work_stop_rx_flag)
             s->stop_rx_flag = 0;
             work_conf_flag = s->conf_flag;
             if( work_conf_flag)
                s->conf_flag = 0;

             work_irq_flag = s->irq_flag;
             if(work_irq_flag)
             s->irq_flag = 0;
             mutex_unlock(&wk2xxs_work_lock);
         
             if(work_start_tx_flag)
             {
              wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,&rx);
              rx |= WK2XXX_TFTRIG_IEN|WK2XXX_RFTRIG_IEN|WK2XXX_RXOUT_IEN; 
              wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,rx);
             }
     
             if(work_stop_rx_flag)
             {
              wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,&rx);
              rx &=~WK2XXX_RFTRIG_IEN;
              rx &=~WK2XXX_RXOUT_IEN;
              wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,rx);
             }
     
             if(work_irq_flag)
             {
                 wk2xxxirq_app(&s->port);
                 s->irq_fail = 1;
             }



        }while (!s->force_end_work && !freezing(current) && \
        (work_irq_flag || work_stop_rx_flag ));


        if(s->start_tx_fail)
        {
            wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,&rx);
            rx |= WK2XXX_TFTRIG_IEN|WK2XXX_RFTRIG_IEN|WK2XXX_RXOUT_IEN;
            wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,rx);
        	s->start_tx_fail =0;

        }
        
        
       if(s->stop_rx_fail)
        {
            wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,&rx);
            rx &=~WK2XXX_RFTRIG_IEN;
            rx &=~WK2XXX_RXOUT_IEN;
            wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,rx);
            s->stop_rx_fail =0;
        }
        if(s->irq_fail)
        {
            s->irq_fail = 0;
            enable_irq(s->port.irq);
        }

#ifdef _DEBUG_WK2XXX
    printk( "--wk2xxx_work---exit---\n");
#endif

}


static void wk2xxx_rx_chars(struct uart_port *port)
{


    struct wk2xxx_port *s = container_of(port,struct wk2xxx_port,port);
    uint8_t fsr,lsr,dat[1],rx_dat[256]={0};
    unsigned int ch,flg,sifr, ignored=0,status = 0,rx_count=0;
    int rfcnt=0,rx_num=0;
#ifdef _DEBUG_WK2XXX5
    printk(KERN_ALERT "wk2xxx_rx_chars()---------in---\n");
#endif
    wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SPAGE,WK2XXX_PAGE0);//set register in page0
    wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FSR,dat);
    fsr = dat[0];
    wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_LSR,dat);
    lsr = dat[0];
    wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIFR,dat);
    sifr=dat[0];
#ifdef _DEBUG_WK2XXX
     printk(KERN_ALERT "rx_chars()-port:%lx--fsr:0x%x--lsr:0x%x--\n",s->port.iobase,fsr,lsr);
#endif
if(!(sifr&0x80))//no error
{  


  flg = TTY_NORMAL;
  if (fsr& WK2XXX_RDAT)
  {
    wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_RFCNT,dat);
    rfcnt=dat[0];
    if(rfcnt==0)
    {
     rfcnt=255; 
    }
#if 0
      printk(KERN_ALERT "rx_chars()--port:%ld--RFCNT:0x%x-\n",s->port.iobase,rfcnt);
#endif

#if 1  
    wk2xxx_read_fifo(s->spi_wk,s->port.iobase, rfcnt,rx_dat);
#else
	  for(rx_num=0;rx_num<rfcnt;rx_num++)
		 {
		   wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FDAT,dat);
		   rx_dat[rx_num]=dat[0];
		 }
#endif

    s->port.icount.rx+=rfcnt;
        for(rx_num=0;rx_num<rfcnt;rx_num++)
    {
        if (uart_handle_sysrq_char(&s->port,rx_dat[rx_num]))//.state, ch))
               break;//
               
 #ifdef _DEBUG_WK2XXX5

        printk(KERN_ALERT "rx_chars:0x%x----\n",rx_dat[rx_num]);
#endif
                  uart_insert_char(&s->port, status, WK2XXX_STATUS_OE, rx_dat[rx_num], flg);
                  rx_count++;
 
                  if ((rx_count >= 64 ) && (s->port.state->port.tty->port != NULL))
                  {
                   tty_flip_buffer_push(s->port.state->port.tty->port);
                   rx_count = 0;
                 }

    }//for
       if((rx_count > 0)&&(s->port.state->port.tty->port!= NULL))
  {
  #ifdef _DEBUG_WK2XXX
          printk(KERN_ALERT  "push buffer tty flip port = :%lx count =:%d\n",s->port.iobase,rx_count);
  #endif
         tty_flip_buffer_push(s->port.state->port.tty->port);
         rx_count = 0;
  }

  }
}//ifm
else//error
{
    while (fsr& WK2XXX_RDAT)/**/
        {
            wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FDAT,dat);
        ch = (int)dat[0];

#ifdef _DEBUG_WK2XXX

        printk(KERN_ALERT "wk2xxx_rx_chars()----port:%lx--RXDAT:0x%x----\n",s->port.iobase,ch);
#endif

        s->port.icount.rx++;
        //rx_count++;
#ifdef _DEBUG_WK2XXX1
            printk(KERN_ALERT "wk2xxx_rx_chars()----port:%lx error\n",s->port.iobase);
#endif
            flg = TTY_NORMAL;
        if (lsr&(WK2XXX_OE |WK2XXX_FE|WK2XXX_PE|WK2XXX_BI))
                {
               printk(KERN_ALERT "wk2xxx_rx_chars()----port:%lx error,lsr:%x!!!!!!!!!!!!!!!!!\n",s->port.iobase,lsr);
                        //goto handle_error;
            if (lsr & WK2XXX_PE)
                {
                        s->port.icount.parity++;
                        status |= WK2XXX_STATUS_PE;
                        flg = TTY_PARITY;
                }
                if (lsr & WK2XXX_FE)
                {
                        s->port.icount.frame++;
                        status |= WK2XXX_STATUS_FE;
                        flg = TTY_FRAME;
                }
                if (lsr & WK2XXX_OE)
                {
                        s->port.icount.overrun++;
                        status |= WK2XXX_STATUS_OE;
                        flg = TTY_OVERRUN;
                }
                if(lsr&fsr & WK2XXX_BI)
                {
                        s->port.icount.brk++;
                        status |= WK2XXX_STATUS_BRK;
                        flg = TTY_BREAK;
                }
                
                if (++ignored > 100) 
                       goto out;
                
                 goto ignore_char;       
    }

error_return:
    if (uart_handle_sysrq_char(&s->port,ch))//.state, ch))
        goto ignore_char;
        
        uart_insert_char(&s->port, status, WK2XXX_STATUS_OE, ch, flg);
        rx_count++;
        
        if ((rx_count >= 64 ) && (s->port.state->port.tty->port != NULL)) 
        {
         tty_flip_buffer_push(s->port.state->port.tty->port);
         rx_count = 0;
        } 
#ifdef _DEBUG_WK2XXX1
                printk(KERN_ALERT  " s->port.icount.rx = 0x%x char = 0x%x flg = 0x%X port = %lx rx_count = %d\n",s->port.icount.rx,ch,flg,s->port.iobase,rx_count);
#endif
        ignore_char:

            wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FSR,dat);
            fsr = dat[0];
            wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_LSR,dat);
            lsr = dat[0];
        }
out:
	if((rx_count > 0)&&(s->port.state->port.tty->port != NULL))
{
#ifdef _DEBUG_WK2XXX1
        printk(KERN_ALERT  "push buffer tty flip port = :%lx count = :%d\n",s->port.iobase,rx_count);
#endif
        tty_flip_buffer_push(s->port.state->port.tty->port);
        rx_count = 0;
}

}//if()else

 #if 0
   printk(KERN_ALERT  " rx_num = :%d\n",s->port.icount.rx);
 #endif

#ifdef _DEBUG_WK2XXX
                 printk(KERN_ALERT "wk2xxx_rx_chars()---------out---\n");
#endif

      	return;
#ifdef SUPPORT_SYSRQ
        s->port.state->sysrq = 0;
#endif
        goto error_return;

#ifdef _DEBUG_WK2XXX
    	printk( "--wk2xxx_rx_chars---exit---\n");
#endif

}

static void wk2xxx_tx_chars(struct uart_port *port)
{


    	struct wk2xxx_port *s = container_of(port,struct wk2xxx_port,port);
    	uint8_t fsr,tfcnt,dat[1],txbuf[255]={0};
    	int count,tx_count,i;
#ifdef _DEBUG_WK2XXX5
printk( "--wk2xxx_tx_chars---in---\n");
#endif
        if (s->port.x_char) 
        {   
        #ifdef _DEBUG_WK2XXX
        printk(KERN_ALERT "wk2xxx_tx_chars   s->port.x_char:%x,port = %lx\n",s->port.x_char,s->port.iobase);
       #endif
            wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FDAT,s->port.x_char);
            s->port.icount.tx++;
            s->port.x_char = 0;
            goto out;
        }

        if(uart_circ_empty(&s->port.state->xmit) || uart_tx_stopped(&s->port))
        {
            goto out;

        }

    /*
     * Tried using FIFO (not checking TNF) for fifo fill:
     * still had the '1 bytes repeated' problem.
    */
    	wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FSR,dat);
    	fsr = dat[0];

    	wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_TFCNT,dat); 
    	tfcnt= dat[0];
#ifdef _DEBUG_WK2XXX
printk(KERN_ALERT "wk2xxx_tx_chars   fsr:0x%x,rfcnt:0x%x,port = %lx\n",fsr,tfcnt,s->port.iobase);
#endif
    	if(tfcnt==0)
    	{
	     tx_count=(fsr & WK2XXX_TFULL)?0:255;
		#ifdef _DEBUG_WK2XXX
        printk(KERN_ALERT "wk2xxx_tx_chars2   tx_count:%x,port = %lx\n",tx_count,s->port.iobase);
		#endif 
    	}
    	else
    	{
		tx_count=255-tfcnt;
		#ifdef _DEBUG_WK2XXX
        printk(KERN_ALERT "wk2xxx_tx_chars2   tx_count:%x,port = %lx\n",tx_count,s->port.iobase);
		#endif 
    	}

#ifdef _DEBUG_WK2XXX
    printk(KERN_ALERT "fsr:%x\n",fsr);
#endif
   

	count = tx_count;
	i=0;
	do
	{
  		if(uart_circ_empty(&s->port.state->xmit))
     			break;
	   	txbuf[i]=s->port.state->xmit.buf[s->port.state->xmit.tail];
	   	s->port.state->xmit.tail = (s->port.state->xmit.tail + 1) & (UART_XMIT_SIZE - 1);
	   	s->port.icount.tx++;
	   	i++;
#ifdef _DEBUG_WK2XXX
        printk(KERN_ALERT "tx_chars:0x%x--\n",txbuf[i-1]);
#endif
   
}while(--count>0);

#if 1
	wk2xxx_write_fifo(s->spi_wk,s->port.iobase,i,txbuf);
#else
	for(count=0;count<i;count++)
	{
   		wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FDAT,txbuf[count]);	
	}
#endif


#ifdef _DEBUG_WK2XXX
printk(KERN_ALERT "icount.tx:%d,xmit.head1:%d,xmit.tail:%d,UART_XMIT_SIZE::%lx,char:%x,fsr:0x%x,port = %lx\n",s->port.icount.tx,s->port.state->xmit.head,s->port.state->xmit.tail,UART_XMIT_SIZE,s->port.state->xmit.buf[s->port.state->xmit.tail],fsr,s->port.iobase);
#endif
    	out:wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FSR,dat);
          fsr = dat[0];
        if(((fsr&WK2XXX_TDAT)==0)&&((fsr&WK2XXX_TBUSY)==0))
        {
           if (uart_circ_chars_pending(&s->port.state->xmit) < WAKEUP_CHARS)
               uart_write_wakeup(&s->port); 

           if (uart_circ_empty(&s->port.state->xmit))
            {
               wk2xxx_stop_tx(&s->port);
            }
        }
#ifdef _DEBUG_WK2XXX
    	printk( "--wk2xxx_tx_chars---exit---\n");
#endif


}

static irqreturn_t wk2xxx_irq(int irq, void *dev_id)//
{
        struct wk2xxx_port *s = dev_id;
    	disable_irq_nosync(s->port.irq);
#if 0
        printk( "--wk2xxx_irq---in---\n");
#endif       
        s->irq_flag = 1;
    	if(wk2xxx_dowork(s))
    	{
    	    ;
    	}
    	else
    	{
        	s->irq_flag = 0;
        	s->irq_fail = 1;    
    	}
    
#ifdef _DEBUG_WK2XXX
        printk( "--wk2xxx_irq---exit---\n");
#endif

    	return IRQ_HANDLED;
}

static void wk2xxxirq_app(struct uart_port *port)//
{
    struct wk2xxx_port *s = container_of(port,struct wk2xxx_port,port);
    unsigned int  pass_counter = 0;
    uint8_t sifr,gifr,sier,dat[1];
#ifdef _DEBUG_WK2XXX
    printk(KERN_ALERT "wk2xxxirq_app()------port:%lx--------------\n",s->port.iobase);
#endif		
#if 0
    uint8_t gier,sifr0,sifr1,sifr2,sifr3,sier1,sier0,sier2,sier3;
 #endif                
    wk2xxx_read_global_reg(s->spi_wk,WK2XXX_GIFR ,dat);
    gifr = dat[0];
#if 0
    wk2xxx_read_global_reg(s->spi_wk,WK2XXX_GIER ,dat);
    gier = dat[0];
    wk2xxx_read_slave_reg(s->spi_wk,1,WK2XXX_SIFR,&sifr0);
    wk2xxx_read_slave_reg(s->spi_wk,2,WK2XXX_SIFR,&sifr1);
    wk2xxx_read_slave_reg(s->spi_wk,3,WK2XXX_SIFR,&sifr2);
    wk2xxx_read_slave_reg(s->spi_wk,4,WK2XXX_SIFR,&sifr3);
    wk2xxx_read_slave_reg(s->spi_wk,1,WK2XXX_SIER,&sier0);
    wk2xxx_read_slave_reg(s->spi_wk,2,WK2XXX_SIER,&sier1);
    wk2xxx_read_slave_reg(s->spi_wk,3,WK2XXX_SIER,&sier2);
    wk2xxx_read_slave_reg(s->spi_wk,4,WK2XXX_SIER,&sier3);
    printk(KERN_ALERT "irq_app....gifr:%x  gier:%x  sier1:%x  sier2:%x sier3:%x sier4:%x   sifr1:%x sifr2:%x sifr3:%x sifr4:%x \n",gifr,gier,sier0,sier1,sier2,sier3,sifr0,sifr1,sifr2,sifr3);
#endif      
        
                

        switch(s->port.iobase)
        {
                case 1 :
                    if(!(gifr & WK2XXX_UT1INT))
                    {
                        return;
                    }
                    break;
                case 2 :
                    if(!(gifr & WK2XXX_UT2INT))
                    {            
                        return;
                    }                                     
                    break;
                case 3 :
                    if(!(gifr & WK2XXX_UT3INT))
                    {            
                        return;
                    }
                    break;
                case 4 :
                    if(!(gifr & WK2XXX_UT4INT))
                    {               
                        return;
                    }
                    break;
                    default:
                    break;
                                
        }
        
        wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIFR,dat);
        sifr = dat[0];
        wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,dat);
        sier = dat[0];
#ifdef _DEBUG_WK2XXX1
        printk(KERN_ALERT "irq_app..........sifr:%x sier:%x \n",sifr,sier);
#endif
        do {
                if ((sifr&WK2XXX_RFTRIG_INT)||(sifr&WK2XXX_RXOVT_INT))
                {
                    wk2xxx_rx_chars(&s->port);
                }
        
                if ((sifr & WK2XXX_TFTRIG_INT)&&(sier & WK2XXX_TFTRIG_IEN ))
                {
                    wk2xxx_tx_chars(&s->port);
                    return;
                }
                if (pass_counter++ > WK2XXX_ISR_PASS_LIMIT)
                    break;
                wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIFR,dat);
                sifr = dat[0];
                wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,dat);
                sier = dat[0];
#ifdef _DEBUG_WK2XXX1
    printk(KERN_ALERT "irq_app...........rx............tx  sifr:%x sier:%x port:%lx\n",sifr,sier,s->port.iobase);
#endif
	} while ((sifr&WK2XXX_RXOVT_INT)||(sifr & WK2XXX_RFTRIG_INT)||((sifr & WK2XXX_TFTRIG_INT)&&(sier & WK2XXX_TFTRIG_IEN)));
#ifdef _DEBUG_WK2XXX
    printk(KERN_ALERT "wk2xxxirq_app()---------exit---\n");
#endif
        
}


/*
 *   Return TIOCSER_TEMT when transmitter is not busy.
 */

static u_int wk2xxx_tx_empty(struct uart_port *port)// or query the tx fifo is not empty?
{
    uint8_t tx;
    struct wk2xxx_port *s = container_of(port,struct wk2xxx_port,port);
#ifdef _DEBUG_WK2XXX
    printk(KERN_ALERT "wk2xxx_tx_empty()---------in---\n");
#endif
	mutex_lock(&wk2xxxs_lock);
	if(!(s->tx_empty_flag || s->tx_empty_fail))
	{
	    wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FSR,&tx);
	    while((tx & WK2XXX_TDAT)|(tx&WK2XXX_TBUSY))
	   	{
	   		wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FSR,&tx);
	   	}
    	s->tx_empty = ((tx & WK2XXX_TDAT)|(tx&WK2XXX_TBUSY))<=0;
		if(s->tx_empty)
		{
		    s->tx_empty_flag =0;
		    s->tx_empty_fail=0;
		}
		else
		{
		    s->tx_empty_fail=0;
		    s->tx_empty_flag =0;
		}
	}
	mutex_unlock(&wk2xxxs_lock);

#ifdef _DEBUG_WK2XXX5
       printk(KERN_ALERT "s->tx_empty_fail----FSR:%d--s->tx_empty:%d--\n",rx,s->tx_empty);
#endif
      
#ifdef _DEBUG_WK2XXX
        printk(KERN_ALERT "wk2xxx_tx_empty----------exit---\n");
#endif
    	return s->tx_empty;


}

static void wk2xxx_set_mctrl(struct uart_port *port, u_int mctrl)//nothing
{
#ifdef _DEBUG_WK2XXX
    printk(KERN_ALERT "%s!!\n", __func__);
#endif
}
static u_int wk2xxx_get_mctrl(struct uart_port *port)// since no modem control line
{       
#ifdef _DEBUG_WK2XXX
	printk(KERN_ALERT "%s!!\n", __func__);
#endif
        return TIOCM_CTS | TIOCM_DSR | TIOCM_CAR;
}


/*
 *  interrupts disabled on entry
 */

static void wk2xxx_stop_tx(struct uart_port *port)//
{

    uint8_t dat[1],sier,sifr;
	struct wk2xxx_port *s = container_of(port,struct wk2xxx_port,port);
#ifdef _DEBUG_WK2XXX
printk(KERN_ALERT "-wk2xxx_stop_tx------in---\n");
#endif 
    mutex_lock(&wk2xxxs_lock);
	if(!(s->stop_tx_flag||s->stop_tx_fail))
    {
	    wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,dat);
		sier=dat[0];
		s->stop_tx_fail=(sier&WK2XXX_TFTRIG_IEN)>0;
		if(s->stop_tx_fail)
        {
            wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,dat);
            sier=dat[0];
            sier&=~WK2XXX_TFTRIG_IEN;
            wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,sier);

			
            wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIFR,dat);
            sifr=dat[0];
            sifr&= ~WK2XXX_TFTRIG_INT;
            wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIFR,sifr);
            s->stop_tx_fail =0;
            s->stop_tx_flag=0;
         }
    	else
    	{
            s->stop_tx_fail =0;
            s->stop_tx_flag=0;
		}
        }
	mutex_unlock(&wk2xxxs_lock); 
#ifdef _DEBUG_WK2XXX4
    printk(KERN_ALERT "-wk2xxx_stop_tx------exit---\n");
#endif
        
}

/*
 *  * interrupts may not be disabled on entry
*/
static void wk2xxx_start_tx(struct uart_port *port)
{
    
		struct wk2xxx_port *s = container_of(port,struct wk2xxx_port,port);
#ifdef _DEBUG_WK2XXX
printk(KERN_ALERT "-wk2xxx_start_tx------in---\n");
#endif
        if(!(s->start_tx_flag||s->start_tx_fail))
        {    
				s->start_tx_flag = 1;
            	if(wk2xxx_dowork(s))
            	{
                    ;
            	}
            	else
            	{
                    s->start_tx_fail = 1;
					s->start_tx_flag = 0;
            	}
         }

#ifdef _DEBUG_WK2XXX
printk(KERN_ALERT "-wk2xxx_start_tx------exit---\n");
#endif



}

/*
 *  * Interrupts enabled
*/

static void wk2xxx_stop_rx(struct uart_port *port)
{
        struct wk2xxx_port *s = container_of(port,struct wk2xxx_port,port);
#ifdef _DEBUG_WK2XXX
printk(KERN_ALERT "-wk2xxx_stop_rx------in---\n");
#endif
       	if(!(s->stop_rx_flag ||s->stop_rx_fail ))
        {
				s->stop_rx_flag = 1;
            	if(wk2xxx_dowork(s))
            	{
                	;
            	}
            	else
            	{
                	s->stop_rx_flag = 0;
                	s->stop_rx_fail = 1;
            	}
         }


#ifdef _DEBUG_WK2XXX
    printk(KERN_ALERT "-wk2xxx_stop_rx------exit---\n");
#endif


}


/*
 *  * No modem control lines
 *   */
static void wk2xxx_enable_ms(struct uart_port *port)    //nothing
{
#ifdef _DEBUG_WK2XXX
			printk(KERN_ALERT "%s!!\n", __func__);
#endif


}
/*
 *  * Interrupts always disabled.
*/   
static void wk2xxx_break_ctl(struct uart_port *port, int break_state)
{
#ifdef _DEBUG_WK2XXX
	printk(KERN_ALERT "%s!!\n", __func__);
#endif
}


static int wk2xxx_startup(struct uart_port *port)//i
{

        uint8_t gena,grst,gier,sier,scr,dat[1];
        struct wk2xxx_port *s = container_of(port,struct wk2xxx_port,port);
        char b[12];
#ifdef _DEBUG_WK2XXX5
		printk(KERN_ALERT "-wk2xxx_startup------in---\n");
#endif
        if (s->suspending)
            return 0;
        
        s->force_end_work = 0;
        sprintf(b, "wk2xxx-%d", (uint8_t)s->port.iobase);
		s->workqueue = create_workqueue(b);
	    
        if (!s->workqueue) 
        {
            dev_warn(&s->spi_wk->dev, "cannot create workqueue\n");
            return -EBUSY;
        }
        
        INIT_WORK(&s->work, wk2xxx_work);
        
        if (s->wk2xxx_hw_suspend)
        	s->wk2xxx_hw_suspend(0);
          
        wk2xxx_read_global_reg(s->spi_wk,WK2XXX_GENA,dat);
        gena=dat[0];
        switch (s->port.iobase)
        {
          case 1:
                  gena|=WK2XXX_UT1EN;
                  wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GENA,gena);
                  break;
          case 2:
                  gena|=WK2XXX_UT2EN;
                  wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GENA,gena);
                  break;
          case 3:
                 gena|=WK2XXX_UT3EN;
                 wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GENA,gena);
                  break;
          case 4:
                  gena|=WK2XXX_UT4EN;
                  wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GENA,gena);
                  break;
          default:
		          printk(KERN_ALERT ":con_wk2xxx_subport bad iobase %d\n", (uint8_t)s->port.iobase);
                  break;
        }
 
        wk2xxx_read_global_reg(s->spi_wk,WK2XXX_GRST,dat);
        grst=dat[0];
        switch (s->port.iobase)
        {
             case 1:
                    grst|=WK2XXX_UT1RST;
                    wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GRST,grst);
                    break;
             case 2:
                    grst|=WK2XXX_UT2RST;
                    wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GRST,grst);
                    break;
             case 3:
                   grst|=WK2XXX_UT3RST;
                   wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GRST,grst);
                    break;
             case 4:
                    grst|=WK2XXX_UT4RST;
                    wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GRST,grst);
                    break;
            default:
     printk(KERN_ALERT ":con_wk2xxx_subport bad iobase %d\n", (uint8_t)s->port.iobase);
                    break;
        }
        
        wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,dat);
        sier = dat[0];
        sier &= ~WK2XXX_TFTRIG_IEN;
        sier |= WK2XXX_RFTRIG_IEN;
        sier |= WK2XXX_RXOUT_IEN;
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER,sier);

        wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SCR,dat);
        scr = dat[0] | WK2XXX_TXEN|WK2XXX_RXEN;
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SCR,scr);

    //initiate the fifos
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FCR,0xff);//initiate the fifos
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FCR,0xfc);
    //set rx/tx interrupt 
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SPAGE,1);  
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_RFTL,0x40);
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_TFTL,0X20);
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SPAGE,0);  
    //enable the sub port interrupt
        wk2xxx_read_global_reg(s->spi_wk,WK2XXX_GIER,dat);
        gier = dat[0];
        
        switch (s->port.iobase)
	{
          case 1:
                gier|=WK2XXX_UT1IE;
                wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GIER,gier);
                break;
          case 2:
                gier|=WK2XXX_UT2IE;
                wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GIER,gier);
                break;
          case 3:
                gier|=WK2XXX_UT3IE;
                wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GIER,gier);
                break;
          case 4:
                gier|=WK2XXX_UT4IE;
                wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GIER,gier);
                break;
        default:
                printk(KERN_ALERT ": bad iobase %d\n", (uint8_t)s->port.iobase);
                break;
        }

        if (s->wk2xxx_hw_suspend)
            s->wk2xxx_hw_suspend(0);
        msleep(50);


        uart_circ_clear(&s->port.state->xmit);
        wk2xxx_enable_ms(&s->port);

      // request irq
        if(request_irq(s->port.irq, wk2xxx_irq,IRQF_SHARED|IRQF_TRIGGER_LOW, "wk2xxx_irq_gpio", s) < 0)
        {
                dev_warn(&s->spi_wk->dev, "cannot allocate irq %d\n", s->irq);
                s->port.irq = 0;
                destroy_workqueue(s->workqueue);
                s->workqueue = NULL;
                return -EBUSY;
        }       udelay(100);
        udelay(100);
#ifdef _DEBUG_WK2XXX5
        printk(KERN_ALERT "-wk2xxx_startup------exit---\n");
#endif

       return 0;
}
//* Power down all displays on reboot, poweroff or halt *

static void wk2xxx_shutdown(struct uart_port *port)
{

    uint8_t gena,dat[1];
    struct wk2xxx_port *s = container_of(port,struct wk2xxx_port,port);
#ifdef _DEBUG_WK2XXX
    printk(KERN_ALERT "-wk2xxx_shutdown------in---\n");
#endif
    	if (s->suspending)
       		return;
       	s->force_end_work = 1;
    	if (s->workqueue) 
    	{
    	    flush_workqueue(s->workqueue);
			destroy_workqueue(s->workqueue);
			s->workqueue = NULL;
    	}
    
    	if (s->port.irq)
    	{    
          free_irq(s->port.irq, s);//释放中断
    	}
     
     	wk2xxx_read_global_reg(s->spi_wk,WK2XXX_GENA,dat);
        gena=dat[0];
        switch (s->port.iobase)
    	{
        	case 1:
                gena&=~WK2XXX_UT1EN;
                wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GENA,gena);
                break;
          case 2:
                 gena&=~WK2XXX_UT2EN;
                 wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GENA,gena);
                 break;
          case 3:
                 gena&=~WK2XXX_UT3EN;
                 wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GENA,gena);
                 break;
          case 4:
                 gena&=~WK2XXX_UT4EN;
                  wk2xxx_write_global_reg(s->spi_wk,WK2XXX_GENA,gena);
                  break;
          default:
                  printk(KERN_ALERT ":con_wk2xxx_subport bad iobase %d\n", (uint8_t)s->port.iobase);
                  break;
          } 

#ifdef _DEBUG_WK2XXX
        printk(KERN_ALERT "-wk2xxx_shutdown-----exit---\n");
#endif

        return ;
}

static void conf_wk2xxx_subport(struct uart_port *port)//i
{   


	struct wk2xxx_port *s = container_of(port,struct wk2xxx_port,port);
	uint8_t old_sier,fwcr,lcr,scr,scr_ss,dat[1],baud0_ss,baud1_ss,pres_ss;
#ifdef _DEBUG_WK2XXX
    printk(KERN_ALERT "-conf_wk2xxx_subport------in---\n");
#endif
	lcr = s->new_lcr;
	scr_ss = s->new_scr;
	baud0_ss=s->new_baud0;
	baud1_ss=s->new_baud1;
	pres_ss=s->new_pres;
	fwcr=s->new_fwcr;
	wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER ,dat);
	old_sier = dat[0];
	wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER ,old_sier&(~(WK2XXX_TFTRIG_IEN | WK2XXX_RFTRIG_IEN | WK2XXX_RXOUT_IEN)));
    //local_irq_restore(flags);
	do{
       	wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FSR,dat);
	  } while (dat[0] & WK2XXX_TBUSY);
        // then, disable tx and rx
        wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SCR,dat);
        scr = dat[0];
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SCR ,scr&(~(WK2XXX_RXEN|WK2XXX_TXEN)));
        // set the parity, stop bits and data size //
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_LCR ,lcr);
		/*set cts  and rst*/
		if(fwcr>0){  
#ifdef _DEBUG_WK2XXX
        printk(KERN_ALERT "-conf_wk2xxx_subport-set ctsrts--fwcr=0x%X\n",fwcr);
#endif
				wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FWCR,fwcr);
				wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SPAGE ,1);
				wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FWTH,0XF0);
				wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_FWTL,0X80);
				wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SPAGE ,0);
		}
    
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SIER ,old_sier);
        // set the baud rate //
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SPAGE ,1);
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_BAUD0 ,baud0_ss);
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_BAUD1 ,baud1_ss);
        wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_PRES ,pres_ss);
#ifdef _DEBUG_WK2XXX2
         wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_BAUD0,dat);
         printk(KERN_ALERT ":WK2XXX_BAUD0=0x%X\n", dat[0]);
         wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_BAUD1,dat);
         printk(KERN_ALERT ":WK2XXX_BAUD1=0x%X\n", dat[0]);
         wk2xxx_read_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_PRES,dat);
         printk(KERN_ALERT ":WK2XXX_PRES=0x%X\n", dat[0]);
#endif
         wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SPAGE ,0);
         wk2xxx_write_slave_reg(s->spi_wk,s->port.iobase,WK2XXX_SCR ,scr|(WK2XXX_RXEN|WK2XXX_TXEN));


#ifdef _DEBUG_WK2XXX
        printk(KERN_ALERT "-conf_wk2xxx_subport------exit---\n");
#endif

}


// change speed
static void wk2xxx_termios( struct uart_port *port, struct ktermios *termios,
            struct ktermios *old)
{

	struct wk2xxx_port *s = container_of(port,struct wk2xxx_port,port);
	int baud = 0;
	uint8_t lcr=0,fwcr,baud1,baud0,pres;
	unsigned short cflag;
	unsigned short lflag;
#ifdef _DEBUG_WK2XXX
printk(KERN_ALERT "-wk32xx_termios------in---\n");
#endif
	
	cflag = termios->c_cflag;
	lflag = termios->c_lflag;
#ifdef _DEBUG_WK2XXX1
    printk(KERN_ALERT "cflag := 0x%X  lflag : = 0x%X\n",cflag,lflag);
#endif
	baud1=0;
	baud0=0;
	pres=0;
	baud = tty_termios_baud_rate(termios);

	switch (baud) {
		case 600:
			baud1=0x4;
			baud0=0x7f;
			pres=0;
			break;
		case 1200:
			baud1=0x2;
			baud0=0x3F;
			pres=0;
			break;
		case 2400:
			baud1=0x1;
			baud0=0x1f;
			pres=0;
			break;
		case 4800:
			baud1=0x00;
			baud0=0x8f;
			pres=0;
			break;
		case 9600:
			baud1=0x00;
			baud0=0x47;
			pres=0;
			break;
		case 19200:
			baud1=0x00;
			baud0=0x23;
			pres=0;
			break;
		case 38400:
			baud1=0x00;
			baud0=0x11;
			pres=0;
			break;
		case 76800:
			baud1=0x00;
			baud0=0x08;
			pres=0;
			break;  
		case 1800:
			baud1=0x01;
			baud0=0x7f;
			pres=0;
			break;
		case 3600:
			baud1=0x00;
			baud0=0xbf;
			pres=0;
			break;
		case 7200:
			baud1=0x00;
			baud0=0x5f;
			pres=0;
			break;
		case 14400:
			baud1=0x00;
			baud0=0x2f;
			pres=0;
			break;
		case 28800:
			baud1=0x00;
			baud0=0x17;
			pres=0;
			break;
		case 57600:
			baud1=0x00;
			baud0=0x0b;
			pres=0;
			break;
		case 115200:
			baud1=0x00;
			baud0=0x05;
			pres=0;
			break;
		case 230400:
			baud1=0x00;
			baud0=0x02;
			pres=0;
			break;
		default:  
			baud1=0x00;
			baud0=0x00;
			pres=0;
			break;
	}
	tty_termios_encode_baud_rate(termios, baud, baud);

	/* we are sending char from a workqueue so enable */


#ifdef _DEBUG_WK2XXX
            printk(KERN_ALERT "wk2xxx_termios()----port:%lx--lcr:0x%x- cflag:0x%x-CSTOPB:0x%x,PARENB:0x%x,PARODD:0x%x--\n",s->port.iobase,lcr,cflag,CSTOPB,PARENB,PARODD);
#endif

        lcr =0;
        if (cflag & CSTOPB)
                lcr|=WK2XXX_STPL;//two  stop_bits
        else
                lcr&=~WK2XXX_STPL;//one  stop_bits

        if (cflag & PARENB) {
                lcr|=WK2XXX_PAEN;//enbale spa
                if (!(cflag & PARODD)){
                        lcr |= WK2XXX_PAM1;
                        lcr &= ~WK2XXX_PAM0;
                }
                else{
                        lcr |= WK2XXX_PAM0;//PAM0=1
                        lcr &= ~WK2XXX_PAM1;//PAM1=0
                }
        }
        else{
                lcr&=~WK2XXX_PAEN;
        }

		/*set rts and cts*/
		fwcr=(termios->c_cflag&CRTSCTS)?0X30:0;
		

#ifdef _DEBUG_WK2XXX
       printk(KERN_ALERT "wk2xxx_termios()----port:%lx--lcr:0x%x- cflag:0x%x-CSTOPB:0x%x,PARENB:0x%x,PARODD:0x%x--\n",s->port.iobase,lcr,cflag,CSTOPB,PARENB,PARODD);
#endif

	s->new_baud1=baud1;
	s->new_baud0=baud0;	
	s->new_pres=pres;
	s->new_lcr = lcr;
	s->new_fwcr = fwcr;

#ifdef _DEBUG_WK2XXX
       printk(KERN_ALERT "wk2xxx_termios()----port:%lx--NEW_FWCR-\n",s->port.iobase,s->new_fwcr);
#endif


	conf_wk2xxx_subport(&s->port);  

#ifdef _DEBUG_WK2XXX
      printk(KERN_ALERT "-wk2xxx_termios------exit---\n");
#endif
}


static const char *wk2xxx_type(struct uart_port *port)
{


#ifdef _DEBUG_WK2XXX
        printk(KERN_ALERT "%s!!\n", __func__);
#endif
        return port->type == PORT_WK2XXX ? "wk2xxx" : NULL;//this is defined in serial_core.h
}


static void wk2xxx_release_port(struct uart_port *port)
{
  #ifdef _DEBUG_WK2XXX
       printk(KERN_ALERT "%s!!\n", __func__);
  #endif

}


static int wk2xxx_request_port(struct uart_port *port)//no such memory region needed for wk2xxx
{
#ifdef _DEBUG_WK2XXX
	printk(KERN_ALERT "%s!!\n", __func__);
#endif
    return 0;
}


static void wk2xxx_config_port(struct uart_port *port, int flags)
{
        struct wk2xxx_port *s = container_of(port,struct wk2xxx_port,port);

#ifdef _DEBUG_WK2XXX
        printk(KERN_ALERT "%s!!\n", __func__);
#endif

        if (flags & UART_CONFIG_TYPE && wk2xxx_request_port(port) == 0)
               s->port.type = PORT_WK2XXX;
}


static int wk2xxx_verify_port(struct uart_port *port, struct serial_struct *ser)
{

        int ret = 0;
#ifdef _DEBUG_WK2XXX
				printk(KERN_ALERT "%s!!\n", __func__);
#endif

        if (ser->type != PORT_UNKNOWN && ser->type != PORT_WK2XXX)
                ret = -EINVAL;
        if (port->irq != ser->irq)
                ret = -EINVAL;
        if (ser->io_type != SERIAL_IO_PORT)
                ret = -EINVAL;
        //if (port->uartclk / 16 != ser->baud_base)
        //      ret = -EINVAL;
        if (port->iobase != ser->port)
                ret = -EINVAL;
        if (ser->hub6 != 0)
                ret = -EINVAL;
        return ret;
}




static struct uart_ops wk2xxx_pops = {
        tx_empty:       wk2xxx_tx_empty,
        set_mctrl:      wk2xxx_set_mctrl,
        get_mctrl:      wk2xxx_get_mctrl,
        stop_tx:        wk2xxx_stop_tx,
        start_tx:       wk2xxx_start_tx,
        stop_rx:        wk2xxx_stop_rx,
        enable_ms:      wk2xxx_enable_ms,
        break_ctl:      wk2xxx_break_ctl,
        startup:        wk2xxx_startup,
        shutdown:       wk2xxx_shutdown,
        set_termios:    wk2xxx_termios,
        type:           wk2xxx_type,
        release_port:   wk2xxx_release_port,
        request_port:   wk2xxx_request_port,
        config_port:    wk2xxx_config_port,
        verify_port:    wk2xxx_verify_port,

};
static struct uart_driver wk2xxx_uart_driver = {


        owner:                  THIS_MODULE,
        major:               SERIAL_WK2XXX_MAJOR,
#ifdef CONFIG_DEVFS_FS
        driver_name:            "ttySWK",
        dev_name:               "ttysWK",
#else
        driver_name:            "ttySWK",
        dev_name:               "ttysWK",
#endif
        minor:                  MINOR_START,
        nr:                     NR_PORTS,
        cons:                   NULL
};

static int uart_driver_registered;
static struct spi_driver wk2xxx_driver;

/*
 *解析设备\E6\A0?
 */
//#ifdef CONFIG_OF
static int rockchip_spi_parse_dt(struct device *dev)
{

	int irq_gpio, irq_flags, irq; 
#ifdef _DEBUG_WK2XXX
    printk(KERN_ERR "-rockchip_spi_parse_dt()------in---\n");
#endif
	//从设备树获取IRQ——GPIO
	irq_gpio = of_get_named_gpio_flags(dev->of_node, "irq_gpio", 0,(enum of_gpio_flags *)&irq_flags);
    	if (!gpio_is_valid(irq_gpio))
    	{
			printk(KERN_ERR"invalid wk2xxx_irq_gpio: %d\n", irq_gpio);
			return -1;
    	}
   
    	irq = gpio_to_irq(irq_gpio);
    	if(!irq)
    	{
		printk(KERN_ERR"wk2xxx_irqGPIO: %d get irq failed!\n", irq);
		//gpio_free(s->irq_gpio);
		return -1;
    	}
	printk(KERN_ERR"wk2xxx_irq_gpio: %d, irq: %d", irq_gpio, irq);

	#ifdef _DEBUG_WK2XXX
	printk(KERN_ERR"-rockchip_spi_parse_dt()------out---\n");
	#endif
	return irq;
}



static int wk2xxx_probe(struct spi_device *spi)
{
    	uint8_t i;
    	int status, irq;
    	uint8_t dat[1];
//////////////////test spi////////////////////////

	do
	{
		wk2xxx_read_global_reg(spi,WK2XXX_GENA,dat);
		printk(KERN_ERR "wk2xxx_probe()  GENA = 0x%X\n",dat[0]);
		wk2xxx_write_global_reg(spi,WK2XXX_GENA,0xf5);
		wk2xxx_read_global_reg(spi,WK2XXX_GENA,dat);
		printk(KERN_ERR "wk2xxx_probe()  GENA = 0x%X\n",dat[0]);
		wk2xxx_write_global_reg(spi,WK2XXX_GENA,0xf0);
		wk2xxx_read_global_reg(spi,WK2XXX_GENA,dat);
		printk(KERN_ERR "wk2xxx_probe()  GENA = 0x%X\n",dat[0]);
	}while(0);
/////////////////////test spi //////////////////////////	

printk( KERN_ERR"-wk2xxx_probe()------in---\n");	
	irq = rockchip_spi_parse_dt(&spi->dev);
	if(irq<0)
	{
		return 1;
	}

    	wk2xxx_read_global_reg(spi,WK2XXX_GENA,dat);
    	if((dat[0]&0xf0)!=0x30)
        { 
          printk(KERN_ALERT "wk2xxx_probe()  GENA = 0x%X\n",dat[0]);
          printk(KERN_ERR "spi driver  error!!!!\n");
          return 1;
        }
    	mutex_lock(&wk2xxxs_lock);
    	if(!uart_driver_registered)
    	{
        	    uart_driver_registered = 1;
        	    status = uart_register_driver(&wk2xxx_uart_driver);
        	if (status)
        	{
             	printk(KERN_ERR "Couldn't register wk2xxx uart driver\n");
            	mutex_unlock(&wk2xxxs_lock);
            	return status;
        	}
    	}
          printk(KERN_ALERT "wk2xxx_serial_init.\n");

    	for(i =0;i<NR_PORTS;i++)
    	{
        	    struct wk2xxx_port *s = &wk2xxxs[i];//container_of(port,struct wk2xxx_port,port);
        	    s->tx_done       =0;
        	    s->spi_wk        = spi;
			    s->port.line     = i;
				s->port.ops      = &wk2xxx_pops;
				s->port.uartclk  = WK_CRASTAL_CLK;
				s->port.fifosize = 256;
				s->port.iobase   = i+1;
				s->port.irq      = irq;
				s->port.iotype   = SERIAL_IO_PORT;
				s->port.flags    = ASYNC_BOOT_AUTOCONF;
		        status = uart_add_one_port(&wk2xxx_uart_driver, &s->port);
       		if(status<0)
          	{
                  printk(KERN_ALERT "uart_add_one_port failed for line i:= %d with error %d\n",i,status);
		          mutex_unlock(&wk2xxxs_lock);
		          return status;
           	}
    	}
        printk(KERN_ALERT "uart_add_one_port status= 0x%d\n",status);
    	mutex_unlock(&wk2xxxs_lock);

    	return status;
}


static int wk2xxx_remove(struct spi_device *spi)
{

    	int i;
#ifdef _DEBUG_WK2XXX
    	printk( KERN_ERR"-wk2xxx_remove()------in---\n");
#endif

    	mutex_lock(&wk2xxxs_lock);
    	for(i =0;i<NR_PORTS;i++)
       	{
        	struct wk2xxx_port *s = &wk2xxxs[i];
        	uart_remove_one_port(&wk2xxx_uart_driver, &s->port);
       	}
    	printk( KERN_ERR"removing wk2xxx driver\n");
    	uart_unregister_driver(&wk2xxx_uart_driver);
    	mutex_unlock(&wk2xxxs_lock);
#ifdef _DEBUG_WK2XXX
   	    printk(KERN_ERR "-wk2xxx_remove()------exit---\n");
#endif

    	return 0;
}

static int wk2xxx_resume(struct spi_device *spi)
{
    	printk(KERN_ERR "resume wk2xxx");
    	return 0;
}


static const struct of_device_id rockchip_spi_wk2xxx_dt_match[] = {
        { .compatible = "wkmic,wk2124spi", },
		{ },
};
MODULE_DEVICE_TABLE(of, rockchip_spi_wk2xxx_dt_match);

static struct spi_driver wk2xxx_driver = {
        .driver = {
                .name           = "wk2xxxspi",
                .bus            = &spi_bus_type,
                .owner          = THIS_MODULE,
		.of_match_table = of_match_ptr(rockchip_spi_wk2xxx_dt_match),
        },

        .probe          = wk2xxx_probe,
        .remove         = wk2xxx_remove,
        .resume         = wk2xxx_resume,
};


static int __init wk2xxx_init(void)
{

        int retval;
        retval = spi_register_driver(&wk2xxx_driver);
        printk(KERN_ERR "%s,register spi return v = :%d\n",__func__,retval);
        return retval;
}



static void __exit wk2xxx_exit(void)
{
        printk(KERN_ERR "%s, TEST_REG:quit\n", __func__);
	    return spi_unregister_driver(&wk2xxx_driver);
}


module_init(wk2xxx_init);
module_exit(wk2xxx_exit);

MODULE_AUTHOR("WKMIC Ltd");
MODULE_DESCRIPTION("wk2xxx generic serial port driver");
MODULE_LICENSE("GPL");

wk2xxx.h

/*
*	WKIC Ltd.
*	WK2xxx.c
*	wk2xxx_GPIO_I2C DEMO Ver

ion :1.0 Data:2018-08-08
*	By  xuxunwei Tech 
*
*/
#ifndef	_SERIAL_WK2XXX_H       //_SERIAL_WK2XXX_H
#define  _SERIAL_WK2XXX_H
	
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/console.h>
#include <asm/irq.h>



/*****************************
***wkxxxx  Global register address defines
******************************/
#define 	WK2XXX_GENA     0X00
#define 	WK2XXX_GRST     0X01
#define		WK2XXX_GMUT     0X02
#define 	WK2XXX_GIER     0X10
#define 	WK2XXX_GIFR     0X11
#define 	WK2XXX_GPDIR    0X21
#define 	WK2XXX_GPDAT    0X31


/*****************************
*wkxxxx  slave uarts  register address defines
******************************/
#define 	WK2XXX_SPAGE    0X03
#define 	WK2XXX_PAGE1    1
#define 	WK2XXX_PAGE0    0

/*PAGE0*/
#define 	WK2XXX_SCR      0X04
#define 	WK2XXX_LCR      0X05
#define 	WK2XXX_FCR      0X06
#define 	WK2XXX_SIER     0X07
#define 	WK2XXX_SIFR     0X08
#define 	WK2XXX_TFCNT    0X09
#define 	WK2XXX_RFCNT    0X0A
#define 	WK2XXX_FSR      0X0B
#define 	WK2XXX_LSR      0X0C
#define 	WK2XXX_FDAT     0X0D
#define 	WK2XXX_FWCR     0X0E
#define 	WK2XXX_RS485    0X0F
/*PAGE1*/
#define 	WK2XXX_BAUD1    0X04
#define 	WK2XXX_BAUD0    0X05
#define 	WK2XXX_PRES     0X06
#define 	WK2XXX_RFTL     0X07
#define 	WK2XXX_TFTL     0X08
#define 	WK2XXX_FWTH     0X09
#define 	WK2XXX_FWTL     0X0A
#define 	WK2XXX_XON1     0X0B
#define 	WK2XXX_XOFF1    0X0C
#define 	WK2XXX_SADR     0X0D
#define 	WK2XXX_SAEN     0X0E
#define 	WK2XXX_RRSDLY   0X0F


//wkxxx register bit defines
/*GENA register*/
#define 	WK2XXX_UT4EN	  0x08
#define 	WK2XXX_UT3EN	  0x04
#define 	WK2XXX_UT2EN	  0x02
#define 	WK2XXX_UT1EN	  0x01
/*GRST register*/
#define 	WK2XXX_UT4SLEEP	0x80
#define 	WK2XXX_UT3SLEEP	0x40
#define 	WK2XXX_UT2SLEEP	0x20
#define 	WK2XXX_UT1SLEEP	0x10
#define 	WK2XXX_UT4RST	    0x08
#define 	WK2XXX_UT3RST		0x04
#define 	WK2XXX_UT2RST		0x02
#define 	WK2XXX_UT1RST		0x01
/*GIER register*/
#define 	WK2XXX_UT4IE		0x08
#define 	WK2XXX_UT3IE		0x04
#define 	WK2XXX_UT2IE		0x02
#define 	WK2XXX_UT1IE		0x01
/*GIFR register*/
#define 	WK2XXX_UT4INT		0x08
#define 	WK2XXX_UT3INT		0x04
#define 	WK2XXX_UT2INT		0x02
#define 	WK2XXX_UT1INT		0x01
/*SPAGE register*/
#define 	WK2XXX_SPAGE0	    0x00
#define 	WK2XXX_SPAGE1     0x01
/*SCR register*/
#define 	WK2XXX_SLEEPEN    0x04
#define 	WK2XXX_TXEN       0x02
#define 	WK2XXX_RXEN       0x01
/*LCR register*/
#define 	WK2XXX_BREAK	  0x20
#define 	WK2XXX_IREN     0x10
#define 	WK2XXX_PAEN     0x08
#define 	WK2XXX_PAM1     0x04
#define 	WK2XXX_PAM0     0x02
#define 	WK2XXX_STPL     0x01
/*FCR register*/
#define 	WK2XXX_TFEN     0x08
#define 	WK2XXX_RFEN     0x04
#define 	WK2XXX_TFRST    0x02
#define 	WK2XXX_RFRST    0x01
/*SIER register*/
#define 	WK2XXX_FERR_IEN      0x80
#define 	WK2XXX_CTS_IEN       0x40
#define 	WK2XXX_RTS_IEN       0x20
#define 	WK2XXX_XOFF_IEN      0x10
#define 	WK2XXX_TFEMPTY_IEN   0x08
#define 	WK2XXX_TFTRIG_IEN    0x04
#define 	WK2XXX_RXOUT_IEN     0x02
#define 	WK2XXX_RFTRIG_IEN    0x01
/*SIFR register*/
#define 	WK2XXX_FERR_INT      0x80
#define 	WK2XXX_CTS_INT       0x40
#define 	WK2XXX_RTS_INT       0x20
#define 	WK2XXX_XOFF_INT      0x10
#define 	WK2XXX_TFEMPTY_INT   0x08
#define 	WK2XXX_TFTRIG_INT    0x04
#define 	WK2XXX_RXOVT_INT     0x02
#define 	WK2XXX_RFTRIG_INT    0x01

/*TFCNT register*/
/*RFCNT register*/
/*FSR register*/
#define 	WK2XXX_RFOE      0x80
#define 	WK2XXX_RFBI      0x40
#define 	WK2XXX_RFFE      0x20
#define 	WK2XXX_RFPE      0x10
#define 	WK2XXX_RDAT      0x08
#define 	WK2XXX_TDAT      0x04
#define 	WK2XXX_TFULL     0x02
#define 	WK2XXX_TBUSY     0x01
/*LSR register*/
#define 	WK2XXX_OE        0x08
#define 	WK2XXX_BI        0x04
#define 	WK2XXX_FE        0x02
#define 	WK2XXX_PE        0x01
/*FWCR register*/
#define 	WK2XXX_RTS       0x02
#define 	WK2XXX_CTS       0x01
/*RS485 register*/
#define 	WK2XXX_RSRS485   0x40
#define 	WK2XXX_ATADD     0x20
#define 	WK2XXX_DATEN     0x10
#define 	WK2XXX_RTSEN     0x02
#define 	WK2XXX_RTSINV    0x01



//
#define 	NR_PORTS 	4

//
#define 	SERIAL_WK2XXX_MAJOR	    	207
#define 	CALLOUT_WK2XXX_MAJOR		  208	
#define 	MINOR_START		            5
//wk2xxx hardware configuration
#define		wk2xxx_spi_speed	10000000
#define 	IRQ_WK2XXX		GPIO7_A2
#define 	WK_CRASTAL_CLK		(3686400*2)
#define     MAX_WK2XXX           	4
#define 	WK2XXX_ISR_PASS_LIMIT	50
#define		PORT_WK2XXX            1
#endif

感觉就是随便写写

#191 Re: 全志 SOC » nano板子ns2009软件驱动和硬件问题 » 2019-10-28 08:34:50

ns2009 得把中断加上,又多占了一个中断口。

#192 Re: 君正Ingenic/X1000/X2000/T10/T20/T30 » 潜水很久了, 今天注册发个帖子说说 buildroot busybox 里面 添加 http 网页服务器 » 2019-10-28 08:33:23

kekemuyu 说:

文件服务器用go搭建不会超过10行代码,有时间在f1c100s试一下

go 编译出来的体积有点大吧, 还有我这个是要用浏览器交互一些数据,不只是文件上传。

请教 go 如何实现一个文件服务器呢?愿闻其详。

#193 Re: 君正Ingenic/X1000/X2000/T10/T20/T30 » 潜水很久了, 今天注册发个帖子说说 buildroot busybox 里面 添加 http 网页服务器 » 2019-10-26 17:31:08

用楼上@晕哥的代码保存文件OK了, 接下来要用 libcurl 做一个客户端.

代码在此: https://curl.haxx.se/libcurl/c/postit2.html

/***************************************************************************
 *                                  _   _ ____  _
 *  Project                     ___| | | |  _ \| |
 *                             / __| | | | |_) | |
 *                            | (__| |_| |  _ <| |___
 *                             \___|\___/|_| \_\_____|
 *
 * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
 *
 * This software is licensed as described in the file COPYING, which
 * you should have received as part of this distribution. The terms
 * are also available at https://curl.haxx.se/docs/copyright.html.
 *
 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 * copies of the Software, and permit persons to whom the Software is
 * furnished to do so, under the terms of the COPYING file.
 *
 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
 * KIND, either express or implied.
 *
 ***************************************************************************/
/* <DESC>
 * HTTP Multipart formpost with file upload and two additional parts.
 * </DESC>
 */
/* Example code that uploads a file name 'foo' to a remote script that accepts
 * "HTML form based" (as described in RFC1738) uploads using HTTP POST.
 *
 * The imaginary form we'll fill in looks like:
 *
 * <form method="post" enctype="multipart/form-data" action="examplepost.cgi">
 * Enter file: <input type="file" name="sendfile" size="40">
 * Enter file name: <input type="text" name="filename" size="30">
 * <input type="submit" value="send" name="submit">
 * </form>
 *
 * This exact source code has not been verified to work.
 */

#include <stdio.h>
#include <string.h>

#include <curl/curl.h>

int main(int argc, char *argv[])
{
  CURL *curl;
  CURLcode res;

  curl_mime *form = NULL;
  curl_mimepart *field = NULL;
  struct curl_slist *headerlist = NULL;
  static const char buf[] = "Expect:";

  curl_global_init(CURL_GLOBAL_ALL);

  curl = curl_easy_init();
  if(curl) {
    /* Create the form */
    form = curl_mime_init(curl);

    /* Fill in the file upload field */
    field = curl_mime_addpart(form);
    curl_mime_name(field, "sendfile");
    curl_mime_filedata(field, "postit2.c");

    /* Fill in the filename field */
    field = curl_mime_addpart(form);
    curl_mime_name(field, "filename");
    curl_mime_data(field, "postit2.c", CURL_ZERO_TERMINATED);

    /* Fill in the submit field too, even if this is rarely needed */
    field = curl_mime_addpart(form);
    curl_mime_name(field, "submit");
    curl_mime_data(field, "send", CURL_ZERO_TERMINATED);

    /* initialize custom header list (stating that Expect: 100-continue is not
       wanted */
    headerlist = curl_slist_append(headerlist, buf);
    /* what URL that receives this POST */
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/examplepost.cgi");
    if((argc == 2) && (!strcmp(argv[1], "noexpectheader")))
      /* only disable 100-continue header if explicitly requested */
      curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
    curl_easy_setopt(curl, CURLOPT_MIMEPOST, form);

    /* Perform the request, res will get the return code */
    res = curl_easy_perform(curl);
    /* Check for errors */
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

    /* always cleanup */
    curl_easy_cleanup(curl);

    /* then cleanup the form */
    curl_mime_free(form);
    /* free slist */
    curl_slist_free_all(headerlist);
  }
  return 0;
}

安装软件包: sudo apt-get install libcurl4-openssl-dev -y

编译: gcc -o test postit2.c -lcurl -I/usr/include

然后执行: ./test

就可以通过 http 协议上传文件到 嵌入式设备了, 就像浏览器一样方便。

#194 Re: 君正Ingenic/X1000/X2000/T10/T20/T30 » 潜水很久了, 今天注册发个帖子说说 buildroot busybox 里面 添加 http 网页服务器 » 2019-10-16 15:09:33

晕哥 说:

感谢分享, 一个微型嵌入式 cgi web 服务器诞生了, 楼主能不能再研究一下,把 lua 整合进去, 用lua脚本写网页服务器。

搞定cgi之后考虑整合一个 lua 进去,毕竟脚本编程方便太多。

#196 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 编译了周立功 awtk 到 V3s 跑, 出现了一堆错误 » 2019-10-15 11:02:21

对于内置的 demoui 例子

先执行: ./release.sh

然后生成: release.tar.gz

最后解压到V3s 开发板, 现在貌似正常了。

#197 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 编译了周立功 awtk 到 V3s 跑, 出现了一堆错误 » 2019-10-15 10:44:31

歌以咏志
回复: 4

代码: https://github.com/zlgopen/awtk-linux-fb


获取源码

也编辑了 awtk_config.py 设置工具链的路径

TSLIB_LIB_DIR='/opt/28x/tslib/lib'
TSLIB_INC_DIR='/opt/28x/tslib/include'
TOOLS_PREFIX='/opt/28x/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-linux-'

界面没有任何显示,控制台一堆错误:

# /usr/bin/demo_animator
app_root_is_valid:43 app_root != NULL
try /root
try /usr/bin
app_root=
Not found valid assets folder!
!!!Asset [name=en_US type=strings] not exist!!!
!!!Asset [name=en type=strings] not exist!!!
fb_info_t: /dev/fb0
fb_info_t: xres=800 yres=480 bits_per_pixel=32 mem_size=1536000
fb_info_t: red(16 8) green(8 8) blue(0 8)
line_length=3200 mem_size=1536000 smem_len=1536000
xres_virtual =800 yres_virtual=480 xpanstep=0 ywrapstep=0
ratio=1.000000 800 480
Build at: Oct 15 2019 09:58:05
assets_manager_preload:585 info != NULL
assets_manager_preload:585 info != NULL
theme_find_style:89 t != NULL && t->data != NULL
!!!Asset [name=cursor type=image] not exist!!!
window_manager_default_set_cursor:993 image_manager_get_bitmap(image_manager(), cursor, &bitmap) == RET_OK
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
theme_find_style:89 t != NULL && t->data != NULL
!!!Asset [name=earth type=image] not exist!!!
image_on_paint_self:41 widget_load_image(widget, image_base->image, &bitmap) == RET_OK
theme_find_style:89 t != NULL && t->data != NULL
!!!Asset [name=earth type=image] not exist!!!
image_on_paint_self:41 widget_load_image(widget, image_base->image, &bitmap) == RET_OK
theme_find_style:89 t != NULL && t->data != NULL
!!!Asset [name=bricks type=image] not exist!!!
image_on_paint_self:41 widget_load_image(widget, image_base->image, &bitmap) == RET_OK
theme_find_style:89 t != NULL && t->data != NULL
!!!Asset [name=earth type=image] not exist!!!
image_on_paint_self:41 widget_load_image(widget, image_base->image, &bitmap) == RET_OK
theme_find_style:89 t != NULL && t->data != NULL
!!!Asset [name=earth type=image] not exist!!!
image_on_paint_self:41 widget_load_image(widget, image_base->image, &bitmap) == RET_OK
theme_find_style:89 t != NULL && t->data != NULL
!!!Asset [name=earth type=image] not exist!!!
image_on_paint_self:41 widget_load_image(widget, image_base->image, &bitmap) == RET_OK
theme_find_style:89 t != NULL && t->data != NULL
!!!Asset [name=earth type=image] not exist!!!
image_on_paint_self:41 widget_load_image(widget, image_base->image, &bitmap) == RET_OK
!!!Asset [name=cursor type=image] not exist!!!
window_manager_paint_cursor:529 image_manager_get_bitmap(image_manager(), wm->cursor, &bitmap) == RET_OK
input_dispatch_one_event:71 mouse read failed(ret=-1, errno=0, fd=-1, filename=/dev/input/mice)
Print mouse: : Success
input_dispatch_one_event:150 keyboard read failed(ret=-1, errno=0)
input_dispatch_one_event:154 keyboard read failed(ret=-1, errno=0, fd=-1, filename=/dev/input/event1)
Print keyboard: : Success
tslib_dispatch_one_event:61 tslib read failed(ret=-1, errno=0, filename=/dev/input/event0)
Print tslib: : Success
!!!Asset [name=earth type=image] not exist!!!
image_on_paint_self:41 widget_load_image(widget, image_base->image, &bitmap) == RET_OK
!!!Asset [name=earth type=image] not exist!!!
image_on_paint_self:41 widget_load_image(widget, image_base->image, &bitmap) == RET_OK
!!!Asset [name=bricks type=image] not exist!!!
image_on_paint_self:41 widget_load_image(widget, image_base->image, &bitmap) == RET_OK
!!!Asset [name=earth type=image] not exist!!!
image_on_paint_self:41 widget_load_image(widget, image_base->image, &bitmap) == RET_OK
!!!Asset [name=earth type=image] not exist!!!
image_on_paint_self:41 widget_load_image(widget, image_base->image, &bitmap) == RET_OK

#199 Re: ESP32/ESP8266 » LyraT 乐鑫官方ESP32开发板入坑记录 (百度AI dueros 演示成功!) » 2019-10-03 17:15:33

https://esp32.com/viewtopic.php?t=10235

I noticed, that the symbol names and line numbers from make monitor, did not match. I.e. it didn't make sense to get such an exception at this line. It turned out, that debugging-symbols were refering the up-to-date correct, but not-linked version of the mqtt-client. oops.

这个网友出现了一样的问题,但是是因为使用了错误的git子模块,导致使用了不正确的调试符号引起。

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn