
On 18.09.18 17:52, Heinrich Schuchardt wrote:
On 09/19/2018 01:12 AM, Alexander Graf wrote:
On 17.09.18 15:44, Heinrich Schuchardt wrote:
On 09/16/2018 07:45 AM, Simon Glass wrote:
Hi Heinrich,
With https://patchwork.ozlabs.org/patch/965315/ we can see where the problem occurs. The ConsoleSandbox seems to hang on the detection of the console size (172*42 is the size of my console). This problem does not occur when running the same interactively.
I don't understand this. When I run u-boot with </dev/null it successfully times out and proceeds.
Alex
$ make mrproper && make sandbox_defconfig && make $ ./u-boot -v -d u-boot.dtb -c 'bootefi selftest'
leads to a segmentation fault. See output below.
This is the segmentation fault that leads to OSError when running 'make tests'.
Best regards
Heinrich Schuchardt
U-Boot 2018.09-00269-ga2b22dffcb (Sep 19 2018 - 02:47:16 +0200)
Model: sandbox DRAM: 128 MiB
Warning: host_lo MAC addresses don't match: Address in ROM is f2:1a:c7:df:78:d4 Address in environment is 00:00:11:22:33:44
Warning: host_enp2s0 MAC addresses don't match: Address in ROM is f2:1a:c7:df:78:d4 Address in environment is 00:00:11:22:33:45
Warning: host_wlp4s0 using MAC address from ROM MMC: In: cros-ec-keyb Out: vidconsole Err: vidconsole Model: sandbox SCSI: Net: eth0: host_lo, eth1: host_enp2s0, eth2: host_wlp4s0, eth3: eth@10002000 Found 0 disks Segmentation fault
With this patch I no longer see the segfault. I'm not sure though why the calculated y value is so incredibly out of range (multiples of the overall screen height).
diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c index 30086600fb..e95c06442f 100644 --- a/drivers/video/console_truetype.c +++ b/drivers/video/console_truetype.c @@ -248,6 +248,8 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y, &xoff, &yoff); if (!data) return width_frac; + if ((y + height) >= vid_priv->ysize) + return -EAGAIN;
/* Figure out where to write the character in the frame buffer */ bits = data;