[U-Boot] [i.MX8MM+CCF 00/41] i.MX8MM + CCF

Schrempf Frieder frieder.schrempf at kontron.de
Mon May 6 07:57:03 UTC 2019


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).

Are there any other patches needed?
What things are still missing to get i.MX8MM running in U-Boot?

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