Commit 2d4de6ae5be54b367a72a7ef4e0cf36a9cd4881f

Authored by Haiying Wang
Committed by Kumar Gala
1 parent 1b3e4044a2
Exists in master and in 55 other branches 8qm-imx_v2020.04_5.4.70_2.3.0, emb_lf_v2022.04, emb_lf_v2023.04, imx_v2015.04_4.1.15_1.0.0_ga, pitx_8mp_lf_v2020.04, smarc-8m-android-10.0.0_2.6.0, smarc-8m-android-11.0.0_2.0.0, smarc-8mp-android-11.0.0_2.0.0, smarc-emmc-imx_v2014.04_3.10.53_1.1.0_ga, smarc-emmc-imx_v2014.04_3.14.28_1.0.0_ga, smarc-imx-l5.0.0_1.0.0-ga, smarc-imx6_v2018.03_4.14.98_2.0.0_ga, smarc-imx7_v2017.03_4.9.11_1.0.0_ga, smarc-imx7_v2018.03_4.14.98_2.0.0_ga, smarc-imx_v2014.04_3.14.28_1.0.0_ga, smarc-imx_v2015.04_4.1.15_1.0.0_ga, smarc-imx_v2017.03_4.9.11_1.0.0_ga, smarc-imx_v2017.03_4.9.88_2.0.0_ga, smarc-imx_v2017.03_o8.1.0_1.3.0_8m, smarc-imx_v2018.03_4.14.78_1.0.0_ga, smarc-m6.0.1_2.1.0-ga, smarc-n7.1.2_2.0.0-ga, smarc-rel_imx_4.1.15_2.0.0_ga, smarc_8m-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8m-imx_v2019.04_4.19.35_1.1.0, smarc_8m_00d0-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8mm-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8mm-imx_v2019.04_4.19.35_1.1.0, smarc_8mm-imx_v2020.04_5.4.24_2.1.0, smarc_8mp_lf_v2020.04, smarc_8mq-imx_v2020.04_5.4.24_2.1.0, smarc_8mq_lf_v2020.04, ti-u-boot-2015.07, u-boot-2013.01.y, v2013.10, v2013.10-smarct33, v2013.10-smartmen, v2014.01, v2014.04, v2014.04-smarct33, v2014.04-smarct33-emmc, v2014.04-smartmen, v2014.07, v2014.07-smarct33, v2014.07-smartmen, v2015.07-smarct33, v2015.07-smarct33-emmc, v2015.07-smarct4x, v2016.05-dlt, v2016.05-smarct3x, v2016.05-smarct3x-emmc, v2016.05-smarct4x, v2017.01-smarct3x, v2017.01-smarct3x-emmc, v2017.01-smarct4x

MPC85xx: Load and enable QE microcode patch in IRAM

For the silicon which doesn't have ROM support in QE, it always needs to load
a pre-built ucode binary to IRAM so that QE can work.

Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>
Signed-off-by: Hillel Avni <Hillel.Avni@freescale.com>

Showing 2 changed files with 10 additions and 0 deletions Side-by-side Diff

... ... @@ -161,6 +161,15 @@
161 161 /* Init the QE IMMR base */
162 162 qe_immr = (qe_map_t *)qe_base;
163 163  
  164 +#ifdef CONFIG_SYS_QE_FW_ADDR
  165 + /* Upload microcode to IRAM for those SOCs which do not have ROM in QE.
  166 + */
  167 + qe_upload_firmware((const struct qe_firmware *) CONFIG_SYS_QE_FW_ADDR);
  168 +
  169 + /* enable the microcode in IRAM */
  170 + out_be32(&qe_immr->iram.iready,QE_IRAM_READY);
  171 +#endif
  172 +
164 173 gd->mp_alloc_base = QE_DATAONLY_BASE;
165 174 gd->mp_alloc_top = gd->mp_alloc_base + QE_DATAONLY_SIZE;
166 175  
... ... @@ -230,6 +230,7 @@
230 230 /* I-RAM */
231 231 #define QE_IRAM_IADD_AIE 0x80000000 /* Auto Increment Enable */
232 232 #define QE_IRAM_IADD_BADDR 0x00080000 /* Base Address */
  233 +#define QE_IRAM_READY 0x80000000
233 234  
234 235 /* Structure that defines QE firmware binary files.
235 236 *