qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1733720] [NEW] raspi2 with multiple CPU's #1


From: Ken Dickey
Subject: [Qemu-devel] [Bug 1733720] [NEW] raspi2 with multiple CPU's #1
Date: Wed, 22 Nov 2017 00:00:25 -0000

Public bug reported:

Greetings,

I am running a small program for raspi2 (from
http://wiki.osdev.org/ARM_RaspberryPi_Tutorial_C).

This code writes "Hello World", but the output ir repeated 4 times.

My thought was that this is emulating a 4 cpu core system.

However, when I check the MPIDR registed for CPU number, it always
returns 1.

I git cloned github.com/qemu/qemu.git, made & installed on Acer ARM
CB5-311 under Crouton/ubuntu.


./qemu.sh 
1111

Linux:armv7l: ~/Downloads/RaspiTest/BareBones >>> uname -a
Linux localhost 3.10.18 #1 SMP Mon Nov 13 16:34:10 PST 2017 armv7l armv7l 
armv7l GNU/Linux

Linux:armv7l: ~/Downloads/RaspiTest/BareBones >>> qemu-system-arm --version
QEMU emulator version 2.10.91 (v2.11.0-rc1-dirty)
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers

=====
static inline uint32_t read_mpdir(void)
{
  uint32_t id;
  
  asm volatile("mrc p15, 0, %[id], c0, c0, 0 @ read MIDR\n\t"
               : [id] "=r" (id));
  return id;
}
======
void kernel_main(uint32_t r0, uint32_t r1, uint32_t atags)
{
        // Declare as unused
        (void) r0;
        (void) r1;
        (void) atags;

        uint32_t cpu_id;

        cpu_id = read_mpdir() & 0x03;

        uart_putc( "01234"[cpu_id] ); /* output is "1111" */

        if (cpu_id == 0) { /* code never executes 8^( */ }

====== qemu.sh
qemu-system-arm -m 256 -M raspi2 -no-reboot -serial stdio  -kernel myos.elf

Thanks much,
-KenD

** Affects: qemu
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1733720

Title:
  raspi2 with multiple CPU's #1

Status in QEMU:
  New

Bug description:
  Greetings,

  I am running a small program for raspi2 (from
  http://wiki.osdev.org/ARM_RaspberryPi_Tutorial_C).

  This code writes "Hello World", but the output ir repeated 4 times.

  My thought was that this is emulating a 4 cpu core system.

  However, when I check the MPIDR registed for CPU number, it always
  returns 1.

  I git cloned github.com/qemu/qemu.git, made & installed on Acer ARM
  CB5-311 under Crouton/ubuntu.

  
  ./qemu.sh 
  1111

  Linux:armv7l: ~/Downloads/RaspiTest/BareBones >>> uname -a
  Linux localhost 3.10.18 #1 SMP Mon Nov 13 16:34:10 PST 2017 armv7l armv7l 
armv7l GNU/Linux

  Linux:armv7l: ~/Downloads/RaspiTest/BareBones >>> qemu-system-arm --version
  QEMU emulator version 2.10.91 (v2.11.0-rc1-dirty)
  Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers

  =====
  static inline uint32_t read_mpdir(void)
  {
    uint32_t id;
    
    asm volatile("mrc p15, 0, %[id], c0, c0, 0 @ read MIDR\n\t"
               : [id] "=r" (id));
    return id;
  }
  ======
  void kernel_main(uint32_t r0, uint32_t r1, uint32_t atags)
  {
        // Declare as unused
        (void) r0;
        (void) r1;
        (void) atags;

          uint32_t cpu_id;

          cpu_id = read_mpdir() & 0x03;

          uart_putc( "01234"[cpu_id] ); /* output is "1111" */

          if (cpu_id == 0) { /* code never executes 8^( */ }

  ====== qemu.sh
  qemu-system-arm -m 256 -M raspi2 -no-reboot -serial stdio  -kernel myos.elf

  Thanks much,
  -KenD

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1733720/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]