Hi All,
I'm getting a number of 'duplicate OPPs detected' warning messages during Linux boot. I am working on a custom IMX6UL board and started seeing this issue after upgrading from mainline kernel 4.14 to 4.19 from https://github.com/Freescale/linux-fslc. I tried the new kernel on another custom board based on IMX6 Solo and don't see the issue on it. I did a bit of digging and it seems like the function imx6q_cpufreq_probe in imx6q-cpufreq.c is being called multiple times on the IMX6UL based board but I can't figure out why this is.
Below is the boot log - the sections I'm referring to are in bold:
Starting kernel ...
Booting Linux on physical CPU 0x0
Linux version 4.19.107 (gcc version 9.2.0 (Buildroot 2019.11)) #13 PREEMPT Wed Apr 15 09:56:37 BST 2020
CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d
CPU: div instructions available: patching division code
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt: Machine model:
bootconsole [earlycon0] enabled
Memory policy: Data cache writeback
cma: Failed to reserve 320 MiB
CPU: All CPU(s) started in SVC mode.
random: get_random_bytes called from start_kernel+0x7c/0x3e8 with crng_init=0
Built 1 zonelists, mobility grouping on. Total pages: 65024
Kernel command line: noinitrd console=ttymxc0,115200 earlyprintk boot_method=tftp boot_ve
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 247716K/262144K available (4096K kernel code, 112K rwdata, 796K rodata, 1024K init, 120K bss, 14428K reserved, 0K cma-reserved)
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0xd0800000 - 0xff800000 ( 752 MB)
lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.text : 0x(ptrval) - 0x(ptrval) (5088 kB)
.init : 0x(ptrval) - 0x(ptrval) (1024 kB)
.data : 0x(ptrval) - 0x(ptrval) ( 113 kB)
.bss : 0x(ptrval) - 0x(ptrval) ( 121 kB)
rcu: Preemptible hierarchical RCU implementation.
Tasks RCU enabled.
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
Switching to timer-based delay loop, resolution 41ns
sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
clocksource: mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=24000)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0x80100000 - 0x80100060
rcu: Hierarchical SRCU implementation.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
futex hash table entries: 256 (order: -1, 3072 bytes)
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
vdd3p0: supplied by regulator-dummy
cpu: supplied by regulator-dummy
vddsoc: supplied by regulator-dummy
imx6ul-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver
mxs-dma 1804000.dma-apbh: initialized
imx-i2c 21a0000.i2c: can't get pinctrl, bus recovery not supported
i2c i2c-0: IMX I2C adapter registered
i2c i2c-0: can't use DMA, using PIO instead.
clocksource: Switched to clocksource mxc_timer1
random: fast init done
NET: Registered protocol family 2
tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
Unpacking initramfs...
Freeing initrd memory: 5644K
workingset: timestamp_bits=30 max_order=16 bucket_order=0
io scheduler noop registered
io scheduler cfq registered (default)
imx-sdma 20ec000.sdma: failed to get firmware from device tree
console [ttymxc0] enabled
bootconsole [earlycon0] disabled
21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 51, base_baud = 5000000) is a IMX
fsl-quadspi 21e0000.qspi: n25q256a (32768 Kbytes)
5 fixed-partitions partitions found on MTD device 21e0000.qspi
Creating 5 MTD partitions on "21e0000.qspi":
0x000000000000-0x000000001000 : "QSPI Config Parameters"
0x000000001000-0x000000100000 : "U-boot"
0x000000100000-0x000000102000 : "U-boot Env"
0x000000108000-0x000000109000 : "Manu Settings"
0x000000200000-0x000001a00000 : "Linux"
spi_imx 2008000.ecspi: dma setup error -19, use pio
------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at drivers/spi/spidev.c:730 spidev_probe+0x38/0x164
/soc/aips-bus@2000000/spba-bus@2000000/ecspi@2008000/spi@0: buggy DT: spidev listed directly in DT
Modules linked in:
CPU: 0 PID: 1 Comm: swapper Not tainted 4.19.107 #13
Hardware name: Freescale i.MX6 Ultralite (Device Tree)
[<c010c820>] (unwind_backtrace) from [<c010a4b0>] (show_stack+0x10/0x14)
[<c010a4b0>] (show_stack) from [<c0116834>] (__warn+0xd4/0xec)
[<c0116834>] (__warn) from [<c011649c>] (warn_slowpath_fmt+0x44/0x70)
[<c011649c>] (warn_slowpath_fmt) from [<c031ee3c>] (spidev_probe+0x38/0x164)
[<c031ee3c>] (spidev_probe) from [<c031b22c>] (spi_drv_probe+0x88/0xa4)
[<c031b22c>] (spi_drv_probe) from [<c02ec928>] (really_probe+0x1d8/0x2a0)
[<c02ec928>] (really_probe) from [<c02ecc88>] (driver_probe_device+0x140/0x158)
[<c02ecc88>] (driver_probe_device) from [<c02eaf64>] (bus_for_each_drv+0xa0/0xb8)
[<c02eaf64>] (bus_for_each_drv) from [<c02ecaac>] (__device_attach+0xbc/0x134)
[<c02ecaac>] (__device_attach) from [<c02ebd00>] (bus_probe_device+0x28/0x80)
[<c02ebd00>] (bus_probe_device) from [<c02ea008>] (device_add+0x46c/0x564)
[<c02ea008>] (device_add) from [<c031be48>] (spi_add_device+0xe4/0x124)
[<c031be48>] (spi_add_device) from [<c031c948>] (spi_register_controller+0x7c8/0x8a0)
[<c031c948>] (spi_register_controller) from [<c0320064>] (spi_bitbang_start+0xe4/0x120)
[<c0320064>] (spi_bitbang_start) from [<c03215c0>] (spi_imx_probe+0x570/0x62c)
[<c03215c0>] (spi_imx_probe) from [<c02ee28c>] (platform_drv_probe+0x48/0x94)
[<c02ee28c>] (platform_drv_probe) from [<c02ec928>] (really_probe+0x1d8/0x2a0)
[<c02ec928>] (really_probe) from [<c02ecc88>] (driver_probe_device+0x140/0x158)
[<c02ecc88>] (driver_probe_device) from [<c02ecd3c>] (__driver_attach+0x9c/0xd8)
[<c02ecd3c>] (__driver_attach) from [<c02eae70>] (bus_for_each_dev+0x64/0xa4)
[<c02eae70>] (bus_for_each_dev) from [<c02ebf9c>] (bus_add_driver+0x168/0x1cc)
[<c02ebf9c>] (bus_add_driver) from [<c02ed478>] (driver_register+0xac/0xf0)
[<c02ed478>] (driver_register) from [<c0102604>] (do_one_initcall+0x74/0x17c)
[<c0102604>] (do_one_initcall) from [<c0600e28>] (kernel_init_freeable+0x17c/0x1bc)
[<c0600e28>] (kernel_init_freeable) from [<c0435bb0>] (kernel_init+0x8/0x10c)
[<c0435bb0>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
Exception stack(0xcf83dfb0 to 0xcf83dff8)
dfa0: 00000000 00000000 00000000 00000000
dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
---[ end trace b774167321f11a96 ]---
spi_imx 2008000.ecspi: probed
libphy: Fixed MDIO Bus: probed
fec 2188000.ethernet: 2188000.ethernet supply phy not found, using dummy regulator
fec 2188000.ethernet: Linked as a consumer to regulator.0
libphy: fec_enet_mii_bus: probed
input: gpio-decoder0 as /devices/soc0/gpio-decoder0/input/input0
snvs_rtc 20cc000.snvs:snvs-rtc-lp: registered as rtc0
i2c /dev entries driver
imx2-wdt 20bc000.wdog: timeout 60 sec (nowayout=1)
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
sdhci-esdhc-imx 2190000.usdhc: Linked as a consumer to regulator.4
mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA
NET: Registered protocol family 17
8021q: 802.1Q VLAN Support v1.8
cpu cpu0: Linked as a consumer to regulator.2
cpu cpu0: Linked as a consumer to regulator.3
cpu cpu0: _opp_is_duplicate: duplicate OPPs detected. Existing: freq: 696000000, volt: 1275000, enabled: 1. New: freq: 696000000, volt: 1275000, enabled: 1
cpu cpu0: _opp_is_duplicate: duplicate OPPs detected. Existing: freq: 528000000, volt: 1175000, enabled: 1. New: freq: 528000000, volt: 1175000, enabled: 1
cpu cpu0: _opp_is_duplicate: duplicate OPPs detected. Existing: freq: 396000000, volt: 1025000, enabled: 1. New: freq: 396000000, volt: 1025000, enabled: 1
cpu cpu0: _opp_is_duplicate: duplicate OPPs detected. Existing: freq: 198000000, volt: 950000, enabled: 1. New: freq: 198000000, volt: 950000, enabled: 1
mmc0: unrecognised SCR structure version 6
mmc0: error -22 whilst initialising SD card
cpu cpu0: _opp_is_duplicate: duplicate OPPs detected. Existing: freq: 696000000, volt: 1275000, enabled: 1. New: freq: 696000000, volt: 1275000, enabled: 1
cpu cpu0: _opp_is_duplicate: duplicate OPPs detected. Existing: freq: 528000000, volt: 1175000, enabled: 1. New: freq: 528000000, volt: 1175000, enabled: 1
cpu cpu0: _opp_is_duplicate: duplicate OPPs detected. Existing: freq: 396000000, volt: 1025000, enabled: 1. New: freq: 396000000, volt: 1025000, enabled: 1
cpu cpu0: _opp_is_duplicate: duplicate OPPs detected. Existing: freq: 198000000, volt: 950000, enabled: 1. New: freq: 198000000, volt: 950000, enabled: 1
snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 1970-03-24 21:50:49 UTC (7163449)
Freeing unused kernel memory: 1024K
Run /init as init process
mmc0: host does not support reading read-only switch, assuming write-enable
mmc0: new high speed SDHC card at address 59b4
mmcblk0: mmc0:59b4 USD 3.76 GiB
mmcblk0:
mount: mounting devpts on /dev/pts failed: No such device
cpu cpu0: _opp_is_duplicate: duplicate OPPs detected. Existing: freq: 696000000, volt: 1275000, enabled: 1. New: freq: 696000000, volt: 1275000, enabled: 1
cpu cpu0: _opp_is_duplicate: duplicate OPPs detected. Existing: freq: 528000000, volt: 1175000, enabled: 1. New: freq: 528000000, volt: 1175000, enabled: 1
cpu cpu0: _opp_is_duplicate: duplicate OPPs detected. Existing: freq: 396000000, volt: 1025000, enabled: 1. New: freq: 396000000, volt: 1025000, enabled: 1
cpu cpu0: _opp_is_duplicate: duplicate OPPs detected. Existing: freq: 198000000, volt: 950000, enabled: 1. New: freq: 198000000, volt: 950000, enabled: 1
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Saving random seed: random: dd: uninitialized urandom read (512 bytes read)
OK
Starting network: OK
Initialising GPIOs
/
Welcome to Buildroot
Any ideas would great.
Daniel