How to get details of PCI device enumeration when Windows starts up - driver

We made a motherboard. A PCIe switch (1 upstream port, 4 downstream ports) is used. Each downstream port directly leads to a PCIe slot.
There is a problem that has been plagued for a long time. The No. 2 slot does not recognize the device and has this problem on multiple motherboards.
We checked the power supply and wiring of slot 2 and everything worked fine. And carefully checked the PCB design and layout, slot 2 is no different from other slots.
At present, the hardware has not found any doubts, so I wonder if I can get further fault information through the operating system.
Can I get the details of the device enumeration by opening some configuration of the operating system or by kernel debugging?
1) I've used UEFI Shell V2.2 to see that the No.2 slot device is online and can be read out the configuration space. However, after entering Windows, the No.2 slot device is still not visible in the device manager. I tried to refresh the device by right-clicking on the device manager and the No.2 slot device appeared! By running the test application, it's found that the board is operating normally.
2) I did a comparative experiment and plugged a Samsung PCIe SSD into slot 2. The device would display properly whether in the EFI shell or in Windows.

Related

slow reception of BLE packets on iPhone from nRF52 ARM

I built a custom ARM device based on the nRF52 SOC that handles BLE 5. I wrote a custom app in SWIFT/X-Code/IB using Core Bluetooth framework and am unable to stream data from the ARM device any faster than about 12 kbs. Using packet sniffers I can see that the ARM device sent all of the packets in realtime, but the iPhone doesn't read them any faster than a few times per second. On rare occasion the iPhone reads everything quickly. The Bluetooth connection negotiates to a 12-24 ms latency. I am using Nordic nRF52 SDK version 16. The iPhone is not connected to any other BLE devices at the time.
Has anyone else had this issue? If it is helpful, I can post the code used on the ARM device and the XCode code.
As your using the nordic board there are several things to check to "speed up the process". Firstly I assume you are sending via notifications. Secondly you need to know what forms your data rate. They are:
Number of bits per notification
Connection interval
Events per connection interval
Data communication type
Also you can queue up-several packets to store until they are sent via the notification(filling a buffer).
So some useful settings. First and foremost maximise the data you are sending per packet. E.g if you are sending 10 bytes of data send more, this will be limited to the maximum data size on the nordic board (247). Then increase the GAP length. So some settings I recommend to start are:
Go to sdk_config.h
Change NRF_SDH_BLE_GAP_EVENT_LENGTH to 400(think the default is 6)
Increase the MTU size to 247
Then run on the board, you will probably get an error saying change ram and start location. This will be printed to a terminal. You can do this by going:
Project
Options
Common
Press up arrow till under project
Linker
Section placement macros.
From there change your ram start and allocation variables to what is printed in the terminal / putty / debugger. Also not sure about the APIs for iphone apps but android has a function to set the bluetooth hardware into high power mode, this increased my throughput whilst transferring data, just disable it after data transfer. The APIs your using may have a similar function.
For reference code there is an example called maximum_throughput in the sdk, this should be a good reference point.

How to debug app using CoreMIDI on iOS connecting to hardware MIDI device?

It seems to me that real (hardware) (USB-)MIDI devices connected to Mac are not listed when running in the simulator. Is there an option to turn this functionality on?
For a concrete example, using e.g. MIKMIDI, MIKMIDIDeviceManager.shared().availableDevices returns 1 device with no model name or manufacturer, regardless of whether an actual physical device is plugged in or not (as shown in Audio MIDI Setup). I had similar results with MIDIFish.
'audio' background mode is enabled in the entitlements file.
On the other hand, I am planning to buy a Lightning-to-USB Camera Adapter for this purpose. However, I am not sure how would I debug such a configuration: If the iPhone's Lightning port is already occupied by the Adapter, how would I connect Xcode/Mac to the iPhone?
Any other idea? How do people typically do this?
Thank You.

Beaglebone can't start OS after unplugging supply power

I'm using beaglebone black (Debian OS, MySQL are installed).
After unplugging supply power and not using 24 hours.
I can't start my beaglebone.
It's only birght LED D4 and power LED.
How can i start my OS?
I just try to use usb cable and access to beaglebone at 192.168.7.2. but request time out.
The most likely issue is that the operating system has become corrupted by the unexpected shutdown. The same thing can happen with a regular computer and has happened with my own beaglebone black when I pulled the power plug while testing some circuits. I would suggest trying to boot off of an SD card. If you have anything on there you want to save, you can use the live SD card OS to retrieve the data from the embedded flash. If the SD card also doesnt boot, then you may have a hardware issue and a serial to USB cable plugged into the debug header would probably be needed to try and get more information as to why it is not booting.

diagnostics KVM switch in QNX 6.5

I have KVM(ATEN CS 1642) switch and connected to it usb-mouse, usb-keyboard and two dvi displays. KVM controls switching between two computers (QNX 6.5). I need to get information about connected input-output devices(mouse, keyboard, displays). Operating system utilities determine only emulated switch devices. I.e. call hidview displays Aten mouse and Aten keyboard, even if they actually pull out of the KVM. Can I get a list of actually connected IO devices programmatically?
Thanks.
If you only have the USB device connected, you can use usb -vvv for more detailed information.

BlackBerry: “filesystem not ready” when using USB cable

As part of a BlackBerry project I'm working on I need the ability to store data. As per RIM's documentation, on handsets running v5 or later OS, we can use the SQLite database versus the more typical PersistenceStore methods.
What I noticed is when my handset (A Torch 2) is plugged-in via the USB cable - so that I can run code through the debugger - the "SDCard/" and the "store/" are no longer available (both of these are NO longer enumerated when calling FileSystemRegistry.listRoots). Only "system/" is available, but as it's a read-only file system this does me little good.
I need a read/write file system that will be available even if the handset is attached to a PC.
It's worth noting that when I plug my handset in I get a dialog that asks how I want this connected: Sync Media, Mass storage device, or Charge Only are the 3 options. It does not matter which I choose ... the effects are the same in that only "system/" is available for a file system.
Any advice or help is greatly appreciated.
-------------------------------------- UPDATE --------------------------------------
I spoke with RIM's developer tech support on this issue and was simply informed this is a FAD. Their advice was
"This is not a bug, it is how the device is meant to function. You can
listen for when the device is connected via USB and the data
unavailable using SystemListener2."
As such it appears all we can do is alert the user to the fact that by plugging their handsets into the USB cables whatever functionaltiy you might require in your application that would include the file system will temporarily be unavailable. It might be functions as designed but I hope at some point they'll improve the design.
I'm afraid to say I struggled briefly with this and then gave up.
In my experience RIM mounts the SD card on the pc filesystem when you connect it via USB no matter what you do.
If you "eject" your device from the machine you should be able to access the sd card.

Resources