Это полное изложение Rockchip DP Signal Test Guide V1.0.0 (RK-KF-YF-C13) для RK3576/RK3588 и Rockchip BSP с Linux 5.10/6.1. Официальная документация подтверждает RK3576 у ArmSoM Sige5 и RK3588 у Sige7. Это справочник по платформе: перед применением необходимо проверить разводку платы, экземпляр PHY, интерфейс DP/Type-C, коммит SDK/BSP, версии ядра и драйвера. Проверка на оборудовании ArmSoM не проводилась.
Предоставлен только китайский PDF (13 страниц); английская и русская версии полностью переведены с него. Отдельных технических иллюстраций в источнике нет. Все таблицы регистров восстановлены в редактируемом виде; наличие английских оригиналов рисунков не заявляется. Удалены указанные служебные заявления, контакты, целевая аудитория и история редакций; техническая версия и весь технический текст сохранены.
Сначала проверка, затем применение: примеры io -4 напрямую записывают аппаратные регистры и не являются универсальной настройкой платы. В источнике есть команды без пробелов и противоречия в разрядности, смещениях и заголовках. Они сохранены для прослеживаемости. Не выполняйте спорные строки копированием; сначала прочитайте замечания ниже и сверьтесь с TRM/BSP.
1. Обзор DP PHY
В RK3576 и RK3588 PHY USBDP совместно используется DP и USB. Ниже рассматривается настройка сигнала при работе PHY в режиме DP. Адрес регистра равен базовому адресу выбранного PHY плюс смещение регистра.
| USBDP PHY | Базовый адрес USBDP PHY |
|---|---|
| RK3588 USBDP PHY0 | 0xfed88000 |
| RK3588 USBDP PHY1 | 0xfed98000 |
| RK3576 USBDP PHY | 0x2b018000 |
2. Настройка сигнала DP
Команды IO приведены для Lane0 PHY0 RK3588. Для других линий требуется изменить смещение, а для PHY1 RK3588 и PHY RK3576 — базовый адрес (здесь в источнике указано RK3756; см. замечания). Один регистр обычно управляет несколькими функциями. Перед совместной настройкой прочитайте текущее значение, примените операцию ИЛИ с новыми настраиваемыми битами согласно источнику и запишите результат, иначе предыдущие настройки будут перезаписаны.
2.1 Управление амплитудой DP
2.1.1 Уровень основного отвода передатчика DP
При настройке напряжения источник рекомендует сначала изменять этот регистр. Смещения приведены ниже; bit5 включает настройку, значение по умолчанию — 0x0f.
lane0: 0x0810[5:0]
lane1: 0x1010[5:0]
lane2: 0x1810[5:0]
lane3: 0x2010[5:0]
Диапазоны и команды ниже относятся к Lane0. Например, адрес Lane1 — 0xfed89010 (0xfed88810 + 0x800).
| Амплитуда | Команда [ reg offset 0x0810, bit 5:0] |
|---|---|
| 4’b1010 : 1200mv (макс.) | io -4 0xfed88810 0x2a |
| 4’b1001: | io -4 0xfed88810 0x29 |
| 4’b1000: | io -4 0xfed888100x28 |
| 4’b0111: | io -4 0xfed88810 0x27 |
| 4’b0110 : | io -4 0xfed88810 0x26 |
| 4’b0101: | io -4 0xfed88810 0x25 |
| 4’b0100: | io -4 0xfed88810 0x24 |
| 4’b0011: | io -4 0xfed88810 0x23 |
| 4’b0010 : | io -4 0xfed88810 0x22 |
| 4’b0001: | io -4 0xfed88810 0x21 |
| 4’b0000: 400mv (мин.) | io -4 0xfed88810 0x20 |
2.1.2 Управление током PMOS передатчика DP
Если настройки напряжения недостаточно, измените регистр тока. Биты включения — bit[1:0], значения по умолчанию — {0x1, 0xe7}. Диапазон настройки приведён в таблице.
lane0: enable: 0x0818[1:0]; control: 0x081c[7:5]={3'b000 ~ 3'b111}
lane1: enable: 0x1018[1:0]; control: 0x101c[7:5]
lane2: enable: 0x1818[1:0]; control: 0x181c[7:5]
lane3: enable: 0x2018[1:0]; control: 0x201c[7:5]
| Амплитуда | Команда [ reg offset 0x081c, bit 7:5] |
|---|---|
| 3’b111: | io -4 0xfed88818 0x03 io -4 0xfed8881c 0xe5 |
| 3’b110: | io -4 0xfed88818 0x03 io -4 0xfed8881c 0xc5 |
| 3’b101: | io -4 0xfed88818 0x03 io -4 0xfed8881c 0xa5 |
| 3’b100: | io -4 0xfed88818 0x03 io -4 0xfed8881c 0x85 |
| 3’b011 : | io -4 0xfed88818 0x03 io -4 0xfed8881c 0x65 |
| 3’b010 : | io -4 0xfed88818 0x03 io -4 0xfed8881c 0x45 |
| 4’b001: | io -4 0xfed88818 0x03 io -4 0xfed8881c 0x25 |
| 4’b000: | io -4 0xfed88818 0x03 io -4 0xfed8881c 0x05 |
2.2 Эквализация DP
2.2.1 Деэмфазис передатчика DP
Смещения приведены ниже. Bit4 включает настройку; значение по умолчанию — 0x0, то есть 0 dB. Уровни и рекомендации источника приведены в таблице.
lane0: 0x0814[4:0]
lane1: 0x1014[4:0]
lane2: 0x1814[4:0]
lane3: 0x2014[4:0]
| Уровень | Команда [ reg offset 0x0814, bit 4:0] |
|---|---|
| 5’b10000: 0 dB | io -4 0xfed88814 0x10 |
| 5’b11011: -5 dB (Источник рекомендует для скорости выше 5 Gbps) | io -4 0xfed88814 0x1b |
| 5’b10101: -2.8 dB (Источник рекомендует для скорости выше 10 Gbps) | io -4 0xfed88814 0x15 |
| 5’b11001: -6.9 dB (Источник не рекомендует) | io -4 0xfed88814 0x19 |
2.2.2 Уровень предварительного выброса DP TX
Bit6 включает настройку; значение по умолчанию — 0x0. Регистр общий с управлением током TX PMOS. Команды относятся к Lane0; для остальных линий измените смещение, например адрес Lane1 — 0xfed89018 (0xfed88818 + 0x800).
lane0: 0x0818[6:2]
lane1: 0x1018[6:2]
lane2: 0x1818[6:2]
lane3: 0x2018[6:2]
| Уровень | Команда [ reg offset 0x0818, bit 6:2] |
|---|---|
| 5’b1000000: 0 dB (по умолчанию, Источник рекомендует для скорости выше 5 Gbps) | io -4 0xfed88818 0x40 |
| 5’b1011000: -1.6 dB (Источник рекомендует для скорости выше 10 Gbps) | io -4 0xfed88818 0x58 |
| 5’b11001: -6.9 dB (Источник не рекомендует) | io -4 0xfed88818 0x64 |
2.3 Скорость фронтов DP TX
2.3.1 Увеличение скорости фронтов
Значения по умолчанию — {0xe7, 0x60}. Ниже указаны смещения регистров включения и силы драйвера.
lane0: enable: 0x081c[1:0]={2'b11}; strength: 0x0820[5:3]={3'b111 ~ 3'b000}
lane1: enable: 0x101c[1:0]; strength: 0x1020[5:3]
lane2: enable: 0x181c[1:0]; strength: 0x1820[5:3]
lane3: enable: 0x201c[1:0]; strength: 0x2020[5:3]
Диапазон настройки и команды IO ниже относятся к Lane0. Для остальных линий нужны другие смещения, например 0xfed8901c для Lane1 (0xfed8881c + 0x800).
| Амплитуда | Команда [ reg offset 0x081c, bit 7:5] |
|---|---|
| 3’b111: | io -4 0xfed8881c 0xe7 io -4 0xfed88820 0x78 |
| 3’b110: | io -4 0xfed8881c 0xe7 io -4 0xfed888200x70 |
| 3’b101: | io -4 0xfed8881c 0xe7 io -4 0xfed88820 0x68 |
| 3’b100: | io -4 0xfed8881c 0xe7 io -4 0xfed88820 0x60 |
| 3’b011 : | io -4 0xfed8881c 0xe7 io -4 0xfed88820 0x58 |
| 3’b010 : | io -4 0xfed8881c 0xe7 io -4 0xfed88820 0x50 |
| 4’b001: | io -4 0xfed8881c 0xe7 io -4 0xfed88820 0x48 |
| 4’b000: | io -4 0xfed8881c 0xe7 io -4 0xfed88820 0x40 |
2.3.2 Уменьшение скорости фронтов
Значения по умолчанию — {0xe7, 0x60}. Ниже указаны смещения регистров включения и силы драйвера.
lane0: enable: 0x081c[1:0]={2'b10}; strength: 0x0820[5:3]={3'b111 ~ 3'b000}
lane1: enable: 0x101c[1:0]; strength: 0x1020[5:3]
lane2: enable: 0x181c[1:0]; strength: 0x1820[5:3]
lane3: enable: 0x201c[1:0]; strength: 0x2020[5:3]
Диапазон настройки и команды IO ниже относятся к Lane0. Для остальных линий нужны другие смещения, например 0xfed8901c для Lane1 (0xfed8881c + 0x800).
Примечание: этот регистр общий с управлением током TX PMOS.
| Амплитуда | Команда [ reg offset 0x081c, bit 7:5] |
|---|---|
| 3’b111: | io -4 0xfed8881c 0xe6 io -4 0xfed88820 0x78 |
| 3’b110: | io -4 0xfed8881c 0xe6 io -4 0xfed88820 0x70 |
| 3’b101: | io -4 0xfed8881c 0xe6 io -4 0xfed88820 0x68 |
| 3’b100: | io -4 0xfed8881c 0xe6 io -4 0xfed88820 0x60 |
| 3’b011 : | io -4 0xfed8881c 0xe6 io -4 0xfed88820 0x58 |
| 3’b010 : | io -4 0xfed8881c 0xe6 io -4 0xfed88820 0x50 |
| 4’b001: | io -4 0xfed8881c 0xe6 io -4 0xfed88820 0x48 |
| 4’b000: | io -4 0xfed8881c 0xe6 io -4 0xfed88820 0x40 |
2.4 Управление SSC передатчика DP
2.4.1 Девиация модуляции PLL SSC
Значение по умолчанию — 0x19; ниже приведены смещения для каждой скорости и диапазон настройки.
RBR: 0x03F0[5:0]
HBR: 0x03F4[5:0]
HBR2: 0x03F8[5:0]
HBR3: 0x03FC[5:0]
| Уровень | Команда [ reg offset 0x03F0, bit5:0] |
|---|---|
| 6’b000000: | io -4 0xfed883f0 0x00 |
| 6’b000001: | io -4 0xfed883f0 0x01 |
| … | … |
| 4’b111110: | io -4 0xfed883f0 0x3e |
| 4’b111111: | io -4 0xfed883f0 0x3f |
2.4.2 Частота модуляции PLL SSC
Значение по умолчанию — 0x0f, для HBR3 — 0x3c. HBR3 требует сдвига влево на два бита. Список смещений источника расходится с таблицей команд; оба сохранены ниже и требуют проверки перед использованием.
RBR: 0x0404[4:0]
HBR: 0x0408[4:0]
HBR2: 0x040c[4:0]
HBR3: 0x0410[6:2] (default=0x3c)
| Уровень | Команда [ reg offset 0x0400, bit4:0] |
|---|---|
| 5’b00000: | io -4 0xfed88400 0x00 (HBR3:io -4 0xfed88410 0x00) |
| 5’b00001: | io -4 0xfed88400 0x01 (HBR3:io -4 0xfed88410 0x04) |
| … | … |
| 5’b11110: | io -4 0xfed88400 0x1e (HBR3:io -4 0xfed88410 0x38) |
| 5’b11111: | io -4 0xfed88400 0x1f (HBR3:io -4 0xfed88410 0x3c) |
2.5 Управление амплитудой DP TX AUX
Значение по умолчанию — 0x36; диапазон настройки приведён ниже.
aux swing: 0x0024[6:3]
| Уровень | Команда [ reg offset 0x0024, bit6:3] (bit[2:0] = 0x6(по умолчанию)) |
|---|---|
| 4’b0000: 0 mVpp | io -4 0xfed88024 0x06 |
| 4’b0001: | io -4 0xfed88024 0x0e |
| 4’b0010: | io -4 0xfed88024 0x16 |
| 4’b0011: | io -4 0xfed88024 0x1e |
| 4’b0100: | io -4 0xfed88024 0x26 |
| 4’b0101: | io -4 0xfed88024 0x2e |
| 4’b0110: | io -4 0xfed88024 0x36 |
| 4’b0111: 390 mVpp | io -4 0xfed88024 0x3e |
| 4’b1000: | io -4 0xfed88024 0x46 |
| 4’b1001: | io -4 0xfed88024 0x4e |
| 4’b1010: | io -4 0xfed88024 0x56 |
| 4’b1011: | io -4 0xfed88024 0x5e |
| 4’b1100: | io -4 0xfed88024 0x66 |
| 4’b1101: | io -4 0xfed88024 0x6e |
| 4’b1110: | io -4 0xfed88024 0x76 |
| 4’b1111: 880 mVpp | io -4 0xfed88024 0x7e |
3. Изменение параметров драйвера
Драйвер ядра: drivers/phy/rockchip/phy-rockchip-usbdp.c. Драйвер U-Boot: drivers/phy/phy-rockchip-usbdp.c. Регистры настройки swing и pre-emphasis представлены структурой:
struct dp_tx_drv_ctrl {
u32 trsv_reg0204;
u32 trsv_reg0205;
u32 trsv_reg0206;
u32 trsv_reg0207;
};
Ниже приведены смещения регистров каждой линии. В двух последних заголовках источника повторяется trsv_reg0206; это сохранено и отмечено в замечаниях.
| trsv_reg0204 | trsv_reg0205 | trsv_reg0206 | trsv_reg0206 | |
|---|---|---|---|---|
| lane0 | 0x0810 | 0x0814 | 0x0818 | 0x081C |
| lane1 | 0x1010 | 0x1014 | 0x1018 | 0x101C |
| lane2 | 0x1810 | 0x1814 | 0x1818 | 0x181C |
| lane3 | 0x2010 | 0x2014 | 0x2018 | 0x201C |
DP поддерживает четыре уровня скорости: RBR, HBR, HBR2 и HBR3. Следующие массивы задают swing и pre-emphasis. Для стандартного разъёма DP:
| RK3576 настройка | RK3588 настройка | |
|---|---|---|
| RBR | rk3588_dp_tx_drv_ctrl_rbr_hbr_typec | rk3588_dp_tx_drv_ctrl_rbr_hbr |
| HBR | rk3588_dp_tx_drv_ctrl_rbr_hbr_typec | rk3588_dp_tx_drv_ctrl_rbr_hbr |
| HBR2 | rk3588_dp_tx_drv_ctrl_hbr2 | rk3588_dp_tx_drv_ctrl_hbr2 |
| HBR3 | rk3588_dp_tx_drv_ctrl_hbr3 | rk3588_dp_tx_drv_ctrl_hbr3 |
Для вывода через Type-C:
| RK3576 настройка | RK3588 настройка | |
|---|---|---|
| RBR | rk3588_dp_tx_drv_ctrl_rbr_hbr_typec | rk3588_dp_tx_drv_ctrl_rbr_hbr_typec |
| HBR | rk3588_dp_tx_drv_ctrl_rbr_hbr_typec | rk3588_dp_tx_drv_ctrl_rbr_hbr_typec |
| HBR2 | rk3588_dp_tx_drv_ctrl_hbr2 | rk3588_dp_tx_drv_ctrl_hbr2 |
| HBR3 | rk3588_dp_tx_drv_ctrl_hbr3 | rk3588_dp_tx_drv_ctrl_hbr3 |
Каждый массив имеет размер 4×4 и хранит значения регистров для сочетаний уровней swing и pre-emphasis. SSC настраивается здесь:
static const struct reg_sequence rk3588_udphy_24m_refclk_cfg[] = {
......
{0x03f0, 0x0a}, {0x03f4, 0x07},
{0x03f8, 0x07}, {0x03fc, 0x0c},
{0x0404, 0x12}, {0x0408, 0x1a},
{0x040c, 0x1a}, {0x0410, 0x3f},
......
};
Амплитуда AUX настраивается здесь:
static const struct reg_sequence rk3588_udphy_init_sequence[] = {
......
{0x0024, 0x6e},
};
Редакционные замечания и ограничения
В §2 источника написано RK3756, хотя в других местах указан RK3576. Обозначения разрядности 4'b001, 4'b111110, 5'b1000000 и соответствие уровней preshoot значениям регистров сохранены до проверки. В заголовках таблиц скорости фронтов указано 0x081c, bit 7:5, а в тексте — 0x0820[5:3]. Для частоты SSC смещение RBR указано как 0x0404, но команды используют 0xfed88400; старшие значения HBR3 также вызывают вопросы относительно сдвига на два бита. Не исправляйте их догадками.
Проверка изображений подтверждает отсутствие разделяющих пробелов уже в оригинале: на странице 5 — io -4 0xfed888100x28, на странице 8 — io -4 0xfed888200x70. Это дефекты источника, а не извлечения; строки сохранены, но не предлагаются как готовые команды. Запись регистров может нарушить работу DP/USB; проверяйте маски, общие биты и состояние драйвера в восстанавливаемой тестовой среде. Подробный журнал проверки.
