No se ven más resultados en la console después de "Starting Kernel …"

Estoy probando un kernel más nuevo en mi Creator CI20 (v1) , pero si pruebo una versión del kernel de Linux 4.11.1 no puedo get ninguna salida después de u-boot. Esto lleva a la siguiente salida:

ci20# bootm 0x88000000; ## Booting kernel from Legacy Image at 88000000 ... Image Name: Linux-4.11.1 Image Type: MIPS Linux Kernel Image (uncompressed) Data Size: 5043676 Bytes = 4.8 MiB Load Address: 80010000 Entry Point: 8035d440 Verifying Checksum ... OK Loading Kernel Image ... OK Starting 

Pasos desde la computadora portátil:

 $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git $ git checkout v4.11.1 $ make ARCH=mips ci20_defconfig $ make ARCH=mips CROSS_COMPILE=mipsel-linux-gnu- uImage $ sudo cp arch/mips/boot/uImage.bin /tftpboot/uImage.4.11.1 $ sudo screen /dev/ttyUSB0 115200 

Pasos desde ci20:

 dhcp 0x88000000 192.168.0.14:uImage.4.11.1 bootm 0x88000000; 

Si repito exactamente los mismos pasos ahora usando 4.10.1, todo funciona como se espera y puedo ver que el núcleo arranca muy bien:

 $ git checkout v4.10.1 $ make ARCH=mips ci20_defconfig $ make ARCH=mips CROSS_COMPILE=mipsel-linux-gnu- uImage $ sudo cp arch/mips/boot/uImage.bin /tftpboot/uImage.4.10.1 

Para reference:

 $ grep CONFIG_CMDLINE ./arch/mips/configs/ci20_defconfig CONFIG_CMDLINE_BOOL=y CONFIG_CMDLINE="earlycon console=ttyS4,115200 clk_ignore_unused" 

¿Cómo debo search el problema con tty / uart que no muestra nada (sin recurrir a una operación de gisexto)?

Como no recibí ninguna respuesta / sugerencia, finalmente decidí pasar por una operación dolorosa de git bisect (~ 13 iteraciones) entre las dos tags: v4.10.1 (buena) y v4.11.1 (mala).

Esto me lleva a:

 % git bisect good 73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411 is the first bad commit commit 73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411 Author: Marcin Nowakowski <marcin.nowakowski@imgtec.com> Date: Wed Nov 23 14:43:49 2016 +0100 MIPS: fix mem=X@Y commandline processing When a memory offset is specified through the commandline, add the memory in range PHYS_OFFSET:Y as reserved memory area. Otherwise the bootmem allocator is initialised with low page equal to min_low_pfn = PHYS_OFFSET, and in free_all_bootmem will process pages starting from min_low_pfn instead of PFN(Y). Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/14613/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> :040000 040000 fe26fcf6d072cbaedac5a417f9f6424df16d331c b99681a22464164b88c6a3cf77b1b87957cd95d6 M arch 

Mirando el código en línea aquí me di count de que el problema estaba en mi configuration actual de u-boot, que dice:

 ci20# printenv baudrate=115200 board_date=20140704 board_mfr=NP bootargs=console=ttyS4,115200 console=tty0 mem=256M@0x0 mem=768M@0x30000000 rootwait quiet rw root=/dev/mmcblk0p1 bootcmd=run ethargs; ext4load mmc 0:1 0x88000000 /boot/uImage; bootm 0x88000000 bootdelay=1 ethact=dm9000 ethaddr=d0:31:10:ff:7d:20 ethargs=env set bootargs ${bootargs} dm9000.mac_addr=${ethaddr} loads_echo=1 serial#=1255 stderr=eserial0,eserial4 stdin=eserial0,eserial4 stdout=eserial0,eserial4 Environment size: 488/32764 bytes 

Aún no lo he probado, pero parece que la variable mem env siempre se ha inicializado a un valor falso (seguí las instrucciones ), pero esto comenzó hace poco a ser un problema.

Lo siguiente puede indicar un error de copyr / pegar:

 bootargs=console=ttyS4,115200 console=tty0 mem=256M@0x0 mem=768M@0x30000000 rootwait quiet rw root=/dev/mmcblk0p1 

Resulta que esto fue una regresión real introducida: