Changes between Version 7 and Version 8 of newport/PCIe


Ignore:
Timestamp:
04/08/2019 10:10:19 PM (5 years ago)
Author:
Tim Harvey
Comment:

added details on how to manually assert/de-assert PERST# from PEM's and PEM mapping

Legend:

Unmodified
Added
Removed
Modified
  • newport/PCIe

    v7 v8  
    4848[=#perst]
    4949== PCIe Reset ==
    50 PCI Reset signals (PERST#) are routed to the Mini-PCIe slots.
     50PCI Reset signals (PERST#) are routed to the Mini-PCIe slots. On the Newport boards each Mini-PCIe socket has its own dedicated PCI Reset (PERST#) signal. These signals are managed during PCI enumeration by the software drivers in the BDK (Boot firmware) and the Linux kernel.
    5151
    52 On the Newport boards each Mini-PCIe socket has its own dedicated PCI Reset (PERST#) signal.
     52If you wish to manually assert these signals (which should never be done for an actual PCIe device as it would likely require re-enumeration but may be useful for a non-PCIe device in a miniPCIe socket like a modem) you can use the {{{RST_SOFT_PRST}}} register.
    5353
    54 **Note:** Activating these lines is yet to be implemented in software.
     54You can use the following script to assert PERST# for PEM0, PEM1, or PEM2 on a Newport board:
     55{{{#!bash
     56#/bin/sh
     57PEM=$1
     58
     59[ "$PEM" -ge 0 -a "$PEM" -le 2 ] || {
     60   echo "Error: $0 [0|1|2]"
     61   exit 1
     62}
     63RST_SOFT_PRST=$((0x87e0060016c0 + $((1*8)) ))
     64printf "PEM%d 0x%x\n" $PEM $RST_SOFT_PRST
     65
     66devmem2 $RST_SOFT_PRST b 1 # assert low
     67sleep 1
     68devmem2 $RST_SOFT_PRST b 0 # assert high
     69}}}
     70
     71The following table shows the mapping of the three CN80XX PEM's to miniPCIe socket:
     72||= Board =||= PEM =||= miniPCIe Socket =||= Notes =||
     73|| GW610x  || PEM2  || J6 || Provides USB2 as well as PCIe, mSATA, or USB3 (see [wiki:newport/bootloader/#hwconfig hwconfig]) ||
     74|| GW620x  || PEM0  || J6 || Provides USB2 as well as PCIe, mSATA, or USB3 (see [wiki:newport/bootloader/#hwconfig hwconfig]) ||
     75||         || PEM2  || J8 || Provides USB2 and PCIe ||
     76|| GW630x  || PEM0  || J9 || Provides USB2 and PCIe ||
     77||         || PEM1  || J11 || Provides USB2 as well as PCIe or USB3 (see [wiki:newport/bootloader/#hwconfig hwconfig]) ||
     78||         || PEM2  || J10 || Provides USB2 and PCIe or mSATA (see [wiki:newport/bootloader/#hwconfig hwconfig]) ||
     79|| GW640x  || PEM0  || J9  || Provides USB2 and PCIe ||
     80||         || PEM1  || J11 || Provides USB2 and PCIe ||
     81||         || PEM2  || J10 || Provides USB2 and PCIe or mSATA (see [wiki:newport/bootloader/#hwconfig hwconfig]) ||
     82||         || N/A   || J12 || Provides USB2 and USB3 (PERST# is floating and not driven - no way to reset) ||
     83
     84
    5585
    5686= Mini-PCIe Mechanical Specification =