From 8da26e4982ee9584cf2dd508bb8b567502b8fcce Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Fri, 1 Feb 2019 18:39:10 +0800 Subject: [PATCH] Yocto rocko meta layer support for SMARC-iMX8M, initial commit --- conf/layer.conf | 25 + conf/machine/smarcimx8m2g.conf | 85 + conf/site.conf | 58 + ...upport-to-different-LPDDR4-configurations.patch | 2055 ++++++++++++++++++++ ...uning-smc-case-lower-cpu-vpu-memory-acces.patch | 35 + recipes-bsp/imx-atf/imx-atf_1.4.1.bbappend | 6 + recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend | 8 + recipes-bsp/pm-utils/pm-utils_%.bbappend | 7 + recipes-bsp/u-boot/u-boot-smarcimx8m_2017.03.bb | 55 + recipes-core/busybox/busybox/defconfig | 1073 ++++++++++ recipes-core/busybox/busybox/ftpget.cfg | 4 + recipes-core/busybox/busybox_%.bbappend | 6 + .../packagegroup-core-tools-testapps.bbappend | 5 + recipes-kernel/linux/linux-imx-src.inc | 14 + recipes-kernel/linux/linux-smarcimx8m_4.9.88.bb | 52 + .../files/increase_min_buffers.patch | 13 + .../gstreamer1.0-plugins-good_1.12.%.bbappend | 6 + .../pulseaudio/pulseaudio/default.pa | 170 ++ recipes-multimedia/pulseaudio/pulseaudio/init | 45 + .../pulseaudio/pulseaudio-bluetooth.conf | 8 + .../pulseaudio/pulseaudio/pulseaudio.service | 10 + recipes-multimedia/pulseaudio/pulseaudio/system.pa | 170 ++ .../pulseaudio/pulseaudio_%.bbappend | 31 + .../optee-imx/optee-os-imx_git.bbappend | 3 + 24 files changed, 3944 insertions(+) create mode 100644 conf/layer.conf create mode 100644 conf/machine/smarcimx8m2g.conf create mode 100644 conf/site.conf create mode 100644 recipes-bsp/imx-atf/imx-atf/0001-ATF-support-to-different-LPDDR4-configurations.patch create mode 100644 recipes-bsp/imx-atf/imx-atf/atf-0001-1-add-noc-tuning-smc-case-lower-cpu-vpu-memory-acces.patch create mode 100644 recipes-bsp/imx-atf/imx-atf_1.4.1.bbappend create mode 100644 recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend create mode 100644 recipes-bsp/pm-utils/pm-utils_%.bbappend create mode 100644 recipes-bsp/u-boot/u-boot-smarcimx8m_2017.03.bb create mode 100644 recipes-core/busybox/busybox/defconfig create mode 100644 recipes-core/busybox/busybox/ftpget.cfg create mode 100644 recipes-core/busybox/busybox_%.bbappend create mode 100644 recipes-core/packagegroups/packagegroup-core-tools-testapps.bbappend create mode 100644 recipes-kernel/linux/linux-imx-src.inc create mode 100644 recipes-kernel/linux/linux-smarcimx8m_4.9.88.bb create mode 100644 recipes-multimedia/gst-plugins-good/files/increase_min_buffers.patch create mode 100644 recipes-multimedia/gst-plugins-good/gstreamer1.0-plugins-good_1.12.%.bbappend create mode 100644 recipes-multimedia/pulseaudio/pulseaudio/default.pa create mode 100644 recipes-multimedia/pulseaudio/pulseaudio/init create mode 100644 recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-bluetooth.conf create mode 100644 recipes-multimedia/pulseaudio/pulseaudio/pulseaudio.service create mode 100644 recipes-multimedia/pulseaudio/pulseaudio/system.pa create mode 100644 recipes-multimedia/pulseaudio/pulseaudio_%.bbappend create mode 100644 recipes-security/optee-imx/optee-os-imx_git.bbappend diff --git a/conf/layer.conf b/conf/layer.conf new file mode 100644 index 0000000..e236184 --- /dev/null +++ b/conf/layer.conf @@ -0,0 +1,25 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have a packages directory, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "smarcimx8m" +BBFILE_PATTERN_smarcimx8m := "^${LAYERDIR}/" +BBFILE_PRIORITY_smarcimx8m = "12" + +BBMASK += "meta-freescale/recipes-graphics/clutter/clutter-1.0_%.bbappend" +BBMASK += "meta-freescale/recipes-graphics/cogl/cogl-1.0_%.bbappend" +BBMASK += "meta-freescale/recipes-graphics/mesa/mesa-demos_%.bbappend" +BBMASK += "meta-freescale/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_5.0.11.p8.6.bb" + +HOSTTOOLS_NONFATAL_append = " sha384sum" + +EMB_UBOOT_MIRROR ?= "git://git@git.embedian.com/developer/smarc-t335x-uboot.git" +EMB_KERNEL_MIRROR ?= "git://git@git.embedian.com/developer/smarc-fsl-linux-kernel.git" + +MIRRORS += " \ +${EMB_UBOOT_MIRROR} git://github.com/embedian/smarc-uboot.git;protocol=git;branch=${SRCBRANCH} \n \ +${EMB_KERNEL_MIRROR} git://github.com/embedian/smarc-fsl-linux-kernel.git;protocol=git;branch=${SRCBRANCH} \n \ +" diff --git a/conf/machine/smarcimx8m2g.conf b/conf/machine/smarcimx8m2g.conf new file mode 100644 index 0000000..10cbe83 --- /dev/null +++ b/conf/machine/smarcimx8m2g.conf @@ -0,0 +1,85 @@ +#@TYPE: Machine +#@NAME: EMBEDIAN SMARC-iMX8M COMPUTER ON MODULES with 2GB LPDDR4 MEMORY +#@SOC: i.MX8MQ +#@DESCRIPTION: Machine configuration for Embedian SMARC-iMX8M +#@MAINTAINER: Eric Lee + +MACHINEOVERRIDES =. "mx8:mx8mq:" +MACHINEOVERRIDES =. "imx:" + +require conf/machine/include/arm/arch-arm64.inc +require conf/machine/include/imx-base.inc + +MACHINE_FEATURES += " usbgadget vfat ext2 alsa serial pci wifi bluetooth optee" + +MACHINE_SOCARCH_FILTER_append_mx8mq = "virtual/libopenvg virtual/libgles1 virtual/libgles2 virtual/egl virtual/mesa virtual/libgl virtual/libg2d" + +# Embedian BSP default providers +PREFERRED_PROVIDER_virtual/kernel_smarcimx8m2g ?= "linux-smarcimx8m" +PREFERRED_VERSION_linux-smarcimx8m_smarcimx8m2g = "4.9.88" + +KERNEL_DEVICETREE = " \ + embedian/fsl-smarcimx8mq.dtb \ + embedian/fsl-smarcimx8mq-dcss-lvds.dtb \ + embedian/fsl-smarcimx8mq-lcdif-lvds.dtb \ + embedian/fsl-smarcimx8mq-hdmi.dtb \ + embedian/fsl-smarcimx8mq-hdmi-4k.dtb \ + embedian/fsl-smarcimx8mq-dual-display.dtb \ +" + +IMAGE_BOOTFILES_DEPENDS += "imx-m4-demos:do_deploy" +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" + +PREFERRED_PROVIDER_u-boot_smarcimx8m2g = "u-boot-smarcimx8m" +PREFERRED_PROVIDER_virtual/bootloader_smarcimx8m2g = "u-boot-smarcimx8m" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "smarcimx8mq_2g_ser3_defconfig,sdcard" +SPL_BINARY = "spl/u-boot-spl.bin" + +# Set DDR FIRMWARE +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" + +# Set u-boot DTB +UBOOT_DTB_NAME = "fsl-smarcimx8mq.dtb" + +# Set imx-mkimage boot target +IMXBOOT_TARGETS = "flash_evk flash_evk_no_hdmi" + +SERIAL_CONSOLE = "115200 ttymxc0" + +IMAGE_BOOTLOADER = "imx-boot" + +BOOT_SPACE = "65536" + +LOADADDR = "" +UBOOT_SUFFIX = "bin" +UBOOT_MAKE_TARGET = "" +IMX_BOOT_SEEK = "33" + +OPTEE_BIN_EXT = "8mq" + +MACHINE_EXTRA_RDEPENDS += " \ + pm-utils \ + kmod \ + hdparm \ + gptfdisk \ + lftp \ + vim \ + ntp \ + boost \ + nodejs \ + networkmanager \ + " + +# Packages added to all images (including core-image-minimal) +IMAGE_INSTALL_append = " \ + fsl-rc-local \ +" + +IMAGE_FSTYPES = "tar.bz2" + +# Ship all kernel modules by default +MACHINE_EXTRA_RRECOMMENDS = "kernel-modules" + +MACHINE_FIRMWARE_append_mx8 = " linux-firmware-ath10k" diff --git a/conf/site.conf b/conf/site.conf new file mode 100644 index 0000000..cc907cf --- /dev/null +++ b/conf/site.conf @@ -0,0 +1,58 @@ +# +# local.conf covers user settings, site.conf covers site specific information +# such as proxy server addresses and optionally any shared download location +# +# SITE_CONF_VERSION is increased each time build/conf/site.conf +# changes incompatibly +SCONF_VERSION = "1" + +# Uncomment to cause CVS to use the proxy host specified +#CVS_PROXY_HOST = "proxy.example.com" +#CVS_PROXY_PORT = "81" + +# For svn, you need to create ~/.subversion/servers containing: +#[global] +#http-proxy-host = proxy.example.com +#http-proxy-port = 81 +# + +# Uncomment to cause git to use the proxy host specificed +# although this only works for http +#GIT_PROXY_HOST = "proxy.example.com" +#GIT_PROXY_PORT = "81" +#export GIT_PROXY_COMMAND = "${COREBASE}/scripts/oe-git-proxy-command" + +# Set to yes to have a gitconfig generated for handling proxies; you +# might not want this if you have all that set in your global git +# configuration. If you don't enable it, the rest of the entries +# (_PROXY_IGNORE, etc) don't really work that well +#GIT_CORE_CONFIG = "Yes" + +# Space separate list of hosts to ignore for GIT proxy +#GIT_PROXY_IGNORE = "host.server.com another.server.com" + +# If SOCKS is available run the following command to comple a simple transport +# gcc scripts/oe-git-proxy-socks.c -o oe-git-proxy-socks +# and then share that binary somewhere in PATH, then use the following settings +#GIT_PROXY_HOST = "proxy.example.com" +#GIT_PROXY_PORT = "81" + +# GIT_PROXY_COMMAND is used by git to override all proxy settings from +# configuration files, so we prefix OE_ to avoid breaking havoc on the +# generated (or local) gitconfig's. +#OE_GIT_PROXY_COMMAND = "${COREBASE}/scripts/oe-git-proxy-socks-command" + + +# Uncomment this to use a shared download directory +#DL_DIR = "/some/shared/download/directory/" + +# Uncomment this to use shared state information. +#SSTATE_MIRRORS ?= " \ +# file://.* http://www.embedian.com/oe-sstate-cache/PATH " + +PREMIRRORS_prepend = " \ + svn://.*/.* http://www.embedian.com/oe-downloads/ \n \ + git://.*/.* http://www.embedian.com/oe-downloads/ \n \ + ftp://.*/.* http://www.embedian.com/oe-downloads/ \n \ + http://.*/.* http://www.embedian.com/oe-downloads/ \n \ + https://.*/.* http://www.embedian.com/oe-downloads/ \n \" diff --git a/recipes-bsp/imx-atf/imx-atf/0001-ATF-support-to-different-LPDDR4-configurations.patch b/recipes-bsp/imx-atf/imx-atf/0001-ATF-support-to-different-LPDDR4-configurations.patch new file mode 100644 index 0000000..dbe2f8f --- /dev/null +++ b/recipes-bsp/imx-atf/imx-atf/0001-ATF-support-to-different-LPDDR4-configurations.patch @@ -0,0 +1,2055 @@ +From 9d25029d24435b11c0d2222b22db1b641e7eaea0 Mon Sep 17 00:00:00 2001 +From: Oliver Chen +Date: Thu, 31 May 2018 15:00:45 +0800 +Subject: [PATCH] support to different LPDDR4 configurations 1. auto-detect DDR + boot frequency and backup DRAM PLL cfg 2. save/restore all necessary + DDRC/DDRPHY register to adapt to all LPDDR4 configurations + +--- + plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c | 236 ++-- + plat/freescale/imx8mq/ddr/lpddr4_dvfs.c | 17 + + plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c | 1490 +++++++++++++------------- + plat/freescale/imx8mq/ddr/lpddr4_retention.c | 6 +- + plat/freescale/imx8mq/ddr/lpddr4_swffc.c | 77 +- + plat/freescale/imx8mq/include/soc.h | 1 + + 6 files changed, 921 insertions(+), 906 deletions(-) + +diff --git a/plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c b/plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c +index a4d45bf..eb7a06c 100644 +--- a/plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c ++++ b/plat/freescale/imx8mq/ddr/lpddr4_ddrc_cfg.c +@@ -14,133 +14,135 @@ + #include + #include + +-#define WR_POST_EXT_3200 ++struct ddrc_cfg_param { ++ uint32_t offset; /*reg offset */ ++ uint32_t val; /* config param */ ++}; + +-static inline void umctl2_addrmap(void) +-{ +- /* Address mapping */ +- /* need be refined for DDR vender */ +- /* Address map is from MSB 29: r15, r14, cs, r13-r0, b2-b0, c9-c0 */ +- mmio_write_32(DDRC_ADDRMAP0(0), 0x00000015); +- mmio_write_32(DDRC_ADDRMAP3(0), 0x00000000); +- mmio_write_32(DDRC_ADDRMAP4(0), 0x00001F1F); +- /* bank interleave */ +- mmio_write_32(DDRC_ADDRMAP1(0), 0x00080808); +- mmio_write_32(DDRC_ADDRMAP5(0), 0x07070707); +- mmio_write_32(DDRC_ADDRMAP6(0), 0x08080707); +-} ++/* lpddr4 phy init config parameters */ ++static struct ddrc_cfg_param umctl2_cfg[] = { ++ { .offset = DDRC_DBG1(0) , .val = 0x00 }, ++ { .offset = DDRC_PWRCTL(0) , .val = 0x00 }, ++ { .offset = DDRC_MSTR(0) , .val = 0x00 }, ++ { .offset = DDRC_MSTR2(0) , .val = 0x00 }, ++ { .offset = DDRC_DERATEEN(0), .val = 0x00 }, ++ { .offset = DDRC_DERATEINT(0), .val = 0x00}, ++ { .offset = DDRC_RFSHTMG(0), .val = 0x00 }, ++ { .offset = DDRC_INIT0(0) , .val = 0x00 }, ++ { .offset = DDRC_INIT1(0) , .val = 0x00 }, ++ { .offset = DDRC_INIT3(0) , .val = 0x00 }, ++ { .offset = DDRC_INIT4(0) , .val = 0x00 }, ++ { .offset = DDRC_INIT6(0) , .val = 0x00 }, ++ { .offset = DDRC_INIT7(0) , .val = 0x00 }, ++ { .offset = DDRC_DRAMTMG0(0), .val = 0x00 }, ++ { .offset = DDRC_DRAMTMG1(0), .val = 0x00 }, ++ { .offset = DDRC_DRAMTMG3(0), .val = 0x00 }, ++ { .offset = DDRC_DRAMTMG4(0), .val = 0x00 }, ++ { .offset = DDRC_DRAMTMG5(0), .val = 0x00 }, ++ { .offset = DDRC_DRAMTMG6(0), .val = 0x00 }, ++ { .offset = DDRC_DRAMTMG7(0), .val = 0x00 }, ++ { .offset = DDRC_DRAMTMG12(0), .val = 0x00 }, ++ { .offset = DDRC_DRAMTMG13(0), .val = 0x00 }, ++ { .offset = DDRC_DRAMTMG14(0), .val = 0x00 }, ++ { .offset = DDRC_DRAMTMG17(0), .val = 0x00 }, + +-static inline void umctl2_perf(void) +-{ +- mmio_write_32(DDRC_ODTCFG(0), 0x0b060908); +- mmio_write_32(DDRC_ODTMAP(0), 0x00000000); +- mmio_write_32(DDRC_SCHED(0), 0x29511505); +- mmio_write_32(DDRC_SCHED1(0), 0x0000002c); +- mmio_write_32(DDRC_PERFHPR1(0), 0x5900575b); +- mmio_write_32(DDRC_PERFLPR1(0), 0x00000009); +- mmio_write_32(DDRC_PERFWR1(0), 0x02005574); +- mmio_write_32(DDRC_DBG0(0), 0x00000016); +- mmio_write_32(DDRC_DBG1(0), 0x00000000); +- mmio_write_32(DDRC_DBGCMD(0), 0x00000000); +- mmio_write_32(DDRC_SWCTL(0), 0x00000001); +- mmio_write_32(DDRC_POISONCFG(0), 0x00000011); +- mmio_write_32(DDRC_PCCFG(0), 0x00000111); +- mmio_write_32(DDRC_PCFGR_0(0), 0x000010f3); +- mmio_write_32(DDRC_PCFGW_0(0), 0x000072ff); +- mmio_write_32(DDRC_PCTRL_0(0), 0x00000001); +- mmio_write_32(DDRC_PCFGQOS0_0(0), 0x01110d00); +- mmio_write_32(DDRC_PCFGQOS1_0(0), 0x00620790); +- mmio_write_32(DDRC_PCFGWQOS0_0(0), 0x00100001); +- mmio_write_32(DDRC_PCFGWQOS1_0(0), 0x0000041f); +- mmio_write_32(DDRC_FREQ1_DERATEEN(0), 0x00000202); +- mmio_write_32(DDRC_FREQ1_DERATEINT(0), 0xec78f4b5); +- mmio_write_32(DDRC_FREQ1_RFSHCTL0(0), 0x00618040); +- mmio_write_32(DDRC_FREQ1_RFSHTMG(0), 0x00610090); +-} ++ { .offset = DDRC_ZQCTL0(0), .val = 0x00 }, ++ { .offset = DDRC_ZQCTL1(0), .val = 0x00 }, ++ { .offset = DDRC_ZQCTL2(0), .val = 0x00 }, + +-static inline void umctl2_freq1(void) +-{ +- mmio_write_32(DDRC_FREQ1_DERATEEN(0), 0x0000000); +- mmio_write_32(DDRC_FREQ1_DERATEINT(0), 0x0800000); +- mmio_write_32(DDRC_FREQ1_RFSHCTL0(0), 0x0210000); +- mmio_write_32(DDRC_FREQ1_RFSHTMG(0), 0x014001E); +- mmio_write_32(DDRC_FREQ1_INIT3(0), 0x0140009); +- mmio_write_32(DDRC_FREQ1_INIT4(0), 0x00310008); +- mmio_write_32(DDRC_FREQ1_INIT6(0), 0x0066004a); +- mmio_write_32(DDRC_FREQ1_INIT7(0), 0x0006004a); +- mmio_write_32(DDRC_FREQ1_DRAMTMG0(0), 0xB070A07); +- mmio_write_32(DDRC_FREQ1_DRAMTMG1(0), 0x003040A); +- mmio_write_32(DDRC_FREQ1_DRAMTMG2(0), 0x305080C); +- mmio_write_32(DDRC_FREQ1_DRAMTMG3(0), 0x0505000); +- mmio_write_32(DDRC_FREQ1_DRAMTMG4(0), 0x3040203); +- mmio_write_32(DDRC_FREQ1_DRAMTMG5(0), 0x2030303); +- mmio_write_32(DDRC_FREQ1_DRAMTMG6(0), 0x2020004); +- mmio_write_32(DDRC_FREQ1_DRAMTMG7(0), 0x0000302); +- mmio_write_32(DDRC_FREQ1_DRAMTMG12(0), 0x0020310); +- mmio_write_32(DDRC_FREQ1_DRAMTMG13(0), 0xA100002); +- mmio_write_32(DDRC_FREQ1_DRAMTMG14(0), 0x0000020); +- mmio_write_32(DDRC_FREQ1_DRAMTMG17(0), 0x0220011); +- mmio_write_32(DDRC_FREQ1_ZQCTL0(0), 0x0A70005); +- mmio_write_32(DDRC_FREQ1_DFITMG0(0), 0x3858202); +- mmio_write_32(DDRC_FREQ1_DFITMG1(0), 0x0000404); +- mmio_write_32(DDRC_FREQ1_DFITMG2(0), 0x0000502); +-} ++ { .offset = DDRC_DFITMG0(0), .val = 0x00 }, ++ { .offset = DDRC_DFITMG1(0), .val = 0x00 }, ++ { .offset = DDRC_DFIUPD0(0), .val = 0x00 }, ++ { .offset = DDRC_DFIUPD1(0), .val = 0x00 }, ++ { .offset = DDRC_DFIUPD2(0), .val = 0x00 }, ++ { .offset = DDRC_DFIMISC(0), .val = 0x00 }, ++ { .offset = DDRC_DFITMG2(0), .val = 0x00 }, + +-void lpddr4_cfg_umctl2(void) +-{ +- /* Start to config, default 3200mbps */ +- mmio_write_32(DDRC_DBG1(0), 0x00000001); +- mmio_write_32(DDRC_PWRCTL(0), 0x00000001); +- mmio_write_32(DDRC_MSTR(0), 0xa3080020); +- mmio_write_32(DDRC_MSTR2(0), 0x00000000); +- mmio_write_32(DDRC_RFSHTMG(0), 0x006100E0); +- mmio_write_32(DDRC_INIT0(0), 0xC003061B); +- mmio_write_32(DDRC_INIT1(0), 0x009D0000); +- mmio_write_32(DDRC_INIT3(0), 0x00D4002D); +-#ifdef WR_POST_EXT_3200 /* recommened to define */ +- mmio_write_32(DDRC_INIT4(0), 0x00330008); +-#else +- mmio_write_32(DDRC_INIT4(0), 0x00310008); +-#endif +- mmio_write_32(DDRC_INIT6(0), 0x0066004a); +- mmio_write_32(DDRC_INIT7(0), 0x0006004a); ++ { .offset = DDRC_DBICTL(0), .val = 0x00 }, ++ { .offset = DDRC_DFIPHYMSTR(0), .val = 0x00 }, + +- mmio_write_32(DDRC_DRAMTMG0(0), 0x1A201B22); +- mmio_write_32(DDRC_DRAMTMG1(0), 0x00060633); +- mmio_write_32(DDRC_DRAMTMG3(0), 0x00C0C000); +- mmio_write_32(DDRC_DRAMTMG4(0), 0x0F04080F); +- mmio_write_32(DDRC_DRAMTMG5(0), 0x02040C0C); +- mmio_write_32(DDRC_DRAMTMG6(0), 0x01010007); +- mmio_write_32(DDRC_DRAMTMG7(0), 0x00000401); +- mmio_write_32(DDRC_DRAMTMG12(0), 0x00020600); +- mmio_write_32(DDRC_DRAMTMG13(0), 0x0C100002); +- mmio_write_32(DDRC_DRAMTMG14(0), 0x000000E6); +- mmio_write_32(DDRC_DRAMTMG17(0), 0x00A00050); ++ { .offset = DDRC_RANKCTL(0), .val = 0x00 }, ++ { .offset = DDRC_DRAMTMG2(0), .val = 0x00 }, + +- mmio_write_32(DDRC_ZQCTL0(0), 0x03200018); +- mmio_write_32(DDRC_ZQCTL1(0), 0x028061A8); +- mmio_write_32(DDRC_ZQCTL2(0), 0x00000000); ++ /* Address mapping */ ++ { .offset = DDRC_ADDRMAP0(0), .val = 0x00 }, ++ { .offset = DDRC_ADDRMAP1(0), .val = 0x00 }, ++ { .offset = DDRC_ADDRMAP2(0), .val = 0x00 }, ++ { .offset = DDRC_ADDRMAP3(0), .val = 0x00 }, ++ { .offset = DDRC_ADDRMAP4(0), .val = 0x00 }, ++ { .offset = DDRC_ADDRMAP5(0), .val = 0x00 }, ++ { .offset = DDRC_ADDRMAP6(0), .val = 0x00 }, + +- mmio_write_32(DDRC_DFITMG0(0), 0x0497820A); +- mmio_write_32(DDRC_DFITMG1(0), 0x00080303); +- mmio_write_32(DDRC_DFIUPD0(0), 0xE0400018); +- mmio_write_32(DDRC_DFIUPD1(0), 0x00DF00E4); +- mmio_write_32(DDRC_DFIUPD2(0), 0x80000000); +- mmio_write_32(DDRC_DFIMISC(0), 0x00000011); +- mmio_write_32(DDRC_DFITMG2(0), 0x0000170A); ++ /* performance tunning */ ++ { .offset = DDRC_ODTCFG(0), .val = 0x00 }, ++ { .offset = DDRC_ODTMAP(0), .val = 0x00 }, ++ { .offset = DDRC_SCHED(0), .val = 0x00 }, ++ { .offset = DDRC_SCHED1(0), .val = 0x00 }, ++ { .offset = DDRC_PERFHPR1(0), .val = 0x00 }, ++ { .offset = DDRC_PERFLPR1(0), .val = 0x00 }, ++ { .offset = DDRC_PERFWR1(0), .val = 0x00 }, ++ { .offset = DDRC_DBG0(0), .val = 0x00 }, ++ { .offset = DDRC_DBG1(0), .val = 0x00 }, ++ { .offset = DDRC_DBGCMD(0), .val = 0x00 }, ++ { .offset = DDRC_SWCTL(0), .val = 0x00 }, ++ { .offset = DDRC_POISONCFG(0), .val = 0x00 }, ++ { .offset = DDRC_PCCFG(0), .val = 0x00 }, ++ { .offset = DDRC_PCFGR_0(0), .val = 0x00 }, ++ { .offset = DDRC_PCFGW_0(0), .val = 0x00 }, ++ { .offset = DDRC_PCTRL_0(0), .val = 0x00 }, ++ { .offset = DDRC_PCFGQOS0_0(0), .val = 0x00 }, ++ { .offset = DDRC_PCFGQOS1_0(0), .val = 0x00 }, ++ { .offset = DDRC_PCFGWQOS0_0(0), .val = 0x00 }, ++ { .offset = DDRC_PCFGWQOS1_0(0), .val = 0x00 }, + +- mmio_write_32(DDRC_DBICTL(0), 0x00000001); +- mmio_write_32(DDRC_DFIPHYMSTR(0), 0x00000001); ++ /* frequency point 1 */ ++ { .offset = DDRC_FREQ1_DERATEEN(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DERATEINT(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_RFSHCTL0(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_RFSHTMG(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_INIT3(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_INIT4(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_INIT6(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_INIT7(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DRAMTMG0(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DRAMTMG1(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DRAMTMG2(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DRAMTMG3(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DRAMTMG4(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DRAMTMG5(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DRAMTMG6(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DRAMTMG7(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DRAMTMG12(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DRAMTMG13(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DRAMTMG14(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DRAMTMG17(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_ZQCTL0(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DFITMG0(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DFITMG1(0), .val = 0x00 }, ++ { .offset = DDRC_FREQ1_DFITMG2(0), .val = 0x00 } ++}; ++ ++void lpddr4_save_umctl2(void) ++{ ++ int index, offset, size; + +- mmio_write_32(DDRC_RANKCTL(0), 0x00000c99); +- mmio_write_32(DDRC_DRAMTMG2(0), 0x070E171a); ++ size = sizeof(umctl2_cfg) / 8; + +- /* address mapping */ +- umctl2_addrmap(); ++ for (index = 0; index < size; index++) { ++ offset = umctl2_cfg[index].offset; ++ umctl2_cfg[index].val = mmio_read_32(offset); ++ } ++} ++ ++void lpddr4_cfg_umctl2(void) ++{ ++ int index, offset, size, val; + +- /* performance setting */ +- umctl2_perf(); ++ size = sizeof(umctl2_cfg) / 8; + +- /* freq set point 1 setting */ +- umctl2_freq1(); ++ for (index = 0; index < size; index++) { ++ offset = umctl2_cfg[index].offset; ++ val = umctl2_cfg[index].val; ++ mmio_write_32(offset,val); ++ } + } +diff --git a/plat/freescale/imx8mq/ddr/lpddr4_dvfs.c b/plat/freescale/imx8mq/ddr/lpddr4_dvfs.c +index 4cb525b..5346642 100644 +--- a/plat/freescale/imx8mq/ddr/lpddr4_dvfs.c ++++ b/plat/freescale/imx8mq/ddr/lpddr4_dvfs.c +@@ -16,6 +16,7 @@ + + #include "lpddr4_dvfs.h" + ++#define HW_DRAM_PLL_CFG2_ADDR (0x30360000 + 0x68) + #define DDRC_LPDDR4 (1 << 5) + #define DDR_TYPE_MASK 0x3f + +@@ -27,6 +28,12 @@ static volatile uint32_t wfe_done; + static volatile bool wait_ddrc_hwffc_done = true; + + static unsigned int init_fsp = 0x1; ++unsigned int default_ddr_pllcfg = 0; ++ ++static inline int get_init_fsp(void) ++{ ++ return (mmio_read_32(DDRC_DFIMISC(0))>>8)&0xf; ++} + + static inline int get_ddr_type(void) + { +@@ -35,6 +42,15 @@ static inline int get_ddr_type(void) + + void lpddr4_switch_to_3200(void) + { ++ init_fsp = get_init_fsp(); ++ if(init_fsp == 0) ++ { ++ default_ddr_pllcfg = mmio_read_32(HW_DRAM_PLL_CFG2_ADDR); ++ return; ++ } ++ ++ default_ddr_pllcfg = 0; ++ + if (get_ddr_type() == DDRC_LPDDR4) + lpddr4_dvfs_swffc(init_fsp, 0x0); + } +@@ -98,6 +114,7 @@ int lpddr4_dvfs_handler(uint32_t smc_fid, + init_fsp = (~init_fsp) & 0x1; + #else + lpddr4_dvfs_swffc(init_fsp, target_freq); ++ init_fsp = (~init_fsp) & 0x1; + #endif + wait_ddrc_hwffc_done = false; + wfe_done = 0; +diff --git a/plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c b/plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c +index d6c57e0..ddba7f2 100644 +--- a/plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c ++++ b/plat/freescale/imx8mq/ddr/lpddr4_phy_cfg.c +@@ -20,7 +20,7 @@ struct ddrphy_cfg_param { + }; + + /* lpddr4 phy init config parameters */ +-static const struct ddrphy_cfg_param phy_init_cfg[] = { ++static struct ddrphy_cfg_param phy_cfg[] = { + { .offset = 0x20110, .val = 0x02 }, /* MapCAB0toDFI */ + { .offset = 0x20111, .val = 0x03 }, /* MapCAB1toDFI */ + { .offset = 0x20112, .val = 0x04 }, /* MapCAB2toDFI */ +@@ -69,6 +69,7 @@ static const struct ddrphy_cfg_param phy_init_cfg[] = { + { .offset = 0x200c5, .val = 0x19 }, // DWC_DDRPHYA_MASTER0_PllCtrl2_p0 + { .offset = 0x1200c5, .val = 0x7 }, // DWC_DDRPHYA_MASTER0_PllCtrl2_p1 + { .offset = 0x2200c5, .val = 0x7 }, // DWC_DDRPHYA_MASTER0_PllCtrl2_p2 ++ { .offset = 0x200cb, .val = 0x0 }, // DWC_DDRPHYA_MASTER0_PllCtrl3 + { .offset = 0x2002e, .val = 0x2 }, // DWC_DDRPHYA_MASTER0_ARdPtrInitVal_p0 + { .offset = 0x12002e, .val = 0x1 }, // DWC_DDRPHYA_MASTER0_ARdPtrInitVal_p1 + { .offset = 0x22002e, .val = 0x2 }, // DWC_DDRPHYA_MASTER0_ARdPtrInitVal_p2 +@@ -202,729 +203,738 @@ static const struct ddrphy_cfg_param phy_init_cfg[] = { + { .offset = 0x2002d, .val = 0x0 }, // DWC_DDRPHYA_MASTER0_DMIPinPresent_p0 + { .offset = 0x12002d, .val = 0x0 }, // DWC_DDRPHYA_MASTER0_DMIPinPresent_p1 + { .offset = 0x22002d, .val = 0x0 }, // DWC_DDRPHYA_MASTER0_DMIPinPresent_p2 +-}; + +-/* lpddr4 phy trained CSR registers */ +-static struct ddrphy_cfg_param phy_trained_csr[] = { +- { .offset = 0x200b2, .val = 0 }, +- { .offset = 0x1200b2, .val = 0 }, +- { .offset = 0x2200b2, .val = 0 }, +- { .offset = 0x200cb, .val = 0 }, +- { .offset = 0x10043, .val = 0 }, +- { .offset = 0x110043, .val = 0 }, +- { .offset = 0x210043, .val = 0 }, +- { .offset = 0x10143, .val = 0 }, +- { .offset = 0x110143, .val = 0 }, +- { .offset = 0x210143, .val = 0 }, +- { .offset = 0x11043, .val = 0 }, +- { .offset = 0x111043, .val = 0 }, +- { .offset = 0x211043, .val = 0 }, +- { .offset = 0x11143, .val = 0 }, +- { .offset = 0x111143, .val = 0 }, +- { .offset = 0x211143, .val = 0 }, +- { .offset = 0x12043, .val = 0 }, +- { .offset = 0x112043, .val = 0 }, +- { .offset = 0x212043, .val = 0 }, +- { .offset = 0x12143, .val = 0 }, +- { .offset = 0x112143, .val = 0 }, +- { .offset = 0x212143, .val = 0 }, +- { .offset = 0x13043, .val = 0 }, +- { .offset = 0x113043, .val = 0 }, +- { .offset = 0x213043, .val = 0 }, +- { .offset = 0x13143, .val = 0 }, +- { .offset = 0x113143, .val = 0 }, +- { .offset = 0x213143, .val = 0 }, +- { .offset = 0x80, .val = 0 }, +- { .offset = 0x100080, .val = 0 }, +- { .offset = 0x200080, .val = 0 }, +- { .offset = 0x1080, .val = 0 }, +- { .offset = 0x101080, .val = 0 }, +- { .offset = 0x201080, .val = 0 }, +- { .offset = 0x2080, .val = 0 }, +- { .offset = 0x102080, .val = 0 }, +- { .offset = 0x202080, .val = 0 }, +- { .offset = 0x3080, .val = 0 }, +- { .offset = 0x103080, .val = 0 }, +- { .offset = 0x203080, .val = 0 }, +- { .offset = 0x4080, .val = 0 }, +- { .offset = 0x104080, .val = 0 }, +- { .offset = 0x204080, .val = 0 }, +- { .offset = 0x5080, .val = 0 }, +- { .offset = 0x105080, .val = 0 }, +- { .offset = 0x205080, .val = 0 }, +- { .offset = 0x6080, .val = 0 }, +- { .offset = 0x106080, .val = 0 }, +- { .offset = 0x206080, .val = 0 }, +- { .offset = 0x7080, .val = 0 }, +- { .offset = 0x107080, .val = 0 }, +- { .offset = 0x207080, .val = 0 }, +- { .offset = 0x8080, .val = 0 }, +- { .offset = 0x108080, .val = 0 }, +- { .offset = 0x208080, .val = 0 }, +- { .offset = 0x9080, .val = 0 }, +- { .offset = 0x109080, .val = 0 }, +- { .offset = 0x209080, .val = 0 }, +- { .offset = 0x10080, .val = 0 }, +- { .offset = 0x110080, .val = 0 }, +- { .offset = 0x210080, .val = 0 }, +- { .offset = 0x10180, .val = 0 }, +- { .offset = 0x110180, .val = 0 }, +- { .offset = 0x210180, .val = 0 }, +- { .offset = 0x11080, .val = 0 }, +- { .offset = 0x111080, .val = 0 }, +- { .offset = 0x211080, .val = 0 }, +- { .offset = 0x11180, .val = 0 }, +- { .offset = 0x111180, .val = 0 }, +- { .offset = 0x211180, .val = 0 }, +- { .offset = 0x12080, .val = 0 }, +- { .offset = 0x112080, .val = 0 }, +- { .offset = 0x212080, .val = 0 }, +- { .offset = 0x12180, .val = 0 }, +- { .offset = 0x112180, .val = 0 }, +- { .offset = 0x212180, .val = 0 }, +- { .offset = 0x13080, .val = 0 }, +- { .offset = 0x113080, .val = 0 }, +- { .offset = 0x213080, .val = 0 }, +- { .offset = 0x13180, .val = 0 }, +- { .offset = 0x113180, .val = 0 }, +- { .offset = 0x213180, .val = 0 }, +- { .offset = 0x10081, .val = 0 }, +- { .offset = 0x110081, .val = 0 }, +- { .offset = 0x210081, .val = 0 }, +- { .offset = 0x10181, .val = 0 }, +- { .offset = 0x110181, .val = 0 }, +- { .offset = 0x210181, .val = 0 }, +- { .offset = 0x11081, .val = 0 }, +- { .offset = 0x111081, .val = 0 }, +- { .offset = 0x211081, .val = 0 }, +- { .offset = 0x11181, .val = 0 }, +- { .offset = 0x111181, .val = 0 }, +- { .offset = 0x211181, .val = 0 }, +- { .offset = 0x12081, .val = 0 }, +- { .offset = 0x112081, .val = 0 }, +- { .offset = 0x212081, .val = 0 }, +- { .offset = 0x12181, .val = 0 }, +- { .offset = 0x112181, .val = 0 }, +- { .offset = 0x212181, .val = 0 }, +- { .offset = 0x13081, .val = 0 }, +- { .offset = 0x113081, .val = 0 }, +- { .offset = 0x213081, .val = 0 }, +- { .offset = 0x13181, .val = 0 }, +- { .offset = 0x113181, .val = 0 }, +- { .offset = 0x213181, .val = 0 }, +- { .offset = 0x100d0, .val = 0 }, +- { .offset = 0x1100d0, .val = 0 }, +- { .offset = 0x2100d0, .val = 0 }, +- { .offset = 0x101d0, .val = 0 }, +- { .offset = 0x1101d0, .val = 0 }, +- { .offset = 0x2101d0, .val = 0 }, +- { .offset = 0x110d0, .val = 0 }, +- { .offset = 0x1110d0, .val = 0 }, +- { .offset = 0x2110d0, .val = 0 }, +- { .offset = 0x111d0, .val = 0 }, +- { .offset = 0x1111d0, .val = 0 }, +- { .offset = 0x2111d0, .val = 0 }, +- { .offset = 0x120d0, .val = 0 }, +- { .offset = 0x1120d0, .val = 0 }, +- { .offset = 0x2120d0, .val = 0 }, +- { .offset = 0x121d0, .val = 0 }, +- { .offset = 0x1121d0, .val = 0 }, +- { .offset = 0x2121d0, .val = 0 }, +- { .offset = 0x130d0, .val = 0 }, +- { .offset = 0x1130d0, .val = 0 }, +- { .offset = 0x2130d0, .val = 0 }, +- { .offset = 0x131d0, .val = 0 }, +- { .offset = 0x1131d0, .val = 0 }, +- { .offset = 0x2131d0, .val = 0 }, +- { .offset = 0x100d1, .val = 0 }, +- { .offset = 0x1100d1, .val = 0 }, +- { .offset = 0x2100d1, .val = 0 }, +- { .offset = 0x101d1, .val = 0 }, +- { .offset = 0x1101d1, .val = 0 }, +- { .offset = 0x2101d1, .val = 0 }, +- { .offset = 0x110d1, .val = 0 }, +- { .offset = 0x1110d1, .val = 0 }, +- { .offset = 0x2110d1, .val = 0 }, +- { .offset = 0x111d1, .val = 0 }, +- { .offset = 0x1111d1, .val = 0 }, +- { .offset = 0x2111d1, .val = 0 }, +- { .offset = 0x120d1, .val = 0 }, +- { .offset = 0x1120d1, .val = 0 }, +- { .offset = 0x2120d1, .val = 0 }, +- { .offset = 0x121d1, .val = 0 }, +- { .offset = 0x1121d1, .val = 0 }, +- { .offset = 0x2121d1, .val = 0 }, +- { .offset = 0x130d1, .val = 0 }, +- { .offset = 0x1130d1, .val = 0 }, +- { .offset = 0x2130d1, .val = 0 }, +- { .offset = 0x131d1, .val = 0 }, +- { .offset = 0x1131d1, .val = 0 }, +- { .offset = 0x2131d1, .val = 0 }, +- { .offset = 0x10068, .val = 0 }, +- { .offset = 0x10168, .val = 0 }, +- { .offset = 0x10268, .val = 0 }, +- { .offset = 0x10368, .val = 0 }, +- { .offset = 0x10468, .val = 0 }, +- { .offset = 0x10568, .val = 0 }, +- { .offset = 0x10668, .val = 0 }, +- { .offset = 0x10768, .val = 0 }, +- { .offset = 0x10868, .val = 0 }, +- { .offset = 0x11068, .val = 0 }, +- { .offset = 0x11168, .val = 0 }, +- { .offset = 0x11268, .val = 0 }, +- { .offset = 0x11368, .val = 0 }, +- { .offset = 0x11468, .val = 0 }, +- { .offset = 0x11568, .val = 0 }, +- { .offset = 0x11668, .val = 0 }, +- { .offset = 0x11768, .val = 0 }, +- { .offset = 0x11868, .val = 0 }, +- { .offset = 0x12068, .val = 0 }, +- { .offset = 0x12168, .val = 0 }, +- { .offset = 0x12268, .val = 0 }, +- { .offset = 0x12368, .val = 0 }, +- { .offset = 0x12468, .val = 0 }, +- { .offset = 0x12568, .val = 0 }, +- { .offset = 0x12668, .val = 0 }, +- { .offset = 0x12768, .val = 0 }, +- { .offset = 0x12868, .val = 0 }, +- { .offset = 0x13068, .val = 0 }, +- { .offset = 0x13168, .val = 0 }, +- { .offset = 0x13268, .val = 0 }, +- { .offset = 0x13368, .val = 0 }, +- { .offset = 0x13468, .val = 0 }, +- { .offset = 0x13568, .val = 0 }, +- { .offset = 0x13668, .val = 0 }, +- { .offset = 0x13768, .val = 0 }, +- { .offset = 0x13868, .val = 0 }, +- { .offset = 0x10069, .val = 0 }, +- { .offset = 0x10169, .val = 0 }, +- { .offset = 0x10269, .val = 0 }, +- { .offset = 0x10369, .val = 0 }, +- { .offset = 0x10469, .val = 0 }, +- { .offset = 0x10569, .val = 0 }, +- { .offset = 0x10669, .val = 0 }, +- { .offset = 0x10769, .val = 0 }, +- { .offset = 0x10869, .val = 0 }, +- { .offset = 0x11069, .val = 0 }, +- { .offset = 0x11169, .val = 0 }, +- { .offset = 0x11269, .val = 0 }, +- { .offset = 0x11369, .val = 0 }, +- { .offset = 0x11469, .val = 0 }, +- { .offset = 0x11569, .val = 0 }, +- { .offset = 0x11669, .val = 0 }, +- { .offset = 0x11769, .val = 0 }, +- { .offset = 0x11869, .val = 0 }, +- { .offset = 0x12069, .val = 0 }, +- { .offset = 0x12169, .val = 0 }, +- { .offset = 0x12269, .val = 0 }, +- { .offset = 0x12369, .val = 0 }, +- { .offset = 0x12469, .val = 0 }, +- { .offset = 0x12569, .val = 0 }, +- { .offset = 0x12669, .val = 0 }, +- { .offset = 0x12769, .val = 0 }, +- { .offset = 0x12869, .val = 0 }, +- { .offset = 0x13069, .val = 0 }, +- { .offset = 0x13169, .val = 0 }, +- { .offset = 0x13269, .val = 0 }, +- { .offset = 0x13369, .val = 0 }, +- { .offset = 0x13469, .val = 0 }, +- { .offset = 0x13569, .val = 0 }, +- { .offset = 0x13669, .val = 0 }, +- { .offset = 0x13769, .val = 0 }, +- { .offset = 0x13869, .val = 0 }, +- { .offset = 0x1008c, .val = 0 }, +- { .offset = 0x11008c, .val = 0 }, +- { .offset = 0x21008c, .val = 0 }, +- { .offset = 0x1018c, .val = 0 }, +- { .offset = 0x11018c, .val = 0 }, +- { .offset = 0x21018c, .val = 0 }, +- { .offset = 0x1108c, .val = 0 }, +- { .offset = 0x11108c, .val = 0 }, +- { .offset = 0x21108c, .val = 0 }, +- { .offset = 0x1118c, .val = 0 }, +- { .offset = 0x11118c, .val = 0 }, +- { .offset = 0x21118c, .val = 0 }, +- { .offset = 0x1208c, .val = 0 }, +- { .offset = 0x11208c, .val = 0 }, +- { .offset = 0x21208c, .val = 0 }, +- { .offset = 0x1218c, .val = 0 }, +- { .offset = 0x11218c, .val = 0 }, +- { .offset = 0x21218c, .val = 0 }, +- { .offset = 0x1308c, .val = 0 }, +- { .offset = 0x11308c, .val = 0 }, +- { .offset = 0x21308c, .val = 0 }, +- { .offset = 0x1318c, .val = 0 }, +- { .offset = 0x11318c, .val = 0 }, +- { .offset = 0x21318c, .val = 0 }, +- { .offset = 0x1008d, .val = 0 }, +- { .offset = 0x11008d, .val = 0 }, +- { .offset = 0x21008d, .val = 0 }, +- { .offset = 0x1018d, .val = 0 }, +- { .offset = 0x11018d, .val = 0 }, +- { .offset = 0x21018d, .val = 0 }, +- { .offset = 0x1108d, .val = 0 }, +- { .offset = 0x11108d, .val = 0 }, +- { .offset = 0x21108d, .val = 0 }, +- { .offset = 0x1118d, .val = 0 }, +- { .offset = 0x11118d, .val = 0 }, +- { .offset = 0x21118d, .val = 0 }, +- { .offset = 0x1208d, .val = 0 }, +- { .offset = 0x11208d, .val = 0 }, +- { .offset = 0x21208d, .val = 0 }, +- { .offset = 0x1218d, .val = 0 }, +- { .offset = 0x11218d, .val = 0 }, +- { .offset = 0x21218d, .val = 0 }, +- { .offset = 0x1308d, .val = 0 }, +- { .offset = 0x11308d, .val = 0 }, +- { .offset = 0x21308d, .val = 0 }, +- { .offset = 0x1318d, .val = 0 }, +- { .offset = 0x11318d, .val = 0 }, +- { .offset = 0x21318d, .val = 0 }, +- { .offset = 0x100c0, .val = 0 }, +- { .offset = 0x1100c0, .val = 0 }, +- { .offset = 0x2100c0, .val = 0 }, +- { .offset = 0x101c0, .val = 0 }, +- { .offset = 0x1101c0, .val = 0 }, +- { .offset = 0x2101c0, .val = 0 }, +- { .offset = 0x102c0, .val = 0 }, +- { .offset = 0x1102c0, .val = 0 }, +- { .offset = 0x2102c0, .val = 0 }, +- { .offset = 0x103c0, .val = 0 }, +- { .offset = 0x1103c0, .val = 0 }, +- { .offset = 0x2103c0, .val = 0 }, +- { .offset = 0x104c0, .val = 0 }, +- { .offset = 0x1104c0, .val = 0 }, +- { .offset = 0x2104c0, .val = 0 }, +- { .offset = 0x105c0, .val = 0 }, +- { .offset = 0x1105c0, .val = 0 }, +- { .offset = 0x2105c0, .val = 0 }, +- { .offset = 0x106c0, .val = 0 }, +- { .offset = 0x1106c0, .val = 0 }, +- { .offset = 0x2106c0, .val = 0 }, +- { .offset = 0x107c0, .val = 0 }, +- { .offset = 0x1107c0, .val = 0 }, +- { .offset = 0x2107c0, .val = 0 }, +- { .offset = 0x108c0, .val = 0 }, +- { .offset = 0x1108c0, .val = 0 }, +- { .offset = 0x2108c0, .val = 0 }, +- { .offset = 0x110c0, .val = 0 }, +- { .offset = 0x1110c0, .val = 0 }, +- { .offset = 0x2110c0, .val = 0 }, +- { .offset = 0x111c0, .val = 0 }, +- { .offset = 0x1111c0, .val = 0 }, +- { .offset = 0x2111c0, .val = 0 }, +- { .offset = 0x112c0, .val = 0 }, +- { .offset = 0x1112c0, .val = 0 }, +- { .offset = 0x2112c0, .val = 0 }, +- { .offset = 0x113c0, .val = 0 }, +- { .offset = 0x1113c0, .val = 0 }, +- { .offset = 0x2113c0, .val = 0 }, +- { .offset = 0x114c0, .val = 0 }, +- { .offset = 0x1114c0, .val = 0 }, +- { .offset = 0x2114c0, .val = 0 }, +- { .offset = 0x115c0, .val = 0 }, +- { .offset = 0x1115c0, .val = 0 }, +- { .offset = 0x2115c0, .val = 0 }, +- { .offset = 0x116c0, .val = 0 }, +- { .offset = 0x1116c0, .val = 0 }, +- { .offset = 0x2116c0, .val = 0 }, +- { .offset = 0x117c0, .val = 0 }, +- { .offset = 0x1117c0, .val = 0 }, +- { .offset = 0x2117c0, .val = 0 }, +- { .offset = 0x118c0, .val = 0 }, +- { .offset = 0x1118c0, .val = 0 }, +- { .offset = 0x2118c0, .val = 0 }, +- { .offset = 0x120c0, .val = 0 }, +- { .offset = 0x1120c0, .val = 0 }, +- { .offset = 0x2120c0, .val = 0 }, +- { .offset = 0x121c0, .val = 0 }, +- { .offset = 0x1121c0, .val = 0 }, +- { .offset = 0x2121c0, .val = 0 }, +- { .offset = 0x122c0, .val = 0 }, +- { .offset = 0x1122c0, .val = 0 }, +- { .offset = 0x2122c0, .val = 0 }, +- { .offset = 0x123c0, .val = 0 }, +- { .offset = 0x1123c0, .val = 0 }, +- { .offset = 0x2123c0, .val = 0 }, +- { .offset = 0x124c0, .val = 0 }, +- { .offset = 0x1124c0, .val = 0 }, +- { .offset = 0x2124c0, .val = 0 }, +- { .offset = 0x125c0, .val = 0 }, +- { .offset = 0x1125c0, .val = 0 }, +- { .offset = 0x2125c0, .val = 0 }, +- { .offset = 0x126c0, .val = 0 }, +- { .offset = 0x1126c0, .val = 0 }, +- { .offset = 0x2126c0, .val = 0 }, +- { .offset = 0x127c0, .val = 0 }, +- { .offset = 0x1127c0, .val = 0 }, +- { .offset = 0x2127c0, .val = 0 }, +- { .offset = 0x128c0, .val = 0 }, +- { .offset = 0x1128c0, .val = 0 }, +- { .offset = 0x2128c0, .val = 0 }, +- { .offset = 0x130c0, .val = 0 }, +- { .offset = 0x1130c0, .val = 0 }, +- { .offset = 0x2130c0, .val = 0 }, +- { .offset = 0x131c0, .val = 0 }, +- { .offset = 0x1131c0, .val = 0 }, +- { .offset = 0x2131c0, .val = 0 }, +- { .offset = 0x132c0, .val = 0 }, +- { .offset = 0x1132c0, .val = 0 }, +- { .offset = 0x2132c0, .val = 0 }, +- { .offset = 0x133c0, .val = 0 }, +- { .offset = 0x1133c0, .val = 0 }, +- { .offset = 0x2133c0, .val = 0 }, +- { .offset = 0x134c0, .val = 0 }, +- { .offset = 0x1134c0, .val = 0 }, +- { .offset = 0x2134c0, .val = 0 }, +- { .offset = 0x135c0, .val = 0 }, +- { .offset = 0x1135c0, .val = 0 }, +- { .offset = 0x2135c0, .val = 0 }, +- { .offset = 0x136c0, .val = 0 }, +- { .offset = 0x1136c0, .val = 0 }, +- { .offset = 0x2136c0, .val = 0 }, +- { .offset = 0x137c0, .val = 0 }, +- { .offset = 0x1137c0, .val = 0 }, +- { .offset = 0x2137c0, .val = 0 }, +- { .offset = 0x138c0, .val = 0 }, +- { .offset = 0x1138c0, .val = 0 }, +- { .offset = 0x2138c0, .val = 0 }, +- { .offset = 0x100c1, .val = 0 }, +- { .offset = 0x1100c1, .val = 0 }, +- { .offset = 0x2100c1, .val = 0 }, +- { .offset = 0x101c1, .val = 0 }, +- { .offset = 0x1101c1, .val = 0 }, +- { .offset = 0x2101c1, .val = 0 }, +- { .offset = 0x102c1, .val = 0 }, +- { .offset = 0x1102c1, .val = 0 }, +- { .offset = 0x2102c1, .val = 0 }, +- { .offset = 0x103c1, .val = 0 }, +- { .offset = 0x1103c1, .val = 0 }, +- { .offset = 0x2103c1, .val = 0 }, +- { .offset = 0x104c1, .val = 0 }, +- { .offset = 0x1104c1, .val = 0 }, +- { .offset = 0x2104c1, .val = 0 }, +- { .offset = 0x105c1, .val = 0 }, +- { .offset = 0x1105c1, .val = 0 }, +- { .offset = 0x2105c1, .val = 0 }, +- { .offset = 0x106c1, .val = 0 }, +- { .offset = 0x1106c1, .val = 0 }, +- { .offset = 0x2106c1, .val = 0 }, +- { .offset = 0x107c1, .val = 0 }, +- { .offset = 0x1107c1, .val = 0 }, +- { .offset = 0x2107c1, .val = 0 }, +- { .offset = 0x108c1, .val = 0 }, +- { .offset = 0x1108c1, .val = 0 }, +- { .offset = 0x2108c1, .val = 0 }, +- { .offset = 0x110c1, .val = 0 }, +- { .offset = 0x1110c1, .val = 0 }, +- { .offset = 0x2110c1, .val = 0 }, +- { .offset = 0x111c1, .val = 0 }, +- { .offset = 0x1111c1, .val = 0 }, +- { .offset = 0x2111c1, .val = 0 }, +- { .offset = 0x112c1, .val = 0 }, +- { .offset = 0x1112c1, .val = 0 }, +- { .offset = 0x2112c1, .val = 0 }, +- { .offset = 0x113c1, .val = 0 }, +- { .offset = 0x1113c1, .val = 0 }, +- { .offset = 0x2113c1, .val = 0 }, +- { .offset = 0x114c1, .val = 0 }, +- { .offset = 0x1114c1, .val = 0 }, +- { .offset = 0x2114c1, .val = 0 }, +- { .offset = 0x115c1, .val = 0 }, +- { .offset = 0x1115c1, .val = 0 }, +- { .offset = 0x2115c1, .val = 0 }, +- { .offset = 0x116c1, .val = 0 }, +- { .offset = 0x1116c1, .val = 0 }, +- { .offset = 0x2116c1, .val = 0 }, +- { .offset = 0x117c1, .val = 0 }, +- { .offset = 0x1117c1, .val = 0 }, +- { .offset = 0x2117c1, .val = 0 }, +- { .offset = 0x118c1, .val = 0 }, +- { .offset = 0x1118c1, .val = 0 }, +- { .offset = 0x2118c1, .val = 0 }, +- { .offset = 0x120c1, .val = 0 }, +- { .offset = 0x1120c1, .val = 0 }, +- { .offset = 0x2120c1, .val = 0 }, +- { .offset = 0x121c1, .val = 0 }, +- { .offset = 0x1121c1, .val = 0 }, +- { .offset = 0x2121c1, .val = 0 }, +- { .offset = 0x122c1, .val = 0 }, +- { .offset = 0x1122c1, .val = 0 }, +- { .offset = 0x2122c1, .val = 0 }, +- { .offset = 0x123c1, .val = 0 }, +- { .offset = 0x1123c1, .val = 0 }, +- { .offset = 0x2123c1, .val = 0 }, +- { .offset = 0x124c1, .val = 0 }, +- { .offset = 0x1124c1, .val = 0 }, +- { .offset = 0x2124c1, .val = 0 }, +- { .offset = 0x125c1, .val = 0 }, +- { .offset = 0x1125c1, .val = 0 }, +- { .offset = 0x2125c1, .val = 0 }, +- { .offset = 0x126c1, .val = 0 }, +- { .offset = 0x1126c1, .val = 0 }, +- { .offset = 0x2126c1, .val = 0 }, +- { .offset = 0x127c1, .val = 0 }, +- { .offset = 0x1127c1, .val = 0 }, +- { .offset = 0x2127c1, .val = 0 }, +- { .offset = 0x128c1, .val = 0 }, +- { .offset = 0x1128c1, .val = 0 }, +- { .offset = 0x2128c1, .val = 0 }, +- { .offset = 0x130c1, .val = 0 }, +- { .offset = 0x1130c1, .val = 0 }, +- { .offset = 0x2130c1, .val = 0 }, +- { .offset = 0x131c1, .val = 0 }, +- { .offset = 0x1131c1, .val = 0 }, +- { .offset = 0x2131c1, .val = 0 }, +- { .offset = 0x132c1, .val = 0 }, +- { .offset = 0x1132c1, .val = 0 }, +- { .offset = 0x2132c1, .val = 0 }, +- { .offset = 0x133c1, .val = 0 }, +- { .offset = 0x1133c1, .val = 0 }, +- { .offset = 0x2133c1, .val = 0 }, +- { .offset = 0x134c1, .val = 0 }, +- { .offset = 0x1134c1, .val = 0 }, +- { .offset = 0x2134c1, .val = 0 }, +- { .offset = 0x135c1, .val = 0 }, +- { .offset = 0x1135c1, .val = 0 }, +- { .offset = 0x2135c1, .val = 0 }, +- { .offset = 0x136c1, .val = 0 }, +- { .offset = 0x1136c1, .val = 0 }, +- { .offset = 0x2136c1, .val = 0 }, +- { .offset = 0x137c1, .val = 0 }, +- { .offset = 0x1137c1, .val = 0 }, +- { .offset = 0x2137c1, .val = 0 }, +- { .offset = 0x138c1, .val = 0 }, +- { .offset = 0x1138c1, .val = 0 }, +- { .offset = 0x2138c1, .val = 0 }, +- { .offset = 0x10020, .val = 0 }, +- { .offset = 0x110020, .val = 0 }, +- { .offset = 0x210020, .val = 0 }, +- { .offset = 0x11020, .val = 0 }, +- { .offset = 0x111020, .val = 0 }, +- { .offset = 0x211020, .val = 0 }, +- { .offset = 0x12020, .val = 0 }, +- { .offset = 0x112020, .val = 0 }, +- { .offset = 0x212020, .val = 0 }, +- { .offset = 0x13020, .val = 0 }, +- { .offset = 0x113020, .val = 0 }, +- { .offset = 0x213020, .val = 0 }, +- { .offset = 0x20072, .val = 0 }, +- { .offset = 0x20073, .val = 0 }, +- { .offset = 0x20074, .val = 0 }, +- { .offset = 0x100aa, .val = 0 }, +- { .offset = 0x110aa, .val = 0 }, +- { .offset = 0x120aa, .val = 0 }, +- { .offset = 0x130aa, .val = 0 }, +- { .offset = 0x20010, .val = 0 }, +- { .offset = 0x120010, .val = 0 }, +- { .offset = 0x220010, .val = 0 }, +- { .offset = 0x20011, .val = 0 }, +- { .offset = 0x120011, .val = 0 }, +- { .offset = 0x220011, .val = 0 }, +- { .offset = 0x100ae, .val = 0 }, +- { .offset = 0x1100ae, .val = 0 }, +- { .offset = 0x2100ae, .val = 0 }, +- { .offset = 0x100af, .val = 0 }, +- { .offset = 0x1100af, .val = 0 }, +- { .offset = 0x2100af, .val = 0 }, +- { .offset = 0x110ae, .val = 0 }, +- { .offset = 0x1110ae, .val = 0 }, +- { .offset = 0x2110ae, .val = 0 }, +- { .offset = 0x110af, .val = 0 }, +- { .offset = 0x1110af, .val = 0 }, +- { .offset = 0x2110af, .val = 0 }, +- { .offset = 0x120ae, .val = 0 }, +- { .offset = 0x1120ae, .val = 0 }, +- { .offset = 0x2120ae, .val = 0 }, +- { .offset = 0x120af, .val = 0 }, +- { .offset = 0x1120af, .val = 0 }, +- { .offset = 0x2120af, .val = 0 }, +- { .offset = 0x130ae, .val = 0 }, +- { .offset = 0x1130ae, .val = 0 }, +- { .offset = 0x2130ae, .val = 0 }, +- { .offset = 0x130af, .val = 0 }, +- { .offset = 0x1130af, .val = 0 }, +- { .offset = 0x2130af, .val = 0 }, +- { .offset = 0x20020, .val = 0 }, +- { .offset = 0x120020, .val = 0 }, +- { .offset = 0x220020, .val = 0 }, +- { .offset = 0x100a0, .val = 0 }, +- { .offset = 0x100a1, .val = 0 }, +- { .offset = 0x100a2, .val = 0 }, +- { .offset = 0x100a3, .val = 0 }, +- { .offset = 0x100a4, .val = 0 }, +- { .offset = 0x100a5, .val = 0 }, +- { .offset = 0x100a6, .val = 0 }, +- { .offset = 0x100a7, .val = 0 }, +- { .offset = 0x110a0, .val = 0 }, +- { .offset = 0x110a1, .val = 0 }, +- { .offset = 0x110a2, .val = 0 }, +- { .offset = 0x110a3, .val = 0 }, +- { .offset = 0x110a4, .val = 0 }, +- { .offset = 0x110a5, .val = 0 }, +- { .offset = 0x110a6, .val = 0 }, +- { .offset = 0x110a7, .val = 0 }, +- { .offset = 0x120a0, .val = 0 }, +- { .offset = 0x120a1, .val = 0 }, +- { .offset = 0x120a2, .val = 0 }, +- { .offset = 0x120a3, .val = 0 }, +- { .offset = 0x120a4, .val = 0 }, +- { .offset = 0x120a5, .val = 0 }, +- { .offset = 0x120a6, .val = 0 }, +- { .offset = 0x120a7, .val = 0 }, +- { .offset = 0x130a0, .val = 0 }, +- { .offset = 0x130a1, .val = 0 }, +- { .offset = 0x130a2, .val = 0 }, +- { .offset = 0x130a3, .val = 0 }, +- { .offset = 0x130a4, .val = 0 }, +- { .offset = 0x130a5, .val = 0 }, +- { .offset = 0x130a6, .val = 0 }, +- { .offset = 0x130a7, .val = 0 }, +- { .offset = 0x2007c, .val = 0 }, +- { .offset = 0x12007c, .val = 0 }, +- { .offset = 0x22007c, .val = 0 }, +- { .offset = 0x2007d, .val = 0 }, +- { .offset = 0x12007d, .val = 0 }, +- { .offset = 0x22007d, .val = 0 }, +- { .offset = 0x400fd, .val = 0 }, +- { .offset = 0x400c0, .val = 0 }, +- { .offset = 0x90201, .val = 0 }, +- { .offset = 0x190201, .val = 0 }, +- { .offset = 0x290201, .val = 0 }, +- { .offset = 0x90202, .val = 0 }, +- { .offset = 0x190202, .val = 0 }, +- { .offset = 0x290202, .val = 0 }, +- { .offset = 0x90203, .val = 0 }, +- { .offset = 0x190203, .val = 0 }, +- { .offset = 0x290203, .val = 0 }, +- { .offset = 0x90204, .val = 0 }, +- { .offset = 0x190204, .val = 0 }, +- { .offset = 0x290204, .val = 0 }, +- { .offset = 0x90205, .val = 0 }, +- { .offset = 0x190205, .val = 0 }, +- { .offset = 0x290205, .val = 0 }, +- { .offset = 0x90206, .val = 0 }, +- { .offset = 0x190206, .val = 0 }, +- { .offset = 0x290206, .val = 0 }, +- { .offset = 0x90207, .val = 0 }, +- { .offset = 0x190207, .val = 0 }, +- { .offset = 0x290207, .val = 0 }, +- { .offset = 0x90208, .val = 0 }, +- { .offset = 0x190208, .val = 0 }, +- { .offset = 0x290208, .val = 0 }, +- { .offset = 0x10062, .val = 0 }, +- { .offset = 0x10162, .val = 0 }, +- { .offset = 0x10262, .val = 0 }, +- { .offset = 0x10362, .val = 0 }, +- { .offset = 0x10462, .val = 0 }, +- { .offset = 0x10562, .val = 0 }, +- { .offset = 0x10662, .val = 0 }, +- { .offset = 0x10762, .val = 0 }, +- { .offset = 0x10862, .val = 0 }, +- { .offset = 0x11062, .val = 0 }, +- { .offset = 0x11162, .val = 0 }, +- { .offset = 0x11262, .val = 0 }, +- { .offset = 0x11362, .val = 0 }, +- { .offset = 0x11462, .val = 0 }, +- { .offset = 0x11562, .val = 0 }, +- { .offset = 0x11662, .val = 0 }, +- { .offset = 0x11762, .val = 0 }, +- { .offset = 0x11862, .val = 0 }, +- { .offset = 0x12062, .val = 0 }, +- { .offset = 0x12162, .val = 0 }, +- { .offset = 0x12262, .val = 0 }, +- { .offset = 0x12362, .val = 0 }, +- { .offset = 0x12462, .val = 0 }, +- { .offset = 0x12562, .val = 0 }, +- { .offset = 0x12662, .val = 0 }, +- { .offset = 0x12762, .val = 0 }, +- { .offset = 0x12862, .val = 0 }, +- { .offset = 0x13062, .val = 0 }, +- { .offset = 0x13162, .val = 0 }, +- { .offset = 0x13262, .val = 0 }, +- { .offset = 0x13362, .val = 0 }, +- { .offset = 0x13462, .val = 0 }, +- { .offset = 0x13562, .val = 0 }, +- { .offset = 0x13662, .val = 0 }, +- { .offset = 0x13762, .val = 0 }, +- { .offset = 0x13862, .val = 0 }, +- { .offset = 0x20077, .val = 0 }, +- { .offset = 0x10001, .val = 0 }, +- { .offset = 0x11001, .val = 0 }, +- { .offset = 0x12001, .val = 0 }, +- { .offset = 0x13001, .val = 0 }, +- { .offset = 0x10040, .val = 0 }, +- { .offset = 0x10140, .val = 0 }, +- { .offset = 0x10240, .val = 0 }, +- { .offset = 0x10340, .val = 0 }, +- { .offset = 0x10440, .val = 0 }, +- { .offset = 0x10540, .val = 0 }, +- { .offset = 0x10640, .val = 0 }, +- { .offset = 0x10740, .val = 0 }, +- { .offset = 0x10840, .val = 0 }, +- { .offset = 0x10030, .val = 0 }, +- { .offset = 0x10130, .val = 0 }, +- { .offset = 0x10230, .val = 0 }, +- { .offset = 0x10330, .val = 0 }, +- { .offset = 0x10430, .val = 0 }, +- { .offset = 0x10530, .val = 0 }, +- { .offset = 0x10630, .val = 0 }, +- { .offset = 0x10730, .val = 0 }, +- { .offset = 0x10830, .val = 0 }, +- { .offset = 0x11040, .val = 0 }, +- { .offset = 0x11140, .val = 0 }, +- { .offset = 0x11240, .val = 0 }, +- { .offset = 0x11340, .val = 0 }, +- { .offset = 0x11440, .val = 0 }, +- { .offset = 0x11540, .val = 0 }, +- { .offset = 0x11640, .val = 0 }, +- { .offset = 0x11740, .val = 0 }, +- { .offset = 0x11840, .val = 0 }, +- { .offset = 0x11030, .val = 0 }, +- { .offset = 0x11130, .val = 0 }, +- { .offset = 0x11230, .val = 0 }, +- { .offset = 0x11330, .val = 0 }, +- { .offset = 0x11430, .val = 0 }, +- { .offset = 0x11530, .val = 0 }, +- { .offset = 0x11630, .val = 0 }, +- { .offset = 0x11730, .val = 0 }, +- { .offset = 0x11830, .val = 0 }, +- { .offset = 0x12040, .val = 0 }, +- { .offset = 0x12140, .val = 0 }, +- { .offset = 0x12240, .val = 0 }, +- { .offset = 0x12340, .val = 0 }, +- { .offset = 0x12440, .val = 0 }, +- { .offset = 0x12540, .val = 0 }, +- { .offset = 0x12640, .val = 0 }, +- { .offset = 0x12740, .val = 0 }, +- { .offset = 0x12840, .val = 0 }, +- { .offset = 0x12030, .val = 0 }, +- { .offset = 0x12130, .val = 0 }, +- { .offset = 0x12230, .val = 0 }, +- { .offset = 0x12330, .val = 0 }, +- { .offset = 0x12430, .val = 0 }, +- { .offset = 0x12530, .val = 0 }, +- { .offset = 0x12630, .val = 0 }, +- { .offset = 0x12730, .val = 0 }, +- { .offset = 0x12830, .val = 0 }, +- { .offset = 0x13040, .val = 0 }, +- { .offset = 0x13140, .val = 0 }, +- { .offset = 0x13240, .val = 0 }, +- { .offset = 0x13340, .val = 0 }, +- { .offset = 0x13440, .val = 0 }, +- { .offset = 0x13540, .val = 0 }, +- { .offset = 0x13640, .val = 0 }, +- { .offset = 0x13740, .val = 0 }, +- { .offset = 0x13840, .val = 0 }, +- { .offset = 0x13030, .val = 0 }, +- { .offset = 0x13130, .val = 0 }, +- { .offset = 0x13230, .val = 0 }, +- { .offset = 0x13330, .val = 0 }, +- { .offset = 0x13430, .val = 0 }, +- { .offset = 0x13530, .val = 0 }, +- { .offset = 0x13630, .val = 0 }, +- { .offset = 0x13730, .val = 0 }, +- { .offset = 0x13830, .val = 0 }, ++ { .offset = 0x100a0, .val = 0x0 }, //DDR_PHY_Dq0LnSel_0 ++ { .offset = 0x100a1, .val = 0x0 }, //DDR_PHY_Dq1LnSel_0 ++ { .offset = 0x100a2, .val = 0x0 }, //DDR_PHY_Dq2LnSel_0 ++ { .offset = 0x100a3, .val = 0x0 }, //DDR_PHY_Dq3LnSel_0 ++ { .offset = 0x100a4, .val = 0x0 }, //DDR_PHY_Dq4LnSel_0 ++ { .offset = 0x100a5, .val = 0x0 }, //DDR_PHY_Dq5LnSel_0 ++ { .offset = 0x100a6, .val = 0x0 }, //DDR_PHY_Dq6LnSel_0 ++ { .offset = 0x100a7, .val = 0x0 }, //DDR_PHY_Dq7LnSel_0 ++ { .offset = 0x110a0, .val = 0x0 }, //DDR_PHY_Dq0LnSel_1 ++ { .offset = 0x110a1, .val = 0x0 }, //DDR_PHY_Dq1LnSel_1 ++ { .offset = 0x110a2, .val = 0x0 }, //DDR_PHY_Dq2LnSel_1 ++ { .offset = 0x110a3, .val = 0x0 }, //DDR_PHY_Dq3LnSel_1 ++ { .offset = 0x110a4, .val = 0x0 }, //DDR_PHY_Dq4LnSel_1 ++ { .offset = 0x110a5, .val = 0x0 }, //DDR_PHY_Dq5LnSel_1 ++ { .offset = 0x110a6, .val = 0x0 }, //DDR_PHY_Dq6LnSel_1 ++ { .offset = 0x110a7, .val = 0x0 }, //DDR_PHY_Dq7LnSel_1 ++ { .offset = 0x120a0, .val = 0x0 }, //DDR_PHY_Dq0LnSel_2 ++ { .offset = 0x120a1, .val = 0x0 }, //DDR_PHY_Dq1LnSel_2 ++ { .offset = 0x120a2, .val = 0x0 }, //DDR_PHY_Dq2LnSel_2 ++ { .offset = 0x120a3, .val = 0x0 }, //DDR_PHY_Dq3LnSel_2 ++ { .offset = 0x120a4, .val = 0x0 }, //DDR_PHY_Dq4LnSel_2 ++ { .offset = 0x120a5, .val = 0x0 }, //DDR_PHY_Dq5LnSel_2 ++ { .offset = 0x120a6, .val = 0x0 }, //DDR_PHY_Dq6LnSel_2 ++ { .offset = 0x120a7, .val = 0x0 }, //DDR_PHY_Dq7LnSel_2 ++ { .offset = 0x130a0, .val = 0x0 }, //DDR_PHY_Dq0LnSel_3 ++ { .offset = 0x130a1, .val = 0x0 }, //DDR_PHY_Dq1LnSel_3 ++ { .offset = 0x130a2, .val = 0x0 }, //DDR_PHY_Dq2LnSel_3 ++ { .offset = 0x130a3, .val = 0x0 }, //DDR_PHY_Dq3LnSel_3 ++ { .offset = 0x130a4, .val = 0x0 }, //DDR_PHY_Dq4LnSel_3 ++ { .offset = 0x130a5, .val = 0x0 }, //DDR_PHY_Dq5LnSel_3 ++ { .offset = 0x130a6, .val = 0x0 }, //DDR_PHY_Dq6LnSel_3 ++ { .offset = 0x130a7, .val = 0x0 }, //DDR_PHY_Dq7LnSel_3 ++ ++ { .offset = 0x80, .val = 0 }, // DWC_DDRPHYA_ANIB0_ATxDly_P0 ++ { .offset = 0x100080, .val = 0 }, // DWC_DDRPHYA_ANIB0_ATxDly_P1 ++ { .offset = 0x200080, .val = 0 }, // DWC_DDRPHYA_ANIB0_ATxDly_P2 ++ { .offset = 0x1080, .val = 0 }, // DWC_DDRPHYA_ANIB1_ATxDly_P0 ++ { .offset = 0x101080, .val = 0 }, // DWC_DDRPHYA_ANIB1_ATxDly_P0 ++ { .offset = 0x201080, .val = 0 }, // DWC_DDRPHYA_ANIB1_ATxDly_P2 ++ { .offset = 0x2080, .val = 0 }, // DWC_DDRPHYA_ANIB2_ATxDly_P0 ++ { .offset = 0x102080, .val = 0 }, // DWC_DDRPHYA_ANIB2_ATxDly_P1 ++ { .offset = 0x202080, .val = 0 }, // DWC_DDRPHYA_ANIB2_ATxDly_P2 ++ { .offset = 0x3080, .val = 0 }, // DWC_DDRPHYA_ANIB3_ATxDly_P0 ++ { .offset = 0x103080, .val = 0 }, // DWC_DDRPHYA_ANIB3_ATxDly_P1 ++ { .offset = 0x203080, .val = 0 }, // DWC_DDRPHYA_ANIB3_ATxDly_P2 ++ { .offset = 0x4080, .val = 0 }, // DWC_DDRPHYA_ANIB4_ATxDly_P0 ++ { .offset = 0x104080, .val = 0 }, // DWC_DDRPHYA_ANIB4_ATxDly_P1 ++ { .offset = 0x204080, .val = 0 }, // DWC_DDRPHYA_ANIB4_ATxDly_P2 ++ { .offset = 0x5080, .val = 0 }, // DWC_DDRPHYA_ANIB5_ATxDly_P0 ++ { .offset = 0x105080, .val = 0 }, // DWC_DDRPHYA_ANIB5_ATxDly_P1 ++ { .offset = 0x205080, .val = 0 }, // DWC_DDRPHYA_ANIB5_ATxDly_P2 ++ { .offset = 0x6080, .val = 0 }, // DWC_DDRPHYA_ANIB6_ATxDly_P0 ++ { .offset = 0x106080, .val = 0 }, // DWC_DDRPHYA_ANIB6_ATxDly_P1 ++ { .offset = 0x206080, .val = 0 }, // DWC_DDRPHYA_ANIB6_ATxDly_P2 ++ { .offset = 0x7080, .val = 0 }, // DWC_DDRPHYA_ANIB7_ATxDly_P0 ++ { .offset = 0x107080, .val = 0 }, // DWC_DDRPHYA_ANIB7_ATxDly_P1 ++ { .offset = 0x207080, .val = 0 }, // DWC_DDRPHYA_ANIB7_ATxDly_P2 ++ { .offset = 0x8080, .val = 0 }, // DWC_DDRPHYA_ANIB8_ATxDly_P0 ++ { .offset = 0x108080, .val = 0 }, // DWC_DDRPHYA_ANIB8_ATxDly_P1 ++ { .offset = 0x208080, .val = 0 }, // DWC_DDRPHYA_ANIB8_ATxDly_P2 ++ { .offset = 0x9080, .val = 0 }, // DWC_DDRPHYA_ANIB9_ATxDly_P0 ++ { .offset = 0x109080, .val = 0 }, // DWC_DDRPHYA_ANIB9_ATxDly_P1 ++ { .offset = 0x209080, .val = 0 }, // DWC_DDRPHYA_ANIB9_ATxDly_P2 ++ ++ { .offset = 0x10080, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b0_P0 ++ { .offset = 0x110080, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b0_P1 ++ { .offset = 0x210080, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b0_P2 ++ { .offset = 0x10180, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b1_P0 ++ { .offset = 0x110180, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b1_P1 ++ { .offset = 0x210180, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg0_b1_P2 ++ { .offset = 0x11080, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b0_P0 ++ { .offset = 0x111080, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b0_P1 ++ { .offset = 0x211080, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b0_P2 ++ { .offset = 0x11180, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b1_P0 ++ { .offset = 0x111180, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b1_P1 ++ { .offset = 0x211180, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg0_b1_P2 ++ { .offset = 0x12080, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b0_P0 ++ { .offset = 0x112080, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b0_P1 ++ { .offset = 0x212080, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b0_P2 ++ { .offset = 0x12180, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b1_P0 ++ { .offset = 0x112180, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b1_P1 ++ { .offset = 0x212180, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg0_b1_P2 ++ { .offset = 0x13080, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b0_P0 ++ { .offset = 0x113080, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b0_P1 ++ { .offset = 0x213080, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b0_P2 ++ { .offset = 0x13180, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b1_P0 ++ { .offset = 0x113180, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b1_P1 ++ { .offset = 0x213180, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg0_b1_P2 ++ ++ { .offset = 0x10081, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b0_P0 ++ { .offset = 0x110081, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b0_P1 ++ { .offset = 0x210081, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b0_P2 ++ { .offset = 0x10181, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b1_P0 ++ { .offset = 0x110181, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b1_P1 ++ { .offset = 0x210181, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxEnDlyTg1_b1_P2 ++ { .offset = 0x11081, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b0_P0 ++ { .offset = 0x111081, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b0_P1 ++ { .offset = 0x211081, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b0_P2 ++ { .offset = 0x11181, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b1_P0 ++ { .offset = 0x111181, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b1_P1 ++ { .offset = 0x211181, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxEnDlyTg1_b1_P2 ++ { .offset = 0x12081, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b0_P0 ++ { .offset = 0x112081, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b0_P1 ++ { .offset = 0x212081, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b0_P2 ++ { .offset = 0x12181, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b1_P0 ++ { .offset = 0x112181, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b1_P1 ++ { .offset = 0x212181, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxEnDlyTg1_b1_P2 ++ { .offset = 0x13081, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b0_P0 ++ { .offset = 0x113081, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b0_P1 ++ { .offset = 0x213081, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b0_P2 ++ { .offset = 0x13181, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b1_P0 ++ { .offset = 0x113181, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b1_P1 ++ { .offset = 0x213181, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxEnDlyTg1_b1_P2 ++ ++ { .offset = 0x100d0, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b0_P0 ++ { .offset = 0x1100d0, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b0_P1, ++ { .offset = 0x2100d0, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b0_P2, ++ { .offset = 0x101d0, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b1_P0 ++ { .offset = 0x1101d0, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b1_P1, ++ { .offset = 0x2101d0, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg0_b1_P2, ++ { .offset = 0x110d0, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b0_P0 ++ { .offset = 0x1110d0, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b0_P1, ++ { .offset = 0x2110d0, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b0_P2, ++ { .offset = 0x111d0, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b1_P0 ++ { .offset = 0x1111d0, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b1_P1, ++ { .offset = 0x2111d0, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg0_b1_P2, ++ { .offset = 0x120d0, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b0_P0 ++ { .offset = 0x1120d0, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b0_P1, ++ { .offset = 0x2120d0, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b0_P2, ++ { .offset = 0x121d0, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b1_P0 ++ { .offset = 0x1121d0, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b1_P1, ++ { .offset = 0x2121d0, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg0_b1_P2, ++ { .offset = 0x130d0, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b0_P0 ++ { .offset = 0x1130d0, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b0_P1, ++ { .offset = 0x2130d0, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b0_P2, ++ { .offset = 0x131d0, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b1_P0 ++ { .offset = 0x1131d0, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b1_P1, ++ { .offset = 0x2131d0, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg0_b1_P2, ++ ++ { .offset = 0x100d1, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b0_P0 ++ { .offset = 0x1100d1, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b0_P1, ++ { .offset = 0x2100d1, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b0_P2, ++ { .offset = 0x101d1, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b1_P0 ++ { .offset = 0x1101d1, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b1_P1, ++ { .offset = 0x2101d1, .val = 0 }, // DWC_DDRPHYA_DBYTE0_TxDqsDlyTg1_b1_P2, ++ { .offset = 0x110d1, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b0_P0 ++ { .offset = 0x1110d1, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b0_P1, ++ { .offset = 0x2110d1, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b0_P2, ++ { .offset = 0x111d1, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b1_P0 ++ { .offset = 0x1111d1, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b1_P1, ++ { .offset = 0x2111d1, .val = 0 }, // DWC_DDRPHYA_DBYTE1_TxDqsDlyTg1_b1_P2, ++ { .offset = 0x120d1, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b0_P0 ++ { .offset = 0x1120d1, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b0_P1, ++ { .offset = 0x2120d1, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b0_P2, ++ { .offset = 0x121d1, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b1_P0 ++ { .offset = 0x1121d1, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b1_P1, ++ { .offset = 0x2121d1, .val = 0 }, // DWC_DDRPHYA_DBYTE2_TxDqsDlyTg1_b1_P2, ++ { .offset = 0x130d1, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b0_P0 ++ { .offset = 0x1130d1, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b0_P1, ++ { .offset = 0x2130d1, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b0_P2, ++ { .offset = 0x131d1, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b1_P0 ++ { .offset = 0x1131d1, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b1_P1, ++ { .offset = 0x2131d1, .val = 0 }, // DWC_DDRPHYA_DBYTE3_TxDqsDlyTg1_b1_P2, ++ ++ { .offset = 0x10068, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b0 ++ { .offset = 0x10168, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b1 ++ { .offset = 0x10268, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b2 ++ { .offset = 0x10368, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b3 ++ { .offset = 0x10468, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b4 ++ { .offset = 0x10568, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b5 ++ { .offset = 0x10668, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b6 ++ { .offset = 0x10768, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_b7 ++ { .offset = 0x10868, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg0_dbi ++ { .offset = 0x11068, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b0 ++ { .offset = 0x11168, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b1 ++ { .offset = 0x11268, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b2 ++ { .offset = 0x11368, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b3 ++ { .offset = 0x11468, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b4 ++ { .offset = 0x11568, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b5 ++ { .offset = 0x11668, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b6 ++ { .offset = 0x11768, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_b7 ++ { .offset = 0x11868, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg0_dbi ++ { .offset = 0x12068, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b0 ++ { .offset = 0x12168, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b1 ++ { .offset = 0x12268, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b2 ++ { .offset = 0x12368, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b3 ++ { .offset = 0x12468, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b4 ++ { .offset = 0x12568, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b5 ++ { .offset = 0x12668, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b6 ++ { .offset = 0x12768, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_b7 ++ { .offset = 0x12868, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg0_dbi ++ { .offset = 0x13068, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b0 ++ { .offset = 0x13168, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b1 ++ { .offset = 0x13268, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b2 ++ { .offset = 0x13368, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b3 ++ { .offset = 0x13468, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b4 ++ { .offset = 0x13568, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b5 ++ { .offset = 0x13668, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b6 ++ { .offset = 0x13768, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_b7 ++ { .offset = 0x13868, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg0_dbi ++ ++ { .offset = 0x10069, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b0 ++ { .offset = 0x10169, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b1 ++ { .offset = 0x10269, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b2 ++ { .offset = 0x10369, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b3 ++ { .offset = 0x10469, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b4 ++ { .offset = 0x10569, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b5 ++ { .offset = 0x10669, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b6 ++ { .offset = 0x10769, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_b7 ++ { .offset = 0x10869, .val = 0 }, // DWC_DDRPHYA_DBYTE0_RxPBDlyTg1_dbi ++ { .offset = 0x11069, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b0 ++ { .offset = 0x11169, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b1 ++ { .offset = 0x11269, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b2 ++ { .offset = 0x11369, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b3 ++ { .offset = 0x11469, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b4 ++ { .offset = 0x11569, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b5 ++ { .offset = 0x11669, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b6 ++ { .offset = 0x11769, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_b7 ++ { .offset = 0x11869, .val = 0 }, // DWC_DDRPHYA_DBYTE1_RxPBDlyTg1_dbi ++ { .offset = 0x12069, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b0 ++ { .offset = 0x12169, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b1 ++ { .offset = 0x12269, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b2 ++ { .offset = 0x12369, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b3 ++ { .offset = 0x12469, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b4 ++ { .offset = 0x12569, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b5 ++ { .offset = 0x12669, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b6 ++ { .offset = 0x12769, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_b7 ++ { .offset = 0x12869, .val = 0 }, // DWC_DDRPHYA_DBYTE2_RxPBDlyTg1_dbi ++ { .offset = 0x13069, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b0 ++ { .offset = 0x13169, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b1 ++ { .offset = 0x13269, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b2 ++ { .offset = 0x13369, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b3 ++ { .offset = 0x13469, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b4 ++ { .offset = 0x13569, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b5 ++ { .offset = 0x13669, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b6 ++ { .offset = 0x13769, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_b7 ++ { .offset = 0x13869, .val = 0 }, // DWC_DDRPHYA_DBYTE3_RxPBDlyTg1_dbi ++ ++ { .offset = 0x1008c, .val = 0 }, ++ { .offset = 0x11008c, .val = 0 }, ++ { .offset = 0x21008c, .val = 0 }, ++ { .offset = 0x1018c, .val = 0 }, ++ { .offset = 0x11018c, .val = 0 }, ++ { .offset = 0x21018c, .val = 0 }, ++ { .offset = 0x1108c, .val = 0 }, ++ { .offset = 0x11108c, .val = 0 }, ++ { .offset = 0x21108c, .val = 0 }, ++ { .offset = 0x1118c, .val = 0 }, ++ { .offset = 0x11118c, .val = 0 }, ++ { .offset = 0x21118c, .val = 0 }, ++ { .offset = 0x1208c, .val = 0 }, ++ { .offset = 0x11208c, .val = 0 }, ++ { .offset = 0x21208c, .val = 0 }, ++ { .offset = 0x1218c, .val = 0 }, ++ { .offset = 0x11218c, .val = 0 }, ++ { .offset = 0x21218c, .val = 0 }, ++ { .offset = 0x1308c, .val = 0 }, ++ { .offset = 0x11308c, .val = 0 }, ++ { .offset = 0x21308c, .val = 0 }, ++ { .offset = 0x1318c, .val = 0 }, ++ { .offset = 0x11318c, .val = 0 }, ++ { .offset = 0x21318c, .val = 0 }, ++ { .offset = 0x1008d, .val = 0 }, ++ { .offset = 0x11008d, .val = 0 }, ++ { .offset = 0x21008d, .val = 0 }, ++ { .offset = 0x1018d, .val = 0 }, ++ { .offset = 0x11018d, .val = 0 }, ++ { .offset = 0x21018d, .val = 0 }, ++ { .offset = 0x1108d, .val = 0 }, ++ { .offset = 0x11108d, .val = 0 }, ++ { .offset = 0x21108d, .val = 0 }, ++ { .offset = 0x1118d, .val = 0 }, ++ { .offset = 0x11118d, .val = 0 }, ++ { .offset = 0x21118d, .val = 0 }, ++ { .offset = 0x1208d, .val = 0 }, ++ { .offset = 0x11208d, .val = 0 }, ++ { .offset = 0x21208d, .val = 0 }, ++ { .offset = 0x1218d, .val = 0 }, ++ { .offset = 0x11218d, .val = 0 }, ++ { .offset = 0x21218d, .val = 0 }, ++ { .offset = 0x1308d, .val = 0 }, ++ { .offset = 0x11308d, .val = 0 }, ++ { .offset = 0x21308d, .val = 0 }, ++ { .offset = 0x1318d, .val = 0 }, ++ { .offset = 0x11318d, .val = 0 }, ++ { .offset = 0x21318d, .val = 0 }, ++ { .offset = 0x100c0, .val = 0 }, ++ { .offset = 0x1100c0, .val = 0 }, ++ { .offset = 0x2100c0, .val = 0 }, ++ { .offset = 0x101c0, .val = 0 }, ++ { .offset = 0x1101c0, .val = 0 }, ++ { .offset = 0x2101c0, .val = 0 }, ++ { .offset = 0x102c0, .val = 0 }, ++ { .offset = 0x1102c0, .val = 0 }, ++ { .offset = 0x2102c0, .val = 0 }, ++ { .offset = 0x103c0, .val = 0 }, ++ { .offset = 0x1103c0, .val = 0 }, ++ { .offset = 0x2103c0, .val = 0 }, ++ { .offset = 0x104c0, .val = 0 }, ++ { .offset = 0x1104c0, .val = 0 }, ++ { .offset = 0x2104c0, .val = 0 }, ++ { .offset = 0x105c0, .val = 0 }, ++ { .offset = 0x1105c0, .val = 0 }, ++ { .offset = 0x2105c0, .val = 0 }, ++ { .offset = 0x106c0, .val = 0 }, ++ { .offset = 0x1106c0, .val = 0 }, ++ { .offset = 0x2106c0, .val = 0 }, ++ { .offset = 0x107c0, .val = 0 }, ++ { .offset = 0x1107c0, .val = 0 }, ++ { .offset = 0x2107c0, .val = 0 }, ++ { .offset = 0x108c0, .val = 0 }, ++ { .offset = 0x1108c0, .val = 0 }, ++ { .offset = 0x2108c0, .val = 0 }, ++ { .offset = 0x110c0, .val = 0 }, ++ { .offset = 0x1110c0, .val = 0 }, ++ { .offset = 0x2110c0, .val = 0 }, ++ { .offset = 0x111c0, .val = 0 }, ++ { .offset = 0x1111c0, .val = 0 }, ++ { .offset = 0x2111c0, .val = 0 }, ++ { .offset = 0x112c0, .val = 0 }, ++ { .offset = 0x1112c0, .val = 0 }, ++ { .offset = 0x2112c0, .val = 0 }, ++ { .offset = 0x113c0, .val = 0 }, ++ { .offset = 0x1113c0, .val = 0 }, ++ { .offset = 0x2113c0, .val = 0 }, ++ { .offset = 0x114c0, .val = 0 }, ++ { .offset = 0x1114c0, .val = 0 }, ++ { .offset = 0x2114c0, .val = 0 }, ++ { .offset = 0x115c0, .val = 0 }, ++ { .offset = 0x1115c0, .val = 0 }, ++ { .offset = 0x2115c0, .val = 0 }, ++ { .offset = 0x116c0, .val = 0 }, ++ { .offset = 0x1116c0, .val = 0 }, ++ { .offset = 0x2116c0, .val = 0 }, ++ { .offset = 0x117c0, .val = 0 }, ++ { .offset = 0x1117c0, .val = 0 }, ++ { .offset = 0x2117c0, .val = 0 }, ++ { .offset = 0x118c0, .val = 0 }, ++ { .offset = 0x1118c0, .val = 0 }, ++ { .offset = 0x2118c0, .val = 0 }, ++ { .offset = 0x120c0, .val = 0 }, ++ { .offset = 0x1120c0, .val = 0 }, ++ { .offset = 0x2120c0, .val = 0 }, ++ { .offset = 0x121c0, .val = 0 }, ++ { .offset = 0x1121c0, .val = 0 }, ++ { .offset = 0x2121c0, .val = 0 }, ++ { .offset = 0x122c0, .val = 0 }, ++ { .offset = 0x1122c0, .val = 0 }, ++ { .offset = 0x2122c0, .val = 0 }, ++ { .offset = 0x123c0, .val = 0 }, ++ { .offset = 0x1123c0, .val = 0 }, ++ { .offset = 0x2123c0, .val = 0 }, ++ { .offset = 0x124c0, .val = 0 }, ++ { .offset = 0x1124c0, .val = 0 }, ++ { .offset = 0x2124c0, .val = 0 }, ++ { .offset = 0x125c0, .val = 0 }, ++ { .offset = 0x1125c0, .val = 0 }, ++ { .offset = 0x2125c0, .val = 0 }, ++ { .offset = 0x126c0, .val = 0 }, ++ { .offset = 0x1126c0, .val = 0 }, ++ { .offset = 0x2126c0, .val = 0 }, ++ { .offset = 0x127c0, .val = 0 }, ++ { .offset = 0x1127c0, .val = 0 }, ++ { .offset = 0x2127c0, .val = 0 }, ++ { .offset = 0x128c0, .val = 0 }, ++ { .offset = 0x1128c0, .val = 0 }, ++ { .offset = 0x2128c0, .val = 0 }, ++ { .offset = 0x130c0, .val = 0 }, ++ { .offset = 0x1130c0, .val = 0 }, ++ { .offset = 0x2130c0, .val = 0 }, ++ { .offset = 0x131c0, .val = 0 }, ++ { .offset = 0x1131c0, .val = 0 }, ++ { .offset = 0x2131c0, .val = 0 }, ++ { .offset = 0x132c0, .val = 0 }, ++ { .offset = 0x1132c0, .val = 0 }, ++ { .offset = 0x2132c0, .val = 0 }, ++ { .offset = 0x133c0, .val = 0 }, ++ { .offset = 0x1133c0, .val = 0 }, ++ { .offset = 0x2133c0, .val = 0 }, ++ { .offset = 0x134c0, .val = 0 }, ++ { .offset = 0x1134c0, .val = 0 }, ++ { .offset = 0x2134c0, .val = 0 }, ++ { .offset = 0x135c0, .val = 0 }, ++ { .offset = 0x1135c0, .val = 0 }, ++ { .offset = 0x2135c0, .val = 0 }, ++ { .offset = 0x136c0, .val = 0 }, ++ { .offset = 0x1136c0, .val = 0 }, ++ { .offset = 0x2136c0, .val = 0 }, ++ { .offset = 0x137c0, .val = 0 }, ++ { .offset = 0x1137c0, .val = 0 }, ++ { .offset = 0x2137c0, .val = 0 }, ++ { .offset = 0x138c0, .val = 0 }, ++ { .offset = 0x1138c0, .val = 0 }, ++ { .offset = 0x2138c0, .val = 0 }, ++ { .offset = 0x100c1, .val = 0 }, ++ { .offset = 0x1100c1, .val = 0 }, ++ { .offset = 0x2100c1, .val = 0 }, ++ { .offset = 0x101c1, .val = 0 }, ++ { .offset = 0x1101c1, .val = 0 }, ++ { .offset = 0x2101c1, .val = 0 }, ++ { .offset = 0x102c1, .val = 0 }, ++ { .offset = 0x1102c1, .val = 0 }, ++ { .offset = 0x2102c1, .val = 0 }, ++ { .offset = 0x103c1, .val = 0 }, ++ { .offset = 0x1103c1, .val = 0 }, ++ { .offset = 0x2103c1, .val = 0 }, ++ { .offset = 0x104c1, .val = 0 }, ++ { .offset = 0x1104c1, .val = 0 }, ++ { .offset = 0x2104c1, .val = 0 }, ++ { .offset = 0x105c1, .val = 0 }, ++ { .offset = 0x1105c1, .val = 0 }, ++ { .offset = 0x2105c1, .val = 0 }, ++ { .offset = 0x106c1, .val = 0 }, ++ { .offset = 0x1106c1, .val = 0 }, ++ { .offset = 0x2106c1, .val = 0 }, ++ { .offset = 0x107c1, .val = 0 }, ++ { .offset = 0x1107c1, .val = 0 }, ++ { .offset = 0x2107c1, .val = 0 }, ++ { .offset = 0x108c1, .val = 0 }, ++ { .offset = 0x1108c1, .val = 0 }, ++ { .offset = 0x2108c1, .val = 0 }, ++ { .offset = 0x110c1, .val = 0 }, ++ { .offset = 0x1110c1, .val = 0 }, ++ { .offset = 0x2110c1, .val = 0 }, ++ { .offset = 0x111c1, .val = 0 }, ++ { .offset = 0x1111c1, .val = 0 }, ++ { .offset = 0x2111c1, .val = 0 }, ++ { .offset = 0x112c1, .val = 0 }, ++ { .offset = 0x1112c1, .val = 0 }, ++ { .offset = 0x2112c1, .val = 0 }, ++ { .offset = 0x113c1, .val = 0 }, ++ { .offset = 0x1113c1, .val = 0 }, ++ { .offset = 0x2113c1, .val = 0 }, ++ { .offset = 0x114c1, .val = 0 }, ++ { .offset = 0x1114c1, .val = 0 }, ++ { .offset = 0x2114c1, .val = 0 }, ++ { .offset = 0x115c1, .val = 0 }, ++ { .offset = 0x1115c1, .val = 0 }, ++ { .offset = 0x2115c1, .val = 0 }, ++ { .offset = 0x116c1, .val = 0 }, ++ { .offset = 0x1116c1, .val = 0 }, ++ { .offset = 0x2116c1, .val = 0 }, ++ { .offset = 0x117c1, .val = 0 }, ++ { .offset = 0x1117c1, .val = 0 }, ++ { .offset = 0x2117c1, .val = 0 }, ++ { .offset = 0x118c1, .val = 0 }, ++ { .offset = 0x1118c1, .val = 0 }, ++ { .offset = 0x2118c1, .val = 0 }, ++ { .offset = 0x120c1, .val = 0 }, ++ { .offset = 0x1120c1, .val = 0 }, ++ { .offset = 0x2120c1, .val = 0 }, ++ { .offset = 0x121c1, .val = 0 }, ++ { .offset = 0x1121c1, .val = 0 }, ++ { .offset = 0x2121c1, .val = 0 }, ++ { .offset = 0x122c1, .val = 0 }, ++ { .offset = 0x1122c1, .val = 0 }, ++ { .offset = 0x2122c1, .val = 0 }, ++ { .offset = 0x123c1, .val = 0 }, ++ { .offset = 0x1123c1, .val = 0 }, ++ { .offset = 0x2123c1, .val = 0 }, ++ { .offset = 0x124c1, .val = 0 }, ++ { .offset = 0x1124c1, .val = 0 }, ++ { .offset = 0x2124c1, .val = 0 }, ++ { .offset = 0x125c1, .val = 0 }, ++ { .offset = 0x1125c1, .val = 0 }, ++ { .offset = 0x2125c1, .val = 0 }, ++ { .offset = 0x126c1, .val = 0 }, ++ { .offset = 0x1126c1, .val = 0 }, ++ { .offset = 0x2126c1, .val = 0 }, ++ { .offset = 0x127c1, .val = 0 }, ++ { .offset = 0x1127c1, .val = 0 }, ++ { .offset = 0x2127c1, .val = 0 }, ++ { .offset = 0x128c1, .val = 0 }, ++ { .offset = 0x1128c1, .val = 0 }, ++ { .offset = 0x2128c1, .val = 0 }, ++ { .offset = 0x130c1, .val = 0 }, ++ { .offset = 0x1130c1, .val = 0 }, ++ { .offset = 0x2130c1, .val = 0 }, ++ { .offset = 0x131c1, .val = 0 }, ++ { .offset = 0x1131c1, .val = 0 }, ++ { .offset = 0x2131c1, .val = 0 }, ++ { .offset = 0x132c1, .val = 0 }, ++ { .offset = 0x1132c1, .val = 0 }, ++ { .offset = 0x2132c1, .val = 0 }, ++ { .offset = 0x133c1, .val = 0 }, ++ { .offset = 0x1133c1, .val = 0 }, ++ { .offset = 0x2133c1, .val = 0 }, ++ { .offset = 0x134c1, .val = 0 }, ++ { .offset = 0x1134c1, .val = 0 }, ++ { .offset = 0x2134c1, .val = 0 }, ++ { .offset = 0x135c1, .val = 0 }, ++ { .offset = 0x1135c1, .val = 0 }, ++ { .offset = 0x2135c1, .val = 0 }, ++ { .offset = 0x136c1, .val = 0 }, ++ { .offset = 0x1136c1, .val = 0 }, ++ { .offset = 0x2136c1, .val = 0 }, ++ { .offset = 0x137c1, .val = 0 }, ++ { .offset = 0x1137c1, .val = 0 }, ++ { .offset = 0x2137c1, .val = 0 }, ++ { .offset = 0x138c1, .val = 0 }, ++ { .offset = 0x1138c1, .val = 0 }, ++ { .offset = 0x2138c1, .val = 0 }, ++ { .offset = 0x10020, .val = 0 }, ++ { .offset = 0x110020, .val = 0 }, ++ { .offset = 0x210020, .val = 0 }, ++ { .offset = 0x11020, .val = 0 }, ++ { .offset = 0x111020, .val = 0 }, ++ { .offset = 0x211020, .val = 0 }, ++ { .offset = 0x12020, .val = 0 }, ++ { .offset = 0x112020, .val = 0 }, ++ { .offset = 0x212020, .val = 0 }, ++ { .offset = 0x13020, .val = 0 }, ++ { .offset = 0x113020, .val = 0 }, ++ { .offset = 0x213020, .val = 0 }, ++ { .offset = 0x20072, .val = 0 }, ++ { .offset = 0x20073, .val = 0 }, ++ { .offset = 0x20074, .val = 0 }, ++ { .offset = 0x100aa, .val = 0 }, ++ { .offset = 0x110aa, .val = 0 }, ++ { .offset = 0x120aa, .val = 0 }, ++ { .offset = 0x130aa, .val = 0 }, ++ { .offset = 0x20010, .val = 0 }, ++ { .offset = 0x120010, .val = 0 }, ++ { .offset = 0x220010, .val = 0 }, ++ { .offset = 0x20011, .val = 0 }, ++ { .offset = 0x120011, .val = 0 }, ++ { .offset = 0x220011, .val = 0 }, ++ { .offset = 0x100ae, .val = 0 }, ++ { .offset = 0x1100ae, .val = 0 }, ++ { .offset = 0x2100ae, .val = 0 }, ++ { .offset = 0x100af, .val = 0 }, ++ { .offset = 0x1100af, .val = 0 }, ++ { .offset = 0x2100af, .val = 0 }, ++ { .offset = 0x110ae, .val = 0 }, ++ { .offset = 0x1110ae, .val = 0 }, ++ { .offset = 0x2110ae, .val = 0 }, ++ { .offset = 0x110af, .val = 0 }, ++ { .offset = 0x1110af, .val = 0 }, ++ { .offset = 0x2110af, .val = 0 }, ++ { .offset = 0x120ae, .val = 0 }, ++ { .offset = 0x1120ae, .val = 0 }, ++ { .offset = 0x2120ae, .val = 0 }, ++ { .offset = 0x120af, .val = 0 }, ++ { .offset = 0x1120af, .val = 0 }, ++ { .offset = 0x2120af, .val = 0 }, ++ { .offset = 0x130ae, .val = 0 }, ++ { .offset = 0x1130ae, .val = 0 }, ++ { .offset = 0x2130ae, .val = 0 }, ++ { .offset = 0x130af, .val = 0 }, ++ { .offset = 0x1130af, .val = 0 }, ++ { .offset = 0x2130af, .val = 0 }, ++ { .offset = 0x20020, .val = 0 }, ++ { .offset = 0x120020, .val = 0 }, ++ { .offset = 0x220020, .val = 0 }, ++ { .offset = 0x100a0, .val = 0 }, ++ { .offset = 0x100a1, .val = 0 }, ++ { .offset = 0x100a2, .val = 0 }, ++ { .offset = 0x100a3, .val = 0 }, ++ { .offset = 0x100a4, .val = 0 }, ++ { .offset = 0x100a5, .val = 0 }, ++ { .offset = 0x100a6, .val = 0 }, ++ { .offset = 0x100a7, .val = 0 }, ++ { .offset = 0x110a0, .val = 0 }, ++ { .offset = 0x110a1, .val = 0 }, ++ { .offset = 0x110a2, .val = 0 }, ++ { .offset = 0x110a3, .val = 0 }, ++ { .offset = 0x110a4, .val = 0 }, ++ { .offset = 0x110a5, .val = 0 }, ++ { .offset = 0x110a6, .val = 0 }, ++ { .offset = 0x110a7, .val = 0 }, ++ { .offset = 0x120a0, .val = 0 }, ++ { .offset = 0x120a1, .val = 0 }, ++ { .offset = 0x120a2, .val = 0 }, ++ { .offset = 0x120a3, .val = 0 }, ++ { .offset = 0x120a4, .val = 0 }, ++ { .offset = 0x120a5, .val = 0 }, ++ { .offset = 0x120a6, .val = 0 }, ++ { .offset = 0x120a7, .val = 0 }, ++ { .offset = 0x130a0, .val = 0 }, ++ { .offset = 0x130a1, .val = 0 }, ++ { .offset = 0x130a2, .val = 0 }, ++ { .offset = 0x130a3, .val = 0 }, ++ { .offset = 0x130a4, .val = 0 }, ++ { .offset = 0x130a5, .val = 0 }, ++ { .offset = 0x130a6, .val = 0 }, ++ { .offset = 0x130a7, .val = 0 }, ++ { .offset = 0x2007c, .val = 0 }, ++ { .offset = 0x12007c, .val = 0 }, ++ { .offset = 0x22007c, .val = 0 }, ++ { .offset = 0x2007d, .val = 0 }, ++ { .offset = 0x12007d, .val = 0 }, ++ { .offset = 0x22007d, .val = 0 }, ++ { .offset = 0x400fd, .val = 0 }, ++ { .offset = 0x400c0, .val = 0 }, ++ { .offset = 0x90201, .val = 0 }, ++ { .offset = 0x190201, .val = 0 }, ++ { .offset = 0x290201, .val = 0 }, ++ { .offset = 0x90202, .val = 0 }, ++ { .offset = 0x190202, .val = 0 }, ++ { .offset = 0x290202, .val = 0 }, ++ { .offset = 0x90203, .val = 0 }, ++ { .offset = 0x190203, .val = 0 }, ++ { .offset = 0x290203, .val = 0 }, ++ { .offset = 0x90204, .val = 0 }, ++ { .offset = 0x190204, .val = 0 }, ++ { .offset = 0x290204, .val = 0 }, ++ { .offset = 0x90205, .val = 0 }, ++ { .offset = 0x190205, .val = 0 }, ++ { .offset = 0x290205, .val = 0 }, ++ { .offset = 0x90206, .val = 0 }, ++ { .offset = 0x190206, .val = 0 }, ++ { .offset = 0x290206, .val = 0 }, ++ { .offset = 0x90207, .val = 0 }, ++ { .offset = 0x190207, .val = 0 }, ++ { .offset = 0x290207, .val = 0 }, ++ { .offset = 0x90208, .val = 0 }, ++ { .offset = 0x190208, .val = 0 }, ++ { .offset = 0x290208, .val = 0 }, ++ { .offset = 0x10062, .val = 0 }, ++ { .offset = 0x10162, .val = 0 }, ++ { .offset = 0x10262, .val = 0 }, ++ { .offset = 0x10362, .val = 0 }, ++ { .offset = 0x10462, .val = 0 }, ++ { .offset = 0x10562, .val = 0 }, ++ { .offset = 0x10662, .val = 0 }, ++ { .offset = 0x10762, .val = 0 }, ++ { .offset = 0x10862, .val = 0 }, ++ { .offset = 0x11062, .val = 0 }, ++ { .offset = 0x11162, .val = 0 }, ++ { .offset = 0x11262, .val = 0 }, ++ { .offset = 0x11362, .val = 0 }, ++ { .offset = 0x11462, .val = 0 }, ++ { .offset = 0x11562, .val = 0 }, ++ { .offset = 0x11662, .val = 0 }, ++ { .offset = 0x11762, .val = 0 }, ++ { .offset = 0x11862, .val = 0 }, ++ { .offset = 0x12062, .val = 0 }, ++ { .offset = 0x12162, .val = 0 }, ++ { .offset = 0x12262, .val = 0 }, ++ { .offset = 0x12362, .val = 0 }, ++ { .offset = 0x12462, .val = 0 }, ++ { .offset = 0x12562, .val = 0 }, ++ { .offset = 0x12662, .val = 0 }, ++ { .offset = 0x12762, .val = 0 }, ++ { .offset = 0x12862, .val = 0 }, ++ { .offset = 0x13062, .val = 0 }, ++ { .offset = 0x13162, .val = 0 }, ++ { .offset = 0x13262, .val = 0 }, ++ { .offset = 0x13362, .val = 0 }, ++ { .offset = 0x13462, .val = 0 }, ++ { .offset = 0x13562, .val = 0 }, ++ { .offset = 0x13662, .val = 0 }, ++ { .offset = 0x13762, .val = 0 }, ++ { .offset = 0x13862, .val = 0 }, ++ { .offset = 0x20077, .val = 0 }, ++ { .offset = 0x10001, .val = 0 }, ++ { .offset = 0x11001, .val = 0 }, ++ { .offset = 0x12001, .val = 0 }, ++ { .offset = 0x13001, .val = 0 }, ++ { .offset = 0x10040, .val = 0 }, ++ { .offset = 0x10140, .val = 0 }, ++ { .offset = 0x10240, .val = 0 }, ++ { .offset = 0x10340, .val = 0 }, ++ { .offset = 0x10440, .val = 0 }, ++ { .offset = 0x10540, .val = 0 }, ++ { .offset = 0x10640, .val = 0 }, ++ { .offset = 0x10740, .val = 0 }, ++ { .offset = 0x10840, .val = 0 }, ++ { .offset = 0x10030, .val = 0 }, ++ { .offset = 0x10130, .val = 0 }, ++ { .offset = 0x10230, .val = 0 }, ++ { .offset = 0x10330, .val = 0 }, ++ { .offset = 0x10430, .val = 0 }, ++ { .offset = 0x10530, .val = 0 }, ++ { .offset = 0x10630, .val = 0 }, ++ { .offset = 0x10730, .val = 0 }, ++ { .offset = 0x10830, .val = 0 }, ++ { .offset = 0x11040, .val = 0 }, ++ { .offset = 0x11140, .val = 0 }, ++ { .offset = 0x11240, .val = 0 }, ++ { .offset = 0x11340, .val = 0 }, ++ { .offset = 0x11440, .val = 0 }, ++ { .offset = 0x11540, .val = 0 }, ++ { .offset = 0x11640, .val = 0 }, ++ { .offset = 0x11740, .val = 0 }, ++ { .offset = 0x11840, .val = 0 }, ++ { .offset = 0x11030, .val = 0 }, ++ { .offset = 0x11130, .val = 0 }, ++ { .offset = 0x11230, .val = 0 }, ++ { .offset = 0x11330, .val = 0 }, ++ { .offset = 0x11430, .val = 0 }, ++ { .offset = 0x11530, .val = 0 }, ++ { .offset = 0x11630, .val = 0 }, ++ { .offset = 0x11730, .val = 0 }, ++ { .offset = 0x11830, .val = 0 }, ++ { .offset = 0x12040, .val = 0 }, ++ { .offset = 0x12140, .val = 0 }, ++ { .offset = 0x12240, .val = 0 }, ++ { .offset = 0x12340, .val = 0 }, ++ { .offset = 0x12440, .val = 0 }, ++ { .offset = 0x12540, .val = 0 }, ++ { .offset = 0x12640, .val = 0 }, ++ { .offset = 0x12740, .val = 0 }, ++ { .offset = 0x12840, .val = 0 }, ++ { .offset = 0x12030, .val = 0 }, ++ { .offset = 0x12130, .val = 0 }, ++ { .offset = 0x12230, .val = 0 }, ++ { .offset = 0x12330, .val = 0 }, ++ { .offset = 0x12430, .val = 0 }, ++ { .offset = 0x12530, .val = 0 }, ++ { .offset = 0x12630, .val = 0 }, ++ { .offset = 0x12730, .val = 0 }, ++ { .offset = 0x12830, .val = 0 }, ++ { .offset = 0x13040, .val = 0 }, ++ { .offset = 0x13140, .val = 0 }, ++ { .offset = 0x13240, .val = 0 }, ++ { .offset = 0x13340, .val = 0 }, ++ { .offset = 0x13440, .val = 0 }, ++ { .offset = 0x13540, .val = 0 }, ++ { .offset = 0x13640, .val = 0 }, ++ { .offset = 0x13740, .val = 0 }, ++ { .offset = 0x13840, .val = 0 }, ++ { .offset = 0x13030, .val = 0 }, ++ { .offset = 0x13130, .val = 0 }, ++ { .offset = 0x13230, .val = 0 }, ++ { .offset = 0x13330, .val = 0 }, ++ { .offset = 0x13430, .val = 0 }, ++ { .offset = 0x13530, .val = 0 }, ++ { .offset = 0x13630, .val = 0 }, ++ { .offset = 0x13730, .val = 0 }, ++ { .offset = 0x13830, .val = 0 }, + }; + + /* lpddr4 phy PIE image */ +@@ -1526,29 +1536,16 @@ static const struct ddrphy_cfg_param phy_pie[] = { + { .offset = 0xd0000, .val = 0x1 }, // DWC_DDRPHYA_APBONLY0_MicroContMuxSel + }; + +-static void lpddr4_phy_init_cfg(void) +-{ +- int index, offset, val, size; +- +- size = sizeof(phy_init_cfg) / 8; +- +- for (index = 0; index < size; index++) { +- val = phy_init_cfg[index].val; +- offset = phy_init_cfg[index].offset; +- dwc_ddrphy_apb_wr(offset, val); +- } +-} +- +-static void lpddr4_phy_restore_trained_csr(void) ++static void lpddr4_phy_restore_phy(void) + { + int index, offset, val, size; + + dwc_ddrphy_apb_wr(0xd0000,0x0); +- size = sizeof(phy_trained_csr) / 8; ++ size = sizeof(phy_cfg) / 8; + + for(index = 0; index < size; index++) { +- val = phy_trained_csr[index].val; +- offset = phy_trained_csr[index].offset; ++ val = phy_cfg[index].val; ++ offset = phy_cfg[index].offset; + + dwc_ddrphy_apb_wr(offset, val); + } +@@ -1569,19 +1566,19 @@ static void lpddr4_phy_load_pie(void) + } + } + +-void lpddr4_phy_save_trained_csr(void) ++void lpddr4_phy_save_phy(void) + { + int index, offset, size; + +- size = sizeof(phy_trained_csr) / 8; ++ size = sizeof(phy_cfg) / 8; + + dwc_ddrphy_apb_wr(0xd0000, 0x0); + dwc_ddrphy_apb_wr(0xc0080, 0x3); + + + for (index = 0; index < size; index++) { +- offset = phy_trained_csr[index].offset; +- phy_trained_csr[index].val = dwc_ddrphy_apb_rd(offset); ++ offset = phy_cfg[index].offset; ++ phy_cfg[index].val = dwc_ddrphy_apb_rd(offset); + } + + dwc_ddrphy_apb_wr(0xc0080, 0x0); +@@ -1590,11 +1587,8 @@ void lpddr4_phy_save_trained_csr(void) + + void lpddr4_phy_cfg(void) + { +- /* load the init config */ +- lpddr4_phy_init_cfg(); +- + /* restore the trained csr */ +- lpddr4_phy_restore_trained_csr(); ++ lpddr4_phy_restore_phy(); + + /* load the phy PIE image */ + lpddr4_phy_load_pie(); +diff --git a/plat/freescale/imx8mq/ddr/lpddr4_retention.c b/plat/freescale/imx8mq/ddr/lpddr4_retention.c +index 7b534d9..bce5000 100644 +--- a/plat/freescale/imx8mq/ddr/lpddr4_retention.c ++++ b/plat/freescale/imx8mq/ddr/lpddr4_retention.c +@@ -27,13 +27,17 @@ + + static bool trained_csr_saved = false; + ++void lpddr4_save_umctl2(void); ++void lpddr4_phy_save_phy(void); ++ + void ddrc_enter_retention(void) + { + unsigned int tmp, tmp_t, i; + + /* only need be save once */ + if (!trained_csr_saved) { +- lpddr4_phy_save_trained_csr(); ++ lpddr4_save_umctl2(); ++ lpddr4_phy_save_phy(); + trained_csr_saved = true; + } + +diff --git a/plat/freescale/imx8mq/ddr/lpddr4_swffc.c b/plat/freescale/imx8mq/ddr/lpddr4_swffc.c +index 6db6f4d..434e8fd 100644 +--- a/plat/freescale/imx8mq/ddr/lpddr4_swffc.c ++++ b/plat/freescale/imx8mq/ddr/lpddr4_swffc.c +@@ -11,22 +11,14 @@ + + #include "lpddr4_dvfs.h" + +-#define P0_INIT3 0x00D4002D +-#define P0_INIT4 0x00310008 +-#define P0_INIT6 0x0066004a +-#define P0_INIT7 0x0006004a +- +-#define P1_INIT3 0x0140009 +-#define P1_INIT4 0x00310008 +-#define P1_INIT6 0x0066004a +-#define P1_INIT7 0x0006004a +- + #define HW_DRAM_PLL_CFG0_ADDR (0x30360000 + 0x60) + #define HW_DRAM_PLL_CFG1_ADDR (0x30360000 + 0x64) + #define HW_DRAM_PLL_CFG2_ADDR (0x30360000 + 0x68) + + #define DFILP_SPT + ++extern unsigned int default_ddr_pllcfg; ++ + void sscgpll_bypass_enable(unsigned int reg_addr) + { + unsigned int read_data; +@@ -67,16 +59,18 @@ void DDR_PLL_CONFIG_FREQ(unsigned int freq) + case 667: + mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x00ece480); + break; +- case 400: +- mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x00ec6984); ++ case 400: ++ mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x00ec6984); + break; +- case 167: ++ case 167: + mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x00f5a406); + break; +- case 100: +- mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x015dea96); ++ case 100: ++ mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, 0x015dea96); + break; +- ++ case 0: ++ mmio_write_32(HW_DRAM_PLL_CFG2_ADDR, default_ddr_pllcfg); ++ break; + default: + printf("Input freq=%d error.\n",freq); + } +@@ -118,24 +112,24 @@ void lpddr4_dvfs_swffc(unsigned int init_fsp, unsigned int target_freq) + + /* setting for 3200 mts */ + if(target_freq==0) { +- mr = P0_INIT3 >> 16; +- emr = P0_INIT3 & 0xFFFF; +- emr2 = P0_INIT4 >> 16; +- emr3 = P0_INIT4 & 0xFFFF; +- mr11 = P0_INIT6 >> 16; +- mr12 = P0_INIT6 & 0xFFFF; +- mr22 = P0_INIT7 >> 16; +- mr14 = P0_INIT7 & 0xFFFF; ++ mr = mmio_read_32(DDRC_INIT3(0)) >> 16; ++ emr = mmio_read_32(DDRC_INIT3(0)) & 0xFFFF; ++ emr2 = mmio_read_32(DDRC_INIT4(0)) >> 16; ++ emr3 = mmio_read_32(DDRC_INIT4(0)) & 0xFFFF; ++ mr11 = mmio_read_32(DDRC_INIT6(0)) >> 16; ++ mr12 = mmio_read_32(DDRC_INIT6(0)) & 0xFFFF; ++ mr22 = mmio_read_32(DDRC_INIT7(0)) >> 16; ++ mr14 = mmio_read_32(DDRC_INIT7(0)) & 0xFFFF; + } else { + /* setting for 667 mts */ +- mr = P1_INIT3 >> 16; +- emr = P1_INIT3 & 0xFFFF; +- emr2 = P1_INIT4 >> 16; +- emr3 = P1_INIT4 & 0xFFFF; +- mr11 = P1_INIT6 >> 16; +- mr12 = P1_INIT6 & 0xFFFF; +- mr22 = P1_INIT7 >> 16; +- mr14 = P1_INIT7 & 0xFFFF; ++ mr = mmio_read_32(DDRC_FREQ1_INIT3(0)) >> 16; ++ emr = mmio_read_32(DDRC_FREQ1_INIT3(0)) & 0xFFFF; ++ emr2 = mmio_read_32(DDRC_FREQ1_INIT4(0)) >> 16; ++ emr3 = mmio_read_32(DDRC_FREQ1_INIT4(0)) & 0xFFFF; ++ mr11 = mmio_read_32(DDRC_FREQ1_INIT6(0)) >> 16; ++ mr12 = mmio_read_32(DDRC_FREQ1_INIT6(0)) & 0xFFFF; ++ mr22 = mmio_read_32(DDRC_FREQ1_INIT7(0)) >> 16; ++ mr14 = mmio_read_32(DDRC_FREQ1_INIT7(0)) & 0xFFFF; + } + + tmp = (init_fsp== 1) ? 0x2 <<6 : 0x1 <<6; +@@ -203,10 +197,10 @@ void lpddr4_dvfs_swffc(unsigned int init_fsp, unsigned int target_freq) + mmio_write_32(DDRC_FREQ1_DERATEEN(0), tmp); /* ddrc_derate_enable, bit 0 */ + tmp= mmio_read_32(DDRC_ZQCTL0(0)); + tmp |= 0x80000000; +- mmio_write_32(DDRC_ZQCTL0(0), tmp); /* ddrc_derate_enable, bit 0 */ ++ mmio_write_32(DDRC_ZQCTL0(0), tmp); + tmp= mmio_read_32(DDRC_FREQ1_ZQCTL0(0)); + tmp |= 0x80000000; +- mmio_write_32(DDRC_FREQ1_ZQCTL0(0), tmp); /* ddrc_derate_enable, bit 0 */ ++ mmio_write_32(DDRC_FREQ1_ZQCTL0(0), tmp); + + /* 12. set PWRCTL.selfref_en=0 */ + tmp= mmio_read_32(DDRC_PWRCTL(0)); +@@ -275,7 +269,7 @@ void lpddr4_dvfs_swffc(unsigned int init_fsp, unsigned int target_freq) + /* Q4: only for legacy PHY, so here can skipped */ + tmp= mmio_read_32(DDRC_DFIMISC(0)); + tmp &= 0xFF; +- tmp |= (target_freq << 8); /* should be 0 */ ++ tmp |= (target_freq << 8); + mmio_write_32(DDRC_DFIMISC(0),tmp); + tmp |= 0x20; + mmio_write_32(DDRC_DFIMISC(0),tmp); +@@ -288,16 +282,19 @@ void lpddr4_dvfs_swffc(unsigned int init_fsp, unsigned int target_freq) + /* switch_clocks for target frequency */ + if(target_freq==0x1) { + /* mmio_write_32(CCM_IP_CLK_ROOT_GEN_TAGET_CLR(1),(0x7<<24)|(0x7<<16)); */ +- mmio_write_32(0x3038a088, (0x7 << 24) | (0x7 << 16)); ++ //mmio_write_32(0x3038a088, (0x7 << 24) | (0x7 << 16)); + /* mmio_write_32(CCM_IP_CLK_ROOT_GEN_TAGET_SET(1),(0x4<<24)|(0x4<<16)); */ +- mmio_write_32(0x3038a084, (0x4 << 24) | (0x4 << 16)); //to source 4 --800MHz/5 ++ //mmio_write_32(0x3038a084, (0x4 << 24) | (0x4 << 16)); //to source 4 --800MHz/5 + DDR_PLL_CONFIG_FREQ(167); + } else { +- DDR_PLL_CONFIG_FREQ(800); ++ if(default_ddr_pllcfg) ++ DDR_PLL_CONFIG_FREQ(0); ++ else ++ DDR_PLL_CONFIG_FREQ(800); + /* mmio_write_32(CCM_IP_CLK_ROOT_GEN_TAGET_CLR(1),(0x7<<24)|(0x7<<16)); */ +- mmio_write_32(0x3038a088, (0x7 << 24) | (0x7 << 16)); ++ //mmio_write_32(0x3038a088, (0x7 << 24) | (0x7 << 16)); + /* mmio_write_32(CCM_IP_CLK_ROOT_GEN_TAGET_SET(1),(0x4<<24)|(0x3<<16)); */ +- mmio_write_32(0x3038a084, (0x4 << 24) | (0x3 << 16)); //to source 4 --800MHz/4*/ ++ //mmio_write_32(0x3038a084, (0x4 << 24) | (0x3 << 16)); //to source 4 --800MHz/4*/ + } + + /* dfi_init_start de-assert */ +diff --git a/plat/freescale/imx8mq/include/soc.h b/plat/freescale/imx8mq/include/soc.h +index 0c55a9c..7c9de5c 100644 +--- a/plat/freescale/imx8mq/include/soc.h ++++ b/plat/freescale/imx8mq/include/soc.h +@@ -24,6 +24,7 @@ void imx_set_rbc_count(void); + void imx_clear_rbc_count(void); + + void lpddr4_cfg_umctl2(void); ++void lpddr4_save_umctl2(void); + void lpddr4_phy_cfg(void); + void lpddr4_phy_save_trained_csr(void); + void lpddr4_switch_to_3200(void); +-- +1.9.1 + diff --git a/recipes-bsp/imx-atf/imx-atf/atf-0001-1-add-noc-tuning-smc-case-lower-cpu-vpu-memory-acces.patch b/recipes-bsp/imx-atf/imx-atf/atf-0001-1-add-noc-tuning-smc-case-lower-cpu-vpu-memory-acces.patch new file mode 100644 index 0000000..5580c9b --- /dev/null +++ b/recipes-bsp/imx-atf/imx-atf/atf-0001-1-add-noc-tuning-smc-case-lower-cpu-vpu-memory-acces.patch @@ -0,0 +1,35 @@ +From 57feabef01e603380f67fac8b5ba8b8b9771d76f Mon Sep 17 00:00:00 2001 +From: "Tom.zheng" +Date: Wed, 25 Apr 2018 13:50:11 +0800 +Subject: [PATCH] Add NOC tuning SMC case, lower cpu vpu memory access priority for this case + +diff --git a/plat/freescale/common/include/fsl_sip.h b/plat/freescale/common/include/fsl_sip.h +index 24b8eb3..56aa91d 100644 +--- a/plat/freescale/common/include/fsl_sip.h ++++ b/plat/freescale/common/include/fsl_sip.h +@@ -47,5 +47,6 @@ + + #define FSL_SIP_NOC 0xc2000008 + #define FSL_SIP_NOC_LCDIF 0x0 ++#define FSL_SIP_NOC_TUNE 0x1 + + #endif +diff --git a/plat/freescale/imx8mq/src.c b/plat/freescale/imx8mq/src.c +index 11e30ee..90d2d16 100644 +--- a/plat/freescale/imx8mq/src.c ++++ b/plat/freescale/imx8mq/src.c +@@ -82,6 +82,13 @@ int imx_noc_handler(uint32_t smc_fid, u_register_t x1, u_register_t x2, + mmio_write_32(IMX_NOC_BASE + 0x18c, 0x1); + mmio_write_32(IMX_NOC_BASE + 0x190, 0x500); + mmio_write_32(IMX_NOC_BASE + 0x194, 0x30); ++ break; ++ ++ case FSL_SIP_NOC_TUNE: ++ /* config NOC for VPU */ ++ mmio_write_32(IMX_NOC_BASE + 0x108, 0x80000300); ++ /* config NOC for CPU */ ++ mmio_write_32(IMX_NOC_BASE + 0x188, 0x80000300); + break; + default: + return SMC_UNK; + diff --git a/recipes-bsp/imx-atf/imx-atf_1.4.1.bbappend b/recipes-bsp/imx-atf/imx-atf_1.4.1.bbappend new file mode 100644 index 0000000..f917875 --- /dev/null +++ b/recipes-bsp/imx-atf/imx-atf_1.4.1.bbappend @@ -0,0 +1,6 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI += " \ + file://0001-ATF-support-to-different-LPDDR4-configurations.patch \ + file://atf-0001-1-add-noc-tuning-smc-case-lower-cpu-vpu-memory-acces.patch \ +" diff --git a/recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend b/recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend new file mode 100644 index 0000000..faf7a59 --- /dev/null +++ b/recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend @@ -0,0 +1,8 @@ +# Workaround to fix do_compile() failure due to missing fsl-imx8mq-evk.dtb +do_compile_prepend() { + echo "Checking Target" + if [ "${SOC_TARGET}" = "iMX8M" ]; then + echo "Copying DTB" + cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${UBOOT_DTB_NAME} ${S}/${SOC_TARGET}/fsl-imx8mq-evk.dtb + fi +} diff --git a/recipes-bsp/pm-utils/pm-utils_%.bbappend b/recipes-bsp/pm-utils/pm-utils_%.bbappend new file mode 100644 index 0000000..36db501 --- /dev/null +++ b/recipes-bsp/pm-utils/pm-utils_%.bbappend @@ -0,0 +1,7 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +FILES_${PN} += "/etc/pm/sleep.d/*" + +do_install_append() { + install -d ${D}/${sysconfdir}/pm/sleep.d +} diff --git a/recipes-bsp/u-boot/u-boot-smarcimx8m_2017.03.bb b/recipes-bsp/u-boot/u-boot-smarcimx8m_2017.03.bb new file mode 100644 index 0000000..5f0a1de --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-smarcimx8m_2017.03.bb @@ -0,0 +1,55 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017-2018 NXP + +DESCRIPTION = "i.MX U-Boot suppporting i.MX reference boards." +require recipes-bsp/u-boot/u-boot.inc +inherit pythonnative + +PROVIDES += "u-boot" +DEPENDS_append = " python dtc-native" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +UBOOT_SRC ?= "git://git@git.embedian.com/developer/smarc-t335x-uboot.git;protocol=https" +SRCBRANCH = "smarc-imx_v2017.03_4.9.88_2.0.0_ga" +SRC_URI = "${EMB_UBOOT_MIRROR};protocol=ssh;branch=${SRCBRANCH}" +SRCREV = "6282b048e3c32fefa7a5dd19b5fa9bcfb85f9265" + +S = "${WORKDIR}/git" + +inherit fsl-u-boot-localversion + +LOCALVERSION ?= "-${SRCBRANCH}" + +BOOT_TOOLS = "imx-boot-tools" + +do_deploy_append_mx8mq () { + # Deploy the mkimage, u-boot-nodtb.bin and fsl-smarcimx8mq.dtb for mkimage to generate boot binary + if [ -n "${UBOOT_CONFIG}" ] + then + for config in ${UBOOT_MACHINE}; do + i=$(expr $i + 1); + for type in ${UBOOT_CONFIG}; do + j=$(expr $j + 1); + if [ $j -eq $i ] + then + install -d ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0777 ${B}/${config}/arch/arm/dts/fsl-smarcimx8mq.dtb ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0777 ${B}/${config}/tools/mkimage ${DEPLOYDIR}/${BOOT_TOOLS}/mkimage_uboot + install -m 0777 ${B}/${config}/u-boot-nodtb.bin ${DEPLOYDIR}/${BOOT_TOOLS} + fi + done + unset j + done + unset i + fi + +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" + +UBOOT_NAME_mx6 = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}" +UBOOT_NAME_mx7 = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}" +UBOOT_NAME_mx8 = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}" diff --git a/recipes-core/busybox/busybox/defconfig b/recipes-core/busybox/busybox/defconfig new file mode 100644 index 0000000..46be18c --- /dev/null +++ b/recipes-core/busybox/busybox/defconfig @@ -0,0 +1,1073 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.24.1 +# Sat Dec 1 13:47:19 2018 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +# CONFIG_DESKTOP is not set +# CONFIG_EXTRA_COMPAT is not set +CONFIG_INCLUDE_SUSv2=y +CONFIG_USE_PORTABLE_CODE=y +CONFIG_PLATFORM_LINUX=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_SHOW_USAGE=y +# CONFIG_FEATURE_VERBOSE_USAGE is not set +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_FEATURE_INSTALLER=y +# CONFIG_INSTALL_NO_USR is not set +CONFIG_LOCALE_SUPPORT=y +CONFIG_UNICODE_SUPPORT=y +# CONFIG_UNICODE_USING_LOCALE is not set +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_SUBST_WCHAR=0 +CONFIG_LAST_SUPPORTED_WCHAR=0 +# CONFIG_UNICODE_COMBINING_WCHARS is not set +# CONFIG_UNICODE_WIDE_WCHARS is not set +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set +# CONFIG_PAM is not set +CONFIG_FEATURE_USE_SENDFILE=y +CONFIG_LONG_OPTS=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_UTMP=y +# CONFIG_FEATURE_WTMP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_PID_FILE_PATH="/var/run" +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +# CONFIG_FEATURE_HAVE_RPC is not set + +# +# Build Options +# +# CONFIG_STATIC is not set +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="" +CONFIG_SYSROOT="" +CONFIG_EXTRA_CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types " +CONFIG_EXTRA_LDFLAGS="" +CONFIG_EXTRA_LDLIBS="" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_UNIT_TEST is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Installation Options ("make install" behavior) +# +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +CONFIG_FEATURE_SYSTEMD=y +CONFIG_FEATURE_RTMINMAX=y +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SMALL=1 +CONFIG_SHA3_SMALL=1 +CONFIG_FEATURE_FAST_TOP=y +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +# CONFIG_FEATURE_EDITING_VI is not set +CONFIG_FEATURE_EDITING_HISTORY=15 +CONFIG_FEATURE_EDITING_SAVEHISTORY=y +# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set +# CONFIG_FEATURE_REVERSE_SEARCH is not set +CONFIG_FEATURE_TAB_COMPLETION=y +CONFIG_FEATURE_USERNAME_COMPLETION=y +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set +CONFIG_FEATURE_NON_POSIX_CP=y +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_FEATURE_SKIP_ROOTFS=y +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +CONFIG_FEATURE_HWIB=y + +# +# Applets +# + +# +# Archival Utilities +# +CONFIG_FEATURE_SEAMLESS_XZ=y +CONFIG_FEATURE_SEAMLESS_LZMA=y +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_FEATURE_SEAMLESS_Z=y +# CONFIG_AR is not set +# CONFIG_FEATURE_AR_LONG_FILENAMES is not set +# CONFIG_FEATURE_AR_CREATE is not set +# CONFIG_UNCOMPRESS is not set +CONFIG_GUNZIP=y +CONFIG_BUNZIP2=y +# CONFIG_UNLZMA is not set +# CONFIG_FEATURE_LZMA_FAST is not set +# CONFIG_LZMA is not set +# CONFIG_UNXZ is not set +# CONFIG_XZ is not set +# CONFIG_BZIP2 is not set +CONFIG_CPIO=y +# CONFIG_FEATURE_CPIO_O is not set +# CONFIG_FEATURE_CPIO_P is not set +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +CONFIG_GZIP=y +# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set +CONFIG_GZIP_FAST=0 +# CONFIG_FEATURE_GZIP_LEVELS is not set +# CONFIG_LZOP is not set +# CONFIG_LZOP_COMPR_HIGH is not set +# CONFIG_RPM is not set +# CONFIG_RPM2CPIO is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set +# CONFIG_FEATURE_TAR_TO_COMMAND is not set +# CONFIG_FEATURE_TAR_UNAME_GNAME is not set +CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y +# CONFIG_FEATURE_TAR_SELINUX is not set +CONFIG_UNZIP=y + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAT=y +CONFIG_DATE=y +# CONFIG_FEATURE_DATE_ISOFMT is not set +# CONFIG_FEATURE_DATE_NANO is not set +CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set +CONFIG_FEATURE_DD_IBS_OBS=y +# CONFIG_FEATURE_DD_STATUS is not set +# CONFIG_HOSTID is not set +CONFIG_ID=y +CONFIG_GROUPS=y +CONFIG_SHUF=y +CONFIG_SYNC=y +# CONFIG_FEATURE_SYNC_FANCY is not set +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_FEATURE_TOUCH_NODEREF=y +CONFIG_FEATURE_TOUCH_SUSV3=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +# CONFIG_FEATURE_TR_EQUIV is not set +# CONFIG_TRUNCATE is not set +CONFIG_UNLINK=y +# CONFIG_BASE64 is not set +CONFIG_WHO=y +CONFIG_USERS=y +# CONFIG_CAL is not set +# CONFIG_CATV is not set +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set +CONFIG_CHROOT=y +# CONFIG_CKSUM is not set +# CONFIG_COMM is not set +CONFIG_CP=y +# CONFIG_FEATURE_CP_LONG_OPTIONS is not set +CONFIG_CUT=y +CONFIG_DF=y +# CONFIG_FEATURE_DF_FANCY is not set +CONFIG_DIRNAME=y +# CONFIG_DOS2UNIX is not set +# CONFIG_UNIX2DOS is not set +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_FEATURE_ENV_LONG_OPTIONS=y +# CONFIG_EXPAND is not set +# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +# CONFIG_FOLD is not set +# CONFIG_FSYNC is not set +CONFIG_HEAD=y +# CONFIG_FEATURE_FANCY_HEAD is not set +# CONFIG_INSTALL is not set +# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +# CONFIG_FEATURE_MV_LONG_OPTIONS is not set +# CONFIG_NICE is not set +CONFIG_NOHUP=y +CONFIG_OD=y +# CONFIG_PRINTENV is not set +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +CONFIG_SEQ=y +CONFIG_SHA1SUM=y +CONFIG_SHA256SUM=y +# CONFIG_SHA512SUM is not set +# CONFIG_SHA3SUM is not set +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +CONFIG_FEATURE_FLOAT_SLEEP=y +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +# CONFIG_SPLIT is not set +# CONFIG_FEATURE_SPLIT_FANCY is not set +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_STTY=y +# CONFIG_SUM is not set +# CONFIG_TAC is not set +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNAME_OSNAME="GNU/Linux" +# CONFIG_UNEXPAND is not set +# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set +CONFIG_UNIQ=y +CONFIG_USLEEP=y +# CONFIG_UUDECODE is not set +# CONFIG_UUENCODE is not set +CONFIG_WC=y +# CONFIG_FEATURE_WC_LARGE is not set +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options +# +CONFIG_FEATURE_VERBOSE=y + +# +# Common options for cp and mv +# +# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +CONFIG_CHVT=y +# CONFIG_FGCONSOLE is not set +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +# CONFIG_KBD_MODE is not set +CONFIG_LOADFONT=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set +# CONFIG_SETFONT is not set +# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set +CONFIG_DEFAULT_SETFONT_DIR="" +# CONFIG_SETKEYCODES is not set +# CONFIG_SETLOGCONS is not set +# CONFIG_SHOWKEY is not set + +# +# Common options for loadfont and setfont +# +# CONFIG_FEATURE_LOADFONT_PSF2 is not set +# CONFIG_FEATURE_LOADFONT_RAW is not set + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +# CONFIG_PIPE_PROGRESS is not set +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +# CONFIG_FEATURE_RUN_PARTS_FANCY is not set +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_LIBM=y +CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y +CONFIG_CMP=y +CONFIG_DIFF=y +# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set +CONFIG_FEATURE_DIFF_DIR=y +# CONFIG_ED is not set +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +# CONFIG_FEATURE_VI_REGEX_SEARCH is not set +CONFIG_FEATURE_VI_USE_SIGNALS=y +# CONFIG_FEATURE_VI_DOT_CMD is not set +# CONFIG_FEATURE_VI_READONLY is not set +# CONFIG_FEATURE_VI_SETOPTS is not set +# CONFIG_FEATURE_VI_SET is not set +CONFIG_FEATURE_VI_WIN_RESIZE=y +# CONFIG_FEATURE_VI_ASK_TERMINAL is not set +CONFIG_FEATURE_VI_UNDO=y +CONFIG_FEATURE_VI_UNDO_QUEUE=y +CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +# CONFIG_FEATURE_FIND_INUM is not set +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_EXEC_PLUS=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +# CONFIG_FEATURE_FIND_DELETE is not set +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +# CONFIG_FEATURE_FIND_LINKS is not set +CONFIG_GREP=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set +# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set +# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set +# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set +CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y + +# +# Init Utilities +# +# CONFIG_BOOTCHARTD is not set +# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set +# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set +CONFIG_HALT=y +# CONFIG_FEATURE_CALL_TELINIT is not set +CONFIG_TELINIT_PATH="" +# CONFIG_INIT is not set +# CONFIG_FEATURE_USE_INITTAB is not set +# CONFIG_FEATURE_KILL_REMOVED is not set +CONFIG_FEATURE_KILL_DELAY=0 +# CONFIG_FEATURE_INIT_SCTTY is not set +# CONFIG_FEATURE_INIT_SYSLOG is not set +# CONFIG_FEATURE_EXTRA_QUIET is not set +# CONFIG_FEATURE_INIT_COREDUMPS is not set +# CONFIG_FEATURE_INITRD is not set +CONFIG_INIT_TERMINAL_TYPE="" +CONFIG_MESG=y +# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set + +# +# Login/Password Management Utilities +# +# CONFIG_ADD_SHELL is not set +# CONFIG_REMOVE_SHELL is not set +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +CONFIG_USE_BB_CRYPT=y +# CONFIG_USE_BB_CRYPT_SHA is not set +CONFIG_ADDUSER=y +CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y +# CONFIG_FEATURE_CHECK_NAMES is not set +CONFIG_LAST_ID=60000 +CONFIG_FIRST_SYSTEM_ID=100 +CONFIG_LAST_SYSTEM_ID=999 +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y +# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set +CONFIG_DELUSER=y +CONFIG_DELGROUP=y +# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set +CONFIG_GETTY=y +CONFIG_LOGIN=y +# CONFIG_LOGIN_SESSION_AS_CHILD is not set +# CONFIG_LOGIN_SCRIPTS is not set +# CONFIG_FEATURE_NOLOGIN is not set +# CONFIG_FEATURE_SECURETTY is not set +CONFIG_PASSWD=y +# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set +# CONFIG_CRYPTPW is not set +# CONFIG_CHPASSWD is not set +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="" +CONFIG_SU=y +# CONFIG_FEATURE_SU_SYSLOG is not set +# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set +CONFIG_SULOGIN=y +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +CONFIG_FSCK=y +# CONFIG_LSATTR is not set +# CONFIG_TUNE2FS is not set + +# +# Linux Module Utilities +# +# CONFIG_MODINFO is not set +# CONFIG_MODPROBE_SMALL is not set +# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +CONFIG_INSMOD=y +CONFIG_RMMOD=y +CONFIG_LSMOD=y +# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set +CONFIG_MODPROBE=y +# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set +CONFIG_DEPMOD=y + +# +# Options common to multiple modutils +# +# CONFIG_FEATURE_2_4_MODULES is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_MODUTILS_ALIAS=y +CONFIG_FEATURE_MODUTILS_SYMBOLS=y +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" + +# +# Linux System Utilities +# +# CONFIG_BLOCKDEV is not set +# CONFIG_FATATTR is not set +CONFIG_FSTRIM=y +# CONFIG_MDEV is not set +# CONFIG_FEATURE_MDEV_CONF is not set +# CONFIG_FEATURE_MDEV_RENAME is not set +# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set +# CONFIG_FEATURE_MDEV_EXEC is not set +# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +CONFIG_MOUNT=y +# CONFIG_FEATURE_MOUNT_FAKE is not set +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +# CONFIG_FEATURE_MOUNT_HELPERS is not set +CONFIG_FEATURE_MOUNT_LABEL=y +# CONFIG_FEATURE_MOUNT_NFS is not set +# CONFIG_FEATURE_MOUNT_CIFS is not set +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set +# CONFIG_REV is not set +# CONFIG_UEVENT is not set +# CONFIG_ACPID is not set +# CONFIG_FEATURE_ACPID_COMPAT is not set +CONFIG_BLKID=y +CONFIG_FEATURE_BLKID_TYPE=y +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +# CONFIG_FDFLUSH is not set +# CONFIG_FDFORMAT is not set +CONFIG_FDISK=y +# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set +CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +# CONFIG_FEATURE_OSF_LABEL is not set +# CONFIG_FEATURE_GPT_LABEL is not set +# CONFIG_FEATURE_FDISK_ADVANCED is not set +# CONFIG_FINDFS is not set +CONFIG_FLOCK=y +# CONFIG_FREERAMDISK is not set +# CONFIG_FSCK_MINIX is not set +# CONFIG_MKFS_EXT2 is not set +# CONFIG_MKFS_MINIX is not set +# CONFIG_FEATURE_MINIX2 is not set +# CONFIG_MKFS_REISER is not set +# CONFIG_MKFS_VFAT is not set +CONFIG_GETOPT=y +CONFIG_FEATURE_GETOPT_LONG=y +CONFIG_HEXDUMP=y +CONFIG_FEATURE_HEXDUMP_REVERSE=y +# CONFIG_HD is not set +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +# CONFIG_IPCRM is not set +# CONFIG_IPCS is not set +CONFIG_LOSETUP=y +# CONFIG_LSPCI is not set +# CONFIG_LSUSB is not set +CONFIG_MKSWAP=y +# CONFIG_FEATURE_MKSWAP_UUID is not set +CONFIG_MORE=y +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +# CONFIG_RDEV is not set +# CONFIG_READPROFILE is not set +# CONFIG_RTCWAKE is not set +# CONFIG_SCRIPT is not set +# CONFIG_SCRIPTREPLAY is not set +# CONFIG_SETARCH is not set +CONFIG_SWAPONOFF=y +CONFIG_FEATURE_SWAPON_DISCARD=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWITCH_ROOT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MOUNT_LOOP_CREATE=y +# CONFIG_FEATURE_MTAB_SUPPORT is not set +CONFIG_VOLUMEID=y + +# +# Filesystem/Volume identification +# +CONFIG_FEATURE_VOLUMEID_BTRFS=y +# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set +# CONFIG_FEATURE_VOLUMEID_EXFAT is not set +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_F2FS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +# CONFIG_FEATURE_VOLUMEID_HFS is not set +# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set +# CONFIG_FEATURE_VOLUMEID_JFS is not set +# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set +# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set +# CONFIG_FEATURE_VOLUMEID_LUKS is not set +# CONFIG_FEATURE_VOLUMEID_NILFS is not set +# CONFIG_FEATURE_VOLUMEID_NTFS is not set +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +# CONFIG_FEATURE_VOLUMEID_REISERFS is not set +# CONFIG_FEATURE_VOLUMEID_ROMFS is not set +CONFIG_FEATURE_VOLUMEID_SQUASHFS=y +# CONFIG_FEATURE_VOLUMEID_SYSV is not set +# CONFIG_FEATURE_VOLUMEID_UDF is not set +# CONFIG_FEATURE_VOLUMEID_XFS is not set + +# +# Miscellaneous Utilities +# +# CONFIG_CONSPY is not set +# CONFIG_CROND is not set +# CONFIG_FEATURE_CROND_D is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +CONFIG_FEATURE_CROND_DIR="" +# CONFIG_I2CGET is not set +# CONFIG_I2CSET is not set +# CONFIG_I2CDUMP is not set +# CONFIG_I2CDETECT is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +# CONFIG_FEATURE_LESS_TRUNCATE is not set +# CONFIG_FEATURE_LESS_MARKS is not set +# CONFIG_FEATURE_LESS_REGEXP is not set +# CONFIG_FEATURE_LESS_WINCH is not set +# CONFIG_FEATURE_LESS_ASK_TERMINAL is not set +# CONFIG_FEATURE_LESS_DASHCMD is not set +# CONFIG_FEATURE_LESS_LINENUMS is not set +# CONFIG_NANDWRITE is not set +# CONFIG_NANDDUMP is not set +CONFIG_RFKILL=y +# CONFIG_SETSERIAL is not set +# CONFIG_TASKSET is not set +# CONFIG_FEATURE_TASKSET_FANCY is not set +# CONFIG_UBIATTACH is not set +# CONFIG_UBIDETACH is not set +# CONFIG_UBIMKVOL is not set +# CONFIG_UBIRMVOL is not set +# CONFIG_UBIRSVOL is not set +# CONFIG_UBIUPDATEVOL is not set +# CONFIG_WALL is not set +# CONFIG_ADJTIMEX is not set +# CONFIG_BBCONFIG is not set +# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set +# CONFIG_BEEP is not set +CONFIG_FEATURE_BEEP_FREQ=0 +CONFIG_FEATURE_BEEP_LENGTH_MS=0 +# CONFIG_CHAT is not set +# CONFIG_FEATURE_CHAT_NOFAIL is not set +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +# CONFIG_CHRT is not set +# CONFIG_CRONTAB is not set +CONFIG_DC=y +# CONFIG_FEATURE_DC_LIBM is not set +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +# CONFIG_DEVMEM is not set +# CONFIG_EJECT is not set +# CONFIG_FEATURE_EJECT_SCSI is not set +# CONFIG_FBSPLASH is not set +# CONFIG_FLASHCP is not set +# CONFIG_FLASH_LOCK is not set +# CONFIG_FLASH_UNLOCK is not set +# CONFIG_FLASH_ERASEALL is not set +# CONFIG_IONICE is not set +# CONFIG_INOTIFYD is not set +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_SMALL is not set +# CONFIG_FEATURE_LAST_FANCY is not set +# CONFIG_HDPARM is not set +# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +# CONFIG_MAKEDEVS is not set +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +# CONFIG_FEATURE_MAKEDEVS_TABLE is not set +# CONFIG_MAN is not set +CONFIG_MICROCOM=y +# CONFIG_MOUNTPOINT is not set +# CONFIG_MT is not set +# CONFIG_RAIDAUTORUN is not set +# CONFIG_READAHEAD is not set +# CONFIG_RUNLEVEL is not set +# CONFIG_RX is not set +# CONFIG_SETSID is not set +CONFIG_STRINGS=y +CONFIG_TIME=y +# CONFIG_TIMEOUT is not set +# CONFIG_TTYSIZE is not set +# CONFIG_VOLNAME is not set +# CONFIG_WATCHDOG is not set + +# +# Networking Utilities +# +# CONFIG_NAMEIF is not set +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +# CONFIG_NBDCLIENT is not set +CONFIG_NC=y +# CONFIG_NC_SERVER is not set +# CONFIG_NC_EXTRA is not set +# CONFIG_NC_110_COMPAT is not set +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_TIMEOUT=y +# CONFIG_FEATURE_WGET_OPENSSL is not set +# CONFIG_FEATURE_WGET_SSL_HELPER is not set +# CONFIG_WHOIS is not set +CONFIG_FEATURE_IPV6=y +# CONFIG_FEATURE_UNIX_LOCAL is not set +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +# CONFIG_ARP is not set +# CONFIG_ARPING is not set +# CONFIG_BRCTL is not set +# CONFIG_FEATURE_BRCTL_FANCY is not set +# CONFIG_FEATURE_BRCTL_SHOW is not set +# CONFIG_DNSD is not set +# CONFIG_ETHER_WAKE is not set +# CONFIG_FAKEIDENTD is not set +# CONFIG_FTPD is not set +# CONFIG_FEATURE_FTP_WRITE is not set +# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set +# CONFIG_FEATURE_FTP_AUTHENTICATION is not set +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +# CONFIG_FEATURE_HTTPD_GZIP is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +# CONFIG_FEATURE_IFCONFIG_SLIP is not set +# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set +CONFIG_FEATURE_IFCONFIG_HW=y +# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set +# CONFIG_IFENSLAVE is not set +# CONFIG_IFPLUGD is not set +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" +CONFIG_FEATURE_IP_TUNNEL=y +# CONFIG_FEATURE_IP_RULE is not set +# CONFIG_FEATURE_IP_SHORT_FORMS is not set +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +# CONFIG_IPADDR is not set +# CONFIG_IPLINK is not set +# CONFIG_IPROUTE is not set +# CONFIG_IPTUNNEL is not set +# CONFIG_IPRULE is not set +# CONFIG_IPCALC is not set +# CONFIG_FEATURE_IPCALC_FANCY is not set +# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set +CONFIG_NETSTAT=y +# CONFIG_FEATURE_NETSTAT_WIDE is not set +# CONFIG_FEATURE_NETSTAT_PRG is not set +CONFIG_NSLOOKUP=y +# CONFIG_NTPD is not set +# CONFIG_FEATURE_NTPD_SERVER is not set +# CONFIG_FEATURE_NTPD_CONF is not set +# CONFIG_PSCAN is not set +CONFIG_ROUTE=y +# CONFIG_SLATTACH is not set +# CONFIG_TCPSVD is not set +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +# CONFIG_TELNETD is not set +# CONFIG_FEATURE_TELNETD_STANDALONE is not set +# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set +CONFIG_TFTP=y +CONFIG_TFTPD=y + +# +# Common options for tftp/tftpd +# +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set +# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set +# CONFIG_TFTP_DEBUG is not set +CONFIG_TRACEROUTE=y +# CONFIG_TRACEROUTE6 is not set +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_TUNCTL is not set +# CONFIG_FEATURE_TUNCTL_UG is not set +# CONFIG_UDHCPC6 is not set +# CONFIG_UDHCPD is not set +# CONFIG_DHCPRELAY is not set +CONFIG_DUMPLEASES=y +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set +CONFIG_DHCPD_LEASES_FILE="" +CONFIG_UDHCPC=y +CONFIG_FEATURE_UDHCPC_ARPING=y +CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y +# CONFIG_FEATURE_UDHCP_PORT is not set +CONFIG_UDHCP_DEBUG=0 +# CONFIG_FEATURE_UDHCP_RFC3397 is not set +# CONFIG_FEATURE_UDHCP_8021Q is not set +CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -b" +# CONFIG_UDPSVD is not set +# CONFIG_VCONFIG is not set +# CONFIG_ZCIP is not set + +# +# Print Utilities +# +# CONFIG_LPD is not set +# CONFIG_LPR is not set +# CONFIG_LPQ is not set + +# +# Mail Utilities +# +# CONFIG_MAKEMIME is not set +CONFIG_FEATURE_MIME_CHARSET="" +# CONFIG_POPMAILDIR is not set +# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set +# CONFIG_REFORMIME is not set +# CONFIG_FEATURE_REFORMIME_COMPAT is not set +# CONFIG_SENDMAIL is not set + +# +# Process Utilities +# +# CONFIG_IOSTAT is not set +# CONFIG_LSOF is not set +# CONFIG_MPSTAT is not set +# CONFIG_NMETER is not set +# CONFIG_PMAP is not set +# CONFIG_POWERTOP is not set +# CONFIG_PSTREE is not set +# CONFIG_PWDX is not set +# CONFIG_SMEMCAP is not set +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +# CONFIG_FEATURE_TOP_SMP_CPU is not set +# CONFIG_FEATURE_TOP_DECIMALS is not set +# CONFIG_FEATURE_TOP_SMP_PROCESS is not set +# CONFIG_FEATURE_TOPMEM is not set +CONFIG_UPTIME=y +# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_KILL=y +CONFIG_KILLALL=y +# CONFIG_KILLALL5 is not set +# CONFIG_PGREP is not set +CONFIG_PIDOF=y +# CONFIG_FEATURE_PIDOF_SINGLE is not set +# CONFIG_FEATURE_PIDOF_OMIT is not set +# CONFIG_PKILL is not set +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_LONG=y +# CONFIG_FEATURE_PS_TIME is not set +# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_RENICE=y +CONFIG_BB_SYSCTL=y +# CONFIG_FEATURE_SHOW_THREADS is not set +CONFIG_WATCH=y + +# +# Runit Utilities +# +# CONFIG_RUNSV is not set +# CONFIG_RUNSVDIR is not set +# CONFIG_FEATURE_RUNSVDIR_LOG is not set +# CONFIG_SV is not set +CONFIG_SV_DEFAULT_SERVICE_DIR="" +# CONFIG_SVLOGD is not set +# CONFIG_CHPST is not set +# CONFIG_SETUIDGID is not set +# CONFIG_ENVUIDGID is not set +# CONFIG_ENVDIR is not set +# CONFIG_SOFTLIMIT is not set +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_SETSEBOOL is not set +# CONFIG_SESTATUS is not set + +# +# Shells +# +CONFIG_ASH=y +CONFIG_ASH_BASH_COMPAT=y +# CONFIG_ASH_IDLE_TIMEOUT is not set +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_PRINTF=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_HELP=y +CONFIG_ASH_CMDCMD=y +# CONFIG_ASH_MAIL is not set +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +# CONFIG_ASH_RANDOM_SUPPORT is not set +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_CTTYHACK is not set +# CONFIG_HUSH is not set +# CONFIG_HUSH_BASH_COMPAT is not set +# CONFIG_HUSH_BRACE_EXPANSION is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_SAVEHISTORY is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_HUSH_FUNCTIONS is not set +# CONFIG_HUSH_LOCAL is not set +# CONFIG_HUSH_RANDOM_SUPPORT is not set +# CONFIG_HUSH_EXPORT_N is not set +# CONFIG_HUSH_MODE_X is not set +# CONFIG_MSH is not set +CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_HUSH is not set +# CONFIG_FEATURE_SH_IS_NONE is not set +# CONFIG_FEATURE_BASH_IS_ASH is not set +# CONFIG_FEATURE_BASH_IS_HUSH is not set +CONFIG_FEATURE_BASH_IS_NONE=y +CONFIG_SH_MATH_SUPPORT=y +# CONFIG_SH_MATH_SUPPORT_64 is not set +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_FEATURE_SH_HISTFILESIZE=y + +# +# System Logging Utilities +# +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +CONFIG_FEATURE_SYSLOGD_DUP=y +CONFIG_FEATURE_SYSLOGD_CFG=y +CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=64 +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_FEATURE_KMSG_SYSLOG=y +CONFIG_KLOGD=y + +# +# klogd should not be used together with syslog to kernel printk buffer +# +CONFIG_FEATURE_KLOGD_KLOGCTL=y +CONFIG_LOGGER=y diff --git a/recipes-core/busybox/busybox/ftpget.cfg b/recipes-core/busybox/busybox/ftpget.cfg new file mode 100644 index 0000000..b39a34d --- /dev/null +++ b/recipes-core/busybox/busybox/ftpget.cfg @@ -0,0 +1,4 @@ +CONFIG_FTPGET=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_FEATURE_HEXDUMP_REVERSE=y diff --git a/recipes-core/busybox/busybox_%.bbappend b/recipes-core/busybox/busybox_%.bbappend new file mode 100644 index 0000000..53c53db --- /dev/null +++ b/recipes-core/busybox/busybox_%.bbappend @@ -0,0 +1,6 @@ +# Cinfigure Busybox +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI += "file://defconfig \ + file://ftpget.cfg \ + " diff --git a/recipes-core/packagegroups/packagegroup-core-tools-testapps.bbappend b/recipes-core/packagegroups/packagegroup-core-tools-testapps.bbappend new file mode 100644 index 0000000..c708747 --- /dev/null +++ b/recipes-core/packagegroups/packagegroup-core-tools-testapps.bbappend @@ -0,0 +1,5 @@ +RDEPENDS_${PN}_remove = "\ + connman-tools \ + connman-tests \ + connman-client \ + " diff --git a/recipes-kernel/linux/linux-imx-src.inc b/recipes-kernel/linux/linux-imx-src.inc new file mode 100644 index 0000000..b90d9cb --- /dev/null +++ b/recipes-kernel/linux/linux-imx-src.inc @@ -0,0 +1,14 @@ +# Copyright 2017-2018 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" + +SRCBRANCH = "imx_4.9.88_2.0.0_ga" +LOCALVERSION = "-${SRCBRANCH}" + +KERNEL_SRC ?= "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https" +SRC_URI = "${KERNEL_SRC};branch=${SRCBRANCH}" +SRCREV = "5e23f9d6114784d77fd4ed5848953356c3575532" + +S = "${WORKDIR}/git" diff --git a/recipes-kernel/linux/linux-smarcimx8m_4.9.88.bb b/recipes-kernel/linux/linux-smarcimx8m_4.9.88.bb new file mode 100644 index 0000000..c73fdee --- /dev/null +++ b/recipes-kernel/linux/linux-smarcimx8m_4.9.88.bb @@ -0,0 +1,52 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017 NXP +# Copyright 2018 Embedian, Inc.. +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Linux Kernel provided and supported by NXP" +DESCRIPTION = "Linux Kernel provided and supported by NXP with focus on \ +i.MX Family Reference Boards. It includes support for many IPs such as GPU, VPU and IPU." + +require recipes-kernel/linux/linux-imx.inc +require recipes-kernel/linux/linux-imx-src.inc + +DEPENDS += "lzop-native bc-native" + +DEFAULT_PREFERENCE = "1" + +DO_CONFIG_V7_COPY = "no" +DO_CONFIG_V7_COPY_mx6 = "yes" +DO_CONFIG_V7_COPY_mx7 = "yes" +DO_CONFIG_V7_COPY_mx8 = "no" + +SRCBRANCH = "smarc-imx_4.9.88_2.0.0_ga" + +LOCALVERSION = "-${SRCBRANCH}" +DEFCONFIG_mx8 = "smarcimx8m_defconfig" + +KERNEL_SRC ?= "git@git.embedian.com:developer/smarc-fsl-linux-kernel.git;protocol=git" +SRC_URI = "${EMB_KERNEL_MIRROR};protocol=ssh;branch=${SRCBRANCH}" +SRCREV = "a0f48761d7bb4f790f996f0765cced72c1ff3ee2" + +S = "${WORKDIR}/git" + +addtask copy_defconfig after do_unpack before do_preconfigure +do_copy_defconfig () { + install -d ${B} + if [ ${DO_CONFIG_V7_COPY} = "yes" ]; then + # copy latest imx_v7_defconfig to use for mx6, mx6ul and mx7 + mkdir -p ${B} + cp ${S}/arch/arm/configs/imx_v7_defconfig ${B}/.config + cp ${S}/arch/arm/configs/imx_v7_defconfig ${B}/../defconfig + else + # copy latest defconfig to use for mx8 + mkdir -p ${B} + cp ${S}/arch/arm64/configs/${DEFCONFIG_mx8} ${B}/.config + cp ${S}/arch/arm64/configs/${DEFCONFIG_mx8} ${B}/../defconfig + fi +} + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" +EXTRA_OEMAKE_append_mx6 = " ARCH=arm" +EXTRA_OEMAKE_append_mx7 = " ARCH=arm" +EXTRA_OEMAKE_append_mx8 = " ARCH=arm64" diff --git a/recipes-multimedia/gst-plugins-good/files/increase_min_buffers.patch b/recipes-multimedia/gst-plugins-good/files/increase_min_buffers.patch new file mode 100644 index 0000000..4e1c52b --- /dev/null +++ b/recipes-multimedia/gst-plugins-good/files/increase_min_buffers.patch @@ -0,0 +1,13 @@ +diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h +index 231b1ab..58c9d8b 100644 +--- a/sys/v4l2/gstv4l2object.h ++++ b/sys/v4l2/gstv4l2object.h +@@ -39,7 +39,7 @@ typedef struct _GstV4l2Xv GstV4l2Xv; + #include + + /* size of v4l2 buffer pool in streaming case */ +-#define GST_V4L2_MIN_BUFFERS 2 ++#define GST_V4L2_MIN_BUFFERS 6 + + /* max frame width/height */ + #define GST_V4L2_MAX_SIZE (1<<15) /* 2^15 == 32768 */ diff --git a/recipes-multimedia/gst-plugins-good/gstreamer1.0-plugins-good_1.12.%.bbappend b/recipes-multimedia/gst-plugins-good/gstreamer1.0-plugins-good_1.12.%.bbappend new file mode 100644 index 0000000..8740487 --- /dev/null +++ b/recipes-multimedia/gst-plugins-good/gstreamer1.0-plugins-good_1.12.%.bbappend @@ -0,0 +1,6 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/files/:" + +SRC_URI += " \ + file://increase_min_buffers.patch \ +" + diff --git a/recipes-multimedia/pulseaudio/pulseaudio/default.pa b/recipes-multimedia/pulseaudio/pulseaudio/default.pa new file mode 100644 index 0000000..dbfb2a5 --- /dev/null +++ b/recipes-multimedia/pulseaudio/pulseaudio/default.pa @@ -0,0 +1,170 @@ +#!/usr/bin/pulseaudio -nF +# +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +# This startup script is used only if PulseAudio is started per-user +# (i.e. not in system mode) + +.nofail + +### Load something into the sample cache +#load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav +#load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav +#load-sample-lazy pulse-coldplug /usr/share/sounds/startup3.wav +#load-sample-lazy pulse-access /usr/share/sounds/generic.wav + +.fail + +### Automatically restore the volume of streams and devices +load-module module-device-restore +load-module module-stream-restore +load-module module-card-restore + +### Automatically augment property information from .desktop files +### stored in /usr/share/application +load-module module-augment-properties + +### Should be after module-*-restore but before module-*-detect +load-module module-switch-on-port-available + +### Load audio drivers statically +### (it's probably better to not load these drivers manually, but instead +### use module-udev-detect -- see below -- for doing this automatically) +load-module module-alsa-sink +load-module module-alsa-source device=hw:0,0 +#load-module module-oss device="/dev/dsp" sink_name=output source_name=input +#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input +#load-module module-null-sink +#load-module module-pipe-sink + +### Automatically load driver modules depending on the hardware available +#.ifexists module-udev-detect.so +#load-module module-udev-detect tsched=0 +#.else +### Use the static hardware detection module (for systems that lack udev support) +#load-module module-detect +#.endif + +### Automatically connect sink and source if JACK server is present +.ifexists module-jackdbus-detect.so +.nofail +load-module module-jackdbus-detect channels=2 +.fail +.endif + +### Automatically load driver modules for Bluetooth hardware +.ifexists module-bluetooth-policy.so +load-module module-bluetooth-policy +.endif + +.ifexists module-bluetooth-discover.so +load-module module-bluetooth-discover +.endif + +### Load several protocols +.ifexists module-esound-protocol-unix.so +load-module module-esound-protocol-unix +.endif +load-module module-native-protocol-unix + +### Network access (may be configured with paprefs, so leave this commented +### here if you plan to use paprefs) +#load-module module-esound-protocol-tcp +#load-module module-native-protocol-tcp +#load-module module-zeroconf-publish + +### Load the RTP receiver module (also configured via paprefs, see above) +#load-module module-rtp-recv + +### Load the RTP sender module (also configured via paprefs, see above) +#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'" +#load-module module-rtp-send source=rtp.monitor + +### Load additional modules from GConf settings. This can be configured with the paprefs tool. +### Please keep in mind that the modules configured by paprefs might conflict with manually +### loaded modules. +.ifexists module-gconf.so +.nofail +load-module module-gconf +.fail +.endif + +### Automatically restore the default sink/source when changed by the user +### during runtime +### NOTE: This should be loaded as early as possible so that subsequent modules +### that look up the default sink/source get the right value +load-module module-default-device-restore + +### Automatically move streams to the default sink if the sink they are +### connected to dies, similar for sources +load-module module-rescue-streams + +### Make sure we always have a sink around, even if it is a null sink. +load-module module-always-sink + +### Honour intended role device property +load-module module-intended-roles + +### Automatically suspend sinks/sources that become idle for too long +load-module module-suspend-on-idle + +### If autoexit on idle is enabled we want to make sure we only quit +### when no local session needs us anymore. +.ifexists module-console-kit.so +load-module module-console-kit +.endif +.ifexists module-systemd-login.so +load-module module-systemd-login +.endif + +### Enable positioned event sounds +load-module module-position-event-sounds + +### Cork music/video streams when a phone stream is active +load-module module-role-cork + +### Modules to allow autoloading of filters (such as echo cancellation) +### on demand. module-filter-heuristics tries to determine what filters +### make sense, and module-filter-apply does the heavy-lifting of +### loading modules and rerouting streams. +load-module module-filter-heuristics +load-module module-filter-apply + +### Load DBus protocol +.ifexists module-dbus-protocol.so +load-module module-dbus-protocol +.endif + +# X11 modules should not be started from default.pa so that one daemon +# can be shared by multiple sessions. + +### Load X11 bell module +#load-module module-x11-bell sample=bell-windowing-system + +### Register ourselves in the X11 session manager +#load-module module-x11-xsmp + +### Publish connection data in the X11 root window +#.ifexists module-x11-publish.so +#.nofail +#load-module module-x11-publish +#.fail +#.endif + +### Make some devices default +#set-default-sink output +#set-default-source input diff --git a/recipes-multimedia/pulseaudio/pulseaudio/init b/recipes-multimedia/pulseaudio/pulseaudio/init new file mode 100644 index 0000000..d61c740 --- /dev/null +++ b/recipes-multimedia/pulseaudio/pulseaudio/init @@ -0,0 +1,45 @@ +#!/bin/sh + +DAEMON=/usr/bin/pulseaudio +PIDDIR=/var/run/pulse +PIDFILE=$PIDDIR/pid +DAEMONUSER=pulse + +pulseaudio_start() { + + if [ ! -d ${PIDDIR} ]; then + mkdir -p ${PIDDIR} + chown ${DAEMONUSER}:${DAEMONUSER} ${PIDDIR} + fi + + start-stop-daemon -x ${DAEMON} -p ${PIDFILE} --start -- \ + --system --disallow-exit --disable-shm --exit-idle-time=-1 \ + --daemonize --log-target=syslog +} + +pulseaudio_stop() { + start-stop-daemon -p ${PIDFILE} --stop --retry 5 || echo -n "...which is not running" +} + +case "$1" in + start|stop) + pulseaudio_${1} + ;; + restart|force-reload) + if [ -s ${PIDFILE} ] && kill -0 $(cat ${PIDFILE}) >/dev/null 2>&1; then + pulseaudio_stop + pulseaudio_start + fi + ;; + force-stop) + pulseaudio_stop + killall pulseaudio || true + sleep 2 + killall -9 pulseaudio || true + ;; + *) + echo "Usage: /etc/init.d/pulseaudio {start|stop|force-stop|restart|force-reload}" + exit 1 + ;; +esac + diff --git a/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-bluetooth.conf b/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-bluetooth.conf new file mode 100644 index 0000000..be4b60d --- /dev/null +++ b/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-bluetooth.conf @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio.service b/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio.service new file mode 100644 index 0000000..be612ae --- /dev/null +++ b/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio.service @@ -0,0 +1,10 @@ +[Unit] +Description=PulseAudio system server + +[Service] +Type=forking +PIDFile=/var/run/pulse/pid +ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disable-shm --exit-idle-time=-1 --daemonize + +[Install] +WantedBy=multi-user.target diff --git a/recipes-multimedia/pulseaudio/pulseaudio/system.pa b/recipes-multimedia/pulseaudio/pulseaudio/system.pa new file mode 100644 index 0000000..5972dfc --- /dev/null +++ b/recipes-multimedia/pulseaudio/pulseaudio/system.pa @@ -0,0 +1,170 @@ +#!/usr/bin/pulseaudio -nF +# +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +# This startup script is used only if PulseAudio is started per-user +# (i.e. not in system mode) + +.nofail + +### Load something into the sample cache +#load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav +#load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav +#load-sample-lazy pulse-coldplug /usr/share/sounds/startup3.wav +#load-sample-lazy pulse-access /usr/share/sounds/generic.wav + +.fail + +### Automatically restore the volume of streams and devices +load-module module-device-restore +load-module module-stream-restore +load-module module-card-restore + +### Automatically augment property information from .desktop files +### stored in /usr/share/application +#load-module module-augment-properties + +### Should be after module-*-restore but before module-*-detect +load-module module-switch-on-port-available + +### Load audio drivers statically +### (it's probably better to not load these drivers manually, but instead +### use module-udev-detect -- see below -- for doing this automatically) +load-module module-alsa-sink +load-module module-alsa-source device=hw:0,0 +#load-module module-oss device="/dev/dsp" sink_name=output source_name=input +#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input +#load-module module-null-sink +#load-module module-pipe-sink + +### Load driver modules for Bluetooth hardware +.ifexists module-bluetooth-policy.so +load-module module-bluetooth-policy +.endif + +.ifexists module-bluetooth-discover.so +load-module module-bluetooth-discover +.endif + +### Automatically load driver modules depending on the hardware available +#.ifexists module-udev-detect.so +#load-module module-udev-detect tsched=0 +#.else +### Use the static hardware detection module (for systems that lack udev support) +#load-module module-detect +#.endif + +### Automatically connect sink and source if JACK server is present +.ifexists module-jackdbus-detect.so +.nofail +load-module module-jackdbus-detect channels=2 +.fail +.endif + +### Load several protocols +.ifexists module-esound-protocol-unix.so +load-module module-esound-protocol-unix +.endif +load-module module-native-protocol-unix auth-anonymous=1 + +### Network access (may be configured with paprefs, so leave this commented +### here if you plan to use paprefs) +#load-module module-esound-protocol-tcp +#load-module module-native-protocol-tcp +#load-module module-zeroconf-publish + +### Load the RTP receiver module (also configured via paprefs, see above) +#load-module module-rtp-recv + +### Load the RTP sender module (also configured via paprefs, see above) +#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'" +#load-module module-rtp-send source=rtp.monitor + +### Load additional modules from GConf settings. This can be configured with the paprefs tool. +### Please keep in mind that the modules configured by paprefs might conflict with manually +### loaded modules. +#.ifexists module-gconf.so +#.nofail +#load-module module-gconf +#.fail +#.endif + +### Automatically restore the default sink/source when changed by the user +### during runtime +### NOTE: This should be loaded as early as possible so that subsequent modules +### that look up the default sink/source get the right value +load-module module-default-device-restore + +### Automatically move streams to the default sink if the sink they are +### connected to dies, similar for sources +load-module module-rescue-streams + +### Make sure we always have a sink around, even if it is a null sink. +load-module module-always-sink + +### Honour intended role device property +load-module module-intended-roles + +### Automatically suspend sinks/sources that become idle for too long +load-module module-suspend-on-idle + +### If autoexit on idle is enabled we want to make sure we only quit +### when no local session needs us anymore. +#.ifexists module-console-kit.so +#load-module module-console-kit +#.endif +#.ifexists module-systemd-login.so +#load-module module-systemd-login +#.endif + +### Enable positioned event sounds +load-module module-position-event-sounds + +### Cork music/video streams when a phone stream is active +load-module module-role-cork + +### Modules to allow autoloading of filters (such as echo cancellation) +### on demand. module-filter-heuristics tries to determine what filters +### make sense, and module-filter-apply does the heavy-lifting of +### loading modules and rerouting streams. +load-module module-filter-heuristics +load-module module-filter-apply + +### Load DBus protocol +.ifexists module-dbus-protocol.so +load-module module-dbus-protocol +.endif + +# X11 modules should not be started from default.pa so that one daemon +# can be shared by multiple sessions. + +### Load X11 bell module +#load-module module-x11-bell sample=bell-windowing-system + +### Register ourselves in the X11 session manager +#load-module module-x11-xsmp + +### Publish connection data in the X11 root window +#.ifexists module-x11-publish.so +#.nofail +#load-module module-x11-publish +#.fail +#.endif + +### Make some devices default +#set-default-sink output +#set-default-source input diff --git a/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend b/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend new file mode 100644 index 0000000..29f7658 --- /dev/null +++ b/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend @@ -0,0 +1,31 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}/:" + +SRC_URI += " \ + file://init \ + file://pulseaudio-bluetooth.conf \ + file://system.pa \ + file://pulseaudio.service \ +" + +FILES_${PN} += "${sysconfdir}/systemd/system/*" + +do_install_append() { + install -d ${D}/${sysconfdir}/dbus-1/system.d + install -d ${D}/${sysconfdir}/pulse + + install -m 0644 ${WORKDIR}/pulseaudio-bluetooth.conf ${D}/${sysconfdir}/dbus-1/system.d + install -m 0644 ${WORKDIR}/system.pa ${D}/${sysconfdir}/pulse + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${sysconfdir}/systemd/system/multi-user.target.wants + install -m 0644 ${WORKDIR}/pulseaudio.service ${D}${sysconfdir}/systemd/system + ln -sf ${sysconfdir}/systemd/system/pulseaudio.service \ + ${D}${sysconfdir}/systemd/system/multi-user.target.wants/pulseaudio.service + else + install -d ${D}/${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/pulseaudio + update-rc.d -r ${D} pulseaudio defaults + fi + + rm -f ${D}/${sysconfdir}/xdg/autostart/pulseaudio.desktop +} diff --git a/recipes-security/optee-imx/optee-os-imx_git.bbappend b/recipes-security/optee-imx/optee-os-imx_git.bbappend new file mode 100644 index 0000000..dded655 --- /dev/null +++ b/recipes-security/optee-imx/optee-os-imx_git.bbappend @@ -0,0 +1,3 @@ +# Add smarcimx8m compatible machine. + +COMPATIBLE_MACHINE += "(smarcimx8m2g|smarcimx8m2gind|smarcimx8m4g|mx6|mx7|mx8m)" -- 1.9.1