Imx6QP :Why galcore spend a lot of time loading resources?

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

Imx6QP :Why galcore spend a lot of time loading resources?

Jump to solution
2,228 Views
zhuchaozhu
Contributor II

Hi , my friends

      I encountered a problem for optimizing boot time, I would like to cut useless modules to save startup time, but I found the Galcore module spend nearly 700ms loading resources ,and I felt incredible, so I wanted someone to tell me how to save this time.

      At the same time, I also want someone to give me some advice, how to cut uboot ,kernel and ramdisk start time, my boot log as follows:

[ 0.001] U-Boot 2015.04-gf33537e (Mar 27 2017 - 20:19:04)

[ 0.007] Board: MX6Q-PARIS3 revA
[ 0.010] I2C: ready
[ 0.012] DRAM: 2 GiB
MMC: FSL_SDHC: 0
[ 0.171] No MMC card found
[ 0.174] In: serial
[ 0.176] Out: serial
[ 0.178] Err: serial
[ 0.189] Normal Boot
[ 0.191] Hit any key to stop autoboot: 0
Loading Kernel Image ... OK
[ 0.375]
[ 0.376] Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 4.1.15 (zhuchao@zhuchao-HP) (gcc version 5.2.0 (GCC) ) #2 SMP PREEMPT Tue Mar 28 10:30:24 CST 2017
[ 0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine model: Freescale i.MX6 Quad/Solo SABRE Automotive Board
[ 0.000000] iAuto Linux Crash Dump: reserved 2 MiB at 7fd00000
[ 0.000000] [MPU_MEMALLOC]:(func:mpu_reserve_memory)ipu phys=0x76500000
[ 0.000000] [MPU_MEMALLOC]:(func:mpu_reserve_memory)vpu phys=0x70100000
[ 0.000000] Reserved memory: created CMA memory pool at 0x48000000, size 320 MiB
[ 0.000000] Reserved memory: initialized node linux,cma, compatible id shared-dma-pool
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] Falcon BIOS is not found.
[ 0.000000] PERCPU: Embedded 11 pages/cpu @ccec6000 s16192 r8192 d20672 u45056
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 456236
[ 0.000000] Kernel command line: vmalloc=800M bootmode=0 submode=0 console=ttymxc0,115200 androidboot.console=ttymxc0 init=/init arm_freq=800 lpj=7905280
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Dentry cache hash table entries: 262144 (order: 8, 1048576 bytes)
[ 0.000000] Inode-cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Memory: 1477784K/1836032K available (5143K kernel code, 192K rwdata, 1704K rodata, 416K init, 321K bss, 30568K reserved, 327680K cma-reserved, 574464K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xcd800000 - 0xff000000 ( 792 MB)
[ 0.000000] lowmem : 0x80000000 - 0xcd000000 (1232 MB)
[ 0.000000] pkmap : 0x7fe00000 - 0x80000000 ( 2 MB)
[ 0.000000] modules : 0x7f000000 - 0x7fe00000 ( 14 MB)
[ 0.000000] .text : 0x80008000 - 0x806b7f30 (6848 kB)
[ 0.000000] .init : 0x806b8000 - 0x80720000 ( 416 kB)
[ 0.000000] .data : 0x80720000 - 0x80750140 ( 193 kB)
[ 0.000000] .bss : 0x80753000 - 0x807a3774 ( 322 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] Additional per-CPU info printed with stalls.
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] L2C-310 erratum 769419 enabled
[ 0.000000] L2C-310 enabling early BRESP for Cortex-A9
[ 0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[ 0.000000] L2C-310 ID prefetch enabled, offset 16 lines
[ 0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[ 0.000000] L2C-310 cache controller enabled, 16 ways, 1024 kB
[ 0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76070001
[ 0.000000] mxc_clocksource_init 3000000
[ 0.000000] Switching to timer-based delay loop, resolution 333ns
[ 0.000007] sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 715827882841ns
[ 0.000026] clocksource mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 637086815595 ns
[ 0.000946] Console: colour dummy device 80x30
[ 0.000966] Calibrating delay loop (skipped) preset value.. 1581.05 BogoMIPS (lpj=7905280)
[ 0.000982] pid_max: default: 32768 minimum: 301
[ 0.001093] Mount-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.001107] Mountpoint-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.001787] Initializing cgroup subsys blkio
[ 0.001806] Initializing cgroup subsys memory
[ 0.001841] Initializing cgroup subsys devices
[ 0.001857] Initializing cgroup subsys freezer
[ 0.001872] Initializing cgroup subsys perf_event
[ 0.001899] CPU: Testing write buffer coherency: ok
[ 0.002201] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.002298] Setting up static identity map for 0x10008280 - 0x100082d8
[ 0.080275] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.100243] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[ 0.120258] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[ 0.120335] Brought up 4 CPUs
[ 0.120361] SMP: Total of 4 processors activated (6324.22 BogoMIPS).
[ 0.120370] CPU: All CPU(s) started in SVC mode.
[ 0.129993] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[ 0.130386] clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.148837] pinctrl core: initialized pinctrl subsystem
[ 0.149798] NET: Registered protocol family 16
[ 0.158139] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.159052] mxc_arch_reset_init: failed to get wdog clock
[ 0.159063] CPU identified as i.MX6QP, silicon rev 1.0
[ 0.200301] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[ 0.200316] hw-breakpoint: maximum watchpoint size is 4 bytes.
[ 0.201081] imx6q-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver
[ 0.202216] imx-gpc 20dc000.gpc: no fsl,ldo-bypass found!
[ 0.232395] mxs-dma 110000.dma-apbh: initialized
[ 0.250312] SCSI subsystem initialized
[ 0.250600] usbcore: registered new interface driver usbfs
[ 0.250666] usbcore: registered new interface driver hub
[ 0.250777] usbcore: registered new device driver usb
[ 0.250949] 2000000.aips-bus:usbphy_nop1 supply vcc not found, using dummy regulator
[ 0.251064] 2000000.aips-bus:usbphy_nop2 supply vcc not found, using dummy regulator
[ 0.251590] Linux video capture interface: v2.00
[ 0.269755] imx-ipuv3 2400000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
[ 0.272177] *** ipu_iauto_alloc_init: ipu_iauto_alloc_zone phys=0x76500000, virt=0xCE000000
[ 0.289751] imx-ipuv3 2800000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
[ 0.291298] Galcore version 5.0.11.41671
[ 0.912672] Switched to clocksource mxc_timer1
[ 0.915894] NET: Registered protocol family 2
[ 0.916494] TCP established hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.916646] TCP bind hash table entries: 16384 (order: 5, 131072 bytes)
[ 0.916907] TCP: Hash tables configured (established 16384 bind 16384)
[ 0.917049] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[ 0.917112] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[ 0.917352] NET: Registered protocol family 1
[ 0.917631] Unpacking initramfs...
[ 1.146761] Freeing initrd memory: 3204K (80e00000 - 81121000)
[ 1.147145] CPU PMU: Failed to parse /soc/pmu/interrupt-affinity[0]
[ 1.147211] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[ 1.148742] Bus freq driver module loaded
[ 1.149873] futex hash table entries: 1024 (order: 4, 65536 bytes)
[ 1.159271] bounce: pool size: 64 pages
[ 1.159289] io scheduler noop registered
[ 1.159304] io scheduler deadline registered
[ 1.159461] io scheduler cfq registered (default)
[ 1.159490] LinuxCrashDump[Debug]: Init the linux crash dump driver
[ 1.159762] LinuxCrashDump[Debug]: Probe the linux crash dump driver
[ 1.159855] LinuxCrashDumpDebugModule: linux crash dump physical address=0x7fd00000,size=0x200000,virtual address=0xd7c00000
[ 1.160275] imx-weim 21b8000.weim: Driver registered.
[ 1.160724] ldb 2000000.aips-bus:ldb@020e0008: split mode
[ 1.160960] ldb 2000000.aips-bus:ldb@020e0008: split mode or dual mode, ignoring second output
[ 1.161647] mxc_sdc_fb fb@0: registered mxc display driver ldb
[ 1.202797] imx-ipuv3 2800000.ipu: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)
[ 1.280154] Console: switching to colour frame buffer device 240x45
[ 1.371896] imx-sdma 20ec000.sdma: no iram assigned, using external mem
[ 1.374693] imx-sdma 20ec000.sdma: loaded firmware 3.3
[ 1.377383] imx-sdma 20ec000.sdma: initialized
[ 1.378198] 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 22, base_baud = 5000000) is a IMX
[ 2.112913] console [ttymxc0] enabled
[ 2.118539] PDRD call pdrd_proc_init() --start
[ 2.123295] PDRD create proc file: pdrd_switch
[ 2.128010] PDRD call pdrd_proc_init() --end
[ 2.132948] [drm] Initialized drm 1.1.0 20060810
[ 2.137926] [drm] Initialized vivante 1.0.0 20120216 on minor 0
[ 2.144994] spi_imx 2018000.ecspi: probed
[ 2.149427] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 2.156007] ehci-mxc: Freescale On-Chip EHCI Host driver
[ 2.161699] usbcore: registered new interface driver usb-storage
[ 2.167808] usbcore: registered new interface driver usb_ehset_test
[ 2.175102] 2184800.usbmisc supply vbus-wakeup not found, using dummy regulator
[ 2.191313] ci_hdrc ci_hdrc.1: EHCI Host Controller
[ 2.196259] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
[ 2.222713] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
[ 2.228827] hub 1-0:1.0: USB hub found
[ 2.232627] hub 1-0:1.0: 1 port detected
[ 2.238097] snvs_rtc 20cc000.snvs:snvs-rtc-lp: rtc core: registered 20cc000.snvs:snvs-r as rtc0
[ 2.246951] i2c /dev entries driver
[ 2.251976] sdhci: Secure Digital Host Controller Interface driver
[ 2.258194] sdhci: Copyright(c) Pierre Ossman
[ 2.262569] sdhci-pltfm: SDHCI platform and OF driver helper
[ 2.268934] /soc/aips-bus@02100000/usdhc@02198000: voltage-ranges unspecified
[ 2.276149] sdhci-esdhc-imx 2198000.usdhc: assigned as wifi host
[ 2.284115] sdhci-esdhc-imx 2198000.usdhc: No vmmc regulator found
[ 2.290312] sdhci-esdhc-imx 2198000.usdhc: No vqmmc regulator found
[ 2.343739] mmc2: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA
[ 2.361717] /soc/aips-bus@02100000/usdhc@0219c000: voltage-ranges unspecified
[ 2.370958] sdhci-esdhc-imx 219c000.usdhc: Got CD GPIO
[ 2.377194] sdhci-esdhc-imx 219c000.usdhc: No vmmc regulator found
[ 2.383454] sdhci-esdhc-imx 219c000.usdhc: No vqmmc regulator found
[ 2.398706] mmc2: queuing unknown CIS tuple 0x80 (2 bytes)
[ 2.407292] mmc2: queuing unknown CIS tuple 0x80 (7 bytes)
[ 2.417289] mmc2: queuing unknown CIS tuple 0x80 (6 bytes)
[ 2.432835] mmc0: SDHCI controller on 219c000.usdhc [219c000.usdhc] using ADMA
[ 2.441188] mxc_vpu 2040000.vpu_fsl: VPU initialized
[ 2.447566] *** vpu_iauto_alloc_init: vpu_iauto_alloc_zone phys=0x70100000, virt=0xD8000000
[ 2.456448] mxc_vdoa 21e4000.vdoa: i.MX Video Data Order Adapter(VDOA) driver probed
[ 2.464697] ashmem: initialized
[ 2.468539] oprofile: using arm/armv7-ca9
[ 2.473431] NET: Registered protocol family 10
[ 2.478884] NET: Registered protocol family 17
[ 2.486653] snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01 00:00:00 UTC (0)
[ 2.506491] usb_otg_vbus: disabling
[ 2.511152] Freeing unused kernel memory: 416K (806b8000 - 80720000)
[ 2.520399] (II) init: command 'loglevel' r=0
[ 2.524845] init (1): /proc/1/oom_adj is deprecated, please use /proc/1/oom_score_adj instead.
[ 2.533503] (II) init: command 'write' r=0
[ 2.537632] (!!) init: starting 'ueventd'
[ 2.541930] (II) init: command 'start' r=0
[ 2.546422] (II) init: command 'async' r=0
[ 2.546650] (!!) init: + process(async system-mount) started
[ 2.546719] (II) init: + process(async system-mount) command 'setprio' r=0
[ 2.554780] mmc2: queuing unknown CIS tuple 0x91 (3 bytes)
[ 2.554823] mmc2: new high speed SDIO card at address 0001
[ 2.574497] (!!) init: processing action 0xac118 (early-init)
[ 2.580315] (EE) init: command 'insmod /lib/modules/softdog.ko #insmod /lib/modules/fuse.ko', r=-1
[ 2.589321] (!!) init: processing action 0xac788 (wait_for_coldboot_done)
[ 2.596140] (II) init: wait for /dev/.coldboot_done
[ 2.601041] (II) init: command 'wait_for_coldboot_done' r=0
[ 2.606679] (!!) init: processing action 0xac7d0 (property_init)
[ 2.612710] (II) init: property init
[ 2.616579] (II) init: command 'property_init' r=0
[ 2.621392] (!!) init: processing action 0xac818 (console_init)
[ 2.627509] (II) init: command 'console_init' r=0
[ 2.632236] (!!) init: processing action 0xac860 (set_init_properties)
[ 2.638062] mmc0: MAN_BKOPS_EN bit is not set
[ 2.643506] (II) init: command 'set_init_properties' r=0
[ 2.648836] (!!) init: processing action 0xaadc8 (init)
[ 2.654101] (II) init: command 'sysclktz' r=0
[ 2.656423] mmc0: new DDR MMC card at address 0001
[ 2.662783] mmcblk0: mmc0:0001 MMC08G 7.25 GiB
[ 2.662903] mmcblk0boot0: mmc0:0001 MMC08G partition 1 8.00 MiB
[ 2.663003] mmcblk0boot1: mmc0:0001 MMC08G partition 2 8.00 MiB
[ 2.663107] mmcblk0rpmb: mmc0:0001 MMC08G partition 3 128 KiB
[ 2.663958] mmcblk0: p1 p2 p3
[ 2.674374] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: journal_checksum
[ 2.674407] (II) init: + process(async system-mount) command 'mount' r=0
[ 2.674629] (!!) init: + process(async system-mount) exited
[ 2.710123] (II) init: command 'export' r=0
[ 2.714338] (II) init: command 'export' r=0
[ 2.718528] (II) init: command 'export' r=0
[ 2.722735] (II) init: command 'export' r=0
[ 2.726934] (II) init: command 'export' r=0
[ 2.731129] (II) init: command 'export' r=0
[ 2.735340] (II) init: command 'export' r=0
[ 2.739559] (II) init: command 'symlink' r=0
[ 2.743875] (II) init: command 'symlink' r=0
[ 2.748187] (II) init: command 'mkdir' r=0
[ 2.752308] (II) init: command 'mkdir' r=0
[ 2.756453] (II) init: command 'mkdir' r=0
[ 2.760646] (II) init: command 'mount' r=0
[ 2.764781] (!!) init: processing action 0xac170 (init)
[ 2.770020] (II) init: command 'export' r=0
[ 2.774235] (II) init: command 'export' r=0
[ 2.778429] (!!) init: processing action 0xac1f0 (fs)
[ 2.783520] (!!) init: command(retry 3) 'check' begin
[ 2.788600] (!!) init: command(retry 3) 'check' r=0
[ 2.793543] (II) init: command 'mkdir' r=0
[ 2.797679] (II) init: command 'mkdir' r=0
[ 2.801802] (II) init: command 'mkdir' r=0
[ 2.805965] (II) init: command 'symlink' r=0
[ 2.810255] (II) init: command 'symlink' r=0
[ 2.814572] (II) init: command 'symlink' r=0
[ 2.818868] (II) init: command 'symlink' r=0
[ 2.823183] (II) init: command 'symlink' r=0
[ 2.827481] (II) init: command 'symlink' r=0
[ 2.831791] (II) init: command 'symlink' r=0
[ 2.836109] (II) init: command 'symlink' r=0
[ 2.840399] (II) init: command 'symlink' r=0
[ 2.844700] (!!) init: processing action 0xac8a8 (property_service_init)
[ 2.860433] (II) init: Created socket '/dev/socket/property_service' with mode '666', user '0', group '0'
[ 2.870062] (II) init: command 'property_service_init' r=0
[ 2.875581] (!!) init: processing action 0xac8f0 (signal_init)
[ 2.881477] (!!) init: waitpid returned pid 77, status = 00000000
[ 2.887607] (II) init: command 'signal_init' r=0
[ 2.892239] (!!) init: processing action 0xab038 (post-fs)
[ 2.897778] (II) init: command 'mount' r=0
[ 2.901890] (II) init: command 'class_start' r=0
[ 2.906537] (!!) init: processing action 0xac440 (post-fs)
[ 2.912312] (II) init: command 'async' r=0
[ 2.912550] (!!) init: + process(async data-mount) started
[ 2.912610] (II) init: + process(async data-mount) command 'setprio' r=0
[ 2.957792] EXT4-fs (mmcblk0p3): recovery complete
[ 2.975586] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: nodelalloc,journal_checksum
[ 2.981383] EXT4-fs (mmcblk0p2): recovery complete
[ 2.983208] EXT4-fs (mmcblk0IQp9e }�[ 2.983245] (II) init: command 'mount' r=0
[ 2.983260] (!!) init: processing action 0xab178 (boot)
[ 2.983292] (EE) init: command 'mkdir /data/system 0775 system system', r=-30
[ 2.983741] (II) init: command 'mkdir' r=0
[ 2.983772] (!!) init: starting 'hotplug_event'
[ 2.984106] (!!) init: starting 'mount'
[ 2.984558] (!!) init: starting 'inswifi'
[ 2.985887] (EE) init: cannot execve('/sbin/mount.sh'): Exec format error
[ 2.991599] (!!) init: starting 'dashboard'
[ 2.991963] (II) init: command 'class_start' r=0
[ 2.992056] (!!) init: waitpid returned pid 91, status = 00007f00
[ 2.992074] (!!) init: process 'mount', pid 91 exited
[ 2.992212] (!!) init: processing action 0xac558 (boot)
[ 2.992278] (II) init: command 'symlink' r=0
[ 2.992311] (II) init: command 'symlink' r=0
[ 2.992342] (II) init: command 'symlink' r=0
[ 2.992358] (!!) init: processing action 0xac938 (queue_propety_triggers)
[ 2.992373] (II) init: command 'queue_propety_triggers' r=0
[ 2.992388] (!!) init: processing action 0xab2e8 (property:ro.debuggable=1)
[ 2.992412] (!!) init: starting 'console'
[ 2.992814] (II) init: command 'start' r=0
[ 3.099486] (II) init: + process(async data-mount) command 'mount' r=0
[ 3.106409] (!!) init: + process(async data-mount) exited
[ 3.112370] (!!) init: waitpid returned pid 85, status = 00000000
uid=0 gid=1007@nutshell:/ # [ 3.211288] dhd_module_init in
[ 3.214775] Power-up adapter 'DHD generic adapter'
[ 3.249490] DHD: dongle ram size is set to 786432(orig 786432) at 0x180000
[ 3.256794] CFG80211-ERROR) wl_setup_wiphy : Registering Vendor80211)
[ 3.264774] CFG80211-ERROR) wl_event_handler :
[ 3.269651] dhd_deferred_work_init: work queue initialized
[ 3.275524] tsk Enter, tsk = 0xb47a143c
[ 3.603066] dhd_bus_init: enable 0x06, ready 0x06 (waited 0us)
[ 3.604772] random: nonblocking pool is initialized
[ 3.626203] Firmware up: op_mode=0x0005, MAC=90:b6:86:f1:ca:38
[ 3.655935] Firmware version = wl0: Feb 17 2016 12:06:31 version 6.37.39.36 (r614533)
[ 3.664897] dhd_wlfc_init(): successfully enabled bdcv2 tlv signaling, 79
[ 3.673206] dhd_wlfc_init(): wlfc_mode=0x0, ret=-23
[ 3.679650]
[ 3.679650] Dongle Host Driver, version 1.141.91 (r)
[ 3.679650] Compiled from
[ 3.690875] Register interface [wlan0] MAC: 90:b6:86:f1:ca:38
[ 3.690875]
[ 3.700562] (!!) init: waitpid returned pid 92, status = 00000000
[ 3.706760] (!!) init: process 'inswifi', pid 92 exited

Best Regards

0 Kudos
1 Solution
1,252 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hi

Two kinds of allocators are implemented in i.MX 6 GPU kernel driver, see drivers/mxc/gpu-viv/
In Kernel Modules "galcore", the video memory allocator implementation is very complicated. The memory is from the reserved pool, system contiguous pool (supports CMA), or system virtual pool (enables GPU MMU). The memory is reserved from CMA implemented in the GPU kernel driver, the size can be changed through U-Boot args with “galcore.contiguoussize =xxx”
The memory allocation and lock very fast, but cannot support cacheable attribute thats the reason I guess it takes more time.

Hope this helps

View solution in original post

0 Kudos
2 Replies
1,253 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hi

Two kinds of allocators are implemented in i.MX 6 GPU kernel driver, see drivers/mxc/gpu-viv/
In Kernel Modules "galcore", the video memory allocator implementation is very complicated. The memory is from the reserved pool, system contiguous pool (supports CMA), or system virtual pool (enables GPU MMU). The memory is reserved from CMA implemented in the GPU kernel driver, the size can be changed through U-Boot args with “galcore.contiguoussize =xxx”
The memory allocation and lock very fast, but cannot support cacheable attribute thats the reason I guess it takes more time.

Hope this helps

0 Kudos
1,252 Views
zhuchaozhu
Contributor II

Thank you

I think it makes sense that I will try to do something

0 Kudos