Re: Identifying Synopsys USB3 Controller on Baytrail Device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Joseph Kogut <joseph.kogut@xxxxxxxxx> writes:
> Hi David,
>
> I know this is a pretty old thread. I tried searching for the LKML
> etiquette on something like this and came up empty. If I should start
> a new thread, let me know.
>
> After what I learned from the last thread, I dropped the idea of using
> the device controller from the Dell tablet I had. A few months later,
> I learned that some overseas electronics companies are now making
> dual-boot tablets, that support both Android and generic x86 operating
> systems through an IA32 UEFI firmware. I did some research on the
> devices, and found that they support interaction over USB with the
> Android tools ADB and fastboot, which indicated to me that they likely
> had a working USB device controller.
>
> With my curiosity piqued, I acquired one. My testing confirmed that
> the installed Android OS had the capability of utilizing both the host
> and device controllers, and allowed file transfer over MTP, as well as
> USB networking.
>
> After discovering that much of the kernel code supporting Baytrail had
> yet to be mainlined, I shelved the device for a few months.
>
> In the last few days, I've revisited the tablet, and replaced the
> second OS that came on it with a Linux distribution running the
> mainline kernel, compiled with DWC3 and OTG support. After booting the
> tablet and attempting to load a gadget module, I had a bout of deja
> vu. The device controller doesn't appear in the list of PCI devices.
>
> When attempting to load a gadget module, the kernel log reports:
>
>> udc-core: couldn't find an available UDC
>
> After reviewing this thread, I confirmed that the device id 8086:0f37
> does not appear in the output of 'lspci -nn', but 8086:0f35 does.
>
> The dual-boot capability of the device seems to be implemented by
> switching between two distinct firmwares, but I can't be sure. If that
> is the case, I'm wondering if the PC compatible firmware just doesn't
> expose the device controller for some reason. Alternatively, like
> Felipe mentioned, I wonder if there's not a muxer between the phy and
> device/host controllers that needs to be configured somehow.
>
> Do you have any light to shed on this?

You can extract ACPI tables to figure this one out:

# acpidump -o acpi.bin

Then copy that over to your PC using, e.g. MTP and run:

$ acpixtract -a acpi.bin

followed by:

$ iasl -d *.dat

Then you can look in dsdt.dsl for XDCI or OTGD, or whatever might look
like the peripheral controller. Look at the _STA method and see what it
returns. Devices only show up on PCI bus when _STA is non-zero (usually,
it returns 0xF). I'd assume there's a If() condition for the reported OS
type.

To test things out, you can overwrite FW DSDT with your own, but be
very, very careful when doing so. I recommend reading on Google and
Documentation directory before attempting.

-- 
balbi

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux