Hi Teams,
We tried to extend i.MX 8M Quad from 3 GB RAM to 4 GB RAM.
(Windows 10 22H2 with WSL2 Ubuntu 20.04 LTS, BSP Package is from NXP: W21H2-1-5-0-imx-windows-bsp.zip)
We have created *.ds by MX8M_LPDDR4_RPA_v33.xlsx. We also ran NXP i.MX/Mscale DDR Tool 3.31 with specific DDR Script and calibration successful.
After that, we have updated: uboot-imx/include/configs/imx8mq_evk.h as follows.
#define CONFIG_SYS_SDRAM_BASE 0x40000000
#define PHYS_SDRAM 0x40000000
#define PHYS_SDRAM_SIZE 0xC0000000 /* 3GB DDR */
/* We append extend definition as follows */
#define PHYS_SDRAM_2 0x100000000
#define PHYS_SDRAM_2_SIZE 0x40000000 /* 1 GB */
Then, we have replaced: uboot-imx/board/freescale/imx8mq_evk/lpddr4_timing.c by the code that was generated by NXP i.MX/Mscale DDR Tool 3.31.
After we have deployed our new firmware to the target board, it will keep restarting.
But we can see the RAM was extended to 4 GB as follows.
U-Boot SPL 2022.04-00001-gcbab410fa1-dirty (Feb 29 2024 - 14:54:06 +0800)
Can't find PMIC:PFUZE100
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3200MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
SEC0: RNG instantiated
Normal Boot
Trying to boot from MMC2
U-Boot 2022.04-00001-gcbab410fa1-dirty (Feb 29 2024 - 14:54:06 +0800)
CPU: i.MX8MQ rev2.1 1300 MHz (running at 800 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 30C
Reset cause: POR
Model: NXP i.MX8MQ EVK
DRAM: 4 GiB
setup_typec: tcpc init failed, err=-5
Core: 78 devices, 26 uclasses, devicetree: separate
MMC: FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment
[*]-Video Link 0 (1280 x 720)
[0] display-controller@32e00000, video
[1] hdmi@32c00000, display
In: serial
Out: serial
Err: serial
SEC0: RNG instantiated
BuildInfo:
- ATF 28ad156
switch to partitions #0, OK
mmc1 is current device
flash target is MMC:1
Net: Could not get PHY for FEC0: addr 0
Could not get PHY for FEC0: addr 0
No ethernet found.
Fastboot: Normal
Normal Boot
starting USB...
Bus usb@38100000: Failed to initialize board for imx8m USB
probe failed, error -5
Bus usb@38200000: Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus usb@38200000 for devices... unable to get device descriptor (error=-1)
6 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
## Loading kernel from FIT Image at 40480000 ...
Using 'conf-1' configuration
Verifying Hash Integrity ... OK
Trying 'uefi' kernel subimage
Description: UEFI
Created: 2024-02-29 6:56:03 UTC
Type: Kernel Image
Compression: gzip compressed
Data Start: 0x404800a4
Data Size: 841710 Bytes = 822 KiB
Architecture: AArch64
OS: Linux
Load Address: 0x50004000
Entry Point: 0x50004000
Hash algo: sha256
Hash value: bf84fec8d0696216fcc80cd8c2206ad2d5dbac240fe26a3715e78f3fd1f5ed06
Verifying Hash Integrity ... sha256+ OK
Uncompressing Kernel Image
FDT and ATAGS support not compiled in
resetting ...
So, can you give us some advice about this question? Are we missing any steps? Or maybe there's something we're doing wrong.
Thanks for your help!
Solved! Go to Solution.
Hi, @Alex_Chang_633
according this message in boot log:
FDT and ATAGS support not compiled in
it looks like than built uboot without
- Are you able to build the firmware from the BSP for i.MX 8M Quad EVK and boot with it to the Windows 10 IoT?
Best Regards
I'm glad to help you out, You are welcome.
Hi, @Alex_Chang_633
according this message in boot log:
FDT and ATAGS support not compiled in
it looks like than built uboot without
- Are you able to build the firmware from the BSP for i.MX 8M Quad EVK and boot with it to the Windows 10 IoT?
Best Regards
Hi @pengyong_zhang ,
Thanks for your help!
After I have removed and created firmware environment again, I have checked imx8mq_evk.h content as follows.
#define CONFIG_SYS_SDRAM_BASE 0x40000000
#define PHYS_SDRAM 0x40000000
//#define PHYS_SDRAM_SIZE 0xC0000000 /* 3GB DDR */
#define PHYS_SDRAM_SIZE 0x100000000 /* 4 GB DDR */
#define CONFIG_MXC_UART_BASE UART1_BASE_ADDR
#define CONFIG_SUPPORT_PASSING_ATAGS 1
#define CONFIG_SETUP_MEMORY_TAGS 1
#define CONFIG_CMDLINE_TAG 1
#define CONFIG_INITRD_TAG 1
When content contains #define CONFIG_SUPPORT_PASSING_ATAGS 1, I can boot up my target device and I can see log with DRAM: 4 GiB.
Again, thanks for you and NXP Teams help.
Hi @pengyong_zhang ,
After I have created environment again (run ./Init.sh without any error)
The situation is the same as follows. How do I make sure those patches have applied correctly?
Thanks for you and NXP Team support.
Thanks for your quick reply!
I will try to rebuild firmware and test again and share my result here.
Thanks for you and NXP Teams help.
Hi, @Alex_Chang_633
Please change the value of PHYS_SDRAM_SIZE = 0x1 0000 0000, And re-try your test.
B.R
Hi @pengyong_zhang ,
Thanks for your quick reply.
We have changed imx8mq_evk.h as follows.
#define CONFIG_SYS_SDRAM_BASE 0x40000000
#define PHYS_SDRAM 0x40000000
#define PHYS_SDRAM_SIZE 0x100000000 /* 4 GB DDR */
But after we have deployed new firmware to our microSD card and boot from it, the target board has the same problem to keep restarting as follows.
U-Boot SPL 2022.04-00001-gcbab410fa1-dirty (Feb 29 2024 - 17:10:55 +0800)
Can't find PMIC:PFUZE100
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3200MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
SEC0: RNG instantiated
Normal Boot
Trying to boot from MMC2
U-Boot 2022.04-00001-gcbab410fa1-dirty (Feb 29 2024 - 17:10:55 +0800)
CPU: i.MX8MQ rev2.1 1300 MHz (running at 800 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 30C
Reset cause: POR
Model: NXP i.MX8MQ EVK
DRAM: 4 GiB
setup_typec: tcpc init failed, err=-5
Core: 78 devices, 26 uclasses, devicetree: separate
MMC: FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment
[*]-Video Link 0 (1280 x 720)
[0] display-controller@32e00000, video
[1] hdmi@32c00000, display
In: serial
Out: serial
Err: serial
SEC0: RNG instantiated
BuildInfo:
- ATF 28ad156
switch to partitions #0, OK
mmc1 is current device
flash target is MMC:1
Net: Could not get PHY for FEC0: addr 0
Could not get PHY for FEC0: addr 0
No ethernet found.
Fastboot: Normal
Normal Boot
starting USB...
Bus usb@38100000: Failed to initialize board for imx8m USB
probe failed, error -5
Bus usb@38200000: Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus usb@38200000 for devices... 6 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
## Loading kernel from FIT Image at 40480000 ...
Using 'conf-1' configuration
Verifying Hash Integrity ... OK
Trying 'uefi' kernel subimage
Description: UEFI
Created: 2024-02-29 9:12:49 UTC
Type: Kernel Image
Compression: gzip compressed
Data Start: 0x404800a4
Data Size: 841710 Bytes = 822 KiB
Architecture: AArch64
OS: Linux
Load Address: 0x50004000
Entry Point: 0x50004000
Hash algo: sha256
Hash value: 5451f418158fc61aa3b4d94ef76195282652b15e2a4d42bbc0e6ae982c013069
Verifying Hash Integrity ... sha256+ OK
Uncompressing Kernel Image
FDT and ATAGS support not compiled in
resetting ...
Thanks for you and NXP Teams support.