[U-Boot] [i.MX8MM+CCF 00/41] i.MX8MM + CCF
Schrempf Frieder
frieder.schrempf at kontron.de
Mon May 6 08:26:37 UTC 2019
On 06.05.19 09:57, Frieder Schrempf wrote:
> Hi Peng,
>
> I'm trying to add support for a board with i.MX8MM. First I applied
> Lukasz's CCF patches and your patches to U-Boot 2019.04 and tried to
> build imx8mm_evk config. But I'm getting build errors (see below).
The build works if I enable the OTP fuse driver and disable I2C support.
In clock_imx8mm.c enable_i2c_clk() seems to be missing, or maybe the i2c
driver needs to use the new clock framework now?
>
> Are there any other patches needed?
> What things are still missing to get i.MX8MM running in U-Boot?
It seems like this still needs a bit of work. I also see some CONFIG
options defined in the headers, that should be moved to defconfig.
>
> Thanks,
> Frieder
>
> | aarch64-ktn-linux-ld.bfd: cmd/built-in.o: in function `do_fuse':
> | /home/frieder/repos/u-boot/cmd/fuse.c:68: undefined reference to
> `fuse_read'
> | aarch64-ktn-linux-ld.bfd: /home/frieder/repos/u-boot/cmd/fuse.c:86:
> undefined reference to `fuse_sense'
> | aarch64-ktn-linux-ld.bfd: /home/frieder/repos/u-boot/cmd/fuse.c:105:
> undefined reference to `fuse_prog'
> | aarch64-ktn-linux-ld.bfd: /home/frieder/repos/u-boot/cmd/fuse.c:119:
> undefined reference to `fuse_override'
> | aarch64-ktn-linux-ld.bfd: drivers/i2c/built-in.o: in function
> `mxc_i2c_probe':
> | /home/frieder/repos/u-boot/drivers/i2c/mxc_i2c.c:824: undefined
> reference to `enable_i2c_clk'
> | aarch64-ktn-linux-ld.bfd:
> /home/frieder/repos/u-boot/drivers/i2c/mxc_i2c.c:853: undefined
> reference to `enable_i2c_clk'
>
>
> On 30.04.19 12:17, Peng Fan wrote:
>> This patch set is based Lukasz V3 CCF patchset,
>> [PATCH v3 00/11] clk: Port Linux common clock framework [CCF] to
>> U-boot (tag: 5.0-rc3)
>> https://github.com/lmajewski/u-boot-dfu/commits/CCF-v3
>>
>> Added a few fixes to Lukasz's v3 patchset.
>> Introduced clk-gate/composite
>> Added set rate support
>> Per my understanding, U-Boot CCF will not support mux reparent, and
>> support rate prograte setting to parent automatically. So new clk
>> feature added follow this rule.
>>
>> There are many warnings when importing linux ccf code, I did not
>> modify them all.
>>
>> The rest patches are for i.MX8MM, part of legacy clk code are still
>> kept, because we are hard to enable CCF at very early stage, we set
>> malloc space to DRAM when dram initialized in spl stage, so we have
>> limited SRAM for uclass dm and dm clk, so keep the DRAM PLL related
>> setting with legacy clk code which use small ram.
>>
>> The u-boot-spl.bin now is about 100KB without ddr firmware,usb stack
>> and hab,
>> so really large......
>> I am thinking what we could do to shrink the size, welcome any
>> suggestions.
>>
>> Not expect this patchset could be merged, because of the CCF/clock code
>> change, but since the clock part blocks i.MX8MM upstream, just would like
>> to speed up the development with community and move on.
>>
>> Peng Fan (40):
>> clk: correct get clk_x pointer
>> clk: fixed-factor: fix get clk_fixed_factor
>> clk: introduce clk_dev_binded
>> clk: use clk_dev_binded
>> clk-provider: sync more clk flags from Linux Kernel
>> cmd: clk: print err value when clk_get_rate failed
>> clk: mux: add set parent support
>> clk: export mux/divider ops
>> clk: add clk-gate support
>> divider set rate supporrt
>> clk: fixed_rate: export clk_fixed_rate
>> clk: fixed_rate: add pre reloc flag
>> clk: imx: import clk heplers
>> clk: imx: gate2 add set rate
>> linux: compat: guard PAGE_SIZE
>> drivers: core: use strcmp when find device by name
>> ddr: imx8m: fix ddr firmware location when enable SPL OF
>> imx: add IMX8MQ kconfig entry
>> imx: add IMX8MM kconfig entry
>> imx: imx8mm: add clock bindings header
>> imx: add i.MX8MM cpu type
>> imx: spl: add spl_board_boot_device for i.MX8MM
>> imx8m: update imx-regs for i.MX8MM
>> imx: add get_cpu_rev support for i.MX8MM
>> imx8m: rename clock to clock_imx8mq
>> imx8m: restructure clock.h
>> imx8m: add clk support for i.MX8MM
>> imx8m: soc: probe clk before relocation
>> imx8m: add pin header for i.MX8MM
>> imx: add i.MX8MM PE property
>> imx8m: Fix MMU table issue for OPTEE memory
>> imx8m: set BYPASS ID SWAP to avoid AXI bus errors
>> imx8m: soc: enable SCTR clock before timer init
>> serial: Kconfig: make MXC_UART usable for MX7 and IMX8M
>> clk: imx: add Kconfig entry for i.MX8MM
>> clk: imx: add pll14xx driver
>> clk: add composite clk support
>> clk: imx: add i.MX8MM composite clk support
>> clk: imx: add i.MX8MM clk driver
>> imx: add i.MX8MM EVK board support
>>
>> Ye Li (1):
>> imx8m: Configure trustzone region 0 for non-secure access
>>
>> arch/arm/dts/Makefile | 3 +-
>> arch/arm/dts/imx8mm-evk-u-boot.dtsi | 92 +
>> arch/arm/dts/imx8mm-evk.dts | 235 +++
>> arch/arm/dts/imx8mm-pinfunc.h | 629 +++++++
>> arch/arm/dts/imx8mm.dtsi | 733 ++++++++
>> arch/arm/include/asm/arch-imx/cpu.h | 6 +
>> arch/arm/include/asm/arch-imx8m/clock.h | 493 +----
>> arch/arm/include/asm/arch-imx8m/clock_imx8mm.h | 387 ++++
>> arch/arm/include/asm/arch-imx8m/clock_imx8mq.h | 424 +++++
>> arch/arm/include/asm/arch-imx8m/imx-regs.h | 75 +-
>> arch/arm/include/asm/arch-imx8m/imx8mm_pins.h | 691 +++++++
>> arch/arm/include/asm/mach-imx/iomux-v3.h | 4 +
>> arch/arm/include/asm/mach-imx/sys_proto.h | 8 +
>> arch/arm/mach-imx/cpu.c | 12 +
>> arch/arm/mach-imx/imx8m/Kconfig | 17 +-
>> arch/arm/mach-imx/imx8m/Makefile | 4 +-
>> arch/arm/mach-imx/imx8m/clock_imx8mm.c | 292 +++
>> .../arm/mach-imx/imx8m/{clock.c => clock_imx8mq.c} | 5 +-
>> arch/arm/mach-imx/imx8m/clock_slice.c | 461 +++++
>> arch/arm/mach-imx/imx8m/soc.c | 112 +-
>> arch/arm/mach-imx/spl.c | 8 +
>> board/freescale/imx8mm_evk/Kconfig | 12 +
>> board/freescale/imx8mm_evk/MAINTAINERS | 6 +
>> board/freescale/imx8mm_evk/Makefile | 12 +
>> board/freescale/imx8mm_evk/imx8mm_evk.c | 90 +
>> board/freescale/imx8mm_evk/lpddr4_timing.c | 1980
>> ++++++++++++++++++++
>> board/freescale/imx8mm_evk/spl.c | 216 +++
>> cmd/clk.c | 2 +
>> configs/imx8mm_evk_defconfig | 52 +
>> drivers/clk/Kconfig | 14 +
>> drivers/clk/Makefile | 3 +-
>> drivers/clk/clk-composite.c | 165 ++
>> drivers/clk/clk-divider.c | 92 +-
>> drivers/clk/clk-fixed-factor.c | 2 +-
>> drivers/clk/clk-gate.c | 151 ++
>> drivers/clk/clk-mux.c | 76 +-
>> drivers/clk/clk.c | 8 +
>> drivers/clk/clk_fixed_rate.c | 9 +-
>> drivers/clk/imx/Kconfig | 9 +
>> drivers/clk/imx/Makefile | 1 +
>> drivers/clk/imx/clk-composite-8m.c | 170 ++
>> drivers/clk/imx/clk-gate2.c | 15 +-
>> drivers/clk/imx/clk-imx8mm.c | 415 ++++
>> drivers/clk/imx/clk-pfd.c | 2 +-
>> drivers/clk/imx/clk-pll14xx.c | 377 ++++
>> drivers/clk/imx/clk-pllv3.c | 2 +-
>> drivers/clk/imx/clk.h | 106 ++
>> drivers/core/uclass.c | 2 +-
>> drivers/ddr/imx/imx8m/helper.c | 12 +-
>> drivers/serial/Kconfig | 2 +-
>> include/clk.h | 9 +
>> include/configs/imx8mm_evk.h | 199 ++
>> include/dt-bindings/clock/imx8mm-clock.h | 244 +++
>> include/linux/clk-provider.h | 74 +
>> include/linux/compat.h | 2 +
>> 55 files changed, 8728 insertions(+), 494 deletions(-)
>> create mode 100644 arch/arm/dts/imx8mm-evk-u-boot.dtsi
>> create mode 100644 arch/arm/dts/imx8mm-evk.dts
>> create mode 100644 arch/arm/dts/imx8mm-pinfunc.h
>> create mode 100644 arch/arm/dts/imx8mm.dtsi
>> create mode 100644 arch/arm/include/asm/arch-imx8m/clock_imx8mm.h
>> create mode 100644 arch/arm/include/asm/arch-imx8m/clock_imx8mq.h
>> create mode 100644 arch/arm/include/asm/arch-imx8m/imx8mm_pins.h
>> create mode 100644 arch/arm/mach-imx/imx8m/clock_imx8mm.c
>> rename arch/arm/mach-imx/imx8m/{clock.c => clock_imx8mq.c} (99%)
>> create mode 100644 board/freescale/imx8mm_evk/Kconfig
>> create mode 100644 board/freescale/imx8mm_evk/MAINTAINERS
>> create mode 100644 board/freescale/imx8mm_evk/Makefile
>> create mode 100644 board/freescale/imx8mm_evk/imx8mm_evk.c
>> create mode 100644 board/freescale/imx8mm_evk/lpddr4_timing.c
>> create mode 100644 board/freescale/imx8mm_evk/spl.c
>> create mode 100644 configs/imx8mm_evk_defconfig
>> create mode 100644 drivers/clk/clk-composite.c
>> create mode 100644 drivers/clk/clk-gate.c
>> create mode 100644 drivers/clk/imx/clk-composite-8m.c
>> create mode 100644 drivers/clk/imx/clk-imx8mm.c
>> create mode 100644 drivers/clk/imx/clk-pll14xx.c
>> create mode 100644 include/configs/imx8mm_evk.h
>> create mode 100644 include/dt-bindings/clock/imx8mm-clock.h
>>
More information about the U-Boot
mailing list