CM_CTRL always reads as 0x00000000 (arm/integratorcp)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
qemu -version: QEMU PC emulator version 0.12.5, Copyright (c) 2003-2008 Fabrice Bellard
uname -a: Linux zenwalk 2.6.37.4 #1 SMP PREEMPT Fri Mar 18 18:17:50 CET 2011 i686 Intel(R) Pentium(R) Dual CPU T2330 @ 1.60GHz GenuineIntel GNU/Linux
command-line: qemu-system-arm -M integratorcp -cpu arm926 -m 16 -kernel mykernel.elf -serial stdio
steps to reproduce:
-------
@ assembler
@ after trivial set up for arm
read_ccmr:
ld r4,=0x10000000
ld r0,[r4,#0x0C]
-------
-------
; in C
int main(void) {
unsigned int volatile *ccmr,test1,
ccmr = (unsigned int volatile *)0x1000000C;
test1 = (*ccmr); // reads as zero
(printk, printf,etc....)
value = 0x00000001; // set GREEN LED
(*ccmr) = value; // should set bit 0 in CM_CTL
test2 = (*ccmr); // should return 1!
if (test1 == test2) {
// printk.printf,etc
// if test2 == 1, this code
// is not reached
}
}
-------
On 13 November 2011 15:51, Steven G. Messervey
<email address hidden> wrote:
> qemu -version: QEMU PC emulator version 0.12.5, Copyright (c) 2003-2008
> Fabrice Bellard
This is an ancient version of QEMU which there is very little point
reporting bugs against. That said, I think this bug is fixed by commit
df3f457b which will be in the 1.0 release of QEMU (due out shortly).
-- PMM