summary refs log tree commit diff stats
path: root/results/classifier/zero-shot/105/boot/1734474
blob: d1bb421dc6806aefc818497d0983e038b683e985 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
boot: 0.640
device: 0.525
socket: 0.522
semantic: 0.484
other: 0.427
vnc: 0.351
instruction: 0.330
graphic: 0.282
mistranslation: 0.270
network: 0.245
KVM: 0.160
assembly: 0.083

Maemo does not boot on emulated N800

I start QEMU with qemu-system-arm-m 130 -M n800 -kernel zImage.1 -mtdblock maemo.img -append "root=/dev/mtdblock3 rootfstype=jffs2"
On QEMU 1.2.0 see "NOKIA" logo and then desktop appears, but on 1.5.0 and newer (including latest versions) I see only white screen and no signs of life. Was this caused by regression or any syntax change?

UPD: Maemo will boot on the second attempt if I reset the emulator manually.

That's a regression, but unfortunately the n800 boards aren't really maintained (I don't have any test images to hand, and the hardware is long-gone these days). You could try a git bisect to see what commit broke, if you want to investigate.


Oops, I should have asked for the image to reproduce with back in 2017 when this bug was first filed :-(  I don't suppose you still have it ?


It's available here: https://4pda.ru/forum/index.php?showtopic=870847

Thanks. I can confirm that there's been a regression since 1.2.0 that's still not fixed in master.


Bisection thinks commit cb5ef3fa1871522a08 is the cause.


This change on current head-of-git, which is effectively just reverting the logic-change part of commit cb5ef3fa1871522a08, is sufficient to allow the n800 image to boot again. 
But that commit was trying to fix a bug, so we probably need to look more carefully at the logic rather than just reverting it...

diff --git a/hw/misc/tmp105.c b/hw/misc/tmp105.c
index b47120492a..1813477268 100644
--- a/hw/misc/tmp105.c
+++ b/hw/misc/tmp105.c
@@ -161,14 +161,12 @@ static int tmp105_tx(I2CSlave *i2c, uint8_t data)
 {
     TMP105State *s = TMP105(i2c);
 
-    if (s->len == 0) {
+    if (!s->len++) {
         s->pointer = data;
-        s->len++;
     } else {
         if (s->len <= 2) {
             s->buf[s->len - 1] = data;
         }
-        s->len++;
         tmp105_write(s);
     }
 


Should be fixed by this patch series:
https://<email address hidden>/

Commit cb5ef3fa1871522a08 is correct -- it just exposed an underlying bug in the TMP105 temperature sensor device.


Fixed in v5.2.0?
ab135622cf4 ("tmp105: Correct handling of temperature limit checks")
e1919889ef7 ("hw/misc/tmp105: reset the T_low and T_High registers")


Yes, I think we can close this now.