The FireWire functionality is hanfled by SD/MMC Ricoh chip. The small daughter 
board is just wired to MMC Controller and its a secondary function of that chip 
(from what I got from thinkpad forum and IRC channel).

On April 9, 2020 7:44:26 AM UTC, Alesandar Metodiev 
<alesandarmetod...@gmail.com> wrote:
>By the way, since I have manually swapped the chip, I wanted to let you
>know that it is not directly mounted to the motherboard.
>It is attached to a smaller daughter board which might be the SD host
>controller itself.
>
>On Thu, Apr 9, 2020 at 10:20 AM Alesandar Metodiev <
>alesandarmetod...@gmail.com> wrote:
>
>> I have booted with spkmodem enabled, but nothing has changed. The
>device
>> is still not present.
>>
>> On Thu, Apr 9, 2020 at 3:04 AM Peter Stuge <pe...@stuge.se> wrote:
>>
>>> AreYouLoco? wrote:
>>> > I was wrong it isn't detected as SD/MMC it doesn't get detected at
>all.
>>> > There is a separate device for SD/MMC present both on coreboot and
>>> stock.
>>>
>>> Are you really sure? There is no such device in the vendor BIOS
>logs.
>>>
>>>
>>> Alesandar Metodiev wrote:
>>> > I have tried to enable spkmodem, but now I can not boot at all.
>>> > Maybe I did something wrong. No SeaBios, just a black screen.
>>>
>>> No - just wait really long, 10-20 minutes, depending on console
>level.
>>> IIRC it's 1200 bps, around 100 byte per second, so the 110860 byte
>>> console log at https://del.dog/raw/cbmemlog would take 18 minutes.
>>> Reduce the console level with spkmodem.
>>>
>>>
>>> Nico Huber wrote:
>>> > e822 vs. e823 smells like an upgrade to me. I suspect that we'd
>need to
>>> > load some firmware on the 0.0 device. Or at least to configure
>something
>>> > there so it switches 0.3 on.
>>>
>>>
>>> Nico Huber wrote:
>>> > https://del.dog/raw/nnvvvxxx_root
>>> > https://del.dog/raw/xxxx_root
>>> > https://del.dog/raw/lspci_tv
>>> >
>>> > Note, lspci calls it e823 even the DID register says e822, I have
>no
>>> > idea where it gets the number from.
>>>
>>> Also fun. lspci has an -A option to specify how it reads data. It
>>> would be interesting to compare what the kernel has (the default is
>>> one of the linux- methods) with the registers in the devices (the
>>> intel-conf1 method). If there is a difference then maybe the device
>>> still wasn't quite ready when the kernel booted.
>>>
>>>
>>> > Peter, do you happen to know something about the Virtual Channel
>>> > capability?
>>>
>>> I didn't, and I looked at the spec now but it seems uninteresting.
>>> It's a mechanism for multiple channels over a single link, with each
>>> VC possibly having different buffering and traffic class.
>>>
>>>
>>> I found something that might be relevant in
>https://del.dog/raw/cbmemlog
>>> however, search it for Remap:
>>>
>>> --8<-- https://del.dog/raw/cbmemlog#149
>>> PCI: 00:1c.0: Disabling device
>>> PCI: 00:1c.0: check set enabled
>>> PCH: Remap PCIe function 1 to 0
>>> PCI: 00:1c.1 [8086/1c12] enabled
>>> PCI: 00:1c.2: Disabling device
>>> PCH: Remap PCIe function 3 to 0
>>> PCI: 00:1c.3 [8086/1c16] enabled
>>> PCH: Remap PCIe function 4 to 0
>>> PCI: 00:1c.4 [8086/1c18] enabled
>>> -->8--
>>>
>>> It looks strange that fn 1, 3 and 4 are all supposedly remapped to
>fn 0.
>>> I looked in the code, to me it looks like this will cause a mess in
>RPFN:
>>>
>>> --8<-- southbridge/intel/bd82x6x/pch.c#229
>>> /* Swap function numbers assigned to two PCIe Root Ports */
>>> static void pch_pcie_function_swap(u8 old_fn, u8 new_fn)
>>> {
>>>         u32 old_rpfn = new_rpfn;
>>>
>>>         printk(BIOS_DEBUG, "PCH: Remap PCIe function %d to %d\n",
>>>                old_fn, new_fn);
>>>
>>>         new_rpfn &= ~(RPFN_FNMASK(old_fn) | RPFN_FNMASK(new_fn));
>>>
>>>         /* Old function set to new function and disabled */
>>>         new_rpfn |= RPFN_FNSET(old_fn, RPFN_FNGET(old_rpfn,
>new_fn));
>>>         new_rpfn |= RPFN_FNSET(new_fn, RPFN_FNGET(old_rpfn,
>old_fn));
>>> }
>>> ... line 373:
>>>                 int fn;
>>>
>>>                 /*
>>>                  * Check if there is a lower disabled port to swap
>with
>>> this
>>>                  * port in order to maintain linear order starting
>at
>>> zero.
>>>                  */
>>>                 if (config->pcie_port_coalesce) {
>>>                         for (fn=0; fn <
>PCI_FUNC(dev->path.pci.devfn);
>>> fn++) {
>>>                                 if (!(new_rpfn & RPFN_HIDE(fn)))
>>>                                         continue;
>>>
>>>                                 /* Swap places with this function */
>>>                                 pch_pcie_function_swap(
>>>                                        
>PCI_FUNC(dev->path.pci.devfn),
>>> fn);
>>>                                 break;
>>>                         }
>>>                 }
>>> -->8--
>>>
>>> But later in the log it doesn't look like RPFN has all functions on
>>> top of each other, but it also doesn't look really good:
>>>
>>>
>>> --8<-- https://del.dog/raw/cbmemlog#162
>>> PCH: PCIe map 1c.0 -> 1c.4
>>> PCH: PCIe map 1c.1 -> 1c.0
>>> PCH: PCIe map 1c.3 -> 1c.1
>>> PCH: PCIe map 1c.4 -> 1c.3
>>> -->8--
>>>
>>> If the gaps are to be filled then I'd expect to see something like:
>>>
>>> 1c.1 -> 1c.0
>>> 1c.3 -> 1c.1
>>> 1c.4 -> 1c.2
>>>
>>> The devicetree.cb seems not quite done, at least not for this
>mainboard:
>>>
>>> --8<-- https://del.dog/raw/cbmemlog#175
>>> PCI: Leftover static devices:
>>> PCI: 00:01.0
>>> PCI: 00:16.1
>>> PCI: 00:16.2
>>> PCI: 00:16.3
>>> PCI: 00:1c.4
>>> PCI: 00:1c.2
>>> PCI: 00:1c.5
>>> PCI: 00:1c.7
>>> PCI: Check your devicetree.cb.
>>> -->8--
>>>
>>> But scanning the busses, actually both the Renesas xHCI/USB3 and the
>Ricoh
>>> are visible:
>>>
>>> --8<-- https://del.dog/raw/cbmemlog#189
>>> PCI: pci_scan_bus for bus 02
>>> PCI: 02:00.0 [1912/0015] enabled
>>> Enabling Common Clock Configuration
>>> ASPM: Enabled L0s and L1
>>> PCIe: Max_Payload_Size adjusted to 128
>>> scan_bus: bus PCI: 00:1c.1 finished in 0 msecs
>>> PCI: 00:1c.3 scanning...
>>> PCI: pci_scan_bus for bus 03
>>> PCI: 03:00.0 [1180/e822] enabled
>>> Enabling Common Clock Configuration
>>> ASPM: Enabled L0s and L1
>>> PCIe: Max_Payload_Size adjusted to 128
>>> Failed to enable LTR for dev = PCI: 03:00.0
>>> scan_bus: bus PCI: 00:1c.3 finished in 0 msecs
>>> -->8--
>>>
>>> But the Ricoh has the wrong DID, and while looking at
>>> https://del.dog/raw/sd-mmc-not-fw
>>>
>>> I notice that the device looks more like a PCI device than a PCI
>Express
>>> one,
>>> with INTA routed to IRQ 16 instead of using MSI.
>>>
>>>
>>> Sorry - I'm not able to suggest anything really concrete, but these
>are
>>> my observations.
>>>
>>>
>>> //Peter
>>> _______________________________________________
>>> coreboot mailing list -- coreboot@coreboot.org
>>> To unsubscribe send an email to coreboot-le...@coreboot.org
>>>
>>
_______________________________________________
coreboot mailing list -- coreboot@coreboot.org
To unsubscribe send an email to coreboot-le...@coreboot.org

Reply via email to