Commit 8da26e4982ee9584cf2dd508bb8b567502b8fcce

Authored by Eric Lee
0 parents

Yocto rocko meta layer support for SMARC-iMX8M, initial commit

Showing 24 changed files with 3944 additions and 0 deletions Side-by-side Diff

... ... @@ -0,0 +1,25 @@
  1 +# We have a conf and classes directory, add to BBPATH
  2 +BBPATH .= ":${LAYERDIR}"
  3 +
  4 +# We have a packages directory, add to BBFILES
  5 +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
  6 + ${LAYERDIR}/recipes-*/*/*.bbappend"
  7 +
  8 +BBFILE_COLLECTIONS += "smarcimx8m"
  9 +BBFILE_PATTERN_smarcimx8m := "^${LAYERDIR}/"
  10 +BBFILE_PRIORITY_smarcimx8m = "12"
  11 +
  12 +BBMASK += "meta-freescale/recipes-graphics/clutter/clutter-1.0_%.bbappend"
  13 +BBMASK += "meta-freescale/recipes-graphics/cogl/cogl-1.0_%.bbappend"
  14 +BBMASK += "meta-freescale/recipes-graphics/mesa/mesa-demos_%.bbappend"
  15 +BBMASK += "meta-freescale/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_5.0.11.p8.6.bb"
  16 +
  17 +HOSTTOOLS_NONFATAL_append = " sha384sum"
  18 +
  19 +EMB_UBOOT_MIRROR ?= "git://git@git.embedian.com/developer/smarc-t335x-uboot.git"
  20 +EMB_KERNEL_MIRROR ?= "git://git@git.embedian.com/developer/smarc-fsl-linux-kernel.git"
  21 +
  22 +MIRRORS += " \
  23 +${EMB_UBOOT_MIRROR} git://github.com/embedian/smarc-uboot.git;protocol=git;branch=${SRCBRANCH} \n \
  24 +${EMB_KERNEL_MIRROR} git://github.com/embedian/smarc-fsl-linux-kernel.git;protocol=git;branch=${SRCBRANCH} \n \
  25 +"
conf/machine/smarcimx8m2g.conf
... ... @@ -0,0 +1,85 @@
  1 +#@TYPE: Machine
  2 +#@NAME: EMBEDIAN SMARC-iMX8M COMPUTER ON MODULES with 2GB LPDDR4 MEMORY
  3 +#@SOC: i.MX8MQ
  4 +#@DESCRIPTION: Machine configuration for Embedian SMARC-iMX8M
  5 +#@MAINTAINER: Eric Lee <eric.lee@embedian.com>
  6 +
  7 +MACHINEOVERRIDES =. "mx8:mx8mq:"
  8 +MACHINEOVERRIDES =. "imx:"
  9 +
  10 +require conf/machine/include/arm/arch-arm64.inc
  11 +require conf/machine/include/imx-base.inc
  12 +
  13 +MACHINE_FEATURES += " usbgadget vfat ext2 alsa serial pci wifi bluetooth optee"
  14 +
  15 +MACHINE_SOCARCH_FILTER_append_mx8mq = "virtual/libopenvg virtual/libgles1 virtual/libgles2 virtual/egl virtual/mesa virtual/libgl virtual/libg2d"
  16 +
  17 +# Embedian BSP default providers
  18 +PREFERRED_PROVIDER_virtual/kernel_smarcimx8m2g ?= "linux-smarcimx8m"
  19 +PREFERRED_VERSION_linux-smarcimx8m_smarcimx8m2g = "4.9.88"
  20 +
  21 +KERNEL_DEVICETREE = " \
  22 + embedian/fsl-smarcimx8mq.dtb \
  23 + embedian/fsl-smarcimx8mq-dcss-lvds.dtb \
  24 + embedian/fsl-smarcimx8mq-lcdif-lvds.dtb \
  25 + embedian/fsl-smarcimx8mq-hdmi.dtb \
  26 + embedian/fsl-smarcimx8mq-hdmi-4k.dtb \
  27 + embedian/fsl-smarcimx8mq-dual-display.dtb \
  28 +"
  29 +
  30 +IMAGE_BOOTFILES_DEPENDS += "imx-m4-demos:do_deploy"
  31 +IMAGE_BOOTFILES += "imx8mq_m4_TCM_hello_world.bin imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin"
  32 +
  33 +PREFERRED_PROVIDER_u-boot_smarcimx8m2g = "u-boot-smarcimx8m"
  34 +PREFERRED_PROVIDER_virtual/bootloader_smarcimx8m2g = "u-boot-smarcimx8m"
  35 +
  36 +UBOOT_CONFIG ??= "sd"
  37 +UBOOT_CONFIG[sd] = "smarcimx8mq_2g_ser3_defconfig,sdcard"
  38 +SPL_BINARY = "spl/u-boot-spl.bin"
  39 +
  40 +# Set DDR FIRMWARE
  41 +DDR_FIRMWARE_NAME = "lpddr4_pmu_train_1d_imem.bin lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_2d_imem.bin lpddr4_pmu_train_2d_dmem.bin"
  42 +
  43 +# Set u-boot DTB
  44 +UBOOT_DTB_NAME = "fsl-smarcimx8mq.dtb"
  45 +
  46 +# Set imx-mkimage boot target
  47 +IMXBOOT_TARGETS = "flash_evk flash_evk_no_hdmi"
  48 +
  49 +SERIAL_CONSOLE = "115200 ttymxc0"
  50 +
  51 +IMAGE_BOOTLOADER = "imx-boot"
  52 +
  53 +BOOT_SPACE = "65536"
  54 +
  55 +LOADADDR = ""
  56 +UBOOT_SUFFIX = "bin"
  57 +UBOOT_MAKE_TARGET = ""
  58 +IMX_BOOT_SEEK = "33"
  59 +
  60 +OPTEE_BIN_EXT = "8mq"
  61 +
  62 +MACHINE_EXTRA_RDEPENDS += " \
  63 + pm-utils \
  64 + kmod \
  65 + hdparm \
  66 + gptfdisk \
  67 + lftp \
  68 + vim \
  69 + ntp \
  70 + boost \
  71 + nodejs \
  72 + networkmanager \
  73 + "
  74 +
  75 +# Packages added to all images (including core-image-minimal)
  76 +IMAGE_INSTALL_append = " \
  77 + fsl-rc-local \
  78 +"
  79 +
  80 +IMAGE_FSTYPES = "tar.bz2"
  81 +
  82 +# Ship all kernel modules by default
  83 +MACHINE_EXTRA_RRECOMMENDS = "kernel-modules"
  84 +
  85 +MACHINE_FIRMWARE_append_mx8 = " linux-firmware-ath10k"
... ... @@ -0,0 +1,58 @@
  1 +#
  2 +# local.conf covers user settings, site.conf covers site specific information
  3 +# such as proxy server addresses and optionally any shared download location
  4 +#
  5 +# SITE_CONF_VERSION is increased each time build/conf/site.conf
  6 +# changes incompatibly
  7 +SCONF_VERSION = "1"
  8 +
  9 +# Uncomment to cause CVS to use the proxy host specified
  10 +#CVS_PROXY_HOST = "proxy.example.com"
  11 +#CVS_PROXY_PORT = "81"
  12 +
  13 +# For svn, you need to create ~/.subversion/servers containing:
  14 +#[global]
  15 +#http-proxy-host = proxy.example.com
  16 +#http-proxy-port = 81
  17 +#
  18 +
  19 +# Uncomment to cause git to use the proxy host specificed
  20 +# although this only works for http
  21 +#GIT_PROXY_HOST = "proxy.example.com"
  22 +#GIT_PROXY_PORT = "81"
  23 +#export GIT_PROXY_COMMAND = "${COREBASE}/scripts/oe-git-proxy-command"
  24 +
  25 +# Set to yes to have a gitconfig generated for handling proxies; you
  26 +# might not want this if you have all that set in your global git
  27 +# configuration. If you don't enable it, the rest of the entries
  28 +# (_PROXY_IGNORE, etc) don't really work that well
  29 +#GIT_CORE_CONFIG = "Yes"
  30 +
  31 +# Space separate list of hosts to ignore for GIT proxy
  32 +#GIT_PROXY_IGNORE = "host.server.com another.server.com"
  33 +
  34 +# If SOCKS is available run the following command to comple a simple transport
  35 +# gcc scripts/oe-git-proxy-socks.c -o oe-git-proxy-socks
  36 +# and then share that binary somewhere in PATH, then use the following settings
  37 +#GIT_PROXY_HOST = "proxy.example.com"
  38 +#GIT_PROXY_PORT = "81"
  39 +
  40 +# GIT_PROXY_COMMAND is used by git to override all proxy settings from
  41 +# configuration files, so we prefix OE_ to avoid breaking havoc on the
  42 +# generated (or local) gitconfig's.
  43 +#OE_GIT_PROXY_COMMAND = "${COREBASE}/scripts/oe-git-proxy-socks-command"
  44 +
  45 +
  46 +# Uncomment this to use a shared download directory
  47 +#DL_DIR = "/some/shared/download/directory/"
  48 +
  49 +# Uncomment this to use shared state information.
  50 +#SSTATE_MIRRORS ?= " \
  51 +# file://.* http://www.embedian.com/oe-sstate-cache/PATH "
  52 +
  53 +PREMIRRORS_prepend = " \
  54 + svn://.*/.* http://www.embedian.com/oe-downloads/ \n \
  55 + git://.*/.* http://www.embedian.com/oe-downloads/ \n \
  56 + ftp://.*/.* http://www.embedian.com/oe-downloads/ \n \
  57 + http://.*/.* http://www.embedian.com/oe-downloads/ \n \
  58 + https://.*/.* http://www.embedian.com/oe-downloads/ \n \"
recipes-bsp/imx-atf/imx-atf/0001-ATF-support-to-different-LPDDR4-configurations.patch
Changes suppressed. Click to show
... ... @@ -0,0 +1,2055 @@
  1 +From 9d25029d24435b11c0d2222b22db1b641e7eaea0 Mon Sep 17 00:00:00 2001
  2 +From: Oliver Chen <Oliver.Chen@nxp.com>
  3 +Date: Thu, 31 May 2018 15:00:45 +0800
  4 +Subject: [PATCH] support to different LPDDR4 configurations 1. auto-detect DDR
  5 + boot frequency and backup DRAM PLL cfg 2. save/restore all necessary
  6 + DDRC/DDRPHY register to adapt to all LPDDR4 configurations
  7 +
  8 +---
  9 + plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c | 236 ++--
  10 + plat/freescale/imx8mq/ddr/lpddr4_dvfs.c | 17 +
  11 + plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c | 1490 +++++++++++++-------------
  12 + plat/freescale/imx8mq/ddr/lpddr4_retention.c | 6 +-
  13 + plat/freescale/imx8mq/ddr/lpddr4_swffc.c | 77 +-
  14 + plat/freescale/imx8mq/include/soc.h | 1 +
  15 + 6 files changed, 921 insertions(+), 906 deletions(-)
  16 +
  17 +diff --git a/plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c b/plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c
  18 +index a4d45bf..eb7a06c 100644
  19 +--- a/plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c
  20 ++++ b/plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c
  21 +@@ -14,133 +14,135 @@
  22 + #include <spinlock.h>
  23 + #include <soc.h>
  24 +
  25 +-#define WR_POST_EXT_3200
  26 ++struct ddrc_cfg_param {
  27 ++ uint32_t offset; /*reg offset */
  28 ++ uint32_t val; /* config param */
  29 ++};
  30 +
  31 +-static inline void umctl2_addrmap(void)
  32 +-{
  33 +- /* Address mapping */
  34 +- /* need be refined for DDR vender */
  35 +- /* Address map is from MSB 29: r15, r14, cs, r13-r0, b2-b0, c9-c0 */
  36 +- mmio_write_32(DDRC_ADDRMAP0(0), 0x00000015);
  37 +- mmio_write_32(DDRC_ADDRMAP3(0), 0x00000000);
  38 +- mmio_write_32(DDRC_ADDRMAP4(0), 0x00001F1F);
  39 +- /* bank interleave */
  40 +- mmio_write_32(DDRC_ADDRMAP1(0), 0x00080808);
  41 +- mmio_write_32(DDRC_ADDRMAP5(0), 0x07070707);
  42 +- mmio_write_32(DDRC_ADDRMAP6(0), 0x08080707);
  43 +-}
  44 ++/* lpddr4 phy init config parameters */
  45 ++static struct ddrc_cfg_param umctl2_cfg[] = {
  46 ++ { .offset = DDRC_DBG1(0) , .val = 0x00 },
  47 ++ { .offset = DDRC_PWRCTL(0) , .val = 0x00 },
  48 ++ { .offset = DDRC_MSTR(0) , .val = 0x00 },
  49 ++ { .offset = DDRC_MSTR2(0) , .val = 0x00 },
  50 ++ { .offset = DDRC_DERATEEN(0), .val = 0x00 },
  51 ++ { .offset = DDRC_DERATEINT(0), .val = 0x00},
  52 ++ { .offset = DDRC_RFSHTMG(0), .val = 0x00 },
  53 ++ { .offset = DDRC_INIT0(0) , .val = 0x00 },
  54 ++ { .offset = DDRC_INIT1(0) , .val = 0x00 },
  55 ++ { .offset = DDRC_INIT3(0) , .val = 0x00 },
  56 ++ { .offset = DDRC_INIT4(0) , .val = 0x00 },
  57 ++ { .offset = DDRC_INIT6(0) , .val = 0x00 },
  58 ++ { .offset = DDRC_INIT7(0) , .val = 0x00 },
  59 ++ { .offset = DDRC_DRAMTMG0(0), .val = 0x00 },
  60 ++ { .offset = DDRC_DRAMTMG1(0), .val = 0x00 },
  61 ++ { .offset = DDRC_DRAMTMG3(0), .val = 0x00 },
  62 ++ { .offset = DDRC_DRAMTMG4(0), .val = 0x00 },
  63 ++ { .offset = DDRC_DRAMTMG5(0), .val = 0x00 },
  64 ++ { .offset = DDRC_DRAMTMG6(0), .val = 0x00 },
  65 ++ { .offset = DDRC_DRAMTMG7(0), .val = 0x00 },
  66 ++ { .offset = DDRC_DRAMTMG12(0), .val = 0x00 },
  67 ++ { .offset = DDRC_DRAMTMG13(0), .val = 0x00 },
  68 ++ { .offset = DDRC_DRAMTMG14(0), .val = 0x00 },
  69 ++ { .offset = DDRC_DRAMTMG17(0), .val = 0x00 },
  70 +
  71 +-static inline void umctl2_perf(void)
  72 +-{
  73 +- mmio_write_32(DDRC_ODTCFG(0), 0x0b060908);
  74 +- mmio_write_32(DDRC_ODTMAP(0), 0x00000000);
  75 +- mmio_write_32(DDRC_SCHED(0), 0x29511505);
  76 +- mmio_write_32(DDRC_SCHED1(0), 0x0000002c);
  77 +- mmio_write_32(DDRC_PERFHPR1(0), 0x5900575b);
  78 +- mmio_write_32(DDRC_PERFLPR1(0), 0x00000009);
  79 +- mmio_write_32(DDRC_PERFWR1(0), 0x02005574);
  80 +- mmio_write_32(DDRC_DBG0(0), 0x00000016);
  81 +- mmio_write_32(DDRC_DBG1(0), 0x00000000);
  82 +- mmio_write_32(DDRC_DBGCMD(0), 0x00000000);
  83 +- mmio_write_32(DDRC_SWCTL(0), 0x00000001);
  84 +- mmio_write_32(DDRC_POISONCFG(0), 0x00000011);
  85 +- mmio_write_32(DDRC_PCCFG(0), 0x00000111);
  86 +- mmio_write_32(DDRC_PCFGR_0(0), 0x000010f3);
  87 +- mmio_write_32(DDRC_PCFGW_0(0), 0x000072ff);
  88 +- mmio_write_32(DDRC_PCTRL_0(0), 0x00000001);
  89 +- mmio_write_32(DDRC_PCFGQOS0_0(0), 0x01110d00);
  90 +- mmio_write_32(DDRC_PCFGQOS1_0(0), 0x00620790);
  91 +- mmio_write_32(DDRC_PCFGWQOS0_0(0), 0x00100001);
  92 +- mmio_write_32(DDRC_PCFGWQOS1_0(0), 0x0000041f);
  93 +- mmio_write_32(DDRC_FREQ1_DERATEEN(0), 0x00000202);
  94 +- mmio_write_32(DDRC_FREQ1_DERATEINT(0), 0xec78f4b5);
  95 +- mmio_write_32(DDRC_FREQ1_RFSHCTL0(0), 0x00618040);
  96 +- mmio_write_32(DDRC_FREQ1_RFSHTMG(0), 0x00610090);
  97 +-}
  98 ++ { .offset = DDRC_ZQCTL0(0), .val = 0x00 },
  99 ++ { .offset = DDRC_ZQCTL1(0), .val = 0x00 },
  100 ++ { .offset = DDRC_ZQCTL2(0), .val = 0x00 },
  101 +
  102 +-static inline void umctl2_freq1(void)
  103 +-{
  104 +- mmio_write_32(DDRC_FREQ1_DERATEEN(0), 0x0000000);
  105 +- mmio_write_32(DDRC_FREQ1_DERATEINT(0), 0x0800000);
  106 +- mmio_write_32(DDRC_FREQ1_RFSHCTL0(0), 0x0210000);
  107 +- mmio_write_32(DDRC_FREQ1_RFSHTMG(0), 0x014001E);
  108 +- mmio_write_32(DDRC_FREQ1_INIT3(0), 0x0140009);
  109 +- mmio_write_32(DDRC_FREQ1_INIT4(0), 0x00310008);
  110 +- mmio_write_32(DDRC_FREQ1_INIT6(0), 0x0066004a);
  111 +- mmio_write_32(DDRC_FREQ1_INIT7(0), 0x0006004a);
  112 +- mmio_write_32(DDRC_FREQ1_DRAMTMG0(0), 0xB070A07);
  113 +- mmio_write_32(DDRC_FREQ1_DRAMTMG1(0), 0x003040A);
  114 +- mmio_write_32(DDRC_FREQ1_DRAMTMG2(0), 0x305080C);
  115 +- mmio_write_32(DDRC_FREQ1_DRAMTMG3(0), 0x0505000);
  116 +- mmio_write_32(DDRC_FREQ1_DRAMTMG4(0), 0x3040203);
  117 +- mmio_write_32(DDRC_FREQ1_DRAMTMG5(0), 0x2030303);
  118 +- mmio_write_32(DDRC_FREQ1_DRAMTMG6(0), 0x2020004);
  119 +- mmio_write_32(DDRC_FREQ1_DRAMTMG7(0), 0x0000302);
  120 +- mmio_write_32(DDRC_FREQ1_DRAMTMG12(0), 0x0020310);
  121 +- mmio_write_32(DDRC_FREQ1_DRAMTMG13(0), 0xA100002);
  122 +- mmio_write_32(DDRC_FREQ1_DRAMTMG14(0), 0x0000020);
  123 +- mmio_write_32(DDRC_FREQ1_DRAMTMG17(0), 0x0220011);
  124 +- mmio_write_32(DDRC_FREQ1_ZQCTL0(0), 0x0A70005);
  125 +- mmio_write_32(DDRC_FREQ1_DFITMG0(0), 0x3858202);
  126 +- mmio_write_32(DDRC_FREQ1_DFITMG1(0), 0x0000404);
  127 +- mmio_write_32(DDRC_FREQ1_DFITMG2(0), 0x0000502);
  128 +-}
  129 ++ { .offset = DDRC_DFITMG0(0), .val = 0x00 },
  130 ++ { .offset = DDRC_DFITMG1(0), .val = 0x00 },
  131 ++ { .offset = DDRC_DFIUPD0(0), .val = 0x00 },
  132 ++ { .offset = DDRC_DFIUPD1(0), .val = 0x00 },
  133 ++ { .offset = DDRC_DFIUPD2(0), .val = 0x00 },
  134 ++ { .offset = DDRC_DFIMISC(0), .val = 0x00 },
  135 ++ { .offset = DDRC_DFITMG2(0), .val = 0x00 },
  136 +
  137 +-void lpddr4_cfg_umctl2(void)
  138 +-{
  139 +- /* Start to config, default 3200mbps */
  140 +- mmio_write_32(DDRC_DBG1(0), 0x00000001);
  141 +- mmio_write_32(DDRC_PWRCTL(0), 0x00000001);
  142 +- mmio_write_32(DDRC_MSTR(0), 0xa3080020);
  143 +- mmio_write_32(DDRC_MSTR2(0), 0x00000000);
  144 +- mmio_write_32(DDRC_RFSHTMG(0), 0x006100E0);
  145 +- mmio_write_32(DDRC_INIT0(0), 0xC003061B);
  146 +- mmio_write_32(DDRC_INIT1(0), 0x009D0000);
  147 +- mmio_write_32(DDRC_INIT3(0), 0x00D4002D);
  148 +-#ifdef WR_POST_EXT_3200 /* recommened to define */
  149 +- mmio_write_32(DDRC_INIT4(0), 0x00330008);
  150 +-#else
  151 +- mmio_write_32(DDRC_INIT4(0), 0x00310008);
  152 +-#endif
  153 +- mmio_write_32(DDRC_INIT6(0), 0x0066004a);
  154 +- mmio_write_32(DDRC_INIT7(0), 0x0006004a);
  155 ++ { .offset = DDRC_DBICTL(0), .val = 0x00 },
  156 ++ { .offset = DDRC_DFIPHYMSTR(0), .val = 0x00 },
  157 +
  158 +- mmio_write_32(DDRC_DRAMTMG0(0), 0x1A201B22);
  159 +- mmio_write_32(DDRC_DRAMTMG1(0), 0x00060633);
  160 +- mmio_write_32(DDRC_DRAMTMG3(0), 0x00C0C000);
  161 +- mmio_write_32(DDRC_DRAMTMG4(0), 0x0F04080F);
  162 +- mmio_write_32(DDRC_DRAMTMG5(0), 0x02040C0C);
  163 +- mmio_write_32(DDRC_DRAMTMG6(0), 0x01010007);
  164 +- mmio_write_32(DDRC_DRAMTMG7(0), 0x00000401);
  165 +- mmio_write_32(DDRC_DRAMTMG12(0), 0x00020600);
  166 +- mmio_write_32(DDRC_DRAMTMG13(0), 0x0C100002);
  167 +- mmio_write_32(DDRC_DRAMTMG14(0), 0x000000E6);
  168 +- mmio_write_32(DDRC_DRAMTMG17(0), 0x00A00050);
  169 ++ { .offset = DDRC_RANKCTL(0), .val = 0x00 },
  170 ++ { .offset = DDRC_DRAMTMG2(0), .val = 0x00 },
  171 +
  172 +- mmio_write_32(DDRC_ZQCTL0(0), 0x03200018);
  173 +- mmio_write_32(DDRC_ZQCTL1(0), 0x028061A8);
  174 +- mmio_write_32(DDRC_ZQCTL2(0), 0x00000000);
  175 ++ /* Address mapping */
  176 ++ { .offset = DDRC_ADDRMAP0(0), .val = 0x00 },
  177 ++ { .offset = DDRC_ADDRMAP1(0), .val = 0x00 },
  178 ++ { .offset = DDRC_ADDRMAP2(0), .val = 0x00 },
  179 ++ { .offset = DDRC_ADDRMAP3(0), .val = 0x00 },
  180 ++ { .offset = DDRC_ADDRMAP4(0), .val = 0x00 },
  181 ++ { .offset = DDRC_ADDRMAP5(0), .val = 0x00 },
  182 ++ { .offset = DDRC_ADDRMAP6(0), .val = 0x00 },
  183 +
  184 +- mmio_write_32(DDRC_DFITMG0(0), 0x0497820A);
  185 +- mmio_write_32(DDRC_DFITMG1(0), 0x00080303);
  186 +- mmio_write_32(DDRC_DFIUPD0(0), 0xE0400018);
  187 +- mmio_write_32(DDRC_DFIUPD1(0), 0x00DF00E4);
  188 +- mmio_write_32(DDRC_DFIUPD2(0), 0x80000000);
  189 +- mmio_write_32(DDRC_DFIMISC(0), 0x00000011);
  190 +- mmio_write_32(DDRC_DFITMG2(0), 0x0000170A);
  191 ++ /* performance tunning */
  192 ++ { .offset = DDRC_ODTCFG(0), .val = 0x00 },
  193 ++ { .offset = DDRC_ODTMAP(0), .val = 0x00 },
  194 ++ { .offset = DDRC_SCHED(0), .val = 0x00 },
  195 ++ { .offset = DDRC_SCHED1(0), .val = 0x00 },
  196 ++ { .offset = DDRC_PERFHPR1(0), .val = 0x00 },
  197 ++ { .offset = DDRC_PERFLPR1(0), .val = 0x00 },
  198 ++ { .offset = DDRC_PERFWR1(0), .val = 0x00 },
  199 ++ { .offset = DDRC_DBG0(0), .val = 0x00 },
  200 ++ { .offset = DDRC_DBG1(0), .val = 0x00 },
  201 ++ { .offset = DDRC_DBGCMD(0), .val = 0x00 },
  202 ++ { .offset = DDRC_SWCTL(0), .val = 0x00 },
  203 ++ { .offset = DDRC_POISONCFG(0), .val = 0x00 },
  204 ++ { .offset = DDRC_PCCFG(0), .val = 0x00 },
  205 ++ { .offset = DDRC_PCFGR_0(0), .val = 0x00 },
  206 ++ { .offset = DDRC_PCFGW_0(0), .val = 0x00 },
  207 ++ { .offset = DDRC_PCTRL_0(0), .val = 0x00 },
  208 ++ { .offset = DDRC_PCFGQOS0_0(0), .val = 0x00 },
  209 ++ { .offset = DDRC_PCFGQOS1_0(0), .val = 0x00 },
  210 ++ { .offset = DDRC_PCFGWQOS0_0(0), .val = 0x00 },
  211 ++ { .offset = DDRC_PCFGWQOS1_0(0), .val = 0x00 },
  212 +
  213 +- mmio_write_32(DDRC_DBICTL(0), 0x00000001);
  214 +- mmio_write_32(DDRC_DFIPHYMSTR(0), 0x00000001);
  215 ++ /* frequency point 1 */
  216 ++ { .offset = DDRC_FREQ1_DERATEEN(0), .val = 0x00 },
  217 ++ { .offset = DDRC_FREQ1_DERATEINT(0), .val = 0x00 },
  218 ++ { .offset = DDRC_FREQ1_RFSHCTL0(0), .val = 0x00 },
  219 ++ { .offset = DDRC_FREQ1_RFSHTMG(0), .val = 0x00 },
  220 ++ { .offset = DDRC_FREQ1_INIT3(0), .val = 0x00 },
  221 ++ { .offset = DDRC_FREQ1_INIT4(0), .val = 0x00 },
  222 ++ { .offset = DDRC_FREQ1_INIT6(0), .val = 0x00 },
  223 ++ { .offset = DDRC_FREQ1_INIT7(0), .val = 0x00 },
  224 ++ { .offset = DDRC_FREQ1_DRAMTMG0(0), .val = 0x00 },
  225 ++ { .offset = DDRC_FREQ1_DRAMTMG1(0), .val = 0x00 },
  226 ++ { .offset = DDRC_FREQ1_DRAMTMG2(0), .val = 0x00 },
  227 ++ { .offset = DDRC_FREQ1_DRAMTMG3(0), .val = 0x00 },
  228 ++ { .offset = DDRC_FREQ1_DRAMTMG4(0), .val = 0x00 },
  229 ++ { .offset = DDRC_FREQ1_DRAMTMG5(0), .val = 0x00 },
  230 ++ { .offset = DDRC_FREQ1_DRAMTMG6(0), .val = 0x00 },
  231 ++ { .offset = DDRC_FREQ1_DRAMTMG7(0), .val = 0x00 },
  232 ++ { .offset = DDRC_FREQ1_DRAMTMG12(0), .val = 0x00 },
  233 ++ { .offset = DDRC_FREQ1_DRAMTMG13(0), .val = 0x00 },
  234 ++ { .offset = DDRC_FREQ1_DRAMTMG14(0), .val = 0x00 },
  235 ++ { .offset = DDRC_FREQ1_DRAMTMG17(0), .val = 0x00 },
  236 ++ { .offset = DDRC_FREQ1_ZQCTL0(0), .val = 0x00 },
  237 ++ { .offset = DDRC_FREQ1_DFITMG0(0), .val = 0x00 },
  238 ++ { .offset = DDRC_FREQ1_DFITMG1(0), .val = 0x00 },
  239 ++ { .offset = DDRC_FREQ1_DFITMG2(0), .val = 0x00 }
  240 ++};
  241 ++
  242 ++void lpddr4_save_umctl2(void)
  243 ++{
  244 ++ int index, offset, size;
  245 +
  246 +- mmio_write_32(DDRC_RANKCTL(0), 0x00000c99);
  247 +- mmio_write_32(DDRC_DRAMTMG2(0), 0x070E171a);
  248 ++ size = sizeof(umctl2_cfg) / 8;
  249 +
  250 +- /* address mapping */
  251 +- umctl2_addrmap();
  252 ++ for (index = 0; index < size; index++) {
  253 ++ offset = umctl2_cfg[index].offset;
  254 ++ umctl2_cfg[index].val = mmio_read_32(offset);
  255 ++ }
  256 ++}
  257 ++
  258 ++void lpddr4_cfg_umctl2(void)
  259 ++{
  260 ++ int index, offset, size, val;
  261 +
  262 +- /* performance setting */
  263 +- umctl2_perf();
  264 ++ size = sizeof(umctl2_cfg) / 8;
  265 +
  266 +- /* freq set point 1 setting */
  267 +- umctl2_freq1();
  268 ++ for (index = 0; index < size; index++) {
  269 ++ offset = umctl2_cfg[index].offset;
  270 ++ val = umctl2_cfg[index].val;
  271 ++ mmio_write_32(offset,val);
  272 ++ }
  273 + }
  274 +diff --git a/plat/freescale/imx8mq/ddr/lpddr4_dvfs.c b/plat/freescale/imx8mq/ddr/lpddr4_dvfs.c
  275 +index 4cb525b..5346642 100644
  276 +--- a/plat/freescale/imx8mq/ddr/lpddr4_dvfs.c
  277 ++++ b/plat/freescale/imx8mq/ddr/lpddr4_dvfs.c
  278 +@@ -16,6 +16,7 @@
  279 +
  280 + #include "lpddr4_dvfs.h"
  281 +
  282 ++#define HW_DRAM_PLL_CFG2_ADDR (0x30360000 + 0x68)
  283 + #define DDRC_LPDDR4 (1 << 5)
  284 + #define DDR_TYPE_MASK 0x3f
  285 +
  286 +@@ -27,6 +28,12 @@ static volatile uint32_t wfe_done;
  287 + static volatile bool wait_ddrc_hwffc_done = true;
  288 +
  289 + static unsigned int init_fsp = 0x1;
  290 ++unsigned int default_ddr_pllcfg = 0;
  291 ++
  292 ++static inline int get_init_fsp(void)
  293 ++{
  294 ++ return (mmio_read_32(DDRC_DFIMISC(0))>>8)&0xf;
  295 ++}
  296 +
  297 + static inline int get_ddr_type(void)
  298 + {
  299 +@@ -35,6 +42,15 @@ static inline int get_ddr_type(void)
  300 +
  301 + void lpddr4_switch_to_3200(void)
  302 + {
  303 ++ init_fsp = get_init_fsp();
  304 ++ if(init_fsp == 0)
  305 ++ {
  306 ++ default_ddr_pllcfg = mmio_read_32(HW_DRAM_PLL_CFG2_ADDR);
  307 ++ return;
  308 ++ }
  309 ++
  310 ++ default_ddr_pllcfg = 0;
  311 ++
  312 + if (get_ddr_type() == DDRC_LPDDR4)
  313 + lpddr4_dvfs_swffc(init_fsp, 0x0);
  314 + }
  315 +@@ -98,6 +114,7 @@ int lpddr4_dvfs_handler(uint32_t smc_fid,
  316 + init_fsp = (~init_fsp) & 0x1;
  317 + #else
  318 + lpddr4_dvfs_swffc(init_fsp, target_freq);
  319 ++ init_fsp = (~init_fsp) & 0x1;
  320 + #endif
  321 + wait_ddrc_hwffc_done = false;
  322 + wfe_done = 0;
  323 +diff --git a/plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c b/plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c
  324 +index d6c57e0..ddba7f2 100644
  325 +--- a/plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c
  326 ++++ b/plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c
  327 +@@ -20,7 +20,7 @@ struct ddrphy_cfg_param {
  328 + };
  329 +
  330 + /* lpddr4 phy init config parameters */
  331 +-static const struct ddrphy_cfg_param phy_init_cfg[] = {
  332 ++static struct ddrphy_cfg_param phy_cfg[] = {
  333 + { .offset = 0x20110, .val = 0x02 }, /* MapCAB0toDFI */
  334 + { .offset = 0x20111, .val = 0x03 }, /* MapCAB1toDFI */
  335 + { .offset = 0x20112, .val = 0x04 }, /* MapCAB2toDFI */
  336 +@@ -69,6 +69,7 @@ static const struct ddrphy_cfg_param phy_init_cfg[] = {
  337 + { .offset = 0x200c5, .val = 0x19 }, // DWC_DDRPHYA_MASTER0_PllCtrl2_p0
  338 + { .offset = 0x1200c5, .val = 0x7 }, // DWC_DDRPHYA_MASTER0_PllCtrl2_p1
  339 + { .offset = 0x2200c5, .val = 0x7 }, // DWC_DDRPHYA_MASTER0_PllCtrl2_p2
  340 ++ { .offset = 0x200cb, .val = 0x0 }, // DWC_DDRPHYA_MASTER0_PllCtrl3
  341 + { .offset = 0x2002e, .val = 0x2 }, // DWC_DDRPHYA_MASTER0_ARdPtrInitVal_p0
  342 + { .offset = 0x12002e, .val = 0x1 }, // DWC_DDRPHYA_MASTER0_ARdPtrInitVal_p1
  343 + { .offset = 0x22002e, .val = 0x2 }, // DWC_DDRPHYA_MASTER0_ARdPtrInitVal_p2
  344 +@@ -202,729 +203,738 @@ static const struct ddrphy_cfg_param phy_init_cfg[] = {
  345 + { .offset = 0x2002d, .val = 0x0 }, // DWC_DDRPHYA_MASTER0_DMIPinPresent_p0
  346 + { .offset = 0x12002d, .val = 0x0 }, // DWC_DDRPHYA_MASTER0_DMIPinPresent_p1
  347 + { .offset = 0x22002d, .val = 0x0 }, // DWC_DDRPHYA_MASTER0_DMIPinPresent_p2
  348 +-};
  349 +
  350 +-/* lpddr4 phy trained CSR registers */
  351 +-static struct ddrphy_cfg_param phy_trained_csr[] = {
  352 +- { .offset = 0x200b2, .val = 0 },
  353 +- { .offset = 0x1200b2, .val = 0 },
  354 +- { .offset = 0x2200b2, .val = 0 },
  355 +- { .offset = 0x200cb, .val = 0 },
  356 +- { .offset = 0x10043, .val = 0 },
  357 +- { .offset = 0x110043, .val = 0 },
  358 +- { .offset = 0x210043, .val = 0 },
  359 +- { .offset = 0x10143, .val = 0 },
  360 +- { .offset = 0x110143, .val = 0 },
  361 +- { .offset = 0x210143, .val = 0 },
  362 +- { .offset = 0x11043, .val = 0 },
  363 +- { .offset = 0x111043, .val = 0 },
  364 +- { .offset = 0x211043, .val = 0 },
  365 +- { .offset = 0x11143, .val = 0 },
  366 +- { .offset = 0x111143, .val = 0 },
  367 +- { .offset = 0x211143, .val = 0 },
  368 +- { .offset = 0x12043, .val = 0 },
  369 +- { .offset = 0x112043, .val = 0 },
  370 +- { .offset = 0x212043, .val = 0 },
  371 +- { .offset = 0x12143, .val = 0 },
  372 +- { .offset = 0x112143, .val = 0 },
  373 +- { .offset = 0x212143, .val = 0 },
  374 +- { .offset = 0x13043, .val = 0 },
  375 +- { .offset = 0x113043, .val = 0 },
  376 +- { .offset = 0x213043, .val = 0 },
  377 +- { .offset = 0x13143, .val = 0 },
  378 +- { .offset = 0x113143, .val = 0 },
  379 +- { .offset = 0x213143, .val = 0 },
  380 +- { .offset = 0x80, .val = 0 },
  381 +- { .offset = 0x100080, .val = 0 },
  382 +- { .offset = 0x200080, .val = 0 },
  383 +- { .offset = 0x1080, .val = 0 },
  384 +- { .offset = 0x101080, .val = 0 },
  385 +- { .offset = 0x201080, .val = 0 },
  386 +- { .offset = 0x2080, .val = 0 },
  387 +- { .offset = 0x102080, .val = 0 },
  388 +- { .offset = 0x202080, .val = 0 },
  389 +- { .offset = 0x3080, .val = 0 },
  390 +- { .offset = 0x103080, .val = 0 },
  391 +- { .offset = 0x203080, .val = 0 },
  392 +- { .offset = 0x4080, .val = 0 },
  393 +- { .offset = 0x104080, .val = 0 },
  394 +- { .offset = 0x204080, .val = 0 },
  395 +- { .offset = 0x5080, .val = 0 },
  396 +- { .offset = 0x105080, .val = 0 },
  397 +- { .offset = 0x205080, .val = 0 },
  398 +- { .offset = 0x6080, .val = 0 },
  399 +- { .offset = 0x106080, .val = 0 },
  400 +- { .offset = 0x206080, .val = 0 },
  401 +- { .offset = 0x7080, .val = 0 },
  402 +- { .offset = 0x107080, .val = 0 },
  403 +- { .offset = 0x207080, .val = 0 },
  404 +- { .offset = 0x8080, .val = 0 },
  405 +- { .offset = 0x108080, .val = 0 },
  406 +- { .offset = 0x208080, .val = 0 },
  407 +- { .offset = 0x9080, .val = 0 },
  408 +- { .offset = 0x109080, .val = 0 },
  409 +- { .offset = 0x209080, .val = 0 },
  410 +- { .offset = 0x10080, .val = 0 },
  411 +- { .offset = 0x110080, .val = 0 },
  412 +- { .offset = 0x210080, .val = 0 },
  413 +- { .offset = 0x10180, .val = 0 },
  414 +- { .offset = 0x110180, .val = 0 },
  415 +- { .offset = 0x210180, .val = 0 },
  416 +- { .offset = 0x11080, .val = 0 },
  417 +- { .offset = 0x111080, .val = 0 },
  418 +- { .offset = 0x211080, .val = 0 },
  419 +- { .offset = 0x11180, .val = 0 },
  420 +- { .offset = 0x111180, .val = 0 },
  421 +- { .offset = 0x211180, .val = 0 },
  422 +- { .offset = 0x12080, .val = 0 },
  423 +- { .offset = 0x112080, .val = 0 },
  424 +- { .offset = 0x212080, .val = 0 },
  425 +- { .offset = 0x12180, .val = 0 },
  426 +- { .offset = 0x112180, .val = 0 },
  427 +- { .offset = 0x212180, .val = 0 },
  428 +- { .offset = 0x13080, .val = 0 },
  429 +- { .offset = 0x113080, .val = 0 },
  430 +- { .offset = 0x213080, .val = 0 },
  431 +- { .offset = 0x13180, .val = 0 },
  432 +- { .offset = 0x113180, .val = 0 },
  433 +- { .offset = 0x213180, .val = 0 },
  434 +- { .offset = 0x10081, .val = 0 },
  435 +- { .offset = 0x110081, .val = 0 },
  436 +- { .offset = 0x210081, .val = 0 },
  437 +- { .offset = 0x10181, .val = 0 },
  438 +- { .offset = 0x110181, .val = 0 },
  439 +- { .offset = 0x210181, .val = 0 },
  440 +- { .offset = 0x11081, .val = 0 },
  441 +- { .offset = 0x111081, .val = 0 },
  442 +- { .offset = 0x211081, .val = 0 },
  443 +- { .offset = 0x11181, .val = 0 },
  444 +- { .offset = 0x111181, .val = 0 },
  445 +- { .offset = 0x211181, .val = 0 },
  446 +- { .offset = 0x12081, .val = 0 },
  447 +- { .offset = 0x112081, .val = 0 },
  448 +- { .offset = 0x212081, .val = 0 },
  449 +- { .offset = 0x12181, .val = 0 },
  450 +- { .offset = 0x112181, .val = 0 },
  451 +- { .offset = 0x212181, .val = 0 },
  452 +- { .offset = 0x13081, .val = 0 },
  453 +- { .offset = 0x113081, .val = 0 },
  454 +- { .offset = 0x213081, .val = 0 },
  455 +- { .offset = 0x13181, .val = 0 },
  456 +- { .offset = 0x113181, .val = 0 },
  457 +- { .offset = 0x213181, .val = 0 },
  458 +- { .offset = 0x100d0, .val = 0 },
  459 +- { .offset = 0x1100d0, .val = 0 },
  460 +- { .offset = 0x2100d0, .val = 0 },
  461 +- { .offset = 0x101d0, .val = 0 },
  462 +- { .offset = 0x1101d0, .val = 0 },
  463 +- { .offset = 0x2101d0, .val = 0 },
  464 +- { .offset = 0x110d0, .val = 0 },
  465 +- { .offset = 0x1110d0, .val = 0 },
  466 +- { .offset = 0x2110d0, .val = 0 },
  467 +- { .offset = 0x111d0, .val = 0 },
  468 +- { .offset = 0x1111d0, .val = 0 },
  469 +- { .offset = 0x2111d0, .val = 0 },
  470 +- { .offset = 0x120d0, .val = 0 },
  471 +- { .offset = 0x1120d0, .val = 0 },
  472 +- { .offset = 0x2120d0, .val = 0 },
  473 +- { .offset = 0x121d0, .val = 0 },
  474 +- { .offset = 0x1121d0, .val = 0 },
  475 +- { .offset = 0x2121d0, .val = 0 },
  476 +- { .offset = 0x130d0, .val = 0 },
  477 +- { .offset = 0x1130d0, .val = 0 },
  478 +- { .offset = 0x2130d0, .val = 0 },
  479 +- { .offset = 0x131d0, .val = 0 },
  480 +- { .offset = 0x1131d0, .val = 0 },
  481 +- { .offset = 0x2131d0, .val = 0 },
  482 +- { .offset = 0x100d1, .val = 0 },
  483 +- { .offset = 0x1100d1, .val = 0 },
  484 +- { .offset = 0x2100d1, .val = 0 },
  485 +- { .offset = 0x101d1, .val = 0 },
  486 +- { .offset = 0x1101d1, .val = 0 },
  487 +- { .offset = 0x2101d1, .val = 0 },
  488 +- { .offset = 0x110d1, .val = 0 },
  489 +- { .offset = 0x1110d1, .val = 0 },
  490 +- { .offset = 0x2110d1, .val = 0 },
  491 +- { .offset = 0x111d1, .val = 0 },
  492 +- { .offset = 0x1111d1, .val = 0 },
  493 +- { .offset = 0x2111d1, .val = 0 },
  494 +- { .offset = 0x120d1, .val = 0 },
  495 +- { .offset = 0x1120d1, .val = 0 },
  496 +- { .offset = 0x2120d1, .val = 0 },
  497 +- { .offset = 0x121d1, .val = 0 },
  498 +- { .offset = 0x1121d1, .val = 0 },
  499 +- { .offset = 0x2121d1, .val = 0 },
  500 +- { .offset = 0x130d1, .val = 0 },
  501 +- { .offset = 0x1130d1, .val = 0 },
  502 +- { .offset = 0x2130d1, .val = 0 },
  503 +- { .offset = 0x131d1, .val = 0 },
  504 +- { .offset = 0x1131d1, .val = 0 },
  505 +- { .offset = 0x2131d1, .val = 0 },
  506 +- { .offset = 0x10068, .val = 0 },
  507 +- { .offset = 0x10168, .val = 0 },
  508 +- { .offset = 0x10268, .val = 0 },
  509 +- { .offset = 0x10368, .val = 0 },
  510 +- { .offset = 0x10468, .val = 0 },
  511 +- { .offset = 0x10568, .val = 0 },
  512 +- { .offset = 0x10668, .val = 0 },
  513 +- { .offset = 0x10768, .val = 0 },
  514 +- { .offset = 0x10868, .val = 0 },
  515 +- { .offset = 0x11068, .val = 0 },
  516 +- { .offset = 0x11168, .val = 0 },
  517 +- { .offset = 0x11268, .val = 0 },
  518 +- { .offset = 0x11368, .val = 0 },
  519 +- { .offset = 0x11468, .val = 0 },
  520 +- { .offset = 0x11568, .val = 0 },
  521 +- { .offset = 0x11668, .val = 0 },
  522 +- { .offset = 0x11768, .val = 0 },
  523 +- { .offset = 0x11868, .val = 0 },
  524 +- { .offset = 0x12068, .val = 0 },
  525 +- { .offset = 0x12168, .val = 0 },
  526 +- { .offset = 0x12268, .val = 0 },
  527 +- { .offset = 0x12368, .val = 0 },
  528 +- { .offset = 0x12468, .val = 0 },
  529 +- { .offset = 0x12568, .val = 0 },
  530 +- { .offset = 0x12668, .val = 0 },
  531 +- { .offset = 0x12768, .val = 0 },
  532 +- { .offset = 0x12868, .val = 0 },
  533 +- { .offset = 0x13068, .val = 0 },
  534 +- { .offset = 0x13168, .val = 0 },
  535 +- { .offset = 0x13268, .val = 0 },
  536 +- { .offset = 0x13368, .val = 0 },
  537 +- { .offset = 0x13468, .val = 0 },
  538 +- { .offset = 0x13568, .val = 0 },
  539 +- { .offset = 0x13668, .val = 0 },
  540 +- { .offset = 0x13768, .val = 0 },
  541 +- { .offset = 0x13868, .val = 0 },
  542 +- { .offset = 0x10069, .val = 0 },
  543 +- { .offset = 0x10169, .val = 0 },
  544 +- { .offset = 0x10269, .val = 0 },
  545 +- { .offset = 0x10369, .val = 0 },
  546 +- { .offset = 0x10469, .val = 0 },
  547 +- { .offset = 0x10569, .val = 0 },
  548 +- { .offset = 0x10669, .val = 0 },
  549 +- { .offset = 0x10769, .val = 0 },
  550 +- { .offset = 0x10869, .val = 0 },
  551 +- { .offset = 0x11069, .val = 0 },
  552 +- { .offset = 0x11169, .val = 0 },
  553 +- { .offset = 0x11269, .val = 0 },
  554 +- { .offset = 0x11369, .val = 0 },
  555 +- { .offset = 0x11469, .val = 0 },
  556 +- { .offset = 0x11569, .val = 0 },
  557 +- { .offset = 0x11669, .val = 0 },
  558 +- { .offset = 0x11769, .val = 0 },
  559 +- { .offset = 0x11869, .val = 0 },
  560 +- { .offset = 0x12069, .val = 0 },
  561 +- { .offset = 0x12169, .val = 0 },
  562 +- { .offset = 0x12269, .val = 0 },
  563 +- { .offset = 0x12369, .val = 0 },
  564 +- { .offset = 0x12469, .val = 0 },
  565 +- { .offset = 0x12569, .val = 0 },
  566 +- { .offset = 0x12669, .val = 0 },
  567 +- { .offset = 0x12769, .val = 0 },
  568 +- { .offset = 0x12869, .val = 0 },
  569 +- { .offset = 0x13069, .val = 0 },
  570 +- { .offset = 0x13169, .val = 0 },
  571 +- { .offset = 0x13269, .val = 0 },
  572 +- { .offset = 0x13369, .val = 0 },
  573 +- { .offset = 0x13469, .val = 0 },
  574 +- { .offset = 0x13569, .val = 0 },
  575 +- { .offset = 0x13669, .val = 0 },
  576 +- { .offset = 0x13769, .val = 0 },
  577 +- { .offset = 0x13869, .val = 0 },
  578 +- { .offset = 0x1008c, .val = 0 },
  579 +- { .offset = 0x11008c, .val = 0 },
  580 +- { .offset = 0x21008c, .val = 0 },
  581 +- { .offset = 0x1018c, .val = 0 },
  582 +- { .offset = 0x11018c, .val = 0 },
  583 +- { .offset = 0x21018c, .val = 0 },
  584 +- { .offset = 0x1108c, .val = 0 },
  585 +- { .offset = 0x11108c, .val = 0 },
  586 +- { .offset = 0x21108c, .val = 0 },
  587 +- { .offset = 0x1118c, .val = 0 },
  588 +- { .offset = 0x11118c, .val = 0 },
  589 +- { .offset = 0x21118c, .val = 0 },
  590 +- { .offset = 0x1208c, .val = 0 },
  591 +- { .offset = 0x11208c, .val = 0 },
  592 +- { .offset = 0x21208c, .val = 0 },
  593 +- { .offset = 0x1218c, .val = 0 },
  594 +- { .offset = 0x11218c, .val = 0 },
  595 +- { .offset = 0x21218c, .val = 0 },
  596 +- { .offset = 0x1308c, .val = 0 },
  597 +- { .offset = 0x11308c, .val = 0 },
  598 +- { .offset = 0x21308c, .val = 0 },
  599 +- { .offset = 0x1318c, .val = 0 },
  600 +- { .offset = 0x11318c, .val = 0 },
  601 +- { .offset = 0x21318c, .val = 0 },
  602 +- { .offset = 0x1008d, .val = 0 },
  603 +- { .offset = 0x11008d, .val = 0 },
  604 +- { .offset = 0x21008d, .val = 0 },
  605 +- { .offset = 0x1018d, .val = 0 },
  606 +- { .offset = 0x11018d, .val = 0 },
  607 +- { .offset = 0x21018d, .val = 0 },
  608 +- { .offset = 0x1108d, .val = 0 },
  609 +- { .offset = 0x11108d, .val = 0 },
  610 +- { .offset = 0x21108d, .val = 0 },
  611 +- { .offset = 0x1118d, .val = 0 },
  612 +- { .offset = 0x11118d, .val = 0 },
  613 +- { .offset = 0x21118d, .val = 0 },
  614 +- { .offset = 0x1208d, .val = 0 },
  615 +- { .offset = 0x11208d, .val = 0 },
  616 +- { .offset = 0x21208d, .val = 0 },
  617 +- { .offset = 0x1218d, .val = 0 },
  618 +- { .offset = 0x11218d, .val = 0 },
  619 +- { .offset = 0x21218d, .val = 0 },
  620 +- { .offset = 0x1308d, .val = 0 },
  621 +- { .offset = 0x11308d, .val = 0 },
  622 +- { .offset = 0x21308d, .val = 0 },
  623 +- { .offset = 0x1318d, .val = 0 },
  624 +- { .offset = 0x11318d, .val = 0 },
  625 +- { .offset = 0x21318d, .val = 0 },
  626 +- { .offset = 0x100c0, .val = 0 },
  627 +- { .offset = 0x1100c0, .val = 0 },
  628 +- { .offset = 0x2100c0, .val = 0 },
  629 +- { .offset = 0x101c0, .val = 0 },
  630 +- { .offset = 0x1101c0, .val = 0 },
  631 +- { .offset = 0x2101c0, .val = 0 },
  632 +- { .offset = 0x102c0, .val = 0 },
  633 +- { .offset = 0x1102c0, .val = 0 },
  634 +- { .offset = 0x2102c0, .val = 0 },
  635 +- { .offset = 0x103c0, .val = 0 },
  636 +- { .offset = 0x1103c0, .val = 0 },
  637 +- { .offset = 0x2103c0, .val = 0 },
  638 +- { .offset = 0x104c0, .val = 0 },
  639 +- { .offset = 0x1104c0, .val = 0 },
  640 +- { .offset = 0x2104c0, .val = 0 },
  641 +- { .offset = 0x105c0, .val = 0 },
  642 +- { .offset = 0x1105c0, .val = 0 },
  643 +- { .offset = 0x2105c0, .val = 0 },
  644 +- { .offset = 0x106c0, .val = 0 },
  645 +- { .offset = 0x1106c0, .val = 0 },
  646 +- { .offset = 0x2106c0, .val = 0 },
  647 +- { .offset = 0x107c0, .val = 0 },
  648 +- { .offset = 0x1107c0, .val = 0 },
  649 +- { .offset = 0x2107c0, .val = 0 },
  650 +- { .offset = 0x108c0, .val = 0 },
  651 +- { .offset = 0x1108c0, .val = 0 },
  652 +- { .offset = 0x2108c0, .val = 0 },
  653 +- { .offset = 0x110c0, .val = 0 },
  654 +- { .offset = 0x1110c0, .val = 0 },
  655 +- { .offset = 0x2110c0, .val = 0 },
  656 +- { .offset = 0x111c0, .val = 0 },
  657 +- { .offset = 0x1111c0, .val = 0 },
  658 +- { .offset = 0x2111c0, .val = 0 },
  659 +- { .offset = 0x112c0, .val = 0 },
  660 +- { .offset = 0x1112c0, .val = 0 },
  661 +- { .offset = 0x2112c0, .val = 0 },
  662 +- { .offset = 0x113c0, .val = 0 },
  663 +- { .offset = 0x1113c0, .val = 0 },
  664 +- { .offset = 0x2113c0, .val = 0 },
  665 +- { .offset = 0x114c0, .val = 0 },
  666 +- { .offset = 0x1114c0, .val = 0 },
  667 +- { .offset = 0x2114c0, .val = 0 },
  668 +- { .offset = 0x115c0, .val = 0 },
  669 +- { .offset = 0x1115c0, .val = 0 },
  670 +- { .offset = 0x2115c0, .val = 0 },
  671 +- { .offset = 0x116c0, .val = 0 },
  672 +- { .offset = 0x1116c0, .val = 0 },
  673 +- { .offset = 0x2116c0, .val = 0 },
  674 +- { .offset = 0x117c0, .val = 0 },
  675 +- { .offset = 0x1117c0, .val = 0 },
  676 +- { .offset = 0x2117c0, .val = 0 },
  677 +- { .offset = 0x118c0, .val = 0 },
  678 +- { .offset = 0x1118c0, .val = 0 },
  679 +- { .offset = 0x2118c0, .val = 0 },
  680 +- { .offset = 0x120c0, .val = 0 },
  681 +- { .offset = 0x1120c0, .val = 0 },
  682 +- { .offset = 0x2120c0, .val = 0 },
  683 +- { .offset = 0x121c0, .val = 0 },
  684 +- { .offset = 0x1121c0, .val = 0 },
  685 +- { .offset = 0x2121c0, .val = 0 },
  686 +- { .offset = 0x122c0, .val = 0 },
  687 +- { .offset = 0x1122c0, .val = 0 },
  688 +- { .offset = 0x2122c0, .val = 0 },
  689 +- { .offset = 0x123c0, .val = 0 },
  690 +- { .offset = 0x1123c0, .val = 0 },
  691 +- { .offset = 0x2123c0, .val = 0 },
  692 +- { .offset = 0x124c0, .val = 0 },
  693 +- { .offset = 0x1124c0, .val = 0 },
  694 +- { .offset = 0x2124c0, .val = 0 },
  695 +- { .offset = 0x125c0, .val = 0 },
  696 +- { .offset = 0x1125c0, .val = 0 },
  697 +- { .offset = 0x2125c0, .val = 0 },
  698 +- { .offset = 0x126c0, .val = 0 },
  699 +- { .offset = 0x1126c0, .val = 0 },
  700 +- { .offset = 0x2126c0, .val = 0 },
  701 +- { .offset = 0x127c0, .val = 0 },
  702 +- { .offset = 0x1127c0, .val = 0 },
  703 +- { .offset = 0x2127c0, .val = 0 },
  704 +- { .offset = 0x128c0, .val = 0 },
  705 +- { .offset = 0x1128c0, .val = 0 },
  706 +- { .offset = 0x2128c0, .val = 0 },
  707 +- { .offset = 0x130c0, .val = 0 },
  708 +- { .offset = 0x1130c0, .val = 0 },
  709 +- { .offset = 0x2130c0, .val = 0 },
  710 +- { .offset = 0x131c0, .val = 0 },
  711 +- { .offset = 0x1131c0, .val = 0 },
  712 +- { .offset = 0x2131c0, .val = 0 },
  713 +- { .offset = 0x132c0, .val = 0 },
  714 +- { .offset = 0x1132c0, .val = 0 },
  715 +- { .offset = 0x2132c0, .val = 0 },
  716 +- { .offset = 0x133c0, .val = 0 },
  717 +- { .offset = 0x1133c0, .val = 0 },
  718 +- { .offset = 0x2133c0, .val = 0 },
  719 +- { .offset = 0x134c0, .val = 0 },
  720 +- { .offset = 0x1134c0, .val = 0 },
  721 +- { .offset = 0x2134c0, .val = 0 },
  722 +- { .offset = 0x135c0, .val = 0 },
  723 +- { .offset = 0x1135c0, .val = 0 },
  724 +- { .offset = 0x2135c0, .val = 0 },
  725 +- { .offset = 0x136c0, .val = 0 },
  726 +- { .offset = 0x1136c0, .val = 0 },
  727 +- { .offset = 0x2136c0, .val = 0 },
  728 +- { .offset = 0x137c0, .val = 0 },
  729 +- { .offset = 0x1137c0, .val = 0 },
  730 +- { .offset = 0x2137c0, .val = 0 },
  731 +- { .offset = 0x138c0, .val = 0 },
  732 +- { .offset = 0x1138c0, .val = 0 },
  733 +- { .offset = 0x2138c0, .val = 0 },
  734 +- { .offset = 0x100c1, .val = 0 },
  735 +- { .offset = 0x1100c1, .val = 0 },
  736 +- { .offset = 0x2100c1, .val = 0 },
  737 +- { .offset = 0x101c1, .val = 0 },
  738 +- { .offset = 0x1101c1, .val = 0 },
  739 +- { .offset = 0x2101c1, .val = 0 },
  740 +- { .offset = 0x102c1, .val = 0 },
  741 +- { .offset = 0x1102c1, .val = 0 },
  742 +- { .offset = 0x2102c1, .val = 0 },
  743 +- { .offset = 0x103c1, .val = 0 },
  744 +- { .offset = 0x1103c1, .val = 0 },
  745 +- { .offset = 0x2103c1, .val = 0 },
  746 +- { .offset = 0x104c1, .val = 0 },
  747 +- { .offset = 0x1104c1, .val = 0 },
  748 +- { .offset = 0x2104c1, .val = 0 },
  749 +- { .offset = 0x105c1, .val = 0 },
  750 +- { .offset = 0x1105c1, .val = 0 },
  751 +- { .offset = 0x2105c1, .val = 0 },
  752 +- { .offset = 0x106c1, .val = 0 },
  753 +- { .offset = 0x1106c1, .val = 0 },
  754 +- { .offset = 0x2106c1, .val = 0 },
  755 +- { .offset = 0x107c1, .val = 0 },
  756 +- { .offset = 0x1107c1, .val = 0 },
  757 +- { .offset = 0x2107c1, .val = 0 },
  758 +- { .offset = 0x108c1, .val = 0 },
  759 +- { .offset = 0x1108c1, .val = 0 },
  760 +- { .offset = 0x2108c1, .val = 0 },
  761 +- { .offset = 0x110c1, .val = 0 },
  762 +- { .offset = 0x1110c1, .val = 0 },
  763 +- { .offset = 0x2110c1, .val = 0 },
  764 +- { .offset = 0x111c1, .val = 0 },
  765 +- { .offset = 0x1111c1, .val = 0 },
  766 +- { .offset = 0x2111c1, .val = 0 },
  767 +- { .offset = 0x112c1, .val = 0 },
  768 +- { .offset = 0x1112c1, .val = 0 },
  769 +- { .offset = 0x2112c1, .val = 0 },
  770 +- { .offset = 0x113c1, .val = 0 },
  771 +- { .offset = 0x1113c1, .val = 0 },
  772 +- { .offset = 0x2113c1, .val = 0 },
  773 +- { .offset = 0x114c1, .val = 0 },
  774 +- { .offset = 0x1114c1, .val = 0 },
  775 +- { .offset = 0x2114c1, .val = 0 },
  776 +- { .offset = 0x115c1, .val = 0 },
  777 +- { .offset = 0x1115c1, .val = 0 },
  778 +- { .offset = 0x2115c1, .val = 0 },
  779 +- { .offset = 0x116c1, .val = 0 },
  780 +- { .offset = 0x1116c1, .val = 0 },
  781 +- { .offset = 0x2116c1, .val = 0 },
  782 +- { .offset = 0x117c1, .val = 0 },
  783 +- { .offset = 0x1117c1, .val = 0 },
  784 +- { .offset = 0x2117c1, .val = 0 },
  785 +- { .offset = 0x118c1, .val = 0 },
  786 +- { .offset = 0x1118c1, .val = 0 },
  787 +- { .offset = 0x2118c1, .val = 0 },
  788 +- { .offset = 0x120c1, .val = 0 },
  789 +- { .offset = 0x1120c1, .val = 0 },
  790 +- { .offset = 0x2120c1, .val = 0 },
  791 +- { .offset = 0x121c1, .val = 0 },
  792 +- { .offset = 0x1121c1, .val = 0 },
  793 +- { .offset = 0x2121c1, .val = 0 },
  794 +- { .offset = 0x122c1, .val = 0 },
  795 +- { .offset = 0x1122c1, .val = 0 },
  796 +- { .offset = 0x2122c1, .val = 0 },
  797 +- { .offset = 0x123c1, .val = 0 },
  798 +- { .offset = 0x1123c1, .val = 0 },
  799 +- { .offset = 0x2123c1, .val = 0 },
  800 +- { .offset = 0x124c1, .val = 0 },
  801 +- { .offset = 0x1124c1, .val = 0 },
  802 +- { .offset = 0x2124c1, .val = 0 },
  803 +- { .offset = 0x125c1, .val = 0 },
  804 +- { .offset = 0x1125c1, .val = 0 },
  805 +- { .offset = 0x2125c1, .val = 0 },
  806 +- { .offset = 0x126c1, .val = 0 },
  807 +- { .offset = 0x1126c1, .val = 0 },
  808 +- { .offset = 0x2126c1, .val = 0 },
  809 +- { .offset = 0x127c1, .val = 0 },
  810 +- { .offset = 0x1127c1, .val = 0 },
  811 +- { .offset = 0x2127c1, .val = 0 },
  812 +- { .offset = 0x128c1, .val = 0 },
  813 +- { .offset = 0x1128c1, .val = 0 },
  814 +- { .offset = 0x2128c1, .val = 0 },
  815 +- { .offset = 0x130c1, .val = 0 },
  816 +- { .offset = 0x1130c1, .val = 0 },
  817 +- { .offset = 0x2130c1, .val = 0 },
  818 +- { .offset = 0x131c1, .val = 0 },
  819 +- { .offset = 0x1131c1, .val = 0 },
  820 +- { .offset = 0x2131c1, .val = 0 },
  821 +- { .offset = 0x132c1, .val = 0 },
  822 +- { .offset = 0x1132c1, .val = 0 },
  823 +- { .offset = 0x2132c1, .val = 0 },
  824 +- { .offset = 0x133c1, .val = 0 },
  825 +- { .offset = 0x1133c1, .val = 0 },
  826 +- { .offset = 0x2133c1, .val = 0 },
  827 +- { .offset = 0x134c1, .val = 0 },
  828 +- { .offset = 0x1134c1, .val = 0 },
  829 +- { .offset = 0x2134c1, .val = 0 },
  830 +- { .offset = 0x135c1, .val = 0 },
  831 +- { .offset = 0x1135c1, .val = 0 },
  832 +- { .offset = 0x2135c1, .val = 0 },
  833 +- { .offset = 0x136c1, .val = 0 },
  834 +- { .offset = 0x1136c1, .val = 0 },
  835 +- { .offset = 0x2136c1, .val = 0 },
  836 +- { .offset = 0x137c1, .val = 0 },
  837 +- { .offset = 0x1137c1, .val = 0 },
  838 +- { .offset = 0x2137c1, .val = 0 },
  839 +- { .offset = 0x138c1, .val = 0 },
  840 +- { .offset = 0x1138c1, .val = 0 },
  841 +- { .offset = 0x2138c1, .val = 0 },
  842 +- { .offset = 0x10020, .val = 0 },
  843 +- { .offset = 0x110020, .val = 0 },
  844 +- { .offset = 0x210020, .val = 0 },
  845 +- { .offset = 0x11020, .val = 0 },
  846 +- { .offset = 0x111020, .val = 0 },
  847 +- { .offset = 0x211020, .val = 0 },
  848 +- { .offset = 0x12020, .val = 0 },
  849 +- { .offset = 0x112020, .val = 0 },
  850 +- { .offset = 0x212020, .val = 0 },
  851 +- { .offset = 0x13020, .val = 0 },
  852 +- { .offset = 0x113020, .val = 0 },
  853 +- { .offset = 0x213020, .val = 0 },
  854 +- { .offset = 0x20072, .val = 0 },
  855 +- { .offset = 0x20073, .val = 0 },
  856 +- { .offset = 0x20074, .val = 0 },
  857 +- { .offset = 0x100aa, .val = 0 },
  858 +- { .offset = 0x110aa, .val = 0 },
  859 +- { .offset = 0x120aa, .val = 0 },
  860 +- { .offset = 0x130aa, .val = 0 },
  861 +- { .offset = 0x20010, .val = 0 },
  862 +- { .offset = 0x120010, .val = 0 },
  863 +- { .offset = 0x220010, .val = 0 },
  864 +- { .offset = 0x20011, .val = 0 },
  865 +- { .offset = 0x120011, .val = 0 },
  866 +- { .offset = 0x220011, .val = 0 },
  867 +- { .offset = 0x100ae, .val = 0 },
  868 +- { .offset = 0x1100ae, .val = 0 },
  869 +- { .offset = 0x2100ae, .val = 0 },
  870 +- { .offset = 0x100af, .val = 0 },
  871 +- { .offset = 0x1100af, .val = 0 },
  872 +- { .offset = 0x2100af, .val = 0 },
  873 +- { .offset = 0x110ae, .val = 0 },
  874 +- { .offset = 0x1110ae, .val = 0 },
  875 +- { .offset = 0x2110ae, .val = 0 },
  876 +- { .offset = 0x110af, .val = 0 },
  877 +- { .offset = 0x1110af, .val = 0 },
  878 +- { .offset = 0x2110af, .val = 0 },
  879 +- { .offset = 0x120ae, .val = 0 },
  880 +- { .offset = 0x1120ae, .val = 0 },
  881 +- { .offset = 0x2120ae, .val = 0 },
  882 +- { .offset = 0x120af, .val = 0 },
  883 +- { .offset = 0x1120af, .val = 0 },
  884 +- { .offset = 0x2120af, .val = 0 },
  885 +- { .offset = 0x130ae, .val = 0 },
  886 +- { .offset = 0x1130ae, .val = 0 },
  887 +- { .offset = 0x2130ae, .val = 0 },
  888 +- { .offset = 0x130af, .val = 0 },
  889 +- { .offset = 0x1130af, .val = 0 },
  890 +- { .offset = 0x2130af, .val = 0 },
  891 +- { .offset = 0x20020, .val = 0 },
  892 +- { .offset = 0x120020, .val = 0 },
  893 +- { .offset = 0x220020, .val = 0 },
  894 +- { .offset = 0x100a0, .val = 0 },
  895 +- { .offset = 0x100a1, .val = 0 },
  896 +- { .offset = 0x100a2, .val = 0 },
  897 +- { .offset = 0x100a3, .val = 0 },
  898 +- { .offset = 0x100a4, .val = 0 },
  899 +- { .offset = 0x100a5, .val = 0 },
  900 +- { .offset = 0x100a6, .val = 0 },
  901 +- { .offset = 0x100a7, .val = 0 },
  902 +- { .offset = 0x110a0, .val = 0 },
  903 +- { .offset = 0x110a1, .val = 0 },
  904 +- { .offset = 0x110a2, .val = 0 },
  905 +- { .offset = 0x110a3, .val = 0 },
  906 +- { .offset = 0x110a4, .val = 0 },
  907 +- { .offset = 0x110a5, .val = 0 },
  908 +- { .offset = 0x110a6, .val = 0 },
  909 +- { .offset = 0x110a7, .val = 0 },
  910 +- { .offset = 0x120a0, .val = 0 },
  911 +- { .offset = 0x120a1, .val = 0 },
  912 +- { .offset = 0x120a2, .val = 0 },
  913 +- { .offset = 0x120a3, .val = 0 },
  914 +- { .offset = 0x120a4, .val = 0 },
  915 +- { .offset = 0x120a5, .val = 0 },
  916 +- { .offset = 0x120a6, .val = 0 },
  917 +- { .offset = 0x120a7, .val = 0 },
  918 +- { .offset = 0x130a0, .val = 0 },
  919 +- { .offset = 0x130a1, .val = 0 },
  920 +- { .offset = 0x130a2, .val = 0 },
  921 +- { .offset = 0x130a3, .val = 0 },
  922 +- { .offset = 0x130a4, .val = 0 },
  923 +- { .offset = 0x130a5, .val = 0 },
  924 +- { .offset = 0x130a6, .val = 0 },
  925 +- { .offset = 0x130a7, .val = 0 },
  926 +- { .offset = 0x2007c, .val = 0 },
  927 +- { .offset = 0x12007c, .val = 0 },
  928 +- { .offset = 0x22007c, .val = 0 },
  929 +- { .offset = 0x2007d, .val = 0 },
  930 +- { .offset = 0x12007d, .val = 0 },
  931 +- { .offset = 0x22007d, .val = 0 },
  932 +- { .offset = 0x400fd, .val = 0 },
  933 +- { .offset = 0x400c0, .val = 0 },
  934 +- { .offset = 0x90201, .val = 0 },
  935 +- { .offset = 0x190201, .val = 0 },
  936 +- { .offset = 0x290201, .val = 0 },
  937 +- { .offset = 0x90202, .val = 0 },
  938 +- { .offset = 0x190202, .val = 0 },
  939 +- { .offset = 0x290202, .val = 0 },
  940 +- { .offset = 0x90203, .val = 0 },
  941 +- { .offset = 0x190203, .val = 0 },
  942 +- { .offset = 0x290203, .val = 0 },
  943 +- { .offset = 0x90204, .val = 0 },
  944 +- { .offset = 0x190204, .val = 0 },
  945 +- { .offset = 0x290204, .val = 0 },
  946 +- { .offset = 0x90205, .val = 0 },
  947 +- { .offset = 0x190205, .val = 0 },
  948 +- { .offset = 0x290205, .val = 0 },
  949 +- { .offset = 0x90206, .val = 0 },
  950 +- { .offset = 0x190206, .val = 0 },
  951 +- { .offset = 0x290206, .val = 0 },
  952 +- { .offset = 0x90207, .val = 0 },
  953 +- { .offset = 0x190207, .val = 0 },
  954 +- { .offset = 0x290207, .val = 0 },
  955 +- { .offset = 0x90208, .val = 0 },
  956 +- { .offset = 0x190208, .val = 0 },
  957 +- { .offset = 0x290208, .val = 0 },
  958 +- { .offset = 0x10062, .val = 0 },
  959 +- { .offset = 0x10162, .val = 0 },
  960 +- { .offset = 0x10262, .val = 0 },
  961 +- { .offset = 0x10362, .val = 0 },
  962 +- { .offset = 0x10462, .val = 0 },
  963 +- { .offset = 0x10562, .val = 0 },
  964 +- { .offset = 0x10662, .val = 0 },
  965 +- { .offset = 0x10762, .val = 0 },
  966 +- { .offset = 0x10862, .val = 0 },
  967 +- { .offset = 0x11062, .val = 0 },
  968 +- { .offset = 0x11162, .val = 0 },
  969 +- { .offset = 0x11262, .val = 0 },
  970 +- { .offset = 0x11362, .val = 0 },
  971 +- { .offset = 0x11462, .val = 0 },
  972 +- { .offset = 0x11562, .val = 0 },
  973 +- { .offset = 0x11662, .val = 0 },
  974 +- { .offset = 0x11762, .val = 0 },
  975 +- { .offset = 0x11862, .val = 0 },
  976 +- { .offset = 0x12062, .val = 0 },
  977 +- { .offset = 0x12162, .val = 0 },
  978 +- { .offset = 0x12262, .val = 0 },
  979 +- { .offset = 0x12362, .val = 0 },
  980 +- { .offset = 0x12462, .val = 0 },
  981 +- { .offset = 0x12562, .val = 0 },
  982 +- { .offset = 0x12662, .val = 0 },
  983 +- { .offset = 0x12762, .val = 0 },
  984 +- { .offset = 0x12862, .val = 0 },
  985 +- { .offset = 0x13062, .val = 0 },
  986 +- { .offset = 0x13162, .val = 0 },
  987 +- { .offset = 0x13262, .val = 0 },
  988 +- { .offset = 0x13362, .val = 0 },
  989 +- { .offset = 0x13462, .val = 0 },
  990 +- { .offset = 0x13562, .val = 0 },
  991 +- { .offset = 0x13662, .val = 0 },
  992 +- { .offset = 0x13762, .val = 0 },
  993 +- { .offset = 0x13862, .val = 0 },
  994 +- { .offset = 0x20077, .val = 0 },
  995 +- { .offset = 0x10001, .val = 0 },
  996 +- { .offset = 0x11001, .val = 0 },
  997 +- { .offset = 0x12001, .val = 0 },
  998 +- { .offset = 0x13001, .val = 0 },
  999 +- { .offset = 0x10040, .val = 0 },
  1000 +- { .offset = 0x10140, .val = 0 },
  1001 +- { .offset = 0x10240, .val = 0 },
  1002 +- { .offset = 0x10340, .val = 0 },
  1003 +- { .offset = 0x10440, .val = 0 },
  1004 +- { .offset = 0x10540, .val = 0 },
  1005 +- { .offset = 0x10640, .val = 0 },
  1006 +- { .offset = 0x10740, .val = 0 },
  1007 +- { .offset = 0x10840, .val = 0 },
  1008 +- { .offset = 0x10030, .val = 0 },
  1009 +- { .offset = 0x10130, .val = 0 },
  1010 +- { .offset = 0x10230, .val = 0 },
  1011 +- { .offset = 0x10330, .val = 0 },
  1012 +- { .offset = 0x10430, .val = 0 },
  1013 +- { .offset = 0x10530, .val = 0 },
  1014 +- { .offset = 0x10630, .val = 0 },
  1015 +- { .offset = 0x10730, .val = 0 },
  1016 +- { .offset = 0x10830, .val = 0 },
  1017 +- { .offset = 0x11040, .val = 0 },
  1018 +- { .offset = 0x11140, .val = 0 },
  1019 +- { .offset = 0x11240, .val = 0 },
  1020 +- { .offset = 0x11340, .val = 0 },
  1021 +- { .offset = 0x11440, .val = 0 },
  1022 +- { .offset = 0x11540, .val = 0 },
  1023 +- { .offset = 0x11640, .val = 0 },
  1024 +- { .offset = 0x11740, .val = 0 },
  1025 +- { .offset = 0x11840, .val = 0 },
  1026 +- { .offset = 0x11030, .val = 0 },
  1027 +- { .offset = 0x11130, .val = 0 },
  1028 +- { .offset = 0x11230, .val = 0 },
  1029 +- { .offset = 0x11330, .val = 0 },
  1030 +- { .offset = 0x11430, .val = 0 },
  1031 +- { .offset = 0x11530, .val = 0 },
  1032 +- { .offset = 0x11630, .val = 0 },
  1033 +- { .offset = 0x11730, .val = 0 },
  1034 +- { .offset = 0x11830, .val = 0 },
  1035 +- { .offset = 0x12040, .val = 0 },
  1036 +- { .offset = 0x12140, .val = 0 },
  1037 +- { .offset = 0x12240, .val = 0 },
  1038 +- { .offset = 0x12340, .val = 0 },
  1039 +- { .offset = 0x12440, .val = 0 },
  1040 +- { .offset = 0x12540, .val = 0 },
  1041 +- { .offset = 0x12640, .val = 0 },
  1042 +- { .offset = 0x12740, .val = 0 },
  1043 +- { .offset = 0x12840, .val = 0 },
  1044 +- { .offset = 0x12030, .val = 0 },
  1045 +- { .offset = 0x12130, .val = 0 },
  1046 +- { .offset = 0x12230, .val = 0 },
  1047 +- { .offset = 0x12330, .val = 0 },
  1048 +- { .offset = 0x12430, .val = 0 },
  1049 +- { .offset = 0x12530, .val = 0 },
  1050 +- { .offset = 0x12630, .val = 0 },
  1051 +- { .offset = 0x12730, .val = 0 },
  1052 +- { .offset = 0x12830, .val = 0 },
  1053 +- { .offset = 0x13040, .val = 0 },
  1054 +- { .offset = 0x13140, .val = 0 },
  1055 +- { .offset = 0x13240, .val = 0 },
  1056 +- { .offset = 0x13340, .val = 0 },
  1057 +- { .offset = 0x13440, .val = 0 },
  1058 +- { .offset = 0x13540, .val = 0 },
  1059 +- { .offset = 0x13640, .val = 0 },
  1060 +- { .offset = 0x13740, .val = 0 },
  1061 +- { .offset = 0x13840, .val = 0 },
  1062 +- { .offset = 0x13030, .val = 0 },
  1063 +- { .offset = 0x13130, .val = 0 },
  1064 +- { .offset = 0x13230, .val = 0 },
  1065 +- { .offset = 0x13330, .val = 0 },
  1066 +- { .offset = 0x13430, .val = 0 },
  1067 +- { .offset = 0x13530, .val = 0 },
  1068 +- { .offset = 0x13630, .val = 0 },
  1069 +- { .offset = 0x13730, .val = 0 },
  1070 +- { .offset = 0x13830, .val = 0 },
  1071 ++ { .offset = 0x100a0, .val = 0x0 }, //DDR_PHY_Dq0LnSel_0
  1072 ++ { .offset = 0x100a1, .val = 0x0 }, //DDR_PHY_Dq1LnSel_0
  1073 ++ { .offset = 0x100a2, .val = 0x0 }, //DDR_PHY_Dq2LnSel_0
  1074 ++ { .offset = 0x100a3, .val = 0x0 }, //DDR_PHY_Dq3LnSel_0
  1075 ++ { .offset = 0x100a4, .val = 0x0 }, //DDR_PHY_Dq4LnSel_0
  1076 ++ { .offset = 0x100a5, .val = 0x0 }, //DDR_PHY_Dq5LnSel_0
  1077 ++ { .offset = 0x100a6, .val = 0x0 }, //DDR_PHY_Dq6LnSel_0
  1078 ++ { .offset = 0x100a7, .val = 0x0 }, //DDR_PHY_Dq7LnSel_0
  1079 ++ { .offset = 0x110a0, .val = 0x0 }, //DDR_PHY_Dq0LnSel_1
  1080 ++ { .offset = 0x110a1, .val = 0x0 }, //DDR_PHY_Dq1LnSel_1
  1081 ++ { .offset = 0x110a2, .val = 0x0 }, //DDR_PHY_Dq2LnSel_1
  1082 ++ { .offset = 0x110a3, .val = 0x0 }, //DDR_PHY_Dq3LnSel_1
  1083 ++ { .offset = 0x110a4, .val = 0x0 }, //DDR_PHY_Dq4LnSel_1
  1084 ++ { .offset = 0x110a5, .val = 0x0 }, //DDR_PHY_Dq5LnSel_1
  1085 ++ { .offset = 0x110a6, .val = 0x0 }, //DDR_PHY_Dq6LnSel_1
  1086 ++ { .offset = 0x110a7, .val = 0x0 }, //DDR_PHY_Dq7LnSel_1
  1087 ++ { .offset = 0x120a0, .val = 0x0 }, //DDR_PHY_Dq0LnSel_2
  1088 ++ { .offset = 0x120a1, .val = 0x0 }, //DDR_PHY_Dq1LnSel_2
  1089 ++ { .offset = 0x120a2, .val = 0x0 }, //DDR_PHY_Dq2LnSel_2
  1090 ++ { .offset = 0x120a3, .val = 0x0 }, //DDR_PHY_Dq3LnSel_2
  1091 ++ { .offset = 0x120a4, .val = 0x0 }, //DDR_PHY_Dq4LnSel_2
  1092 ++ { .offset = 0x120a5, .val = 0x0 }, //DDR_PHY_Dq5LnSel_2
  1093 ++ { .offset = 0x120a6, .val = 0x0 }, //DDR_PHY_Dq6LnSel_2
  1094 ++ { .offset = 0x120a7, .val = 0x0 }, //DDR_PHY_Dq7LnSel_2
  1095 ++ { .offset = 0x130a0, .val = 0x0 }, //DDR_PHY_Dq0LnSel_3
  1096 ++ { .offset = 0x130a1, .val = 0x0 }, //DDR_PHY_Dq1LnSel_3
  1097 ++ { .offset = 0x130a2, .val = 0x0 }, //DDR_PHY_Dq2LnSel_3
  1098 ++ { .offset = 0x130a3, .val = 0x0 }, //DDR_PHY_Dq3LnSel_3
  1099 ++ { .offset = 0x130a4, .val = 0x0 }, //DDR_PHY_Dq4LnSel_3
  1100 ++ { .offset = 0x130a5, .val = 0x0 }, //DDR_PHY_Dq5LnSel_3
  1101 ++ { .offset = 0x130a6, .val = 0x0 }, //DDR_PHY_Dq6LnSel_3
  1102 ++ { .offset = 0x130a7, .val = 0x0 }, //DDR_PHY_Dq7LnSel_3
  1103 ++
  1104 ++ { .offset = 0x80, .val = 0 }, // DWC_DDRPHYA_ANIB0_ATxDly_P0
  1105 ++ { .offset = 0x100080, .val = 0 }, // DWC_DDRPHYA_ANIB0_ATxDly_P1
  1106 ++ { .offset = 0x200080, .val = 0 }, // DWC_DDRPHYA_ANIB0_ATxDly_P2
  1107 ++ { .offset = 0x1080, .val = 0 }, // DWC_DDRPHYA_ANIB1_ATxDly_P0
  1108 ++ { .offset = 0x101080, .val = 0 }, // DWC_DDRPHYA_ANIB1_ATxDly_P0
  1109 ++ { .offset = 0x201080, .val = 0 }, // DWC_DDRPHYA_ANIB1_ATxDly_P2
  1110 ++ { .offset = 0x2080, .val = 0 }, // DWC_DDRPHYA_ANIB2_ATxDly_P0
  1111 ++ { .offset = 0x102080, .val = 0 }, // DWC_DDRPHYA_ANIB2_ATxDly_P1
  1112 ++ { .offset = 0x202080, .val = 0 }, // DWC_DDRPHYA_ANIB2_ATxDly_P2
  1113 ++ { .offset = 0x3080, .val = 0 }, // DWC_DDRPHYA_ANIB3_ATxDly_P0
  1114 ++ { .offset = 0x103080, .val = 0 }, // DWC_DDRPHYA_ANIB3_ATxDly_P1
  1115 ++ { .offset = 0x203080, .val = 0 }, // DWC_DDRPHYA_ANIB3_ATxDly_P2
  1116 ++ { .offset = 0x4080, .val = 0 }, // DWC_DDRPHYA_ANIB4_ATxDly_P0
  1117 ++ { .offset = 0x104080, .val = 0 }, // DWC_DDRPHYA_ANIB4_ATxDly_P1
  1118 ++ { .offset = 0x204080, .val = 0 }, // DWC_DDRPHYA_ANIB4_ATxDly_P2
  1119 ++ { .offset = 0x5080, .val = 0 }, // DWC_DDRPHYA_ANIB5_ATxDly_P0
  1120 ++ { .offset = 0x105080, .val = 0 }, // DWC_DDRPHYA_ANIB5_ATxDly_P1
  1121 ++ { .offset = 0x205080, .val = 0 }, // DWC_DDRPHYA_ANIB5_ATxDly_P2
  1122 ++ { .offset = 0x6080, .val = 0 }, // DWC_DDRPHYA_ANIB6_ATxDly_P0
  1123 ++ { .offset = 0x106080, .val = 0 }, // DWC_DDRPHYA_ANIB6_ATxDly_P1
  1124 ++ { .offset = 0x206080, .val = 0 }, // DWC_DDRPHYA_ANIB6_ATxDly_P2
  1125 ++ { .offset = 0x7080, .val = 0 }, // DWC_DDRPHYA_ANIB7_ATxDly_P0
  1126 ++ { .offset = 0x107080, .val = 0 }, // DWC_DDRPHYA_ANIB7_ATxDly_P1
  1127 ++ { .offset = 0x207080, .val = 0 }, // DWC_DDRPHYA_ANIB7_ATxDly_P2
  1128 ++ { .offset = 0x8080, .val = 0 }, // DWC_DDRPHYA_ANIB8_ATxDly_P0
  1129 ++ { .offset = 0x108080, .val = 0 }, // DWC_DDRPHYA_ANIB8_ATxDly_P1
  1130 ++ { .offset = 0x208080, .val = 0 }, // DWC_DDRPHYA_ANIB8_ATxDly_P2
  1131 ++ { .offset = 0x9080, .val = 0 }, // DWC_DDRPHYA_ANIB9_ATxDly_P0
  1132 ++ { .offset = 0x109080, .val = 0 }, // DWC_DDRPHYA_ANIB9_ATxDly_P1
  1133 ++ { .offset = 0x209080, .val = 0 }, // DWC_DDRPHYA_ANIB9_ATxDly_P2
  1134 ++
  1135 ++ { .offset = 0x10080, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b0_P0
  1136 ++ { .offset = 0x110080, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b0_P1
  1137 ++ { .offset = 0x210080, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b0_P2
  1138 ++ { .offset = 0x10180, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b1_P0
  1139 ++ { .offset = 0x110180, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b1_P1
  1140 ++ { .offset = 0x210180, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b1_P2
  1141 ++ { .offset = 0x11080, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b0_P0
  1142 ++ { .offset = 0x111080, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b0_P1
  1143 ++ { .offset = 0x211080, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b0_P2
  1144 ++ { .offset = 0x11180, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b1_P0
  1145 ++ { .offset = 0x111180, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b1_P1
  1146 ++ { .offset = 0x211180, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b1_P2
  1147 ++ { .offset = 0x12080, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b0_P0
  1148 ++ { .offset = 0x112080, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b0_P1
  1149 ++ { .offset = 0x212080, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b0_P2
  1150 ++ { .offset = 0x12180, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b1_P0
  1151 ++ { .offset = 0x112180, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b1_P1
  1152 ++ { .offset = 0x212180, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b1_P2
  1153 ++ { .offset = 0x13080, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b0_P0
  1154 ++ { .offset = 0x113080, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b0_P1
  1155 ++ { .offset = 0x213080, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b0_P2
  1156 ++ { .offset = 0x13180, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b1_P0
  1157 ++ { .offset = 0x113180, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b1_P1
  1158 ++ { .offset = 0x213180, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b1_P2
  1159 ++
  1160 ++ { .offset = 0x10081, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b0_P0
  1161 ++ { .offset = 0x110081, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b0_P1
  1162 ++ { .offset = 0x210081, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b0_P2
  1163 ++ { .offset = 0x10181, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b1_P0
  1164 ++ { .offset = 0x110181, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b1_P1
  1165 ++ { .offset = 0x210181, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b1_P2
  1166 ++ { .offset = 0x11081, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b0_P0
  1167 ++ { .offset = 0x111081, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b0_P1
  1168 ++ { .offset = 0x211081, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b0_P2
  1169 ++ { .offset = 0x11181, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b1_P0
  1170 ++ { .offset = 0x111181, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b1_P1
  1171 ++ { .offset = 0x211181, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b1_P2
  1172 ++ { .offset = 0x12081, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b0_P0
  1173 ++ { .offset = 0x112081, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b0_P1
  1174 ++ { .offset = 0x212081, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b0_P2
  1175 ++ { .offset = 0x12181, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b1_P0
  1176 ++ { .offset = 0x112181, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b1_P1
  1177 ++ { .offset = 0x212181, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b1_P2
  1178 ++ { .offset = 0x13081, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b0_P0
  1179 ++ { .offset = 0x113081, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b0_P1
  1180 ++ { .offset = 0x213081, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b0_P2
  1181 ++ { .offset = 0x13181, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b1_P0
  1182 ++ { .offset = 0x113181, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b1_P1
  1183 ++ { .offset = 0x213181, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b1_P2
  1184 ++
  1185 ++ { .offset = 0x100d0, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b0_P0
  1186 ++ { .offset = 0x1100d0, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b0_P1,
  1187 ++ { .offset = 0x2100d0, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b0_P2,
  1188 ++ { .offset = 0x101d0, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b1_P0
  1189 ++ { .offset = 0x1101d0, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b1_P1,
  1190 ++ { .offset = 0x2101d0, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b1_P2,
  1191 ++ { .offset = 0x110d0, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b0_P0
  1192 ++ { .offset = 0x1110d0, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b0_P1,
  1193 ++ { .offset = 0x2110d0, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b0_P2,
  1194 ++ { .offset = 0x111d0, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b1_P0
  1195 ++ { .offset = 0x1111d0, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b1_P1,
  1196 ++ { .offset = 0x2111d0, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b1_P2,
  1197 ++ { .offset = 0x120d0, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b0_P0
  1198 ++ { .offset = 0x1120d0, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b0_P1,
  1199 ++ { .offset = 0x2120d0, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b0_P2,
  1200 ++ { .offset = 0x121d0, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b1_P0
  1201 ++ { .offset = 0x1121d0, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b1_P1,
  1202 ++ { .offset = 0x2121d0, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b1_P2,
  1203 ++ { .offset = 0x130d0, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b0_P0
  1204 ++ { .offset = 0x1130d0, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b0_P1,
  1205 ++ { .offset = 0x2130d0, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b0_P2,
  1206 ++ { .offset = 0x131d0, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b1_P0
  1207 ++ { .offset = 0x1131d0, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b1_P1,
  1208 ++ { .offset = 0x2131d0, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b1_P2,
  1209 ++
  1210 ++ { .offset = 0x100d1, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b0_P0
  1211 ++ { .offset = 0x1100d1, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b0_P1,
  1212 ++ { .offset = 0x2100d1, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b0_P2,
  1213 ++ { .offset = 0x101d1, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b1_P0
  1214 ++ { .offset = 0x1101d1, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b1_P1,
  1215 ++ { .offset = 0x2101d1, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b1_P2,
  1216 ++ { .offset = 0x110d1, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b0_P0
  1217 ++ { .offset = 0x1110d1, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b0_P1,
  1218 ++ { .offset = 0x2110d1, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b0_P2,
  1219 ++ { .offset = 0x111d1, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b1_P0
  1220 ++ { .offset = 0x1111d1, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b1_P1,
  1221 ++ { .offset = 0x2111d1, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b1_P2,
  1222 ++ { .offset = 0x120d1, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b0_P0
  1223 ++ { .offset = 0x1120d1, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b0_P1,
  1224 ++ { .offset = 0x2120d1, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b0_P2,
  1225 ++ { .offset = 0x121d1, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b1_P0
  1226 ++ { .offset = 0x1121d1, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b1_P1,
  1227 ++ { .offset = 0x2121d1, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b1_P2,
  1228 ++ { .offset = 0x130d1, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b0_P0
  1229 ++ { .offset = 0x1130d1, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b0_P1,
  1230 ++ { .offset = 0x2130d1, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b0_P2,
  1231 ++ { .offset = 0x131d1, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b1_P0
  1232 ++ { .offset = 0x1131d1, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b1_P1,
  1233 ++ { .offset = 0x2131d1, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b1_P2,
  1234 ++
  1235 ++ { .offset = 0x10068, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b0
  1236 ++ { .offset = 0x10168, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b1
  1237 ++ { .offset = 0x10268, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b2
  1238 ++ { .offset = 0x10368, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b3
  1239 ++ { .offset = 0x10468, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b4
  1240 ++ { .offset = 0x10568, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b5
  1241 ++ { .offset = 0x10668, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b6
  1242 ++ { .offset = 0x10768, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b7
  1243 ++ { .offset = 0x10868, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_dbi
  1244 ++ { .offset = 0x11068, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b0
  1245 ++ { .offset = 0x11168, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b1
  1246 ++ { .offset = 0x11268, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b2
  1247 ++ { .offset = 0x11368, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b3
  1248 ++ { .offset = 0x11468, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b4
  1249 ++ { .offset = 0x11568, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b5
  1250 ++ { .offset = 0x11668, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b6
  1251 ++ { .offset = 0x11768, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b7
  1252 ++ { .offset = 0x11868, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_dbi
  1253 ++ { .offset = 0x12068, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b0
  1254 ++ { .offset = 0x12168, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b1
  1255 ++ { .offset = 0x12268, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b2
  1256 ++ { .offset = 0x12368, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b3
  1257 ++ { .offset = 0x12468, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b4
  1258 ++ { .offset = 0x12568, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b5
  1259 ++ { .offset = 0x12668, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b6
  1260 ++ { .offset = 0x12768, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b7
  1261 ++ { .offset = 0x12868, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_dbi
  1262 ++ { .offset = 0x13068, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b0
  1263 ++ { .offset = 0x13168, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b1
  1264 ++ { .offset = 0x13268, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b2
  1265 ++ { .offset = 0x13368, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b3
  1266 ++ { .offset = 0x13468, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b4
  1267 ++ { .offset = 0x13568, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b5
  1268 ++ { .offset = 0x13668, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b6
  1269 ++ { .offset = 0x13768, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b7
  1270 ++ { .offset = 0x13868, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_dbi
  1271 ++
  1272 ++ { .offset = 0x10069, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b0
  1273 ++ { .offset = 0x10169, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b1
  1274 ++ { .offset = 0x10269, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b2
  1275 ++ { .offset = 0x10369, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b3
  1276 ++ { .offset = 0x10469, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b4
  1277 ++ { .offset = 0x10569, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b5
  1278 ++ { .offset = 0x10669, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b6
  1279 ++ { .offset = 0x10769, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b7
  1280 ++ { .offset = 0x10869, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_dbi
  1281 ++ { .offset = 0x11069, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b0
  1282 ++ { .offset = 0x11169, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b1
  1283 ++ { .offset = 0x11269, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b2
  1284 ++ { .offset = 0x11369, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b3
  1285 ++ { .offset = 0x11469, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b4
  1286 ++ { .offset = 0x11569, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b5
  1287 ++ { .offset = 0x11669, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b6
  1288 ++ { .offset = 0x11769, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b7
  1289 ++ { .offset = 0x11869, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_dbi
  1290 ++ { .offset = 0x12069, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b0
  1291 ++ { .offset = 0x12169, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b1
  1292 ++ { .offset = 0x12269, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b2
  1293 ++ { .offset = 0x12369, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b3
  1294 ++ { .offset = 0x12469, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b4
  1295 ++ { .offset = 0x12569, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b5
  1296 ++ { .offset = 0x12669, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b6
  1297 ++ { .offset = 0x12769, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b7
  1298 ++ { .offset = 0x12869, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_dbi
  1299 ++ { .offset = 0x13069, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b0
  1300 ++ { .offset = 0x13169, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b1
  1301 ++ { .offset = 0x13269, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b2
  1302 ++ { .offset = 0x13369, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b3
  1303 ++ { .offset = 0x13469, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b4
  1304 ++ { .offset = 0x13569, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b5
  1305 ++ { .offset = 0x13669, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b6
  1306 ++ { .offset = 0x13769, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b7
  1307 ++ { .offset = 0x13869, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_dbi
  1308 ++
  1309 ++ { .offset = 0x1008c, .val = 0 },
  1310 ++ { .offset = 0x11008c, .val = 0 },
  1311 ++ { .offset = 0x21008c, .val = 0 },
  1312 ++ { .offset = 0x1018c, .val = 0 },
  1313 ++ { .offset = 0x11018c, .val = 0 },
  1314 ++ { .offset = 0x21018c, .val = 0 },
  1315 ++ { .offset = 0x1108c, .val = 0 },
  1316 ++ { .offset = 0x11108c, .val = 0 },
  1317 ++ { .offset = 0x21108c, .val = 0 },
  1318 ++ { .offset = 0x1118c, .val = 0 },
  1319 ++ { .offset = 0x11118c, .val = 0 },
  1320 ++ { .offset = 0x21118c, .val = 0 },
  1321 ++ { .offset = 0x1208c, .val = 0 },
  1322 ++ { .offset = 0x11208c, .val = 0 },
  1323 ++ { .offset = 0x21208c, .val = 0 },
  1324 ++ { .offset = 0x1218c, .val = 0 },
  1325 ++ { .offset = 0x11218c, .val = 0 },
  1326 ++ { .offset = 0x21218c, .val = 0 },
  1327 ++ { .offset = 0x1308c, .val = 0 },
  1328 ++ { .offset = 0x11308c, .val = 0 },
  1329 ++ { .offset = 0x21308c, .val = 0 },
  1330 ++ { .offset = 0x1318c, .val = 0 },
  1331 ++ { .offset = 0x11318c, .val = 0 },
  1332 ++ { .offset = 0x21318c, .val = 0 },
  1333 ++ { .offset = 0x1008d, .val = 0 },
  1334 ++ { .offset = 0x11008d, .val = 0 },
  1335 ++ { .offset = 0x21008d, .val = 0 },
  1336 ++ { .offset = 0x1018d, .val = 0 },
  1337 ++ { .offset = 0x11018d, .val = 0 },
  1338 ++ { .offset = 0x21018d, .val = 0 },
  1339 ++ { .offset = 0x1108d, .val = 0 },
  1340 ++ { .offset = 0x11108d, .val = 0 },
  1341 ++ { .offset = 0x21108d, .val = 0 },
  1342 ++ { .offset = 0x1118d, .val = 0 },
  1343 ++ { .offset = 0x11118d, .val = 0 },
  1344 ++ { .offset = 0x21118d, .val = 0 },
  1345 ++ { .offset = 0x1208d, .val = 0 },
  1346 ++ { .offset = 0x11208d, .val = 0 },
  1347 ++ { .offset = 0x21208d, .val = 0 },
  1348 ++ { .offset = 0x1218d, .val = 0 },
  1349 ++ { .offset = 0x11218d, .val = 0 },
  1350 ++ { .offset = 0x21218d, .val = 0 },
  1351 ++ { .offset = 0x1308d, .val = 0 },
  1352 ++ { .offset = 0x11308d, .val = 0 },
  1353 ++ { .offset = 0x21308d, .val = 0 },
  1354 ++ { .offset = 0x1318d, .val = 0 },
  1355 ++ { .offset = 0x11318d, .val = 0 },
  1356 ++ { .offset = 0x21318d, .val = 0 },
  1357 ++ { .offset = 0x100c0, .val = 0 },
  1358 ++ { .offset = 0x1100c0, .val = 0 },
  1359 ++ { .offset = 0x2100c0, .val = 0 },
  1360 ++ { .offset = 0x101c0, .val = 0 },
  1361 ++ { .offset = 0x1101c0, .val = 0 },
  1362 ++ { .offset = 0x2101c0, .val = 0 },
  1363 ++ { .offset = 0x102c0, .val = 0 },
  1364 ++ { .offset = 0x1102c0, .val = 0 },
  1365 ++ { .offset = 0x2102c0, .val = 0 },
  1366 ++ { .offset = 0x103c0, .val = 0 },
  1367 ++ { .offset = 0x1103c0, .val = 0 },
  1368 ++ { .offset = 0x2103c0, .val = 0 },
  1369 ++ { .offset = 0x104c0, .val = 0 },
  1370 ++ { .offset = 0x1104c0, .val = 0 },
  1371 ++ { .offset = 0x2104c0, .val = 0 },
  1372 ++ { .offset = 0x105c0, .val = 0 },
  1373 ++ { .offset = 0x1105c0, .val = 0 },
  1374 ++ { .offset = 0x2105c0, .val = 0 },
  1375 ++ { .offset = 0x106c0, .val = 0 },
  1376 ++ { .offset = 0x1106c0, .val = 0 },
  1377 ++ { .offset = 0x2106c0, .val = 0 },
  1378 ++ { .offset = 0x107c0, .val = 0 },
  1379 ++ { .offset = 0x1107c0, .val = 0 },
  1380 ++ { .offset = 0x2107c0, .val = 0 },
  1381 ++ { .offset = 0x108c0, .val = 0 },
  1382 ++ { .offset = 0x1108c0, .val = 0 },
  1383 ++ { .offset = 0x2108c0, .val = 0 },
  1384 ++ { .offset = 0x110c0, .val = 0 },
  1385 ++ { .offset = 0x1110c0, .val = 0 },
  1386 ++ { .offset = 0x2110c0, .val = 0 },
  1387 ++ { .offset = 0x111c0, .val = 0 },
  1388 ++ { .offset = 0x1111c0, .val = 0 },
  1389 ++ { .offset = 0x2111c0, .val = 0 },
  1390 ++ { .offset = 0x112c0, .val = 0 },
  1391 ++ { .offset = 0x1112c0, .val = 0 },
  1392 ++ { .offset = 0x2112c0, .val = 0 },
  1393 ++ { .offset = 0x113c0, .val = 0 },
  1394 ++ { .offset = 0x1113c0, .val = 0 },
  1395 ++ { .offset = 0x2113c0, .val = 0 },
  1396 ++ { .offset = 0x114c0, .val = 0 },
  1397 ++ { .offset = 0x1114c0, .val = 0 },
  1398 ++ { .offset = 0x2114c0, .val = 0 },
  1399 ++ { .offset = 0x115c0, .val = 0 },
  1400 ++ { .offset = 0x1115c0, .val = 0 },
  1401 ++ { .offset = 0x2115c0, .val = 0 },
  1402 ++ { .offset = 0x116c0, .val = 0 },
  1403 ++ { .offset = 0x1116c0, .val = 0 },
  1404 ++ { .offset = 0x2116c0, .val = 0 },
  1405 ++ { .offset = 0x117c0, .val = 0 },
  1406 ++ { .offset = 0x1117c0, .val = 0 },
  1407 ++ { .offset = 0x2117c0, .val = 0 },
  1408 ++ { .offset = 0x118c0, .val = 0 },
  1409 ++ { .offset = 0x1118c0, .val = 0 },
  1410 ++ { .offset = 0x2118c0, .val = 0 },
  1411 ++ { .offset = 0x120c0, .val = 0 },
  1412 ++ { .offset = 0x1120c0, .val = 0 },
  1413 ++ { .offset = 0x2120c0, .val = 0 },
  1414 ++ { .offset = 0x121c0, .val = 0 },
  1415 ++ { .offset = 0x1121c0, .val = 0 },
  1416 ++ { .offset = 0x2121c0, .val = 0 },
  1417 ++ { .offset = 0x122c0, .val = 0 },
  1418 ++ { .offset = 0x1122c0, .val = 0 },
  1419 ++ { .offset = 0x2122c0, .val = 0 },
  1420 ++ { .offset = 0x123c0, .val = 0 },
  1421 ++ { .offset = 0x1123c0, .val = 0 },
  1422 ++ { .offset = 0x2123c0, .val = 0 },
  1423 ++ { .offset = 0x124c0, .val = 0 },
  1424 ++ { .offset = 0x1124c0, .val = 0 },
  1425 ++ { .offset = 0x2124c0, .val = 0 },
  1426 ++ { .offset = 0x125c0, .val = 0 },
  1427 ++ { .offset = 0x1125c0, .val = 0 },
  1428 ++ { .offset = 0x2125c0, .val = 0 },
  1429 ++ { .offset = 0x126c0, .val = 0 },
  1430 ++ { .offset = 0x1126c0, .val = 0 },
  1431 ++ { .offset = 0x2126c0, .val = 0 },
  1432 ++ { .offset = 0x127c0, .val = 0 },
  1433 ++ { .offset = 0x1127c0, .val = 0 },
  1434 ++ { .offset = 0x2127c0, .val = 0 },
  1435 ++ { .offset = 0x128c0, .val = 0 },
  1436 ++ { .offset = 0x1128c0, .val = 0 },
  1437 ++ { .offset = 0x2128c0, .val = 0 },
  1438 ++ { .offset = 0x130c0, .val = 0 },
  1439 ++ { .offset = 0x1130c0, .val = 0 },
  1440 ++ { .offset = 0x2130c0, .val = 0 },
  1441 ++ { .offset = 0x131c0, .val = 0 },
  1442 ++ { .offset = 0x1131c0, .val = 0 },
  1443 ++ { .offset = 0x2131c0, .val = 0 },
  1444 ++ { .offset = 0x132c0, .val = 0 },
  1445 ++ { .offset = 0x1132c0, .val = 0 },
  1446 ++ { .offset = 0x2132c0, .val = 0 },
  1447 ++ { .offset = 0x133c0, .val = 0 },
  1448 ++ { .offset = 0x1133c0, .val = 0 },
  1449 ++ { .offset = 0x2133c0, .val = 0 },
  1450 ++ { .offset = 0x134c0, .val = 0 },
  1451 ++ { .offset = 0x1134c0, .val = 0 },
  1452 ++ { .offset = 0x2134c0, .val = 0 },
  1453 ++ { .offset = 0x135c0, .val = 0 },
  1454 ++ { .offset = 0x1135c0, .val = 0 },
  1455 ++ { .offset = 0x2135c0, .val = 0 },
  1456 ++ { .offset = 0x136c0, .val = 0 },
  1457 ++ { .offset = 0x1136c0, .val = 0 },
  1458 ++ { .offset = 0x2136c0, .val = 0 },
  1459 ++ { .offset = 0x137c0, .val = 0 },
  1460 ++ { .offset = 0x1137c0, .val = 0 },
  1461 ++ { .offset = 0x2137c0, .val = 0 },
  1462 ++ { .offset = 0x138c0, .val = 0 },
  1463 ++ { .offset = 0x1138c0, .val = 0 },
  1464 ++ { .offset = 0x2138c0, .val = 0 },
  1465 ++ { .offset = 0x100c1, .val = 0 },
  1466 ++ { .offset = 0x1100c1, .val = 0 },
  1467 ++ { .offset = 0x2100c1, .val = 0 },
  1468 ++ { .offset = 0x101c1, .val = 0 },
  1469 ++ { .offset = 0x1101c1, .val = 0 },
  1470 ++ { .offset = 0x2101c1, .val = 0 },
  1471 ++ { .offset = 0x102c1, .val = 0 },
  1472 ++ { .offset = 0x1102c1, .val = 0 },
  1473 ++ { .offset = 0x2102c1, .val = 0 },
  1474 ++ { .offset = 0x103c1, .val = 0 },
  1475 ++ { .offset = 0x1103c1, .val = 0 },
  1476 ++ { .offset = 0x2103c1, .val = 0 },
  1477 ++ { .offset = 0x104c1, .val = 0 },
  1478 ++ { .offset = 0x1104c1, .val = 0 },
  1479 ++ { .offset = 0x2104c1, .val = 0 },
  1480 ++ { .offset = 0x105c1, .val = 0 },
  1481 ++ { .offset = 0x1105c1, .val = 0 },
  1482 ++ { .offset = 0x2105c1, .val = 0 },
  1483 ++ { .offset = 0x106c1, .val = 0 },
  1484 ++ { .offset = 0x1106c1, .val = 0 },
  1485 ++ { .offset = 0x2106c1, .val = 0 },
  1486 ++ { .offset = 0x107c1, .val = 0 },
  1487 ++ { .offset = 0x1107c1, .val = 0 },
  1488 ++ { .offset = 0x2107c1, .val = 0 },
  1489 ++ { .offset = 0x108c1, .val = 0 },
  1490 ++ { .offset = 0x1108c1, .val = 0 },
  1491 ++ { .offset = 0x2108c1, .val = 0 },
  1492 ++ { .offset = 0x110c1, .val = 0 },
  1493 ++ { .offset = 0x1110c1, .val = 0 },
  1494 ++ { .offset = 0x2110c1, .val = 0 },
  1495 ++ { .offset = 0x111c1, .val = 0 },
  1496 ++ { .offset = 0x1111c1, .val = 0 },
  1497 ++ { .offset = 0x2111c1, .val = 0 },
  1498 ++ { .offset = 0x112c1, .val = 0 },
  1499 ++ { .offset = 0x1112c1, .val = 0 },
  1500 ++ { .offset = 0x2112c1, .val = 0 },
  1501 ++ { .offset = 0x113c1, .val = 0 },
  1502 ++ { .offset = 0x1113c1, .val = 0 },
  1503 ++ { .offset = 0x2113c1, .val = 0 },
  1504 ++ { .offset = 0x114c1, .val = 0 },
  1505 ++ { .offset = 0x1114c1, .val = 0 },
  1506 ++ { .offset = 0x2114c1, .val = 0 },
  1507 ++ { .offset = 0x115c1, .val = 0 },
  1508 ++ { .offset = 0x1115c1, .val = 0 },
  1509 ++ { .offset = 0x2115c1, .val = 0 },
  1510 ++ { .offset = 0x116c1, .val = 0 },
  1511 ++ { .offset = 0x1116c1, .val = 0 },
  1512 ++ { .offset = 0x2116c1, .val = 0 },
  1513 ++ { .offset = 0x117c1, .val = 0 },
  1514 ++ { .offset = 0x1117c1, .val = 0 },
  1515 ++ { .offset = 0x2117c1, .val = 0 },
  1516 ++ { .offset = 0x118c1, .val = 0 },
  1517 ++ { .offset = 0x1118c1, .val = 0 },
  1518 ++ { .offset = 0x2118c1, .val = 0 },
  1519 ++ { .offset = 0x120c1, .val = 0 },
  1520 ++ { .offset = 0x1120c1, .val = 0 },
  1521 ++ { .offset = 0x2120c1, .val = 0 },
  1522 ++ { .offset = 0x121c1, .val = 0 },
  1523 ++ { .offset = 0x1121c1, .val = 0 },
  1524 ++ { .offset = 0x2121c1, .val = 0 },
  1525 ++ { .offset = 0x122c1, .val = 0 },
  1526 ++ { .offset = 0x1122c1, .val = 0 },
  1527 ++ { .offset = 0x2122c1, .val = 0 },
  1528 ++ { .offset = 0x123c1, .val = 0 },
  1529 ++ { .offset = 0x1123c1, .val = 0 },
  1530 ++ { .offset = 0x2123c1, .val = 0 },
  1531 ++ { .offset = 0x124c1, .val = 0 },
  1532 ++ { .offset = 0x1124c1, .val = 0 },
  1533 ++ { .offset = 0x2124c1, .val = 0 },
  1534 ++ { .offset = 0x125c1, .val = 0 },
  1535 ++ { .offset = 0x1125c1, .val = 0 },
  1536 ++ { .offset = 0x2125c1, .val = 0 },
  1537 ++ { .offset = 0x126c1, .val = 0 },
  1538 ++ { .offset = 0x1126c1, .val = 0 },
  1539 ++ { .offset = 0x2126c1, .val = 0 },
  1540 ++ { .offset = 0x127c1, .val = 0 },
  1541 ++ { .offset = 0x1127c1, .val = 0 },
  1542 ++ { .offset = 0x2127c1, .val = 0 },
  1543 ++ { .offset = 0x128c1, .val = 0 },
  1544 ++ { .offset = 0x1128c1, .val = 0 },
  1545 ++ { .offset = 0x2128c1, .val = 0 },
  1546 ++ { .offset = 0x130c1, .val = 0 },
  1547 ++ { .offset = 0x1130c1, .val = 0 },
  1548 ++ { .offset = 0x2130c1, .val = 0 },
  1549 ++ { .offset = 0x131c1, .val = 0 },
  1550 ++ { .offset = 0x1131c1, .val = 0 },
  1551 ++ { .offset = 0x2131c1, .val = 0 },
  1552 ++ { .offset = 0x132c1, .val = 0 },
  1553 ++ { .offset = 0x1132c1, .val = 0 },
  1554 ++ { .offset = 0x2132c1, .val = 0 },
  1555 ++ { .offset = 0x133c1, .val = 0 },
  1556 ++ { .offset = 0x1133c1, .val = 0 },
  1557 ++ { .offset = 0x2133c1, .val = 0 },
  1558 ++ { .offset = 0x134c1, .val = 0 },
  1559 ++ { .offset = 0x1134c1, .val = 0 },
  1560 ++ { .offset = 0x2134c1, .val = 0 },
  1561 ++ { .offset = 0x135c1, .val = 0 },
  1562 ++ { .offset = 0x1135c1, .val = 0 },
  1563 ++ { .offset = 0x2135c1, .val = 0 },
  1564 ++ { .offset = 0x136c1, .val = 0 },
  1565 ++ { .offset = 0x1136c1, .val = 0 },
  1566 ++ { .offset = 0x2136c1, .val = 0 },
  1567 ++ { .offset = 0x137c1, .val = 0 },
  1568 ++ { .offset = 0x1137c1, .val = 0 },
  1569 ++ { .offset = 0x2137c1, .val = 0 },
  1570 ++ { .offset = 0x138c1, .val = 0 },
  1571 ++ { .offset = 0x1138c1, .val = 0 },
  1572 ++ { .offset = 0x2138c1, .val = 0 },
  1573 ++ { .offset = 0x10020, .val = 0 },
  1574 ++ { .offset = 0x110020, .val = 0 },
  1575 ++ { .offset = 0x210020, .val = 0 },
  1576 ++ { .offset = 0x11020, .val = 0 },
  1577 ++ { .offset = 0x111020, .val = 0 },
  1578 ++ { .offset = 0x211020, .val = 0 },
  1579 ++ { .offset = 0x12020, .val = 0 },
  1580 ++ { .offset = 0x112020, .val = 0 },
  1581 ++ { .offset = 0x212020, .val = 0 },
  1582 ++ { .offset = 0x13020, .val = 0 },
  1583 ++ { .offset = 0x113020, .val = 0 },
  1584 ++ { .offset = 0x213020, .val = 0 },
  1585 ++ { .offset = 0x20072, .val = 0 },
  1586 ++ { .offset = 0x20073, .val = 0 },
  1587 ++ { .offset = 0x20074, .val = 0 },
  1588 ++ { .offset = 0x100aa, .val = 0 },
  1589 ++ { .offset = 0x110aa, .val = 0 },
  1590 ++ { .offset = 0x120aa, .val = 0 },
  1591 ++ { .offset = 0x130aa, .val = 0 },
  1592 ++ { .offset = 0x20010, .val = 0 },
  1593 ++ { .offset = 0x120010, .val = 0 },
  1594 ++ { .offset = 0x220010, .val = 0 },
  1595 ++ { .offset = 0x20011, .val = 0 },
  1596 ++ { .offset = 0x120011, .val = 0 },
  1597 ++ { .offset = 0x220011, .val = 0 },
  1598 ++ { .offset = 0x100ae, .val = 0 },
  1599 ++ { .offset = 0x1100ae, .val = 0 },
  1600 ++ { .offset = 0x2100ae, .val = 0 },
  1601 ++ { .offset = 0x100af, .val = 0 },
  1602 ++ { .offset = 0x1100af, .val = 0 },
  1603 ++ { .offset = 0x2100af, .val = 0 },
  1604 ++ { .offset = 0x110ae, .val = 0 },
  1605 ++ { .offset = 0x1110ae, .val = 0 },
  1606 ++ { .offset = 0x2110ae, .val = 0 },
  1607 ++ { .offset = 0x110af, .val = 0 },
  1608 ++ { .offset = 0x1110af, .val = 0 },
  1609 ++ { .offset = 0x2110af, .val = 0 },
  1610 ++ { .offset = 0x120ae, .val = 0 },
  1611 ++ { .offset = 0x1120ae, .val = 0 },
  1612 ++ { .offset = 0x2120ae, .val = 0 },
  1613 ++ { .offset = 0x120af, .val = 0 },
  1614 ++ { .offset = 0x1120af, .val = 0 },
  1615 ++ { .offset = 0x2120af, .val = 0 },
  1616 ++ { .offset = 0x130ae, .val = 0 },
  1617 ++ { .offset = 0x1130ae, .val = 0 },
  1618 ++ { .offset = 0x2130ae, .val = 0 },
  1619 ++ { .offset = 0x130af, .val = 0 },
  1620 ++ { .offset = 0x1130af, .val = 0 },
  1621 ++ { .offset = 0x2130af, .val = 0 },
  1622 ++ { .offset = 0x20020, .val = 0 },
  1623 ++ { .offset = 0x120020, .val = 0 },
  1624 ++ { .offset = 0x220020, .val = 0 },
  1625 ++ { .offset = 0x100a0, .val = 0 },
  1626 ++ { .offset = 0x100a1, .val = 0 },
  1627 ++ { .offset = 0x100a2, .val = 0 },
  1628 ++ { .offset = 0x100a3, .val = 0 },
  1629 ++ { .offset = 0x100a4, .val = 0 },
  1630 ++ { .offset = 0x100a5, .val = 0 },
  1631 ++ { .offset = 0x100a6, .val = 0 },
  1632 ++ { .offset = 0x100a7, .val = 0 },
  1633 ++ { .offset = 0x110a0, .val = 0 },
  1634 ++ { .offset = 0x110a1, .val = 0 },
  1635 ++ { .offset = 0x110a2, .val = 0 },
  1636 ++ { .offset = 0x110a3, .val = 0 },
  1637 ++ { .offset = 0x110a4, .val = 0 },
  1638 ++ { .offset = 0x110a5, .val = 0 },
  1639 ++ { .offset = 0x110a6, .val = 0 },
  1640 ++ { .offset = 0x110a7, .val = 0 },
  1641 ++ { .offset = 0x120a0, .val = 0 },
  1642 ++ { .offset = 0x120a1, .val = 0 },
  1643 ++ { .offset = 0x120a2, .val = 0 },
  1644 ++ { .offset = 0x120a3, .val = 0 },
  1645 ++ { .offset = 0x120a4, .val = 0 },
  1646 ++ { .offset = 0x120a5, .val = 0 },
  1647 ++ { .offset = 0x120a6, .val = 0 },
  1648 ++ { .offset = 0x120a7, .val = 0 },
  1649 ++ { .offset = 0x130a0, .val = 0 },
  1650 ++ { .offset = 0x130a1, .val = 0 },
  1651 ++ { .offset = 0x130a2, .val = 0 },
  1652 ++ { .offset = 0x130a3, .val = 0 },
  1653 ++ { .offset = 0x130a4, .val = 0 },
  1654 ++ { .offset = 0x130a5, .val = 0 },
  1655 ++ { .offset = 0x130a6, .val = 0 },
  1656 ++ { .offset = 0x130a7, .val = 0 },
  1657 ++ { .offset = 0x2007c, .val = 0 },
  1658 ++ { .offset = 0x12007c, .val = 0 },
  1659 ++ { .offset = 0x22007c, .val = 0 },
  1660 ++ { .offset = 0x2007d, .val = 0 },
  1661 ++ { .offset = 0x12007d, .val = 0 },
  1662 ++ { .offset = 0x22007d, .val = 0 },
  1663 ++ { .offset = 0x400fd, .val = 0 },
  1664 ++ { .offset = 0x400c0, .val = 0 },
  1665 ++ { .offset = 0x90201, .val = 0 },
  1666 ++ { .offset = 0x190201, .val = 0 },
  1667 ++ { .offset = 0x290201, .val = 0 },
  1668 ++ { .offset = 0x90202, .val = 0 },
  1669 ++ { .offset = 0x190202, .val = 0 },
  1670 ++ { .offset = 0x290202, .val = 0 },
  1671 ++ { .offset = 0x90203, .val = 0 },
  1672 ++ { .offset = 0x190203, .val = 0 },
  1673 ++ { .offset = 0x290203, .val = 0 },
  1674 ++ { .offset = 0x90204, .val = 0 },
  1675 ++ { .offset = 0x190204, .val = 0 },
  1676 ++ { .offset = 0x290204, .val = 0 },
  1677 ++ { .offset = 0x90205, .val = 0 },
  1678 ++ { .offset = 0x190205, .val = 0 },
  1679 ++ { .offset = 0x290205, .val = 0 },
  1680 ++ { .offset = 0x90206, .val = 0 },
  1681 ++ { .offset = 0x190206, .val = 0 },
  1682 ++ { .offset = 0x290206, .val = 0 },
  1683 ++ { .offset = 0x90207, .val = 0 },
  1684 ++ { .offset = 0x190207, .val = 0 },
  1685 ++ { .offset = 0x290207, .val = 0 },
  1686 ++ { .offset = 0x90208, .val = 0 },
  1687 ++ { .offset = 0x190208, .val = 0 },
  1688 ++ { .offset = 0x290208, .val = 0 },
  1689 ++ { .offset = 0x10062, .val = 0 },
  1690 ++ { .offset = 0x10162, .val = 0 },
  1691 ++ { .offset = 0x10262, .val = 0 },
  1692 ++ { .offset = 0x10362, .val = 0 },
  1693 ++ { .offset = 0x10462, .val = 0 },
  1694 ++ { .offset = 0x10562, .val = 0 },
  1695 ++ { .offset = 0x10662, .val = 0 },
  1696 ++ { .offset = 0x10762, .val = 0 },
  1697 ++ { .offset = 0x10862, .val = 0 },
  1698 ++ { .offset = 0x11062, .val = 0 },
  1699 ++ { .offset = 0x11162, .val = 0 },
  1700 ++ { .offset = 0x11262, .val = 0 },
  1701 ++ { .offset = 0x11362, .val = 0 },
  1702 ++ { .offset = 0x11462, .val = 0 },
  1703 ++ { .offset = 0x11562, .val = 0 },
  1704 ++ { .offset = 0x11662, .val = 0 },
  1705 ++ { .offset = 0x11762, .val = 0 },
  1706 ++ { .offset = 0x11862, .val = 0 },
  1707 ++ { .offset = 0x12062, .val = 0 },
  1708 ++ { .offset = 0x12162, .val = 0 },
  1709 ++ { .offset = 0x12262, .val = 0 },
  1710 ++ { .offset = 0x12362, .val = 0 },
  1711 ++ { .offset = 0x12462, .val = 0 },
  1712 ++ { .offset = 0x12562, .val = 0 },
  1713 ++ { .offset = 0x12662, .val = 0 },
  1714 ++ { .offset = 0x12762, .val = 0 },
  1715 ++ { .offset = 0x12862, .val = 0 },
  1716 ++ { .offset = 0x13062, .val = 0 },
  1717 ++ { .offset = 0x13162, .val = 0 },
  1718 ++ { .offset = 0x13262, .val = 0 },
  1719 ++ { .offset = 0x13362, .val = 0 },
  1720 ++ { .offset = 0x13462, .val = 0 },
  1721 ++ { .offset = 0x13562, .val = 0 },
  1722 ++ { .offset = 0x13662, .val = 0 },
  1723 ++ { .offset = 0x13762, .val = 0 },
  1724 ++ { .offset = 0x13862, .val = 0 },
  1725 ++ { .offset = 0x20077, .val = 0 },
  1726 ++ { .offset = 0x10001, .val = 0 },
  1727 ++ { .offset = 0x11001, .val = 0 },
  1728 ++ { .offset = 0x12001, .val = 0 },
  1729 ++ { .offset = 0x13001, .val = 0 },
  1730 ++ { .offset = 0x10040, .val = 0 },
  1731 ++ { .offset = 0x10140, .val = 0 },
  1732 ++ { .offset = 0x10240, .val = 0 },
  1733 ++ { .offset = 0x10340, .val = 0 },
  1734 ++ { .offset = 0x10440, .val = 0 },
  1735 ++ { .offset = 0x10540, .val = 0 },
  1736 ++ { .offset = 0x10640, .val = 0 },
  1737 ++ { .offset = 0x10740, .val = 0 },
  1738 ++ { .offset = 0x10840, .val = 0 },
  1739 ++ { .offset = 0x10030, .val = 0 },
  1740 ++ { .offset = 0x10130, .val = 0 },
  1741 ++ { .offset = 0x10230, .val = 0 },
  1742 ++ { .offset = 0x10330, .val = 0 },
  1743 ++ { .offset = 0x10430, .val = 0 },
  1744 ++ { .offset = 0x10530, .val = 0 },
  1745 ++ { .offset = 0x10630, .val = 0 },
  1746 ++ { .offset = 0x10730, .val = 0 },
  1747 ++ { .offset = 0x10830, .val = 0 },
  1748 ++ { .offset = 0x11040, .val = 0 },
  1749 ++ { .offset = 0x11140, .val = 0 },
  1750 ++ { .offset = 0x11240, .val = 0 },
  1751 ++ { .offset = 0x11340, .val = 0 },
  1752 ++ { .offset = 0x11440, .val = 0 },
  1753 ++ { .offset = 0x11540, .val = 0 },
  1754 ++ { .offset = 0x11640, .val = 0 },
  1755 ++ { .offset = 0x11740, .val = 0 },
  1756 ++ { .offset = 0x11840, .val = 0 },
  1757 ++ { .offset = 0x11030, .val = 0 },
  1758 ++ { .offset = 0x11130, .val = 0 },
  1759 ++ { .offset = 0x11230, .val = 0 },
  1760 ++ { .offset = 0x11330, .val = 0 },
  1761 ++ { .offset = 0x11430, .val = 0 },
  1762 ++ { .offset = 0x11530, .val = 0 },
  1763 ++ { .offset = 0x11630, .val = 0 },
  1764 ++ { .offset = 0x11730, .val = 0 },
  1765 ++ { .offset = 0x11830, .val = 0 },
  1766 ++ { .offset = 0x12040, .val = 0 },
  1767 ++ { .offset = 0x12140, .val = 0 },
  1768 ++ { .offset = 0x12240, .val = 0 },
  1769 ++ { .offset = 0x12340, .val = 0 },
  1770 ++ { .offset = 0x12440, .val = 0 },
  1771 ++ { .offset = 0x12540, .val = 0 },
  1772 ++ { .offset = 0x12640, .val = 0 },
  1773 ++ { .offset = 0x12740, .val = 0 },
  1774 ++ { .offset = 0x12840, .val = 0 },
  1775 ++ { .offset = 0x12030, .val = 0 },
  1776 ++ { .offset = 0x12130, .val = 0 },
  1777 ++ { .offset = 0x12230, .val = 0 },
  1778 ++ { .offset = 0x12330, .val = 0 },
  1779 ++ { .offset = 0x12430, .val = 0 },
  1780 ++ { .offset = 0x12530, .val = 0 },
  1781 ++ { .offset = 0x12630, .val = 0 },
  1782 ++ { .offset = 0x12730, .val = 0 },
  1783 ++ { .offset = 0x12830, .val = 0 },
  1784 ++ { .offset = 0x13040, .val = 0 },
  1785 ++ { .offset = 0x13140, .val = 0 },
  1786 ++ { .offset = 0x13240, .val = 0 },
  1787 ++ { .offset = 0x13340, .val = 0 },
  1788 ++ { .offset = 0x13440, .val = 0 },
  1789 ++ { .offset = 0x13540, .val = 0 },
  1790 ++ { .offset = 0x13640, .val = 0 },
  1791 ++ { .offset = 0x13740, .val = 0 },
  1792 ++ { .offset = 0x13840, .val = 0 },
  1793 ++ { .offset = 0x13030, .val = 0 },
  1794 ++ { .offset = 0x13130, .val = 0 },
  1795 ++ { .offset = 0x13230, .val = 0 },
  1796 ++ { .offset = 0x13330, .val = 0 },
  1797 ++ { .offset = 0x13430, .val = 0 },
  1798 ++ { .offset = 0x13530, .val = 0 },
  1799 ++ { .offset = 0x13630, .val = 0 },
  1800 ++ { .offset = 0x13730, .val = 0 },
  1801 ++ { .offset = 0x13830, .val = 0 },
  1802 + };
  1803 +
  1804 + /* lpddr4 phy PIE image */
  1805 +@@ -1526,29 +1536,16 @@ static const struct ddrphy_cfg_param phy_pie[] = {
  1806 + { .offset = 0xd0000, .val = 0x1 }, // DWC_DDRPHYA_APBONLY0_MicroContMuxSel
  1807 + };
  1808 +
  1809 +-static void lpddr4_phy_init_cfg(void)
  1810 +-{
  1811 +- int index, offset, val, size;
  1812 +-
  1813 +- size = sizeof(phy_init_cfg) / 8;
  1814 +-
  1815 +- for (index = 0; index < size; index++) {
  1816 +- val = phy_init_cfg[index].val;
  1817 +- offset = phy_init_cfg[index].offset;
  1818 +- dwc_ddrphy_apb_wr(offset, val);
  1819 +- }
  1820 +-}
  1821 +-
  1822 +-static void lpddr4_phy_restore_trained_csr(void)
  1823 ++static void lpddr4_phy_restore_phy(void)
  1824 + {
  1825 + int index, offset, val, size;
  1826 +
  1827 + dwc_ddrphy_apb_wr(0xd0000,0x0);
  1828 +- size = sizeof(phy_trained_csr) / 8;
  1829 ++ size = sizeof(phy_cfg) / 8;
  1830 +
  1831 + for(index = 0; index < size; index++) {
  1832 +- val = phy_trained_csr[index].val;
  1833 +- offset = phy_trained_csr[index].offset;
  1834 ++ val = phy_cfg[index].val;
  1835 ++ offset = phy_cfg[index].offset;
  1836 +
  1837 + dwc_ddrphy_apb_wr(offset, val);
  1838 + }
  1839 +@@ -1569,19 +1566,19 @@ static void lpddr4_phy_load_pie(void)
  1840 + }
  1841 + }
  1842 +
  1843 +-void lpddr4_phy_save_trained_csr(void)
  1844 ++void lpddr4_phy_save_phy(void)
  1845 + {
  1846 + int index, offset, size;
  1847 +
  1848 +- size = sizeof(phy_trained_csr) / 8;
  1849 ++ size = sizeof(phy_cfg) / 8;
  1850 +
  1851 + dwc_ddrphy_apb_wr(0xd0000, 0x0);
  1852 + dwc_ddrphy_apb_wr(0xc0080, 0x3);
  1853 +
  1854 +
  1855 + for (index = 0; index < size; index++) {
  1856 +- offset = phy_trained_csr[index].offset;
  1857 +- phy_trained_csr[index].val = dwc_ddrphy_apb_rd(offset);
  1858 ++ offset = phy_cfg[index].offset;
  1859 ++ phy_cfg[index].val = dwc_ddrphy_apb_rd(offset);
  1860 + }
  1861 +
  1862 + dwc_ddrphy_apb_wr(0xc0080, 0x0);
  1863 +@@ -1590,11 +1587,8 @@ void lpddr4_phy_save_trained_csr(void)
  1864 +
  1865 + void lpddr4_phy_cfg(void)
  1866 + {
  1867 +- /* load the init config */
  1868 +- lpddr4_phy_init_cfg();
  1869 +-
  1870 + /* restore the trained csr */
  1871 +- lpddr4_phy_restore_trained_csr();
  1872 ++ lpddr4_phy_restore_phy();
  1873 +
  1874 + /* load the phy PIE image */
  1875 + lpddr4_phy_load_pie();
  1876 +diff --git a/plat/freescale/imx8mq/ddr/lpddr4_retention.c b/plat/freescale/imx8mq/ddr/lpddr4_retention.c
  1877 +index 7b534d9..bce5000 100644
  1878 +--- a/plat/freescale/imx8mq/ddr/lpddr4_retention.c
  1879 ++++ b/plat/freescale/imx8mq/ddr/lpddr4_retention.c
  1880 +@@ -27,13 +27,17 @@
  1881 +
  1882 + static bool trained_csr_saved = false;
  1883 +
  1884 ++void lpddr4_save_umctl2(void);
  1885 ++void lpddr4_phy_save_phy(void);
  1886 ++
  1887 + void ddrc_enter_retention(void)
  1888 + {
  1889 + unsigned int tmp, tmp_t, i;
  1890 +
  1891 + /* only need be save once */
  1892 + if (!trained_csr_saved) {
  1893 +- lpddr4_phy_save_trained_csr();
  1894 ++ lpddr4_save_umctl2();
  1895 ++ lpddr4_phy_save_phy();
  1896 + trained_csr_saved = true;
  1897 + }
  1898 +
  1899 +diff --git a/plat/freescale/imx8mq/ddr/lpddr4_swffc.c b/plat/freescale/imx8mq/ddr/lpddr4_swffc.c
  1900 +index 6db6f4d..434e8fd 100644
  1901 +--- a/plat/freescale/imx8mq/ddr/lpddr4_swffc.c
  1902 ++++ b/plat/freescale/imx8mq/ddr/lpddr4_swffc.c
  1903 +@@ -11,22 +11,14 @@
  1904 +
  1905 + #include "lpddr4_dvfs.h"
  1906 +
  1907 +-#define P0_INIT3 0x00D4002D
  1908 +-#define P0_INIT4 0x00310008
  1909 +-#define P0_INIT6 0x0066004a
  1910 +-#define P0_INIT7 0x0006004a
  1911 +-
  1912 +-#define P1_INIT3 0x0140009
  1913 +-#define P1_INIT4 0x00310008
  1914 +-#define P1_INIT6 0x0066004a
  1915 +-#define P1_INIT7 0x0006004a
  1916 +-
  1917 + #define HW_DRAM_PLL_CFG0_ADDR (0x30360000 + 0x60)
  1918 + #define HW_DRAM_PLL_CFG1_ADDR (0x30360000 + 0x64)
  1919 + #define HW_DRAM_PLL_CFG2_ADDR (0x30360000 + 0x68)
  1920 +
  1921 + #define DFILP_SPT
  1922 +
  1923 ++extern unsigned int default_ddr_pllcfg;
  1924 ++
  1925 + void sscgpll_bypass_enable(unsigned int reg_addr)
  1926 + {
  1927 + unsigned int read_data;
  1928 +@@ -67,16 +59,18 @@ void DDR_PLL_CONFIG_FREQ(unsigned int freq)
  1929 + case 667:
  1930 + mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x00ece480);
  1931 + break;
  1932 +- case 400:
  1933 +- mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x00ec6984);
  1934 ++ case 400:
  1935 ++ mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x00ec6984);
  1936 + break;
  1937 +- case 167:
  1938 ++ case 167:
  1939 + mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x00f5a406);
  1940 + break;
  1941 +- case 100:
  1942 +- mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x015dea96);
  1943 ++ case 100:
  1944 ++ mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x015dea96);
  1945 + break;
  1946 +-
  1947 ++ case 0:
  1948 ++ mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, default_ddr_pllcfg);
  1949 ++ break;
  1950 + default:
  1951 + printf("Input freq=%d error.\n",freq);
  1952 + }
  1953 +@@ -118,24 +112,24 @@ void lpddr4_dvfs_swffc(unsigned int init_fsp, unsigned int target_freq)
  1954 +
  1955 + /* setting for 3200 mts */
  1956 + if(target_freq==0) {
  1957 +- mr = P0_INIT3 >> 16;
  1958 +- emr = P0_INIT3 & 0xFFFF;
  1959 +- emr2 = P0_INIT4 >> 16;
  1960 +- emr3 = P0_INIT4 & 0xFFFF;
  1961 +- mr11 = P0_INIT6 >> 16;
  1962 +- mr12 = P0_INIT6 & 0xFFFF;
  1963 +- mr22 = P0_INIT7 >> 16;
  1964 +- mr14 = P0_INIT7 & 0xFFFF;
  1965 ++ mr = mmio_read_32(DDRC_INIT3(0)) >> 16;
  1966 ++ emr = mmio_read_32(DDRC_INIT3(0)) & 0xFFFF;
  1967 ++ emr2 = mmio_read_32(DDRC_INIT4(0)) >> 16;
  1968 ++ emr3 = mmio_read_32(DDRC_INIT4(0)) & 0xFFFF;
  1969 ++ mr11 = mmio_read_32(DDRC_INIT6(0)) >> 16;
  1970 ++ mr12 = mmio_read_32(DDRC_INIT6(0)) & 0xFFFF;
  1971 ++ mr22 = mmio_read_32(DDRC_INIT7(0)) >> 16;
  1972 ++ mr14 = mmio_read_32(DDRC_INIT7(0)) & 0xFFFF;
  1973 + } else {
  1974 + /* setting for 667 mts */
  1975 +- mr = P1_INIT3 >> 16;
  1976 +- emr = P1_INIT3 & 0xFFFF;
  1977 +- emr2 = P1_INIT4 >> 16;
  1978 +- emr3 = P1_INIT4 & 0xFFFF;
  1979 +- mr11 = P1_INIT6 >> 16;
  1980 +- mr12 = P1_INIT6 & 0xFFFF;
  1981 +- mr22 = P1_INIT7 >> 16;
  1982 +- mr14 = P1_INIT7 & 0xFFFF;
  1983 ++ mr = mmio_read_32(DDRC_FREQ1_INIT3(0)) >> 16;
  1984 ++ emr = mmio_read_32(DDRC_FREQ1_INIT3(0)) & 0xFFFF;
  1985 ++ emr2 = mmio_read_32(DDRC_FREQ1_INIT4(0)) >> 16;
  1986 ++ emr3 = mmio_read_32(DDRC_FREQ1_INIT4(0)) & 0xFFFF;
  1987 ++ mr11 = mmio_read_32(DDRC_FREQ1_INIT6(0)) >> 16;
  1988 ++ mr12 = mmio_read_32(DDRC_FREQ1_INIT6(0)) & 0xFFFF;
  1989 ++ mr22 = mmio_read_32(DDRC_FREQ1_INIT7(0)) >> 16;
  1990 ++ mr14 = mmio_read_32(DDRC_FREQ1_INIT7(0)) & 0xFFFF;
  1991 + }
  1992 +
  1993 + tmp = (init_fsp== 1) ? 0x2 <<6 : 0x1 <<6;
  1994 +@@ -203,10 +197,10 @@ void lpddr4_dvfs_swffc(unsigned int init_fsp, unsigned int target_freq)
  1995 + mmio_write_32(DDRC_FREQ1_DERATEEN(0), tmp); /* ddrc_derate_enable, bit 0 */
  1996 + tmp= mmio_read_32(DDRC_ZQCTL0(0));
  1997 + tmp |= 0x80000000;
  1998 +- mmio_write_32(DDRC_ZQCTL0(0), tmp); /* ddrc_derate_enable, bit 0 */
  1999 ++ mmio_write_32(DDRC_ZQCTL0(0), tmp);
  2000 + tmp= mmio_read_32(DDRC_FREQ1_ZQCTL0(0));
  2001 + tmp |= 0x80000000;
  2002 +- mmio_write_32(DDRC_FREQ1_ZQCTL0(0), tmp); /* ddrc_derate_enable, bit 0 */
  2003 ++ mmio_write_32(DDRC_FREQ1_ZQCTL0(0), tmp);
  2004 +
  2005 + /* 12. set PWRCTL.selfref_en=0 */
  2006 + tmp= mmio_read_32(DDRC_PWRCTL(0));
  2007 +@@ -275,7 +269,7 @@ void lpddr4_dvfs_swffc(unsigned int init_fsp, unsigned int target_freq)
  2008 + /* Q4: only for legacy PHY, so here can skipped */
  2009 + tmp= mmio_read_32(DDRC_DFIMISC(0));
  2010 + tmp &= 0xFF;
  2011 +- tmp |= (target_freq << 8); /* should be 0 */
  2012 ++ tmp |= (target_freq << 8);
  2013 + mmio_write_32(DDRC_DFIMISC(0),tmp);
  2014 + tmp |= 0x20;
  2015 + mmio_write_32(DDRC_DFIMISC(0),tmp);
  2016 +@@ -288,16 +282,19 @@ void lpddr4_dvfs_swffc(unsigned int init_fsp, unsigned int target_freq)
  2017 + /* switch_clocks for target frequency */
  2018 + if(target_freq==0x1) {
  2019 + /* mmio_write_32(CCM_IP_CLK_ROOT_GEN_TAGET_CLR(1),(0x7<<24)|(0x7<<16)); */
  2020 +- mmio_write_32(0x3038a088, (0x7 << 24) | (0x7 << 16));
  2021 ++ //mmio_write_32(0x3038a088, (0x7 << 24) | (0x7 << 16));
  2022 + /* mmio_write_32(CCM_IP_CLK_ROOT_GEN_TAGET_SET(1),(0x4<<24)|(0x4<<16)); */
  2023 +- mmio_write_32(0x3038a084, (0x4 << 24) | (0x4 << 16)); //to source 4 --800MHz/5
  2024 ++ //mmio_write_32(0x3038a084, (0x4 << 24) | (0x4 << 16)); //to source 4 --800MHz/5
  2025 + DDR_PLL_CONFIG_FREQ(167);
  2026 + } else {
  2027 +- DDR_PLL_CONFIG_FREQ(800);
  2028 ++ if(default_ddr_pllcfg)
  2029 ++ DDR_PLL_CONFIG_FREQ(0);
  2030 ++ else
  2031 ++ DDR_PLL_CONFIG_FREQ(800);
  2032 + /* mmio_write_32(CCM_IP_CLK_ROOT_GEN_TAGET_CLR(1),(0x7<<24)|(0x7<<16)); */
  2033 +- mmio_write_32(0x3038a088, (0x7 << 24) | (0x7 << 16));
  2034 ++ //mmio_write_32(0x3038a088, (0x7 << 24) | (0x7 << 16));
  2035 + /* mmio_write_32(CCM_IP_CLK_ROOT_GEN_TAGET_SET(1),(0x4<<24)|(0x3<<16)); */
  2036 +- mmio_write_32(0x3038a084, (0x4 << 24) | (0x3 << 16)); //to source 4 --800MHz/4*/
  2037 ++ //mmio_write_32(0x3038a084, (0x4 << 24) | (0x3 << 16)); //to source 4 --800MHz/4*/
  2038 + }
  2039 +
  2040 + /* dfi_init_start de-assert */
  2041 +diff --git a/plat/freescale/imx8mq/include/soc.h b/plat/freescale/imx8mq/include/soc.h
  2042 +index 0c55a9c..7c9de5c 100644
  2043 +--- a/plat/freescale/imx8mq/include/soc.h
  2044 ++++ b/plat/freescale/imx8mq/include/soc.h
  2045 +@@ -24,6 +24,7 @@ void imx_set_rbc_count(void);
  2046 + void imx_clear_rbc_count(void);
  2047 +
  2048 + void lpddr4_cfg_umctl2(void);
  2049 ++void lpddr4_save_umctl2(void);
  2050 + void lpddr4_phy_cfg(void);
  2051 + void lpddr4_phy_save_trained_csr(void);
  2052 + void lpddr4_switch_to_3200(void);
  2053 +--
  2054 +1.9.1
  2055 +
recipes-bsp/imx-atf/imx-atf/atf-0001-1-add-noc-tuning-smc-case-lower-cpu-vpu-memory-acces.patch
... ... @@ -0,0 +1,35 @@
  1 +From 57feabef01e603380f67fac8b5ba8b8b9771d76f Mon Sep 17 00:00:00 2001
  2 +From: "Tom.zheng" <haidong.zheng@nxp.com>
  3 +Date: Wed, 25 Apr 2018 13:50:11 +0800
  4 +Subject: [PATCH] Add NOC tuning SMC case, lower cpu vpu memory access priority for this case
  5 +
  6 +diff --git a/plat/freescale/common/include/fsl_sip.h b/plat/freescale/common/include/fsl_sip.h
  7 +index 24b8eb3..56aa91d 100644
  8 +--- a/plat/freescale/common/include/fsl_sip.h
  9 ++++ b/plat/freescale/common/include/fsl_sip.h
  10 +@@ -47,5 +47,6 @@
  11 +
  12 + #define FSL_SIP_NOC 0xc2000008
  13 + #define FSL_SIP_NOC_LCDIF 0x0
  14 ++#define FSL_SIP_NOC_TUNE 0x1
  15 +
  16 + #endif
  17 +diff --git a/plat/freescale/imx8mq/src.c b/plat/freescale/imx8mq/src.c
  18 +index 11e30ee..90d2d16 100644
  19 +--- a/plat/freescale/imx8mq/src.c
  20 ++++ b/plat/freescale/imx8mq/src.c
  21 +@@ -82,6 +82,13 @@ int imx_noc_handler(uint32_t smc_fid, u_register_t x1, u_register_t x2,
  22 + mmio_write_32(IMX_NOC_BASE + 0x18c, 0x1);
  23 + mmio_write_32(IMX_NOC_BASE + 0x190, 0x500);
  24 + mmio_write_32(IMX_NOC_BASE + 0x194, 0x30);
  25 ++ break;
  26 ++
  27 ++ case FSL_SIP_NOC_TUNE:
  28 ++ /* config NOC for VPU */
  29 ++ mmio_write_32(IMX_NOC_BASE + 0x108, 0x80000300);
  30 ++ /* config NOC for CPU */
  31 ++ mmio_write_32(IMX_NOC_BASE + 0x188, 0x80000300);
  32 + break;
  33 + default:
  34 + return SMC_UNK;
  35 +
recipes-bsp/imx-atf/imx-atf_1.4.1.bbappend
... ... @@ -0,0 +1,6 @@
  1 +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
  2 +
  3 +SRC_URI += " \
  4 + file://0001-ATF-support-to-different-LPDDR4-configurations.patch \
  5 + file://atf-0001-1-add-noc-tuning-smc-case-lower-cpu-vpu-memory-acces.patch \
  6 +"
recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend
... ... @@ -0,0 +1,8 @@
  1 +# Workaround to fix do_compile() failure due to missing fsl-imx8mq-evk.dtb
  2 +do_compile_prepend() {
  3 + echo "Checking Target"
  4 + if [ "${SOC_TARGET}" = "iMX8M" ]; then
  5 + echo "Copying DTB"
  6 + cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${UBOOT_DTB_NAME} ${S}/${SOC_TARGET}/fsl-imx8mq-evk.dtb
  7 + fi
  8 +}
recipes-bsp/pm-utils/pm-utils_%.bbappend
... ... @@ -0,0 +1,7 @@
  1 +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
  2 +
  3 +FILES_${PN} += "/etc/pm/sleep.d/*"
  4 +
  5 +do_install_append() {
  6 + install -d ${D}/${sysconfdir}/pm/sleep.d
  7 +}
recipes-bsp/u-boot/u-boot-smarcimx8m_2017.03.bb
... ... @@ -0,0 +1,55 @@
  1 +# Copyright (C) 2013-2016 Freescale Semiconductor
  2 +# Copyright 2017-2018 NXP
  3 +
  4 +DESCRIPTION = "i.MX U-Boot suppporting i.MX reference boards."
  5 +require recipes-bsp/u-boot/u-boot.inc
  6 +inherit pythonnative
  7 +
  8 +PROVIDES += "u-boot"
  9 +DEPENDS_append = " python dtc-native"
  10 +
  11 +LICENSE = "GPLv2+"
  12 +LIC_FILES_CHKSUM = "file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
  13 +
  14 +UBOOT_SRC ?= "git://git@git.embedian.com/developer/smarc-t335x-uboot.git;protocol=https"
  15 +SRCBRANCH = "smarc-imx_v2017.03_4.9.88_2.0.0_ga"
  16 +SRC_URI = "${EMB_UBOOT_MIRROR};protocol=ssh;branch=${SRCBRANCH}"
  17 +SRCREV = "6282b048e3c32fefa7a5dd19b5fa9bcfb85f9265"
  18 +
  19 +S = "${WORKDIR}/git"
  20 +
  21 +inherit fsl-u-boot-localversion
  22 +
  23 +LOCALVERSION ?= "-${SRCBRANCH}"
  24 +
  25 +BOOT_TOOLS = "imx-boot-tools"
  26 +
  27 +do_deploy_append_mx8mq () {
  28 + # Deploy the mkimage, u-boot-nodtb.bin and fsl-smarcimx8mq.dtb for mkimage to generate boot binary
  29 + if [ -n "${UBOOT_CONFIG}" ]
  30 + then
  31 + for config in ${UBOOT_MACHINE}; do
  32 + i=$(expr $i + 1);
  33 + for type in ${UBOOT_CONFIG}; do
  34 + j=$(expr $j + 1);
  35 + if [ $j -eq $i ]
  36 + then
  37 + install -d ${DEPLOYDIR}/${BOOT_TOOLS}
  38 + install -m 0777 ${B}/${config}/arch/arm/dts/fsl-smarcimx8mq.dtb ${DEPLOYDIR}/${BOOT_TOOLS}
  39 + install -m 0777 ${B}/${config}/tools/mkimage ${DEPLOYDIR}/${BOOT_TOOLS}/mkimage_uboot
  40 + install -m 0777 ${B}/${config}/u-boot-nodtb.bin ${DEPLOYDIR}/${BOOT_TOOLS}
  41 + fi
  42 + done
  43 + unset j
  44 + done
  45 + unset i
  46 + fi
  47 +
  48 +}
  49 +
  50 +PACKAGE_ARCH = "${MACHINE_ARCH}"
  51 +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
  52 +
  53 +UBOOT_NAME_mx6 = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}"
  54 +UBOOT_NAME_mx7 = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}"
  55 +UBOOT_NAME_mx8 = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}"
recipes-core/busybox/busybox/defconfig
Changes suppressed. Click to show
... ... @@ -0,0 +1,1073 @@
  1 +#
  2 +# Automatically generated make config: don't edit
  3 +# Busybox version: 1.24.1
  4 +# Sat Dec 1 13:47:19 2018
  5 +#
  6 +CONFIG_HAVE_DOT_CONFIG=y
  7 +
  8 +#
  9 +# Busybox Settings
  10 +#
  11 +
  12 +#
  13 +# General Configuration
  14 +#
  15 +# CONFIG_DESKTOP is not set
  16 +# CONFIG_EXTRA_COMPAT is not set
  17 +CONFIG_INCLUDE_SUSv2=y
  18 +CONFIG_USE_PORTABLE_CODE=y
  19 +CONFIG_PLATFORM_LINUX=y
  20 +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
  21 +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
  22 +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
  23 +CONFIG_SHOW_USAGE=y
  24 +# CONFIG_FEATURE_VERBOSE_USAGE is not set
  25 +CONFIG_FEATURE_COMPRESS_USAGE=y
  26 +CONFIG_FEATURE_INSTALLER=y
  27 +# CONFIG_INSTALL_NO_USR is not set
  28 +CONFIG_LOCALE_SUPPORT=y
  29 +CONFIG_UNICODE_SUPPORT=y
  30 +# CONFIG_UNICODE_USING_LOCALE is not set
  31 +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
  32 +CONFIG_SUBST_WCHAR=0
  33 +CONFIG_LAST_SUPPORTED_WCHAR=0
  34 +# CONFIG_UNICODE_COMBINING_WCHARS is not set
  35 +# CONFIG_UNICODE_WIDE_WCHARS is not set
  36 +# CONFIG_UNICODE_BIDI_SUPPORT is not set
  37 +# CONFIG_UNICODE_NEUTRAL_TABLE is not set
  38 +# CONFIG_UNICODE_PRESERVE_BROKEN is not set
  39 +# CONFIG_PAM is not set
  40 +CONFIG_FEATURE_USE_SENDFILE=y
  41 +CONFIG_LONG_OPTS=y
  42 +CONFIG_FEATURE_DEVPTS=y
  43 +# CONFIG_FEATURE_CLEAN_UP is not set
  44 +CONFIG_FEATURE_UTMP=y
  45 +# CONFIG_FEATURE_WTMP is not set
  46 +CONFIG_FEATURE_PIDFILE=y
  47 +CONFIG_PID_FILE_PATH="/var/run"
  48 +CONFIG_FEATURE_SUID=y
  49 +CONFIG_FEATURE_SUID_CONFIG=y
  50 +CONFIG_FEATURE_SUID_CONFIG_QUIET=y
  51 +# CONFIG_SELINUX is not set
  52 +# CONFIG_FEATURE_PREFER_APPLETS is not set
  53 +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
  54 +CONFIG_FEATURE_SYSLOG=y
  55 +# CONFIG_FEATURE_HAVE_RPC is not set
  56 +
  57 +#
  58 +# Build Options
  59 +#
  60 +# CONFIG_STATIC is not set
  61 +# CONFIG_PIE is not set
  62 +# CONFIG_NOMMU is not set
  63 +# CONFIG_BUILD_LIBBUSYBOX is not set
  64 +# CONFIG_FEATURE_INDIVIDUAL is not set
  65 +# CONFIG_FEATURE_SHARED_BUSYBOX is not set
  66 +CONFIG_LFS=y
  67 +CONFIG_CROSS_COMPILER_PREFIX=""
  68 +CONFIG_SYSROOT=""
  69 +CONFIG_EXTRA_CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types "
  70 +CONFIG_EXTRA_LDFLAGS=""
  71 +CONFIG_EXTRA_LDLIBS=""
  72 +
  73 +#
  74 +# Debugging Options
  75 +#
  76 +# CONFIG_DEBUG is not set
  77 +# CONFIG_DEBUG_PESSIMIZE is not set
  78 +# CONFIG_UNIT_TEST is not set
  79 +# CONFIG_WERROR is not set
  80 +CONFIG_NO_DEBUG_LIB=y
  81 +# CONFIG_DMALLOC is not set
  82 +# CONFIG_EFENCE is not set
  83 +
  84 +#
  85 +# Installation Options ("make install" behavior)
  86 +#
  87 +CONFIG_INSTALL_APPLET_SYMLINKS=y
  88 +# CONFIG_INSTALL_APPLET_HARDLINKS is not set
  89 +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
  90 +# CONFIG_INSTALL_APPLET_DONT is not set
  91 +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
  92 +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
  93 +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
  94 +CONFIG_PREFIX="./_install"
  95 +
  96 +#
  97 +# Busybox Library Tuning
  98 +#
  99 +CONFIG_FEATURE_SYSTEMD=y
  100 +CONFIG_FEATURE_RTMINMAX=y
  101 +CONFIG_PASSWORD_MINLEN=6
  102 +CONFIG_MD5_SMALL=1
  103 +CONFIG_SHA3_SMALL=1
  104 +CONFIG_FEATURE_FAST_TOP=y
  105 +# CONFIG_FEATURE_ETC_NETWORKS is not set
  106 +CONFIG_FEATURE_USE_TERMIOS=y
  107 +CONFIG_FEATURE_EDITING=y
  108 +CONFIG_FEATURE_EDITING_MAX_LEN=1024
  109 +# CONFIG_FEATURE_EDITING_VI is not set
  110 +CONFIG_FEATURE_EDITING_HISTORY=15
  111 +CONFIG_FEATURE_EDITING_SAVEHISTORY=y
  112 +# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
  113 +# CONFIG_FEATURE_REVERSE_SEARCH is not set
  114 +CONFIG_FEATURE_TAB_COMPLETION=y
  115 +CONFIG_FEATURE_USERNAME_COMPLETION=y
  116 +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
  117 +# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
  118 +CONFIG_FEATURE_NON_POSIX_CP=y
  119 +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
  120 +CONFIG_FEATURE_COPYBUF_KB=4
  121 +CONFIG_FEATURE_SKIP_ROOTFS=y
  122 +CONFIG_MONOTONIC_SYSCALL=y
  123 +CONFIG_IOCTL_HEX2STR_ERROR=y
  124 +CONFIG_FEATURE_HWIB=y
  125 +
  126 +#
  127 +# Applets
  128 +#
  129 +
  130 +#
  131 +# Archival Utilities
  132 +#
  133 +CONFIG_FEATURE_SEAMLESS_XZ=y
  134 +CONFIG_FEATURE_SEAMLESS_LZMA=y
  135 +CONFIG_FEATURE_SEAMLESS_BZ2=y
  136 +CONFIG_FEATURE_SEAMLESS_GZ=y
  137 +CONFIG_FEATURE_SEAMLESS_Z=y
  138 +# CONFIG_AR is not set
  139 +# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
  140 +# CONFIG_FEATURE_AR_CREATE is not set
  141 +# CONFIG_UNCOMPRESS is not set
  142 +CONFIG_GUNZIP=y
  143 +CONFIG_BUNZIP2=y
  144 +# CONFIG_UNLZMA is not set
  145 +# CONFIG_FEATURE_LZMA_FAST is not set
  146 +# CONFIG_LZMA is not set
  147 +# CONFIG_UNXZ is not set
  148 +# CONFIG_XZ is not set
  149 +# CONFIG_BZIP2 is not set
  150 +CONFIG_CPIO=y
  151 +# CONFIG_FEATURE_CPIO_O is not set
  152 +# CONFIG_FEATURE_CPIO_P is not set
  153 +# CONFIG_DPKG is not set
  154 +# CONFIG_DPKG_DEB is not set
  155 +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
  156 +CONFIG_GZIP=y
  157 +# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
  158 +CONFIG_GZIP_FAST=0
  159 +# CONFIG_FEATURE_GZIP_LEVELS is not set
  160 +# CONFIG_LZOP is not set
  161 +# CONFIG_LZOP_COMPR_HIGH is not set
  162 +# CONFIG_RPM is not set
  163 +# CONFIG_RPM2CPIO is not set
  164 +CONFIG_TAR=y
  165 +CONFIG_FEATURE_TAR_CREATE=y
  166 +CONFIG_FEATURE_TAR_AUTODETECT=y
  167 +CONFIG_FEATURE_TAR_FROM=y
  168 +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
  169 +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
  170 +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
  171 +# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
  172 +# CONFIG_FEATURE_TAR_TO_COMMAND is not set
  173 +# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
  174 +CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
  175 +# CONFIG_FEATURE_TAR_SELINUX is not set
  176 +CONFIG_UNZIP=y
  177 +
  178 +#
  179 +# Coreutils
  180 +#
  181 +CONFIG_BASENAME=y
  182 +CONFIG_CAT=y
  183 +CONFIG_DATE=y
  184 +# CONFIG_FEATURE_DATE_ISOFMT is not set
  185 +# CONFIG_FEATURE_DATE_NANO is not set
  186 +CONFIG_FEATURE_DATE_COMPAT=y
  187 +CONFIG_DD=y
  188 +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
  189 +# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
  190 +CONFIG_FEATURE_DD_IBS_OBS=y
  191 +# CONFIG_FEATURE_DD_STATUS is not set
  192 +# CONFIG_HOSTID is not set
  193 +CONFIG_ID=y
  194 +CONFIG_GROUPS=y
  195 +CONFIG_SHUF=y
  196 +CONFIG_SYNC=y
  197 +# CONFIG_FEATURE_SYNC_FANCY is not set
  198 +CONFIG_TEST=y
  199 +CONFIG_FEATURE_TEST_64=y
  200 +CONFIG_TOUCH=y
  201 +CONFIG_FEATURE_TOUCH_NODEREF=y
  202 +CONFIG_FEATURE_TOUCH_SUSV3=y
  203 +CONFIG_TR=y
  204 +CONFIG_FEATURE_TR_CLASSES=y
  205 +# CONFIG_FEATURE_TR_EQUIV is not set
  206 +# CONFIG_TRUNCATE is not set
  207 +CONFIG_UNLINK=y
  208 +# CONFIG_BASE64 is not set
  209 +CONFIG_WHO=y
  210 +CONFIG_USERS=y
  211 +# CONFIG_CAL is not set
  212 +# CONFIG_CATV is not set
  213 +CONFIG_CHGRP=y
  214 +CONFIG_CHMOD=y
  215 +CONFIG_CHOWN=y
  216 +# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
  217 +CONFIG_CHROOT=y
  218 +# CONFIG_CKSUM is not set
  219 +# CONFIG_COMM is not set
  220 +CONFIG_CP=y
  221 +# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
  222 +CONFIG_CUT=y
  223 +CONFIG_DF=y
  224 +# CONFIG_FEATURE_DF_FANCY is not set
  225 +CONFIG_DIRNAME=y
  226 +# CONFIG_DOS2UNIX is not set
  227 +# CONFIG_UNIX2DOS is not set
  228 +CONFIG_DU=y
  229 +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
  230 +CONFIG_ECHO=y
  231 +CONFIG_FEATURE_FANCY_ECHO=y
  232 +CONFIG_ENV=y
  233 +CONFIG_FEATURE_ENV_LONG_OPTIONS=y
  234 +# CONFIG_EXPAND is not set
  235 +# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
  236 +CONFIG_EXPR=y
  237 +CONFIG_EXPR_MATH_SUPPORT_64=y
  238 +CONFIG_FALSE=y
  239 +# CONFIG_FOLD is not set
  240 +# CONFIG_FSYNC is not set
  241 +CONFIG_HEAD=y
  242 +# CONFIG_FEATURE_FANCY_HEAD is not set
  243 +# CONFIG_INSTALL is not set
  244 +# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
  245 +CONFIG_LN=y
  246 +CONFIG_LOGNAME=y
  247 +CONFIG_LS=y
  248 +CONFIG_FEATURE_LS_FILETYPES=y
  249 +CONFIG_FEATURE_LS_FOLLOWLINKS=y
  250 +CONFIG_FEATURE_LS_RECURSIVE=y
  251 +CONFIG_FEATURE_LS_SORTFILES=y
  252 +CONFIG_FEATURE_LS_TIMESTAMPS=y
  253 +CONFIG_FEATURE_LS_USERNAME=y
  254 +CONFIG_FEATURE_LS_COLOR=y
  255 +# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
  256 +CONFIG_MD5SUM=y
  257 +CONFIG_MKDIR=y
  258 +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
  259 +CONFIG_MKFIFO=y
  260 +CONFIG_MKNOD=y
  261 +CONFIG_MV=y
  262 +# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
  263 +# CONFIG_NICE is not set
  264 +CONFIG_NOHUP=y
  265 +CONFIG_OD=y
  266 +# CONFIG_PRINTENV is not set
  267 +CONFIG_PRINTF=y
  268 +CONFIG_PWD=y
  269 +CONFIG_READLINK=y
  270 +CONFIG_FEATURE_READLINK_FOLLOW=y
  271 +CONFIG_REALPATH=y
  272 +CONFIG_RM=y
  273 +CONFIG_RMDIR=y
  274 +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
  275 +CONFIG_SEQ=y
  276 +CONFIG_SHA1SUM=y
  277 +CONFIG_SHA256SUM=y
  278 +# CONFIG_SHA512SUM is not set
  279 +# CONFIG_SHA3SUM is not set
  280 +CONFIG_SLEEP=y
  281 +CONFIG_FEATURE_FANCY_SLEEP=y
  282 +CONFIG_FEATURE_FLOAT_SLEEP=y
  283 +CONFIG_SORT=y
  284 +CONFIG_FEATURE_SORT_BIG=y
  285 +# CONFIG_SPLIT is not set
  286 +# CONFIG_FEATURE_SPLIT_FANCY is not set
  287 +CONFIG_STAT=y
  288 +CONFIG_FEATURE_STAT_FORMAT=y
  289 +CONFIG_STTY=y
  290 +# CONFIG_SUM is not set
  291 +# CONFIG_TAC is not set
  292 +CONFIG_TAIL=y
  293 +CONFIG_FEATURE_FANCY_TAIL=y
  294 +CONFIG_TEE=y
  295 +# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
  296 +CONFIG_TRUE=y
  297 +CONFIG_TTY=y
  298 +CONFIG_UNAME=y
  299 +CONFIG_UNAME_OSNAME="GNU/Linux"
  300 +# CONFIG_UNEXPAND is not set
  301 +# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
  302 +CONFIG_UNIQ=y
  303 +CONFIG_USLEEP=y
  304 +# CONFIG_UUDECODE is not set
  305 +# CONFIG_UUENCODE is not set
  306 +CONFIG_WC=y
  307 +# CONFIG_FEATURE_WC_LARGE is not set
  308 +CONFIG_WHOAMI=y
  309 +CONFIG_YES=y
  310 +
  311 +#
  312 +# Common options
  313 +#
  314 +CONFIG_FEATURE_VERBOSE=y
  315 +
  316 +#
  317 +# Common options for cp and mv
  318 +#
  319 +# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set
  320 +
  321 +#
  322 +# Common options for ls, more and telnet
  323 +#
  324 +CONFIG_FEATURE_AUTOWIDTH=y
  325 +
  326 +#
  327 +# Common options for df, du, ls
  328 +#
  329 +CONFIG_FEATURE_HUMAN_READABLE=y
  330 +
  331 +#
  332 +# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
  333 +#
  334 +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
  335 +
  336 +#
  337 +# Console Utilities
  338 +#
  339 +CONFIG_CHVT=y
  340 +# CONFIG_FGCONSOLE is not set
  341 +CONFIG_CLEAR=y
  342 +CONFIG_DEALLOCVT=y
  343 +CONFIG_DUMPKMAP=y
  344 +# CONFIG_KBD_MODE is not set
  345 +CONFIG_LOADFONT=y
  346 +CONFIG_LOADKMAP=y
  347 +CONFIG_OPENVT=y
  348 +CONFIG_RESET=y
  349 +CONFIG_RESIZE=y
  350 +CONFIG_FEATURE_RESIZE_PRINT=y
  351 +CONFIG_SETCONSOLE=y
  352 +# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
  353 +# CONFIG_SETFONT is not set
  354 +# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set
  355 +CONFIG_DEFAULT_SETFONT_DIR=""
  356 +# CONFIG_SETKEYCODES is not set
  357 +# CONFIG_SETLOGCONS is not set
  358 +# CONFIG_SHOWKEY is not set
  359 +
  360 +#
  361 +# Common options for loadfont and setfont
  362 +#
  363 +# CONFIG_FEATURE_LOADFONT_PSF2 is not set
  364 +# CONFIG_FEATURE_LOADFONT_RAW is not set
  365 +
  366 +#
  367 +# Debian Utilities
  368 +#
  369 +CONFIG_MKTEMP=y
  370 +# CONFIG_PIPE_PROGRESS is not set
  371 +CONFIG_RUN_PARTS=y
  372 +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
  373 +# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
  374 +CONFIG_START_STOP_DAEMON=y
  375 +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
  376 +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
  377 +CONFIG_WHICH=y
  378 +
  379 +#
  380 +# Editors
  381 +#
  382 +CONFIG_AWK=y
  383 +CONFIG_FEATURE_AWK_LIBM=y
  384 +CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y
  385 +CONFIG_CMP=y
  386 +CONFIG_DIFF=y
  387 +# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
  388 +CONFIG_FEATURE_DIFF_DIR=y
  389 +# CONFIG_ED is not set
  390 +CONFIG_PATCH=y
  391 +CONFIG_SED=y
  392 +CONFIG_VI=y
  393 +CONFIG_FEATURE_VI_MAX_LEN=1024
  394 +CONFIG_FEATURE_VI_8BIT=y
  395 +CONFIG_FEATURE_VI_COLON=y
  396 +CONFIG_FEATURE_VI_YANKMARK=y
  397 +CONFIG_FEATURE_VI_SEARCH=y
  398 +# CONFIG_FEATURE_VI_REGEX_SEARCH is not set
  399 +CONFIG_FEATURE_VI_USE_SIGNALS=y
  400 +# CONFIG_FEATURE_VI_DOT_CMD is not set
  401 +# CONFIG_FEATURE_VI_READONLY is not set
  402 +# CONFIG_FEATURE_VI_SETOPTS is not set
  403 +# CONFIG_FEATURE_VI_SET is not set
  404 +CONFIG_FEATURE_VI_WIN_RESIZE=y
  405 +# CONFIG_FEATURE_VI_ASK_TERMINAL is not set
  406 +CONFIG_FEATURE_VI_UNDO=y
  407 +CONFIG_FEATURE_VI_UNDO_QUEUE=y
  408 +CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256
  409 +CONFIG_FEATURE_ALLOW_EXEC=y
  410 +
  411 +#
  412 +# Finding Utilities
  413 +#
  414 +CONFIG_FIND=y
  415 +CONFIG_FEATURE_FIND_PRINT0=y
  416 +CONFIG_FEATURE_FIND_MTIME=y
  417 +CONFIG_FEATURE_FIND_MMIN=y
  418 +CONFIG_FEATURE_FIND_PERM=y
  419 +CONFIG_FEATURE_FIND_TYPE=y
  420 +CONFIG_FEATURE_FIND_XDEV=y
  421 +CONFIG_FEATURE_FIND_MAXDEPTH=y
  422 +CONFIG_FEATURE_FIND_NEWER=y
  423 +# CONFIG_FEATURE_FIND_INUM is not set
  424 +CONFIG_FEATURE_FIND_EXEC=y
  425 +CONFIG_FEATURE_FIND_EXEC_PLUS=y
  426 +CONFIG_FEATURE_FIND_USER=y
  427 +CONFIG_FEATURE_FIND_GROUP=y
  428 +CONFIG_FEATURE_FIND_NOT=y
  429 +CONFIG_FEATURE_FIND_DEPTH=y
  430 +CONFIG_FEATURE_FIND_PAREN=y
  431 +CONFIG_FEATURE_FIND_SIZE=y
  432 +CONFIG_FEATURE_FIND_PRUNE=y
  433 +# CONFIG_FEATURE_FIND_DELETE is not set
  434 +CONFIG_FEATURE_FIND_PATH=y
  435 +CONFIG_FEATURE_FIND_REGEX=y
  436 +# CONFIG_FEATURE_FIND_CONTEXT is not set
  437 +# CONFIG_FEATURE_FIND_LINKS is not set
  438 +CONFIG_GREP=y
  439 +CONFIG_FEATURE_GREP_EGREP_ALIAS=y
  440 +CONFIG_FEATURE_GREP_FGREP_ALIAS=y
  441 +CONFIG_FEATURE_GREP_CONTEXT=y
  442 +CONFIG_XARGS=y
  443 +# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
  444 +# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set
  445 +# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set
  446 +# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set
  447 +CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y
  448 +
  449 +#
  450 +# Init Utilities
  451 +#
  452 +# CONFIG_BOOTCHARTD is not set
  453 +# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
  454 +# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set
  455 +CONFIG_HALT=y
  456 +# CONFIG_FEATURE_CALL_TELINIT is not set
  457 +CONFIG_TELINIT_PATH=""
  458 +# CONFIG_INIT is not set
  459 +# CONFIG_FEATURE_USE_INITTAB is not set
  460 +# CONFIG_FEATURE_KILL_REMOVED is not set
  461 +CONFIG_FEATURE_KILL_DELAY=0
  462 +# CONFIG_FEATURE_INIT_SCTTY is not set
  463 +# CONFIG_FEATURE_INIT_SYSLOG is not set
  464 +# CONFIG_FEATURE_EXTRA_QUIET is not set
  465 +# CONFIG_FEATURE_INIT_COREDUMPS is not set
  466 +# CONFIG_FEATURE_INITRD is not set
  467 +CONFIG_INIT_TERMINAL_TYPE=""
  468 +CONFIG_MESG=y
  469 +# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set
  470 +
  471 +#
  472 +# Login/Password Management Utilities
  473 +#
  474 +# CONFIG_ADD_SHELL is not set
  475 +# CONFIG_REMOVE_SHELL is not set
  476 +CONFIG_FEATURE_SHADOWPASSWDS=y
  477 +# CONFIG_USE_BB_PWD_GRP is not set
  478 +# CONFIG_USE_BB_SHADOW is not set
  479 +CONFIG_USE_BB_CRYPT=y
  480 +# CONFIG_USE_BB_CRYPT_SHA is not set
  481 +CONFIG_ADDUSER=y
  482 +CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y
  483 +# CONFIG_FEATURE_CHECK_NAMES is not set
  484 +CONFIG_LAST_ID=60000
  485 +CONFIG_FIRST_SYSTEM_ID=100
  486 +CONFIG_LAST_SYSTEM_ID=999
  487 +CONFIG_ADDGROUP=y
  488 +CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y
  489 +# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
  490 +CONFIG_DELUSER=y
  491 +CONFIG_DELGROUP=y
  492 +# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
  493 +CONFIG_GETTY=y
  494 +CONFIG_LOGIN=y
  495 +# CONFIG_LOGIN_SESSION_AS_CHILD is not set
  496 +# CONFIG_LOGIN_SCRIPTS is not set
  497 +# CONFIG_FEATURE_NOLOGIN is not set
  498 +# CONFIG_FEATURE_SECURETTY is not set
  499 +CONFIG_PASSWD=y
  500 +# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
  501 +# CONFIG_CRYPTPW is not set
  502 +# CONFIG_CHPASSWD is not set
  503 +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=""
  504 +CONFIG_SU=y
  505 +# CONFIG_FEATURE_SU_SYSLOG is not set
  506 +# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
  507 +CONFIG_SULOGIN=y
  508 +CONFIG_VLOCK=y
  509 +
  510 +#
  511 +# Linux Ext2 FS Progs
  512 +#
  513 +CONFIG_CHATTR=y
  514 +CONFIG_FSCK=y
  515 +# CONFIG_LSATTR is not set
  516 +# CONFIG_TUNE2FS is not set
  517 +
  518 +#
  519 +# Linux Module Utilities
  520 +#
  521 +# CONFIG_MODINFO is not set
  522 +# CONFIG_MODPROBE_SMALL is not set
  523 +# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
  524 +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
  525 +CONFIG_INSMOD=y
  526 +CONFIG_RMMOD=y
  527 +CONFIG_LSMOD=y
  528 +# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
  529 +CONFIG_MODPROBE=y
  530 +# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
  531 +CONFIG_DEPMOD=y
  532 +
  533 +#
  534 +# Options common to multiple modutils
  535 +#
  536 +# CONFIG_FEATURE_2_4_MODULES is not set
  537 +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
  538 +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
  539 +# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
  540 +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
  541 +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
  542 +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
  543 +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
  544 +CONFIG_FEATURE_MODUTILS_ALIAS=y
  545 +CONFIG_FEATURE_MODUTILS_SYMBOLS=y
  546 +CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
  547 +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
  548 +
  549 +#
  550 +# Linux System Utilities
  551 +#
  552 +# CONFIG_BLOCKDEV is not set
  553 +# CONFIG_FATATTR is not set
  554 +CONFIG_FSTRIM=y
  555 +# CONFIG_MDEV is not set
  556 +# CONFIG_FEATURE_MDEV_CONF is not set
  557 +# CONFIG_FEATURE_MDEV_RENAME is not set
  558 +# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
  559 +# CONFIG_FEATURE_MDEV_EXEC is not set
  560 +# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
  561 +CONFIG_MOUNT=y
  562 +# CONFIG_FEATURE_MOUNT_FAKE is not set
  563 +# CONFIG_FEATURE_MOUNT_VERBOSE is not set
  564 +# CONFIG_FEATURE_MOUNT_HELPERS is not set
  565 +CONFIG_FEATURE_MOUNT_LABEL=y
  566 +# CONFIG_FEATURE_MOUNT_NFS is not set
  567 +# CONFIG_FEATURE_MOUNT_CIFS is not set
  568 +CONFIG_FEATURE_MOUNT_FLAGS=y
  569 +CONFIG_FEATURE_MOUNT_FSTAB=y
  570 +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set
  571 +# CONFIG_REV is not set
  572 +# CONFIG_UEVENT is not set
  573 +# CONFIG_ACPID is not set
  574 +# CONFIG_FEATURE_ACPID_COMPAT is not set
  575 +CONFIG_BLKID=y
  576 +CONFIG_FEATURE_BLKID_TYPE=y
  577 +CONFIG_DMESG=y
  578 +CONFIG_FEATURE_DMESG_PRETTY=y
  579 +CONFIG_FBSET=y
  580 +CONFIG_FEATURE_FBSET_FANCY=y
  581 +CONFIG_FEATURE_FBSET_READMODE=y
  582 +# CONFIG_FDFLUSH is not set
  583 +# CONFIG_FDFORMAT is not set
  584 +CONFIG_FDISK=y
  585 +# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
  586 +CONFIG_FEATURE_FDISK_WRITABLE=y
  587 +# CONFIG_FEATURE_AIX_LABEL is not set
  588 +# CONFIG_FEATURE_SGI_LABEL is not set
  589 +# CONFIG_FEATURE_SUN_LABEL is not set
  590 +# CONFIG_FEATURE_OSF_LABEL is not set
  591 +# CONFIG_FEATURE_GPT_LABEL is not set
  592 +# CONFIG_FEATURE_FDISK_ADVANCED is not set
  593 +# CONFIG_FINDFS is not set
  594 +CONFIG_FLOCK=y
  595 +# CONFIG_FREERAMDISK is not set
  596 +# CONFIG_FSCK_MINIX is not set
  597 +# CONFIG_MKFS_EXT2 is not set
  598 +# CONFIG_MKFS_MINIX is not set
  599 +# CONFIG_FEATURE_MINIX2 is not set
  600 +# CONFIG_MKFS_REISER is not set
  601 +# CONFIG_MKFS_VFAT is not set
  602 +CONFIG_GETOPT=y
  603 +CONFIG_FEATURE_GETOPT_LONG=y
  604 +CONFIG_HEXDUMP=y
  605 +CONFIG_FEATURE_HEXDUMP_REVERSE=y
  606 +# CONFIG_HD is not set
  607 +CONFIG_HWCLOCK=y
  608 +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
  609 +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
  610 +# CONFIG_IPCRM is not set
  611 +# CONFIG_IPCS is not set
  612 +CONFIG_LOSETUP=y
  613 +# CONFIG_LSPCI is not set
  614 +# CONFIG_LSUSB is not set
  615 +CONFIG_MKSWAP=y
  616 +# CONFIG_FEATURE_MKSWAP_UUID is not set
  617 +CONFIG_MORE=y
  618 +CONFIG_PIVOT_ROOT=y
  619 +CONFIG_RDATE=y
  620 +# CONFIG_RDEV is not set
  621 +# CONFIG_READPROFILE is not set
  622 +# CONFIG_RTCWAKE is not set
  623 +# CONFIG_SCRIPT is not set
  624 +# CONFIG_SCRIPTREPLAY is not set
  625 +# CONFIG_SETARCH is not set
  626 +CONFIG_SWAPONOFF=y
  627 +CONFIG_FEATURE_SWAPON_DISCARD=y
  628 +CONFIG_FEATURE_SWAPON_PRI=y
  629 +CONFIG_SWITCH_ROOT=y
  630 +CONFIG_UMOUNT=y
  631 +CONFIG_FEATURE_UMOUNT_ALL=y
  632 +
  633 +#
  634 +# Common options for mount/umount
  635 +#
  636 +CONFIG_FEATURE_MOUNT_LOOP=y
  637 +CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
  638 +# CONFIG_FEATURE_MTAB_SUPPORT is not set
  639 +CONFIG_VOLUMEID=y
  640 +
  641 +#
  642 +# Filesystem/Volume identification
  643 +#
  644 +CONFIG_FEATURE_VOLUMEID_BTRFS=y
  645 +# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
  646 +# CONFIG_FEATURE_VOLUMEID_EXFAT is not set
  647 +CONFIG_FEATURE_VOLUMEID_EXT=y
  648 +CONFIG_FEATURE_VOLUMEID_F2FS=y
  649 +CONFIG_FEATURE_VOLUMEID_FAT=y
  650 +# CONFIG_FEATURE_VOLUMEID_HFS is not set
  651 +# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
  652 +# CONFIG_FEATURE_VOLUMEID_JFS is not set
  653 +# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
  654 +# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
  655 +# CONFIG_FEATURE_VOLUMEID_LUKS is not set
  656 +# CONFIG_FEATURE_VOLUMEID_NILFS is not set
  657 +# CONFIG_FEATURE_VOLUMEID_NTFS is not set
  658 +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
  659 +# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
  660 +# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
  661 +CONFIG_FEATURE_VOLUMEID_SQUASHFS=y
  662 +# CONFIG_FEATURE_VOLUMEID_SYSV is not set
  663 +# CONFIG_FEATURE_VOLUMEID_UDF is not set
  664 +# CONFIG_FEATURE_VOLUMEID_XFS is not set
  665 +
  666 +#
  667 +# Miscellaneous Utilities
  668 +#
  669 +# CONFIG_CONSPY is not set
  670 +# CONFIG_CROND is not set
  671 +# CONFIG_FEATURE_CROND_D is not set
  672 +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
  673 +CONFIG_FEATURE_CROND_DIR=""
  674 +# CONFIG_I2CGET is not set
  675 +# CONFIG_I2CSET is not set
  676 +# CONFIG_I2CDUMP is not set
  677 +# CONFIG_I2CDETECT is not set
  678 +CONFIG_LESS=y
  679 +CONFIG_FEATURE_LESS_MAXLINES=9999999
  680 +CONFIG_FEATURE_LESS_BRACKETS=y
  681 +CONFIG_FEATURE_LESS_FLAGS=y
  682 +# CONFIG_FEATURE_LESS_TRUNCATE is not set
  683 +# CONFIG_FEATURE_LESS_MARKS is not set
  684 +# CONFIG_FEATURE_LESS_REGEXP is not set
  685 +# CONFIG_FEATURE_LESS_WINCH is not set
  686 +# CONFIG_FEATURE_LESS_ASK_TERMINAL is not set
  687 +# CONFIG_FEATURE_LESS_DASHCMD is not set
  688 +# CONFIG_FEATURE_LESS_LINENUMS is not set
  689 +# CONFIG_NANDWRITE is not set
  690 +# CONFIG_NANDDUMP is not set
  691 +CONFIG_RFKILL=y
  692 +# CONFIG_SETSERIAL is not set
  693 +# CONFIG_TASKSET is not set
  694 +# CONFIG_FEATURE_TASKSET_FANCY is not set
  695 +# CONFIG_UBIATTACH is not set
  696 +# CONFIG_UBIDETACH is not set
  697 +# CONFIG_UBIMKVOL is not set
  698 +# CONFIG_UBIRMVOL is not set
  699 +# CONFIG_UBIRSVOL is not set
  700 +# CONFIG_UBIUPDATEVOL is not set
  701 +# CONFIG_WALL is not set
  702 +# CONFIG_ADJTIMEX is not set
  703 +# CONFIG_BBCONFIG is not set
  704 +# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
  705 +# CONFIG_BEEP is not set
  706 +CONFIG_FEATURE_BEEP_FREQ=0
  707 +CONFIG_FEATURE_BEEP_LENGTH_MS=0
  708 +# CONFIG_CHAT is not set
  709 +# CONFIG_FEATURE_CHAT_NOFAIL is not set
  710 +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
  711 +# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
  712 +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
  713 +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
  714 +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
  715 +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
  716 +# CONFIG_CHRT is not set
  717 +# CONFIG_CRONTAB is not set
  718 +CONFIG_DC=y
  719 +# CONFIG_FEATURE_DC_LIBM is not set
  720 +# CONFIG_DEVFSD is not set
  721 +# CONFIG_DEVFSD_MODLOAD is not set
  722 +# CONFIG_DEVFSD_FG_NP is not set
  723 +# CONFIG_DEVFSD_VERBOSE is not set
  724 +# CONFIG_FEATURE_DEVFS is not set
  725 +# CONFIG_DEVMEM is not set
  726 +# CONFIG_EJECT is not set
  727 +# CONFIG_FEATURE_EJECT_SCSI is not set
  728 +# CONFIG_FBSPLASH is not set
  729 +# CONFIG_FLASHCP is not set
  730 +# CONFIG_FLASH_LOCK is not set
  731 +# CONFIG_FLASH_UNLOCK is not set
  732 +# CONFIG_FLASH_ERASEALL is not set
  733 +# CONFIG_IONICE is not set
  734 +# CONFIG_INOTIFYD is not set
  735 +# CONFIG_LAST is not set
  736 +# CONFIG_FEATURE_LAST_SMALL is not set
  737 +# CONFIG_FEATURE_LAST_FANCY is not set
  738 +# CONFIG_HDPARM is not set
  739 +# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
  740 +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
  741 +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
  742 +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
  743 +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
  744 +# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
  745 +# CONFIG_MAKEDEVS is not set
  746 +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
  747 +# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
  748 +# CONFIG_MAN is not set
  749 +CONFIG_MICROCOM=y
  750 +# CONFIG_MOUNTPOINT is not set
  751 +# CONFIG_MT is not set
  752 +# CONFIG_RAIDAUTORUN is not set
  753 +# CONFIG_READAHEAD is not set
  754 +# CONFIG_RUNLEVEL is not set
  755 +# CONFIG_RX is not set
  756 +# CONFIG_SETSID is not set
  757 +CONFIG_STRINGS=y
  758 +CONFIG_TIME=y
  759 +# CONFIG_TIMEOUT is not set
  760 +# CONFIG_TTYSIZE is not set
  761 +# CONFIG_VOLNAME is not set
  762 +# CONFIG_WATCHDOG is not set
  763 +
  764 +#
  765 +# Networking Utilities
  766 +#
  767 +# CONFIG_NAMEIF is not set
  768 +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
  769 +# CONFIG_NBDCLIENT is not set
  770 +CONFIG_NC=y
  771 +# CONFIG_NC_SERVER is not set
  772 +# CONFIG_NC_EXTRA is not set
  773 +# CONFIG_NC_110_COMPAT is not set
  774 +CONFIG_PING=y
  775 +CONFIG_PING6=y
  776 +CONFIG_FEATURE_FANCY_PING=y
  777 +CONFIG_WGET=y
  778 +CONFIG_FEATURE_WGET_STATUSBAR=y
  779 +CONFIG_FEATURE_WGET_AUTHENTICATION=y
  780 +CONFIG_FEATURE_WGET_LONG_OPTIONS=y
  781 +CONFIG_FEATURE_WGET_TIMEOUT=y
  782 +# CONFIG_FEATURE_WGET_OPENSSL is not set
  783 +# CONFIG_FEATURE_WGET_SSL_HELPER is not set
  784 +# CONFIG_WHOIS is not set
  785 +CONFIG_FEATURE_IPV6=y
  786 +# CONFIG_FEATURE_UNIX_LOCAL is not set
  787 +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
  788 +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
  789 +# CONFIG_ARP is not set
  790 +# CONFIG_ARPING is not set
  791 +# CONFIG_BRCTL is not set
  792 +# CONFIG_FEATURE_BRCTL_FANCY is not set
  793 +# CONFIG_FEATURE_BRCTL_SHOW is not set
  794 +# CONFIG_DNSD is not set
  795 +# CONFIG_ETHER_WAKE is not set
  796 +# CONFIG_FAKEIDENTD is not set
  797 +# CONFIG_FTPD is not set
  798 +# CONFIG_FEATURE_FTP_WRITE is not set
  799 +# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set
  800 +# CONFIG_FEATURE_FTP_AUTHENTICATION is not set
  801 +CONFIG_FTPGET=y
  802 +CONFIG_FTPPUT=y
  803 +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
  804 +CONFIG_HOSTNAME=y
  805 +# CONFIG_HTTPD is not set
  806 +# CONFIG_FEATURE_HTTPD_RANGES is not set
  807 +# CONFIG_FEATURE_HTTPD_SETUID is not set
  808 +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
  809 +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
  810 +# CONFIG_FEATURE_HTTPD_CGI is not set
  811 +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
  812 +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
  813 +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
  814 +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
  815 +# CONFIG_FEATURE_HTTPD_PROXY is not set
  816 +# CONFIG_FEATURE_HTTPD_GZIP is not set
  817 +CONFIG_IFCONFIG=y
  818 +CONFIG_FEATURE_IFCONFIG_STATUS=y
  819 +# CONFIG_FEATURE_IFCONFIG_SLIP is not set
  820 +# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
  821 +CONFIG_FEATURE_IFCONFIG_HW=y
  822 +# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
  823 +# CONFIG_IFENSLAVE is not set
  824 +# CONFIG_IFPLUGD is not set
  825 +CONFIG_IFUPDOWN=y
  826 +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
  827 +CONFIG_FEATURE_IFUPDOWN_IP=y
  828 +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
  829 +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
  830 +CONFIG_FEATURE_IFUPDOWN_IPV4=y
  831 +CONFIG_FEATURE_IFUPDOWN_IPV6=y
  832 +CONFIG_FEATURE_IFUPDOWN_MAPPING=y
  833 +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y
  834 +# CONFIG_INETD is not set
  835 +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
  836 +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
  837 +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
  838 +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
  839 +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
  840 +# CONFIG_FEATURE_INETD_RPC is not set
  841 +CONFIG_IP=y
  842 +CONFIG_FEATURE_IP_ADDRESS=y
  843 +CONFIG_FEATURE_IP_LINK=y
  844 +CONFIG_FEATURE_IP_ROUTE=y
  845 +CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2"
  846 +CONFIG_FEATURE_IP_TUNNEL=y
  847 +# CONFIG_FEATURE_IP_RULE is not set
  848 +# CONFIG_FEATURE_IP_SHORT_FORMS is not set
  849 +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
  850 +# CONFIG_IPADDR is not set
  851 +# CONFIG_IPLINK is not set
  852 +# CONFIG_IPROUTE is not set
  853 +# CONFIG_IPTUNNEL is not set
  854 +# CONFIG_IPRULE is not set
  855 +# CONFIG_IPCALC is not set
  856 +# CONFIG_FEATURE_IPCALC_FANCY is not set
  857 +# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
  858 +CONFIG_NETSTAT=y
  859 +# CONFIG_FEATURE_NETSTAT_WIDE is not set
  860 +# CONFIG_FEATURE_NETSTAT_PRG is not set
  861 +CONFIG_NSLOOKUP=y
  862 +# CONFIG_NTPD is not set
  863 +# CONFIG_FEATURE_NTPD_SERVER is not set
  864 +# CONFIG_FEATURE_NTPD_CONF is not set
  865 +# CONFIG_PSCAN is not set
  866 +CONFIG_ROUTE=y
  867 +# CONFIG_SLATTACH is not set
  868 +# CONFIG_TCPSVD is not set
  869 +CONFIG_TELNET=y
  870 +CONFIG_FEATURE_TELNET_TTYPE=y
  871 +CONFIG_FEATURE_TELNET_AUTOLOGIN=y
  872 +# CONFIG_TELNETD is not set
  873 +# CONFIG_FEATURE_TELNETD_STANDALONE is not set
  874 +# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
  875 +CONFIG_TFTP=y
  876 +CONFIG_TFTPD=y
  877 +
  878 +#
  879 +# Common options for tftp/tftpd
  880 +#
  881 +CONFIG_FEATURE_TFTP_GET=y
  882 +CONFIG_FEATURE_TFTP_PUT=y
  883 +# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
  884 +# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
  885 +# CONFIG_TFTP_DEBUG is not set
  886 +CONFIG_TRACEROUTE=y
  887 +# CONFIG_TRACEROUTE6 is not set
  888 +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
  889 +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
  890 +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
  891 +# CONFIG_TUNCTL is not set
  892 +# CONFIG_FEATURE_TUNCTL_UG is not set
  893 +# CONFIG_UDHCPC6 is not set
  894 +# CONFIG_UDHCPD is not set
  895 +# CONFIG_DHCPRELAY is not set
  896 +CONFIG_DUMPLEASES=y
  897 +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
  898 +# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
  899 +CONFIG_DHCPD_LEASES_FILE=""
  900 +CONFIG_UDHCPC=y
  901 +CONFIG_FEATURE_UDHCPC_ARPING=y
  902 +CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
  903 +# CONFIG_FEATURE_UDHCP_PORT is not set
  904 +CONFIG_UDHCP_DEBUG=0
  905 +# CONFIG_FEATURE_UDHCP_RFC3397 is not set
  906 +# CONFIG_FEATURE_UDHCP_8021Q is not set
  907 +CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
  908 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
  909 +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -b"
  910 +# CONFIG_UDPSVD is not set
  911 +# CONFIG_VCONFIG is not set
  912 +# CONFIG_ZCIP is not set
  913 +
  914 +#
  915 +# Print Utilities
  916 +#
  917 +# CONFIG_LPD is not set
  918 +# CONFIG_LPR is not set
  919 +# CONFIG_LPQ is not set
  920 +
  921 +#
  922 +# Mail Utilities
  923 +#
  924 +# CONFIG_MAKEMIME is not set
  925 +CONFIG_FEATURE_MIME_CHARSET=""
  926 +# CONFIG_POPMAILDIR is not set
  927 +# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
  928 +# CONFIG_REFORMIME is not set
  929 +# CONFIG_FEATURE_REFORMIME_COMPAT is not set
  930 +# CONFIG_SENDMAIL is not set
  931 +
  932 +#
  933 +# Process Utilities
  934 +#
  935 +# CONFIG_IOSTAT is not set
  936 +# CONFIG_LSOF is not set
  937 +# CONFIG_MPSTAT is not set
  938 +# CONFIG_NMETER is not set
  939 +# CONFIG_PMAP is not set
  940 +# CONFIG_POWERTOP is not set
  941 +# CONFIG_PSTREE is not set
  942 +# CONFIG_PWDX is not set
  943 +# CONFIG_SMEMCAP is not set
  944 +CONFIG_TOP=y
  945 +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
  946 +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
  947 +# CONFIG_FEATURE_TOP_SMP_CPU is not set
  948 +# CONFIG_FEATURE_TOP_DECIMALS is not set
  949 +# CONFIG_FEATURE_TOP_SMP_PROCESS is not set
  950 +# CONFIG_FEATURE_TOPMEM is not set
  951 +CONFIG_UPTIME=y
  952 +# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set
  953 +CONFIG_FREE=y
  954 +CONFIG_FUSER=y
  955 +CONFIG_KILL=y
  956 +CONFIG_KILLALL=y
  957 +# CONFIG_KILLALL5 is not set
  958 +# CONFIG_PGREP is not set
  959 +CONFIG_PIDOF=y
  960 +# CONFIG_FEATURE_PIDOF_SINGLE is not set
  961 +# CONFIG_FEATURE_PIDOF_OMIT is not set
  962 +# CONFIG_PKILL is not set
  963 +CONFIG_PS=y
  964 +CONFIG_FEATURE_PS_WIDE=y
  965 +CONFIG_FEATURE_PS_LONG=y
  966 +# CONFIG_FEATURE_PS_TIME is not set
  967 +# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
  968 +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
  969 +CONFIG_RENICE=y
  970 +CONFIG_BB_SYSCTL=y
  971 +# CONFIG_FEATURE_SHOW_THREADS is not set
  972 +CONFIG_WATCH=y
  973 +
  974 +#
  975 +# Runit Utilities
  976 +#
  977 +# CONFIG_RUNSV is not set
  978 +# CONFIG_RUNSVDIR is not set
  979 +# CONFIG_FEATURE_RUNSVDIR_LOG is not set
  980 +# CONFIG_SV is not set
  981 +CONFIG_SV_DEFAULT_SERVICE_DIR=""
  982 +# CONFIG_SVLOGD is not set
  983 +# CONFIG_CHPST is not set
  984 +# CONFIG_SETUIDGID is not set
  985 +# CONFIG_ENVUIDGID is not set
  986 +# CONFIG_ENVDIR is not set
  987 +# CONFIG_SOFTLIMIT is not set
  988 +# CONFIG_CHCON is not set
  989 +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
  990 +# CONFIG_GETENFORCE is not set
  991 +# CONFIG_GETSEBOOL is not set
  992 +# CONFIG_LOAD_POLICY is not set
  993 +# CONFIG_MATCHPATHCON is not set
  994 +# CONFIG_RESTORECON is not set
  995 +# CONFIG_RUNCON is not set
  996 +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
  997 +# CONFIG_SELINUXENABLED is not set
  998 +# CONFIG_SETENFORCE is not set
  999 +# CONFIG_SETFILES is not set
  1000 +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
  1001 +# CONFIG_SETSEBOOL is not set
  1002 +# CONFIG_SESTATUS is not set
  1003 +
  1004 +#
  1005 +# Shells
  1006 +#
  1007 +CONFIG_ASH=y
  1008 +CONFIG_ASH_BASH_COMPAT=y
  1009 +# CONFIG_ASH_IDLE_TIMEOUT is not set
  1010 +CONFIG_ASH_JOB_CONTROL=y
  1011 +CONFIG_ASH_ALIAS=y
  1012 +CONFIG_ASH_GETOPTS=y
  1013 +CONFIG_ASH_BUILTIN_ECHO=y
  1014 +CONFIG_ASH_BUILTIN_PRINTF=y
  1015 +CONFIG_ASH_BUILTIN_TEST=y
  1016 +CONFIG_ASH_HELP=y
  1017 +CONFIG_ASH_CMDCMD=y
  1018 +# CONFIG_ASH_MAIL is not set
  1019 +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
  1020 +# CONFIG_ASH_RANDOM_SUPPORT is not set
  1021 +CONFIG_ASH_EXPAND_PRMT=y
  1022 +# CONFIG_CTTYHACK is not set
  1023 +# CONFIG_HUSH is not set
  1024 +# CONFIG_HUSH_BASH_COMPAT is not set
  1025 +# CONFIG_HUSH_BRACE_EXPANSION is not set
  1026 +# CONFIG_HUSH_HELP is not set
  1027 +# CONFIG_HUSH_INTERACTIVE is not set
  1028 +# CONFIG_HUSH_SAVEHISTORY is not set
  1029 +# CONFIG_HUSH_JOB is not set
  1030 +# CONFIG_HUSH_TICK is not set
  1031 +# CONFIG_HUSH_IF is not set
  1032 +# CONFIG_HUSH_LOOPS is not set
  1033 +# CONFIG_HUSH_CASE is not set
  1034 +# CONFIG_HUSH_FUNCTIONS is not set
  1035 +# CONFIG_HUSH_LOCAL is not set
  1036 +# CONFIG_HUSH_RANDOM_SUPPORT is not set
  1037 +# CONFIG_HUSH_EXPORT_N is not set
  1038 +# CONFIG_HUSH_MODE_X is not set
  1039 +# CONFIG_MSH is not set
  1040 +CONFIG_FEATURE_SH_IS_ASH=y
  1041 +# CONFIG_FEATURE_SH_IS_HUSH is not set
  1042 +# CONFIG_FEATURE_SH_IS_NONE is not set
  1043 +# CONFIG_FEATURE_BASH_IS_ASH is not set
  1044 +# CONFIG_FEATURE_BASH_IS_HUSH is not set
  1045 +CONFIG_FEATURE_BASH_IS_NONE=y
  1046 +CONFIG_SH_MATH_SUPPORT=y
  1047 +# CONFIG_SH_MATH_SUPPORT_64 is not set
  1048 +CONFIG_FEATURE_SH_EXTRA_QUIET=y
  1049 +# CONFIG_FEATURE_SH_STANDALONE is not set
  1050 +# CONFIG_FEATURE_SH_NOFORK is not set
  1051 +CONFIG_FEATURE_SH_HISTFILESIZE=y
  1052 +
  1053 +#
  1054 +# System Logging Utilities
  1055 +#
  1056 +CONFIG_SYSLOGD=y
  1057 +CONFIG_FEATURE_ROTATE_LOGFILE=y
  1058 +CONFIG_FEATURE_REMOTE_LOG=y
  1059 +CONFIG_FEATURE_SYSLOGD_DUP=y
  1060 +CONFIG_FEATURE_SYSLOGD_CFG=y
  1061 +CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
  1062 +CONFIG_FEATURE_IPC_SYSLOG=y
  1063 +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=64
  1064 +CONFIG_LOGREAD=y
  1065 +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
  1066 +CONFIG_FEATURE_KMSG_SYSLOG=y
  1067 +CONFIG_KLOGD=y
  1068 +
  1069 +#
  1070 +# klogd should not be used together with syslog to kernel printk buffer
  1071 +#
  1072 +CONFIG_FEATURE_KLOGD_KLOGCTL=y
  1073 +CONFIG_LOGGER=y
recipes-core/busybox/busybox/ftpget.cfg
... ... @@ -0,0 +1,4 @@
  1 +CONFIG_FTPGET=y
  2 +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
  3 +CONFIG_FEATURE_DD_IBS_OBS=y
  4 +CONFIG_FEATURE_HEXDUMP_REVERSE=y
recipes-core/busybox/busybox_%.bbappend
... ... @@ -0,0 +1,6 @@
  1 +# Cinfigure Busybox
  2 +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
  3 +
  4 +SRC_URI += "file://defconfig \
  5 + file://ftpget.cfg \
  6 + "
recipes-core/packagegroups/packagegroup-core-tools-testapps.bbappend
... ... @@ -0,0 +1,5 @@
  1 +RDEPENDS_${PN}_remove = "\
  2 + connman-tools \
  3 + connman-tests \
  4 + connman-client \
  5 + "
recipes-kernel/linux/linux-imx-src.inc
... ... @@ -0,0 +1,14 @@
  1 +# Copyright 2017-2018 NXP
  2 +# Released under the MIT license (see COPYING.MIT for the terms)
  3 +
  4 +LICENSE = "GPLv2"
  5 +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
  6 +
  7 +SRCBRANCH = "imx_4.9.88_2.0.0_ga"
  8 +LOCALVERSION = "-${SRCBRANCH}"
  9 +
  10 +KERNEL_SRC ?= "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https"
  11 +SRC_URI = "${KERNEL_SRC};branch=${SRCBRANCH}"
  12 +SRCREV = "5e23f9d6114784d77fd4ed5848953356c3575532"
  13 +
  14 +S = "${WORKDIR}/git"
recipes-kernel/linux/linux-smarcimx8m_4.9.88.bb
... ... @@ -0,0 +1,52 @@
  1 +# Copyright (C) 2013-2016 Freescale Semiconductor
  2 +# Copyright 2017 NXP
  3 +# Copyright 2018 Embedian, Inc..
  4 +# Released under the MIT license (see COPYING.MIT for the terms)
  5 +
  6 +SUMMARY = "Linux Kernel provided and supported by NXP"
  7 +DESCRIPTION = "Linux Kernel provided and supported by NXP with focus on \
  8 +i.MX Family Reference Boards. It includes support for many IPs such as GPU, VPU and IPU."
  9 +
  10 +require recipes-kernel/linux/linux-imx.inc
  11 +require recipes-kernel/linux/linux-imx-src.inc
  12 +
  13 +DEPENDS += "lzop-native bc-native"
  14 +
  15 +DEFAULT_PREFERENCE = "1"
  16 +
  17 +DO_CONFIG_V7_COPY = "no"
  18 +DO_CONFIG_V7_COPY_mx6 = "yes"
  19 +DO_CONFIG_V7_COPY_mx7 = "yes"
  20 +DO_CONFIG_V7_COPY_mx8 = "no"
  21 +
  22 +SRCBRANCH = "smarc-imx_4.9.88_2.0.0_ga"
  23 +
  24 +LOCALVERSION = "-${SRCBRANCH}"
  25 +DEFCONFIG_mx8 = "smarcimx8m_defconfig"
  26 +
  27 +KERNEL_SRC ?= "git@git.embedian.com:developer/smarc-fsl-linux-kernel.git;protocol=git"
  28 +SRC_URI = "${EMB_KERNEL_MIRROR};protocol=ssh;branch=${SRCBRANCH}"
  29 +SRCREV = "a0f48761d7bb4f790f996f0765cced72c1ff3ee2"
  30 +
  31 +S = "${WORKDIR}/git"
  32 +
  33 +addtask copy_defconfig after do_unpack before do_preconfigure
  34 +do_copy_defconfig () {
  35 + install -d ${B}
  36 + if [ ${DO_CONFIG_V7_COPY} = "yes" ]; then
  37 + # copy latest imx_v7_defconfig to use for mx6, mx6ul and mx7
  38 + mkdir -p ${B}
  39 + cp ${S}/arch/arm/configs/imx_v7_defconfig ${B}/.config
  40 + cp ${S}/arch/arm/configs/imx_v7_defconfig ${B}/../defconfig
  41 + else
  42 + # copy latest defconfig to use for mx8
  43 + mkdir -p ${B}
  44 + cp ${S}/arch/arm64/configs/${DEFCONFIG_mx8} ${B}/.config
  45 + cp ${S}/arch/arm64/configs/${DEFCONFIG_mx8} ${B}/../defconfig
  46 + fi
  47 +}
  48 +
  49 +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
  50 +EXTRA_OEMAKE_append_mx6 = " ARCH=arm"
  51 +EXTRA_OEMAKE_append_mx7 = " ARCH=arm"
  52 +EXTRA_OEMAKE_append_mx8 = " ARCH=arm64"
recipes-multimedia/gst-plugins-good/files/increase_min_buffers.patch
... ... @@ -0,0 +1,13 @@
  1 +diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h
  2 +index 231b1ab..58c9d8b 100644
  3 +--- a/sys/v4l2/gstv4l2object.h
  4 ++++ b/sys/v4l2/gstv4l2object.h
  5 +@@ -39,7 +39,7 @@ typedef struct _GstV4l2Xv GstV4l2Xv;
  6 + #include <gstv4l2bufferpool.h>
  7 +
  8 + /* size of v4l2 buffer pool in streaming case */
  9 +-#define GST_V4L2_MIN_BUFFERS 2
  10 ++#define GST_V4L2_MIN_BUFFERS 6
  11 +
  12 + /* max frame width/height */
  13 + #define GST_V4L2_MAX_SIZE (1<<15) /* 2^15 == 32768 */
recipes-multimedia/gst-plugins-good/gstreamer1.0-plugins-good_1.12.%.bbappend
... ... @@ -0,0 +1,6 @@
  1 +FILESEXTRAPATHS_prepend := "${THISDIR}/files/:"
  2 +
  3 +SRC_URI += " \
  4 + file://increase_min_buffers.patch \
  5 +"
  6 +
recipes-multimedia/pulseaudio/pulseaudio/default.pa
... ... @@ -0,0 +1,170 @@
  1 +#!/usr/bin/pulseaudio -nF
  2 +#
  3 +# This file is part of PulseAudio.
  4 +#
  5 +# PulseAudio is free software; you can redistribute it and/or modify it
  6 +# under the terms of the GNU Lesser General Public License as published by
  7 +# the Free Software Foundation; either version 2 of the License, or
  8 +# (at your option) any later version.
  9 +#
  10 +# PulseAudio is distributed in the hope that it will be useful, but
  11 +# WITHOUT ANY WARRANTY; without even the implied warranty of
  12 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13 +# General Public License for more details.
  14 +#
  15 +# You should have received a copy of the GNU Lesser General Public License
  16 +# along with PulseAudio; if not, write to the Free Software Foundation,
  17 +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  18 +
  19 +# This startup script is used only if PulseAudio is started per-user
  20 +# (i.e. not in system mode)
  21 +
  22 +.nofail
  23 +
  24 +### Load something into the sample cache
  25 +#load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav
  26 +#load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav
  27 +#load-sample-lazy pulse-coldplug /usr/share/sounds/startup3.wav
  28 +#load-sample-lazy pulse-access /usr/share/sounds/generic.wav
  29 +
  30 +.fail
  31 +
  32 +### Automatically restore the volume of streams and devices
  33 +load-module module-device-restore
  34 +load-module module-stream-restore
  35 +load-module module-card-restore
  36 +
  37 +### Automatically augment property information from .desktop files
  38 +### stored in /usr/share/application
  39 +load-module module-augment-properties
  40 +
  41 +### Should be after module-*-restore but before module-*-detect
  42 +load-module module-switch-on-port-available
  43 +
  44 +### Load audio drivers statically
  45 +### (it's probably better to not load these drivers manually, but instead
  46 +### use module-udev-detect -- see below -- for doing this automatically)
  47 +load-module module-alsa-sink
  48 +load-module module-alsa-source device=hw:0,0
  49 +#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
  50 +#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
  51 +#load-module module-null-sink
  52 +#load-module module-pipe-sink
  53 +
  54 +### Automatically load driver modules depending on the hardware available
  55 +#.ifexists module-udev-detect.so
  56 +#load-module module-udev-detect tsched=0
  57 +#.else
  58 +### Use the static hardware detection module (for systems that lack udev support)
  59 +#load-module module-detect
  60 +#.endif
  61 +
  62 +### Automatically connect sink and source if JACK server is present
  63 +.ifexists module-jackdbus-detect.so
  64 +.nofail
  65 +load-module module-jackdbus-detect channels=2
  66 +.fail
  67 +.endif
  68 +
  69 +### Automatically load driver modules for Bluetooth hardware
  70 +.ifexists module-bluetooth-policy.so
  71 +load-module module-bluetooth-policy
  72 +.endif
  73 +
  74 +.ifexists module-bluetooth-discover.so
  75 +load-module module-bluetooth-discover
  76 +.endif
  77 +
  78 +### Load several protocols
  79 +.ifexists module-esound-protocol-unix.so
  80 +load-module module-esound-protocol-unix
  81 +.endif
  82 +load-module module-native-protocol-unix
  83 +
  84 +### Network access (may be configured with paprefs, so leave this commented
  85 +### here if you plan to use paprefs)
  86 +#load-module module-esound-protocol-tcp
  87 +#load-module module-native-protocol-tcp
  88 +#load-module module-zeroconf-publish
  89 +
  90 +### Load the RTP receiver module (also configured via paprefs, see above)
  91 +#load-module module-rtp-recv
  92 +
  93 +### Load the RTP sender module (also configured via paprefs, see above)
  94 +#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
  95 +#load-module module-rtp-send source=rtp.monitor
  96 +
  97 +### Load additional modules from GConf settings. This can be configured with the paprefs tool.
  98 +### Please keep in mind that the modules configured by paprefs might conflict with manually
  99 +### loaded modules.
  100 +.ifexists module-gconf.so
  101 +.nofail
  102 +load-module module-gconf
  103 +.fail
  104 +.endif
  105 +
  106 +### Automatically restore the default sink/source when changed by the user
  107 +### during runtime
  108 +### NOTE: This should be loaded as early as possible so that subsequent modules
  109 +### that look up the default sink/source get the right value
  110 +load-module module-default-device-restore
  111 +
  112 +### Automatically move streams to the default sink if the sink they are
  113 +### connected to dies, similar for sources
  114 +load-module module-rescue-streams
  115 +
  116 +### Make sure we always have a sink around, even if it is a null sink.
  117 +load-module module-always-sink
  118 +
  119 +### Honour intended role device property
  120 +load-module module-intended-roles
  121 +
  122 +### Automatically suspend sinks/sources that become idle for too long
  123 +load-module module-suspend-on-idle
  124 +
  125 +### If autoexit on idle is enabled we want to make sure we only quit
  126 +### when no local session needs us anymore.
  127 +.ifexists module-console-kit.so
  128 +load-module module-console-kit
  129 +.endif
  130 +.ifexists module-systemd-login.so
  131 +load-module module-systemd-login
  132 +.endif
  133 +
  134 +### Enable positioned event sounds
  135 +load-module module-position-event-sounds
  136 +
  137 +### Cork music/video streams when a phone stream is active
  138 +load-module module-role-cork
  139 +
  140 +### Modules to allow autoloading of filters (such as echo cancellation)
  141 +### on demand. module-filter-heuristics tries to determine what filters
  142 +### make sense, and module-filter-apply does the heavy-lifting of
  143 +### loading modules and rerouting streams.
  144 +load-module module-filter-heuristics
  145 +load-module module-filter-apply
  146 +
  147 +### Load DBus protocol
  148 +.ifexists module-dbus-protocol.so
  149 +load-module module-dbus-protocol
  150 +.endif
  151 +
  152 +# X11 modules should not be started from default.pa so that one daemon
  153 +# can be shared by multiple sessions.
  154 +
  155 +### Load X11 bell module
  156 +#load-module module-x11-bell sample=bell-windowing-system
  157 +
  158 +### Register ourselves in the X11 session manager
  159 +#load-module module-x11-xsmp
  160 +
  161 +### Publish connection data in the X11 root window
  162 +#.ifexists module-x11-publish.so
  163 +#.nofail
  164 +#load-module module-x11-publish
  165 +#.fail
  166 +#.endif
  167 +
  168 +### Make some devices default
  169 +#set-default-sink output
  170 +#set-default-source input
recipes-multimedia/pulseaudio/pulseaudio/init
... ... @@ -0,0 +1,45 @@
  1 +#!/bin/sh
  2 +
  3 +DAEMON=/usr/bin/pulseaudio
  4 +PIDDIR=/var/run/pulse
  5 +PIDFILE=$PIDDIR/pid
  6 +DAEMONUSER=pulse
  7 +
  8 +pulseaudio_start() {
  9 +
  10 + if [ ! -d ${PIDDIR} ]; then
  11 + mkdir -p ${PIDDIR}
  12 + chown ${DAEMONUSER}:${DAEMONUSER} ${PIDDIR}
  13 + fi
  14 +
  15 + start-stop-daemon -x ${DAEMON} -p ${PIDFILE} --start -- \
  16 + --system --disallow-exit --disable-shm --exit-idle-time=-1 \
  17 + --daemonize --log-target=syslog
  18 +}
  19 +
  20 +pulseaudio_stop() {
  21 + start-stop-daemon -p ${PIDFILE} --stop --retry 5 || echo -n "...which is not running"
  22 +}
  23 +
  24 +case "$1" in
  25 + start|stop)
  26 + pulseaudio_${1}
  27 + ;;
  28 + restart|force-reload)
  29 + if [ -s ${PIDFILE} ] && kill -0 $(cat ${PIDFILE}) >/dev/null 2>&1; then
  30 + pulseaudio_stop
  31 + pulseaudio_start
  32 + fi
  33 + ;;
  34 + force-stop)
  35 + pulseaudio_stop
  36 + killall pulseaudio || true
  37 + sleep 2
  38 + killall -9 pulseaudio || true
  39 + ;;
  40 + *)
  41 + echo "Usage: /etc/init.d/pulseaudio {start|stop|force-stop|restart|force-reload}"
  42 + exit 1
  43 + ;;
  44 +esac
  45 +
recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-bluetooth.conf
... ... @@ -0,0 +1,8 @@
  1 +<busconfig>
  2 +
  3 + <policy user="pulse">
  4 + <allow send_destination="org.bluez"/>
  5 + </policy>
  6 +
  7 +</busconfig>
  8 +
recipes-multimedia/pulseaudio/pulseaudio/pulseaudio.service
... ... @@ -0,0 +1,10 @@
  1 +[Unit]
  2 +Description=PulseAudio system server
  3 +
  4 +[Service]
  5 +Type=forking
  6 +PIDFile=/var/run/pulse/pid
  7 +ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disable-shm --exit-idle-time=-1 --daemonize
  8 +
  9 +[Install]
  10 +WantedBy=multi-user.target
recipes-multimedia/pulseaudio/pulseaudio/system.pa
... ... @@ -0,0 +1,170 @@
  1 +#!/usr/bin/pulseaudio -nF
  2 +#
  3 +# This file is part of PulseAudio.
  4 +#
  5 +# PulseAudio is free software; you can redistribute it and/or modify it
  6 +# under the terms of the GNU Lesser General Public License as published by
  7 +# the Free Software Foundation; either version 2 of the License, or
  8 +# (at your option) any later version.
  9 +#
  10 +# PulseAudio is distributed in the hope that it will be useful, but
  11 +# WITHOUT ANY WARRANTY; without even the implied warranty of
  12 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13 +# General Public License for more details.
  14 +#
  15 +# You should have received a copy of the GNU Lesser General Public License
  16 +# along with PulseAudio; if not, write to the Free Software Foundation,
  17 +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  18 +
  19 +# This startup script is used only if PulseAudio is started per-user
  20 +# (i.e. not in system mode)
  21 +
  22 +.nofail
  23 +
  24 +### Load something into the sample cache
  25 +#load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav
  26 +#load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav
  27 +#load-sample-lazy pulse-coldplug /usr/share/sounds/startup3.wav
  28 +#load-sample-lazy pulse-access /usr/share/sounds/generic.wav
  29 +
  30 +.fail
  31 +
  32 +### Automatically restore the volume of streams and devices
  33 +load-module module-device-restore
  34 +load-module module-stream-restore
  35 +load-module module-card-restore
  36 +
  37 +### Automatically augment property information from .desktop files
  38 +### stored in /usr/share/application
  39 +#load-module module-augment-properties
  40 +
  41 +### Should be after module-*-restore but before module-*-detect
  42 +load-module module-switch-on-port-available
  43 +
  44 +### Load audio drivers statically
  45 +### (it's probably better to not load these drivers manually, but instead
  46 +### use module-udev-detect -- see below -- for doing this automatically)
  47 +load-module module-alsa-sink
  48 +load-module module-alsa-source device=hw:0,0
  49 +#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
  50 +#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
  51 +#load-module module-null-sink
  52 +#load-module module-pipe-sink
  53 +
  54 +### Load driver modules for Bluetooth hardware
  55 +.ifexists module-bluetooth-policy.so
  56 +load-module module-bluetooth-policy
  57 +.endif
  58 +
  59 +.ifexists module-bluetooth-discover.so
  60 +load-module module-bluetooth-discover
  61 +.endif
  62 +
  63 +### Automatically load driver modules depending on the hardware available
  64 +#.ifexists module-udev-detect.so
  65 +#load-module module-udev-detect tsched=0
  66 +#.else
  67 +### Use the static hardware detection module (for systems that lack udev support)
  68 +#load-module module-detect
  69 +#.endif
  70 +
  71 +### Automatically connect sink and source if JACK server is present
  72 +.ifexists module-jackdbus-detect.so
  73 +.nofail
  74 +load-module module-jackdbus-detect channels=2
  75 +.fail
  76 +.endif
  77 +
  78 +### Load several protocols
  79 +.ifexists module-esound-protocol-unix.so
  80 +load-module module-esound-protocol-unix
  81 +.endif
  82 +load-module module-native-protocol-unix auth-anonymous=1
  83 +
  84 +### Network access (may be configured with paprefs, so leave this commented
  85 +### here if you plan to use paprefs)
  86 +#load-module module-esound-protocol-tcp
  87 +#load-module module-native-protocol-tcp
  88 +#load-module module-zeroconf-publish
  89 +
  90 +### Load the RTP receiver module (also configured via paprefs, see above)
  91 +#load-module module-rtp-recv
  92 +
  93 +### Load the RTP sender module (also configured via paprefs, see above)
  94 +#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
  95 +#load-module module-rtp-send source=rtp.monitor
  96 +
  97 +### Load additional modules from GConf settings. This can be configured with the paprefs tool.
  98 +### Please keep in mind that the modules configured by paprefs might conflict with manually
  99 +### loaded modules.
  100 +#.ifexists module-gconf.so
  101 +#.nofail
  102 +#load-module module-gconf
  103 +#.fail
  104 +#.endif
  105 +
  106 +### Automatically restore the default sink/source when changed by the user
  107 +### during runtime
  108 +### NOTE: This should be loaded as early as possible so that subsequent modules
  109 +### that look up the default sink/source get the right value
  110 +load-module module-default-device-restore
  111 +
  112 +### Automatically move streams to the default sink if the sink they are
  113 +### connected to dies, similar for sources
  114 +load-module module-rescue-streams
  115 +
  116 +### Make sure we always have a sink around, even if it is a null sink.
  117 +load-module module-always-sink
  118 +
  119 +### Honour intended role device property
  120 +load-module module-intended-roles
  121 +
  122 +### Automatically suspend sinks/sources that become idle for too long
  123 +load-module module-suspend-on-idle
  124 +
  125 +### If autoexit on idle is enabled we want to make sure we only quit
  126 +### when no local session needs us anymore.
  127 +#.ifexists module-console-kit.so
  128 +#load-module module-console-kit
  129 +#.endif
  130 +#.ifexists module-systemd-login.so
  131 +#load-module module-systemd-login
  132 +#.endif
  133 +
  134 +### Enable positioned event sounds
  135 +load-module module-position-event-sounds
  136 +
  137 +### Cork music/video streams when a phone stream is active
  138 +load-module module-role-cork
  139 +
  140 +### Modules to allow autoloading of filters (such as echo cancellation)
  141 +### on demand. module-filter-heuristics tries to determine what filters
  142 +### make sense, and module-filter-apply does the heavy-lifting of
  143 +### loading modules and rerouting streams.
  144 +load-module module-filter-heuristics
  145 +load-module module-filter-apply
  146 +
  147 +### Load DBus protocol
  148 +.ifexists module-dbus-protocol.so
  149 +load-module module-dbus-protocol
  150 +.endif
  151 +
  152 +# X11 modules should not be started from default.pa so that one daemon
  153 +# can be shared by multiple sessions.
  154 +
  155 +### Load X11 bell module
  156 +#load-module module-x11-bell sample=bell-windowing-system
  157 +
  158 +### Register ourselves in the X11 session manager
  159 +#load-module module-x11-xsmp
  160 +
  161 +### Publish connection data in the X11 root window
  162 +#.ifexists module-x11-publish.so
  163 +#.nofail
  164 +#load-module module-x11-publish
  165 +#.fail
  166 +#.endif
  167 +
  168 +### Make some devices default
  169 +#set-default-sink output
  170 +#set-default-source input
recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
... ... @@ -0,0 +1,31 @@
  1 +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}/:"
  2 +
  3 +SRC_URI += " \
  4 + file://init \
  5 + file://pulseaudio-bluetooth.conf \
  6 + file://system.pa \
  7 + file://pulseaudio.service \
  8 +"
  9 +
  10 +FILES_${PN} += "${sysconfdir}/systemd/system/*"
  11 +
  12 +do_install_append() {
  13 + install -d ${D}/${sysconfdir}/dbus-1/system.d
  14 + install -d ${D}/${sysconfdir}/pulse
  15 +
  16 + install -m 0644 ${WORKDIR}/pulseaudio-bluetooth.conf ${D}/${sysconfdir}/dbus-1/system.d
  17 + install -m 0644 ${WORKDIR}/system.pa ${D}/${sysconfdir}/pulse
  18 +
  19 + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
  20 + install -d ${D}${sysconfdir}/systemd/system/multi-user.target.wants
  21 + install -m 0644 ${WORKDIR}/pulseaudio.service ${D}${sysconfdir}/systemd/system
  22 + ln -sf ${sysconfdir}/systemd/system/pulseaudio.service \
  23 + ${D}${sysconfdir}/systemd/system/multi-user.target.wants/pulseaudio.service
  24 + else
  25 + install -d ${D}/${sysconfdir}/init.d
  26 + install -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/pulseaudio
  27 + update-rc.d -r ${D} pulseaudio defaults
  28 + fi
  29 +
  30 + rm -f ${D}/${sysconfdir}/xdg/autostart/pulseaudio.desktop
  31 +}
recipes-security/optee-imx/optee-os-imx_git.bbappend
... ... @@ -0,0 +1,3 @@
  1 +# Add smarcimx8m compatible machine.
  2 +
  3 +COMPATIBLE_MACHINE += "(smarcimx8m2g|smarcimx8m2gind|smarcimx8m4g|mx6|mx7|mx8m)"