0

I have a task to build Buildroot with a new kernel for arm iMX287, Buildroot version is 2018.02.4, used to build with kernel v4.14.67, now I'm trying to build with kernel f5.10.48, the kernel builds normally, I write the kernel, file system, etc to the U-Boot, boot the system and see the following:

## Flattened Device Tree blob at 41000000
   Booting using the fdt blob at 0x41000000
   Loading Device Tree to 47b1b000, end 47b23148 ... OK

Starting kernel ...

data abort
pc : [<42000134>]          lr : [<28c82330>]
sp : 424cf570  ip : 900a40a6     fp : d6e26852
r10: 2687e604  r9 : c0dabbc0     r8 : 47b1b000
r7 : 000009e3  r6 : 424ce540     r5 : 420000a0  r4 : 40008000
r3 : 21162500  r2 : 29a2d619     r1 : 03b63138  r0 : e12c87c4
Flags: nzCv  IRQs off  FIQs off  Mode SVC_32
Resetting CPU ...

resetting ...

the following kernel configuration is used in the Buildroot:

CONFIG_POSIX_MQUEUE=y
CONFIG_EXT2_FS=m
CONFIG_EXT3_FS=m
CONFIG_SERIAL_MXS_AUART=m
CONFIG_SERIAL_MCTRL_GPIO=m
CONFIG_SND_MXS_SOC=m
CONFIG_SND_SOC_MXS_SGTL5000=m
CONFIG_SND_SOC_SGTL5000=m
CONFIG_CONFIGFS_FS=y
CONFIG_DEBUG_INFO=n
CONFIG_DEBUG_KERNEL=n
CONFIG_USB_OTG=y
CONFIG_USB_OTG_FSM=y
CONFIG_USB_ACM=y
CONFIG_U_SERIAL_CONSOLE=y
CONFIG_USB_G_SERIAL=m
CONFIG_USB_U_ETHER=m
CONFIG_USB_ETH=m
CONFIG_RTC_DRV_DS1307=y
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_NET_IPIP=m
CONFIG_NET_IP_TUNNEL=m
CONFIG_NET_UDP_TUNNEL=m
CONFIG_INET_TUNNEL=m
CONFIG_L2TP=m
CONFIG_TUN=m
CONFIG_NF_CONNTRACK=y
CONFIG_NF_NAT_REDIRECT=y
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
CONFIG_NF_CONNTRACK_IPV4=y
NF_LOG_IPV4=y
NF_REJECT_IPV4=y
CONFIG_NF_NAT_IPV4=y
CONFIG_NF_NAT_MASQUERADE_IPV4=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_NETMAP=y
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_NF_RAW=y
CONFIG_HZ_250=y
CONFIG_HZ=250
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
CONFIG_HAVE_GCC_PLUGINS=n
CONFIG_GCC_PLUGINS=n

while building the kernel, I see the following messages:

Using /home/max/work/buildroot/buildroot-2018.02.4/output/build/linux-5.10.48/.config as base
Merging new_kernel_defconfig
Value of CONFIG_POSIX_MQUEUE is redefined by fragment tm4/soyuz_new_kernel_defconfig:
Previous value: # CONFIG_POSIX_MQUEUE is not set
New value: CONFIG_POSIX_MQUEUE=y

Value of CONFIG_EXT2_FS is redefined by fragment tm4/soyuz_new_kernel_defconfig:
Previous value: # CONFIG_EXT2_FS is not set
New value: CONFIG_EXT2_FS=m

Value of CONFIG_EXT3_FS is redefined by fragment tm4/soyuz_new_kernel_defconfig:
Previous value: # CONFIG_EXT3_FS is not set
New value: CONFIG_EXT3_FS=m
...

after replacing the kernel, there were errors when compiling a DTB file with a new kernel, I solved the problem like this: I compiled dtc for arm statically, loaded dtc on the device and created a DTS file from /proc/device-tree, now the DTB is built without errors.

Any idea? I could understand what was wrong if there were some debug messages, but the kernel does not seem to be loaded at all.

0andriy
  • 4,183
  • 1
  • 24
  • 37
Ivan Ivanovich
  • 880
  • 1
  • 6
  • 15
  • *"I ... see the following: ..."* -- That snippet is too short to show how the boot is performed/initiated. Did you bother to verify that the kernel image looks correct in memory prior to execution? BTW reusing device drivers and DT source files (as well as the kernel **.config** file) in another kernel version can be problematic especially if you haven't checked for interface changes. E.G. Microchip/Atmel is very explicit about DT source is version specific; IDK about NXP/Freescale DT stability. A jump from 4.14 to 5.10 is rather large. – sawdust Jul 16 '21 at 00:25
  • 1
    a smaller memory area was read from nand to ram than the kernel occupies, I tweaked the uboot config and it all worked – Ivan Ivanovich Jul 17 '21 at 11:02

0 Answers0