Allwinner H616 (H618). Файл конфигурации системы


Описание формата

Файл конфигурации sys_config.fex определяет различные аспекты работы SoC H616. Он конфигурирует контакты GPIO и устанавливает параметры памяти, дисплея и т.д. Это предшественник Allwinners для DeviceTree.

Заголовок раздела обозначается квадратными скобками: [заголовок]
Каждая строка состоит из комбинации пары ключ = значение.
Все три элемента: [заголовок раздела], ключ и значение чувствительны к регистру.
Для комментариев используется точка с запятой ( ; ), а все, что следует за точкой с запятой, игнорируется.

Процессор не разбирает текстовую версию fex-файла, он очищается и компилируется fex-компилятором.
В репозитории sunxi-tools существует реверсивная версия с открытым исходным кодом, а также декомпилятор, который берет двоичный script.bin и создает текстовый script.fex. Обычно script.bin можно найти в загрузочном разделе nanda.

Примечание. Основное ядро Linux не использует FEX/script.bin, а вместо этого полагается на модель дерева устройств (файлы .dtb).


Определения портов

Конфигурация порта GPIO (контакты ввод-вывод общего назначения) описывается в виде:

port: <portN> <function allocation> <internal resistance status> <drive capability> <output level status>

где:

  • portN - это порт для конфигурирования (например, PH15), N - порядковый номер порта в группе
  • function allocation - это функция mux feature, для которой конфигурируется порт:
       0 - вход,
       1 - выход

  • internal resistance status> - состояние внутреннего сопротивления:
       0 - отключено;
       1 - pull up включено;
       2 - pull down включено

  • drive capability - определяет ток выходного сигнала в мА:
       0 - 10 мА,
       1 - 20 мА,
       2 - 30 мА,
       3 - 40 мА.

  • output level status - состояние выходного уровня, устанавливает начальный выходной уровень для порта:
       0 - низкий;
       1 - высокий
    (действительно только для выходов)

    Для параметров pullup/down, drive capability и output level можно установить значение по умолчанию <default>, что означает, что они не меняются.
    Любые завершающие параметры можно не указывать.

    В качестве примера ниже приводится содержимое файла системной конфигурации sys_config.fex, входящего в состав прошивки ТВ-бокса Transpeed H616 (версия от 2020/08/12), с описанием параметров и некоторыми поясняющими комментариями.

    Строки файла конфигурации выделены моноширинным шрифтом на цветном фоне. Остальной техт - комментарии.

    Примечание. В оригинальном файле sys_config.fex большинство комментариев на китайском языке, здесь они переведены, а также добавлены другие комментарии.

    Источник: Sunxi FEX Guide, пример файла: sysconfig.fex


  • Разделы конфигурации

    product
    platform
    target
    power_sply
    card_boot
    ir_boot_recovery
    key_boot_recovery
    pm_para
    card0_boot_para
    gpio_bias
    twi_para
    auto_print
    uart_para
    jtag_para
    clock
    dram_select_para
    dram_para
    uart
    nand_para
    secure
    usbc
    usb_feature
    boot_init_gpio
    s_cir


    Примечание. Комментарии к параметрам (смысл, назначение параметра), показанные курсивом, носят предположительный характер


    product

    sunxi platform application - приложение для платформы sunxi. Product version and description. Версия и описание продукта.

  • version: строка, показывающая версию файла fex
  • machine: строка, указывающая имя платы (board)

    [product]
    version = "100"
    machine = "evb"

    platform

  • eraseflag: флаг очистки
  • debug_mode: режим отладки

    [platform]
    eraseflag = 1
    debug_mode = 3

    target

  • boot_clock: CPU boot frequency Unit (частота процесора): MHz
  • storage_type: boot medium (откуда загружать):
    • 0 - nand,
    • 1 - card0,
    • 2 - card2,
    • -1(defualt) - автосканирование
  • advert_enable: 0 - close advert logo 1-open advert logo (Действительно только при многоядерном запуске)
  • burn_key: ???
  • dragonboard_test: ???

    [target]
    boot_clock = 1008
    storage_type = -1
    advert_enable = 0
    burn_key = 1
    dragonboard_test= 0

    power_sply

  • dcdc2_vol: set dcdc2 voltage,mV,500-1200,10mV/step ; 1220-1540,20mV/step
  • aldo1_vol: set aldo1 voltage,mV,500-3500,100mV/step
  • dldo1_vol: set dldo1 voltage,mV,500-3500,100mV/step

    dcdc2_vol = 1001000
    aldo1_vol = 1001800
    dldo1_vol = 1003300

    [axp1530_power_sply] dcdc2_vol = 1001000
    aldo1_vol = 1001800
    dldo1_vol = 1003300

    [axp806_power_sply] dcdcd_vol = 1001350
    dcdce_vol = 1003300
    aldo1_vol = 1003300
    bldo1_vol = 1001800

    card_boot

  • logical_start: логический начальный адрес при загрузке с SD-карты.
  • sprite_gpio0: номер порта GPIO, инициирующего спрайт (запись прошивки)

    [card_boot]
    logical_start = 40960
    sprite_gpio0 = port:PH6<1><1>

    ir_boot_recovery

  • ir_boot_recovery_used :
    • 1: использовать функцию,
    • 0: не использовать
  • ir_work_mode : Выбор режима ( по умолчанию =2 Recovery Android)
    • 0: Прошивание
    • 1: Recovery одной кнопкой (этап uboot)
    • 2: Recovery Android
    • 3: Сброс настроек Android до заводских
  • ir_press_times : нажмите ИК-пульт несколько раз, чтобы вступить в силу, если не установлено, по умолчанию нажмите один раз, чтобы вступить в силу
  • ir_detect_time : время обнаружения ИК-пульта ДУ, единица измерения: мс, если не установлено, по умолчанию 3000 мс (3 секунды)
  • ir_key_no_duplicate: можно ли повторять нажатие кнопки ИК-пульта
    • 0: повторяется (по умолчанию),
    • 1: не повторяется;

    Неповторяемость означает, что независимо от того, сколько раз была нажата клавиша, она будет засчитана только один раз в ir_press_times; Неповторяющийся сценарий приложения - это функция комбинации клавиш, например: поочередно нажмите «клавишу меню» и «клавишу громкости», чтобы войти в Recovery Android.

  • ir_recovery_key_code0 : проверить код кнопки
  • ir_addr_code0 : адрес кнопки

    Вы можете увеличить число поддерживаемых ir, например: ir_recovery_key_code1 или 2, 3, но не более 16

    [ir_boot_recovery]

    ir_boot_recovery_used = 1
    ir_work_mode = 3
    ir_press_times = 2
    ir_detect_time = 1
    ir_key_no_duplicate = 0
    ir_recovery_key_code0 = 0x11
    ir_addr_code0 = 0xfe01
    ir_recovery_key_code1 = 0x19
    ir_addr_code1 = 0xfe01
    ir_recovery_key_code2 = 0x4c
    ir_addr_code2 = 0xfe01
    ir_recovery_key_code3 = 0x00
    ir_addr_code3 = 0xfe01

    ВНИМАНИЕ ! В этом примере ir_work_mode = 3 - Сброс кнопкой пульта !!!


    key_boot_recovery

  • recovery_key_used : (module enable terminal) терминал включения модуля,
    1: вкл,
    0: выкл
  • press_mode_enable : Включение режима длительного и короткого нажатия,
    1: вкл,
    0: выкл

    a) Если этот режим включен, key_work_mode недействителен, short_press_mode и long_press_mode вступают в силу, Кнопка Recovery может быть активирована долгим нажатием и коротким нажатием для запуска двух разных режимов;

    б) Если этот режим выключен, вступит в силу key_work_mode, и кнопка восстановления может активировать только один режим

    .
  • key_work_mode : mode selection (выбор режима) - по умолчанию режим Recovery Android
    • 0: flash (прошивание)
    • 1: One-key recovery (Recovery одной кнопкой) на этапе uboot
    • 2: Android Recovery
    • 3: Android factory reset (сброс к заводским)
  • short_press_mode : Режим запуска при длительном нажатии, параметры такие же, как указано выше
  • long_press_mode : Режим триггера короткого нажатия, параметры такие же, как указано выше
  • key_press_time : Определите время длительного нажатия, единица измерения: миллисекунды.
  • recovery_key : Номер порта GPIO, к которому подключена кнопка Recovery

    [key_boot_recovery]
    recovery_key_used = 1
    press_mode_enable = 1
    key_work_mode = 1 (recovery кнопкой)
    short_press_mode = 2
    long_press_mode = 3
    key_press_time = 2000 recovery_key = port:PH09<0>

    pm_para

  • standby_mode
  • 1 - support super standby (super режим ожидания);
  • 0 - support normal standby (нормальный режим ожидания)

    [pm_para]
    standby_mode = 1


    card0_boot_para

    card0_boot_para, card2_boot_para
  • card_ctrl : контроллер карты, который будет использоваться
  • card_high_speed : 0 для низкой скорости, 1 для высокой скорости
  • card_line : Количество строк данных карты
  • sdc_cmd : Конфигурация GPIO синалов команд SD-карты
  • sdc_clk : Конфигурация GPIO сигнала синхронизации SD-карты
  • sdc_d0 : Конфигурация GPIO сигнала 0-й строки данных SD-карты
  • sdc_d1 : Конфигурация GPIO сигнала 1-й строки данных SD-карты
  • sdc_d2 : Конфигурация GPIO сигнала 2-й строки данных SD-карты
  • sdc_d3 : Конфигурация GPIO сигнала 3-й строки данных SD-карты

    [card0_boot_para]
    card_ctrl = 0
    card_high_speed = 1
    card_line = 4
    sdc_clk = port:PF2<2><1><3>
    sdc_cmd = port:PF3<2><1><3>
    sdc_d1 = port:PF0<2><1><3>
    sdc_d0 = port:PF1<2><1><3>
    sdc_d3 = port:PF4<2><1><3>
    sdc_d2 = port:PF5<2><1><3>

    [card2_boot_para]
    card_ctrl = 2
    card_high_speed = 1
    card_line = 8
    sdc_clk = port:PC5<3><1><3>
    sdc_cmd = port:PC6<3><1><3>
    sdc_d0 = port:PC10<3><1><3>
    sdc_d1 = port:PC13<3><1><3>
    sdc_d2 = port:PC15<3><1><3>
    sdc_d3 = port:PC8<3><1><3>
    sdc_d4 = port:PC9<3><1><3>
    sdc_d5 = port:PC11<3><1><3>
    sdc_d6 = port:PC14<3><1><3>
    sdc_d7 = port:PC16<3><1><3>
    sdc_emmc_rst = port:PC1<3><1><3>
    sdc_ds = port:PC0<3><2><3>
    sdc_ex_dly_used = 2
    sdc_io_1v8 = 1
    ;sdc_dis_host_caps = 0x100
    ;sdc_type = "tm4"

    gpio_bias

  • pc_bias : напряжение смещения, мВ (?)

    [gpio_bias] pc_bias = 1800

    twi_para

    Two Wire Interface (TWI) - Двухпроводной интерфейс. twi_para - TWI controller to enable during/for boot. TWI для включения во время / для загрузки.

  • twi_port: контроллер TWI для настройки
  • twi_scl: конфигурация GPIO последовательной линии синхронизации
  • twi_sda: конфигурация GPIO для последовательной линии данных

    [twi_para]
    twi_port = 0
    twi_scl = port:PH14<2>
    twi_sda = port:PH15<2>


    auto_print

  • auto_print_used

    [auto_print]
    auto_print_used = 0

    uart_para

  • uart_para - COM-порт, который должен быть включен во время или для загрузки.
  • uart_debug_port : номер последовательного контроллера
  • uart_debug_tx : конфигурация GPIO линии TX последовательного порта
  • uart_debug_rx : конфигурация GPIO линии RX последовательного порта

    [uart_para]
    uart_debug_port = 0
    uart_debug_tx = port:PH00<2><1>
    uart_debug_rx = port:PH01<2><1>

    jtag_para


    Порт JTAG должен быть включен во время / для загрузки.
    JTAG ( Joint Test Action Group) - стандарт тестирования микросхем IEEE 1149
  • jtag_enable : 0 для отключения JTAG, 1 для включения JTAG
  • jtag_ms : Конфигурация GPIO JTAG Test Mode Select (TMS) - выбор режима тестирования
  • jtag_ck : Конфигурация GPIO JTAG Test Clock (TCK) - тест синхросигналов
  • jtag_do : Конфигурация GPIO JTAG (TDO)- тест вывода данных
  • jtag_di : Конфигурация GPIO JTAG (TDI)-тест ввода данных

    [jtag_para]
    jtag_enable = 1
    jtag_ms = port:PH9<3>
    jtag_ck = port:PH10<3>
    jtag_do = port:PH11<3>
    jtag_di = port:PH12<3>

    clock

    - частота тактового генератора ФАПЧ

  • pll4 : 300 Мгц
  • pll6 :
  • pll8 :
  • pll9 :
  • pll10:

    [clock]
    pll4 = 300
    pll6 = 600
    pll8 = 360
    pll9 = 297
    pll10= 264

    dram_select_para

    - dram select configuration

  • select_mode: : выбор режима DRAM, 0: без автоматического распознавания
  • 1: режим распознавания GPIO (dram_para, dram_para1-15, всего допустимы 16 групп)
  • 2: режим распознавания GPADC (dram_para, dram_para1-7, всего действует 8 групп)
  • 3: 1 режим распознавания IO + GPADC (dram_para, dram_para1-15, всего действительны 16 групп).

    Приоритет конфигурации ввода-вывода следующий:
    select_gpio0 > select_gpio1 > select_gpio2 > select_gpio3

  • gpadc_channel: : выберите допустимое значение канала GPADC (0-3)
  • select_gpio1-4: : выберите контакт GPIO

    [dram_select_para]
    select_mode = 0 select_gpio0 = port:PI14<0><1>
    select_gpio1 = port:PI15<0><1>
    select_gpio2 = port:PI16<0><1>
    ;select_gpio3 =

    dram_para

    - sdram configuration

  • dram_para: : Параметр емкости перемычки CK отсутствует (зарезервирован)
  • dram_para1: : Параметр емкости перемычки CK (зарезервирован)
  • dram_para2~6: : временно зарезервировано
  • dram_para7: : Параметр емкости перемычки CK отсутствует (зарезервирован)
  • dram_para8~15: : Временно зарезервировано

    SDRam обычно настраивается через LiveSuit при перепрошивке. LiveSuit проверяет оборудование или знает об оборудовании и его конфигурации и соответствующим образом настраивает SoC. Эта роскошь недоступна в Linux, поэтому параметры SDRAM нужно настраивать вручную.

  • dram_baseaddr : физический начальный адрес DRAM, фиксированный на 0x40000000
  • dram_clk : тактовая частота DRAM в МГц; он должен быть целым числом, кратным 24, минимум 120, максимум 480 МГц
  • dram_type : тип DRAM; Установите 2 для DDR2; 3 для DDR3
  • dram_rank_num : выбор микросхемы DRAM; 1 - выбор чипа; 2 - выбор для двух tablets
  • dram_chip_density : емкость монолитной (monolithic) DRAM в Мбит
  • dram_io_width : разрядность монолитной шины DRAM в битах
  • dram_bus_width : разрядность шины DRAM в битах, например, два 16-битных банка DRAM составляют 32-битную ширину шины
  • dram_cas : задержка DRAM CAS
  • dram_zq : внутренние параметры контроллера DRAM
  • dram_odt_en : ODT 0 для отключения; 1 для включения
  • dram_size : общая емкость DRAM в МБ
  • dram_tpr0 : внутренний параметр контроллера DRAM
  • dram_tpr1 : внутренний параметр контроллера DRAM
  • dram_tpr2 : внутренний параметр контроллера DRAM
  • dram_tpr3 : внутренний параметр контроллера DRAM
  • dram_tpr4: внутренний параметр контроллера DRAM
  • dram_tpr5: внутренний параметр контроллера DRAM
  • dram_emr1: внутренний параметр контроллера DRAM
  • dram_emr2: внутренний параметр контроллера DRAM
  • dram_emr3: внутренний параметр контроллера DRAM

    [dram_para]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c12
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0000C05
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x3
    3808080
    dram_tpr10 = 0x0
    02F0007
    dram_tpr11 = 0xf
    fffdddd
    dram_tpr12 = 0xfedf7557
    dram_tpr13 = 0x40

    [dram_para1]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    [dram_para2]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    [dram_para3]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    [dram_para4]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    [dram_para5]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    [dram_para6]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    [dram_para7]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c12
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0000C05
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0007
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7557
    dram_tpr13 = 0x40

    [dram_para8]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    [dram_para9]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    [dram_para10]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    [dram_para11]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    [dram_para12]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    [dram_para13]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    [dram_para14]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    [dram_para15]
    dram_clk = 648
    dram_type = 3
    dram_dx_odt = 0x03030303
    dram_dx_dri = 0x0e0e0e0e
    dram_ca_dri = 0x1c1c
    dram_odt_en = 1
    dram_para1 = 0x30fb
    dram_para2 = 0x0000
    dram_mr0 = 0x840
    dram_mr1 = 0x4
    dram_mr2 = 0x8
    dram_mr3 = 0x0
    dram_mr4 = 0x0
    dram_mr5 = 0x0
    dram_mr6 = 0x0
    dram_mr11 = 0x0
    dram_mr12 = 0x0
    dram_mr13 = 0x0
    dram_mr14 = 0x0
    dram_mr16 = 0x0
    dram_mr17 = 0x0
    dram_mr22 = 0x0
    dram_tpr0 = 0xC0001305
    dram_tpr1 = 0x0
    dram_tpr2 = 0x0
    dram_tpr3 = 0x0
    dram_tpr6 = 0x33808080
    dram_tpr10 = 0x002F0006
    dram_tpr11 = 0xffffdddd
    dram_tpr12 = 0xfedf7657
    dram_tpr13 = 0x40

    uart

    UART configuration - Конфигурация UART.
    Любой из 8 портов UART может быть сконфигурирован как 2-х (только TX/RX), 4-х проводный (TX, RX, RTS и CTS) или 8-ми (полнофункциональный) порты.
  • uart_used : 0 для отключения; 1 для включения
  • uart_port : номер порта UART
  • uart_type : тип UART, 2-х, 4-х или 8-ми проводный
  • uart_tx : Конфигурация GPIO - линии передачи данных UART TX
  • uart_rx : Конфигурация GPIO - линии передачи данных UART RX
  • uart_rts : Конфигурация GPIO - запрос на передачу (только для 4-х и 8-ми проводных режимов)
  • uart_cts : Конфигурация GPIO - готовность передачи (только для 4-х и 8-ми проводных режимов)
  • uart_dtr : Конфигурация GPIO - готовность к приёму данных (только для 8-ми проводных режимов
  • uart_dsr : Конфигурация GPIO - готовность к передаче данных (только для 8-ми проводных режимов)
  • uart_dcd : Конфигурация GPIO - обнаружение несущей (только для 8-ми проводных режимов)
  • uart_ring: Конфигурация GPIO - сигнал вызова (только для 8-ми проводных режимов)

    [uart0]
    uart0_used = 1
    uart0_port = 0
    uart0_type = 2
    uart0_tx = port:PH00<2><1>
    uart0_rx = port:PH01<2><1>

    nand_para

    - nand flash configuration Конфигурация nand flash
  • nand_used : 0 для отключения, 1 для включения
  • nand_we : GPIO WE (Write Enable) разрешение записи
  • nand_ale : GPIO ALE (Address Latch Enable) разрешение фиксации адреса
  • nand_cle : GPIO CLE (Command Latch Enable) разрешение фиксации команды
  • nand_ce0 : GPIO Chip Select выбор микросхемы bit 0
  • nand_ce1 : GPIO Chip Select выбор микросхемы bit 1
  • nand_ce2 : GPIO Chip Select выбор микросхемы bit 2
  • nand_ce3 : GPIO Chip Select выбор микросхемы bit 3
  • nand_ce4 : GPIO Chip Select выбор микросхемы bit 4
  • nand_ce5 : GPIO Chip Select выбор микросхемы bit 5
  • nand_ce6 : GPIO Chip Select выбор микросхемы bit 6
  • nand_ce7 : GPIO Chip Select выбор микросхемы bit 7
  • nand_nre : GPIO RE (Read Enable) разрешение чтения
  • nand_rb0 : GPIO RB (Ready/Busy) готов/занят 0
  • nand_rb1 : GPIO RB (Ready/Busy) готов/занят 1
  • nand_d0 : GPIO бит 0 шины данных
  • nand_d1 : GPIO бит 1 шины данных
  • nand_d2 : GPIO бит 2 шины данных
  • nand_d3 : GPIO бит 3 шины данных
  • nand_d4 : GPIO бит 4 шины данных
  • nand_d5 : GPIO бит 5 шины данных
  • nand_d6 : GPIO бит 6 шины данных
  • nand_d7 : GPIO бит 7 шины данных
  • nand_wp : GPIO WP (Write Protect) защита записи
  • nand_spi : GPIO SPI линии данных
  • nand_ndqs: GPIO сигнал синхронизации nand ddr
  • nand0_regulator1
  • nand0_regulator2
  • nand0_cache_level
  • nand0_flush_cache_num
  • nand0_capacity_level
  • nand0_id_number_ctl
  • nand0_print_level
  • nand0_p0
  • nand0_p1
  • nand0_p2
  • nand0_p3

    [nand_para]
    nand0_support_2ch = 0
    nand0_used = 0
    nand0_we = port:PC00<2><0><1>
    nand0_ale = port:PC01<2><0><1>
    nand0_cle = port:PC02<2><0><1>
    nand0_ce0 = port:PC03<2><1><1>
    nand0_nre = port:PC04<2><0><1>
    nand0_rb0 = port:PC05<2><1><1>
    nand0_d0 = port:PC06<2><0><1>
    nand0_d1 = port:PC07<2><0><1>
    nand0_d2 = port:PC08<2><0><1>
    nand0_d3 = port:PC09<2><0><1>
    nand0_d4 = port:PC10<2><0><1>
    nand0_d5 = port:PC11<2><0><1>
    nand0_d6 = port:PC12<2><0><1>
    nand0_d7 = port:PC13<2><0><1>
    nand0_ndqs = port:PC14<2><0><1>
    nand0_ce1 = port:PC15<2><1><1>
    nand0_rb1 = port:PC16<2><1><1>

    nand0_regulator1 = "vcc-nand"
    nand0_regulator2 = "none"
    nand0_cache_level = 0x55aaaa55
    nand0_flush_cache_num = 0x55aaaa55
    nand0_capacity_level = 0x55aaaa55
    nand0_id_number_ctl = 0x55aaaa55
    nand0_print_level = 0x55aaaa55
    nand0_p0 = 0x55aaaa55
    nand0_p1 = 0x55aaaa55
    nand0_p2 = 0x55aaaa55
    nand0_p3 = 0x55aaaa55

    secure

  • dram_region_mbytes
  • drm_region_mbytes
  • drm_region_start_mbytes

    [secure]
    dram_region_mbytes = 80
    drm_region_mbytes = 0
    drm_region_start_mbytes = 0


    usbc

    usb0 config added by WNC.C USB control flags - флаги управления USB
  • usb_used: 0 to disable; 1 to enable
  • usb_port_type: USB port type (Тип порта USB) - (0-device only, 1-host only, 2- OTG )
  • usb_detect_type: 0 - no checking (без проверки), 1 - проверка VBus/id
  • usb_controller_type: тип контроллера USB: 0 - Unknown, 1 - EHCI, 2 - OHCI
  • usb_id_gpio: GPIO USB ID pin
  • usb_det_vbus_gpio: GPIO USB обнаруживает VBus (VBus is USB speak for the +5V line)
  • usb_drv_vbus_gpio: GPIO USB drive VBus pin
  • usb_restrict_gpio:
  • usb_host_init_state: в режиме только хоста состояние инициализации порта хоста;
    0 - не инициализировать
    1 - инициализация USB
  • usb_restric_flag:
  • usb_regulator_io:
  • usb_wakeup_suspend:
  • usb_luns:
  • usb_serial_unique:
  • usb_serial_number:
  • rndis_wceis:


    usb_feature

    USB Device
  • vendor_id: vendor ID идентификатор поставщика
  • mass_storage_id: mass storage ID идентификатор запоминающего устройства
  • adb_id: android debug bridge ID идентификатор ADB (моста отладки Android )
  • manufacturer_name: vendor name название поставщика
  • product_name: = product name название продукта
  • serial_number: = serial number ерийный номер

    [msc_feature]
  • vendor_name: vendor name имя поставщика
  • product_name: product name название продукта
  • release: release version релизная версия
  • luns: number of logical units количество логических единиц

    [usbc0]
    usbc0_used = 1
    usb_port_type = 1
    usb_detect_type = 1
    usb_detect_mode = 0
    ;usb_id_gpio =
    ;usb_det_vbus_gpio =
    ;usb_drv_vbus_gpio =
    usb_host_init_state = 1
    usb_regulator_io = "nocare"
    usb_wakeup_suspend = 1

    usb_luns = 3
    usb_serial_unique = 0
    usb_serial_number = "20080411"
    rndis_wceis = 1

    boot_init_gpio

  • boot_init_gpio_used:
  • gpio0:
  • gpio1:
  • gpio2:

    [boot_init_gpio]
    boot_init_gpio_used = 1
    gpio0 = port:PI8<1><1>
    gpio1 = port:PI9<1><1>
    gpio2 = port:PI1<1><1>

    s_cir

    ir infra remote configuration - конфигурация инфракрасного пульта ДУ
  • ir_protocol_used : 0 = NEC / 1 = RC5
  • s_cir0_used :
  • ir_protocol_used :
  • ir_power_key_code0 :
  • ir_addr_code0 :
  • ir_power_key_code1 :
  • ir_addr_code1 :
  • ir_power_key_code2 :
  • ir_addr_code2 :
  • ir_power_key_code3 :
  • ir_addr_code3 :
  • ir_power_key_code4 :
  • ir_addr_code4 :
  • ir_power_key_code5 :
  • ir_addr_code5 :
  • ir_power_key_code6 :
  • ir_addr_code6 :
  • ir_power_key_code7 :
  • ir_addr_code7 :
  • ir_power_key_code8 :
  • ir_addr_code8 :
  • ir_power_key_code9 :
  • ir_addr_code9 :
  • ir_power_key_code10 :
  • ir_addr_code10 :
  • ir_power_key_code11 :
  • ir_addr_code11 :
  • ir_power_key_code12 :
  • ir_addr_code12 :
  • ir_power_key_code13 :
  • ir_addr_code13 :
  • ir_power_key_code14 :
  • ir_addr_code14 :
  • ir_power_key_code15 :
  • ir_addr_code15 :
  • ir_power_key_code16 :
  • ir_addr_code16 :
  • ir_power_key_code17 :
  • ir_addr_code17 :
  • ir_power_key_code18 :
  • ir_addr_code18 :
  • ir_power_key_code19 :
  • ir_addr_code19 :
  • ir_power_key_code20 :
  • ir_addr_code20 :
  • rc5_ir_power_key_code0:
  • rc5_ir_addr_code0 :

    [s_cir0]
    s_cir0_used = 1
    ir_protocol_used = 0
    ir_power_key_code0 = 0x4d
    ir_addr_code0 = 0x4040
    ir_power_key_code1 = 0x40
    ir_addr_code1 = 0xFE01
    ir_power_key_code2 = 0x1C
    ir_addr_code2 = 0xDF00
    ir_power_key_code3 = 0x15
    ir_addr_code3 = 0x7F80
    ir_power_key_code4 = 0x0b
    ir_addr_code4 = 0xF708
    ir_power_key_code5 = 0x03
    ir_addr_code5 = 0x00EF
    ir_power_key_code6 = 0xdc
    ir_addr_code6 = 0x4cb3
    ir_power_key_code7 = 0x0a
    ir_addr_code7 = 0x7748
    ir_power_key_code8 = 0x45
    ir_addr_code8 = 0xbd02
    ir_power_key_code9 = 0x4d
    ir_addr_code9 = 0xde21
    ir_power_key_code10 = 0x18
    ir_addr_code10 = 0xfe01
    ir_power_key_code11 = 0x18
    ir_addr_code11 = 0xff00
    ir_power_key_code12 = 0x4d
    ir_addr_code12 = 0xff40
    ir_power_key_code13 = 0x88
    ir_addr_code13 = 0xdd22
    ir_power_key_code14 = 0x0d
    ir_addr_code14 = 0xbc00
    ir_power_key_code15 = 0x0d
    ir_addr_code15 = 0xfc00
    ir_power_key_code16 = 0xdc
    ir_addr_code16 = 0x4cb3
    ir_power_key_code17 = 0xdc
    ir_addr_code17 = 0x4db2
    ir_power_key_code18 = 0x96
    ir_addr_code18 = 0xc43b
    ir_power_key_code19 = 0xdc
    ir_addr_code19 = 0x4cb3
    ir_power_key_code20 = 0x0c
    ir_addr_code20 = 0x6b86
    rc5_ir_power_key_code0 = 0x01
    rc5_ir_addr_code0 = 0x04



  • Разделы конфигурации
    product platform target power_sply card_boot ir_boot_recovery key_boot_recovery pm_para card0_boot_para gpio_bias twi_para auto_print uart_para jtag_para clock dram_select_para dram_para uart nand_para secure usbc usb_feature boot_init_gpio s_cir


    Инструкция по OTA-обновлению прошивки

    Allwinner H616 - руководство пользователя