Message ID | 1593703441-16944-1-git-send-email-Anson.Huang@nxp.com (mailing list archive) |
---|---|
Headers | show |
Series | Support building i.MX ARMv7/ARMv8 platforms clock driver as module | expand |
Hi Anson, On Thu, Jul 02, 2020 at 11:23:55PM +0800, Anson Huang wrote: > Nowdays, there are more and more requirements of building SoC specific > drivers as modules, such as Android GKI (generic kernel image), this > patch set supports building i.MX ARMv6/ARMv7 SoCs clock drivers as modules, I'm curious, how does the system boot to userspace to be able to load modules without clock support in the kernel ? What if the driver for the device storing the rootfs cope with clocks not being available ? Does this require an initramfs with the clock module ? Even then, how does the serial port driver cope with not having clocks ? > The CLK_IMXxxx is introduced for i.MX ARMv7 platforms in order to support > various build options, and i.MX1/2/3 platforms now still ONLY support built-in > as they are rarely used now. > > Changes since V4: > - add empty function of imx_register_uart_clocks() for MODULE build, then > all earlycon related clock handler can be built-out for MODULE; > - add module build support for ARMv7 platforms, also add COMPILE_TEST for them; > - add COMPILE_TEST for ARMv8 platforms; > - keep using builtin_platform_driver() for i.MX8QXP clock driver. > > Anson Huang (6): > clk: composite: Export clk_hw_register_composite() > clk: imx: Support module build for i.MX5/6/7 and vf610 > clk: imx: Support building i.MX common clock driver as module > clk: imx: Add clock configuration for ARMv7 platforms > clk: imx8m: Support module build > clk: imx8qxp: Support building i.MX8QXP clock driver as module > > drivers/clk/clk-composite.c | 1 + > drivers/clk/imx/Kconfig | 101 ++++++++++++++++++++++++++++++++----- > drivers/clk/imx/Makefile | 79 ++++++++++++++--------------- > drivers/clk/imx/clk-composite-8m.c | 2 + > drivers/clk/imx/clk-cpu.c | 2 + > drivers/clk/imx/clk-frac-pll.c | 2 + > drivers/clk/imx/clk-gate2.c | 2 + > drivers/clk/imx/clk-imx5.c | 5 ++ > drivers/clk/imx/clk-imx6q.c | 5 ++ > drivers/clk/imx/clk-imx6sl.c | 5 ++ > drivers/clk/imx/clk-imx6sll.c | 5 ++ > drivers/clk/imx/clk-imx6sx.c | 5 ++ > drivers/clk/imx/clk-imx6ul.c | 5 ++ > drivers/clk/imx/clk-imx7d.c | 5 ++ > drivers/clk/imx/clk-imx7ulp.c | 5 ++ > drivers/clk/imx/clk-imx8mm.c | 4 ++ > drivers/clk/imx/clk-imx8mn.c | 4 ++ > drivers/clk/imx/clk-imx8mp.c | 4 ++ > drivers/clk/imx/clk-imx8mq.c | 4 ++ > drivers/clk/imx/clk-imx8qxp-lpcg.c | 4 ++ > drivers/clk/imx/clk-imx8qxp.c | 4 ++ > drivers/clk/imx/clk-pll14xx.c | 5 ++ > drivers/clk/imx/clk-sscg-pll.c | 2 + > drivers/clk/imx/clk-vf610.c | 5 ++ > drivers/clk/imx/clk.c | 17 +++++-- > drivers/clk/imx/clk.h | 6 +++ > 26 files changed, 231 insertions(+), 57 deletions(-)
Hi, Laurent > Subject: Re: [PATCH V5 0/6] Support building i.MX ARMv7/ARMv8 platforms > clock driver as module > > Hi Anson, > > On Thu, Jul 02, 2020 at 11:23:55PM +0800, Anson Huang wrote: > > Nowdays, there are more and more requirements of building SoC specific > > drivers as modules, such as Android GKI (generic kernel image), this > > patch set supports building i.MX ARMv6/ARMv7 SoCs clock drivers as > > modules, > > I'm curious, how does the system boot to userspace to be able to load > modules without clock support in the kernel ? What if the driver for the device > storing the rootfs cope with clocks not being available ? Does this require an > initramfs with the clock module ? Even then, how does the serial port driver > cope with not having clocks ? Yes, this requires an initramfs, and in the initramfs, it will insmod those .ko with correct sequence, as per my test and Android GKI test from our Andoird team, the clock and pinctrl need to be insmod first, then the debug console, then other module devices....And this patch series ONLY provides the capability of loadable clock module for this scenario, Linux will still use built-in by default. Thanks, Anson