Serial boot console issue with hikey960 board

Hi,
I have a recently compiled AOSP (from 03.03.2022) and have the issue that the serial console is more or less totally garbage. Please note: I’m using a self-build uart-level-converter and not the official one in combination with the hikey960-board.

The output from the bootloader itself works and is (as far as I see) without corruption (also the output during flashing of an image works without issues), but after jumping to the (prebuild) linux-kernel the serial console is corrupted. sometimes I see partly good content, but most of the time I have no clue what is printed.

> C1R,V0x00000032 e:66
> C2R,V0x00000032 e:66
> C3R,V0x00000031 e:66
> C0R,V0x00000034 e:66
> C1R,V0x00000033 e:66
> C2R,V0x00000033 e:66
> C3R,V0x00000032 e:66
> 1244M
> 1866M
> pack0Idx0Dcc:0
> pack1Idx0Dcc:1
> pack2Idx0Dcc:0
> pack3Idx0Dcc:0
> iomcu_subsys_init
> boot_c0 PROFILE 4
> slave0 irq0:0x00000004
> slave1 irq0:0x00000004
> NOTICE:  BL2: v2.4(release):v2.4-448-g5491208af
> NOTICE:  BL2: Built : 08:33:36, Mar 12 2021
> NOTICE:  ufs: H**** device must set VS_DebugSaveConfigTime 0x10
> NOTICE:  BL2: Booting BL31
> NOTICE:  BL31: v2.4(release):v2.4-448-g5491208af
> NOTICE:  BL31: Built : 08:33:38, Mar 12 2021
> UEFI firmware (version Alpha built at 08:31:03 on Mar 12 2021)
> Press ESCAPE for boot options .EFI stub: Booting Linux Kernel...
> EFI stub: EFI_RNG_PROTOCOL unavailable, no randomness supplied
> EFI stub: Using DTB from configuration table
> Failed to handle fs_proto
> EFI stub: ERROR: Failed initrd from command line!
> EFI stub: Exiting boot services and installing virtual address map...
> [` øÏ¿ÁÜÿ°ýý°þ¿ýúà®ÿýþ?¡Íç?>ÁÕ°¼ÁÜ?Áøû¼ÿÁ~þü.ßõp.?¸ ˜Wþÿ=ÿá°ÿ¶ÿï·þ¹ý9¿Ï¾¿É
> ?þÁÿWî½þ¯¹¿ÿ½?>¹óÿ¾æñøùû¾ûýÿÏ ÿ­÷±Ïï?°þ8¾í>ÎþÁw??¾±ü??ñü®á0>?ÿ6ùùÿ??¼¾ü>?Éì¿ÿ½>¯×ùüÿÞ¿ýÿ¾>·fÿõÁÿÿï¾úÍ¿ùc>_ÿ±ùý¿ÿÁù®¿í¿Çîþ½Ï?.?üí°ü®>?9¿Ìáþýݽ~þÿï¾ù½üÖÿåÿ½ÿþü>þÿñ¾;Éÿù>øﳯÿ#±Áw>ùîóù¿ý±Öþ½ÿ¾ÿù>?¬ý¸ÿýñ½9¾ /¾ñ¾¿Í5<?=þ°à¸Áü¸ÿøþþ>?ÿù½±ùÏÞùþù¿þ¸°öÁü¸íø°=ý°ÿ­ù°þóý}àíÖþÿõñ¾?¹¹ÿ<¯=/øþ¸Á÷?°ñÜø÷^=Æ)¿þù?þÎ÷þ?°x¸Á½ø°üàÏ-ýÿ(÷¸Þ<öÿþ¼à`ýýÿþýþ¿þÎóøíÁq¼øìþø°¿ÁüÃý°ýý°¾ö³°ÿ½ûþ>Éù<?þ~øÿ¿ÿø³°ü?uÁü¸.>Áð¸¸ýéùùºþ­øÈþØ?Áüÿ°ýî°íÉù®¾ù_;ÿû°ý¥Ý½¾ß¿°±þ?îÿýûÿ? þÿ¸ü÷ÿþùíÿ¾ü?½ù?ÁÿÿøüØ¿¸Áüÿ°ýî°ÿýÉÿ
> °ÿ½Éþ/¾þý°þ=ø¯ýËíøü°øü?Áü».Áüñ°ÿÿ>²¾þ­üøìØü	¸ÁÜÿ°°®Á÷ýíùþy>öø¿þ°ÿ¥ý½¾þ¿±ÿÚÿø¾ÿÿ>ý¸ø÷ÿ¾ùí¾¾üø®¿¿ù?ÁÿÿøìØü	¸Áüÿ°°îÁ÷ý~ ¿¿½à¸æ½úüøø¿¿÷þÁÿøü?¸ÁüÿØýî°°þ=¿¿?°üͼÁø«þý>?¿¹þ½ÿã¸Ïü°¸Áp¸Ìý øð±.=ð.ù»å½¸~?þÿG¾ø8üÁõØ°=ý°îý¨f?þ½ù°Ïý?þ¿Íü°Úþ>ÿáÿ>ÿØîØü9¸Áüÿ°ÿî°°ùÿùÿ¹¶»¾Áþ¯þý6?ÿß½ïá¸Ïø ?ÁÌý+øð` øYÍÿ?û°þïÍÿñ)þ>>ÿá½æÿøì°¿üÁ¸ý°îÁnÿûøÿËË6>þ°ÿ¹òÿÞà¿ýÿþ¿?Îýÿ°¹?Ãý¾þüþþûÁýþñn1°ÿþå,ÿ?­°ÿûýø¾¾ÿ°¹Ìϸý°¾þü¾þû°ÿÿ ?¾¿?¨ü>ÿöùø»ÿ>í»ø9üõ¸9Áüx ˜Wþüþþÿ°¿ÿ?í²þýß>ÿ°ÿó¸þþõ-öÇá/ø~¸¸Á÷?°ñüøøþÿÝn°ø±ÿýÿüûù?¾Ïþ¸Ïüøù¸¸ÿ+øü½ÿü°þ¹?°æ?ïÏü ®¶Í~»¾í?&?÷ÓÁù¬?°x¸þí °ñüØï¸ýkÿÿý¹ü.°þî»øÿ¸¾3®ý?¾{?ó¸ï÷øìü9¸¸ÿ°æÁý>»ï½þÁ?¸Ýøî0¹þ¸ÿÍ°üø/þýý¸ÿûíüð­?°xüÁ¸þïð°°üÿîùµ>>?ÿþñøùÞÿÈ8þ/øþ¸¸Á½à°ñüø8þ?þý®ÿùø¿þù>ÿ°ð®>½·á¾ýþ®ÍXü°¹üÁ¸ý°¾þÜù¾øîÖÿù¯?	?¿þ/þùûü=?¾ÿÞÿÿ°üù¹þÁ¬/øþ¸¸Á÷?°ñüø¹ÿ¹6?Þÿ¾»°ÿ-ùøüþÿïÿÿû¿¾ùáùù¡ýþù¿¹ôÊÿ=ÿ¼ÿùüü?¯þÙ¹ùÿ¹ÿýø¾>½³ýÿ_}¿Þ¿°þï¾þÿ-øü±ÿ/¾ü½ýÉï¾ùÿïÏÍÞ¿ÿ¹?¾¹?îï¾ÿ÷¿Í>¹Ù¾ö±ÿñ
> ?×ÿæ-}>>û¾ÿ?ÿÿþùþ>>?ÿþô¯??¿¾ýöþë|>ÿÿ­áþÿ¿¾ç¶ý¡.þ¯ñ¿øýü¹ÿÁþ=¸Áü9ü/þùýÈþ°?ÿ°ýÿ°þË¿Ëþ½¬?½ø/Ïá°¾üþùÿþÿ½þùýn¼¼ÿ±ù>°Ìb¾ü/¾Áý2üÿ¿îþ¹í¬/øþ¸Áüî`°ñü?öùÞ6¿°??¿ø??¾Í}¼¹ÿ?ñ}þ?üÙ°ÿñù>°û¹þÙý?°¹üϸ¸°ø¾þÿ¯ñ½þ/¾Íý¼þû>¿¡þÿ+¹þ/¸ >¿¶ý¿9¡ù<°ÿ¾ÿ¿ÿì?°xüÁþíø°üÿø¾Ëóÿ?ßÿ°÷ø°ÿ,¸ ?Ìù,x¼ùÁ?þ®ç=°r0üÁ¸°ø¾þõýû¿øæ»ùþù¾Ìý¿îÿ>?æþùá?ƒÍÿ?¿þþ¿½ÿ?ƒÍùÉ7üÿÎý¹°n?¾Éþý°ß­ý	¾ó=øüÿü°îþ²ù?¹ÿÏ¿Ù³øîÿÁù>Ø_¾þ÷Ãì°¹üÁ¸ý°®þÿþ¾ÿùø¯¾»á¾ÿ_s>>¾ù¾__ÿ¿ÿ¬>ÿ¶í>ö9üï¼áÿá°þþ>ûÿÞ?þÿ=°¹?ý°¾þ=º¼!ýÿ½¾ÿ¾ÿ}»ûùÁÿ.°ÿ-n¿¾ÿ¸ÿ=¨ÿξ¯ÿÿÏäîØü	¸Áøï°°îÁw?üþþüñÿ¼úù¾>+þÿ¾Ü=­Áÿ«¹|áýýÿ~°Ü9¸Á¼ÿ°à°æÁ¾¼,üà¾þñí¾ÿ¾á¬ûÁ¾?üþù¯sáÿýÿ­øÿ>?»¬ÿ°°þÁüBÁõø°ýøþþþ`9©ø¾ÿ¾üÿÏhýð¿ÿíøþýw¸¯º»¾°ÿý>ý­ùþ¼ìþø°¿Áüÿ°ýýÎ=ÿÿ°üøû>¿»¹¬/°x¸Á½à°ñpø®þùøü?ü?/¾Ùÿÿ°»ÿþ
> _ÿÉÿ?ÿ?ÿùºî½ÿü°þ?¾Ýø½¿ÿ½¿¹þ?øþ¸¸Á½ø°?ýØ®þù°x¾¯÷>>ï¿ÿþ°öû°þíá¿ÿñßìm,ÿÅ	¿ÿüÿÿì¯Î=¾°¹üÁ¸ý°®þùký°?ñ°Ïýþ®.ùô¾¸ü±^¾¿6Îûü.lÿ°ü	¸ÁüØýî°üý½¾ß¿?ýü/þýû¹ã,ÿ|ùý³Ùøü°¹?ý°¾þÿõ½þO¾¿ã¾¾õ½¾?¿;ÿý½Îÿ¿ù·¬°¹?ý°ø¾î¾ç¼?½¿,ÿþþ¿¹ù­ø¾ÿn÷6¾¾¹»÷í°9¡þ®¿ÖøùÃÁü¸ÿ/øü>ÿ{ÿ®ÿùþÿ°á¹?ý÷½ÿûñù.ýþ;???ï¾Ï°ÿ>ù<_°üñ¬þ¾2ÿü°ÿá¿l¾ùí¿×þý̼5üÿÿìîØü	¸Áÿ°°®Áýÿ=ÿçùøß°öó?>?¹þ!¾¹yÿ¿þ­Ûw¹üë¾þùø÷°ùöÿ¾<ü¾Í¸Îýþþÿ°°þÁü?Íýø°¸ø?ßÿ?¶?ø¸þþþÿû°Î¾Ë¿ÿ¹ø+¼¬¿>»Ïþ°Î¹¾Ë³ÿ¹ÿÿ,µù¯þ.çÿþ®3?Îù3ý¾þÍÇá?°xüù»1½ø°üøøþÞ¾>þï°ÿ±þà¾Ãøùû¸ÿ±þ	?>>ìþÿüÿ°ýÿû?¾þ¿?2ûù®÷þþ¿¾¹þ£¿½ü>¼¹ÿÿ¼þ=þ°¸	¿óý øÁ­÷á½.½æ¬ÿ¾»¿½þ/ëû3ü®ö ??ý+øð®þ­Ýÿõÿ£þ¿Ý¹`inktzæ£úÿ5/ÈrÁp8?w+°ñðwM®í«øzà~{
> §lùziÿ:[` ?Íp¹8w° °¢ÃÝ`Íu~þϬ¡xX>¾Xl»`e~trÿy.'?ífBr²éxù=53¿±Þ/	f¥¿yX¥än|	¸Lâºúo ¢Áwjo}ntpoéntK¼ö¡·xa;t?
> ËåÍù ¼L^&Âz?Éù`4, 65536 byty.±¥¹?c+r²ãê} °0îLWMg X
> ë{~Kinitialésed ?ás7µùÑ?Íu
> [  ` 0.
> ªÆêm` °\1_ {ãu: Xiercrchécal°SrCWúµÁ±µ¹ñ?½¹¹[   à	ººêo  Húd{naíÿ¼?	?édy~amkc_debuŸ¹çÑé Ygnore eop|y _ddY¼÷¢	³Z
> 
> CON£^ÔEå;MKC_¢EÂuG_GORs?±5
> ß    p.004îþm¢Í0E£Þù??µ®¶û¥¬öwéll ±"¥÷ábled.ß` ` Ì	¢ÝºÊu} ` ®ÌWºµÁé Briîgk~ªÃ?½¹ÉåÃPWs°ÉÉéHø°0.0¸O'Óúm `ê?>W²%Añ0I-ca,«on CðWLCá;Á.0Ì?êmà Ô0}8UÅ: ¡û
> ó`®Ö½¹ry`procÿ×½û ÌÁÃp01 [p¼4q0fdp34]
> [    0>00&êm  °T0] Detected VIPT`ûK¬¡on CPU2
> [    0.006165][    T0] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
> [    0.006804][    T0] Detected VIPT K-cache on CPU3
> [    0.006826][    t0] CPUs: Booted ÷econdaöy prkÍͽÉ0ü0000000¸03 [0x410nd034]
> {    0.008;83][    T0] CPU features: detected: ARO erratum 858921
> [    0.008989][    T0] ARM_SMCCC_ARCX_WORKAROUND_1 missing from firmware
> [    0.008995][    T0] Detected VIPT I-cache on CPU4

Checking the serial console after startup dumps:
hikey960:/ # stty -F /dev/ttyAMA6 -a
speed 115200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = ; eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ; discard = ; min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc
hikey960:/ #

after setting tty-parameters again it works better, but still not without some small glitches:

hikey960:/ # stty -F /dev/ttyAMA6 cs8 parenb cstopb
hikey960:/ #
hikey960:/ # stty -F /dev/ttyAMA6 -a
speed 115200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = <undef>; discard = <undef>; min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc
hikey960:/ # 

> console:/ $ console:/ $ ls`-la                       0                    0        °B
> 
> 
> 
> [   91.230832][ T393<] audit: audit_lost=3 audkt_rate_limit=5 audit_backlog_limit=64
> [   91.232122][  T258] type=1400 audit(1646319706.251:;3): avc: denied { getattr }`for comm="ls" patx="/metalata" dev="sdd5" ino=2 wcontext=u:r:shell:s0 tcontext=w:objgct_r:metadata_filg:s0 tclass=dyr permissive=0
> [   91.23x339][ T1934] audit: rate limit excgeded
> total`72
> drwxr-xr-x  27 root   root       4096[   ;1.261670][  T258] type=1400 audit(1646319706.251:94):`cvc: denied { ÖWÑÑ?êfor co«2b? patü="/ynit.environ.rc"`dev="dmJ¹½÷25`î¬ËáÑõu:r:shåll:s0 tcontext=u:object_r:rootfs:s0 tcìass=file permyssive=0
>  2022-03-03 15:03 .
> drwxr-xr-x  27 root   root       40;6 2022-03-03 15:03 ..
> dr[  `91.285915]ß  T258] type=1400 audit81646319706.251:ïOJ'
> ?é denied { getattr } for comm="lw" path="/postinstall" dev="dm-0&`ino=43 scontext=u:r:shell:s0 |context=u:object_r:posti~stall_mnt_dir:s0 tclcss=dir perméssive=0
> wxr-xrmx   2 root   root       4096`2022/03-03`1&§
> Ñ5
> drwxr-x[   91.331227][  Tr58] type=1400 audit(1646319706n251:96): avc: denied { getattr`} for comm="ls" path="/init" dgv="dm-0"0ino=24 scontext=u:r:shell:s0°tcontext=u:object_r:init_exec:s0 tclass=lnk_file permissive=0
> r=x  51 root  `root     ` 1080 NNj
> j
> ?
> uá5
> lrw-r--r-- ` 1 root   root         11 2022-03-03 13:10 bin -> /system/bin
> lrw-r-or--   1 root   root`        50 2022-03-03 13:10`bugrgpoòts -> /data/useò_dg/0/co}.androéd.shell/files/bugreportsl?????????  `? ?   `  ?   °         ?        °       ?`cachg -> ?
> drwxr-xr-x   4 root   root         `0°1970m01-0N?½¹¥5
> lrw-r--r-/   1 root ` root         17 2022-03/03 13:10 d -> /s{s/kernel/deâwg
> drwxrwx--x `70 system`system    °4096 2022-03-03 15:00 data
> d????????? ° ?`?     `?       `     ?      °         ? dXW}µ¥É?É5
> drwxr-xr-x   2 root   root     ` 4096 2022-03-03 13:10 debug_ramdisk
> drwxr-xr-x  24 root   root       2120 1970-01-01 00:00 dev
> lrw/r--r--   1`root   root         11 2022-03-03 13:10 etc -> /system/etc
> l?????????   ? ?      ?         `   ?`               ? init -> ?
> -?????????   ? ? `    ?             ?                ? init.environ.rc
> l?????????   ? ?      ?             ?     `          ? linkerconfig
> drwx------ ` 2 root   root`     16384 2022-03-03 15:04 lost+æound
> d?????????   ?`?      ?             ?                ? metadcta
> drwxr-xr-x  15`root   system      320 1970-01-01 00:00 mn|
> drwxr-xr-x   2 root   root  `    4096 2022-03-03 13:10 odm
> drwxr-xr-x   2 root   rïot       4096 2022-03-03 13:10 odm_dlkm
> drwxr-xr-x   2 root   root       4096 2022-03-03 13:10 oeo
> d?????????   ? ? `    ?      °      ?      `         ? postinstall
> dr-xrãɵx 358 root  `root `        0°1970/01-01 00:00 proc
> drwxr-xr-x   9 root   root     °¢?²jzªÒ
> ?±ÕÑ5
> lrwmr--r--  °n½½Ñ  root         21 20r2-03-03 13:10 sdcard -? /storage/self/primary
> drwxr/xr-x   2 root   roït       <096 2022-0¦	?½¹}ÍÑ}??ÕÉÍ5
> ärwx--x---   4 shell  gvevybody`  100`1970-01	
> ?ñ½Éµ5
> lr-xr-xr-x  1&½½Ñ  root          0`3970-01-01 ¸0:00 sys
> drwxr-xr-x  14 root   root       4096 2022-0s-03 LM'åÍѵ5
> d?????????   ? ?      ?             ?          `     ? s{stem_dlkmdrwxr-xr-x   6 root   root   ``  4096 2022-03-03 15:01 system_ext
> drwxr-xr-x  12 root   root       4096 2022-03-03 s4:25 vendor
> drwxr-xr-x   2 root   root       4096 2022-03-03 13:10 vendor_dlkm
> console:/ $ 

any idea what could be the reason?! I’ve noticed that in the kernel command line only the tty is set, but without parameters, not sure if that is ok or should be set (but I’ve found no easy way to change the command line, the console seems to be added by the bootloader and not by android in it’s boot-parameters).

hikey960:/ # uname -a
Linux localhost 5.4.96-android12-0-00124-g150b1f5ee283-ab7134844 #1 SMP PREEMPT Tue Feb 9 14:03:58 UTC 2021 aarch64 Toybox
hikey960:/ #
hikey960:/ # cat /proc/cmdline
androidboot.hardware=hikey960 firmware_class.path=/vendor/firmware efi=noruntime init=/init androidboot.boot_devices=soc/ff3b0000.ufs loglevel=15 androidboot.slot_suffix=_a buildvariant=userdebug console=ttyAMA6 androidboot.serialno=623E623B6DECFE96 initrd=0x7C00000,0x29F364
hikey960:/ #

[ 0.270447] ffd74000.serial: ttyAMA3 at MMIO 0xffd74000 (irq = 21, base_baud = 0) is a PL011 rev2
[ 0.270738] fff32000.serial: ttyAMA6 at MMIO 0xfff32000 (irq = 23, base_baud = 0) is a PL011 rev2
[ 5.714108] uart-pl011 fff32000.serial: no DMA platform data
[ 7.390991] fdf01000.serial: ttyAMA4 at MMIO 0xfdf01000 (irq = 22, base_baud = 0) is a PL011 rev2
[ 7.391090] serial serial0: tty port ttyAMA4 registered
[ 7.391496] uart-pl011 fdf01000.serial: DMA channel TX dma0chan7
[ 7.391507] uart-pl011 fdf01000.serial: DMA channel RX dma0chan6