估计 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
卸载并安装新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
*** 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
https://wiki.seeedstudio.com/ReSpeaker_4_Mic_Array_for_Raspberry_Pi/
遇事不决,先用树莓派作为关键字搜一下,总有惊喜。
源码: 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
文档那个不对, 我是看驱动代码才知道的:
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
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$
默认的根本没得选。
歌以咏志 说:看起来应该是缺库, 是不是用同一个gcc编译的?
PC端的库和设备端都是在同一路径下的 scp拷贝过来的
在 ubuntu@x86 用 chroot 到 ARM 平台的 rootfs
http://whycan.com/t_3251.html
用晕哥这个方法, 直接在电脑上面用 qemu 模拟器测试.
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
比如对下面这句,PD00肯定对应的就是IO了
但是后面的每个<>内部的内容和他们的顺序分别代表啥呢?
搞了一天了没整明白
port:PD00<2><0><default><default>
这个网页说得非常明白: https://linux-sunxi.org/Fex_Guide
#define EBUSY 16 /* Device or resource busy */
https://www-numi.fnal.gov/offline_software/srt_public_context/WebDocs/Errors/unix_system_errors.html
很可能是别处占用了
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正常噢。
试一试 Qt5 运行 OpenGL 程序
http://whycan.com/t_5820.html#p57901
(出处:哇酷开发者社区【计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2】)
https://rawpixels.net/ (貌似要科学上网)
试了一下, 可以显示:
是说视频显示卡对吗?这个问题是因为解码器出来是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】)
我有一张嘉立创的双十一免费贴片券,价值 50 元。送给你啦。戳下面链接收取。
https://www.jlc.com/home/gotoReceiveCoupon.html?n=e8bc12bc-16ae-442c-9e0c-2a8eba003c6c&r=lPrdmPJN
我有一张嘉立创的双十一免费贴片券,价值 50 元。送给你啦。戳下面链接收取。
https://www.jlc.com/home/gotoReceiveCoupon.html?n=f61a4c21-67b2-41e3-a138-3de44f9a9b30&r=17KXU5U6
在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 才行
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】)
&emac { allwinner,leds-active-high; status = "okay"; };
&emac { allwinner,leds-active-low; status = "okay"; };
两个都试一试
亲测有效, 感谢小二.
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;
}
https://ltekieli.com/buildroot-with-raspberry-pi-automating-and-sharing/
https://bitbucket.org/ltekieli/buildroot_rpi/src/master/
https://bitbucket.org/ltekieli/buildroot_rpi/src/master/board/raspberrypi/
https://bitbucket.org/ltekieli/buildroot_rpi/src/master/board/raspberrypi/boot.scr
https://bitbucket.org/ltekieli/buildroot_rpi/src/master/board/raspberrypi/genimage-raspberrypi.cfg
https://bitbucket.org/ltekieli/buildroot_rpi/src/master/board/raspberrypi/post-image.sh
https://bitbucket.org/ltekieli/buildroot_rpi/src/master/board/raspberrypi/update.scr
https://bitbucket.org/ltekieli/buildroot_rpi/src/master/configs/raspberrypi_defconfig
https://bitbucket.org/ltekieli/buildroot_rpi/src/master/configs/raspberrypi2_defconfig
https://github.com/gamaral/rpi-buildroot/tree/rpi/board/raspberrypi
https://github.com/gamaral/rpi-buildroot/blob/rpi/board/raspberrypi/post-image.sh
https://github.com/gamaral/rpi-buildroot/blob/rpi/board/raspberrypi/post-build.sh
https://github.com/gamaral/rpi-buildroot/blob/rpi/board/raspberrypi/flash-sdcard.sh
https://github.com/gamaral/rpi-buildroot/blob/rpi/board/raspberrypi/genimage-raspberrypi.cfg
https://github.com/gamaral/rpi-buildroot/blob/rpi/configs/raspberrypi_defconfig
https://github.com/gamaral/rpi-buildroot/blob/rpi/configs/raspberrypi0_defconfig
感谢 @路漫漫 你的分享, 关于有线网线检测可以试一试这个:
http://blog.sina.com.cn/s/blog_1a39e3c4a0102z23x.htmlvar=$(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
这个脚本不错, 学习!
感谢楼主分享, 给楼主出个难题, 能不能整合到buildroot, 直接一个make命令搞定所有事情?
buildroot-tiny200 (F1C100/200s) 开发包近期更新内容 * 已支持DVP摄像头 *
http://whycan.com/t_5221.html
(出处:哇酷开发者社区【全志 V3S/F1C100s/X3】)
路人甲 说:请问楼主MTP 是 FunctionFS模拟的吗?
楼主66666。
现在只有我一个人发现mtp插入之后文件不一致,不能同步的问题吗?
我也发现了,重新拔插USB才行。
https://dj9399.github.io/post/解决MTP%20USB连接电脑文件或文件夹不同步的问题/
解决MTP USB连接电脑文件或文件夹不同步的问题
发表于 2018-10-31
用手机缓存1080视频文件,然后到电脑上拷贝,却看不到文件
因为MTP机制的设定,当机器内存储新增或变化了文件或文件夹,会有一个同步时间,如果在机器内部索引没有自动更新前,就插入电脑用MTP的方式访问手机内文件的话,会发现看到的文件与手机实际文件不一致的情况。解决方法:
试过重启,无效。一般要等上半天,手机才会更新缓存
安装media scanner 或者 sd scanner,任选其一安装之。
每次发现存在这个情况,就用这两应用的手动扫描功能执行一遍,即可
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
终于编译完了 ^_^
接下来现在要研究一下怎么烧录了
终于可以编译了,谢谢楼主,
我的配置, 工作目录 /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
github的地址是這個嗎?
https://github.com/xiaofengvskuye/f1c200s_emwin
看起来应该是这个了,感谢楼主分享。
http://trac.gateworks.com/wiki/MMC
卡特定数据(CSD)寄存器(EXT_CSD [179])用于配置加电时选择的分区。可以在Linux中通过mmc-utils应用程序进行配置,也可以在U-Boot中通过mmc partconf命令进行配置(请参见下文)。
https://github.com/nanfang2000/X1000_BB
这是我的git,这里面有AP6212的原理图和PCB,验证过是OK的
感谢分享, 刚刚看了一下仓库500M ,
手动笑哭.gif
你是软件命令reboot? 主动热重启可以改下代码: https://whycan.cn/t_534.html#p1447
热重启还好可以按照上面的处理,
如果是死机就有有点麻烦,
即使有外部看门狗(如max811)拉低 V3s 8PIN的也不能重启成功,除非flash电源脚也可以用看门狗控制。
所以我现在用16PIN 的 W25Q256, 这样每次都能可靠复位了,
把FLASH的 RESET# 引脚和 V3s的 RESET# 引脚短路到外部看门狗。
参考晕哥这个帖子: https://whycan.cn/t_444.html
V3s/S3 的 u-boot 有朋友跑起来了, 最新的 u-boot: https://whycan.cn/t_4173.html
可以参考
参考这个帖子: https://whycan.cn/t_3380.html
果然有两个一样名字的驱动:
$ 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);
[ 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)
[ 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 修复之后才能挂载吧?
太棒了, 加上这个 NES 模拟器, 无敌了: https://whycan.cn/t_3535.html
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 读输入寄存器
大大大大大哥,这个一直搞不定,下来出问题,帮我下下看看。多谢
https://github.com/DreamSourceLab/DSView
用这个, 速度不错.
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
不知道咋办。
64M spi nor flash MX25L51245G 驱动 OK
修改 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
多次启动后文件大小和校验和均正常.
是的,我发现我的windows下也有这些命令,但是打包的时候还是出现那样的提示,我用的windows10
你用 cygwin shell ? 有可能你的 shell有问题,建议用晕哥一楼用的 git 自带的shell
64MB的价格如何?
https://detail.tmall.com/item.htm?id=608913139149
23元左右, 是有点贵, 不过我们这个利润还行, 甲方要求用spi nor flash.
MX25L51245G: MX25L51245G_3V_512Mb_v1_6.pdf
W25Q512JV : W25Q512JV_SPI_RevB_06252019_KMS.pdf
http://club.szlcsc.com/article/details_39390_1.html
protel没法阻抗约束,走不了差分线,只能说形似。
感谢楼主分享, 但是我试了一下有问题:
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)
想上A系列又想要SiP不如去买OSD3358,就是含税300多块钱一颗。里面是TI的AM3358+DDR3+PMIC。工业级,美国原装进口。就是Beagle的芯片,BSP超完善,而且版本还多,RTOS也多,Linux还有专门的发行版,需要啥功能可以直接apt-get,就是一个字,贵。
刚刚手一哆嗦去搜了一下,果然有这玩意。
估计是密码配置不对, 导致wifi无事可做,睡觉去了: https://whycan.cn/t_1920.html#p12703
解决方案
#隐藏光标
echo -e "\033[?25l"#显示光标
echo -e "\033[?25h"
这是什么原理?
邮箱里面翻出来的当年编译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
真可惜, 没有了:
本次活动已结束,感谢您的关注!5秒后将自动跳转至云产品采购季活动。
刚刚看了一下, 还有 99 元乞丐版哦, 只是新用户才能参加:
【腾讯云】云产品采购季,助力行业复工。1核2G云服务器,首年99元
不过没事, 那些用户都可以绑在同一个微信下面。
百度文库里找了个规格书,不知道对不对
https://wk.baidu.com/view/9b5dbb62cfc789eb172dc8a0
搜资料不能用百毒,一不小心就带坑里面: http://ultran.ru/sites/default/files/catalog/svetodiody/brend/datasheets/bp070ws1-500.pdf
本地下载: bp070ws1-500.pdf
有没有 RGB -> LVDS 的液晶的转换板?
同求同求,这个帖子 https://whycan.cn/t_3241.html#p27820
的转接板是 HDMI 转 LVDS 的: https://item.taobao.com/item.htm?id=601517599401
随便找到pdf文件:
http://www.synwit.cn/Public/Uploads/2019-01-04/5c2eb190a1c2d.pdf
里面的图片还有很大的改进空间:
https://whycan.cn/t_3450.html
毕竟,第一感觉不太好.
还有, 这种图片有没有对应的 pdf 文件呢, 不太清晰, 而且不能搜索。
官网找到的选型手册也是这个图片 http://www.synwit.cn/support-1/15.html
http://www.synwit.cn/support.html
不好意思, 在文档中心找到手册了, 收回一楼的问题。
点左边导航 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 文件,还得自己下载下来解压缩
感觉有改进的地方.
随便吐槽一下, 没别的意思。
这是晕哥以前推荐的时候价格: https://whycan.cn/t_3163.html#p27292
再发一个: 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虚拟插头电子方案
这是DVI连接器的电子方案:
科学上网打开这个: 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锁定频率,因此效果非常理想。
LCD上显示的图像是带有小球的彩色条纹,您可以通过倾斜电路板(使用板载加速度计)来移动它,从图像中您可以看到颜色是完美的,并且图像静止不动,没有毛刺和抖动。
因此,现在我们为A13-OLinuXino提供了低成本VGA解决方案,并且可以继续进行PCB原理图的完成和布线。请注意,VGA信号经过门控的缓冲器,即我们可以启用和禁用VGA输出,并且A13-OLinuXino将能够与LCD和VGA一起使用。
离线包为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
立创上都是偏高的,不值得参考,我发的官方网站就有源码呀,
果然有, 谢谢!
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
感觉就是随便写写
https://so.szlcsc.com/global.html?k=wk2124
10+:¥17.40
有点小贵。
找到一篇linux使用wk2124的文章, 没有找到源码。
https://blog.csdn.net/david_oneone/article/details/90288504
https://e2echina.ti.com/question_answer/dsp_arm/sitara_arm/f/25/t/119119
我们处理器芯片的生命周期都在15年以上,这颗芯片目前是主打芯片,怎么可能停产呢。
用楼上@晕哥的代码保存文件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 协议上传文件到 嵌入式设备了, 就像浏览器一样方便。
代码: https://github.com/zlgopen/awtk-linux-fb
获取源码
git clone https://github.com/zlgopen/awtk.git
git clone https://github.com/zlgopen/awtk-examples.git
git clone https://github.com/zlgopen/awtk-linux-fb.git
cd 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
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子模块,导致使用了不正确的调试符号引起。