linux xlnx:内核在注册SWP/SWPB仿真处理程序时挂起

linux xlnx:内核在注册SWP/SWPB仿真处理程序时挂起,linux,kernel,Linux,Kernel,我正试图在SD卡上获得一个持久分发(Linaro),并在ZedBoard上运行。我从LinuxXLNX源代码构建内核,在启动过程中遇到了许多问题。我已经设法克服了在启动时遇到的大多数内核挂起问题,但我仍停留在“注册SWP/SWPB仿真处理程序”上 我注意到.config文件“config_SWP_EMULATE=y”中有一个选项,但即使我把它注释掉(老实说,我不知道我是否应该这样做),当我用“make UIMAGE_LOADADDR=0x8000 UIMAGE”重新构建内核时,这一行也会在.co

我正试图在SD卡上获得一个持久分发(Linaro),并在ZedBoard上运行。我从LinuxXLNX源代码构建内核,在启动过程中遇到了许多问题。我已经设法克服了在启动时遇到的大多数内核挂起问题,但我仍停留在“注册SWP/SWPB仿真处理程序”上

我注意到.config文件“config_SWP_EMULATE=y”中有一个选项,但即使我把它注释掉(老实说,我不知道我是否应该这样做),当我用“make UIMAGE_LOADADDR=0x8000 UIMAGE”重新构建内核时,这一行也会在.config文件中重新启用,无论出于什么原因,问题仍然存在

原始配置是使用“make xilinx_zynq_defconfig”创建的。然后,我使用“makemenuconfig”在内核hacking菜单中启用早期打印和低级调试(在UART1上显示输出)。从那里开始,每当内核在某个点卡住时,我都直接编辑.config文件。迄今为止,“xilinx_zynq_defconfig”的显著变化是:

CONFIG_DEBUG_LL=y
CONFIG_DEBUG_ZYNQ_UART1=y
CONFIG_EARLY_PRINTK=y
# CONFIG_SERIAL_XILINX_PS_UART is not set
# CONFIG_RTC_HCTOSYS is not set
CONFIG_ARM_THUMB=y
CONFIG_ARM_THUMBEE=y
如有任何关于如何克服这一问题的建议,将不胜感激。提前感谢:)

U-Boot 2016.07-00057-g2931a7a-dirty(2016年11月17日-02:58:29-0500)
型号:Zynq Zed开发板
董事会:Xilinx Zynq
DRAM:ECC禁用512 MiB
MMC:sdhci@e0100000: 0
SF:检测到页面大小为256字节的S25FL256S_64K,擦除大小为64 KiB,共32 MiB
***警告-错误的CRC,使用默认环境
在:serial@e0001000
输出:serial@e0001000
错误:serial@e0001000
型号:Zynq Zed开发板
董事会:Xilinx Zynq
Net:ZYNQ GEM:e000b000,phyaddr 0,接口rgmii id
eth0:ethernet@e000b000
读取uEnv.txt
以10毫秒(12.7 KiB/s)的速度读取135字节
正在从SD导入环境。。。
按任意键停止自动启动:0
设备:sdhci@e0100000
制造商编号:28
原始设备制造商:4245
姓名:2元前
列车速度:50000000
Rd区块长度:512
SD版本3.0
高容量:是的
容量:7.5 GiB
总线宽度:4位
擦除组大小:512字节
读取uEnv.txt
以10毫秒(12.7 KiB/s)的速度读取135字节
从uEnv.txt加载环境
正在从SD导入环境。。。
正在将Linux从SD复制到RAM。。。
##正在从02080000的旧映像启动内核。。。
图像名称:Linux-4.6.0-xilinx-00040-g786228
映像类型:ARM Linux内核映像(未压缩)
数据大小:3828432字节=3.7 MiB
加载地址:00008000
入境点:00008000
正在验证校验和。。。好啊
##02020000处的扁平设备树blob
在0x2020000处使用fdt blob引导
正在加载内核映像。。。好啊
正在将设备树加载到1eb0e000,结束1eb13595。。。好啊
正在启动内核。。。
解压缩Linux。。。完成,启动内核。
在物理CPU 0x0上引导Linux
Linux版本4.6.0-xilinx-00040-g7862283(steven@sjk)(gcc版本4.9.2(Sourcery CodeBench Lite 2015.05-17))#1 SMP抢占2016年11月17日星期四20:58:49东部时间
CPU:ARMv7处理器[413fc090]版本0(ARMv7),cr=18c5387d
CPU:PIPT/VIPT非关联数据缓存、VIPT别名指令缓存
机器型号:Zynq Zed开发板
引导控制台[earlycon0]已启用
cma:在0x1000000处保留16个MiB
内存策略:数据缓存writealloc
在节点0上totalpages:131072
自由区初始节点:节点0,pgdat c0938a80,节点内存映射debef000
正常区域:用于memmap的1024页
正常区域:保留0页
正常区域:131072页,后进先出批次:31
percpu:嵌入式12页/cpu@debcd000 s19776 r8192 d21184 u49152
pcpu alloc:s19776 r8192 d21184 u49152 alloc=12*4096
pcpu分配:[0]0[0]1
按区域顺序建立1个区域列表,移动分组。总页数:130048
内核命令行:console=ttyacm0115200 debug root=/dev/mmcblk0p2 rw earlyprintk=serial,uart115200 rootfstype=ext4 rootwait devtmpfs.mount=0
PID哈希表条目:2048(顺序:18192字节)
Dentry缓存哈希表条目:65536(顺序:6262144字节)
Inode缓存哈希表条目:32768(顺序:513072字节)
内存:494532K/524288K可用(5303K内核代码、229K rwdata、1836K rodata、1024K初始化、221K bss、13372K保留、16384K cma保留、0K highmem)
虚拟内核内存布局:
向量:0xffff0000-0xffff1000(4KB)
固定映射:0xffc00000-0xfff00000(3072 kB)
vmalloc:0xe0800000-0xff800000(496MB)
lowmem:0xc000000-0xe000000(512 MB)
pkmap:0xbfe00000-0xc0000000(2MB)
模块:0xbf000000-0xbfe00000(14 MB)
.text:0xc0008000-0xc07f8d68(8132KB)
.init:0xc0800000-0xc0900000(1024KB)
.数据:0xc0900000-0xc09397e0(230 kB)
.bss:0xc09397e0-0xc0970ee8(222KB)
可抢占的分层RCU实现。
叶扇出的构建时间调整为32。
RCU将cpu从NR_cpu=4限制到NR_cpu_ID=2。
RCU:调整RCU_扇出_叶=32、nr_cpu_ID=2的几何图形
编号:16编号:16
efuse映射到e0800000
slcr映射到e0802000
L2C:平台修改辅助控制寄存器:0x72360000->0x72760000
L2C:DT/平台修改辅助控制寄存器:0x72360000->0x72760000
L2C-310勘误表769419已启用
L2C-310为Cortex-A9启用早期BRESP
L2C-310为Cortex-A9启用全零线
L2C-310 ID预取启用,偏移量1行
L2C-310动态时钟选通启用,待机模式启用
L2C-310缓存控制器已启用,8路,512 kB
L2C-310:缓存ID 0x410000c8,辅助控制0x76760001
zynq_clock_init:clkc从e0802100开始
Zynq时钟初始化
sched_时钟:333MHz下64位,分辨率3ns,每4398046511103ns换行一次
时钟源:arm_全局_定时器:掩码:0xFFFFFFFFFFFF最大_周期:0x4ce07af025,最大空闲时间:440795209040纳秒
切换到基于定时器的延迟环路,分辨率3ns
时钟源:ttc_时钟源:掩码:0xffff最大周期:0xffff,最大空闲周期:537538477 ns
e080a000时的计时器#0,irq=17
控制台:彩色虚拟设备80x30
校准延迟回路(跳过),使用定时器频率计算的值。。666.66波哥米普斯(lpj=3333)
pid_max:de
U-Boot 2016.07-00057-g2931a7a-dirty (Nov 17 2016 - 02:58:29 -0500)

Model: Zynq Zed Development Board
Board: Xilinx Zynq
DRAM:  ECC disabled 512 MiB
MMC:   sdhci@e0100000: 0
SF: Detected S25FL256S_64K with page size 256 Bytes, erase size 64 KiB, total 32 MiB
*** Warning - bad CRC, using default environment

In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
Model: Zynq Zed Development Board
Board: Xilinx Zynq
Net:   ZYNQ GEM: e000b000, phyaddr 0, interface rgmii-id
eth0: ethernet@e000b000
reading uEnv.txt
135 bytes read in 10 ms (12.7 KiB/s)
Importing environment from SD ...
Hit any key to stop autoboot:  0 
Device: sdhci@e0100000
Manufacturer ID: 28
OEM: 4245
Name: 2$AGO 
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 7.5 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
reading uEnv.txt
135 bytes read in 10 ms (12.7 KiB/s)
Loaded environment from uEnv.txt
Importing environment from SD ...
Copying Linux from SD to RAM...
## Booting kernel from Legacy Image at 02080000 ...
   Image Name:   Linux-4.6.0-xilinx-00040-g786228
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3828432 Bytes = 3.7 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 02020000
   Booting using the fdt blob at 0x2020000
   Loading Kernel Image ... OK
   Loading Device Tree to 1eb0e000, end 1eb13595 ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0x0
Linux version 4.6.0-xilinx-00040-g7862283 (steven@sjk) (gcc version 4.9.2 (Sourcery CodeBench Lite 2015.05-17) ) #1 SMP PREEMPT Thu Nov 17 20:58:49 EST 2016
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine model: Zynq Zed Development Board
bootconsole [earlycon0] enabled
cma: Reserved 16 MiB at 0x1f000000
Memory policy: Data cache writealloc
On node 0 totalpages: 131072
free_area_init_node: node 0, pgdat c0938a80, node_mem_map debef000
  Normal zone: 1024 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 131072 pages, LIFO batch:31
percpu: Embedded 12 pages/cpu @debcd000 s19776 r8192 d21184 u49152
pcpu-alloc: s19776 r8192 d21184 u49152 alloc=12*4096
pcpu-alloc: [0] 0 [0] 1 
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyACM0,115200 debug root=/dev/mmcblk0p2 rw earlyprintk=serial,uart1,115200 rootfstype=ext4 rootwait devtmpfs.mount=0
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 494532K/524288K available (5303K kernel code, 229K rwdata, 1836K rodata, 1024K init, 221K bss, 13372K reserved, 16384K cma-reserved, 0K highmem)
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
    lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    modules : 0xbf000000 - 0xbfe00000   (  14 MB)
      .text : 0xc0008000 - 0xc07f8d68   (8132 kB)
      .init : 0xc0800000 - 0xc0900000   (1024 kB)
      .data : 0xc0900000 - 0xc09397e0   ( 230 kB)
       .bss : 0xc09397e0 - 0xc0970ee8   ( 222 kB)
Preemptible hierarchical RCU implementation.
        Build-time adjustment of leaf fanout to 32.
        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=2
NR_IRQS:16 nr_irqs:16 16
efuse mapped to e0800000
slcr mapped to e0802000
L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
L2C-310 erratum 769419 enabled
L2C-310 enabling early BRESP for Cortex-A9
L2C-310 full line of zeros enabled for Cortex-A9
L2C-310 ID prefetch enabled, offset 1 lines
L2C-310 dynamic clock gating enabled, standby mode enabled
L2C-310 cache controller enabled, 8 ways, 512 kB
L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
zynq_clock_init: clkc starts at e0802100
Zynq clock init
sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns
clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns
Switching to timer-based delay loop, resolution 3ns
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns
timer #0 at e080a000, irq=17
Console: colour dummy device 80x30
Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x100000 - 0x100058
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
Brought up 2 CPUs
SMP: Total of 2 processors activated (1333.33 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor menu
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0xe0880000
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
media: Linux media interface: v0.10
Linux video capture interface: v2.00
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
EDAC MC: Ver: 3.0.0
Advanced Linux Sound Architecture Driver Initialized.
clocksource: Switched to clocksource arm_global_timer
NET: Registered protocol family 2
TCP established hash table entries: 4096 (order: 2, 16384 bytes)
TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
PCI: CLS 0 bytes, default 64
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
futex hash table entries: 512 (order: 3, 32768 bytes)
workingset: timestamp_bits=28 max_order=17 bucket_order=0
jffs2: version 2.2. (NAND) (SUMMARY)  �© 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
dma-pl330 f8003000.dmac:        DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
xdevcfg f8007000.devcfg: ioremap 0xf8007000 to e086c000
[drm] Initialized drm 1.1.0 20060810
brd: module loaded
loop: module loaded
m25p80 spi0.0: found s25fl256s1, expected n25q128a11
m25p80 spi0.0: s25fl256s1 (32768 Kbytes)
5 ofpart partitions found on MTD device spi0.0
Creating 5 MTD partitions on "spi0.0":
0x000000000000-0x000000100000 : "qspi-fsbl-uboot"
0x000000100000-0x000000600000 : "qspi-linux"
0x000000600000-0x000000620000 : "qspi-device-tree"
0x000000620000-0x000000c00000 : "qspi-rootfs"
0x000000c00000-0x000001000000 : "qspi-bitstream"
CAN device driver interface
gpiod_set_value: invalid GPIO
libphy: MACB_mii_bus: probed
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 145 (00:0a:35:00:01:22)
Marvell 88E1510 e000b000.etherne:00: attached PHY driver [Marvell 88E1510] (mii_bus:phy_addr=e000b000.etherne:00, irq=-1)
e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
usbcore: registered new interface driver usb-storage
e0002000.usb supply vbus not found, using dummy regulator
ULPI transceiver vendor/product ID 0x0451/0x1507
Found TI TUSB1210 ULPI transceiver.
ULPI integrity check: passed.
ci_hdrc ci_hdrc.0: EHCI Host Controller
ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
mousedev: PS/2 mouse device common for all mice
i2c /dev entries driver
EDAC MC: ECC not enabled
Xilinx Zynq CpuIdle Driver started
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using DMA
ledtrig-cpu: registered to indicate activity on CPUs
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
NET: Registered protocol family 10
sit: IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
can: controller area network core (rev 20120528 abi 9)
NET: Registered protocol family 29
can: raw protocol (rev 20120528)
mmc0: new high speed SDHC card at address 59b4
can: broadcast manager protocol (rev 20120528 t)
mmcblk0: mmc0:59b4 2$AGO 7.46 GiB 
 mmcblk0: p1 p2
can: netlink gateway (rev 20130117) max_hops=1
ThumbEE CPU extension supported.
Registering SWP/SWPB emulation handler