Message ID | 1620990152-19255-1-git-send-email-dillon.minfei@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | Fix the i2c/clk bug of stm32 mcu platform | expand |
Hi Patrice, Alain, Could you help to take a look at this patchset, thanks. This series is the rebase to the newest kernel commit: 88b06399c9c766c283e070b022b5ceafa4f63f19 according to the request from: https://lore.kernel.org/lkml/ff2bc09d-1a17-50d4-d3ee-16fd3a86d7f1@foss.st.com/ The clk bug affects the kernel bootup on stm32f469-disco board in case display config(CONFIG_DRM_STM, CONFIG_DRM_STM_DSI, DRM_PANEL_ORISETECH_OTM8009A) enabled. If you want to test clk patch on stm32f429-disco board, the panel-ilitek-ili9341.c can be used for that purpose (CONFIG_DRM_STM, DRM_PANEL_ILITEK_ILI9341) i2c driver patch intent to fix the touch panel driver get data through i2c bus timeout issue. Best regards. Dillon On Fri, May 14, 2021 at 7:02 PM <dillon.minfei@gmail.com> wrote: > > From: Dillon Min <dillon.minfei@gmail.com> > > This seriese fix three i2c/clk bug for stm32 f4/f7 > - kernel runing in sdram, i2c driver get data timeout > - ltdc clk turn off after kernel console active > - kernel hang in set ltdc clock rate > > clk bug found on stm32f429/f469-disco board > > Hi Patrice: > below is the guide to verify the patch: > > setup test env with following files(link at below 'files link'): > [1] u-boot-dtb.bin > [2] rootfs zip file (used in kernel initramfs) > [3] u-boot's mkimage to create itb file > [4] kernel config file > [5] my itb with-or-without i2c patch > > This patch based on kernel commit: > 88b06399c9c766c283e070b022b5ceafa4f63f19 > > Note: > panel-ilitek-ili9341.c is the driver which was submitted last year, but not > get accepted. it's used to setup touch screen calibration, then test i2c. > > create itb file(please correct path of 'data'): > ./mkimage -f stm32.its stm32.itb > > HW setup: > console: > PA9, PA10 > usart0 > serial@40011000 > 115200 8n1 > > -- flash u-boot.bin to stm32f429-disco on PC > $ sudo openocd -f board/stm32f429discovery.cfg -c \ > '{PATH-TO-YOUR-UBOOT}/u-boot-dtb.bin 0x08000000 exit reset' > > -- setup kernel load bootargs at u-boot > U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 > root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' > U-Boot > loady;bootm > (download stm32.dtb or your kernel with itb format, or download zImage, dtb) > > -- setup ts_calibrate running env on stm32f429-disco > / # export TSLIB_CONFFILE=/etc/ts.conf > / # export TSLIB_TSDEVICE=/dev/input/event0 > / # export TSLIB_CONSOLEDEVICE=none > / # export TSLIB_FBDEVICE=/dev/fb0 > > -- clear screen > / # ./fb > > -- run ts_calibrate > / # ts_calibrate > (you can calibrate touchscreen now, and get below errors) > > [ 113.942087] stmpe-i2c0-0041: failed to read regs 0x52: -110 > [ 114.063598] stmpe-i2c 0-0041: failed to read reg 0x4b: -16 > [ 114.185629] stmpe-i2c 0-0041: failed to read reg 0x40: -16 > [ 114.307257] stmpe-i2c 0-0041: failed to write reg 0xb: -16 > > ... > with i2c patch applied, you will find below logs: > > RAW---------------------> 3164 908 183 118.110884 > TS_READ_RAW----> x = 3164, y =908, pressure = 183 > RAW---------------------> 3166 922 126 118.138946 > TS_READ_RAW----> x = 3166, y = 922, pressure = 126 > .... > > files link: > https://drive.google.com/drive/folders/1qNbjChcB6UGtKzne2F5x9_WG_sZFyo3o?usp=sharing > > > > > Dillon Min (4): > drm/panel: Add ilitek ili9341 panel driver > i2c: stm32f4: Fix stmpe811 get xyz data timeout issue > clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate > clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after > kernel startup > > drivers/clk/clk-stm32f4.c | 10 +- > drivers/gpu/drm/panel/Kconfig | 12 + > drivers/gpu/drm/panel/Makefile | 1 + > drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 1285 ++++++++++++++++++++++++++ > drivers/i2c/busses/i2c-stm32f4.c | 12 +- > 5 files changed, 1310 insertions(+), 10 deletions(-) > create mode 100755 drivers/gpu/drm/panel/panel-ilitek-ili9341.c > > -- > 2.7.4 >
Hi Dillon On 5/14/21 1:02 PM, dillon.minfei@gmail.com wrote: > From: Dillon Min <dillon.minfei@gmail.com> > > This seriese fix three i2c/clk bug for stm32 f4/f7 > - kernel runing in sdram, i2c driver get data timeout > - ltdc clk turn off after kernel console active > - kernel hang in set ltdc clock rate > > clk bug found on stm32f429/f469-disco board > > Hi Patrice: > below is the guide to verify the patch: > > setup test env with following files(link at below 'files link'): > [1] u-boot-dtb.bin > [2] rootfs zip file (used in kernel initramfs) > [3] u-boot's mkimage to create itb file > [4] kernel config file > [5] my itb with-or-without i2c patch > > This patch based on kernel commit: > 88b06399c9c766c283e070b022b5ceafa4f63f19 > > Note: > panel-ilitek-ili9341.c is the driver which was submitted last year, but not > get accepted. it's used to setup touch screen calibration, then test i2c. > > create itb file(please correct path of 'data'): > ./mkimage -f stm32.its stm32.itb > > HW setup: > console: > PA9, PA10 > usart0 > serial@40011000 > 115200 8n1 > > -- flash u-boot.bin to stm32f429-disco on PC > $ sudo openocd -f board/stm32f429discovery.cfg -c \ > '{PATH-TO-YOUR-UBOOT}/u-boot-dtb.bin 0x08000000 exit reset' > > -- setup kernel load bootargs at u-boot > U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 > root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' > U-Boot > loady;bootm > (download stm32.dtb or your kernel with itb format, or download zImage, dtb) > Thanks for these informations I was able to load and boot DTB and uImage directly in SDRAM as you suggested, i saw Linux logo and kernel log on the STM32F429-disco display, but i can't reach the login. The last kernel log i got is : Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.13.0-rc1-00082-g9dbbd5cb6240-dirty (nxp11987@lmecxl0573.lme1 [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 [ 0.000000] CPU: unknown data cache, unknown instruction cache [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [...] [ 2.637564] printk: console [ttySTM0] enabled [ 2.747984] panel-ilitek-ili9341 spi0.1: get optional vcc failed [ 2.758986] spi_stm32 40015000.spi: driver initialized [ 2.795733] i2c /dev entries driver [ 2.849955] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 [ 2.922030] stmpe-ts stmpe-ts: DMA mask not set [ 2.965729] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts0 [ 2.991570] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered [ 3.058262] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on min0 [ 3.665951] panel-ilitek-ili9341 spi0.1: initialized display rgb interface [ 3.765208] Console: switching to colour frame buffer device 30x40 [ 4.014269] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffere [ 4.212737] Freeing unused kernel memory: 324K [ 4.287300] This architecture does not have kernel memory protection. [ 4.401202] Run /linuxrc as init process [ 4.478622] with arguments: [ 4.555069] /linuxrc [ 4.595406] with environment: [ 4.672213] HOME=/ [ 4.712511] TERM=linux [ 206.785289] random: crng init done I can't test your I2C patch. Patrice > -- setup ts_calibrate running env on stm32f429-disco > / # export TSLIB_CONFFILE=/etc/ts.conf > / # export TSLIB_TSDEVICE=/dev/input/event0 > / # export TSLIB_CONSOLEDEVICE=none > / # export TSLIB_FBDEVICE=/dev/fb0 > > -- clear screen > / # ./fb > > -- run ts_calibrate > / # ts_calibrate > (you can calibrate touchscreen now, and get below errors) > > [ 113.942087] stmpe-i2c0-0041: failed to read regs 0x52: -110 > [ 114.063598] stmpe-i2c 0-0041: failed to read reg 0x4b: -16 > [ 114.185629] stmpe-i2c 0-0041: failed to read reg 0x40: -16 > [ 114.307257] stmpe-i2c 0-0041: failed to write reg 0xb: -16 > > ... > with i2c patch applied, you will find below logs: > > RAW---------------------> 3164 908 183 118.110884 > TS_READ_RAW----> x = 3164, y =908, pressure = 183 > RAW---------------------> 3166 922 126 118.138946 > TS_READ_RAW----> x = 3166, y = 922, pressure = 126 > .... > > files link: > https://drive.google.com/drive/folders/1qNbjChcB6UGtKzne2F5x9_WG_sZFyo3o?usp=sharing > > > > > Dillon Min (4): > drm/panel: Add ilitek ili9341 panel driver > i2c: stm32f4: Fix stmpe811 get xyz data timeout issue > clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate > clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after > kernel startup > > drivers/clk/clk-stm32f4.c | 10 +- > drivers/gpu/drm/panel/Kconfig | 12 + > drivers/gpu/drm/panel/Makefile | 1 + > drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 1285 ++++++++++++++++++++++++++ > drivers/i2c/busses/i2c-stm32f4.c | 12 +- > 5 files changed, 1310 insertions(+), 10 deletions(-) > create mode 100755 drivers/gpu/drm/panel/panel-ilitek-ili9341.c >
Hi Patrice Thanks for your time to test my patch. On Mon, May 31, 2021 at 9:20 PM Patrice CHOTARD <patrice.chotard@foss.st.com> wrote: > > Hi Dillon > > > > On 5/14/21 1:02 PM, dillon.minfei@gmail.com wrote: > > From: Dillon Min <dillon.minfei@gmail.com> > > > > This seriese fix three i2c/clk bug for stm32 f4/f7 > > - kernel runing in sdram, i2c driver get data timeout > > - ltdc clk turn off after kernel console active > > - kernel hang in set ltdc clock rate > > > > clk bug found on stm32f429/f469-disco board > > > > Hi Patrice: > > below is the guide to verify the patch: > > > > setup test env with following files(link at below 'files link'): > > [1] u-boot-dtb.bin > > [2] rootfs zip file (used in kernel initramfs) > > [3] u-boot's mkimage to create itb file > > [4] kernel config file > > [5] my itb with-or-without i2c patch > > > > This patch based on kernel commit: > > 88b06399c9c766c283e070b022b5ceafa4f63f19 > > > > Note: > > panel-ilitek-ili9341.c is the driver which was submitted last year, but not > > get accepted. it's used to setup touch screen calibration, then test i2c. > > > > create itb file(please correct path of 'data'): > > ./mkimage -f stm32.its stm32.itb > > > > HW setup: > > console: > > PA9, PA10 > > usart0 > > serial@40011000 > > 115200 8n1 > > > > -- flash u-boot.bin to stm32f429-disco on PC > > $ sudo openocd -f board/stm32f429discovery.cfg -c \ > > '{PATH-TO-YOUR-UBOOT}/u-boot-dtb.bin 0x08000000 exit reset' > > > > -- setup kernel load bootargs at u-boot > > U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 > > root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' > > U-Boot > loady;bootm > > (download stm32.dtb or your kernel with itb format, or download zImage, dtb) > > > > > Thanks for these informations > I was able to load and boot DTB and uImage directly in SDRAM as you suggested, > i saw Linux logo and kernel log on the STM32F429-disco display, > but i can't reach the login. > > The last kernel log i got is : > > Starting kernel ... > > [ 0.000000] Booting Linux on physical CPU 0x0 > [ 0.000000] Linux version 5.13.0-rc1-00082-g9dbbd5cb6240-dirty (nxp11987@lmecxl0573.lme1 > [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 > [ 0.000000] CPU: unknown data cache, unknown instruction cache > [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board > [ 0.000000] Zone ranges: > [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] > [ 0.000000] Movable zone start for each node > [ 0.000000] Early memory node ranges > > [...] > > [ 2.637564] printk: console [ttySTM0] enabled > [ 2.747984] panel-ilitek-ili9341 spi0.1: get optional vcc failed > [ 2.758986] spi_stm32 40015000.spi: driver initialized > [ 2.795733] i2c /dev entries driver > [ 2.849955] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 > [ 2.922030] stmpe-ts stmpe-ts: DMA mask not set > [ 2.965729] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts0 > [ 2.991570] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered > [ 3.058262] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on min0 > [ 3.665951] panel-ilitek-ili9341 spi0.1: initialized display rgb interface > [ 3.765208] Console: switching to colour frame buffer device 30x40 > [ 4.014269] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffere > [ 4.212737] Freeing unused kernel memory: 324K > [ 4.287300] This architecture does not have kernel memory protection. > [ 4.401202] Run /linuxrc as init process > [ 4.478622] with arguments: > [ 4.555069] /linuxrc > [ 4.595406] with environment: > [ 4.672213] HOME=/ > [ 4.712511] TERM=linux > [ 206.785289] random: crng init done I guess you didn't add the rootfs to uImage I sent you. Could you post all the logs from u-boot startup to kernel log end. If possible, you can try my suggestion. - tar -jxf stm32_rootfs.tar.bz2 - add stm32_rootfs to your kernel config( enable initramfs) - make O=YOUR_KERNEL_OUT zImage dtbs LOADADDR=0x90008000 - create itb file (combine dtb and kernel, initramfs) by mkimage ./mkimage -f stm32.its stm32.itb (before above command, make sure you correct stm32.its adapt to your env) This process will make u-boot to load the kernel more simple. Thanks. Best Regards. Dillon > > > I can't test your I2C patch. > > Patrice > > > > -- setup ts_calibrate running env on stm32f429-disco > > / # export TSLIB_CONFFILE=/etc/ts.conf > > / # export TSLIB_TSDEVICE=/dev/input/event0 > > / # export TSLIB_CONSOLEDEVICE=none > > / # export TSLIB_FBDEVICE=/dev/fb0 > > > > -- clear screen > > / # ./fb > > > > -- run ts_calibrate > > / # ts_calibrate > > (you can calibrate touchscreen now, and get below errors) > > > > [ 113.942087] stmpe-i2c0-0041: failed to read regs 0x52: -110 > > [ 114.063598] stmpe-i2c 0-0041: failed to read reg 0x4b: -16 > > [ 114.185629] stmpe-i2c 0-0041: failed to read reg 0x40: -16 > > [ 114.307257] stmpe-i2c 0-0041: failed to write reg 0xb: -16 > > > > ... > > with i2c patch applied, you will find below logs: > > > > RAW---------------------> 3164 908 183 118.110884 > > TS_READ_RAW----> x = 3164, y =908, pressure = 183 > > RAW---------------------> 3166 922 126 118.138946 > > TS_READ_RAW----> x = 3166, y = 922, pressure = 126 > > .... > > > > files link: > > https://drive.google.com/drive/folders/1qNbjChcB6UGtKzne2F5x9_WG_sZFyo3o?usp=sharing > > > > > > > > > > Dillon Min (4): > > drm/panel: Add ilitek ili9341 panel driver > > i2c: stm32f4: Fix stmpe811 get xyz data timeout issue > > clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate > > clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after > > kernel startup > > > > drivers/clk/clk-stm32f4.c | 10 +- > > drivers/gpu/drm/panel/Kconfig | 12 + > > drivers/gpu/drm/panel/Makefile | 1 + > > drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 1285 ++++++++++++++++++++++++++ > > drivers/i2c/busses/i2c-stm32f4.c | 12 +- > > 5 files changed, 1310 insertions(+), 10 deletions(-) > > create mode 100755 drivers/gpu/drm/panel/panel-ilitek-ili9341.c > >
On 5/31/21 3:38 PM, Dillon Min wrote: > Hi Patrice > > Thanks for your time to test my patch. > > On Mon, May 31, 2021 at 9:20 PM Patrice CHOTARD > <patrice.chotard@foss.st.com> wrote: >> >> Hi Dillon >> >> >> >> On 5/14/21 1:02 PM, dillon.minfei@gmail.com wrote: >>> From: Dillon Min <dillon.minfei@gmail.com> >>> >>> This seriese fix three i2c/clk bug for stm32 f4/f7 >>> - kernel runing in sdram, i2c driver get data timeout >>> - ltdc clk turn off after kernel console active >>> - kernel hang in set ltdc clock rate >>> >>> clk bug found on stm32f429/f469-disco board >>> >>> Hi Patrice: >>> below is the guide to verify the patch: >>> >>> setup test env with following files(link at below 'files link'): >>> [1] u-boot-dtb.bin >>> [2] rootfs zip file (used in kernel initramfs) >>> [3] u-boot's mkimage to create itb file >>> [4] kernel config file >>> [5] my itb with-or-without i2c patch >>> >>> This patch based on kernel commit: >>> 88b06399c9c766c283e070b022b5ceafa4f63f19 >>> >>> Note: >>> panel-ilitek-ili9341.c is the driver which was submitted last year, but not >>> get accepted. it's used to setup touch screen calibration, then test i2c. >>> >>> create itb file(please correct path of 'data'): >>> ./mkimage -f stm32.its stm32.itb >>> >>> HW setup: >>> console: >>> PA9, PA10 >>> usart0 >>> serial@40011000 >>> 115200 8n1 >>> >>> -- flash u-boot.bin to stm32f429-disco on PC >>> $ sudo openocd -f board/stm32f429discovery.cfg -c \ >>> '{PATH-TO-YOUR-UBOOT}/u-boot-dtb.bin 0x08000000 exit reset' >>> >>> -- setup kernel load bootargs at u-boot >>> U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 >>> root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' >>> U-Boot > loady;bootm >>> (download stm32.dtb or your kernel with itb format, or download zImage, dtb) >>> >> >> >> Thanks for these informations >> I was able to load and boot DTB and uImage directly in SDRAM as you suggested, >> i saw Linux logo and kernel log on the STM32F429-disco display, >> but i can't reach the login. >> >> The last kernel log i got is : >> >> Starting kernel ... >> >> [ 0.000000] Booting Linux on physical CPU 0x0 >> [ 0.000000] Linux version 5.13.0-rc1-00082-g9dbbd5cb6240-dirty (nxp11987@lmecxl0573.lme1 >> [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 >> [ 0.000000] CPU: unknown data cache, unknown instruction cache >> [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board >> [ 0.000000] Zone ranges: >> [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] >> [ 0.000000] Movable zone start for each node >> [ 0.000000] Early memory node ranges >> >> [...] >> >> [ 2.637564] printk: console [ttySTM0] enabled >> [ 2.747984] panel-ilitek-ili9341 spi0.1: get optional vcc failed >> [ 2.758986] spi_stm32 40015000.spi: driver initialized >> [ 2.795733] i2c /dev entries driver >> [ 2.849955] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 >> [ 2.922030] stmpe-ts stmpe-ts: DMA mask not set >> [ 2.965729] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts0 >> [ 2.991570] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered >> [ 3.058262] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on min0 >> [ 3.665951] panel-ilitek-ili9341 spi0.1: initialized display rgb interface >> [ 3.765208] Console: switching to colour frame buffer device 30x40 >> [ 4.014269] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffere >> [ 4.212737] Freeing unused kernel memory: 324K >> [ 4.287300] This architecture does not have kernel memory protection. >> [ 4.401202] Run /linuxrc as init process >> [ 4.478622] with arguments: >> [ 4.555069] /linuxrc >> [ 4.595406] with environment: >> [ 4.672213] HOME=/ >> [ 4.712511] TERM=linux >> [ 206.785289] random: crng init done > > I guess you didn't add the rootfs to uImage I sent you. I do use your rootfs > Could you post all the logs from u-boot startup to kernel log end. U-Boot 2021.07-rc2 (May 28 2021 - 17:05:35 +0200) DRAM: 8 MiB Flash: 2 MiB Loading Environment from Flash... OK In: serial@40011000 Out: serial@40011000 Err: serial@40011000 Hit any key to stop autoboot: 0 U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 root=/dev/ram rdinit=/lin' U-Boot > U-Boot > U-Boot > setenv loadaddr 0x90400000 U-Boot > loady ## Ready for binary (ymodem) download to 0x90400000 at 115200 bps... CxyzModem - CRC mode, 156(SOH)/0(STX)/0(CAN) packets, 7 retries ## Total Size = 0x00004cad = 19629 Bytes U-Boot > setenv loadaddr 0x90406000 U-Boot > loady ## Ready for binary (ymodem) download to 0x90406000 at 115200 bps... C- CRC mode, 12453(SOH)/0(STX)/0(CAN) packets, 4 retries ## Total Size = 0x00185140 = 1593664 Bytes U-Boot > bootm 0x90406000 - 0x90400000 ## Booting kernel from Legacy Image at 90406000 ... Image Name: Linux-5.13.0-rc1-00082-g9dbbd5cb Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1593600 Bytes = 1.5 MiB Load Address: 90008000 Entry Point: 90008000 Verifying Checksum ... OK ## Flattened Device Tree blob at 90400000 Booting using the fdt blob at 0x90400000 Loading Kernel Image Loading Device Tree to 905b9000, end 905c0cac ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.13.0-rc1-00082-g9dbbd5cb6240-dirty (nxp11987@lmecxl0573.lme1 [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 [ 0.000000] CPU: unknown data cache, unknown instruction cache [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000090000000-0x00000000907fffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000090000000-0x00000000907fffff] [ 0.000000] On node 0 totalpages: 2048 [ 0.000000] Normal zone: 16 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 2048 pages, LIFO batch:0 [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2032 [ 0.000000] Kernel command line: console=tty0 console=ttySTM0,115200 root=/dev/ram rdin2 [ 0.000000] Dentry cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] Memory: 5264K/8192K available (1372K kernel code, 302K rwdata, 516K rodata,) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] Trampoline variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] /soc/interrupt-controller@40013c00: bank0 [ 0.000000] random: get_random_bytes called from start_kernel+0x203/0x370 with crng_ini0 [ 0.000000] clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idls [ 0.000000] ARM System timer initialized as clocksource [ 0.000026] sched_clock: 32 bits at 90MHz, resolution 11ns, wraps every 23860929530ns [ 0.000665] timer@40000c00: STM32 sched_clock registered [ 0.001275] Switching to timer-based delay loop, resolution 11ns [ 0.001712] timer@40000c00: STM32 delay timer registered [ 0.002253] clocksource: timer@40000c00: mask: 0xffffffff max_cycles: 0xffffffff, max_is [ 0.003076] /soc/timer@40000c00: STM32 clockevent driver initialized (32 bits) [ 0.014135] Console: colour dummy device 80x30 [ 0.062375] printk: console [tty0] enabled [ 0.063843] Calibrating delay loop (skipped), value calculated using timer frequency.. ) [ 0.066453] pid_max: default: 4096 minimum: 301 [ 0.071393] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.073734] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.104759] rcu: Hierarchical SRCU implementation. [ 0.111552] devtmpfs: initialized [ 0.339332] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns:s [ 0.341835] pinctrl core: initialized pinctrl subsystem [ 0.658423] stm32f429-pinctrl soc:pin-controller: No package detected, use default one [ 0.680505] stm32f429-pinctrl soc:pin-controller: GPIOA bank added [ 0.689824] stm32f429-pinctrl soc:pin-controller: GPIOB bank added [ 0.699409] stm32f429-pinctrl soc:pin-controller: GPIOC bank added [ 0.708775] stm32f429-pinctrl soc:pin-controller: GPIOD bank added [ 0.718094] stm32f429-pinctrl soc:pin-controller: GPIOE bank added [ 0.727535] stm32f429-pinctrl soc:pin-controller: GPIOF bank added [ 0.736953] stm32f429-pinctrl soc:pin-controller: GPIOG bank added [ 0.746404] stm32f429-pinctrl soc:pin-controller: GPIOH bank added [ 0.756098] stm32f429-pinctrl soc:pin-controller: GPIOI bank added [ 0.765436] stm32f429-pinctrl soc:pin-controller: GPIOJ bank added [ 0.774870] stm32f429-pinctrl soc:pin-controller: GPIOK bank added [ 0.776730] stm32f429-pinctrl soc:pin-controller: Pinctrl STM32 initialized [ 0.997446] stm32-dma 40026000.dma-controller: STM32 DMA driver registered [ 1.029604] stm32-dma 40026400.dma-controller: STM32 DMA driver registered [ 1.043098] clocksource: Switched to clocksource timer@40000c00 [ 1.358086] workingset: timestamp_bits=30 max_order=11 bucket_order=0 [ 1.632751] io scheduler mq-deadline registered [ 1.634287] io scheduler kyber registered [ 1.650574] STM32 USART driver initialized [ 1.661272] 40011000.serial: ttySTM0 at MMIO 0x40011000 (irq = 34, base_baud = 5625000)t [ 2.603317] random: fast init done [ 2.637564] printk: console [ttySTM0] enabled [ 2.747984] panel-ilitek-ili9341 spi0.1: get optional vcc failed [ 2.758986] spi_stm32 40015000.spi: driver initialized [ 2.795733] i2c /dev entries driver [ 2.849955] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 [ 2.922030] stmpe-ts stmpe-ts: DMA mask not set [ 2.965729] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts0 [ 2.991570] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered [ 3.058262] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on min0 [ 3.665951] panel-ilitek-ili9341 spi0.1: initialized display rgb interface [ 3.765208] Console: switching to colour frame buffer device 30x40 [ 4.014269] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffere [ 4.212737] Freeing unused kernel memory: 324K [ 4.287300] This architecture does not have kernel memory protection. [ 4.401202] Run /linuxrc as init process [ 4.478622] with arguments: [ 4.555069] /linuxrc [ 4.595406] with environment: [ 4.672213] HOME=/ [ 4.712511] TERM=linux [ 206.785289] random: crng init done > > If possible, you can try my suggestion. > - tar -jxf stm32_rootfs.tar.bz2 > - add stm32_rootfs to your kernel config( enable initramfs) As explained above, that's what i did > - make O=YOUR_KERNEL_OUT zImage dtbs LOADADDR=0x90008000 > - create itb file (combine dtb and kernel, initramfs) by mkimage > ./mkimage -f stm32.its stm32.itb I didn't use .itb file, but directly uImage loaded @0x90406000 and stm32f429-disco.dtb loaded @0x90400000 How do you generate .its file ? > (before above command, make sure you correct stm32.its adapt to your env) > > This process will make u-boot to load the kernel more simple. > > Thanks. > > Best Regards. > Dillon > > >> >> >> I can't test your I2C patch. >> >> Patrice >> >> >>> -- setup ts_calibrate running env on stm32f429-disco >>> / # export TSLIB_CONFFILE=/etc/ts.conf >>> / # export TSLIB_TSDEVICE=/dev/input/event0 >>> / # export TSLIB_CONSOLEDEVICE=none >>> / # export TSLIB_FBDEVICE=/dev/fb0 >>> >>> -- clear screen >>> / # ./fb >>> >>> -- run ts_calibrate >>> / # ts_calibrate >>> (you can calibrate touchscreen now, and get below errors) >>> >>> [ 113.942087] stmpe-i2c0-0041: failed to read regs 0x52: -110 >>> [ 114.063598] stmpe-i2c 0-0041: failed to read reg 0x4b: -16 >>> [ 114.185629] stmpe-i2c 0-0041: failed to read reg 0x40: -16 >>> [ 114.307257] stmpe-i2c 0-0041: failed to write reg 0xb: -16 >>> >>> ... >>> with i2c patch applied, you will find below logs: >>> >>> RAW---------------------> 3164 908 183 118.110884 >>> TS_READ_RAW----> x = 3164, y =908, pressure = 183 >>> RAW---------------------> 3166 922 126 118.138946 >>> TS_READ_RAW----> x = 3166, y = 922, pressure = 126 >>> .... >>> >>> files link: >>> https://drive.google.com/drive/folders/1qNbjChcB6UGtKzne2F5x9_WG_sZFyo3o?usp=sharing >>> >>> >>> >>> >>> Dillon Min (4): >>> drm/panel: Add ilitek ili9341 panel driver >>> i2c: stm32f4: Fix stmpe811 get xyz data timeout issue >>> clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate >>> clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after >>> kernel startup >>> >>> drivers/clk/clk-stm32f4.c | 10 +- >>> drivers/gpu/drm/panel/Kconfig | 12 + >>> drivers/gpu/drm/panel/Makefile | 1 + >>> drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 1285 ++++++++++++++++++++++++++ >>> drivers/i2c/busses/i2c-stm32f4.c | 12 +- >>> 5 files changed, 1310 insertions(+), 10 deletions(-) >>> create mode 100755 drivers/gpu/drm/panel/panel-ilitek-ili9341.c >>>
Hi Patrice On Mon, May 31, 2021 at 9:51 PM Patrice CHOTARD <patrice.chotard@foss.st.com> wrote: > > > > On 5/31/21 3:38 PM, Dillon Min wrote: > > Hi Patrice > > > > Thanks for your time to test my patch. > > > > On Mon, May 31, 2021 at 9:20 PM Patrice CHOTARD > > <patrice.chotard@foss.st.com> wrote: > >> > >> Hi Dillon > >> > >> > >> > >> On 5/14/21 1:02 PM, dillon.minfei@gmail.com wrote: > >>> From: Dillon Min <dillon.minfei@gmail.com> > >>> > >>> This seriese fix three i2c/clk bug for stm32 f4/f7 > >>> - kernel runing in sdram, i2c driver get data timeout > >>> - ltdc clk turn off after kernel console active > >>> - kernel hang in set ltdc clock rate > >>> > >>> clk bug found on stm32f429/f469-disco board > >>> > >>> Hi Patrice: > >>> below is the guide to verify the patch: > >>> > >>> setup test env with following files(link at below 'files link'): > >>> [1] u-boot-dtb.bin > >>> [2] rootfs zip file (used in kernel initramfs) > >>> [3] u-boot's mkimage to create itb file > >>> [4] kernel config file > >>> [5] my itb with-or-without i2c patch > >>> > >>> This patch based on kernel commit: > >>> 88b06399c9c766c283e070b022b5ceafa4f63f19 > >>> > >>> Note: > >>> panel-ilitek-ili9341.c is the driver which was submitted last year, but not > >>> get accepted. it's used to setup touch screen calibration, then test i2c. > >>> > >>> create itb file(please correct path of 'data'): > >>> ./mkimage -f stm32.its stm32.itb > >>> > >>> HW setup: > >>> console: > >>> PA9, PA10 > >>> usart0 > >>> serial@40011000 > >>> 115200 8n1 > >>> > >>> -- flash u-boot.bin to stm32f429-disco on PC > >>> $ sudo openocd -f board/stm32f429discovery.cfg -c \ > >>> '{PATH-TO-YOUR-UBOOT}/u-boot-dtb.bin 0x08000000 exit reset' > >>> > >>> -- setup kernel load bootargs at u-boot > >>> U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 > >>> root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' > >>> U-Boot > loady;bootm > >>> (download stm32.dtb or your kernel with itb format, or download zImage, dtb) > >>> > >> > >> > >> Thanks for these informations > >> I was able to load and boot DTB and uImage directly in SDRAM as you suggested, > >> i saw Linux logo and kernel log on the STM32F429-disco display, > >> but i can't reach the login. > >> > >> The last kernel log i got is : > >> > >> Starting kernel ... > >> > >> [ 0.000000] Booting Linux on physical CPU 0x0 > >> [ 0.000000] Linux version 5.13.0-rc1-00082-g9dbbd5cb6240-dirty (nxp11987@lmecxl0573.lme1 > >> [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 > >> [ 0.000000] CPU: unknown data cache, unknown instruction cache > >> [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board > >> [ 0.000000] Zone ranges: > >> [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] > >> [ 0.000000] Movable zone start for each node > >> [ 0.000000] Early memory node ranges > >> > >> [...] > >> > >> [ 2.637564] printk: console [ttySTM0] enabled > >> [ 2.747984] panel-ilitek-ili9341 spi0.1: get optional vcc failed > >> [ 2.758986] spi_stm32 40015000.spi: driver initialized > >> [ 2.795733] i2c /dev entries driver > >> [ 2.849955] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 > >> [ 2.922030] stmpe-ts stmpe-ts: DMA mask not set > >> [ 2.965729] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts0 > >> [ 2.991570] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered > >> [ 3.058262] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on min0 > >> [ 3.665951] panel-ilitek-ili9341 spi0.1: initialized display rgb interface > >> [ 3.765208] Console: switching to colour frame buffer device 30x40 > >> [ 4.014269] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffere > >> [ 4.212737] Freeing unused kernel memory: 324K > >> [ 4.287300] This architecture does not have kernel memory protection. > >> [ 4.401202] Run /linuxrc as init process > >> [ 4.478622] with arguments: > >> [ 4.555069] /linuxrc > >> [ 4.595406] with environment: > >> [ 4.672213] HOME=/ > >> [ 4.712511] TERM=linux > >> [ 206.785289] random: crng init done > > > > I guess you didn't add the rootfs to uImage I sent you. > > I do use your rootfs > > > Could you post all the logs from u-boot startup to kernel log end. > > > U-Boot 2021.07-rc2 (May 28 2021 - 17:05:35 +0200) > > DRAM: 8 MiB > Flash: 2 MiB > Loading Environment from Flash... OK > In: serial@40011000 > Out: serial@40011000 > Err: serial@40011000 > Hit any key to stop autoboot: 0 > U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 root=/dev/ram rdinit=/lin' It seems bootargs are broken here. should be setenv bootargs 'console=tty0 console=ttySTM0,115200 root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' > U-Boot > > U-Boot > > U-Boot > setenv loadaddr 0x90400000 > U-Boot > loady > ## Ready for binary (ymodem) download to 0x90400000 at 115200 bps... > CxyzModem - CRC mode, 156(SOH)/0(STX)/0(CAN) packets, 7 retries > ## Total Size = 0x00004cad = 19629 Bytes > U-Boot > setenv loadaddr 0x90406000 > U-Boot > loady > ## Ready for binary (ymodem) download to 0x90406000 at 115200 bps... > C- CRC mode, 12453(SOH)/0(STX)/0(CAN) packets, 4 retries > ## Total Size = 0x00185140 = 1593664 Bytes > U-Boot > bootm 0x90406000 - 0x90400000 > ## Booting kernel from Legacy Image at 90406000 ... > Image Name: Linux-5.13.0-rc1-00082-g9dbbd5cb > Image Type: ARM Linux Kernel Image (uncompressed) > Data Size: 1593600 Bytes = 1.5 MiB > Load Address: 90008000 > Entry Point: 90008000 > Verifying Checksum ... OK > ## Flattened Device Tree blob at 90400000 > Booting using the fdt blob at 0x90400000 > Loading Kernel Image > Loading Device Tree to 905b9000, end 905c0cac ... OK > > Starting kernel ... > > [ 0.000000] Booting Linux on physical CPU 0x0 > [ 0.000000] Linux version 5.13.0-rc1-00082-g9dbbd5cb6240-dirty (nxp11987@lmecxl0573.lme1 > [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 > [ 0.000000] CPU: unknown data cache, unknown instruction cache > [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board > [ 0.000000] Zone ranges: > [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] > [ 0.000000] Movable zone start for each node > [ 0.000000] Early memory node ranges > [ 0.000000] node 0: [mem 0x0000000090000000-0x00000000907fffff] > [ 0.000000] Initmem setup node 0 [mem 0x0000000090000000-0x00000000907fffff] > [ 0.000000] On node 0 totalpages: 2048 > [ 0.000000] Normal zone: 16 pages used for memmap > [ 0.000000] Normal zone: 0 pages reserved > [ 0.000000] Normal zone: 2048 pages, LIFO batch:0 > [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 > [ 0.000000] pcpu-alloc: [0] 0 > [ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2032 > [ 0.000000] Kernel command line: console=tty0 console=ttySTM0,115200 root=/dev/ram rdin2 ditto > [ 0.000000] Dentry cache hash table entries: 1024 (order: 0, 4096 bytes, linear) > [ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) > [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off > [ 0.000000] Memory: 5264K/8192K available (1372K kernel code, 302K rwdata, 516K rodata,) > [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 > [ 0.000000] rcu: Preemptible hierarchical RCU implementation. > [ 0.000000] rcu: RCU event tracing is enabled. > [ 0.000000] Trampoline variant of Tasks RCU enabled. > [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. > [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 > [ 0.000000] /soc/interrupt-controller@40013c00: bank0 > [ 0.000000] random: get_random_bytes called from start_kernel+0x203/0x370 with crng_ini0 > [ 0.000000] clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idls > [ 0.000000] ARM System timer initialized as clocksource > [ 0.000026] sched_clock: 32 bits at 90MHz, resolution 11ns, wraps every 23860929530ns > [ 0.000665] timer@40000c00: STM32 sched_clock registered > [ 0.001275] Switching to timer-based delay loop, resolution 11ns > [ 0.001712] timer@40000c00: STM32 delay timer registered > [ 0.002253] clocksource: timer@40000c00: mask: 0xffffffff max_cycles: 0xffffffff, max_is > [ 0.003076] /soc/timer@40000c00: STM32 clockevent driver initialized (32 bits) > [ 0.014135] Console: colour dummy device 80x30 > [ 0.062375] printk: console [tty0] enabled > [ 0.063843] Calibrating delay loop (skipped), value calculated using timer frequency.. ) > [ 0.066453] pid_max: default: 4096 minimum: 301 > [ 0.071393] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) > [ 0.073734] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) > [ 0.104759] rcu: Hierarchical SRCU implementation. > [ 0.111552] devtmpfs: initialized > [ 0.339332] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns:s > [ 0.341835] pinctrl core: initialized pinctrl subsystem > [ 0.658423] stm32f429-pinctrl soc:pin-controller: No package detected, use default one > [ 0.680505] stm32f429-pinctrl soc:pin-controller: GPIOA bank added > [ 0.689824] stm32f429-pinctrl soc:pin-controller: GPIOB bank added > [ 0.699409] stm32f429-pinctrl soc:pin-controller: GPIOC bank added > [ 0.708775] stm32f429-pinctrl soc:pin-controller: GPIOD bank added > [ 0.718094] stm32f429-pinctrl soc:pin-controller: GPIOE bank added > [ 0.727535] stm32f429-pinctrl soc:pin-controller: GPIOF bank added > [ 0.736953] stm32f429-pinctrl soc:pin-controller: GPIOG bank added > [ 0.746404] stm32f429-pinctrl soc:pin-controller: GPIOH bank added > [ 0.756098] stm32f429-pinctrl soc:pin-controller: GPIOI bank added > [ 0.765436] stm32f429-pinctrl soc:pin-controller: GPIOJ bank added > [ 0.774870] stm32f429-pinctrl soc:pin-controller: GPIOK bank added > [ 0.776730] stm32f429-pinctrl soc:pin-controller: Pinctrl STM32 initialized > [ 0.997446] stm32-dma 40026000.dma-controller: STM32 DMA driver registered > [ 1.029604] stm32-dma 40026400.dma-controller: STM32 DMA driver registered > [ 1.043098] clocksource: Switched to clocksource timer@40000c00 > [ 1.358086] workingset: timestamp_bits=30 max_order=11 bucket_order=0 > [ 1.632751] io scheduler mq-deadline registered > [ 1.634287] io scheduler kyber registered > [ 1.650574] STM32 USART driver initialized > [ 1.661272] 40011000.serial: ttySTM0 at MMIO 0x40011000 (irq = 34, base_baud = 5625000)t > [ 2.603317] random: fast init done > [ 2.637564] printk: console [ttySTM0] enabled > [ 2.747984] panel-ilitek-ili9341 spi0.1: get optional vcc failed > [ 2.758986] spi_stm32 40015000.spi: driver initialized > [ 2.795733] i2c /dev entries driver > [ 2.849955] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 > [ 2.922030] stmpe-ts stmpe-ts: DMA mask not set > [ 2.965729] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts0 > [ 2.991570] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered > [ 3.058262] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on min0 > [ 3.665951] panel-ilitek-ili9341 spi0.1: initialized display rgb interface > [ 3.765208] Console: switching to colour frame buffer device 30x40 > [ 4.014269] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffere > [ 4.212737] Freeing unused kernel memory: 324K > [ 4.287300] This architecture does not have kernel memory protection. > [ 4.401202] Run /linuxrc as init process > [ 4.478622] with arguments: > [ 4.555069] /linuxrc > [ 4.595406] with environment: > [ 4.672213] HOME=/ > [ 4.712511] TERM=linux > [ 206.785289] random: crng init done > > > > > > If possible, you can try my suggestion. > > - tar -jxf stm32_rootfs.tar.bz2 > > - add stm32_rootfs to your kernel config( enable initramfs) > > As explained above, that's what i did > > > - make O=YOUR_KERNEL_OUT zImage dtbs LOADADDR=0x90008000 > > > > > - create itb file (combine dtb and kernel, initramfs) by mkimage > > ./mkimage -f stm32.its stm32.itb > > I didn't use .itb file, but directly uImage loaded @0x90406000 and stm32f429-disco.dtb loaded @0x90400000 It's fine with manual load dtb and uImage. > > How do you generate .its file ? I refer to u-boot doc , U-BOOT-SOURCE/doc/uImage.FIT/kernel.its you can just change the PATH('data = ' filed) of my stm32.its. you can correct bootargs in u-boot, try again good luck. Thanks Best Regards Dillon > > > > (before above command, make sure you correct stm32.its adapt to your env) > > > > This process will make u-boot to load the kernel more simple. > > > > Thanks. > > > > Best Regards. > > Dillon > > > > > >> > >> > >> I can't test your I2C patch. > >> > >> Patrice > >> > >> > >>> -- setup ts_calibrate running env on stm32f429-disco > >>> / # export TSLIB_CONFFILE=/etc/ts.conf > >>> / # export TSLIB_TSDEVICE=/dev/input/event0 > >>> / # export TSLIB_CONSOLEDEVICE=none > >>> / # export TSLIB_FBDEVICE=/dev/fb0 > >>> > >>> -- clear screen > >>> / # ./fb > >>> > >>> -- run ts_calibrate > >>> / # ts_calibrate > >>> (you can calibrate touchscreen now, and get below errors) > >>> > >>> [ 113.942087] stmpe-i2c0-0041: failed to read regs 0x52: -110 > >>> [ 114.063598] stmpe-i2c 0-0041: failed to read reg 0x4b: -16 > >>> [ 114.185629] stmpe-i2c 0-0041: failed to read reg 0x40: -16 > >>> [ 114.307257] stmpe-i2c 0-0041: failed to write reg 0xb: -16 > >>> > >>> ... > >>> with i2c patch applied, you will find below logs: > >>> > >>> RAW---------------------> 3164 908 183 118.110884 > >>> TS_READ_RAW----> x = 3164, y =908, pressure = 183 > >>> RAW---------------------> 3166 922 126 118.138946 > >>> TS_READ_RAW----> x = 3166, y = 922, pressure = 126 > >>> .... > >>> > >>> files link: > >>> https://drive.google.com/drive/folders/1qNbjChcB6UGtKzne2F5x9_WG_sZFyo3o?usp=sharing > >>> > >>> > >>> > >>> > >>> Dillon Min (4): > >>> drm/panel: Add ilitek ili9341 panel driver > >>> i2c: stm32f4: Fix stmpe811 get xyz data timeout issue > >>> clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate > >>> clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after > >>> kernel startup > >>> > >>> drivers/clk/clk-stm32f4.c | 10 +- > >>> drivers/gpu/drm/panel/Kconfig | 12 + > >>> drivers/gpu/drm/panel/Makefile | 1 + > >>> drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 1285 ++++++++++++++++++++++++++ > >>> drivers/i2c/busses/i2c-stm32f4.c | 12 +- > >>> 5 files changed, 1310 insertions(+), 10 deletions(-) > >>> create mode 100755 drivers/gpu/drm/panel/panel-ilitek-ili9341.c > >>>
Hi Dillon On 5/31/21 4:29 PM, Dillon Min wrote: > Hi Patrice > > On Mon, May 31, 2021 at 9:51 PM Patrice CHOTARD > <patrice.chotard@foss.st.com> wrote: >> >> >> >> On 5/31/21 3:38 PM, Dillon Min wrote: >>> Hi Patrice >>> >>> Thanks for your time to test my patch. >>> >>> On Mon, May 31, 2021 at 9:20 PM Patrice CHOTARD >>> <patrice.chotard@foss.st.com> wrote: >>>> >>>> Hi Dillon >>>> >>>> >>>> >>>> On 5/14/21 1:02 PM, dillon.minfei@gmail.com wrote: >>>>> From: Dillon Min <dillon.minfei@gmail.com> >>>>> >>>>> This seriese fix three i2c/clk bug for stm32 f4/f7 >>>>> - kernel runing in sdram, i2c driver get data timeout >>>>> - ltdc clk turn off after kernel console active >>>>> - kernel hang in set ltdc clock rate >>>>> >>>>> clk bug found on stm32f429/f469-disco board >>>>> >>>>> Hi Patrice: >>>>> below is the guide to verify the patch: >>>>> >>>>> setup test env with following files(link at below 'files link'): >>>>> [1] u-boot-dtb.bin >>>>> [2] rootfs zip file (used in kernel initramfs) >>>>> [3] u-boot's mkimage to create itb file >>>>> [4] kernel config file >>>>> [5] my itb with-or-without i2c patch >>>>> >>>>> This patch based on kernel commit: >>>>> 88b06399c9c766c283e070b022b5ceafa4f63f19 >>>>> >>>>> Note: >>>>> panel-ilitek-ili9341.c is the driver which was submitted last year, but not >>>>> get accepted. it's used to setup touch screen calibration, then test i2c. >>>>> >>>>> create itb file(please correct path of 'data'): >>>>> ./mkimage -f stm32.its stm32.itb >>>>> >>>>> HW setup: >>>>> console: >>>>> PA9, PA10 >>>>> usart0 >>>>> serial@40011000 >>>>> 115200 8n1 >>>>> >>>>> -- flash u-boot.bin to stm32f429-disco on PC >>>>> $ sudo openocd -f board/stm32f429discovery.cfg -c \ >>>>> '{PATH-TO-YOUR-UBOOT}/u-boot-dtb.bin 0x08000000 exit reset' >>>>> >>>>> -- setup kernel load bootargs at u-boot >>>>> U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 >>>>> root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' >>>>> U-Boot > loady;bootm >>>>> (download stm32.dtb or your kernel with itb format, or download zImage, dtb) >>>>> >>>> >>>> >>>> Thanks for these informations >>>> I was able to load and boot DTB and uImage directly in SDRAM as you suggested, >>>> i saw Linux logo and kernel log on the STM32F429-disco display, >>>> but i can't reach the login. >>>> >>>> The last kernel log i got is : >>>> >>>> Starting kernel ... >>>> >>>> [ 0.000000] Booting Linux on physical CPU 0x0 >>>> [ 0.000000] Linux version 5.13.0-rc1-00082-g9dbbd5cb6240-dirty (nxp11987@lmecxl0573.lme1 >>>> [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 >>>> [ 0.000000] CPU: unknown data cache, unknown instruction cache >>>> [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board >>>> [ 0.000000] Zone ranges: >>>> [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] >>>> [ 0.000000] Movable zone start for each node >>>> [ 0.000000] Early memory node ranges >>>> >>>> [...] >>>> >>>> [ 2.637564] printk: console [ttySTM0] enabled >>>> [ 2.747984] panel-ilitek-ili9341 spi0.1: get optional vcc failed >>>> [ 2.758986] spi_stm32 40015000.spi: driver initialized >>>> [ 2.795733] i2c /dev entries driver >>>> [ 2.849955] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 >>>> [ 2.922030] stmpe-ts stmpe-ts: DMA mask not set >>>> [ 2.965729] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts0 >>>> [ 2.991570] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered >>>> [ 3.058262] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on min0 >>>> [ 3.665951] panel-ilitek-ili9341 spi0.1: initialized display rgb interface >>>> [ 3.765208] Console: switching to colour frame buffer device 30x40 >>>> [ 4.014269] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffere >>>> [ 4.212737] Freeing unused kernel memory: 324K >>>> [ 4.287300] This architecture does not have kernel memory protection. >>>> [ 4.401202] Run /linuxrc as init process >>>> [ 4.478622] with arguments: >>>> [ 4.555069] /linuxrc >>>> [ 4.595406] with environment: >>>> [ 4.672213] HOME=/ >>>> [ 4.712511] TERM=linux >>>> [ 206.785289] random: crng init done >>> >>> I guess you didn't add the rootfs to uImage I sent you. >> >> I do use your rootfs >> >>> Could you post all the logs from u-boot startup to kernel log end. >> >> >> U-Boot 2021.07-rc2 (May 28 2021 - 17:05:35 +0200) >> >> DRAM: 8 MiB >> Flash: 2 MiB >> Loading Environment from Flash... OK >> In: serial@40011000 >> Out: serial@40011000 >> Err: serial@40011000 >> Hit any key to stop autoboot: 0 >> U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 root=/dev/ram rdinit=/lin' > > It seems bootargs are broken here. > should be setenv bootargs 'console=tty0 console=ttySTM0,115200 > root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' It's just a copy/paste issue from my minicom window to my mailer, but the bootargs is correct ;-) See a correct U-boot/kernel log in attached. > >> U-Boot > >> U-Boot > >> U-Boot > setenv loadaddr 0x90400000 >> U-Boot > loady >> ## Ready for binary (ymodem) download to 0x90400000 at 115200 bps... >> CxyzModem - CRC mode, 156(SOH)/0(STX)/0(CAN) packets, 7 retries >> ## Total Size = 0x00004cad = 19629 Bytes >> U-Boot > setenv loadaddr 0x90406000 >> U-Boot > loady >> ## Ready for binary (ymodem) download to 0x90406000 at 115200 bps... >> C- CRC mode, 12453(SOH)/0(STX)/0(CAN) packets, 4 retries >> ## Total Size = 0x00185140 = 1593664 Bytes >> U-Boot > bootm 0x90406000 - 0x90400000 >> ## Booting kernel from Legacy Image at 90406000 ... >> Image Name: Linux-5.13.0-rc1-00082-g9dbbd5cb >> Image Type: ARM Linux Kernel Image (uncompressed) >> Data Size: 1593600 Bytes = 1.5 MiB >> Load Address: 90008000 >> Entry Point: 90008000 >> Verifying Checksum ... OK >> ## Flattened Device Tree blob at 90400000 >> Booting using the fdt blob at 0x90400000 >> Loading Kernel Image >> Loading Device Tree to 905b9000, end 905c0cac ... OK >> >> Starting kernel ... >> >> [ 0.000000] Booting Linux on physical CPU 0x0 >> [ 0.000000] Linux version 5.13.0-rc1-00082-g9dbbd5cb6240-dirty (nxp11987@lmecxl0573.lme1 >> [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 >> [ 0.000000] CPU: unknown data cache, unknown instruction cache >> [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board >> [ 0.000000] Zone ranges: >> [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] >> [ 0.000000] Movable zone start for each node >> [ 0.000000] Early memory node ranges >> [ 0.000000] node 0: [mem 0x0000000090000000-0x00000000907fffff] >> [ 0.000000] Initmem setup node 0 [mem 0x0000000090000000-0x00000000907fffff] >> [ 0.000000] On node 0 totalpages: 2048 >> [ 0.000000] Normal zone: 16 pages used for memmap >> [ 0.000000] Normal zone: 0 pages reserved >> [ 0.000000] Normal zone: 2048 pages, LIFO batch:0 >> [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 >> [ 0.000000] pcpu-alloc: [0] 0 >> [ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2032 >> [ 0.000000] Kernel command line: console=tty0 console=ttySTM0,115200 root=/dev/ram rdin2 > > ditto same explanation as above, the command line displayed is truncated, but it is the one expected. > >> [ 0.000000] Dentry cache hash table entries: 1024 (order: 0, 4096 bytes, linear) >> [ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) >> [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off >> [ 0.000000] Memory: 5264K/8192K available (1372K kernel code, 302K rwdata, 516K rodata,) >> [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 >> [ 0.000000] rcu: Preemptible hierarchical RCU implementation. >> [ 0.000000] rcu: RCU event tracing is enabled. >> [ 0.000000] Trampoline variant of Tasks RCU enabled. >> [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. >> [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 >> [ 0.000000] /soc/interrupt-controller@40013c00: bank0 >> [ 0.000000] random: get_random_bytes called from start_kernel+0x203/0x370 with crng_ini0 >> [ 0.000000] clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idls >> [ 0.000000] ARM System timer initialized as clocksource >> [ 0.000026] sched_clock: 32 bits at 90MHz, resolution 11ns, wraps every 23860929530ns >> [ 0.000665] timer@40000c00: STM32 sched_clock registered >> [ 0.001275] Switching to timer-based delay loop, resolution 11ns >> [ 0.001712] timer@40000c00: STM32 delay timer registered >> [ 0.002253] clocksource: timer@40000c00: mask: 0xffffffff max_cycles: 0xffffffff, max_is >> [ 0.003076] /soc/timer@40000c00: STM32 clockevent driver initialized (32 bits) >> [ 0.014135] Console: colour dummy device 80x30 >> [ 0.062375] printk: console [tty0] enabled >> [ 0.063843] Calibrating delay loop (skipped), value calculated using timer frequency.. ) >> [ 0.066453] pid_max: default: 4096 minimum: 301 >> [ 0.071393] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) >> [ 0.073734] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) >> [ 0.104759] rcu: Hierarchical SRCU implementation. >> [ 0.111552] devtmpfs: initialized >> [ 0.339332] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns:s >> [ 0.341835] pinctrl core: initialized pinctrl subsystem >> [ 0.658423] stm32f429-pinctrl soc:pin-controller: No package detected, use default one >> [ 0.680505] stm32f429-pinctrl soc:pin-controller: GPIOA bank added >> [ 0.689824] stm32f429-pinctrl soc:pin-controller: GPIOB bank added >> [ 0.699409] stm32f429-pinctrl soc:pin-controller: GPIOC bank added >> [ 0.708775] stm32f429-pinctrl soc:pin-controller: GPIOD bank added >> [ 0.718094] stm32f429-pinctrl soc:pin-controller: GPIOE bank added >> [ 0.727535] stm32f429-pinctrl soc:pin-controller: GPIOF bank added >> [ 0.736953] stm32f429-pinctrl soc:pin-controller: GPIOG bank added >> [ 0.746404] stm32f429-pinctrl soc:pin-controller: GPIOH bank added >> [ 0.756098] stm32f429-pinctrl soc:pin-controller: GPIOI bank added >> [ 0.765436] stm32f429-pinctrl soc:pin-controller: GPIOJ bank added >> [ 0.774870] stm32f429-pinctrl soc:pin-controller: GPIOK bank added >> [ 0.776730] stm32f429-pinctrl soc:pin-controller: Pinctrl STM32 initialized >> [ 0.997446] stm32-dma 40026000.dma-controller: STM32 DMA driver registered >> [ 1.029604] stm32-dma 40026400.dma-controller: STM32 DMA driver registered >> [ 1.043098] clocksource: Switched to clocksource timer@40000c00 >> [ 1.358086] workingset: timestamp_bits=30 max_order=11 bucket_order=0 >> [ 1.632751] io scheduler mq-deadline registered >> [ 1.634287] io scheduler kyber registered >> [ 1.650574] STM32 USART driver initialized >> [ 1.661272] 40011000.serial: ttySTM0 at MMIO 0x40011000 (irq = 34, base_baud = 5625000)t >> [ 2.603317] random: fast init done >> [ 2.637564] printk: console [ttySTM0] enabled >> [ 2.747984] panel-ilitek-ili9341 spi0.1: get optional vcc failed >> [ 2.758986] spi_stm32 40015000.spi: driver initialized >> [ 2.795733] i2c /dev entries driver >> [ 2.849955] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 >> [ 2.922030] stmpe-ts stmpe-ts: DMA mask not set >> [ 2.965729] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts0 >> [ 2.991570] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered >> [ 3.058262] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on min0 >> [ 3.665951] panel-ilitek-ili9341 spi0.1: initialized display rgb interface >> [ 3.765208] Console: switching to colour frame buffer device 30x40 >> [ 4.014269] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffere >> [ 4.212737] Freeing unused kernel memory: 324K >> [ 4.287300] This architecture does not have kernel memory protection. >> [ 4.401202] Run /linuxrc as init process >> [ 4.478622] with arguments: >> [ 4.555069] /linuxrc >> [ 4.595406] with environment: >> [ 4.672213] HOME=/ >> [ 4.712511] TERM=linux >> [ 206.785289] random: crng init done >> >> >>> >>> If possible, you can try my suggestion. >>> - tar -jxf stm32_rootfs.tar.bz2 >>> - add stm32_rootfs to your kernel config( enable initramfs) >> >> As explained above, that's what i did >> >>> - make O=YOUR_KERNEL_OUT zImage dtbs LOADADDR=0x90008000 >> >> >> >>> - create itb file (combine dtb and kernel, initramfs) by mkimage >>> ./mkimage -f stm32.its stm32.itb >> >> I didn't use .itb file, but directly uImage loaded @0x90406000 and stm32f429-disco.dtb loaded @0x90400000 > > It's fine with manual load dtb and uImage. > >> >> How do you generate .its file ? > > I refer to u-boot doc , U-BOOT-SOURCE/doc/uImage.FIT/kernel.its > you can just change the PATH('data = ' filed) of my stm32.its. > you can correct bootargs in u-boot, try again > > good luck. > > Thanks > > Best Regards > Dillon > >> >> >>> (before above command, make sure you correct stm32.its adapt to your env) >>> >>> This process will make u-boot to load the kernel more simple. >>> >>> Thanks. >>> >>> Best Regards. >>> Dillon >>> >>> >>>> >>>> >>>> I can't test your I2C patch. >>>> >>>> Patrice >>>> >>>> >>>>> -- setup ts_calibrate running env on stm32f429-disco >>>>> / # export TSLIB_CONFFILE=/etc/ts.conf >>>>> / # export TSLIB_TSDEVICE=/dev/input/event0 >>>>> / # export TSLIB_CONSOLEDEVICE=none >>>>> / # export TSLIB_FBDEVICE=/dev/fb0 >>>>> >>>>> -- clear screen >>>>> / # ./fb >>>>> >>>>> -- run ts_calibrate >>>>> / # ts_calibrate >>>>> (you can calibrate touchscreen now, and get below errors) >>>>> >>>>> [ 113.942087] stmpe-i2c0-0041: failed to read regs 0x52: -110 >>>>> [ 114.063598] stmpe-i2c 0-0041: failed to read reg 0x4b: -16 >>>>> [ 114.185629] stmpe-i2c 0-0041: failed to read reg 0x40: -16 >>>>> [ 114.307257] stmpe-i2c 0-0041: failed to write reg 0xb: -16 >>>>> >>>>> ... >>>>> with i2c patch applied, you will find below logs: >>>>> >>>>> RAW---------------------> 3164 908 183 118.110884 >>>>> TS_READ_RAW----> x = 3164, y =908, pressure = 183 >>>>> RAW---------------------> 3166 922 126 118.138946 >>>>> TS_READ_RAW----> x = 3166, y = 922, pressure = 126 >>>>> .... >>>>> >>>>> files link: >>>>> https://drive.google.com/drive/folders/1qNbjChcB6UGtKzne2F5x9_WG_sZFyo3o?usp=sharing >>>>> >>>>> >>>>> >>>>> >>>>> Dillon Min (4): >>>>> drm/panel: Add ilitek ili9341 panel driver >>>>> i2c: stm32f4: Fix stmpe811 get xyz data timeout issue >>>>> clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate >>>>> clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after >>>>> kernel startup >>>>> >>>>> drivers/clk/clk-stm32f4.c | 10 +- >>>>> drivers/gpu/drm/panel/Kconfig | 12 + >>>>> drivers/gpu/drm/panel/Makefile | 1 + >>>>> drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 1285 ++++++++++++++++++++++++++ >>>>> drivers/i2c/busses/i2c-stm32f4.c | 12 +- >>>>> 5 files changed, 1310 insertions(+), 10 deletions(-) >>>>> create mode 100755 drivers/gpu/drm/panel/panel-ilitek-ili9341.c >>>>> U-Boot 2021.07-rc2 (May 28 2021 - 17:05:35 +0200) DRAM: 8 MiB Flash: 2 MiB Loading Environment from Flash... OK In: serial@40011000 Out: serial@40011000 Err: serial@40011000 Hit any key to stop autoboot: 0 U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' U-Boot > setenv loadaddr 0x90400000 U-Boot > loady ## Ready for binary (ymodem) download to 0x90400000 at 115200 bps... CyzModem - CRC mode, 156(SOH)/0(STX)/0(CAN) packets, 6 retries ## Total Size = 0x00004cad = 19629 Bytes U-Boot > setenv loadaddr 0x90406000 U-Boot > loady ## Ready for binary (ymodem) download to 0x90406000 at 115200 bps... CyzModem - CRC mode, 12453(SOH)/0(STX)/0(CAN) packets, 4 retries ## Total Size = 0x00185140 = 1593664 Bytes U-Boot > bootm 0x90406000 - 0x90400000 ## Booting kernel from Legacy Image at 90406000 ... Image Name: Linux-5.13.0-rc1-00082-g9dbbd5cb Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1593600 Bytes = 1.5 MiB Load Address: 90008000 Entry Point: 90008000 Verifying Checksum ... OK ## Flattened Device Tree blob at 90400000 Booting using the fdt blob at 0x90400000 Loading Kernel Image Loading Device Tree to 905b9000, end 905c0cac ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.13.0-rc1-00082-g9dbbd5cb6240-dirty (nxp11987@lmecxl0573.lme.st.com) (arm-buildroot-uclinux-uclibcgnueabi1 [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 [ 0.000000] CPU: unknown data cache, unknown instruction cache [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000090000000-0x00000000907fffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000090000000-0x00000000907fffff] [ 0.000000] On node 0 totalpages: 2048 [ 0.000000] Normal zone: 16 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 2048 pages, LIFO batch:0 [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2032 [ 0.000000] Kernel command line: console=tty0 console=ttySTM0,115200 root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2 [ 0.000000] Dentry cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] Memory: 5264K/8192K available (1372K kernel code, 302K rwdata, 516K rodata, 324K init, 119K bss, 2928K reserved, 0K cma-) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] Trampoline variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] /soc/interrupt-controller@40013c00: bank0 [ 0.000000] random: get_random_bytes called from start_kernel+0x203/0x370 with crng_init=0 [ 0.000000] clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 331816030 ns [ 0.000000] ARM System timer initialized as clocksource [ 0.000026] sched_clock: 32 bits at 90MHz, resolution 11ns, wraps every 23860929530ns [ 0.000665] timer@40000c00: STM32 sched_clock registered [ 0.001275] Switching to timer-based delay loop, resolution 11ns [ 0.001712] timer@40000c00: STM32 delay timer registered [ 0.002253] clocksource: timer@40000c00: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 21236227187 ns [ 0.003076] /soc/timer@40000c00: STM32 clockevent driver initialized (32 bits) [ 0.014135] Console: colour dummy device 80x30 [ 0.062375] printk: console [tty0] enabled [ 0.063843] Calibrating delay loop (skipped), value calculated using timer frequency.. 180.00 BogoMIPS (lpj=900000) [ 0.066453] pid_max: default: 4096 minimum: 301 [ 0.071393] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.073734] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.104759] rcu: Hierarchical SRCU implementation. [ 0.111552] devtmpfs: initialized [ 0.339332] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.341835] pinctrl core: initialized pinctrl subsystem [ 0.658423] stm32f429-pinctrl soc:pin-controller: No package detected, use default one [ 0.680505] stm32f429-pinctrl soc:pin-controller: GPIOA bank added [ 0.689824] stm32f429-pinctrl soc:pin-controller: GPIOB bank added [ 0.699409] stm32f429-pinctrl soc:pin-controller: GPIOC bank added [ 0.708775] stm32f429-pinctrl soc:pin-controller: GPIOD bank added [ 0.718094] stm32f429-pinctrl soc:pin-controller: GPIOE bank added [ 0.727535] stm32f429-pinctrl soc:pin-controller: GPIOF bank added [ 0.736953] stm32f429-pinctrl soc:pin-controller: GPIOG bank added [ 0.746404] stm32f429-pinctrl soc:pin-controller: GPIOH bank added [ 0.756098] stm32f429-pinctrl soc:pin-controller: GPIOI bank added [ 0.765436] stm32f429-pinctrl soc:pin-controller: GPIOJ bank added [ 0.774870] stm32f429-pinctrl soc:pin-controller: GPIOK bank added [ 0.776730] stm32f429-pinctrl soc:pin-controller: Pinctrl STM32 initialized [ 0.997446] stm32-dma 40026000.dma-controller: STM32 DMA driver registered [ 1.029604] stm32-dma 40026400.dma-controller: STM32 DMA driver registered [ 1.043098] clocksource: Switched to clocksource timer@40000c00 [ 1.358086] workingset: timestamp_bits=30 max_order=11 bucket_order=0 [ 1.632751] io scheduler mq-deadline registered [ 1.634287] io scheduler kyber registered [ 1.650574] STM32 USART driver initialized [ 1.661272] 40011000.serial: ttySTM0 at MMIO 0x40011000 (irq = 34, base_baud = 5625000) is a stm32-usart [ 2.603317] random: fast init done [ 2.637564] printk: console [ttySTM0] enabled [ 2.747984] panel-ilitek-ili9341 spi0.1: get optional vcc failed [ 2.758986] spi_stm32 40015000.spi: driver initialized [ 2.795733] i2c /dev entries driver [ 2.849955] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 [ 2.922030] stmpe-ts stmpe-ts: DMA mask not set [ 2.965729] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts/input/input0 [ 2.991570] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered [ 3.058262] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on minor 0 [ 3.665951] panel-ilitek-ili9341 spi0.1: initialized display rgb interface [ 3.765213] Console: switching to colour frame buffer device 30x40 [ 4.014240] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffer device [ 4.212714] Freeing unused kernel memory: 324K [ 4.287271] This architecture does not have kernel memory protection. [ 4.401197] Run /linuxrc as init process [ 4.478612] with arguments: [ 4.555066] /linuxrc [ 4.595404] with environment: [ 4.672212] HOME=/ [ 4.712511] TERM=linux [ 206.785288] random: crng init done
Hi Patrice On Mon, May 31, 2021 at 10:58 PM Patrice CHOTARD <patrice.chotard@foss.st.com> wrote: > > Hi Dillon > > On 5/31/21 4:29 PM, Dillon Min wrote: > > Hi Patrice > > > > On Mon, May 31, 2021 at 9:51 PM Patrice CHOTARD > > <patrice.chotard@foss.st.com> wrote: > >> > >> > >> > >> On 5/31/21 3:38 PM, Dillon Min wrote: > >>> Hi Patrice > >>> > >>> Thanks for your time to test my patch. > >>> > >>> On Mon, May 31, 2021 at 9:20 PM Patrice CHOTARD > >>> <patrice.chotard@foss.st.com> wrote: > >>>> > >>>> Hi Dillon > >>>> > >>>> > >>>> > >>>> On 5/14/21 1:02 PM, dillon.minfei@gmail.com wrote: > >>>>> From: Dillon Min <dillon.minfei@gmail.com> > >>>>> > >>>>> This seriese fix three i2c/clk bug for stm32 f4/f7 > >>>>> - kernel runing in sdram, i2c driver get data timeout > >>>>> - ltdc clk turn off after kernel console active > >>>>> - kernel hang in set ltdc clock rate > >>>>> > >>>>> clk bug found on stm32f429/f469-disco board > >>>>> > >>>>> Hi Patrice: > >>>>> below is the guide to verify the patch: > >>>>> > >>>>> setup test env with following files(link at below 'files link'): > >>>>> [1] u-boot-dtb.bin > >>>>> [2] rootfs zip file (used in kernel initramfs) > >>>>> [3] u-boot's mkimage to create itb file > >>>>> [4] kernel config file > >>>>> [5] my itb with-or-without i2c patch > >>>>> > >>>>> This patch based on kernel commit: > >>>>> 88b06399c9c766c283e070b022b5ceafa4f63f19 > >>>>> > >>>>> Note: > >>>>> panel-ilitek-ili9341.c is the driver which was submitted last year, but not > >>>>> get accepted. it's used to setup touch screen calibration, then test i2c. > >>>>> > >>>>> create itb file(please correct path of 'data'): > >>>>> ./mkimage -f stm32.its stm32.itb > >>>>> > >>>>> HW setup: > >>>>> console: > >>>>> PA9, PA10 > >>>>> usart0 > >>>>> serial@40011000 > >>>>> 115200 8n1 > >>>>> > >>>>> -- flash u-boot.bin to stm32f429-disco on PC > >>>>> $ sudo openocd -f board/stm32f429discovery.cfg -c \ > >>>>> '{PATH-TO-YOUR-UBOOT}/u-boot-dtb.bin 0x08000000 exit reset' > >>>>> > >>>>> -- setup kernel load bootargs at u-boot > >>>>> U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 > >>>>> root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' > >>>>> U-Boot > loady;bootm > >>>>> (download stm32.dtb or your kernel with itb format, or download zImage, dtb) > >>>>> > >>>> > >>>> > >>>> Thanks for these informations > >>>> I was able to load and boot DTB and uImage directly in SDRAM as you suggested, > >>>> i saw Linux logo and kernel log on the STM32F429-disco display, > >>>> but i can't reach the login. > >>>> > >>>> The last kernel log i got is : > >>>> > >>>> Starting kernel ... > >>>> > >>>> [ 0.000000] Booting Linux on physical CPU 0x0 > >>>> [ 0.000000] Linux version 5.13.0-rc1-00082-g9dbbd5cb6240-dirty (nxp11987@lmecxl0573.lme1 > >>>> [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 > >>>> [ 0.000000] CPU: unknown data cache, unknown instruction cache > >>>> [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board > >>>> [ 0.000000] Zone ranges: > >>>> [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] > >>>> [ 0.000000] Movable zone start for each node > >>>> [ 0.000000] Early memory node ranges > >>>> > >>>> [...] > >>>> > >>>> [ 2.637564] printk: console [ttySTM0] enabled > >>>> [ 2.747984] panel-ilitek-ili9341 spi0.1: get optional vcc failed > >>>> [ 2.758986] spi_stm32 40015000.spi: driver initialized > >>>> [ 2.795733] i2c /dev entries driver > >>>> [ 2.849955] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 > >>>> [ 2.922030] stmpe-ts stmpe-ts: DMA mask not set > >>>> [ 2.965729] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts0 > >>>> [ 2.991570] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered > >>>> [ 3.058262] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on min0 > >>>> [ 3.665951] panel-ilitek-ili9341 spi0.1: initialized display rgb interface > >>>> [ 3.765208] Console: switching to colour frame buffer device 30x40 > >>>> [ 4.014269] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffere > >>>> [ 4.212737] Freeing unused kernel memory: 324K > >>>> [ 4.287300] This architecture does not have kernel memory protection. > >>>> [ 4.401202] Run /linuxrc as init process > >>>> [ 4.478622] with arguments: > >>>> [ 4.555069] /linuxrc > >>>> [ 4.595406] with environment: > >>>> [ 4.672213] HOME=/ > >>>> [ 4.712511] TERM=linux > >>>> [ 206.785289] random: crng init done > >>> > >>> I guess you didn't add the rootfs to uImage I sent you. > >> > >> I do use your rootfs > >> > >>> Could you post all the logs from u-boot startup to kernel log end. > >> > >> > >> U-Boot 2021.07-rc2 (May 28 2021 - 17:05:35 +0200) > >> > >> DRAM: 8 MiB > >> Flash: 2 MiB > >> Loading Environment from Flash... OK > >> In: serial@40011000 > >> Out: serial@40011000 > >> Err: serial@40011000 > >> Hit any key to stop autoboot: 0 > >> U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 root=/dev/ram rdinit=/lin' > > > > It seems bootargs are broken here. > > should be setenv bootargs 'console=tty0 console=ttySTM0,115200 > > root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' > > It's just a copy/paste issue from my minicom window to my mailer, > but the bootargs is correct ;-) > > See a correct U-boot/kernel log in attached. Yes, your log is ok. I tried to follow your way(dtb + uImage) to figure out why your kernel was hanging there, but no luck. You can find my log from [1] . (since my uImage is bigger than yours, i change the loadaddr to 0x90300000, 0x90306000) but there are some points we can check: - kernel config, you can find my config in [2], could you share yours to me as well, i can based on your configs to test. - uImage size (yours 1593664 bytes is quite smaller than mine, 2072864 bytes the difference based on kernel config and rootfs size) - cross tool chain (upload my toolchain to google drive [3]) - could you add initcall_debug to your bootargs, to see more log at kernel startup [1] kernel log based on dtb + uImage https://drive.google.com/file/d/1wnA5b3B_6MIb4PWZXn-3DlBbxpi41uSA/view?usp=sharing [2] kernel config https://drive.google.com/file/d/1oOJt3NRYor3-Uzjpzrujv3uvWguxYQQp/view?usp=sharing [3] arm-none-eabi- toolchain https://drive.google.com/file/d/1Aq0sF2Gi4y4qaDPnM2S0xCOowFSLZYJm/view?usp=sharing Best Regards Dillon > > > > > >> U-Boot > > >> U-Boot > > >> U-Boot > setenv loadaddr 0x90400000 > >> U-Boot > loady > >> ## Ready for binary (ymodem) download to 0x90400000 at 115200 bps... > >> CxyzModem - CRC mode, 156(SOH)/0(STX)/0(CAN) packets, 7 retries > >> ## Total Size = 0x00004cad = 19629 Bytes > >> U-Boot > setenv loadaddr 0x90406000 > >> U-Boot > loady > >> ## Ready for binary (ymodem) download to 0x90406000 at 115200 bps... > >> C- CRC mode, 12453(SOH)/0(STX)/0(CAN) packets, 4 retries > >> ## Total Size = 0x00185140 = 1593664 Bytes > >> U-Boot > bootm 0x90406000 - 0x90400000 > >> ## Booting kernel from Legacy Image at 90406000 ... > >> Image Name: Linux-5.13.0-rc1-00082-g9dbbd5cb > >> Image Type: ARM Linux Kernel Image (uncompressed) > >> Data Size: 1593600 Bytes = 1.5 MiB > >> Load Address: 90008000 > >> Entry Point: 90008000 > >> Verifying Checksum ... OK > >> ## Flattened Device Tree blob at 90400000 > >> Booting using the fdt blob at 0x90400000 > >> Loading Kernel Image > >> Loading Device Tree to 905b9000, end 905c0cac ... OK > >> > >> Starting kernel ... > >> > >> [ 0.000000] Booting Linux on physical CPU 0x0 > >> [ 0.000000] Linux version 5.13.0-rc1-00082-g9dbbd5cb6240-dirty (nxp11987@lmecxl0573.lme1 > >> [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 > >> [ 0.000000] CPU: unknown data cache, unknown instruction cache > >> [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board > >> [ 0.000000] Zone ranges: > >> [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] > >> [ 0.000000] Movable zone start for each node > >> [ 0.000000] Early memory node ranges > >> [ 0.000000] node 0: [mem 0x0000000090000000-0x00000000907fffff] > >> [ 0.000000] Initmem setup node 0 [mem 0x0000000090000000-0x00000000907fffff] > >> [ 0.000000] On node 0 totalpages: 2048 > >> [ 0.000000] Normal zone: 16 pages used for memmap > >> [ 0.000000] Normal zone: 0 pages reserved > >> [ 0.000000] Normal zone: 2048 pages, LIFO batch:0 > >> [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 > >> [ 0.000000] pcpu-alloc: [0] 0 > >> [ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2032 > >> [ 0.000000] Kernel command line: console=tty0 console=ttySTM0,115200 root=/dev/ram rdin2 > > > > ditto > > same explanation as above, the command line displayed is truncated, but it is the one expected. > > > > > >> [ 0.000000] Dentry cache hash table entries: 1024 (order: 0, 4096 bytes, linear) > >> [ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) > >> [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off > >> [ 0.000000] Memory: 5264K/8192K available (1372K kernel code, 302K rwdata, 516K rodata,) > >> [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 > >> [ 0.000000] rcu: Preemptible hierarchical RCU implementation. > >> [ 0.000000] rcu: RCU event tracing is enabled. > >> [ 0.000000] Trampoline variant of Tasks RCU enabled. > >> [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. > >> [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 > >> [ 0.000000] /soc/interrupt-controller@40013c00: bank0 > >> [ 0.000000] random: get_random_bytes called from start_kernel+0x203/0x370 with crng_ini0 > >> [ 0.000000] clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idls > >> [ 0.000000] ARM System timer initialized as clocksource > >> [ 0.000026] sched_clock: 32 bits at 90MHz, resolution 11ns, wraps every 23860929530ns > >> [ 0.000665] timer@40000c00: STM32 sched_clock registered > >> [ 0.001275] Switching to timer-based delay loop, resolution 11ns > >> [ 0.001712] timer@40000c00: STM32 delay timer registered > >> [ 0.002253] clocksource: timer@40000c00: mask: 0xffffffff max_cycles: 0xffffffff, max_is > >> [ 0.003076] /soc/timer@40000c00: STM32 clockevent driver initialized (32 bits) > >> [ 0.014135] Console: colour dummy device 80x30 > >> [ 0.062375] printk: console [tty0] enabled > >> [ 0.063843] Calibrating delay loop (skipped), value calculated using timer frequency.. ) > >> [ 0.066453] pid_max: default: 4096 minimum: 301 > >> [ 0.071393] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) > >> [ 0.073734] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) > >> [ 0.104759] rcu: Hierarchical SRCU implementation. > >> [ 0.111552] devtmpfs: initialized > >> [ 0.339332] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns:s > >> [ 0.341835] pinctrl core: initialized pinctrl subsystem > >> [ 0.658423] stm32f429-pinctrl soc:pin-controller: No package detected, use default one > >> [ 0.680505] stm32f429-pinctrl soc:pin-controller: GPIOA bank added > >> [ 0.689824] stm32f429-pinctrl soc:pin-controller: GPIOB bank added > >> [ 0.699409] stm32f429-pinctrl soc:pin-controller: GPIOC bank added > >> [ 0.708775] stm32f429-pinctrl soc:pin-controller: GPIOD bank added > >> [ 0.718094] stm32f429-pinctrl soc:pin-controller: GPIOE bank added > >> [ 0.727535] stm32f429-pinctrl soc:pin-controller: GPIOF bank added > >> [ 0.736953] stm32f429-pinctrl soc:pin-controller: GPIOG bank added > >> [ 0.746404] stm32f429-pinctrl soc:pin-controller: GPIOH bank added > >> [ 0.756098] stm32f429-pinctrl soc:pin-controller: GPIOI bank added > >> [ 0.765436] stm32f429-pinctrl soc:pin-controller: GPIOJ bank added > >> [ 0.774870] stm32f429-pinctrl soc:pin-controller: GPIOK bank added > >> [ 0.776730] stm32f429-pinctrl soc:pin-controller: Pinctrl STM32 initialized > >> [ 0.997446] stm32-dma 40026000.dma-controller: STM32 DMA driver registered > >> [ 1.029604] stm32-dma 40026400.dma-controller: STM32 DMA driver registered > >> [ 1.043098] clocksource: Switched to clocksource timer@40000c00 > >> [ 1.358086] workingset: timestamp_bits=30 max_order=11 bucket_order=0 > >> [ 1.632751] io scheduler mq-deadline registered > >> [ 1.634287] io scheduler kyber registered > >> [ 1.650574] STM32 USART driver initialized > >> [ 1.661272] 40011000.serial: ttySTM0 at MMIO 0x40011000 (irq = 34, base_baud = 5625000)t > >> [ 2.603317] random: fast init done > >> [ 2.637564] printk: console [ttySTM0] enabled > >> [ 2.747984] panel-ilitek-ili9341 spi0.1: get optional vcc failed > >> [ 2.758986] spi_stm32 40015000.spi: driver initialized > >> [ 2.795733] i2c /dev entries driver > >> [ 2.849955] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 > >> [ 2.922030] stmpe-ts stmpe-ts: DMA mask not set > >> [ 2.965729] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts0 > >> [ 2.991570] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered > >> [ 3.058262] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on min0 > >> [ 3.665951] panel-ilitek-ili9341 spi0.1: initialized display rgb interface > >> [ 3.765208] Console: switching to colour frame buffer device 30x40 > >> [ 4.014269] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffere > >> [ 4.212737] Freeing unused kernel memory: 324K > >> [ 4.287300] This architecture does not have kernel memory protection. > >> [ 4.401202] Run /linuxrc as init process > >> [ 4.478622] with arguments: > >> [ 4.555069] /linuxrc > >> [ 4.595406] with environment: > >> [ 4.672213] HOME=/ > >> [ 4.712511] TERM=linux > >> [ 206.785289] random: crng init done > >> > >> > >>> > >>> If possible, you can try my suggestion. > >>> - tar -jxf stm32_rootfs.tar.bz2 > >>> - add stm32_rootfs to your kernel config( enable initramfs) > >> > >> As explained above, that's what i did > >> > >>> - make O=YOUR_KERNEL_OUT zImage dtbs LOADADDR=0x90008000 > >> > >> > >> > >>> - create itb file (combine dtb and kernel, initramfs) by mkimage > >>> ./mkimage -f stm32.its stm32.itb > >> > >> I didn't use .itb file, but directly uImage loaded @0x90406000 and stm32f429-disco.dtb loaded @0x90400000 > > > > It's fine with manual load dtb and uImage. > > > >> > >> How do you generate .its file ? > > > > I refer to u-boot doc , U-BOOT-SOURCE/doc/uImage.FIT/kernel.its > > you can just change the PATH('data = ' filed) of my stm32.its. > > you can correct bootargs in u-boot, try again > > > > good luck. > > > > Thanks > > > > Best Regards > > Dillon > > > >> > >> > >>> (before above command, make sure you correct stm32.its adapt to your env) > >>> > >>> This process will make u-boot to load the kernel more simple. > >>> > >>> Thanks. > >>> > >>> Best Regards. > >>> Dillon > >>> > >>> > >>>> > >>>> > >>>> I can't test your I2C patch. > >>>> > >>>> Patrice > >>>> > >>>> > >>>>> -- setup ts_calibrate running env on stm32f429-disco > >>>>> / # export TSLIB_CONFFILE=/etc/ts.conf > >>>>> / # export TSLIB_TSDEVICE=/dev/input/event0 > >>>>> / # export TSLIB_CONSOLEDEVICE=none > >>>>> / # export TSLIB_FBDEVICE=/dev/fb0 > >>>>> > >>>>> -- clear screen > >>>>> / # ./fb > >>>>> > >>>>> -- run ts_calibrate > >>>>> / # ts_calibrate > >>>>> (you can calibrate touchscreen now, and get below errors) > >>>>> > >>>>> [ 113.942087] stmpe-i2c0-0041: failed to read regs 0x52: -110 > >>>>> [ 114.063598] stmpe-i2c 0-0041: failed to read reg 0x4b: -16 > >>>>> [ 114.185629] stmpe-i2c 0-0041: failed to read reg 0x40: -16 > >>>>> [ 114.307257] stmpe-i2c 0-0041: failed to write reg 0xb: -16 > >>>>> > >>>>> ... > >>>>> with i2c patch applied, you will find below logs: > >>>>> > >>>>> RAW---------------------> 3164 908 183 118.110884 > >>>>> TS_READ_RAW----> x = 3164, y =908, pressure = 183 > >>>>> RAW---------------------> 3166 922 126 118.138946 > >>>>> TS_READ_RAW----> x = 3166, y = 922, pressure = 126 > >>>>> .... > >>>>> > >>>>> files link: > >>>>> https://drive.google.com/drive/folders/1qNbjChcB6UGtKzne2F5x9_WG_sZFyo3o?usp=sharing > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> Dillon Min (4): > >>>>> drm/panel: Add ilitek ili9341 panel driver > >>>>> i2c: stm32f4: Fix stmpe811 get xyz data timeout issue > >>>>> clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate > >>>>> clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after > >>>>> kernel startup > >>>>> > >>>>> drivers/clk/clk-stm32f4.c | 10 +- > >>>>> drivers/gpu/drm/panel/Kconfig | 12 + > >>>>> drivers/gpu/drm/panel/Makefile | 1 + > >>>>> drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 1285 ++++++++++++++++++++++++++ > >>>>> drivers/i2c/busses/i2c-stm32f4.c | 12 +- > >>>>> 5 files changed, 1310 insertions(+), 10 deletions(-) > >>>>> create mode 100755 drivers/gpu/drm/panel/panel-ilitek-ili9341.c > >>>>>
Hi Dillon On 6/1/21 5:28 AM, Dillon Min wrote: > Hi Patrice > > On Mon, May 31, 2021 at 10:58 PM Patrice CHOTARD > <patrice.chotard@foss.st.com> wrote: >> >> Hi Dillon >> >> On 5/31/21 4:29 PM, Dillon Min wrote: >>> Hi Patrice >>> >>> On Mon, May 31, 2021 at 9:51 PM Patrice CHOTARD >>> <patrice.chotard@foss.st.com> wrote: >>>> >>>> >>>> >>>> On 5/31/21 3:38 PM, Dillon Min wrote: >>>>> Hi Patrice >>>>> >>>>> Thanks for your time to test my patch. >>>>> >>>>> On Mon, May 31, 2021 at 9:20 PM Patrice CHOTARD >>>>> <patrice.chotard@foss.st.com> wrote: >>>>>> >>>>>> Hi Dillon >>>>>> >>>>>> >>>>>> >>>>>> On 5/14/21 1:02 PM, dillon.minfei@gmail.com wrote: >>>>>>> From: Dillon Min <dillon.minfei@gmail.com> >>>>>>> >>>>>>> This seriese fix three i2c/clk bug for stm32 f4/f7 >>>>>>> - kernel runing in sdram, i2c driver get data timeout >>>>>>> - ltdc clk turn off after kernel console active >>>>>>> - kernel hang in set ltdc clock rate >>>>>>> >>>>>>> clk bug found on stm32f429/f469-disco board >>>>>>> >>>>>>> Hi Patrice: >>>>>>> below is the guide to verify the patch: >>>>>>> >>>>>>> setup test env with following files(link at below 'files link'): >>>>>>> [1] u-boot-dtb.bin >>>>>>> [2] rootfs zip file (used in kernel initramfs) >>>>>>> [3] u-boot's mkimage to create itb file >>>>>>> [4] kernel config file >>>>>>> [5] my itb with-or-without i2c patch >>>>>>> >>>>>>> This patch based on kernel commit: >>>>>>> 88b06399c9c766c283e070b022b5ceafa4f63f19 >>>>>>> >>>>>>> Note: >>>>>>> panel-ilitek-ili9341.c is the driver which was submitted last year, but not >>>>>>> get accepted. it's used to setup touch screen calibration, then test i2c. >>>>>>> >>>>>>> create itb file(please correct path of 'data'): >>>>>>> ./mkimage -f stm32.its stm32.itb >>>>>>> >>>>>>> HW setup: >>>>>>> console: >>>>>>> PA9, PA10 >>>>>>> usart0 >>>>>>> serial@40011000 >>>>>>> 115200 8n1 >>>>>>> >>>>>>> -- flash u-boot.bin to stm32f429-disco on PC >>>>>>> $ sudo openocd -f board/stm32f429discovery.cfg -c \ >>>>>>> '{PATH-TO-YOUR-UBOOT}/u-boot-dtb.bin 0x08000000 exit reset' >>>>>>> >>>>>>> -- setup kernel load bootargs at u-boot >>>>>>> U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 >>>>>>> root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' >>>>>>> U-Boot > loady;bootm >>>>>>> (download stm32.dtb or your kernel with itb format, or download zImage, dtb) >>>>>>> >>>>>> >>>>>> >>>>>> Thanks for these informations >>>>>> I was able to load and boot DTB and uImage directly in SDRAM as you suggested, >>>>>> i saw Linux logo and kernel log on the STM32F429-disco display, >>>>>> but i can't reach the login. >>>>>> >>>>>> The last kernel log i got is : >>>>>> >>>>>> Starting kernel ... >>>>>> >>>>>> [ 0.000000] Booting Linux on physical CPU 0x0 >>>>>> [ 0.000000] Linux version 5.13.0-rc1-00082-g9dbbd5cb6240-dirty (nxp11987@lmecxl0573.lme1 >>>>>> [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 >>>>>> [ 0.000000] CPU: unknown data cache, unknown instruction cache >>>>>> [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board >>>>>> [ 0.000000] Zone ranges: >>>>>> [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] >>>>>> [ 0.000000] Movable zone start for each node >>>>>> [ 0.000000] Early memory node ranges >>>>>> >>>>>> [...] >>>>>> >>>>>> [ 2.637564] printk: console [ttySTM0] enabled >>>>>> [ 2.747984] panel-ilitek-ili9341 spi0.1: get optional vcc failed >>>>>> [ 2.758986] spi_stm32 40015000.spi: driver initialized >>>>>> [ 2.795733] i2c /dev entries driver >>>>>> [ 2.849955] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 >>>>>> [ 2.922030] stmpe-ts stmpe-ts: DMA mask not set >>>>>> [ 2.965729] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts0 >>>>>> [ 2.991570] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered >>>>>> [ 3.058262] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on min0 >>>>>> [ 3.665951] panel-ilitek-ili9341 spi0.1: initialized display rgb interface >>>>>> [ 3.765208] Console: switching to colour frame buffer device 30x40 >>>>>> [ 4.014269] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffere >>>>>> [ 4.212737] Freeing unused kernel memory: 324K >>>>>> [ 4.287300] This architecture does not have kernel memory protection. >>>>>> [ 4.401202] Run /linuxrc as init process >>>>>> [ 4.478622] with arguments: >>>>>> [ 4.555069] /linuxrc >>>>>> [ 4.595406] with environment: >>>>>> [ 4.672213] HOME=/ >>>>>> [ 4.712511] TERM=linux >>>>>> [ 206.785289] random: crng init done >>>>> >>>>> I guess you didn't add the rootfs to uImage I sent you. >>>> >>>> I do use your rootfs >>>> >>>>> Could you post all the logs from u-boot startup to kernel log end. >>>> >>>> >>>> U-Boot 2021.07-rc2 (May 28 2021 - 17:05:35 +0200) >>>> >>>> DRAM: 8 MiB >>>> Flash: 2 MiB >>>> Loading Environment from Flash... OK >>>> In: serial@40011000 >>>> Out: serial@40011000 >>>> Err: serial@40011000 >>>> Hit any key to stop autoboot: 0 >>>> U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 root=/dev/ram rdinit=/lin' >>> >>> It seems bootargs are broken here. >>> should be setenv bootargs 'console=tty0 console=ttySTM0,115200 >>> root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' >> >> It's just a copy/paste issue from my minicom window to my mailer, >> but the bootargs is correct ;-) >> >> See a correct U-boot/kernel log in attached. > > Yes, your log is ok. > I tried to follow your way(dtb + uImage) to figure out > why your kernel was hanging there, but no luck. > > You can find my log from [1] . > (since my uImage is bigger than yours, i change the > loadaddr to 0x90300000, 0x90306000) > > but there are some points we can check: > - kernel config, you can find my config in [2], > could you share yours to me as well, i can based on > your configs to test. Please find my .config attached > - uImage size (yours 1593664 bytes is quite smaller than mine, 2072864 bytes > the difference based on kernel config and rootfs size) > - cross tool chain (upload my toolchain to google drive [3]) > - could you add initcall_debug to your bootargs, to see more log > at kernel startup I also tried with your toolchain but still the same issue, see the log attached (with initcall_debug in bootargs). Then i used an another rootfs (attached rootfs_mcu.cpio file) but unfortunately, during the rootfs init, some memory allocation are done and failed due to low RAM available on this board. The issue seems linked to the rootfs...but i got no clue on what is going wrong with your rootfs ? Thanks Patrice > > [1] kernel log based on dtb + uImage > https://drive.google.com/file/d/1wnA5b3B_6MIb4PWZXn-3DlBbxpi41uSA/view?usp=sharing > > [2] kernel config > https://drive.google.com/file/d/1oOJt3NRYor3-Uzjpzrujv3uvWguxYQQp/view?usp=sharing > > [3] arm-none-eabi- toolchain > https://drive.google.com/file/d/1Aq0sF2Gi4y4qaDPnM2S0xCOowFSLZYJm/view?usp=sharing > > Best Regards > Dillon > >> >> >>> >>>> U-Boot > >>>> U-Boot > >>>> U-Boot > setenv loadaddr 0x90400000 >>>> U-Boot > loady >>>> ## Ready for binary (ymodem) download to 0x90400000 at 115200 bps... >>>> CxyzModem - CRC mode, 156(SOH)/0(STX)/0(CAN) packets, 7 retries >>>> ## Total Size = 0x00004cad = 19629 Bytes >>>> U-Boot > setenv loadaddr 0x90406000 >>>> U-Boot > loady >>>> ## Ready for binary (ymodem) download to 0x90406000 at 115200 bps... >>>> C- CRC mode, 12453(SOH)/0(STX)/0(CAN) packets, 4 retries >>>> ## Total Size = 0x00185140 = 1593664 Bytes >>>> U-Boot > bootm 0x90406000 - 0x90400000 >>>> ## Booting kernel from Legacy Image at 90406000 ... >>>> Image Name: Linux-5.13.0-rc1-00082-g9dbbd5cb >>>> Image Type: ARM Linux Kernel Image (uncompressed) >>>> Data Size: 1593600 Bytes = 1.5 MiB >>>> Load Address: 90008000 >>>> Entry Point: 90008000 >>>> Verifying Checksum ... OK >>>> ## Flattened Device Tree blob at 90400000 >>>> Booting using the fdt blob at 0x90400000 >>>> Loading Kernel Image >>>> Loading Device Tree to 905b9000, end 905c0cac ... OK >>>> >>>> Starting kernel ... >>>> >>>> [ 0.000000] Booting Linux on physical CPU 0x0 >>>> [ 0.000000] Linux version 5.13.0-rc1-00082-g9dbbd5cb6240-dirty (nxp11987@lmecxl0573.lme1 >>>> [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 >>>> [ 0.000000] CPU: unknown data cache, unknown instruction cache >>>> [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board >>>> [ 0.000000] Zone ranges: >>>> [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] >>>> [ 0.000000] Movable zone start for each node >>>> [ 0.000000] Early memory node ranges >>>> [ 0.000000] node 0: [mem 0x0000000090000000-0x00000000907fffff] >>>> [ 0.000000] Initmem setup node 0 [mem 0x0000000090000000-0x00000000907fffff] >>>> [ 0.000000] On node 0 totalpages: 2048 >>>> [ 0.000000] Normal zone: 16 pages used for memmap >>>> [ 0.000000] Normal zone: 0 pages reserved >>>> [ 0.000000] Normal zone: 2048 pages, LIFO batch:0 >>>> [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 >>>> [ 0.000000] pcpu-alloc: [0] 0 >>>> [ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2032 >>>> [ 0.000000] Kernel command line: console=tty0 console=ttySTM0,115200 root=/dev/ram rdin2 >>> >>> ditto >> >> same explanation as above, the command line displayed is truncated, but it is the one expected. >> >> >>> >>>> [ 0.000000] Dentry cache hash table entries: 1024 (order: 0, 4096 bytes, linear) >>>> [ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) >>>> [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off >>>> [ 0.000000] Memory: 5264K/8192K available (1372K kernel code, 302K rwdata, 516K rodata,) >>>> [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 >>>> [ 0.000000] rcu: Preemptible hierarchical RCU implementation. >>>> [ 0.000000] rcu: RCU event tracing is enabled. >>>> [ 0.000000] Trampoline variant of Tasks RCU enabled. >>>> [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. >>>> [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 >>>> [ 0.000000] /soc/interrupt-controller@40013c00: bank0 >>>> [ 0.000000] random: get_random_bytes called from start_kernel+0x203/0x370 with crng_ini0 >>>> [ 0.000000] clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idls >>>> [ 0.000000] ARM System timer initialized as clocksource >>>> [ 0.000026] sched_clock: 32 bits at 90MHz, resolution 11ns, wraps every 23860929530ns >>>> [ 0.000665] timer@40000c00: STM32 sched_clock registered >>>> [ 0.001275] Switching to timer-based delay loop, resolution 11ns >>>> [ 0.001712] timer@40000c00: STM32 delay timer registered >>>> [ 0.002253] clocksource: timer@40000c00: mask: 0xffffffff max_cycles: 0xffffffff, max_is >>>> [ 0.003076] /soc/timer@40000c00: STM32 clockevent driver initialized (32 bits) >>>> [ 0.014135] Console: colour dummy device 80x30 >>>> [ 0.062375] printk: console [tty0] enabled >>>> [ 0.063843] Calibrating delay loop (skipped), value calculated using timer frequency.. ) >>>> [ 0.066453] pid_max: default: 4096 minimum: 301 >>>> [ 0.071393] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) >>>> [ 0.073734] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) >>>> [ 0.104759] rcu: Hierarchical SRCU implementation. >>>> [ 0.111552] devtmpfs: initialized >>>> [ 0.339332] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns:s >>>> [ 0.341835] pinctrl core: initialized pinctrl subsystem >>>> [ 0.658423] stm32f429-pinctrl soc:pin-controller: No package detected, use default one >>>> [ 0.680505] stm32f429-pinctrl soc:pin-controller: GPIOA bank added >>>> [ 0.689824] stm32f429-pinctrl soc:pin-controller: GPIOB bank added >>>> [ 0.699409] stm32f429-pinctrl soc:pin-controller: GPIOC bank added >>>> [ 0.708775] stm32f429-pinctrl soc:pin-controller: GPIOD bank added >>>> [ 0.718094] stm32f429-pinctrl soc:pin-controller: GPIOE bank added >>>> [ 0.727535] stm32f429-pinctrl soc:pin-controller: GPIOF bank added >>>> [ 0.736953] stm32f429-pinctrl soc:pin-controller: GPIOG bank added >>>> [ 0.746404] stm32f429-pinctrl soc:pin-controller: GPIOH bank added >>>> [ 0.756098] stm32f429-pinctrl soc:pin-controller: GPIOI bank added >>>> [ 0.765436] stm32f429-pinctrl soc:pin-controller: GPIOJ bank added >>>> [ 0.774870] stm32f429-pinctrl soc:pin-controller: GPIOK bank added >>>> [ 0.776730] stm32f429-pinctrl soc:pin-controller: Pinctrl STM32 initialized >>>> [ 0.997446] stm32-dma 40026000.dma-controller: STM32 DMA driver registered >>>> [ 1.029604] stm32-dma 40026400.dma-controller: STM32 DMA driver registered >>>> [ 1.043098] clocksource: Switched to clocksource timer@40000c00 >>>> [ 1.358086] workingset: timestamp_bits=30 max_order=11 bucket_order=0 >>>> [ 1.632751] io scheduler mq-deadline registered >>>> [ 1.634287] io scheduler kyber registered >>>> [ 1.650574] STM32 USART driver initialized >>>> [ 1.661272] 40011000.serial: ttySTM0 at MMIO 0x40011000 (irq = 34, base_baud = 5625000)t >>>> [ 2.603317] random: fast init done >>>> [ 2.637564] printk: console [ttySTM0] enabled >>>> [ 2.747984] panel-ilitek-ili9341 spi0.1: get optional vcc failed >>>> [ 2.758986] spi_stm32 40015000.spi: driver initialized >>>> [ 2.795733] i2c /dev entries driver >>>> [ 2.849955] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 >>>> [ 2.922030] stmpe-ts stmpe-ts: DMA mask not set >>>> [ 2.965729] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts0 >>>> [ 2.991570] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered >>>> [ 3.058262] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on min0 >>>> [ 3.665951] panel-ilitek-ili9341 spi0.1: initialized display rgb interface >>>> [ 3.765208] Console: switching to colour frame buffer device 30x40 >>>> [ 4.014269] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffere >>>> [ 4.212737] Freeing unused kernel memory: 324K >>>> [ 4.287300] This architecture does not have kernel memory protection. >>>> [ 4.401202] Run /linuxrc as init process >>>> [ 4.478622] with arguments: >>>> [ 4.555069] /linuxrc >>>> [ 4.595406] with environment: >>>> [ 4.672213] HOME=/ >>>> [ 4.712511] TERM=linux >>>> [ 206.785289] random: crng init done >>>> >>>> >>>>> >>>>> If possible, you can try my suggestion. >>>>> - tar -jxf stm32_rootfs.tar.bz2 >>>>> - add stm32_rootfs to your kernel config( enable initramfs) >>>> >>>> As explained above, that's what i did >>>> >>>>> - make O=YOUR_KERNEL_OUT zImage dtbs LOADADDR=0x90008000 >>>> >>>> >>>> >>>>> - create itb file (combine dtb and kernel, initramfs) by mkimage >>>>> ./mkimage -f stm32.its stm32.itb >>>> >>>> I didn't use .itb file, but directly uImage loaded @0x90406000 and stm32f429-disco.dtb loaded @0x90400000 >>> >>> It's fine with manual load dtb and uImage. >>> >>>> >>>> How do you generate .its file ? >>> >>> I refer to u-boot doc , U-BOOT-SOURCE/doc/uImage.FIT/kernel.its >>> you can just change the PATH('data = ' filed) of my stm32.its. >>> you can correct bootargs in u-boot, try again >>> >>> good luck. >>> >>> Thanks >>> >>> Best Regards >>> Dillon >>> >>>> >>>> >>>>> (before above command, make sure you correct stm32.its adapt to your env) >>>>> >>>>> This process will make u-boot to load the kernel more simple. >>>>> >>>>> Thanks. >>>>> >>>>> Best Regards. >>>>> Dillon >>>>> >>>>> >>>>>> >>>>>> >>>>>> I can't test your I2C patch. >>>>>> >>>>>> Patrice >>>>>> >>>>>> >>>>>>> -- setup ts_calibrate running env on stm32f429-disco >>>>>>> / # export TSLIB_CONFFILE=/etc/ts.conf >>>>>>> / # export TSLIB_TSDEVICE=/dev/input/event0 >>>>>>> / # export TSLIB_CONSOLEDEVICE=none >>>>>>> / # export TSLIB_FBDEVICE=/dev/fb0 >>>>>>> >>>>>>> -- clear screen >>>>>>> / # ./fb >>>>>>> >>>>>>> -- run ts_calibrate >>>>>>> / # ts_calibrate >>>>>>> (you can calibrate touchscreen now, and get below errors) >>>>>>> >>>>>>> [ 113.942087] stmpe-i2c0-0041: failed to read regs 0x52: -110 >>>>>>> [ 114.063598] stmpe-i2c 0-0041: failed to read reg 0x4b: -16 >>>>>>> [ 114.185629] stmpe-i2c 0-0041: failed to read reg 0x40: -16 >>>>>>> [ 114.307257] stmpe-i2c 0-0041: failed to write reg 0xb: -16 >>>>>>> >>>>>>> ... >>>>>>> with i2c patch applied, you will find below logs: >>>>>>> >>>>>>> RAW---------------------> 3164 908 183 118.110884 >>>>>>> TS_READ_RAW----> x = 3164, y =908, pressure = 183 >>>>>>> RAW---------------------> 3166 922 126 118.138946 >>>>>>> TS_READ_RAW----> x = 3166, y = 922, pressure = 126 >>>>>>> .... >>>>>>> >>>>>>> files link: >>>>>>> https://drive.google.com/drive/folders/1qNbjChcB6UGtKzne2F5x9_WG_sZFyo3o?usp=sharing >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> Dillon Min (4): >>>>>>> drm/panel: Add ilitek ili9341 panel driver >>>>>>> i2c: stm32f4: Fix stmpe811 get xyz data timeout issue >>>>>>> clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate >>>>>>> clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after >>>>>>> kernel startup >>>>>>> >>>>>>> drivers/clk/clk-stm32f4.c | 10 +- >>>>>>> drivers/gpu/drm/panel/Kconfig | 12 + >>>>>>> drivers/gpu/drm/panel/Makefile | 1 + >>>>>>> drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 1285 ++++++++++++++++++++++++++ >>>>>>> drivers/i2c/busses/i2c-stm32f4.c | 12 +- >>>>>>> 5 files changed, 1310 insertions(+), 10 deletions(-) >>>>>>> create mode 100755 drivers/gpu/drm/panel/panel-ilitek-ili9341.c >>>>>>> # # Automatically generated file; DO NOT EDIT. # Linux/arm 5.13.0-rc1 Kernel Configuration # CONFIG_CC_VERSION_TEXT="arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10-2020-q4-major) 10.2.1 20201103 (release)" CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=100201 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y CONFIG_AS_VERSION=23501 CONFIG_LD_IS_BFD=y CONFIG_LD_VERSION=23501 CONFIG_LLD_VERSION=0 CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_IRQ_WORK=y # # General setup # CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_BUILD_SALT="" CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_HAVE_KERNEL_LZ4=y CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set # CONFIG_KERNEL_LZ4 is not set CONFIG_DEFAULT_INIT="" CONFIG_DEFAULT_HOSTNAME="(none)" # CONFIG_SYSVIPC is not set # CONFIG_WATCH_QUEUE is not set # CONFIG_USELIB is not set CONFIG_HAVE_ARCH_AUDITSYSCALL=y # # IRQ subsystem # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_SHOW_LEVEL=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_HANDLE_DOMAIN_IRQ=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # end of IRQ subsystem CONFIG_GENERIC_CLOCKEVENTS=y # # Timers subsystem # CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y # CONFIG_NO_HZ is not set CONFIG_HIGH_RES_TIMERS=y # end of Timers subsystem # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y # # CPU/Task time and stats accounting # CONFIG_TICK_CPU_ACCOUNTING=y # CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set # CONFIG_IRQ_TIME_ACCOUNTING is not set # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_PSI is not set # end of CPU/Task time and stats accounting # # RCU Subsystem # CONFIG_TREE_RCU=y CONFIG_PREEMPT_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y CONFIG_TASKS_RCU_GENERIC=y CONFIG_TASKS_RCU=y CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y # end of RCU Subsystem # CONFIG_IKCONFIG is not set # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=16 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_GENERIC_SCHED_CLOCK=y # # Scheduler features # # end of Scheduler features # CONFIG_CGROUPS is not set # CONFIG_NAMESPACES is not set # CONFIG_CHECKPOINT_RESTORE is not set # CONFIG_SCHED_AUTOGROUP is not set # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="/local/home/nxp11987/Downloads/STM32F429-disco_binaires_issue_clk_i2c/stm32_rootfs.tar.bz2" CONFIG_INITRAMFS_ROOT_UID=0 CONFIG_INITRAMFS_ROOT_GID=0 CONFIG_RD_GZIP=y # CONFIG_RD_BZIP2 is not set # CONFIG_RD_LZMA is not set # CONFIG_RD_XZ is not set # CONFIG_RD_LZO is not set # CONFIG_RD_LZ4 is not set # CONFIG_RD_ZSTD is not set CONFIG_INITRAMFS_COMPRESSION_GZIP=y # CONFIG_INITRAMFS_COMPRESSION_NONE is not set # CONFIG_BOOT_CONFIG is not set # CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_LD_ORPHAN_WARN=y CONFIG_SYSCTL=y CONFIG_HAVE_UID16=y CONFIG_EXPERT=y # CONFIG_UID16 is not set CONFIG_MULTIUSER=y # CONFIG_SGETMASK_SYSCALL is not set CONFIG_SYSFS_SYSCALL=y CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y CONFIG_PRINTK=y CONFIG_PRINTK_NMI=y CONFIG_BUG=y # CONFIG_BASE_FULL is not set # CONFIG_FUTEX is not set # CONFIG_EPOLL is not set # CONFIG_SIGNALFD is not set CONFIG_TIMERFD=y # CONFIG_EVENTFD is not set # CONFIG_AIO is not set CONFIG_IO_URING=y CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_BASE_RELATIVE=y # CONFIG_BPF_SYSCALL is not set CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_KCMP=y CONFIG_RSEQ=y # CONFIG_DEBUG_RSEQ is not set CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y CONFIG_PERF_USE_VMALLOC=y # CONFIG_PC104 is not set # # Kernel Performance Events And Counters # # CONFIG_PERF_EVENTS is not set # end of Kernel Performance Events And Counters # CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_SLUB_DEBUG is not set CONFIG_COMPAT_BRK=y # CONFIG_SLAB is not set CONFIG_SLUB=y # CONFIG_SLOB is not set CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLAB_FREELIST_RANDOM is not set # CONFIG_SLAB_FREELIST_HARDENED is not set # CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set # CONFIG_MMAP_ALLOW_UNINITIALIZED is not set # CONFIG_PROFILING is not set # end of General setup CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_NO_IOPORT_MAP=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_PHYS_OFFSET=0x90000000 CONFIG_GENERIC_BUG=y CONFIG_PGTABLE_LEVELS=2 # # System Type # # CONFIG_MMU is not set CONFIG_ARCH_MMAP_RND_BITS_MIN=8 CONFIG_ARCH_MMAP_RND_BITS_MAX=16 CONFIG_ARM_SINGLE_ARMV7M=y # CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_DOVE is not set # CONFIG_ARCH_SA1100 is not set # CONFIG_ARCH_S3C24XX is not set # CONFIG_ARCH_AT91 is not set # CONFIG_ARCH_MXC is not set CONFIG_ARCH_STM32=y CONFIG_MACH_STM32F429=y # CONFIG_MACH_STM32F469 is not set # CONFIG_MACH_STM32F746 is not set # CONFIG_MACH_STM32F769 is not set # CONFIG_MACH_STM32H743 is not set # CONFIG_ARCH_LPC18XX is not set # CONFIG_ARCH_MPS2 is not set # # Processor Type # CONFIG_CPU_V7M=y CONFIG_CPU_THUMBONLY=y CONFIG_CPU_THUMB_CAPABLE=y CONFIG_CPU_32v7M=y CONFIG_CPU_ABRT_NOMMU=y CONFIG_CPU_PABRT_LEGACY=y CONFIG_CPU_CACHE_NOP=y CONFIG_CPU_CACHE_V7M=y CONFIG_CPU_V7M_NUM_IRQ=240 # # Processor Features # CONFIG_ARM_THUMB=y # CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_DCACHE_DISABLE is not set # CONFIG_CPU_BPREDICT_DISABLE is not set CONFIG_ARM_L1_CACHE_SHIFT=5 CONFIG_ARM_DMA_MEM_BUFFERABLE=y CONFIG_SET_MEM_PARAM=y CONFIG_DRAM_BASE=0x90000000 CONFIG_DRAM_SIZE=0x00800000 # CONFIG_REMAP_VECTORS_TO_RAM is not set # CONFIG_ARM_MPU is not set # end of System Type # # Bus support # # end of Bus support # # Kernel Features # CONFIG_PAGE_OFFSET=0x90000000 CONFIG_ARCH_NR_GPIO=0 CONFIG_HZ_FIXED=0 CONFIG_HZ_100=y # CONFIG_HZ_200 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set # CONFIG_HZ_500 is not set # CONFIG_HZ_1000 is not set CONFIG_HZ=100 CONFIG_SCHED_HRTICK=y CONFIG_THUMB2_KERNEL=y CONFIG_AEABI=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_FORCE_MAX_ZONEORDER=11 # CONFIG_PARAVIRT is not set # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set # end of Kernel Features # # Boot options # CONFIG_USE_OF=y # CONFIG_ATAGS is not set CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 # CONFIG_ARM_APPENDED_DTB is not set CONFIG_CMDLINE="" # CONFIG_XIP_KERNEL is not set # CONFIG_CRASH_DUMP is not set CONFIG_AUTO_ZRELADDR=y # end of Boot options # # CPU Power Management # # # CPU Frequency scaling # # CONFIG_CPU_FREQ is not set # end of CPU Frequency scaling # # CPU Idle # # CONFIG_CPU_IDLE is not set # end of CPU Idle # end of CPU Power Management # # Floating point emulation # # # At least one emulation must be selected # # end of Floating point emulation # # Power management options # CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_PM_SLEEP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y # CONFIG_PM_DEBUG is not set # CONFIG_APM_EMULATION is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set CONFIG_CPU_PM=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARM_CPU_SUSPEND=y # end of Power management options # # Firmware Drivers # # CONFIG_FIRMWARE_MEMMAP is not set # CONFIG_GOOGLE_FIRMWARE is not set # # Tegra firmware driver # # end of Tegra firmware driver # end of Firmware Drivers # CONFIG_ARM_CRYPTO is not set CONFIG_AS_VFP_VMRS_FPINST=y # # General architecture-dependent options # CONFIG_SET_FS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_GENERIC_IDLE_POLL_SETUP=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_KEEPINITRD=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_32BIT_OFF_T=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_RSEQ=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y CONFIG_HAVE_ARCH_SECCOMP=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_SECCOMP=y CONFIG_HAVE_STACKPROTECTOR=y CONFIG_STACKPROTECTOR=y CONFIG_STACKPROTECTOR_STRONG=y CONFIG_LTO_NONE=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_REL=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_EXIT_THREAD=y CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGACTION=y CONFIG_COMPAT_32BIT_TIME=y CONFIG_ARCH_HAS_PHYS_TO_DMA=y CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y CONFIG_HAVE_ARCH_PFN_VALID=y # # GCOV-based kernel profiling # CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y # end of GCOV-based kernel profiling CONFIG_HAVE_GCC_PLUGINS=y CONFIG_GCC_PLUGINS=y # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set # CONFIG_GCC_PLUGIN_RANDSTRUCT is not set # end of General architecture-dependent options CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=1 # CONFIG_MODULES is not set CONFIG_BLOCK=y # CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSGLIB is not set # CONFIG_BLK_DEV_INTEGRITY is not set # CONFIG_BLK_DEV_ZONED is not set # CONFIG_BLK_CMDLINE_PARSER is not set # CONFIG_BLK_WBT is not set # CONFIG_BLK_SED_OPAL is not set # CONFIG_BLK_INLINE_ENCRYPTION is not set # # Partition Types # # CONFIG_PARTITION_ADVANCED is not set CONFIG_MSDOS_PARTITION=y CONFIG_EFI_PARTITION=y # end of Partition Types CONFIG_BLK_PM=y # # IO Schedulers # CONFIG_MQ_IOSCHED_DEADLINE=y CONFIG_MQ_IOSCHED_KYBER=y # CONFIG_IOSCHED_BFQ is not set # end of IO Schedulers CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_FREEZER=y # # Executable file formats # CONFIG_BINFMT_ELF_FDPIC=y CONFIG_ELFCORE=y CONFIG_BINFMT_SCRIPT=y CONFIG_ARCH_HAS_BINFMT_FLAT=y CONFIG_BINFMT_FLAT=y CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y # CONFIG_BINFMT_FLAT_OLD is not set # CONFIG_BINFMT_ZFLAT is not set CONFIG_BINFMT_SHARED_FLAT=y # CONFIG_BINFMT_MISC is not set # CONFIG_COREDUMP is not set # end of Executable file formats # # Memory Management options # CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_ARCH_KEEP_MEMBLOCK=y CONFIG_SPLIT_PTLOCK_CPUS=999999 # CONFIG_PAGE_REPORTING is not set CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 CONFIG_NEED_PER_CPU_KM=y # CONFIG_CLEANCACHE is not set # CONFIG_ZPOOL is not set # CONFIG_ZBUD is not set CONFIG_GENERIC_EARLY_IOREMAP=y # CONFIG_PERCPU_STATS is not set # # GUP_TEST needs to have DEBUG_FS enabled # # end of Memory Management options # CONFIG_NET is not set CONFIG_HAVE_EBPF_JIT=y # # Device Drivers # CONFIG_ARM_AMBA=y # CONFIG_PCCARD is not set # # Generic Driver Options # # CONFIG_UEVENT_HELPER is not set CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y # # Firmware loader # # CONFIG_FW_LOADER is not set # end of Firmware loader CONFIG_ALLOW_DEV_COREDUMP=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_REGMAP=y CONFIG_REGMAP_MMIO=y CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set # end of Generic Driver Options # # Bus devices # # CONFIG_BRCMSTB_GISB_ARB is not set # CONFIG_MOXTET is not set # CONFIG_SIMPLE_PM_BUS is not set # CONFIG_VEXPRESS_CONFIG is not set # CONFIG_MHI_BUS is not set # end of Bus devices # CONFIG_GNSS is not set # CONFIG_MTD is not set CONFIG_DTC=y CONFIG_OF=y # CONFIG_OF_UNITTEST is not set CONFIG_OF_FLATTREE=y CONFIG_OF_EARLY_FLATTREE=y CONFIG_OF_KOBJ=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y CONFIG_OF_RESERVED_MEM=y # CONFIG_OF_OVERLAY is not set CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y # CONFIG_PARPORT is not set # CONFIG_BLK_DEV is not set # # NVME Support # # CONFIG_NVME_FC is not set # end of NVME Support # # Misc devices # # CONFIG_AD525X_DPOT is not set # CONFIG_DUMMY_IRQ is not set # CONFIG_ICS932S401 is not set # CONFIG_ENCLOSURE_SERVICES is not set # CONFIG_APDS9802ALS is not set # CONFIG_ISL29003 is not set # CONFIG_ISL29020 is not set # CONFIG_SENSORS_TSL2550 is not set # CONFIG_SENSORS_BH1770 is not set # CONFIG_SENSORS_APDS990X is not set # CONFIG_HMC6352 is not set # CONFIG_DS1682 is not set # CONFIG_LATTICE_ECP3_CONFIG is not set # CONFIG_SRAM is not set # CONFIG_XILINX_SDFEC is not set # CONFIG_C2PORT is not set # # EEPROM support # # CONFIG_EEPROM_AT24 is not set # CONFIG_EEPROM_AT25 is not set # CONFIG_EEPROM_LEGACY is not set # CONFIG_EEPROM_MAX6875 is not set CONFIG_EEPROM_93CX6=y # CONFIG_EEPROM_93XX46 is not set # CONFIG_EEPROM_IDT_89HPESX is not set # CONFIG_EEPROM_EE1004 is not set # end of EEPROM support # # Texas Instruments shared transport line discipline # # end of Texas Instruments shared transport line discipline # CONFIG_SENSORS_LIS3_SPI is not set # CONFIG_SENSORS_LIS3_I2C is not set # CONFIG_ALTERA_STAPL is not set # CONFIG_ECHO is not set # CONFIG_PVPANIC is not set # end of Misc devices # # SCSI device support # CONFIG_SCSI_MOD=y # CONFIG_RAID_ATTRS is not set # CONFIG_SCSI is not set # end of SCSI device support # CONFIG_ATA is not set # CONFIG_MD is not set # CONFIG_TARGET_CORE is not set # CONFIG_NVM is not set # # Input device support # CONFIG_INPUT=y # CONFIG_INPUT_FF_MEMLESS is not set # CONFIG_INPUT_SPARSEKMAP is not set # CONFIG_INPUT_MATRIXKMAP is not set # # Userland interfaces # # CONFIG_INPUT_MOUSEDEV is not set # CONFIG_INPUT_JOYDEV is not set CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # # CONFIG_INPUT_KEYBOARD is not set # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_ADS7846 is not set # CONFIG_TOUCHSCREEN_AD7877 is not set # CONFIG_TOUCHSCREEN_AD7879 is not set # CONFIG_TOUCHSCREEN_AR1021_I2C is not set # CONFIG_TOUCHSCREEN_ATMEL_MXT is not set # CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # CONFIG_TOUCHSCREEN_BU21013 is not set # CONFIG_TOUCHSCREEN_BU21029 is not set # CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set # CONFIG_TOUCHSCREEN_CY8CTMA140 is not set # CONFIG_TOUCHSCREEN_CY8CTMG110 is not set # CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set # CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set # CONFIG_TOUCHSCREEN_DYNAPRO is not set # CONFIG_TOUCHSCREEN_HAMPSHIRE is not set # CONFIG_TOUCHSCREEN_EETI is not set # CONFIG_TOUCHSCREEN_EGALAX is not set # CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set # CONFIG_TOUCHSCREEN_EXC3000 is not set # CONFIG_TOUCHSCREEN_FUJITSU is not set # CONFIG_TOUCHSCREEN_GOODIX is not set # CONFIG_TOUCHSCREEN_HIDEEP is not set # CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set # CONFIG_TOUCHSCREEN_ILI210X is not set # CONFIG_TOUCHSCREEN_ILITEK is not set # CONFIG_TOUCHSCREEN_S6SY761 is not set # CONFIG_TOUCHSCREEN_GUNZE is not set # CONFIG_TOUCHSCREEN_EKTF2127 is not set # CONFIG_TOUCHSCREEN_ELAN is not set # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_WACOM_W8001 is not set # CONFIG_TOUCHSCREEN_WACOM_I2C is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MMS114 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set # CONFIG_TOUCHSCREEN_MSG2638 is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_MK712 is not set # CONFIG_TOUCHSCREEN_PENMOUNT is not set # CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_PIXCIR is not set # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set # CONFIG_TOUCHSCREEN_TSC_SERIO is not set # CONFIG_TOUCHSCREEN_TSC2004 is not set # CONFIG_TOUCHSCREEN_TSC2005 is not set # CONFIG_TOUCHSCREEN_TSC2007 is not set # CONFIG_TOUCHSCREEN_RM_TS is not set # CONFIG_TOUCHSCREEN_SILEAD is not set # CONFIG_TOUCHSCREEN_SIS_I2C is not set # CONFIG_TOUCHSCREEN_ST1232 is not set CONFIG_TOUCHSCREEN_STMPE=y # CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set # CONFIG_TOUCHSCREEN_SX8654 is not set # CONFIG_TOUCHSCREEN_TPS6507X is not set # CONFIG_TOUCHSCREEN_ZET6223 is not set # CONFIG_TOUCHSCREEN_ZFORCE is not set # CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set # CONFIG_TOUCHSCREEN_ZINITIX is not set # CONFIG_INPUT_MISC is not set # CONFIG_RMI4_CORE is not set # # Hardware I/O ports # # CONFIG_SERIO is not set # CONFIG_GAMEPORT is not set # end of Hardware I/O ports # end of Input device support # # Character devices # CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y # CONFIG_UNIX98_PTYS is not set # CONFIG_LEGACY_PTYS is not set CONFIG_LDISC_AUTOLOAD=y # # Serial drivers # # CONFIG_SERIAL_8250 is not set # # Non-8250 serial port support # # CONFIG_SERIAL_AMBA_PL010 is not set # CONFIG_SERIAL_AMBA_PL011 is not set # CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set # CONFIG_SERIAL_MAX3100 is not set # CONFIG_SERIAL_MAX310X is not set # CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_SIFIVE is not set # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SC16IS7XX is not set # CONFIG_SERIAL_BCM63XX is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_XILINX_PS_UART is not set # CONFIG_SERIAL_ARC is not set # CONFIG_SERIAL_FSL_LPUART is not set # CONFIG_SERIAL_FSL_LINFLEXUART is not set # CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set # CONFIG_SERIAL_ST_ASC is not set # CONFIG_SERIAL_SPRD is not set CONFIG_SERIAL_STM32=y CONFIG_SERIAL_STM32_CONSOLE=y # end of Serial drivers CONFIG_SERIAL_MCTRL_GPIO=y CONFIG_SERIAL_NONSTANDARD=y # CONFIG_N_HDLC is not set # CONFIG_NULL_TTY is not set # CONFIG_HVC_DCC is not set # CONFIG_SERIAL_DEV_BUS is not set # CONFIG_TTY_PRINTK is not set # CONFIG_VIRTIO_CONSOLE is not set # CONFIG_IPMI_HANDLER is not set # CONFIG_IPMB_DEVICE_INTERFACE is not set # CONFIG_HW_RANDOM is not set CONFIG_DEVMEM=y # CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set # CONFIG_XILLYBUS is not set # end of Character devices # CONFIG_RANDOM_TRUST_BOOTLOADER is not set # # I2C support # CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=y # CONFIG_I2C_MUX is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_ALGOBIT=y # # I2C Hardware Bus support # # # I2C system bus drivers (mostly embedded / system-on-chip) # # CONFIG_I2C_CBUS_GPIO is not set # CONFIG_I2C_DESIGNWARE_PLATFORM is not set # CONFIG_I2C_EMEV2 is not set # CONFIG_I2C_GPIO is not set # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PCA_PLATFORM is not set # CONFIG_I2C_RK3X is not set # CONFIG_I2C_SIMTEC is not set CONFIG_I2C_STM32F4=y # CONFIG_I2C_STM32F7 is not set # CONFIG_I2C_XILINX is not set # # External I2C/SMBus adapter drivers # # CONFIG_I2C_TAOS_EVM is not set # # Other I2C/SMBus bus drivers # # end of I2C Hardware Bus support CONFIG_I2C_SLAVE=y # CONFIG_I2C_SLAVE_EEPROM is not set # CONFIG_I2C_SLAVE_TESTUNIT is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # end of I2C support # CONFIG_I3C is not set CONFIG_SPI=y # CONFIG_SPI_DEBUG is not set CONFIG_SPI_MASTER=y # CONFIG_SPI_MEM is not set # # SPI Master Controller Drivers # # CONFIG_SPI_ALTERA is not set # CONFIG_SPI_ALTERA_CORE is not set # CONFIG_SPI_AXI_SPI_ENGINE is not set # CONFIG_SPI_BITBANG is not set # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE_QUADSPI is not set # CONFIG_SPI_DESIGNWARE is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_GPIO is not set # CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_PL022 is not set # CONFIG_SPI_ROCKCHIP is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set CONFIG_SPI_STM32=y # CONFIG_SPI_STM32_QSPI is not set # CONFIG_SPI_MXIC is not set # CONFIG_SPI_XCOMM is not set # CONFIG_SPI_XILINX is not set # CONFIG_SPI_ZYNQMP_GQSPI is not set # CONFIG_SPI_AMD is not set # # SPI Multiplexer support # # CONFIG_SPI_MUX is not set # # SPI Protocol Masters # # CONFIG_SPI_SPIDEV is not set # CONFIG_SPI_TLE62X0 is not set # CONFIG_SPI_SLAVE is not set # CONFIG_SPMI is not set # CONFIG_HSI is not set # CONFIG_PPS is not set # # PTP clock support # # # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. # # end of PTP clock support CONFIG_PINCTRL=y CONFIG_PINMUX=y CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set # CONFIG_PINCTRL_MCP23S08 is not set # CONFIG_PINCTRL_SINGLE is not set # CONFIG_PINCTRL_SX150X is not set # CONFIG_PINCTRL_STMFX is not set # CONFIG_PINCTRL_OCELOT is not set # CONFIG_PINCTRL_MICROCHIP_SGPIO is not set # # Renesas pinctrl drivers # # end of Renesas pinctrl drivers CONFIG_PINCTRL_STM32=y CONFIG_PINCTRL_STM32F429=y CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y CONFIG_GPIOLIB=y CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_OF_GPIO=y CONFIG_GPIOLIB_IRQCHIP=y # CONFIG_DEBUG_GPIO is not set # CONFIG_GPIO_SYSFS is not set CONFIG_GPIO_CDEV=y CONFIG_GPIO_CDEV_V1=y # # Memory mapped GPIO drivers # # CONFIG_GPIO_74XX_MMIO is not set # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_CADENCE is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_FTGPIO010 is not set # CONFIG_GPIO_GENERIC_PLATFORM is not set # CONFIG_GPIO_GRGPIO is not set # CONFIG_GPIO_HLWD is not set # CONFIG_GPIO_LOGICVC is not set # CONFIG_GPIO_MB86S7X is not set # CONFIG_GPIO_MPC8XXX is not set # CONFIG_GPIO_PL061 is not set # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SIFIVE is not set # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_XILINX is not set # CONFIG_GPIO_ZEVIO is not set # CONFIG_GPIO_AMD_FCH is not set # end of Memory mapped GPIO drivers # # I2C GPIO expanders # # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ADNP is not set # CONFIG_GPIO_GW_PLD is not set # CONFIG_GPIO_MAX7300 is not set # CONFIG_GPIO_MAX732X is not set # CONFIG_GPIO_PCA953X is not set # CONFIG_GPIO_PCA9570 is not set # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_TPIC2810 is not set # end of I2C GPIO expanders # # MFD GPIO expanders # # CONFIG_HTC_EGPIO is not set CONFIG_GPIO_STMPE=y # end of MFD GPIO expanders # # SPI GPIO expanders # # CONFIG_GPIO_74X164 is not set # CONFIG_GPIO_MAX3191X is not set # CONFIG_GPIO_MAX7301 is not set # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_XRA1403 is not set # end of SPI GPIO expanders # # Virtual GPIO drivers # # CONFIG_GPIO_AGGREGATOR is not set # CONFIG_GPIO_MOCKUP is not set # end of Virtual GPIO drivers # CONFIG_W1 is not set # CONFIG_POWER_RESET is not set # CONFIG_POWER_SUPPLY is not set # CONFIG_HWMON is not set # CONFIG_THERMAL is not set # CONFIG_WATCHDOG is not set CONFIG_SSB_POSSIBLE=y # CONFIG_SSB is not set CONFIG_BCMA_POSSIBLE=y # CONFIG_BCMA is not set # # Multifunction device drivers # CONFIG_MFD_CORE=y # CONFIG_MFD_ACT8945A is not set # CONFIG_MFD_AS3711 is not set # CONFIG_MFD_AS3722 is not set # CONFIG_PMIC_ADP5520 is not set # CONFIG_MFD_AAT2870_CORE is not set # CONFIG_MFD_ATMEL_FLEXCOM is not set # CONFIG_MFD_ATMEL_HLCDC is not set # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_MADERA is not set # CONFIG_MFD_ASIC3 is not set # CONFIG_PMIC_DA903X is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9055 is not set # CONFIG_MFD_DA9062 is not set # CONFIG_MFD_DA9063 is not set # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_GATEWORKS_GSC is not set # CONFIG_MFD_MC13XXX_SPI is not set # CONFIG_MFD_MC13XXX_I2C is not set # CONFIG_MFD_MP2629 is not set # CONFIG_MFD_HI6421_PMIC is not set # CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_I2CPLD is not set # CONFIG_MFD_IQS62X is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_88PM800 is not set # CONFIG_MFD_88PM805 is not set # CONFIG_MFD_88PM860X is not set # CONFIG_MFD_MAX14577 is not set # CONFIG_MFD_MAX77620 is not set # CONFIG_MFD_MAX77650 is not set # CONFIG_MFD_MAX77686 is not set # CONFIG_MFD_MAX77693 is not set # CONFIG_MFD_MAX77843 is not set # CONFIG_MFD_MAX8907 is not set # CONFIG_MFD_MAX8925 is not set # CONFIG_MFD_MAX8997 is not set # CONFIG_MFD_MAX8998 is not set # CONFIG_MFD_MT6360 is not set # CONFIG_MFD_MT6397 is not set # CONFIG_MFD_MENF21BMC is not set # CONFIG_EZX_PCAP is not set # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_NTXEC is not set # CONFIG_MFD_RETU is not set # CONFIG_MFD_PCF50633 is not set # CONFIG_MFD_PM8XXX is not set # CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RC5T583 is not set # CONFIG_MFD_RK808 is not set # CONFIG_MFD_RN5T618 is not set # CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set # CONFIG_MFD_SM501 is not set # CONFIG_MFD_SKY81452 is not set CONFIG_MFD_STMPE=y # # STMicroelectronics STMPE Interface Drivers # CONFIG_STMPE_I2C=y # CONFIG_STMPE_SPI is not set # end of STMicroelectronics STMPE Interface Drivers CONFIG_MFD_SYSCON=y # CONFIG_MFD_TI_AM335X_TSCADC is not set # CONFIG_MFD_LP3943 is not set # CONFIG_MFD_LP8788 is not set # CONFIG_MFD_TI_LMU is not set # CONFIG_MFD_PALMAS is not set # CONFIG_TPS6105X is not set # CONFIG_TPS65010 is not set # CONFIG_TPS6507X is not set # CONFIG_MFD_TPS65086 is not set # CONFIG_MFD_TPS65090 is not set # CONFIG_MFD_TPS65217 is not set # CONFIG_MFD_TI_LP873X is not set # CONFIG_MFD_TI_LP87565 is not set # CONFIG_MFD_TPS65218 is not set # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912_SPI is not set # CONFIG_MFD_TPS80031 is not set # CONFIG_TWL4030_CORE is not set # CONFIG_TWL6040_CORE is not set # CONFIG_MFD_WL1273_CORE is not set # CONFIG_MFD_LM3533 is not set # CONFIG_MFD_TC3589X is not set # CONFIG_MFD_T7L66XB is not set # CONFIG_MFD_TC6387XB is not set # CONFIG_MFD_TC6393XB is not set # CONFIG_MFD_TQMX86 is not set # CONFIG_MFD_LOCHNAGAR is not set # CONFIG_MFD_ARIZONA_I2C is not set # CONFIG_MFD_ARIZONA_SPI is not set # CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM831X_I2C is not set # CONFIG_MFD_WM831X_SPI is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set # CONFIG_MFD_ROHM_BD718XX is not set # CONFIG_MFD_ROHM_BD70528 is not set # CONFIG_MFD_ROHM_BD71828 is not set # CONFIG_MFD_ROHM_BD957XMUF is not set # CONFIG_MFD_STM32_LPTIMER is not set CONFIG_MFD_STM32_TIMERS=y # CONFIG_MFD_STPMIC1 is not set # CONFIG_MFD_STMFX is not set # CONFIG_MFD_ATC260X_I2C is not set # CONFIG_MFD_INTEL_M10_BMC is not set # end of Multifunction device drivers # CONFIG_REGULATOR is not set # CONFIG_RC_CORE is not set # CONFIG_MEDIA_CEC_SUPPORT is not set # CONFIG_MEDIA_SUPPORT is not set # # Graphics support # CONFIG_DRM=y CONFIG_DRM_MIPI_DBI=y # CONFIG_DRM_DP_AUX_CHARDEV is not set # CONFIG_DRM_DEBUG_MM is not set # CONFIG_DRM_DEBUG_SELFTEST is not set CONFIG_DRM_KMS_HELPER=y CONFIG_DRM_KMS_FB_HELPER=y # CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 # CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set # CONFIG_DRM_LOAD_EDID_FIRMWARE is not set # CONFIG_DRM_DP_CEC is not set CONFIG_DRM_GEM_CMA_HELPER=y CONFIG_DRM_KMS_CMA_HELPER=y # # I2C encoder or helper chips # # CONFIG_DRM_I2C_CH7006 is not set # CONFIG_DRM_I2C_SIL164 is not set # CONFIG_DRM_I2C_NXP_TDA998X is not set # CONFIG_DRM_I2C_NXP_TDA9950 is not set # end of I2C encoder or helper chips # # ARM devices # # CONFIG_DRM_HDLCD is not set # CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_KOMEDA is not set # end of ARM devices # CONFIG_DRM_VGEM is not set # CONFIG_DRM_VKMS is not set # CONFIG_DRM_RCAR_DW_HDMI is not set # CONFIG_DRM_RCAR_LVDS is not set # CONFIG_DRM_TILCDC is not set # CONFIG_DRM_FSL_DCU is not set CONFIG_DRM_STM=y # CONFIG_DRM_STM_DSI is not set CONFIG_DRM_PANEL=y # # Display Panels # # CONFIG_DRM_PANEL_ABT_Y030XX067A is not set # CONFIG_DRM_PANEL_ARM_VERSATILE is not set # CONFIG_DRM_PANEL_LVDS is not set # CONFIG_DRM_PANEL_SIMPLE is not set # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set CONFIG_DRM_PANEL_ILITEK_ILI9341=y # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set # CONFIG_DRM_PANEL_LG_LB035Q02 is not set # CONFIG_DRM_PANEL_LG_LG4573 is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set # CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # end of Display Panels CONFIG_DRM_BRIDGE=y CONFIG_DRM_PANEL_BRIDGE=y # # Display Interface Bridges # # CONFIG_DRM_CDNS_DSI is not set # CONFIG_DRM_CHIPONE_ICN6211 is not set # CONFIG_DRM_CHRONTEL_CH7033 is not set # CONFIG_DRM_DISPLAY_CONNECTOR is not set # CONFIG_DRM_LONTIUM_LT8912B is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set # CONFIG_DRM_NWL_MIPI_DSI is not set # CONFIG_DRM_NXP_PTN3460 is not set # CONFIG_DRM_PARADE_PS8622 is not set # CONFIG_DRM_PARADE_PS8640 is not set # CONFIG_DRM_SIL_SII8620 is not set # CONFIG_DRM_SII902X is not set # CONFIG_DRM_SII9234 is not set # CONFIG_DRM_SIMPLE_BRIDGE is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TOSHIBA_TC358762 is not set # CONFIG_DRM_TOSHIBA_TC358764 is not set # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set # CONFIG_DRM_TI_TFP410 is not set # CONFIG_DRM_TI_SN65DSI86 is not set # CONFIG_DRM_TI_TPD12S015 is not set # CONFIG_DRM_ANALOGIX_ANX6345 is not set # CONFIG_DRM_ANALOGIX_ANX78XX is not set # CONFIG_DRM_ANALOGIX_ANX7625 is not set # CONFIG_DRM_I2C_ADV7511 is not set # CONFIG_DRM_CDNS_MHDP8546 is not set # end of Display Interface Bridges # CONFIG_DRM_MXSFB is not set # CONFIG_DRM_ARCPGU is not set # CONFIG_TINYDRM_HX8357D is not set # CONFIG_TINYDRM_ILI9225 is not set # CONFIG_TINYDRM_ILI9341 is not set # CONFIG_TINYDRM_ILI9486 is not set # CONFIG_TINYDRM_MI0283QT is not set # CONFIG_TINYDRM_REPAPER is not set # CONFIG_TINYDRM_ST7586 is not set # CONFIG_TINYDRM_ST7735R is not set # CONFIG_DRM_PL111 is not set # CONFIG_DRM_TIDSS is not set CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y # # Frame buffer Devices # CONFIG_FB_CMDLINE=y CONFIG_FB_NOTIFY=y CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_SYS_FILLRECT=y CONFIG_FB_SYS_COPYAREA=y CONFIG_FB_SYS_IMAGEBLIT=y CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA=y # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=y CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set # # Frame buffer hardware drivers # # CONFIG_FB_ARMCLCD is not set # CONFIG_FB_OPENCORES is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_SIMPLE is not set # CONFIG_FB_SSD1307 is not set # end of Frame buffer Devices # # Backlight & LCD device support # # CONFIG_LCD_CLASS_DEVICE is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_BACKLIGHT_KTD253 is not set # CONFIG_BACKLIGHT_QCOM_WLED is not set # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # CONFIG_BACKLIGHT_LM3639 is not set # CONFIG_BACKLIGHT_GPIO is not set # CONFIG_BACKLIGHT_LV5207LP is not set # CONFIG_BACKLIGHT_BD6107 is not set # CONFIG_BACKLIGHT_ARCXCNN is not set # end of Backlight & LCD device support CONFIG_VIDEOMODE_HELPERS=y CONFIG_HDMI=y # # Console display driver support # CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y # CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set # end of Console display driver support CONFIG_LOGO=y # CONFIG_LOGO_LINUX_MONO is not set # CONFIG_LOGO_LINUX_VGA16 is not set CONFIG_LOGO_LINUX_CLUT224=y # end of Graphics support # CONFIG_SOUND is not set # # HID support # # CONFIG_HID is not set # # I2C HID support # # CONFIG_I2C_HID_OF is not set # CONFIG_I2C_HID_OF_GOODIX is not set # end of I2C HID support # end of HID support CONFIG_USB_OHCI_LITTLE_ENDIAN=y # CONFIG_USB_SUPPORT is not set # CONFIG_MMC is not set # CONFIG_MEMSTICK is not set # CONFIG_NEW_LEDS is not set # CONFIG_ACCESSIBILITY is not set CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y CONFIG_RTC_LIB=y # CONFIG_RTC_CLASS is not set CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set # # DMA Devices # CONFIG_DMA_ENGINE=y CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DMA_OF=y # CONFIG_ALTERA_MSGDMA is not set # CONFIG_AMBA_PL08X is not set # CONFIG_DW_AXI_DMAC is not set # CONFIG_FSL_EDMA is not set # CONFIG_FSL_QDMA is not set # CONFIG_INTEL_IDMA64 is not set # CONFIG_NBPFAXI_DMA is not set # CONFIG_PL330_DMA is not set CONFIG_STM32_DMA=y CONFIG_STM32_DMAMUX=y CONFIG_STM32_MDMA=y # CONFIG_XILINX_ZYNQMP_DPDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_DW_DMAC is not set # CONFIG_SF_PDMA is not set # # DMA Clients # # CONFIG_ASYNC_TX_DMA is not set # CONFIG_DMATEST is not set # # DMABUF options # CONFIG_SYNC_FILE=y # CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_DEBUG is not set # CONFIG_DMABUF_SELFTESTS is not set # CONFIG_DMABUF_HEAPS is not set # end of DMABUF options # CONFIG_AUXDISPLAY is not set # CONFIG_VFIO is not set # CONFIG_VIRT_DRIVERS is not set # CONFIG_VIRTIO_MENU is not set # CONFIG_VHOST_MENU is not set # # Microsoft Hyper-V guest support # # end of Microsoft Hyper-V guest support # CONFIG_GREYBUS is not set # CONFIG_COMEDI is not set # CONFIG_STAGING is not set # CONFIG_GOLDFISH is not set # CONFIG_CHROME_PLATFORMS is not set # CONFIG_MELLANOX_PLATFORM is not set CONFIG_HAVE_CLK=y CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y # CONFIG_COMMON_CLK_MAX9485 is not set # CONFIG_COMMON_CLK_SI5341 is not set # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI514 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set # CONFIG_COMMON_CLK_CDCE706 is not set # CONFIG_COMMON_CLK_CDCE925 is not set # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_AXI_CLKGEN is not set # CONFIG_COMMON_CLK_VC5 is not set CONFIG_COMMON_CLK_STM32F=y # CONFIG_COMMON_CLK_FIXED_MMIO is not set # CONFIG_XILINX_VCU is not set # CONFIG_HWSPINLOCK is not set # # Clock Source drivers # CONFIG_TIMER_OF=y CONFIG_TIMER_PROBE=y CONFIG_CLKSRC_MMIO=y CONFIG_CLKSRC_STM32=y CONFIG_ARMV7M_SYSTICK=y # CONFIG_MICROCHIP_PIT64B is not set # end of Clock Source drivers # CONFIG_MAILBOX is not set # # Remoteproc drivers # # CONFIG_REMOTEPROC is not set # end of Remoteproc drivers # # Rpmsg drivers # # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers # CONFIG_SOUNDWIRE is not set # # SOC (System On Chip) specific Drivers # # # Amlogic SoC drivers # # end of Amlogic SoC drivers # # Broadcom SoC drivers # # CONFIG_SOC_BRCMSTB is not set # end of Broadcom SoC drivers # # NXP/Freescale QorIQ SoC drivers # # CONFIG_QUICC_ENGINE is not set # CONFIG_FSL_RCPM is not set # end of NXP/Freescale QorIQ SoC drivers # # i.MX SoC drivers # # end of i.MX SoC drivers # # Enable LiteX SoC Builder specific drivers # # CONFIG_LITEX_SOC_CONTROLLER is not set # end of Enable LiteX SoC Builder specific drivers # # Qualcomm SoC drivers # # end of Qualcomm SoC drivers # CONFIG_SOC_TI is not set # # Xilinx SoC drivers # # end of Xilinx SoC drivers # end of SOC (System On Chip) specific Drivers # CONFIG_PM_DEVFREQ is not set # CONFIG_EXTCON is not set # CONFIG_MEMORY is not set # CONFIG_IIO is not set # CONFIG_PWM is not set # # IRQ chip support # CONFIG_IRQCHIP=y CONFIG_ARM_NVIC=y # CONFIG_AL_FIC is not set CONFIG_STM32_EXTI=y # end of IRQ chip support # CONFIG_IPACK_BUS is not set CONFIG_ARCH_HAS_RESET_CONTROLLER=y CONFIG_RESET_CONTROLLER=y # CONFIG_RESET_BRCMSTB_RESCAL is not set # CONFIG_RESET_INTEL_GW is not set CONFIG_RESET_SIMPLE=y # CONFIG_RESET_TI_SYSCON is not set # # PHY Subsystem # # CONFIG_GENERIC_PHY is not set # CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_PHY_CADENCE_TORRENT is not set # CONFIG_PHY_CADENCE_DPHY is not set # CONFIG_PHY_CADENCE_SIERRA is not set # CONFIG_PHY_CADENCE_SALVO is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set # CONFIG_PHY_MIXEL_MIPI_DPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_OCELOT_SERDES is not set # CONFIG_PHY_STM32_USBPHYC is not set # end of PHY Subsystem # CONFIG_POWERCAP is not set # CONFIG_MCB is not set # CONFIG_RAS is not set # # Android # # CONFIG_ANDROID is not set # end of Android # CONFIG_DAX is not set # CONFIG_NVMEM is not set # # HW tracing support # # CONFIG_STM is not set # CONFIG_INTEL_TH is not set # end of HW tracing support # CONFIG_FPGA is not set # CONFIG_FSI is not set # CONFIG_SIOX is not set # CONFIG_SLIMBUS is not set # CONFIG_INTERCONNECT is not set # CONFIG_COUNTER is not set # end of Device Drivers # # File systems # # CONFIG_VALIDATE_FS_PARSER is not set # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set # CONFIG_EXT4_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set # CONFIG_XFS_FS is not set # CONFIG_GFS2_FS is not set # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set # CONFIG_F2FS_FS is not set CONFIG_EXPORTFS=y # CONFIG_EXPORTFS_BLOCK_OPS is not set # CONFIG_FILE_LOCKING is not set # CONFIG_FS_ENCRYPTION is not set # CONFIG_FS_VERITY is not set # CONFIG_DNOTIFY is not set # CONFIG_INOTIFY_USER is not set # CONFIG_FANOTIFY is not set # CONFIG_QUOTA is not set # CONFIG_AUTOFS4_FS is not set # CONFIG_AUTOFS_FS is not set # CONFIG_FUSE_FS is not set # CONFIG_OVERLAY_FS is not set # # Caches # # CONFIG_NETFS_SUPPORT is not set # CONFIG_FSCACHE is not set # end of Caches # # CD-ROM/DVD Filesystems # # CONFIG_ISO9660_FS is not set # CONFIG_UDF_FS is not set # end of CD-ROM/DVD Filesystems # # DOS/FAT/EXFAT/NT Filesystems # # CONFIG_MSDOS_FS is not set # CONFIG_VFAT_FS is not set # CONFIG_EXFAT_FS is not set # CONFIG_NTFS_FS is not set # end of DOS/FAT/EXFAT/NT Filesystems # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y # CONFIG_PROC_CHILDREN is not set CONFIG_KERNFS=y CONFIG_SYSFS=y # CONFIG_CONFIGFS_FS is not set # end of Pseudo filesystems # CONFIG_MISC_FILESYSTEMS is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="iso8859-1" # CONFIG_NLS_CODEPAGE_437 is not set # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set # CONFIG_NLS_CODEPAGE_850 is not set # CONFIG_NLS_CODEPAGE_852 is not set # CONFIG_NLS_CODEPAGE_855 is not set # CONFIG_NLS_CODEPAGE_857 is not set # CONFIG_NLS_CODEPAGE_860 is not set # CONFIG_NLS_CODEPAGE_861 is not set # CONFIG_NLS_CODEPAGE_862 is not set # CONFIG_NLS_CODEPAGE_863 is not set # CONFIG_NLS_CODEPAGE_864 is not set # CONFIG_NLS_CODEPAGE_865 is not set # CONFIG_NLS_CODEPAGE_866 is not set # CONFIG_NLS_CODEPAGE_869 is not set # CONFIG_NLS_CODEPAGE_936 is not set # CONFIG_NLS_CODEPAGE_950 is not set # CONFIG_NLS_CODEPAGE_932 is not set # CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1250 is not set # CONFIG_NLS_CODEPAGE_1251 is not set # CONFIG_NLS_ASCII is not set # CONFIG_NLS_ISO8859_1 is not set # CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set # CONFIG_NLS_ISO8859_4 is not set # CONFIG_NLS_ISO8859_5 is not set # CONFIG_NLS_ISO8859_6 is not set # CONFIG_NLS_ISO8859_7 is not set # CONFIG_NLS_ISO8859_9 is not set # CONFIG_NLS_ISO8859_13 is not set # CONFIG_NLS_ISO8859_14 is not set # CONFIG_NLS_ISO8859_15 is not set # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set # CONFIG_NLS_MAC_ROMAN is not set # CONFIG_NLS_MAC_CELTIC is not set # CONFIG_NLS_MAC_CENTEURO is not set # CONFIG_NLS_MAC_CROATIAN is not set # CONFIG_NLS_MAC_CYRILLIC is not set # CONFIG_NLS_MAC_GAELIC is not set # CONFIG_NLS_MAC_GREEK is not set # CONFIG_NLS_MAC_ICELAND is not set # CONFIG_NLS_MAC_INUIT is not set # CONFIG_NLS_MAC_ROMANIAN is not set # CONFIG_NLS_MAC_TURKISH is not set # CONFIG_NLS_UTF8 is not set # CONFIG_UNICODE is not set CONFIG_IO_WQ=y # end of File systems # # Security options # # CONFIG_KEYS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_HARDENED_USERCOPY is not set # CONFIG_FORTIFY_SOURCE is not set # CONFIG_STATIC_USERMODEHELPER is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity,bpf" # # Kernel hardening options # # # Memory initialization # CONFIG_INIT_STACK_NONE=y # CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set # CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set # CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set # CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set # end of Memory initialization # end of Kernel hardening options # end of Security options CONFIG_CRYPTO=y # # Crypto core or helper # CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y # CONFIG_CRYPTO_MANAGER is not set CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_CRYPTD is not set # CONFIG_CRYPTO_AUTHENC is not set # CONFIG_CRYPTO_TEST is not set # # Public-key cryptography # # CONFIG_CRYPTO_RSA is not set # CONFIG_CRYPTO_DH is not set # CONFIG_CRYPTO_ECDH is not set # CONFIG_CRYPTO_ECDSA is not set # CONFIG_CRYPTO_ECRDSA is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_CURVE25519 is not set # # Authenticated Encryption with Associated Data # # CONFIG_CRYPTO_CCM is not set # CONFIG_CRYPTO_GCM is not set # CONFIG_CRYPTO_CHACHA20POLY1305 is not set # CONFIG_CRYPTO_AEGIS128 is not set # CONFIG_CRYPTO_SEQIV is not set # CONFIG_CRYPTO_ECHAINIV is not set # # Block modes # # CONFIG_CRYPTO_CBC is not set # CONFIG_CRYPTO_CFB is not set # CONFIG_CRYPTO_CTR is not set # CONFIG_CRYPTO_CTS is not set # CONFIG_CRYPTO_ECB is not set # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_OFB is not set # CONFIG_CRYPTO_PCBC is not set # CONFIG_CRYPTO_XTS is not set # CONFIG_CRYPTO_KEYWRAP is not set # CONFIG_CRYPTO_ADIANTUM is not set # CONFIG_CRYPTO_ESSIV is not set # # Hash modes # # CONFIG_CRYPTO_CMAC is not set # CONFIG_CRYPTO_HMAC is not set # CONFIG_CRYPTO_XCBC is not set # CONFIG_CRYPTO_VMAC is not set # # Digest # CONFIG_CRYPTO_CRC32C=y # CONFIG_CRYPTO_CRC32 is not set # CONFIG_CRYPTO_XXHASH is not set # CONFIG_CRYPTO_BLAKE2B is not set # CONFIG_CRYPTO_BLAKE2S is not set # CONFIG_CRYPTO_CRCT10DIF is not set # CONFIG_CRYPTO_GHASH is not set # CONFIG_CRYPTO_POLY1305 is not set # CONFIG_CRYPTO_MD4 is not set # CONFIG_CRYPTO_MD5 is not set # CONFIG_CRYPTO_MICHAEL_MIC is not set # CONFIG_CRYPTO_RMD160 is not set # CONFIG_CRYPTO_SHA1 is not set # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_SHA3 is not set # CONFIG_CRYPTO_SM3 is not set # CONFIG_CRYPTO_STREEBOG is not set # CONFIG_CRYPTO_WP512 is not set # # Ciphers # # CONFIG_CRYPTO_AES is not set # CONFIG_CRYPTO_AES_TI is not set # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_CAMELLIA is not set # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_DES is not set # CONFIG_CRYPTO_FCRYPT is not set # CONFIG_CRYPTO_CHACHA20 is not set # CONFIG_CRYPTO_SERPENT is not set # CONFIG_CRYPTO_SM4 is not set # CONFIG_CRYPTO_TWOFISH is not set # # Compression # # CONFIG_CRYPTO_DEFLATE is not set # CONFIG_CRYPTO_LZO is not set # CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set # CONFIG_CRYPTO_ZSTD is not set # # Random Number Generation # # CONFIG_CRYPTO_ANSI_CPRNG is not set # CONFIG_CRYPTO_DRBG_MENU is not set # CONFIG_CRYPTO_JITTERENTROPY is not set # # Crypto library routines # # CONFIG_CRYPTO_LIB_BLAKE2S is not set # CONFIG_CRYPTO_LIB_CHACHA is not set # CONFIG_CRYPTO_LIB_CURVE25519 is not set CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9 # CONFIG_CRYPTO_LIB_POLY1305 is not set # CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_ATMEL_ECC is not set # CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set # CONFIG_CRYPTO_DEV_STM32_CRC is not set # CONFIG_CRYPTO_DEV_STM32_HASH is not set # CONFIG_CRYPTO_DEV_STM32_CRYP is not set # CONFIG_CRYPTO_DEV_SAFEXCEL is not set # CONFIG_CRYPTO_DEV_CCREE is not set # CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set # # Certificates for signature checking # # end of Certificates for signature checking # # Library routines # # CONFIG_PACKING is not set CONFIG_BITREVERSE=y CONFIG_HAVE_ARCH_BITREVERSE=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y # CONFIG_CORDIC is not set # CONFIG_PRIME_NUMBERS is not set CONFIG_RATIONAL=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y # CONFIG_CRC_CCITT is not set CONFIG_CRC16=y # CONFIG_CRC_T10DIF is not set CONFIG_CRC_ITU_T=y CONFIG_CRC32=y # CONFIG_CRC32_SELFTEST is not set CONFIG_CRC32_SLICEBY8=y # CONFIG_CRC32_SLICEBY4 is not set # CONFIG_CRC32_SARWATE is not set # CONFIG_CRC32_BIT is not set # CONFIG_CRC64 is not set # CONFIG_CRC4 is not set CONFIG_CRC7=y # CONFIG_LIBCRC32C is not set # CONFIG_CRC8 is not set # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y CONFIG_XZ_DEC_POWERPC=y CONFIG_XZ_DEC_IA64=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_ARMTHUMB=y CONFIG_XZ_DEC_SPARC=y CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_HAS_IOMEM=y CONFIG_HAS_DMA=y CONFIG_DMA_OPS=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_DMA_DECLARE_COHERENT=y CONFIG_ARCH_HAS_SETUP_DMA_OPS=y CONFIG_DMA_NONCOHERENT_MMAP=y # CONFIG_DMA_API_DEBUG is not set CONFIG_GENERIC_ATOMIC64=y # CONFIG_IRQ_POLL is not set CONFIG_LIBFDT=y CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_ARCH_NO_SG_CHAIN=y CONFIG_SBITMAP=y # CONFIG_STRING_SELFTEST is not set # end of Library routines CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y # # Kernel hacking # # # printk and dmesg options # CONFIG_PRINTK_TIME=y # CONFIG_PRINTK_CALLER is not set CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_DYNAMIC_DEBUG is not set # CONFIG_DYNAMIC_DEBUG_CORE is not set CONFIG_SYMBOLIC_ERRNAME=y # CONFIG_DEBUG_BUGVERBOSE is not set # end of printk and dmesg options # # Compile-time checks and compiler options # CONFIG_DEBUG_INFO=y # CONFIG_DEBUG_INFO_REDUCED is not set # CONFIG_DEBUG_INFO_COMPRESSED is not set # CONFIG_DEBUG_INFO_SPLIT is not set CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y # CONFIG_DEBUG_INFO_DWARF4 is not set # CONFIG_DEBUG_INFO_DWARF5 is not set # CONFIG_DEBUG_INFO_BTF is not set # CONFIG_GDB_SCRIPTS is not set CONFIG_FRAME_WARN=1024 # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_READABLE_ASM is not set # CONFIG_HEADERS_INSTALL is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_SECTION_MISMATCH_WARN_ONLY=y # CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set # CONFIG_VMLINUX_MAP is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # end of Compile-time checks and compiler options # # Generic Kernel Debugging Instruments # CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" # CONFIG_DEBUG_FS is not set # CONFIG_UBSAN is not set # end of Generic Kernel Debugging Instruments CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_MISC=y # # Memory Debugging # # CONFIG_PAGE_EXTENSION is not set # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_PAGE_OWNER is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_STATS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_SCHED_STACK_END_CHECK is not set # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_NOMMU_REGIONS is not set # CONFIG_DEBUG_MEMORY_INIT is not set CONFIG_CC_HAS_KASAN_GENERIC=y CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y # end of Memory Debugging # CONFIG_DEBUG_SHIRQ is not set # # Debug Oops, Lockups and Hangs # # CONFIG_PANIC_ON_OOPS is not set CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 # CONFIG_SOFTLOCKUP_DETECTOR is not set # CONFIG_DETECT_HUNG_TASK is not set # CONFIG_WQ_WATCHDOG is not set # end of Debug Oops, Lockups and Hangs # # Scheduler Debugging # # CONFIG_SCHED_DEBUG is not set # CONFIG_SCHEDSTATS is not set # end of Scheduler Debugging # CONFIG_DEBUG_TIMEKEEPING is not set # # Lock Debugging (spinlocks, mutexes, etc...) # # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_LOCK_TORTURE_TEST is not set # CONFIG_WW_MUTEX_SELFTEST is not set # CONFIG_SCF_TORTURE_TEST is not set # end of Lock Debugging (spinlocks, mutexes, etc...) # CONFIG_DEBUG_IRQFLAGS is not set # CONFIG_STACKTRACE is not set # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set # CONFIG_DEBUG_KOBJECT is not set # # Debug kernel data structures # # CONFIG_DEBUG_LIST is not set # CONFIG_DEBUG_PLIST is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_BUG_ON_DATA_CORRUPTION is not set # end of Debug kernel data structures # CONFIG_DEBUG_CREDENTIALS is not set # # RCU Debugging # # CONFIG_RCU_SCALE_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_REF_SCALE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=21 CONFIG_RCU_TRACE=y # CONFIG_RCU_EQS_DEBUG is not set # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_LATENCYTOP is not set CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACE_CLOCK=y # CONFIG_SAMPLES is not set # # arm Debugging # CONFIG_UNWINDER_ARM=y CONFIG_ARM_UNWIND=y # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_LL is not set CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" # CONFIG_CORESIGHT is not set # end of arm Debugging # # Kernel Testing and Coverage # # CONFIG_KUNIT is not set # CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set CONFIG_ARCH_HAS_KCOV=y CONFIG_CC_HAS_SANCOV_TRACE_PC=y # CONFIG_KCOV is not set CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_SORT is not set # CONFIG_TEST_DIV64 is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_RBTREE_TEST is not set # CONFIG_REED_SOLOMON_TEST is not set # CONFIG_INTERVAL_TREE_TEST is not set # CONFIG_ATOMIC64_SELFTEST is not set # CONFIG_TEST_HEXDUMP is not set # CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_STRSCPY is not set # CONFIG_TEST_KSTRTOX is not set # CONFIG_TEST_PRINTF is not set # CONFIG_TEST_BITMAP is not set # CONFIG_TEST_UUID is not set # CONFIG_TEST_XARRAY is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_RHASHTABLE is not set # CONFIG_TEST_HASH is not set # CONFIG_TEST_IDA is not set # CONFIG_FIND_BIT_BENCHMARK is not set # CONFIG_TEST_SYSCTL is not set # CONFIG_TEST_UDELAY is not set # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_STACKINIT is not set # CONFIG_TEST_MEMINIT is not set # CONFIG_TEST_FREE_PAGES is not set CONFIG_ARCH_USE_MEMTEST=y # CONFIG_MEMTEST is not set # end of Kernel Testing and Coverage # end of Kernel hacking U-Boot 2021.07-rc2 (May 28 2021 - 17:05:35 +0200) DRAM: 8 MiB Flash: 2 MiB Loading Environment from Flash... OK In: serial@40011000 Out: serial@40011000 Err: serial@40011000 Hit any key to stop autoboot: 0 U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2 initcall_debug' U-Boot > setenv loadaddr 0x90400000 U-Boot > loady ## Ready for binary (ymodem) download to 0x90400000 at 115200 bps... C CRC mode, 156(SOH)/0(STX)/0(CAN) packets, 7 retries ## Total Size = 0x00004cad = 19629 Bytes U-Boot > setenv loadaddr 0x90406000 U-Boot > loady ## Ready for binary (ymodem) download to 0x90406000 at 115200 bps... CxyzModem - CRC mode, 12473(SOH)/0(STX)/0(CAN) packets, 5 retries ## Total Size = 0x00185b68 = 1596264 Bytes U-Boot > bootm 0x90406000 - 0x90400000 ## Booting kernel from Legacy Image at 90406000 ... Image Name: Linux-5.13.0-rc1-00082-g8743c6c7 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1596200 Bytes = 1.5 MiB Load Address: 90008000 Entry Point: 90008000 Verifying Checksum ... OK ## Flattened Device Tree blob at 90400000 Booting using the fdt blob at 0x90400000 Loading Kernel Image Loading Device Tree to 905b9000, end 905c0cac ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.13.0-rc1-00082-g8743c6c7048c (nxp11987@lmecxl0573.lme.st.com) (arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10-2020-q4-major) 10.2.1 20201103 (r1 [ 0.000000] CPU: ARMv7-M [410fc241] revision 1 (ARMv7M), cr=00000000 [ 0.000000] CPU: unknown data cache, unknown instruction cache [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F429i-DISCO board [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000090000000-0x00000000907fffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000090000000-0x00000000907fffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000090000000-0x00000000907fffff] [ 0.000000] On node 0 totalpages: 2048 [ 0.000000] Normal zone: 16 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 2048 pages, LIFO batch:0 [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 2032 [ 0.000000] Kernel command line: console=tty0 console=ttySTM0,115200 root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2 initcall_debug [ 0.000000] Dentry cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] Memory: 5256K/8192K available (1379K kernel code, 302K rwdata, 520K rodata, 324K init, 118K bss, 2936K reserved, 0K cma-reserved) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] Trampoline variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] /soc/interrupt-controller@40013c00: bank0 [ 0.000000] random: get_random_bytes called from start_kernel+0x1ed/0x364 with crng_init=0 [ 0.000000] clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 331816030 ns [ 0.000000] ARM System timer initialized as clocksource [ 0.000025] sched_clock: 32 bits at 90MHz, resolution 11ns, wraps every 23860929530ns [ 0.000678] timer@40000c00: STM32 sched_clock registered [ 0.001277] Switching to timer-based delay loop, resolution 11ns [ 0.001720] timer@40000c00: STM32 delay timer registered [ 0.002256] clocksource: timer@40000c00: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 21236227187 ns [ 0.003066] /soc/timer@40000c00: STM32 clockevent driver initialized (32 bits) [ 0.014751] Console: colour dummy device 80x30 [ 0.062500] printk: console [tty0] enabled [ 0.063953] Calibrating delay loop (skipped), value calculated using timer frequency.. 180.00 BogoMIPS (lpj=900000) [ 0.066518] pid_max: default: 4096 minimum: 301 [ 0.071470] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.073788] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.102609] calling cpu_suspend_alloc_sp+0x1/0x54 @ 1 [ 0.104556] initcall cpu_suspend_alloc_sp+0x1/0x54 returned 0 after 0 usecs [ 0.106605] calling spawn_ksoftirqd+0x1/0x2c @ 1 [ 0.109997] initcall spawn_ksoftirqd+0x1/0x2c returned 0 after 0 usecs [ 0.112090] calling srcu_bootup_announce+0x1/0x2c @ 1 [ 0.113677] rcu: Hierarchical SRCU implementation. [ 0.115058] initcall srcu_bootup_announce+0x1/0x2c returned 0 after 9765 usecs [ 0.117216] calling rcu_sysrq_init+0x1/0x18 @ 1 [ 0.118713] initcall rcu_sysrq_init+0x1/0x18 returned 0 after 0 usecs [ 0.120535] calling check_cpu_stall_init+0x1/0x18 @ 1 [ 0.122126] initcall check_cpu_stall_init+0x1/0x18 returned 0 after 0 usecs [ 0.124037] calling rcu_spawn_gp_kthread+0x1/0x108 @ 1 [ 0.127094] initcall rcu_spawn_gp_kthread+0x1/0x108 returned 0 after 0 usecs [ 0.129028] calling rcu_spawn_core_kthreads+0x1/0x58 @ 1 [ 0.130667] initcall rcu_spawn_core_kthreads+0x1/0x58 returned 0 after 0 usecs [ 0.132829] calling initialize_ptr_random+0x1/0x3c @ 1 [ 0.134561] initcall initialize_ptr_random+0x1/0x3c returned 0 after 0 usecs [ 0.141029] devtmpfs: initialized [ 0.361184] calling ptrace_break_init+0x1/0x24 @ 1 [ 0.362919] initcall ptrace_break_init+0x1/0x24 returned 0 after 0 usecs [ 0.364971] calling wq_sysfs_init+0x1/0x24 @ 1 [ 0.369422] initcall wq_sysfs_init+0x1/0x24 returned 0 after 9765 usecs [ 0.371536] calling ksysfs_init+0x1/0x64 @ 1 [ 0.373956] initcall ksysfs_init+0x1/0x64 returned 0 after 0 usecs [ 0.376004] calling pm_init+0x1/0x44 @ 1 [ 0.380345] initcall pm_init+0x1/0x44 returned 0 after 0 usecs [ 0.382021] calling rcu_set_runtime_mode+0x1/0x14 @ 1 [ 0.383604] initcall rcu_set_runtime_mode+0x1/0x14 returned 0 after 0 usecs [ 0.385508] calling dma_init_reserved_memory+0x1/0x38 @ 1 [ 0.387164] initcall dma_init_reserved_memory+0x1/0x38 returned -12 after 0 usecs [ 0.389565] calling init_jiffies_clocksource+0x1/0x10 @ 1 [ 0.391266] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.393671] initcall init_jiffies_clocksource+0x1/0x10 returned 0 after 0 usecs [ 0.395874] calling cpu_pm_init+0x1/0x10 @ 1 [ 0.397534] initcall cpu_pm_init+0x1/0x10 returned 0 after 0 usecs [ 0.399710] calling init_script_binfmt+0x1/0x14 @ 1 [ 0.401471] initcall init_script_binfmt+0x1/0x14 returned 0 after 0 usecs [ 0.403553] calling init_elf_fdpic_binfmt+0x1/0x14 @ 1 [ 0.405360] initcall init_elf_fdpic_binfmt+0x1/0x14 returned 0 after 0 usecs [ 0.407486] calling init_flat_binfmt+0x1/0x14 @ 1 [ 0.409410] initcall init_flat_binfmt+0x1/0x14 returned 0 after 0 usecs [ 0.411461] calling prandom_init_early+0x1/0x98 @ 1 [ 0.413274] initcall prandom_init_early+0x1/0x98 returned 0 after 0 usecs [ 0.415405] calling pinctrl_init+0x1/0x10 @ 1 [ 0.417121] pinctrl core: initialized pinctrl subsystem [ 0.418376] initcall pinctrl_init+0x1/0x10 returned 0 after 0 usecs [ 0.420619] calling gpiolib_dev_init+0x1/0xc0 @ 1 [ 0.424495] initcall gpiolib_dev_init+0x1/0xc0 returned 0 after 0 usecs [ 0.429523] calling irq_sysfs_init+0x1/0x60 @ 1 [ 0.462695] initcall irq_sysfs_init+0x1/0x60 returned 0 after 29296 usecs [ 0.464558] calling bdi_class_init+0x1/0x2c @ 1 [ 0.466618] initcall bdi_class_init+0x1/0x2c returned 0 after 0 usecs [ 0.468496] calling mm_sysfs_init+0x1/0x28 @ 1 [ 0.470374] initcall mm_sysfs_init+0x1/0x28 returned 0 after 0 usecs [ 0.472235] calling init_per_zone_wmark_min+0x1/0x4c @ 1 [ 0.474034] initcall init_per_zone_wmark_min+0x1/0x4c returned 0 after 0 usecs [ 0.476321] calling backlight_class_init+0x1/0x6c @ 1 [ 0.478705] initcall backlight_class_init+0x1/0x6c returned 0 after 0 usecs [ 0.481081] calling amba_init+0x1/0xc @ 1 [ 0.483910] initcall amba_init+0x1/0xc returned 0 after 0 usecs [ 0.485905] calling tty_class_init+0x1/0x2c @ 1 [ 0.487881] initcall tty_class_init+0x1/0x2c returned 0 after 0 usecs [ 0.489669] calling vtconsole_class_init+0x1/0xa4 @ 1 [ 0.494278] initcall vtconsole_class_init+0x1/0xa4 returned 0 after 0 usecs [ 0.496174] calling devlink_class_init+0x1/0x30 @ 1 [ 0.498256] initcall devlink_class_init+0x1/0x30 returned 0 after 0 usecs [ 0.500133] calling software_node_init+0x1/0x2c @ 1 [ 0.502069] initcall software_node_init+0x1/0x2c returned 0 after 0 usecs [ 0.503972] calling wakeup_sources_debugfs_init+0x1/0x4 @ 1 [ 0.505678] initcall wakeup_sources_debugfs_init+0x1/0x4 returned 0 after 0 usecs [ 0.507908] calling wakeup_sources_sysfs_init+0x1/0x24 @ 1 [ 0.510126] initcall wakeup_sources_sysfs_init+0x1/0x24 returned 0 after 0 usecs [ 0.512538] calling regmap_initcall+0x1/0x4 @ 1 [ 0.514055] initcall regmap_initcall+0x1/0x4 returned 0 after 0 usecs [ 0.515898] calling syscon_init+0x1/0xc @ 1 [ 0.518543] initcall syscon_init+0x1/0xc returned 0 after 0 usecs [ 0.520329] calling spi_init+0x1/0x58 @ 1 [ 0.523653] initcall spi_init+0x1/0x58 returned 0 after 9765 usecs [ 0.525459] calling i2c_init+0x1/0x80 @ 1 [ 0.529142] initcall i2c_init+0x1/0x80 returned 0 after 0 usecs [ 0.533830] calling customize_machine+0x1/0x14 @ 1 [ 0.535564] initcall customize_machine+0x1/0x14 returned 0 after 0 usecs [ 0.537622] calling exceptions_init+0x1/0x58 @ 1 [ 0.539348] initcall exceptions_init+0x1/0x58 returned 0 after 0 usecs [ 0.541398] calling kcmp_cookies_init+0x1/0x2c @ 1 [ 0.543453] initcall kcmp_cookies_init+0x1/0x2c returned 0 after 0 usecs [ 0.545333] calling stm32_exti_arch_init+0x1/0xc @ 1 [ 0.548038] initcall stm32_exti_arch_init+0x1/0xc returned 0 after 0 usecs [ 0.550180] calling stm32f429_pinctrl_init+0x1/0xc @ 1 [ 0.553145] initcall stm32f429_pinctrl_init+0x1/0xc returned 0 after 9765 usecs [ 0.555566] calling dma_bus_init+0x1/0x68 @ 1 [ 0.557951] initcall dma_bus_init+0x1/0x68 returned 0 after 0 usecs [ 0.560028] calling dma_channel_table_init+0x1/0x8c @ 1 [ 0.562867] initcall dma_channel_table_init+0x1/0x8c returned 0 after 0 usecs [ 0.565292] calling stm32_dmamux_init+0x1/0xc @ 1 [ 0.567695] initcall stm32_dmamux_init+0x1/0xc returned 0 after 0 usecs [ 0.569502] calling of_platform_default_populate_init+0x1/0x6a @ 1 [ 0.832095] stm32f429-pinctrl soc:pin-controller: No package detected, use default one [ 0.853970] stm32f429-pinctrl soc:pin-controller: GPIOA bank added [ 0.863359] stm32f429-pinctrl soc:pin-controller: GPIOB bank added [ 0.873017] stm32f429-pinctrl soc:pin-controller: GPIOC bank added [ 0.882444] stm32f429-pinctrl soc:pin-controller: GPIOD bank added [ 0.891830] stm32f429-pinctrl soc:pin-controller: GPIOE bank added [ 0.901352] stm32f429-pinctrl soc:pin-controller: GPIOF bank added [ 0.910826] stm32f429-pinctrl soc:pin-controller: GPIOG bank added [ 0.920351] stm32f429-pinctrl soc:pin-controller: GPIOH bank added [ 0.930113] stm32f429-pinctrl soc:pin-controller: GPIOI bank added [ 0.939520] stm32f429-pinctrl soc:pin-controller: GPIOJ bank added [ 0.949025] stm32f429-pinctrl soc:pin-controller: GPIOK bank added [ 0.950870] stm32f429-pinctrl soc:pin-controller: Pinctrl STM32 initialized [ 0.981687] initcall of_platform_default_populate_init+0x1/0x6a returned 0 after 390625 usecs [ 0.987050] calling topology_init+0x1/0x18 @ 1 [ 0.991330] initcall topology_init+0x1/0x18 returned 0 after 0 usecs [ 0.993322] calling uid_cache_init+0x1/0x80 @ 1 [ 0.995161] initcall uid_cache_init+0x1/0x80 returned 0 after 0 usecs [ 0.997440] calling param_sysfs_init+0x1/0x240 @ 1 [ 1.134651] initcall param_sysfs_init+0x1/0x240 returned 0 after 126953 usecs [ 1.137500] calling user_namespace_sysctl_init+0x1/0x28 @ 1 [ 1.140638] initcall user_namespace_sysctl_init+0x1/0x28 returned 0 after 0 usecs [ 1.143123] calling pm_sysrq_init+0x1/0x14 @ 1 [ 1.146486] initcall pm_sysrq_init+0x1/0x14 returned 0 after 0 usecs [ 1.148849] calling default_bdi_init+0x1/0x2c @ 1 [ 1.154727] initcall default_bdi_init+0x1/0x2c returned 0 after 0 usecs [ 1.156641] calling percpu_enable_async+0x1/0x10 @ 1 [ 1.158817] initcall percpu_enable_async+0x1/0x10 returned 0 after 0 usecs [ 1.160776] calling init_admin_reserve+0x1/0x24 @ 1 [ 1.162455] initcall init_admin_reserve+0x1/0x24 returned 0 after 0 usecs [ 1.164458] calling init_user_reserve+0x1/0x24 @ 1 [ 1.166117] initcall init_user_reserve+0x1/0x24 returned 0 after 0 usecs [ 1.168293] calling io_wq_init+0x1/0x30 @ 1 [ 1.169932] initcall io_wq_init+0x1/0x30 returned 0 after 0 usecs [ 1.171885] calling crc32c_mod_init+0x1/0xc @ 1 [ 1.173734] initcall crc32c_mod_init+0x1/0xc returned 0 after 0 usecs [ 1.175781] calling init_bio+0x1/0x54 @ 1 [ 1.178833] initcall init_bio+0x1/0x54 returned 0 after 9765 usecs [ 1.180836] calling blk_ioc_init+0x1/0x28 @ 1 [ 1.182631] initcall blk_ioc_init+0x1/0x28 returned 0 after 0 usecs [ 1.184656] calling blk_mq_init+0x1/0x74 @ 1 [ 1.186376] initcall blk_mq_init+0x1/0x74 returned 0 after 0 usecs [ 1.188582] calling genhd_device_init+0x1/0x50 @ 1 [ 1.192787] initcall genhd_device_init+0x1/0x50 returned 0 after 0 usecs [ 1.194891] calling stmpe_gpio_init+0x1/0xc @ 1 [ 1.197606] initcall stmpe_gpio_init+0x1/0xc returned 0 after 0 usecs [ 1.200104] calling fbmem_init+0x1/0x98 @ 1 [ 1.204738] initcall fbmem_init+0x1/0x98 returned 0 after 0 usecs [ 1.206762] calling stm32_dma_init+0x1/0xc @ 1 [ 1.239296] stm32-dma 40026000.dma-controller: STM32 DMA driver registered [ 1.271543] stm32-dma 40026400.dma-controller: STM32 DMA driver registered [ 1.275498] initcall stm32_dma_init+0x1/0xc returned 0 after 58593 usecs [ 1.277640] calling stm32_mdma_init+0x1/0xc @ 1 [ 1.281442] initcall stm32_mdma_init+0x1/0xc returned 0 after 0 usecs [ 1.283217] calling misc_init+0x1/0x84 @ 1 [ 1.285415] initcall misc_init+0x1/0x84 returned 0 after 0 usecs [ 1.287149] calling stmpe_init+0x1/0xc @ 1 [ 1.289682] initcall stmpe_init+0x1/0xc returned 0 after 9765 usecs [ 1.291491] calling dma_buf_init+0x1/0x34 @ 1 [ 1.293919] initcall dma_buf_init+0x1/0x34 returned 0 after 0 usecs [ 1.295741] calling input_init+0x1/0xac @ 1 [ 1.298056] initcall input_init+0x1/0xac returned 0 after 0 usecs [ 1.302769] calling iomem_init_inode+0x1/0x58 @ 1 [ 1.305426] initcall iomem_init_inode+0x1/0x58 returned 0 after 0 usecs [ 1.307531] calling clocksource_done_booting+0x1/0x30 @ 1 [ 1.309292] clocksource: Switched to clocksource timer@40000c00 [ 1.311169] initcall clocksource_done_booting+0x1/0x30 returned 0 after 1896 usecs [ 1.313414] calling init_pipe_fs+0x1/0x30 @ 1 [ 1.315789] initcall init_pipe_fs+0x1/0x30 returned 0 after 751 usecs [ 1.317755] calling anon_inode_init+0x1/0x48 @ 1 [ 1.320498] initcall anon_inode_init+0x1/0x48 returned 0 after 779 usecs [ 1.322556] calling proc_nommu_init+0x1/0x24 @ 1 [ 1.324351] initcall proc_nommu_init+0x1/0x24 returned 0 after 87 usecs [ 1.326405] calling proc_cmdline_init+0x1/0x20 @ 1 [ 1.328232] initcall proc_cmdline_init+0x1/0x20 returned 0 after 84 usecs [ 1.330503] calling proc_consoles_init+0x1/0x24 @ 1 [ 1.332353] initcall proc_consoles_init+0x1/0x24 returned 0 after 89 usecs [ 1.334458] calling proc_cpuinfo_init+0x1/0x1c @ 1 [ 1.336292] initcall proc_cpuinfo_init+0x1/0x1c returned 0 after 90 usecs [ 1.338381] calling proc_devices_init+0x1/0x24 @ 1 [ 1.340464] initcall proc_devices_init+0x1/0x24 returned 0 after 90 usecs [ 1.342554] calling proc_interrupts_init+0x1/0x24 @ 1 [ 1.344437] initcall proc_interrupts_init+0x1/0x24 returned 0 after 89 usecs [ 1.346572] calling proc_loadavg_init+0x1/0x20 @ 1 [ 1.348413] initcall proc_loadavg_init+0x1/0x20 returned 0 after 90 usecs [ 1.350759] calling proc_meminfo_init+0x1/0x20 @ 1 [ 1.352603] initcall proc_meminfo_init+0x1/0x20 returned 0 after 92 usecs [ 1.354700] calling proc_stat_init+0x1/0x1c @ 1 [ 1.356493] initcall proc_stat_init+0x1/0x1c returned 0 after 91 usecs [ 1.358542] calling proc_uptime_init+0x1/0x20 @ 1 [ 1.360616] initcall proc_uptime_init+0x1/0x20 returned 0 after 88 usecs [ 1.362695] calling proc_version_init+0x1/0x20 @ 1 [ 1.364547] initcall proc_version_init+0x1/0x20 returned 0 after 95 usecs [ 1.366650] calling proc_softirqs_init+0x1/0x20 @ 1 [ 1.368509] initcall proc_softirqs_init+0x1/0x20 returned 0 after 88 usecs [ 1.370877] calling proc_kmsg_init+0x1/0x1c @ 1 [ 1.372676] initcall proc_kmsg_init+0x1/0x1c returned 0 after 83 usecs [ 1.374740] calling init_ramfs_fs+0x1/0xc @ 1 [ 1.376450] initcall init_ramfs_fs+0x1/0xc returned 0 after 27 usecs [ 1.378477] calling chr_dev_init+0x1/0x7c @ 1 [ 1.617091] initcall chr_dev_init+0x1/0x7c returned 0 after 231364 usecs [ 1.618939] calling populate_rootfs+0x1/0x38 @ 1 [ 1.622201] initcall populate_rootfs+0x1/0x38 returned 0 after 93 usecs [ 1.626960] calling proc_execdomains_init+0x1/0x20 @ 1 [ 1.628890] initcall proc_execdomains_init+0x1/0x20 returned 0 after 91 usecs [ 1.688877] calling register_warn_debugfs+0x1/0x4 @ 1 [ 1.690962] initcall register_warn_debugfs+0x1/0x4 returned 0 after 5 usecs [ 1.693113] calling ioresources_init+0x1/0x40 @ 1 [ 1.695061] initcall ioresources_init+0x1/0x40 returned 0 after 170 usecs [ 1.697195] calling irq_gc_init_ops+0x1/0x10 @ 1 [ 1.698704] initcall irq_gc_init_ops+0x1/0x10 returned 0 after 12 usecs [ 1.700858] calling irq_pm_init_ops+0x1/0x10 @ 1 [ 1.702368] initcall irq_pm_init_ops+0x1/0x10 returned 0 after 12 usecs [ 1.704214] calling timekeeping_init_ops+0x1/0x10 @ 1 [ 1.705826] initcall timekeeping_init_ops+0x1/0x10 returned 0 after 12 usecs [ 1.707769] calling init_clocksource_sysfs+0x1/0x20 @ 1 [ 1.714319] initcall init_clocksource_sysfs+0x1/0x20 returned 0 after 4497 usecs [ 1.716528] calling init_timer_list_procfs+0x1/0x30 @ 1 [ 1.718262] initcall init_timer_list_procfs+0x1/0x30 returned 0 after 90 usecs [ 1.720756] calling alarmtimer_init+0x1/0x40 @ 1 [ 1.723479] initcall alarmtimer_init+0x1/0x40 returned 0 after 1160 usecs [ 1.725388] calling init_posix_timers+0x1/0x28 @ 1 [ 1.727220] initcall init_posix_timers+0x1/0x28 returned 0 after 256 usecs [ 1.729153] calling clockevents_init_sysfs+0x1/0x44 @ 1 [ 1.735627] initcall clockevents_init_sysfs+0x1/0x44 returned 0 after 4413 usecs [ 1.737845] calling sched_clock_syscore_init+0x1/0x10 @ 1 [ 1.749804] initcall sched_clock_syscore_init+0x1/0x10 returned 0 after 12 usecs [ 1.752026] calling kallsyms_init+0x1/0x1c @ 1 [ 1.753638] initcall kallsyms_init+0x1/0x1c returned 0 after 94 usecs [ 1.755501] calling seccomp_sysctl_init+0x1/0x20 @ 1 [ 1.757484] initcall seccomp_sysctl_init+0x1/0x20 returned 0 after 362 usecs [ 1.823512] calling utsname_sysctl_init+0x1/0x10 @ 1 [ 1.825643] initcall utsname_sysctl_init+0x1/0x10 returned 0 after 506 usecs [ 1.827615] calling kswapd_init+0x1/0x10 @ 1 [ 1.830777] initcall kswapd_init+0x1/0x10 returned 0 after 1630 usecs [ 1.832646] calling workingset_init+0x1/0x68 @ 1 [ 1.834223] workingset: timestamp_bits=30 max_order=11 bucket_order=0 [ 1.835849] initcall workingset_init+0x1/0x68 returned 0 after 1589 usecs [ 1.837800] calling slab_sysfs_init+0x1/0xac @ 1 [ 2.099890] initcall slab_sysfs_init+0x1/0xac returned 0 after 253921 usecs [ 2.101930] calling fcntl_init+0x1/0x28 @ 1 [ 2.103785] initcall fcntl_init+0x1/0x28 returned 0 after 271 usecs [ 2.105723] calling proc_filesystems_init+0x1/0x20 @ 1 [ 2.107574] initcall proc_filesystems_init+0x1/0x20 returned 0 after 96 usecs [ 2.109977] calling start_dirtytime_writeback+0x1/0x24 @ 1 [ 2.111831] initcall start_dirtytime_writeback+0x1/0x24 returned 0 after 28 usecs [ 2.114200] calling blkdev_init+0x1/0x10 @ 1 [ 2.116326] initcall blkdev_init+0x1/0x10 returned 0 after 484 usecs [ 2.118317] calling dio_init+0x1/0x28 @ 1 [ 2.123085] initcall dio_init+0x1/0x28 returned 0 after 2806 usecs [ 2.125044] calling io_uring_init+0x1/0x28 @ 1 [ 2.126944] initcall io_uring_init+0x1/0x28 returned 0 after 229 usecs [ 2.128973] calling crypto_algapi_init+0x1/0xc @ 1 [ 2.131136] initcall crypto_algapi_init+0x1/0xc returned 0 after 91 usecs [ 2.133246] calling proc_genhd_init+0x1/0x3c @ 1 [ 2.135177] initcall proc_genhd_init+0x1/0x3c returned 0 after 181 usecs [ 2.137283] calling deadline_init+0x1/0xc @ 1 [ 2.138985] io scheduler mq-deadline registered [ 2.204145] initcall deadline_init+0x1/0xc returned 0 after 63637 usecs [ 2.206230] calling kyber_init+0x1/0xc @ 1 [ 2.207895] io scheduler kyber registered [ 2.209005] initcall kyber_init+0x1/0xc returned 0 after 1092 usecs [ 2.211339] calling of_fixed_factor_clk_driver_init+0x1/0xc @ 1 [ 2.215120] initcall of_fixed_factor_clk_driver_init+0x1/0xc returned 0 after 1730 usecs [ 2.217701] calling of_fixed_clk_driver_init+0x1/0xc @ 1 [ 2.221661] initcall of_fixed_clk_driver_init+0x1/0xc returned 0 after 1712 usecs [ 2.224135] calling gpio_clk_driver_init+0x1/0xc @ 1 [ 2.228240] initcall gpio_clk_driver_init+0x1/0xc returned 0 after 2212 usecs [ 2.230756] calling reset_simple_driver_init+0x1/0xc @ 1 [ 2.241954] initcall reset_simple_driver_init+0x1/0xc returned 0 after 9384 usecs [ 2.244115] calling n_null_init+0x1/0x14 @ 1 [ 2.245544] initcall n_null_init+0x1/0x14 returned 0 after 8 usecs [ 2.247298] calling sysrq_init+0x1/0x30 @ 1 [ 2.248958] initcall sysrq_init+0x1/0x30 returned 0 after 250 usecs [ 2.251031] calling stm32_usart_init+0x1/0x3c @ 1 [ 2.252533] STM32 USART driver initialized [ 2.318786] 40011000.serial: ttySTM0 at MMIO 0x40011000 (irq = 34, base_baud = 5625000) is a stm32-usart [ 2.621807] random: fast init done [ 4.771542] printk: console [ttySTM0] enabled [ 4.787938] initcall stm32_usart_init+0x1/0x3c returned 0 after 2475980 usecs [ 4.797206] calling drm_kms_helper_init+0x1/0x4 @ 1 [ 4.803784] initcall drm_kms_helper_init+0x1/0x4 returned 0 after 5 usecs [ 4.812510] calling drm_core_init+0x1/0x6c @ 1 [ 4.819058] initcall drm_core_init+0x1/0x6c returned 0 after 713 usecs [ 4.827480] calling stm_drm_platform_driver_init+0x1/0xc @ 1 [ 4.837132] initcall stm_drm_platform_driver_init+0x1/0xc returned 0 after 2110 usecs [ 4.847280] calling ili9341_driver_init+0x1/0xc @ 1 [ 4.854790] initcall ili9341_driver_init+0x1/0xc returned 0 after 902 usecs [ 4.863731] calling topology_sysfs_init+0x1/0x28 @ 1 [ 4.872183] initcall topology_sysfs_init+0x1/0x28 returned 0 after 1709 usecs [ 4.881343] calling cacheinfo_sysfs_init+0x1/0x28 @ 1 [ 4.887929] initcall cacheinfo_sysfs_init+0x1/0x28 returned -2 after 22 usecs [ 4.897093] calling stm32_timers_driver_init+0x1/0xc @ 1 [ 4.906312] initcall stm32_timers_driver_init+0x1/0xc returned 0 after 2044 usecs [ 4.916084] calling stm32_spi_driver_init+0x1/0xc @ 1 [ 4.962302] panel-ilitek-ili9341 spi0.1: get optional vcc failed [ 4.973282] spi_stm32 40015000.spi: driver initialized [ 4.985767] initcall stm32_spi_driver_init+0x1/0xc returned 0 after 61391 usecs [ 4.995342] calling evdev_init+0x1/0xc @ 1 [ 5.001419] initcall evdev_init+0x1/0xc returned 0 after 20 usecs [ 5.009129] calling stmpe_ts_driver_init+0x1/0xc @ 1 [ 5.017103] initcall stmpe_ts_driver_init+0x1/0xc returned 0 after 1224 usecs [ 5.026632] calling i2c_dev_init+0x1/0x8c @ 1 [ 5.032648] i2c /dev entries driver [ 5.037535] initcall i2c_dev_init+0x1/0x8c returned 0 after 4772 usecs [ 5.046023] calling stm32f4_i2c_driver_init+0x1/0xc @ 1 [ 5.080317] stmpe-i2c 0-0041: stmpe811 detected, chip id: 0x811 [ 5.132138] stmpe-ts stmpe-ts: DMA mask not set [ 5.162721] input: stmpe-ts as /devices/platform/soc/40005c00.i2c/i2c-0/0-0041/stmpe-ts/input/input0 [ 5.188740] stm32f4-i2c 40005c00.i2c: STM32F4 I2C driver registered [ 5.200250] initcall stm32f4_i2c_driver_init+0x1/0xc returned 0 after 143741 usecs [ 5.212863] calling init_machine_late+0x1/0x58 @ 1 [ 5.219568] initcall init_machine_late+0x1/0x58 returned 0 after 31 usecs [ 5.228245] calling init_oops_id+0x1/0x2c @ 1 [ 5.234418] initcall init_oops_id+0x1/0x2c returned 0 after 163 usecs [ 5.242778] calling reboot_ksysfs_init+0x1/0x38 @ 1 [ 5.249955] initcall reboot_ksysfs_init+0x1/0x38 returned 0 after 298 usecs [ 5.258934] calling printk_late_init+0x1/0xec @ 1 [ 5.265323] initcall printk_late_init+0x1/0xec returned 0 after 29 usecs [ 5.273939] calling blk_timeout_init+0x1/0x10 @ 1 [ 5.280560] initcall blk_timeout_init+0x1/0x10 returned 0 after 6 usecs [ 5.289080] calling prandom_init_late+0x1/0x1c @ 1 [ 5.295825] initcall prandom_init_late+0x1/0x1c returned 0 after 10 usecs [ 5.304817] calling amba_deferred_retry+0x1/0x60 @ 1 [ 5.311556] initcall amba_deferred_retry+0x1/0x60 returned 0 after 11 usecs [ 5.320545] calling sync_state_resume_initcall+0x1/0xa @ 1 [ 5.327689] initcall sync_state_resume_initcall+0x1/0xa returned 0 after 15 usecs [ 5.337528] calling deferred_probe_initcall+0x1/0x50 @ 1 [ 5.396496] [drm] Initialized stm 1.0.0 20170330 for 40016800.display-controller on minor 0 [ 6.012158] panel-ilitek-ili9341 spi0.1: initialized display rgb interface [ 6.110848] Console: switching to colour frame buffer device 30x40 [ 6.378820] stm32-display 40016800.display-controller: [drm] fb0: stmdrmfb frame buffer device [ 6.523104] initcall deferred_probe_initcall+0x1/0x50 returned 0 after 1150630 usecs [ 6.634869] calling of_fdt_raw_init+0x1/0x50 @ 1 [ 6.721800] initcall of_fdt_raw_init+0x1/0x50 returned 0 after 10750 usecs [ 6.837947] calling fb_logo_late_init+0x1/0x10 @ 1 [ 6.918836] initcall fb_logo_late_init+0x1/0x10 returned 0 after 6 usecs [ 7.042600] calling clk_disable_unused+0x1/0x76 @ 1 [ 7.130445] initcall clk_disable_unused+0x1/0x76 returned 0 after 2337 usecs [ 7.258552] calling of_platform_sync_state_init+0x1/0xa @ 1 [ 7.384228] initcall of_platform_sync_state_init+0x1/0xa returned 0 after 17 usecs [ 7.551241] Freeing unused kernel memory: 324K [ 7.635490] This architecture does not have kernel memory protection. [ 7.761787] Run /linuxrc as init process [ 7.845353] with arguments: [ 7.927244] /linuxrc [ 7.970672] with environment: [ 8.051435] HOME=/ [ 8.093230] TERM=linux
From: Dillon Min <dillon.minfei@gmail.com> This seriese fix three i2c/clk bug for stm32 f4/f7 - kernel runing in sdram, i2c driver get data timeout - ltdc clk turn off after kernel console active - kernel hang in set ltdc clock rate clk bug found on stm32f429/f469-disco board Hi Patrice: below is the guide to verify the patch: setup test env with following files(link at below 'files link'): [1] u-boot-dtb.bin [2] rootfs zip file (used in kernel initramfs) [3] u-boot's mkimage to create itb file [4] kernel config file [5] my itb with-or-without i2c patch This patch based on kernel commit: 88b06399c9c766c283e070b022b5ceafa4f63f19 Note: panel-ilitek-ili9341.c is the driver which was submitted last year, but not get accepted. it's used to setup touch screen calibration, then test i2c. create itb file(please correct path of 'data'): ./mkimage -f stm32.its stm32.itb HW setup: console: PA9, PA10 usart0 serial@40011000 115200 8n1 -- flash u-boot.bin to stm32f429-disco on PC $ sudo openocd -f board/stm32f429discovery.cfg -c \ '{PATH-TO-YOUR-UBOOT}/u-boot-dtb.bin 0x08000000 exit reset' -- setup kernel load bootargs at u-boot U-Boot > setenv bootargs 'console=tty0 console=ttySTM0,115200 root=/dev/ram rdinit=/linuxrc loglevel=8 fbcon=rotate:2' U-Boot > loady;bootm (download stm32.dtb or your kernel with itb format, or download zImage, dtb) -- setup ts_calibrate running env on stm32f429-disco / # export TSLIB_CONFFILE=/etc/ts.conf / # export TSLIB_TSDEVICE=/dev/input/event0 / # export TSLIB_CONSOLEDEVICE=none / # export TSLIB_FBDEVICE=/dev/fb0 -- clear screen / # ./fb -- run ts_calibrate / # ts_calibrate (you can calibrate touchscreen now, and get below errors) [ 113.942087] stmpe-i2c0-0041: failed to read regs 0x52: -110 [ 114.063598] stmpe-i2c 0-0041: failed to read reg 0x4b: -16 [ 114.185629] stmpe-i2c 0-0041: failed to read reg 0x40: -16 [ 114.307257] stmpe-i2c 0-0041: failed to write reg 0xb: -16 ... with i2c patch applied, you will find below logs: RAW---------------------> 3164 908 183 118.110884 TS_READ_RAW----> x = 3164, y =908, pressure = 183 RAW---------------------> 3166 922 126 118.138946 TS_READ_RAW----> x = 3166, y = 922, pressure = 126 .... files link: https://drive.google.com/drive/folders/1qNbjChcB6UGtKzne2F5x9_WG_sZFyo3o?usp=sharing Dillon Min (4): drm/panel: Add ilitek ili9341 panel driver i2c: stm32f4: Fix stmpe811 get xyz data timeout issue clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after kernel startup drivers/clk/clk-stm32f4.c | 10 +- drivers/gpu/drm/panel/Kconfig | 12 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 1285 ++++++++++++++++++++++++++ drivers/i2c/busses/i2c-stm32f4.c | 12 +- 5 files changed, 1310 insertions(+), 10 deletions(-) create mode 100755 drivers/gpu/drm/panel/panel-ilitek-ili9341.c