%\begin{content}
\chapter{常见问题}
\section{编译出的 bootloader.bin 文件过大}
在 Ubuntu 20.04 系统中编译  SBCFT2000M-AR18\_FT2004\_UBOOT 生成的文件文件过大（大于8M)，正常的文件是 5M 多。

\texttt{ft2004\_packer/my\_scripts/fiptool\_x86} 依赖库文件 \texttt{libcrypto.so.1.0.0}，它在 Ubuntu 20.04
以上系统中不存在。将库文件

\texttt{SBCFT2000M-AR18\_FT2004\_UBOOT/data/libcrypto.so.1.0.0}

放到\texttt{/usr/lib/x86\_64-linux-gnu} 目录下，执行命令重新编译 Uboot：
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
    ./run clean
    ./run
\end{minted}

\section{FPGA 程序烧写}
FLASH 使用的是成都蜀郡的 SJ25QW256，大小 32M。烧写需要使用 ISE14.7 的 IMPACT。在 windows 10 的电脑需要做一点修改。
可以只安装 ISE 套件里面的 labtools。安装后操作步骤如下：
\begin{enumerate}[(1)]
    \item 将 \texttt{\small <install\_path>/LabTools/LabTools/lib/nt64/libPortability.dll} 复制为 \texttt{\small libPortability.dll.orig} （备份该文件）。
    \item 将 \texttt{\small <install\_path>/LabTools/LabTools/lib/nt64/libPortabilityNOSH.dll} 复制为 \texttt{\small libPortability.dll} 。
    \item 将 \texttt{\small <install\_path>/LabTools/LabTools/lib/nt64/libPortabilityNOSH.dll} 复制为 \texttt{\small <install\_path>/LabTools/common/lib/nt64/libPortabilityNOSH.dll}。
    \item 将 \texttt{\small <install\_path>/LabTools/common/lib/nt64/libPortability.dll} 复制为 \\%
    \texttt{\small libPortability.dll.orig} （备份该文件）。
    \item 将 \texttt{\small <install\_path>/LabTools/common/lib/nt64/libPortabilityNOSH.dll} 复制为 \texttt{\small libPortability.dll} 。
    \item 从桌面的 「此电脑」 点右键选择 「属性」，依次点开 「高级系统设置」 => 「环境变量」 => 「系统环境变量」 => 「新建」，添加环境变量 \texttt{\small \textcolor{blue!80} {XIL\_IMPACT\_SKIPIDCODE}}，
    其值为：\texttt{\small\textcolor{blue!80}{1}} 。
    \item IMPACT 里面 spi flash 型号选择：\texttt{\small \textcolor{blue!80}{N25Q256}}，数据宽度选 \texttt{\small \textcolor{blue!80}{4}}。
\end{enumerate}
在实际的使用过程中，发现用 platform usb jtag 仿真器是不成功的，用 HS2 jtag 仿真器能正常烧写。

\section{新板子 FPGA 不能访问}
FPGA 与 FT2000 连接的 PCIE 接口需要先解锁才能使用，新板子刚烧上程序的时候，系统起来会报与逻辑连接的PCIE相关的错误。用 「授权管理工具」 连接串口，选
「自动授权」成功之后重启一下板子：
\begin{figure}[H]
  \centering
 \includegraphics[width=0.9\textwidth] {ar18_unlock}
  \caption{fpga 解锁}
  \label{fig:fpgaunlock}
\end{figure}

\section{调试串口不能输入}
\label{sec:dbg}
当调试串口线接在 sub板上，开机后，调试串口有打印输出，在 reworks 命令行不能正常输入。请检查sub 板上标有 「\textcolor{blue!80}{232使能}」 的 \textcolor{blue!80}{J20} 跳线插针，把跳线帽插上。

\section{清除超温参数}
在 uboot 的命令行上清除 \textcolor{blue!80}{therm\_high} 和 \textcolor{blue!80}{therm\_low} 环境变量：
\begin{figure}[H]
  \centering
  \includegraphics[width=0.65\textwidth]{ar18_therm}
  \caption{清除超温参数}
\end{figure}

\section{FT2004 PCIE控制器LTSSM 状态寄存器}
FT2000/4 内置两个PCIE单元（PCI-E Unit， PEU），分别为 PEU0 和 PEU1。每个PEU包含3个
控制器：C0、C1和C2。

PEU 基地址：
\begin{table}[H]
  \centering
\begin{tabular}{cc}
  \toprule
  PEU 单元& 基地址 \\
  \midrule
  \texttt{PEU0} & \texttt{0x29100000} \\
  \texttt{PEU1} & \texttt{0x29101000} \\
  \bottomrule
\end{tabular}
\caption{PEU 基地址}
\end{table}

控制器调试寄存器地址偏移：
\begin{table}[H]
  \centering
\begin{tabular}{ccc}
  \toprule
  控制器 & 偏移 & 描述 \\
  \midrule
  \texttt{C0} & \texttt{0x540} & \texttt{5:0 LTSSM} \\
  \texttt{C1} & \texttt{0x550} & \texttt{5:0 LTSSM} \\
  \texttt{C2} & \texttt{0x560} & \texttt{5:0 LTSSM} \\
  \bottomrule
\end{tabular}
\caption{调试寄器偏移}
\end{table}

LTSSM 状态编码参考 PCIE 规范，如下表：
%\begin{table}[H]
%  \centering
%\begin{tabular}{lc}
%  \toprule
%  LTSSM State Name               & Value(hex)  \\
%  \midrule
%  Detect.Quiet                   & 00 \\
%  Detect.Active                  & 01 \\ 
%  Polling.Active                 & 02 \\
%  Polling.Compliance             & 03 \\
%  Polling.Configuration          & 04 \\
%  Configuration.Linkwidth.Start  & 05 \\
%  Configuration.Linkwidth.Accept & 06 \\
%  Configuration.Lanenum.Accept   & 07 \\
%  Configuration.Lanenum.Wait     & 08 \\
%  Configuration.Complete         & 09 \\
%  Configuration.Idle             & 0A \\
%  Recovery.RcvrLock              & 0B \\
%  Recovery.Speed                 & 0C \\
%  Recovery.RcvrCfg               & 0D \\
%  Recovery.Idle                  & 0E \\
%  L0                             & 10 \\
%  Rx\_L0s.Entry                  & 11 \\
%  Rx\_L0s.Idle                   & 12 \\
%  Rx\_L0s.FTS                    & 13 \\
%  Tx\_L0s.Entry                  & 14 \\
%  Tx\_L0s.Idle                   & 15 \\
%  Tx\_L0s.FTS                    & 16 \\
%  L1.Entry                       & 17 \\
%  L1.Idle                        & 18 \\
%  L2.Idle                        & 19 \\
%  L2.TRansmitWake                & 1A \\
%  Disabled                       & 20 \\
%  Loopback.Entry(Master)         & 21 \\
%  Loopback.Active(Master)        & 22 \\
%  Loopback.Exit(Master)          & 23 \\
%  Loopback.Entry(Slave)          & 24 \\
%  Loopback.Active(Slave)         & 25 \\
%  \bottomrule
%\end{tabular}
%\caption{调试寄器偏移}
%\end{table}

\begin{figure}[H]
  \centering
  \includegraphics[width=0.85\textwidth]{ltssm}
  \caption{LTSSM 状态编码}
\end{figure}

% Local Variables:
% TeX-master: "../ar18_guide"
% End:
