Android P9.0.0_2.2.0-ga booting issue with i.MX6 Solo

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Android P9.0.0_2.2.0-ga booting issue with i.MX6 Solo

1,093 Views
mamorukanou
Contributor IV

Hi community,

Has anyone ever booted in 6Solo mode with i.MX6DL SABER-SD?

I am trying to boot android p9 as i.MX6Solo mode using i.MX6DL SABRE-SD board.

But  after booting u-boot, kernel don't boot-up at all.

I think it's okay to fix only u-boot. Is there anything else to set?

Since u-boot mtest command is not a problem, I don't think it's a DDR calibration problem.

I proceeded with the following steps.

1) Full build of android p9 BSP and confirmed that it boot normally with i.MX6DL.

2) The uboot_imx DCD table of i.mx6dl has been modified as follows.
The changed file is :

${MY_ANDROID}/android_build/vendor/nxp-opensource/uboot-imx/board/freescale/mx6sabresd/mx6dlsabresd.cfg

line# 122, 123

[Before]
DATA 4  0x021b0040 0x00000027
DATA 4  0x021b0000 0x831A0000

             

[After]
DATA 4  0x021b0040 0x00000017
DATA 4  0x021b0000 0x83190000

 

In short, change the following two registers,

- MMDC Core Address Space Partition Register (MMDC1_MDASP)

  CS0_END field =0x17

- MMDC Core Control Register (MMDC1_MDCTL)

  DSIZ field = 1 (32-bit data bus)

Boot log :

U-Boot 2018.03-dirty (Apr 04 2020 - 21:02:21 +0900)

CPU:   Freescale i.MX6DL rev1.3 at 792MHz
CPU:   Automotive temperature grade (-40C to 125C) at 46C
Reset cause: POR
Model: Freescale i.MX6 DualLite SABRE Smart Device Board
Board: MX6-SabreSD
DRAM:  512 MiB
PMIC: PFUZE100! DEV_ID=0x10 REV_ID=0x10
MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x768)
In:    serial
Out:   serial
Err:   serial
flash target is MMC:2
Net:
Error: ethernet@02188000 address not set.
No ethernet found.
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot:  0
=> md 21b0040 1
021b0040: 00000017                               ....
=> md 21b0000 1
021b0000: 83190000                               ....
=> boota mmc2
RNG already instantiated 0x40000003
RNG already instantiated 0x40000003
 verify OK, boot 'boot'
kernel   @ 14008000 (10181904)
ramdisk  @ 15000000 (1835263)
fdt      @ 14f00000 (55391)
## Booting Android Image at 0x14007800 ...
Kernel load addr 0x14008000 size 9944 KiB
## Flattened Device Tree blob at 14f00000
   Booting using the fdt blob at 0x14f00000
   XIP Kernel Image ... OK
   Using Device Tree in place at 14f00000, end 14f1085e
switch to ldo_bypass mode!

Starting kernel ...     <== Stay here !!

Best Regards,

Kanou

Labels (3)
0 Kudos
2 Replies

915 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello Mamoru,

From log: "Machine model: Freescale i.MX6 Quad Plus SABRE Smart Device Board"

while i.MX6S is used in the case. One can recheck build configuration using Configuration examples of building i.MX devices in the Android User's Guide.

  Specifically modify the ./device/fsl/sabresd_6dq/BoardConfig.mk file

Had you run ddr test for custom board and updated image with new calibration coefficients

i.MX 6/7 DDR Stress Test Tool  

Regards

0 Kudos

915 Views
mamorukanou
Contributor IV

Hello Bio,

Thank you for your reply.

After that, the DDR MMDC parameters have been reviewed again.

In addition, DDR calibration was performed and parameters were fine-tuned.

How to Create i.MX6 32bit DDR3 Script Based on 64bit DDR3 Script
- Write Leveling Delay Control Register

- Read DQS Gating Control Register

- Read delay-lines Configuration Register

 - Write delay-lines Configuration Register


Looking at the normal mode (1GB DDR) log, it looks like cma is allocated 320MB from 0x1c000000.--- default 1GB SABRE-SD 6DL console log ----

   :

Booting Linux on physical CPU 0x0

Linux version 4.14.98 (tte@X201) (gcc version 4.9.x 20150123 (prerelease) (GCC)) #1 SMP PREEMPT Sat Mar 21 00:51:35 JST 2020

CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d

CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

OF: fdt: Machine model: Freescale i.MX6 DualLite SABRE Smart Device Board

Memory policy: Data cache writealloc

cma: Reserved 320 MiB at 0x1c000000  <-- !!

random: get_random_bytes called from start_kernel+0xac/0x450 with crng_init=0

percpu: Embedded 18 pages/cpu @cba8b000 s41292 r8192 d24244 u73728

   :

----- log end


However, since there is currently only 512MB of main memory, I think that the map needs to be changed, but I do not know where to change it.

I am looking for device/fsl/imx6dq/sabresd_6dq/BoardConfig.mk file, but couldn't find the location.Where and How do I map a 512MB memory allocation?Best Regards,Kanou

0 Kudos