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
|
Akita (and probably all Spitz-like / PXA270) platform does not load BIOS binary
Description of problem:
QEMU does not appear to load a binary file passed with the "-bios" argument for the "akita" target. This probably extends to other spitz-type systems.
Exptected behavior: qemu loads the binary into address 0x0000.
Actual behavior: address space at 0x0000 contains only zeros.
Steps to reproduce:
Terminal 1:
```
qemu-system-arm -M akita -bios c750.rom -s -S
```
Terminal 2:
```
gdb-multiarch
target remote localhost:1234
x/64i $pc
```
Result:
```
=> 0x0: andeq r0, r0, r0
0x4: andeq r0, r0, r0
0x8: andeq r0, r0, r0
0xc: andeq r0, r0, r0
0x10: andeq r0, r0, r0
```
Correct behavior (can demonstrate with virt machine):
Same as before, but start Terminal 1 with:
```
qemu-system-arm -M akita -bios c750.rom -s -S
```
Result:
```
=> 0x0: b 0x34
0x4: ldr pc, [pc, #156] ; 0xa8
0x8: ldr pc, [pc, #156] ; 0xac
0xc: ldr pc, [pc, #156] ; 0xb0
0x10: ldr pc, [pc, #156] ; 0xb4
0x14: nop ; (mov r0, r0)
0x18: ldr pc, [pc, #152] ; 0xb8
0x1c: ldr pc, [pc, #152] ; 0xbc
0x20: mov r0, #128 ; 0x80
0x24: b 0x2c
0x28: mov r0, #129 ; 0x81
0x2c: ldr r1, [pc, #140] ; 0xc0
0x30: str r0, [r1]
0x34: mrs lr, CPSR
0x38: bic lr, lr, #31
0x3c: orr lr, lr, #211 ; 0xd3
0x40: msr CPSR_fc, lr
```
Additional information:
File with very tiny boot ROM: [c750-tiny.rom](/uploads/045852c8b353174bf0b7a4193d0d1be0/c750-tiny.rom)
|