Entry Table
Entry Table 是一种类似设备树的数据结构,用于固件阶段提供板级描述信息给固件进行必要的初始化,有时也提供必要的描述性信息。
简单来说,Entry Table 将描述和配置信息打包为二进制文件,与固件约定好预定义的数据结构,固件加载并提取所需的描述或配置信息。
功能描述
在 MTT E300 平台上,通过修改 Entry Table 可以实现板级描述信息、GPIO 信息以及 DDR 参数配置。
配置流程
步骤 1:安装 Python 环境
Entry Table 使用 Python 版本,依赖以下库:
xlrd==1.2.0pyinstaller
python --version # Python 3.8.10
pip3 install xlrd==1.2.0
pip3 install pyinstaller
步骤 2:修改 GPIO 配置
大多数情况下,Entry Table 对支持的板子有默认配置,因此本节主要介绍 GPIO 配置的修改方法:
-
在 Windows 中打开
m1000-entry-table-tool/product/table/gpio_config.xlsx中需要修改 gpio cfg 的 sheet。
-
修改对应 GPIO S-X 列(GPIO initial 态)及 AK 列(Voltage_Config)的内容,S 列之前属于描述内容,normal 及 lowpower 状态暂未使用,如下图所示:

列配置说明及配置值:
- S 列(Function):功能模式,可选值:(Function_0, Function_1, Function_2, Function_3),Function_0 通常为 GPIO 模式,其他模式参考 GPIO 文档
- T 列(Pull_Type):上下拉类型,可选值:(NP, PU, PD),NP: 不上拉不下拉,PU: 上拉,PD: 下拉
- U-V 列:当功能模式为 GPIO 模式时有效,非 GPIO 模式时 U-V 列填
-- U 列(GPIO 方向):可选值:(DI, DO),DI: 方向输入,DO: 方向输出
- V 列(GPIO 输出值):当 GPIO 方向为 DO(方向输出)时有效,非 DO 时 V 列填
-,可选值:(H, L),H: 高,L: 低
- W 列(Slew Rate):压摆率,可选值:(Fast, Slow)
- X 列(Driver Strength):驱动强度,可选值:(2mA, 4mA, 8mA, 16mA)
- AK 列(Voltage Config):电压配置,可选值:(1.8V, 2.5V, 3.3V)
-
修改完成保存后,将 Windows 环境中修改后的
gpio_config.xlsx替换掉编译环境中的gpio_config.xlsx -
在编译环境中切换到
m1000-entry-table-tool/product路径,执行:python autoTranslate.py执行成功后会有
[PARSE_INFO] auto translate success打印 -
修改完成后,重新编译
soc-firmware-image
开发参考
-
本例将 GPIO 0 的功能模式修改为 Function_0, DO, H

-
执行上述步骤 3-4 后,运行
git status和git diff查看 CSV 文件的修改情况

-
修改完成后,重新编译
soc-firmware-image
调试方法说明
-
测量信号或测试 GPIO 引脚功能,验证是否符合预期
-
使用
ac_tool或devmem抓取 GPIO 寄存器信息
常见问题
Q:Python 是否支持其他版本?
A:目前仅支持特定版本,注意 xlrd 仅支持 1.2.0 版本。
Q:除了 GPIO,如何配置 Entry Table 其他内容?
A:目前仅需关注 GPIO 配置,其他部分已有默认配置。
Q:编译失败的可能原因?
A:可能原因包括:
- 检查 Python 及相关库版本是否正确。
- 如果使用 Samba 等工具在编译机器上打开 Excel 表格,修改完成后编译前请先关闭 Excel 文件。

