I/O port-mapped or memory-mapped device? - linux-kernel

Introduction:
I am trying to "say" something to my virtual device ( I mean virtualbox). So first, I have to know I/O port or Memory address region.
So, let look at my lspci output:
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
Subsystem: Intel Corporation PRO/1000 MT Desktop Adapter
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64 (63750ns min)
Interrupt: pin A routed to IRQ 19
Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=128K]
Region 2: I/O ports at d010 [size=8]
Capabilities: <access denied>
Kernel driver in use: e1000
Kernel modules: e1000
Problem
So there are two region and I don't understand why there are two regions. I don't know
if device is memory-mapped or port-mapped? I don't understand how can I write bytes to my device. What address I should choose?

Related

QEMU networking and getty issues

I'm trying to create a minimalist setup for an ARM based virtual machine using qemu. I am following the following guide to do so.
I am running QEMU with the following command
qemu-system-arm -M vexpress-a9 -dtb ./linux-4.20.8/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -kernel ./linux-4.20.8/arch/arm/boot/zImage -initrd rootfs.img --append "console=ttyAMA0" --nographic
I am, for some reason unable to see the login prompt. These are the boot messages
pulseaudio: set_sink_input_volume() failed
pulseaudio: Reason: Invalid argument
pulseaudio: set_sink_input_mute() failed
pulseaudio: Reason: Invalid argument
Booting Linux on physical CPU 0x0
Linux version 4.20.8 (aijazbaig1#piper11) (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29)) #2 SMP Sat Sep 7 17:17:31 +08 2019
CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=10c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
OF: fdt: Machine model: V2P-CA9
Memory policy: Data cache writeback
CPU: All CPU(s) started in SVC mode.
random: get_random_bytes called from start_kernel+0x88/0x458 with crng_init=0
percpu: Embedded 16 pages/cpu #(ptrval) s36800 r8192 d20544 u65536
Built 1 zonelists, mobility grouping on. Total pages: 130048
Kernel command line: console=ttyAMA0 ip=dhcp
printk: log_buf_len individual max cpu contribution: 4096 bytes
printk: log_buf_len total cpu_extra contributions: 12288 bytes
printk: log_buf_len min size: 16384 bytes
printk: log_buf_len: 32768 bytes
printk: early log buf free: 14964(91%)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 498388K/524288K available (6144K kernel code, 400K rwdata, 1408K rodata, 1024K init, 157K bss, 25900K reserved, 0K cma-reserved)
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0xa0800000 - 0xff800000 (1520 MB)
lowmem : 0x80000000 - 0xa0000000 ( 512 MB)
modules : 0x7f000000 - 0x80000000 ( 16 MB)
.text : 0x(ptrval) - 0x(ptrval) (7136 kB)
.init : 0x(ptrval) - 0x(ptrval) (1024 kB)
.data : 0x(ptrval) - 0x(ptrval) ( 401 kB)
.bss : 0x(ptrval) - 0x(ptrval) ( 158 kB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
rcu: Hierarchical RCU implementation.
rcu: RCU event tracing is enabled.
rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
GIC CPU mask not found - kernel will fail to boot.
GIC CPU mask not found - kernel will fail to boot.
L2C: platform modifies aux control register: 0x02020000 -> 0x02420000
L2C: DT/platform modifies aux control register: 0x02020000 -> 0x02420000
L2C-310 enabling early BRESP for Cortex-A9
L2C-310 full line of zeros enabled for Cortex-A9
L2C-310 dynamic clock gating disabled, standby mode disabled
L2C-310 cache controller enabled, 8 ways, 128 kB
L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x46420001
sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
clocksource: arm,sp804: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns
Failed to initialize '/smb#4000000/motherboard/iofpga#7,00000000/timer#12000': -22
smp_twd: clock not found -2
Console: colour dummy device 80x30
Calibrating local timer... 97.42MHz.
Calibrating delay loop... 910.13 BogoMIPS (lpj=4550656)
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: Spectre v2: using BPIALL workaround
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x60100000 - 0x60100060
rcu: Hierarchical SRCU implementation.
smp: Bringing up secondary CPUs ...
smp: Brought up 1 node, 1 CPU
SMP: Total of 1 processors activated (910.13 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 0
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 1024 (order: 4, 65536 bytes)
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor ladder
hw-breakpoint: debug architecture 0x4 unsupported.
Serial: AMBA PL011 UART driver
10009000.uart: ttyAMA0 at MMIO 0x10009000 (irq = 29, base_baud = 0) is a PL011 rev1
printk: console [ttyAMA0] enabled
1000a000.uart: ttyAMA1 at MMIO 0x1000a000 (irq = 30, base_baud = 0) is a PL011 rev1
1000b000.uart: ttyAMA2 at MMIO 0x1000b000 (irq = 31, base_baud = 0) is a PL011 rev1
1000c000.uart: ttyAMA3 at MMIO 0x1000c000 (irq = 32, base_baud = 0) is a PL011 rev1
OF: amba_device_add() failed (-19) for /smb#4000000/motherboard/iofpga#7,00000000/wdt#f000
OF: amba_device_add() failed (-19) for /memory-controller#100e0000
OF: amba_device_add() failed (-19) for /memory-controller#100e1000
OF: amba_device_add() failed (-19) for /watchdog#100e5000
irq: type mismatch, failed to map hwirq-75 for interrupt-controller#1e001000!
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Advanced Linux Sound Architecture Driver Initialized.
clocksource: Switched to clocksource arm,sp804
NET: Registered protocol family 2
tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes)
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.
Unpacking initramfs...
Freeing initrd memory: 11232K
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 1 counters available
workingset: timestamp_bits=30 max_order=17 bucket_order=0
squashfs: version 4.0 (2009/01/31) Phillip Lougher
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
9p: Installing v9fs 9p2000 file system support
io scheduler noop registered (default)
io scheduler mq-deadline registered
io scheduler kyber registered
clcd-pl11x 1001f000.clcd: PL111 designer 41 rev2 at 0x1001f000
clcd-pl11x 1001f000.clcd: clcd#1f000 hardware, 640x480#59 display
Console: switching to colour frame buffer device 80x30
clcd-pl11x 10020000.clcd: PL111 designer 41 rev2 at 0x10020000
clcd-pl11x 10020000.clcd: clcd#10020000 hardware, 1024x768#59 display
40000000.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000
Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
40000000.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000
Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
Concatenating MTD devices:
(0): "40000000.flash"
(1): "40000000.flash"
into device "40000000.flash"
libphy: Fixed MDIO Bus: probed
smsc911x 4e000000.ethernet: Linked as a consumer to regulator.1
smsc911x 4e000000.ethernet (unnamed net_device) (uninitialized): Device not READY in 100ms aborting
isp1760 4f000000.usb: bus width: 32, oc: digital
isp1760 4f000000.usb: NXP ISP1760 USB Host Controller
isp1760 4f000000.usb: new USB bus registered, assigned bus number 1
isp1760 4f000000.usb: Scratch test failed.
isp1760 4f000000.usb: can't setup: -19
isp1760 4f000000.usb: USB bus 1 deregistered
usbcore: registered new interface driver usb-storage
rtc-pl031 10017000.rtc: registered as rtc0
mmci-pl18x 10005000.mmci: Got CD GPIO
mmci-pl18x 10005000.mmci: Got WP GPIO
mmci-pl18x 10005000.mmci: Linked as a consumer to regulator.1
mmci-pl18x 10005000.mmci: mmc0: PL181 manf 41 rev0 at 0x10005000 irq 25,26 (pio)
ledtrig-cpu: registered to indicate activity on CPUs
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
aaci-pl041 10004000.aaci: ARM AC'97 Interface PL041 rev0 at 0x10004000, irq 24
aaci-pl041 10004000.aaci: FIFO 512 entries
oprofile: using arm/armv7-ca9
NET: Registered protocol family 17
9pnet: Installing 9P2000 support
Registering SWP/SWPB emulation handler
input: AT Raw Set 2 keyboard as /devices/platform/smb#4000000/smb#4000000:motherboard/smb#4000000:motherboard:iofpga#7,00000000/10006000.kmi/serio0/input/input0
rtc-pl031 10017000.rtc: setting system clock to 2019-09-08 02:11:22 UTC (1567908682)
Sending DHCP requests ., OK
IP-Config: Got DHCP answer from 192.168.160.2, my address is 192.168.160.9
IP-Config: Complete:
device=eth0, hwaddr=52:54:00:12:34:56, ipaddr=192.168.160.9, mask=255.255.255.0, gw=192.168.160.2
host=192.168.160.9, domain=, nis-domain=(none)
bootserver=192.168.160.2, rootserver=192.168.160.2, rootpath=
nameserver0=192.168.160.3
ALSA device list:
#0: ARM AC'97 Interface PL041 rev0 at 0x10004000, irq 24
Freeing unused kernel memory: 1024K
Run /init as init process
input: ImExPS/2 Generic Explorer Mouse as /devices/platform/smb#4000000/smb#4000000:motherboard/smb#4000000:motherboard:iofpga#7,00000000/10007000.kmi/serio1/input/input2
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Initializing random number generator... random: dd: uninitialized urandom read (512 bytes read)
done.
Starting network: ip: RTNETLINK answers: File exists
FAIL
In buildroot, I've tried various configurations for the getty baudrate but to no avail. Please give me some pointers as to what exactly is going wrong. Currently I have tried with vt100, kernel selected baudrate as well as vt100, 115200 and it both fails
Update
As of now I have been able to see the login prompt after a slight modification to the command line arguments as follows:
qemu-system-arm -M vexpress-a9 -m 512M
-kernel linux-4.20.8/arch/arm/boot/zImage
-dtb linux-4.20.8/arch/arm/boot/dts/vexpress-v2p-ca9.dtb
-append "console=ttyAMA0,115200 ip=dhcp"
-initrd buildroot/output/images/rootfs.cpio
-serial stdio <s>-nographic</s>
-netdev user,id=mynet0,net=192.168.160.0/24,hostfwd=tcp::2222-:22
-device virtio-net-device,netdev=mynet0
As you can see I've replaced -nographic with -serial stdio so I now see the QEMU GUI window separately (which is blank by the way) and I see the login prompt.What is going on here?
Additionally, I cannot use ssh to log into the VM from my Debian host (ssh has been selected in buildroot as you can see from the following log messages (which appear after my latest modification)
random: ssh-keygen: uninitialized urandom read (32 bytes read)
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
Starting sshd: random: sshd: uninitialized urandom read (32 bytes read)
OK
Welcome to Buildroot
buildroot login: root
Password:
I've enabled root login by modifying the sshd_config file on the VM. I've tried ssh root#localhost:2222 as well as ssh root#192.168.160.9 but it just dies out (doesn't say if connection was refused or anything). I'm kind of lost here.
As per your instructions on the kernel command line (rdinit) the Linux kernel runs /sbin/init after boot as the first user process.
The one that is typically configured with Busybox (there are several options) will read a configuration file called /etc/inittab and act based on what is written there.
The execution of /etc/init.d/rcS, if at all, is performed from this file.
It is hard to pinpoint exactly what is happening but at a first step take a look at /etc/inittab. It is possible it is already mounting /proc.
At the very least I am guessing the errors regarding /dev/ttyy originates from directives in this file and can be silenced by editing it.

Booting Linux Kernel on Zynq Devices (Zybo and ZedBoard)

We are trying to boot linux in a xilinx system following the instructions in wiki-xilinx-linux.
After a lot of different tests, after had a look (among others) here, we have enabled the option "LOW LEVEL KERNEL DEBUGGING AND EARLYPRINTKs". Thanks to this we were able to see the following:
U-Boot 2016.07-03720-g95e11f6 (Oct 13 2016 - 03:48:21 -0700)
Model: Zynq MMC: sdhci#e0100000: 0
SF: Detected S25FL256S_64K with page size 256 Bytes, eIn: serial#e0001000
Out: serial#e0001000
Err: serial#e0001000
Model: Z00b000
Hit any key to stop autoboot: 0
Copying Linux from SD to RAM...
Device: sdhci#e0100000
Manufacturer ID: 2
OEM: 544d
Name: SA04G
Tran Speed:reading uImage
3842280 bytes read in 342 ms (10.7 MiB/s)
reading devicetree.dtb
8955 bytes read in 20 ms (436.5 KiB/s)
## Booting kernel from Legacy Image at 0008000
Entry Point: 00008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 02a00000
Booting using the fdt blob at OK
Loading Device Tree to 1eb0e000, end 1eb132fa ... OK
Starting kernel .... done, booting the kernel.
Booting Linux on physical CPU 0x0
Linux version 4.6.0-xilinx-22282-g7d819bd (leProcessor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasiMemory policy: Data cache writealloc
percpu: Embedded 12 pages/cpu #debcd000 s1115200 root=/dev/mmcblk0p2 rw rootwait
PID hash table entries: 2048 (order: 1, (order: 5, 131072 bytes)
Memory: 494528K/524288K available (5304K kernel code, or : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000( 512 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf .data : 0xc0900000 - 0xc0939b60 ( 231 kB)
.bss : 0xc0939b60 - 0xc09R_CPUS=4 to nr_cpu_ids=2.
RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cp00 -> 0x72760000
L2C: DT/platform modifies aux control register: 0x72360000 -> ortex-A9
L2C-310 ID prefetch enabled, offset 1 lines
L2C-310 dynamic clock gatnq_clock_init: clkc starts at e0802100
Zynq clock init
sched_clock: 64 bits at_idle_ns: 440795209040 ns
Switching to timer-based delay loop, resolution 3ns
my device 80x30
Calibrating delay loop (skipped), value calculated using timer )
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testinx100058
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
Brought up 2 CPUs
SMP
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
clocksT: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic cohe maximum watchpoint size is 4 bytes.
zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256interface driver usbfs
usbcore: registered new interface driver hub
usbcore: r00
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - CoLinux Sound Architecture Driver Initialized.
clocksource: Switched to clocksourle entries: 4096 (order: 3, 32768 bytes)
TCP: Hash tables configured (establish (order: 1, 8192 bytes)
NET: Registered protocol family 1
RPC: Registered nameRegistered tcp NFSv4.1 backchannel transport module.
hw perfevents: enabled witx_order=17 bucket_order=0
jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Rever for PL330 DMAC-241330
dma-pl330 f8003000.dmac: DBUFF-128x8bytes Num_Chans-led
xdevcfg f8007000.devcfg: ioremap 0xf8007000 to e086c000
[drm] Initialized brd: module loaded
loop: module loaded
CAN device driver interface
libphy: MACB_mii_bus: probed
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 145 (0rne:00, irq=-1)
e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
e1000e: Copci-pci: EHCI PCI platform driver
usbcore: registered new interface driver usb-si2c /dev entries driver
EDAC MC: ECC not enabled
Xilinx Zynq CpuIdle Driver ste Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
mmc0: Invalid maximummc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA
ledtrig-cphid: USB HID core driver
NET: Registered protocol family 10
sit: IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
can: controller ar protocol (rev 20120528 t)
can: netlink gateway (rev 20130117) max_hops=1
Regards found.
Waiting for root device /dev/mmcblk0p2...
mmc0: new high speed SDHCmmcblk0: p1 p2
VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2): error -30
Ple4 ram1 (driver?)
0102 16384 ram2 (driver?)
0103 16384 ra 16384 ram7 (driver?)
0108 16384 ram8 (driver?)
0109 0c 16384 ram12 (driver?)
010d 16384 ram13 (driver?)
010e ?)
b300 3813376 mmcblk0 driver: mmcblk
b301 1048576 mmcblk0: Unable to mount root fs on unknown-block(179,2)
CPU1: stopping
CPU: 1 PID: 0nd_backtrace) from [<c010a608>] (show_stack+0x10/0x14)
[<c010a608>] (show_stackb24>] (ipi_cpu_stop+0x3c/0x70)
[<c010cb24>] (ipi_cpu_stop) from [<c010d394>] (h4>] (__irq_svc+0x54/0x90)
Exception stack(0xde46ff70 to 0xde46ffb8)
ff60: 01 debdc5c0 474d4ec6 00000000 45283f08 00000000 00000000 00000000
ffa0: 0000000/0x1c0)
[<c0492ccc>] (cpuidle_enter_state) from [<c014a72c>] (cpu_startup_entryFS: Unable to mount root fs on unknown-block(179,2)
It seems that the Virtual File System tries to read from some unknown-block:
VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2): error -30
Googling, no solutions were found.
Has somebody some idea on how to solve this? Where can we have a look? Which parameter to play with?
Finally I solved all the problems I had (running linux on Zybo with a custom hw in the Programmable Logic). Yes, because I am a beginner, I found different problems:
1) One of the problem was in the .dts: the part with eFuse was compleatly missing. Xilinx committed another version of the .dts with the problem fixed.
2) Another big problem was with the bitstream: at the beginning I wanted to program the PL on Zybo with a running linux using: cat bitstream.bit > /dev/xdevcfg. Of course this is compleatly possible (I tested it) as it is explaned in [this wiki-page][1]. Problem: if you have a custom HW in in FPGA you have also its description in the device-tree. The kernel tries to initialize all the periferics connected to the PS but, of course, the PL is not yet connected!! The solution is to download the bitstream before, including it in the boot.bif in order to generate the boot.bin in the right way:
image : {
[bootloader]fsbl.elf
bitstream.bit
u-boot.elf
devicetree.dtb
uramdisk.image.gz
uImage.bin // currently bootgen requires a file extension. this is just a renamed uImage
}
of course using: bootgen -image boot.bif -o i boot.bin.
There were other little problems and I will try to add a list in future editing-revision of this answer.
UPDATE:
to solve the problem described in the question, if there are no additional problems/errors, should be enough to add the bootargs the option rootdelay=3 (rootdelay — Time to delay before attempting to mount the root filesystem).
This can be necessary because u-boot tries to access the SD too fast and the SD is not ready yet.
You have it set to use the root filesystem on mmcblk0p2 - the second partition of your SD-card. If the filesystem is in fact placed there, you have to verify that the kernel has support for what the partition was formatted with (e.g. ext3).
Is this a prebuilt image or one you built yourself?
If you use the command petalinux-config before building, you can change settings for where to store the filesystem.
Btw, this is a very common problem so you should find lots of info if you use the right terms when you google it.

Using pci_enable_msi_block

I am trying to enable multiple MSI irq lines in a kernel module. I am operating in RC mode. The problem is when I call pci_enable_msi_block() it will not allocate more than 1 MSI. If I call pci_enable_msi_block(dev, 32) it will return 4 (which I assume should mean I can use 4 MSI). I then call pci_enable_msi_block(dev,4) and it returns 1.
Here is an output from $lspci -v after insmod Custom_module.ko but with only a successful enable of 1 MSI
00:00.0 PCI bridge: Texas Instruments Device 8888 (rev 01) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Memory at <ignored> (32-bit, non-prefetchable)
Memory at <ignored> (32-bit, prefetchable)
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 00001000-00001fff
Memory behind bridge: 50000000-501fffff
Prefetchable memory behind bridge: 50200000-503fffff
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Root Port (Slot-), MSI 00
Capabilities: [100] Advanced Error Reporting
Kernel driver in use: pcieport
01:00.0 Memory controller: Xilinx Corporation Device 7022
Subsystem: Xilinx Corporation Device 0007
Flags: bus master, fast devsel, latency 0, IRQ 576
Memory at 50000000 (32-bit, non-prefetchable) [size=1M]
Capabilities: [80] Power Management version 3
Capabilities: [90] MSI: Enable+ Count=4/4 Maskable- 64bit+
Capabilities: [c0] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Kernel driver in use: Custom_Module
How do I go about using more than 1 MSI. I can use JTAG to edit the Enable_MSI registers and then the EP can trigger the MSI, but there is no handler dedicated to these IRQs.

Failure with booting of qemu_x86_defconfig in buildroot-2011.11?

I have built the qemu_x86_defconfig with buildroot-2011.11, the
qemu-system-i386 version is 1.0.50 and I use the external cross toolchain of Sourcery CodeBench
x86/x86_64 2010.09, but I encountered the following problem:
Linux version 3.0.4 (liunx#liunx-desktop) (gcc version 4.5.1 (Sourcery
G++ Lite 2010.09-44) ) #2 Wed Dec 28 12:33:03 CST 2011
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f400 (usable)
BIOS-e820: 000000000009f400 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000000fffd000 (usable)
BIOS-e820: 000000000fffd000 - 0000000010000000 (reserved)
BIOS-e820: 00000000fffc0000 - 0000000100000000 (reserved)
Notice: NX (Execute Disable) protection missing in CPU!
DMI 2.4 present.
last_pfn = 0xfffd max_arch_pfn = 0x100000
init_memory_mapping: 0000000000000000-000000000fffd000
ACPI: RSDP 000fd910 00014 (v00 BOCHS )
ACPI: RSDT 0fffd7b0 00034 (v01 BOCHS BXPCRSDT 00000001 BXPC 00000001)
ACPI: FACP 0fffff80 00074 (v01 BOCHS BXPCFACP 00000001 BXPC 00000001)
ACPI: DSDT 0fffd9b0 02589 (v01 BXPC BXDSDT 00000001 INTL 20100528)
ACPI: FACS 0fffff40 00040
ACPI: SSDT 0fffd910 0009E (v01 BOCHS BXPCSSDT 00000001 BXPC 00000001)
ACPI: APIC 0fffd830 00072 (v01 BOCHS BXPCAPIC 00000001 BXPC 00000001)
ACPI: HPET 0fffd7f0 00038 (v01 BOCHS BXPCHPET 00000001 BXPC 00000001)
0MB HIGHMEM available.
255MB LOWMEM available.
mapped low ram: 0 - 0fffd000
low ram: 0 - 0fffd000
Zone PFN ranges:
DMA 0x00000010 -> 0x00001000
Normal 0x00001000 -> 0x0000fffd
HighMem empty
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
0: 0x00000010 -> 0x0000009f
0: 0x00000100 -> 0x0000fffd
ACPI: PM-Timer IO Port: 0xb008
Allocating PCI resources starting at 10000000 (gap: 10000000:effc0000)
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64908
Kernel command line: root=/dev/sda rw console=ttyS0,115200
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Initializing CPU#0
Initializing HighMem for node 0 (00000000:00000000)
Memory: 255264k/262132k available (2539k kernel code, 6416k reserved,
1025k data, 268k init, 0k highmem)
virtual kernel memory layout:
fixmap : 0xfffe4000 - 0xfffff000 ( 108 kB)
pkmap : 0xff800000 - 0xffc00000 (4096 kB)
vmalloc : 0xd07fd000 - 0xff7fe000 ( 752 MB)
lowmem : 0xc0000000 - 0xcfffd000 ( 255 MB)
.init : 0xc137c000 - 0xc13bf000 ( 268 kB)
.data : 0xc127ae73 - 0xc137b540 (1025 kB)
.text : 0xc1000000 - 0xc127ae73 (2539 kB)
Checking if this processor honours the WP bit even in supervisor mode...Ok.
SLUB: Genslabs=15, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:16
Console: colour VGA+ 80x25
console [ttyS0] enabled
Fast TSC calibration failed
TSC: Unable to calibrate against PIT
TSC: using PMTIMER reference calibration
Detected 3013.653 MHz processor.
Calibrating delay loop (skipped), value calculated using timer
frequency.. 6027.30 BogoMIPS (lpj=12054612)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Intel QEMU Virtual CPU version 1.0.50 stepping 03
ACPI: Core revision 20110413
ACPI: setting ELCR to 0200 (from 0c00)
Performance Events: Broken PMU hardware detected, using software events
only.
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xffe77, last bus=0
PCI: Using configuration type 1 for base access
bio: create slab <bio-0> at 0
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S5)
ACPI: Using PIC for interrupt routing
PCI: Ignoring host bridge windows from ACPI; if necessary, use
"pci=use_crs" and report a bug
ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
pci 0000:00:01.3: quirk: [io 0xb000-0xb03f] claimed by PIIX4 ACPI
pci 0000:00:01.3: quirk: [io 0xb100-0xb10f] claimed by PIIX4 SMB
pci0000:00: Unable to request _OSC control (_OSC support mask: 0x08)
ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11)
ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11)
ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11)
ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11)
ACPI: PCI Interrupt Link [LNKS] (IRQs 9) *0
vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
vgaarb: loaded
vgaarb: bridge control possible 0000:00:02.0
SCSI subsystem initialized
Advanced Linux Sound Architecture Driver Version 1.0.24.
PCI: Using ACPI for IRQ routing
Switching to clocksource pit
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 8 devices
ACPI: ACPI bus type pnp unregistered
Switching to clocksource acpi_pm
NET: Registered protocol family 2
IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 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 0000:00:00.0: Limiting direct PCI/PCI transfers
pci 0000:00:01.0: PIIX3: Enabling Passive Release
pci 0000:00:01.0: Activating ISA DMA hang workarounds
io scheduler noop registered (default)
input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
ACPI: Power Button [PWRF]
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
scsi0 : ata_piix
scsi1 : ata_piix
ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc080 irq 14
ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc088 irq 15
i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mousedev: PS/2 mouse device common for all mice
cpuidle: using governor ladder
ALSA device list:
No soundcards found.
TCP cubic registered
NET: Registered protocol family 17
input: AT Translated Set 2 keyboard as
/devices/platform/i8042/serio0/input/input1
ata2.00: ATAPI: QEMU DVD-ROM, 1.0.50, max UDMA/100
ata1.00: ATA-7: QEMU HARDDISK, 1.0.50, max UDMA/100
ata1.00: 10648 sectors, multi 16: LBA48
ata1.00: configured for MWDMA2
ata2.00: configured for MWDMA2
scsi 0:0:0:0: Direct-Access ATA QEMU HARDDISK 1.0. PQ: 0 ANSI: 5
scsi 1:0:0:0: CD-ROM QEMU QEMU DVD-ROM 1.0. PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 10648 512-byte logical blocks: (5.45 MB/5.19 MiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't
support DPO or FUA
sda: unknown partition table
sd 0:0:0:0: [sda] Attached SCSI disk
EXT2-fs (sda): warning: mounting unchecked fs, running e2fsck is recommended
VFS: Mounted root (ext2 filesystem) on device 8:0.
Freeing unused kernel memory: 268k freed
Kernel panic - not syncing: No init found. Try passing init= option to
kernel. See Linux Documentation/init.txt for guidance.
Pid: 1, comm: swapper Not tainted 3.0.4 #2
Call Trace:
[<c1278026>] ? panic+0x57/0x12d
[<c137c71c>] ? do_one_initcall+0x12e/0x12e
[<c100117c>] ? init_post+0x6c/0xb0
[<c137c813>] ? kernel_init+0xf7/0xfe
[<c127a3b6>] ? kernel_thread_helper+0x6/0xd
QEMU: Terminated
Here is my qemu boot script:
qemu-system-i386 \
-m 256M \
-kernel images/bzImage \
-append "root=/dev/sda rw console=ttyS0,115200" \
-hda images/rootfs.ext2 \
-boot c \
-localtime \
-net nic,vlan=0,macaddr="12:34:56:78:9a:bc" \
-net nic,vlan=0,macaddr="12:34:56:78:bc:de" \
-net tap,vlan=0,ifname=tap0,script=./qemu-ifup \
-nographic
I also tried the qemu_arm_versatile_defconfig with the same qemu boot
script, and it works very well, so I really can not understand what's
wrong, and any tips?
regards
Back in late 2011, we had problems with the IA32 CodeSourcery toolchain, but they should now be fixed.
Try to use:
root=/dev/sda1
in boot script as sda1 corresponds to the first partition of the sda.
Have you tried to disable SELinux as mentioned in this thread?? Perhaps it might fix it.

What is the lshw equivalent in windows which can give me a tree structure of hardware as lshw does on Linux?

I need hardware information just as listed below which was generated using lshw in linux. I need a windows equivalent without a GUI more preferably like a code or dll which can be used to extract the information in the same tree like structure. Please note Wmi is not a suitable option as it does not give me empty slots while lshw does.
test-pc3
description: Desktop Computer
version: System Version
width: 32 bits
capabilities: smbios-2.5 dmi-2.5 smp-1.4 smp
configuration: boot=normal chassis=desktop cpus=2 family=To Be Filled By O.E.M. sku=To Be Filled By O.E.M. uuid=C0EFA9AB-8DFE-D511-9075-BCAEC5B65DA4
*-core
description: Motherboard
product: M4N68T-M-LE-V2
vendor: ASUSTeK Computer INC.
physical id: 0
version: Rev X.0x
serial: MT700CK35903797
slot: To Be Filled By O.E.M.
*-firmware
description: BIOS
vendor: American Megatrends Inc.
physical id: 0
version: 0402
date: 07/30/2010
size: 64KiB
capacity: 960KiB
capabilities: isa pci pnp apm upgrade shadowing escd cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer int10video acpi usb ls120boot zipboot biosbootspecification
*-cpu:0
description: CPU
product: AMD Athlon(tm) II X2 250 Processor
vendor: Hynix Semiconductor (Hyundai Electronics)
physical id: 3
bus info: cpu#0
version: 15.6.3
serial: To Be Filled By O.E.M.
slot: AM3
size: 3GHz
capacity: 3GHz
width: 64 bits
clock: 200MHz
capabilities: x86-64 boot fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp 3dnowext 3dnow constant_tsc nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt npt lbrv svm_lock nrip_save cpufreq
configuration: cores=2 enabledcores=2
*-cache:0
description: L1 cache
physical id: 5
slot: L1-Cache
size: 128KiB
capacity: 256KiB
capabilities: pipeline-burst internal varies data
*-cache:1
description: L2 cache
physical id: 6
slot: L2-Cache
size: 1MiB
capacity: 2MiB
capabilities: pipeline-burst internal varies unified
*-memory:0
description: System Memory
physical id: 2a
slot: System board or motherboard
size: 2GiB
*-bank:0
description: DIMM Synchronous 1333 MHz (0.8 ns)
product: PartNum0
vendor: Manufacturer0
physical id: 0
serial: SerNum0
slot: DIMM0
size: 2GiB
width: 64 bits
clock: 1333MHz (0.8ns)
*-bank:1
description: DIMM [empty]
product: PartNum1
vendor: Manufacturer1
physical id: 1
serial: SerNum1
slot: DIMM1
*-cpu:1
physical id: 4
bus info: cpu#1
version: 15.6.3
size: 3GHz
capacity: 3GHz
capabilities: cpufreq
*-cache:0
description: L1 cache
physical id: 0
size: 128KiB
*-cache:1
description: L2 cache
physical id: 1
size: 1MiB
*-memory:1 UNCLAIMED
description: RAM memory
product: MCP61 LPC Bridge
vendor: nVidia Corporation
physical id: a
bus info: pci#0000:00:00.0
version: a1
width: 32 bits
clock: 66MHz (15.2ns)
capabilities: ht bus_master cap_list
configuration: latency=0
*-isa
description: ISA bridge
product: MCP61 LPC Bridge
vendor: nVidia Corporation
physical id: 1
bus info: pci#0000:00:01.0
version: a2
width: 32 bits
clock: 66MHz
capabilities: isa bus_master
configuration: latency=0
resources: ioport:900(size=256)
*-serial
description: SMBus
product: MCP61 SMBus
vendor: nVidia Corporation
physical id: 1.1
bus info: pci#0000:00:01.1
version: a2
width: 32 bits
clock: 66MHz
capabilities: pm cap_list
configuration: driver=nForce2_smbus latency=0
resources: irq:10 ioport:e00(size=64) ioport:600(size=64) ioport:700(size=64)
*-memory:2 UNCLAIMED
description: RAM memory
product: MCP61 Memory Controller
vendor: nVidia Corporation
physical id: 1.2
bus info: pci#0000:00:01.2
version: a2
width: 32 bits
clock: 66MHz (15.2ns)
configuration: latency=0
*-usb:0
description: USB Controller
product: MCP61 USB Controller
vendor: nVidia Corporation
physical id: 2
bus info: pci#0000:00:02.0
version: a3
width: 32 bits
clock: 66MHz
capabilities: pm ohci bus_master cap_list
configuration: driver=ohci_hcd latency=0 maxlatency=1 mingnt=3
resources: irq:20 memory:dfefb000-dfefbfff
*-usb:1
description: USB Controller
product: MCP61 USB Controller
vendor: nVidia Corporation
physical id: 2.1
bus info: pci#0000:00:02.1
version: a3
width: 32 bits
clock: 66MHz
capabilities: debug pm ehci bus_master cap_list
configuration: driver=ehci_hcd latency=0 maxlatency=1 mingnt=3
resources: irq:21 memory:dfefac00-dfefacff
*-pci:0
description: PCI bridge
product: MCP61 PCI bridge
vendor: nVidia Corporation
physical id: 100
bus info: pci#0000:00:04.0
version: a1
width: 32 bits
clock: 66MHz
capabilities: pci ht subtractive_decode bus_master cap_list
resources: ioport:e000(size=4096) memory:dff00000-dfffffff
*-network
description: Ethernet interface
product: RTL-8139/8139C/8139C+
vendor: Realtek Semiconductor Co., Ltd.
physical id: 6
bus info: pci#0000:01:06.0
logical name: eth1
version: 10
serial: 00:21:27:c6:00:27
size: 100Mbit/s
capacity: 100Mbit/s
width: 32 bits
clock: 33MHz
capabilities: pm bus_master cap_list rom ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=8139too driverversion=0.9.28 duplex=full ip=192.168.1.5 latency=64 link=yes maxlatency=64 mingnt=32 multicast=yes port=MII speed=100Mbit/s
resources: irq:19 ioport:e800(size=256) memory:dffffc00-dffffcff memory:dffc0000-dffdffff
*-multimedia
description: Audio device
product: MCP61 High Definition Audio
vendor: nVidia Corporation
physical id: 5
bus info: pci#0000:00:05.0
version: a2
width: 32 bits
clock: 66MHz
capabilities: pm msi ht bus_master cap_list
configuration: driver=HDA Intel latency=0 maxlatency=5 mingnt=2
resources: irq:22 memory:dfef4000-dfef7fff
*-ide:0
description: IDE interface
product: MCP61 IDE
vendor: nVidia Corporation
physical id: 6
bus info: pci#0000:00:06.0
version: a2
width: 32 bits
clock: 66MHz
capabilities: ide pm bus_master cap_list
configuration: driver=pata_amd latency=0 maxlatency=1 mingnt=3
resources: irq:0 ioport:1f0(size=8) ioport:3f6 ioport:170(size=8) ioport:376 ioport:ffa0(size=16)
*-bridge
description: Ethernet interface
product: MCP61 Ethernet
vendor: nVidia Corporation
physical id: 7
bus info: pci#0000:00:07.0
logical name: eth0
version: a2
serial: bc:ae:c5:b6:5d:a4
size: 100000000
capacity: 1000000000
width: 32 bits
clock: 66MHz
capabilities: bridge pm msi ht bus_master cap_list ethernet physical mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=forcedeth driverversion=0.64 duplex=full ip=10.0.0.53 latency=0 link=yes maxlatency=20 mingnt=1 multicast=yes port=MII speed=100Mbit/s
resources: irq:43 memory:dfef9000-dfef9fff ioport:d480(size=8)
*-ide:1
description: IDE interface
product: MCP61 SATA Controller
vendor: nVidia Corporation
physical id: 8
bus info: pci#0000:00:08.0
logical name: scsi3
version: a2
width: 32 bits
clock: 66MHz
capabilities: ide pm msi ht bus_master cap_list emulated
configuration: driver=sata_nv latency=0 maxlatency=1 mingnt=3
resources: irq:23 ioport:d400(size=8) ioport:d080(size=4) ioport:d000(size=8) ioport:cc00(size=4) ioport:c880(size=16) memory:dfef8000-dfef8fff
*-disk
description: ATA Disk
product: ST3250312AS
vendor: Seagate
physical id: 0.0.0
bus info: scsi#3:0.0.0
logical name: /dev/sda
version: JC45
serial: 5VMVP3ER
size: 232GiB (250GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 signature=00065eee
*-volume:0
description: EXT4 volume
vendor: Linux
physical id: 1
bus info: scsi#3:0.0.0,1
logical name: /dev/sda1
logical name: /
version: 1.0
serial: b09b2d81-893c-4078-a0f5-ed3f095feb6a
size: 74GiB
capacity: 74GiB
capabilities: primary bootable journaled extended_attributes large_files huge_files dir_nlink recover extents ext4 ext2 initialized
configuration: created=2011-05-13 20:23:38 filesystem=ext4 lastmountpoint=/ modified=2011-10-02 22:38:18 mount.fstype=ext4 mount.options=rw,relatime,errors=remount-ro,barrier=1,data=ordered mounted=2011-10-09 16:06:10 state=mounted
*-volume:1
description: Extended partition
physical id: 2
bus info: scsi#3:0.0.0,2
logical name: /dev/sda2
size: 2860MiB
capacity: 2860MiB
capabilities: primary extended partitioned partitioned:extended
*-logicalvolume
description: Linux swap / Solaris partition
physical id: 5
logical name: /dev/sda5
capacity: 2860MiB
capabilities: nofs
*-volume:2
description: Windows FAT volume
vendor: MSWIN4.1
physical id: 3
bus info: scsi#3:0.0.0,3
logical name: /dev/sda3
logical name: /windows
version: FAT32
serial: 874c-2af5
size: 37GiB
capacity: 37GiB
capabilities: primary fat initialized
configuration: FATs=2 filesystem=fat mount.fstype=vfat mount.options=rw,relatime,gid=46,fmask=0007,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro state=mounted
*-volume:3
description: Windows FAT volume
vendor: MSWIN4.1
physical id: 4
bus info: scsi#3:0.0.0,4
logical name: /dev/sda4
logical name: /dos
version: FAT32
serial: 7144-97bc
size: 118GiB
capacity: 118GiB
capabilities: primary fat initialized
configuration: FATs=2 filesystem=fat mount.fstype=vfat mount.options=rw,relatime,gid=46,fmask=0007,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro state=mounted
*-ide:2
description: IDE interface
product: MCP61 SATA Controller
vendor: nVidia Corporation
physical id: 8.1
bus info: pci#0000:00:08.1
logical name: scsi5
version: a2
width: 32 bits
clock: 66MHz
capabilities: ide pm msi ht bus_master cap_list emulated
configuration: driver=sata_nv latency=0 maxlatency=1 mingnt=3
resources: irq:22 ioport:c800(size=8) ioport:c480(size=4) ioport:c400(size=8) ioport:c080(size=4) ioport:c000(size=16) memory:dfeef000-dfeeffff
*-cdrom
description: DVD-RAM writer
product: DVDRAM GH22NS50
vendor: HL-DT-ST
physical id: 0.0.0
bus info: scsi#5:0.0.0
logical name: /dev/cdrom
logical name: /dev/cdrw
logical name: /dev/dvd
logical name: /dev/dvdrw
logical name: /dev/scd0
logical name: /dev/sr0
version: TN03
capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
configuration: ansiversion=5 status=nodisc
*-pci:1
description: PCI bridge
product: MCP61 PCI Express bridge
vendor: nVidia Corporation
physical id: 9
bus info: pci#0000:00:09.0
version: a2
width: 32 bits
clock: 33MHz
capabilities: pci pm msi ht pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:40
*-pci:2
description: PCI bridge
product: MCP61 PCI Express bridge
vendor: nVidia Corporation
physical id: b
bus info: pci#0000:00:0b.0
version: a2
width: 32 bits
clock: 33MHz
capabilities: pci pm msi ht pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:41
*-pci:3
description: PCI bridge
product: MCP61 PCI Express bridge
vendor: nVidia Corporation
physical id: c
bus info: pci#0000:00:0c.0
version: a2
width: 32 bits
clock: 33MHz
capabilities: pci pm msi ht pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:42
*-display
description: VGA compatible controller
product: C61 [GeForce 7025 / nForce 630a]
vendor: nVidia Corporation
physical id: d
bus info: pci#0000:00:0d.0
version: a2
width: 64 bits
clock: 66MHz
capabilities: pm msi vga_controller bus_master cap_list rom
configuration: driver=nvidia latency=0
resources: irq:21 memory:de000000-deffffff memory:c0000000-cfffffff memory:dd000000-ddffffff memory:dfec0000-dfedffff
*-pci:4
description: Host bridge
product: Family 10h Processor HyperTransport Configuration
vendor: Hynix Semiconductor (Hyundai Electronics)
physical id: 101
bus info: pci#0000:00:18.0
version: 00
width: 32 bits
clock: 33MHz
*-pci:5
description: Host bridge
product: Family 10h Processor Address Map
vendor: Hynix Semiconductor (Hyundai Electronics)
physical id: 102
bus info: pci#0000:00:18.1
version: 00
width: 32 bits
clock: 33MHz
*-pci:6
description: Host bridge
product: Family 10h Processor DRAM Controller
vendor: Hynix Semiconductor (Hyundai Electronics)
physical id: 103
bus info: pci#0000:00:18.2
version: 00
width: 32 bits
clock: 33MHz
*-pci:7
description: Host bridge
product: Family 10h Processor Miscellaneous Control
vendor: Hynix Semiconductor (Hyundai Electronics)
physical id: 104
bus info: pci#0000:00:18.3
version: 00
width: 32 bits
clock: 33MHz
configuration: driver=k10temp
resources: irq:0
*-pci:8
description: Host bridge
product: Family 10h Processor Link Control
vendor: Hynix Semiconductor (Hyundai Electronics)
physical id: 105
bus info: pci#0000:00:18.4
version: 00
width: 32 bits
clock: 33MHz
*-scsi
physical id: e
bus info: usb#1:7
logical name: scsi26
capabilities: emulated scsi-host
configuration: driver=usb-storage
*-disk
description: SCSI Disk
physical id: 0.0.0
bus info: scsi#26:0.0.0
logical name: /dev/sdb
You can have a look at Microsoft's DevCon: The DevCon command-line utility functions as an alternative to Device Manager.
The source code for DevCon is also available in the Windows DDK (which is available from http://www.microsoft.com/whdc/devtools/ddk/default.mspx) under DDK root\Src\Setup\Devcon, along with documentation. The source code shows you how to use the various API in the SetupAPI.
I know that USBDeview is like lsusb on Windows. You can find it from http://www.nirsoft.net/ .
Perhaps one of Nirsoft's other software is helpful for your needs? Like Devmanview or Driverview?
If you prefer the tree view, then go into Device Manager (usually in System->Hardware). This will show you all the devices in your system. It's better than the command prompt in Ubuntu, although you might have to dig further than normal to find specifics like data width or channel modes.
An easier option is to go to the Piriform website, and pick up Speccy. I'd suggest the portable build, because it's more convenient, and besides, you'll only use it a few times.
Speccy is a real cool program that will detect almost anything you want to know. I've never had any inaccuracies, and this is my go-to tool for new hardware.
You have several options, please see my answer at SR SE.
DevCon.exe (CLI) which is available in sources from the github repo, or alternatively can be obtained from the Windows SDK, WDK (Windows Driver Kit) or EDWK.
USBview.exe (GUI) - available in same location as above. And described here.
listdevs.exe (CLI) - You can use some of the libusb based tools found in their github.
Some Example usages:
# Some useful devcon examples:
#devcon.exe classes # to list all available classes
#devcon.exe listclass net
#devcon.exe hwids =net
#devcon.exe driverfiles "HID\Vid_045e&Pid_0039&Rev_0121"
#devcon.exe find "*usb*"
#devcon.exe find "=libusb-win32 devices"
#devcon.exe hwids USB\*
# devcon.exe listclass usb
Listing 11 devices in setup class "USB" (Universal Serial Bus controllers).
USB\VID_0BDA&PID_0139\20100201396000000 : Realtek USB 2.0 Card Reader
USB\ROOT_HUB20\4&29650814&0 : USB Root Hub
USB\VID_8087&PID_8008\5&55A390B&0&1 : Generic USB Hub
...
PCI\VEN_8086&DEV_8C2D&SUBSYS_11CD1043&REV_05\3&11583659&0&D0:
Intel(R) 8 Series/C220 Series USB EHCI #2 - 8C2D
# devcon.exe hwids USB\*
USB\VID_0BDA&PID_0139\20100201396000000
Name: Realtek USB 2.0 Card Reader
Hardware IDs:
USB\VID_0BDA&PID_0139&REV_3960
USB\VID_0BDA&PID_0139
Compatible IDs:
USB\Class_FF&SubClass_06&Prot_50
USB\Class_FF&SubClass_06
USB\Class_FF
USB\ROOT_HUB20\4&29650814&0
Name: USB Root Hub
Hardware IDs:
USB\ROOT_HUB20&VID8086&PID8C26&REV0005
USB\ROOT_HUB20&VID8086&PID8C26
USB\ROOT_HUB20
...
The libusb tools:
# listdevs.exe
0bda:0139 (bus 2, device 1) path: 8
8086:8c26 (bus 3, device 0)
8087:8008 (bus 1, device 1) path: 1
13d3:3402 (bus 2, device 3) path: 5
16c0:05df (bus 2, device 14) path: 2
# Then use xusb to get details of the VID/PID:
# xusb.exe -i 16c0:05df
Using libusb v1.0.22.11312
Opening device 16C0:05DF...
Device properties:
bus number: 2
port path: 2 (from root hub)
speed: 1.5 Mbit/s (USB LowSpeed)
Reading device descriptor:
length: 18
device class: 0
S/N: 0
VID:PID: 16C0:05DF
bcdDevice: 0100
iMan:iProd:iSer: 1:2:0
nb confs: 1
Reading BOS descriptor: no descriptor
Reading first configuration descriptor:
nb interfaces: 1
interface[0]: id = 0
interface[0].altsetting[0]: num endpoints = 1
Class.SubClass.Protocol: 03.00.00
endpoint[0].address: 81
max packet size: 0008
polling interval: 0A
Claiming interface 0...
Reading string descriptors:
String (0x01): "digistump.com"
String (0x02): "DigiUSB"
Releasing interface 0...
Closing device...
libusb: error [parse_bos] unexpected descriptor 0 (expected f)

Resources