Re: [Qemu-devel] Missing ARMv6 instructions?

2006-03-30 Thread Wolfgang Schildbach
The way I understand this is that anyone who got ARM documentation with 
the license that Paul mentioned, could not contribute patches that 
implement v6 emulation. If, however, someone else (who has not signed such 
a license) were to buy documentation about the ARMv6 architecture that 
comes without a license (for example, the ARM System Developer's Guide, 
by Sloss, Symes, and Wright, Elsevier 2004), that someone should be able 
to contribute (at least in those aspects of the ARM that are disclosed by 
the book). In that case, ARM should not have any legal hooks except 
copyright, and since at that point you are not using any of their code, 
there is no case. However, I am not a lawyer, so don't take my word for 
it.

As to the threats to ARM's business model, I could see them threatened if 
someone emulated the ARM on hardware of similar performance (without 
licensing ARM IP) -- that would undermine sales of the real ARM cores, 
depending on the price/performance point of the replacement. Software 
emulation of an ARM core on a 4 GHz Pentium is hardly an alternative to 
buying the real thing, though... I also find it hard to believe that 
building a product competitive to an ARM is possible using a description 
of the instruction set alone.

That said, I agree with Paul that lobbying ARM to change their license is 
probably a better route to go. I believe software emulators like qemu are 
really in ARMs best interest since they support ARM development and 
thereby increase the availability of software for ARM cores.

- Wolfgang

Disclaimer: The views stated above are entirely mine, and do not 
necessarily reflect the views of my employer.

Paul wrote on 30.03.2006 00:01:41:

  I could understand a claim if someone acquired ARM's documentation
  under an agreement to not produce an emulator. 
 
 That's exactly where the restriction comes from.
 
 Theoretically it may be possible to reverse engineer a good proportion 
of 
 ARMv6 from other sources (eg. gcc). However if that were done it would 
mean 
 anyone with access to the real ARM documentation (i.e. me and probably 
anyone 
 else with any professional/commercial interest in ARM emulation) would 
be 
 unable to contribute to qemu.
 
  And if there is a possibility of that - in which countries do they
  have any weight?  Dare I suggest encouraging the development of
  patches they don't like to countries where they have no legal weight?
 
 I don't think that's particularly helpful or practical suggestion.
 Better would be to lobby ARM to allow open source emulators. 
 I'd like to use ARM hardware for big project, but qemu doesn't 
support 
 ARMv7 so I'm thinking of using PowerPC instead is a particularly good 
 argument ;-)
 
 Paul
 
 
 ___
 Qemu-devel mailing list
 Qemu-devel@nongnu.org
 http://lists.nongnu.org/mailman/listinfo/qemu-devel

--
Wolfgang Schildbach, Senior Research Engineer
Coding Technologies GmbH



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] Keyboard/Mouse issues on WinXP loadvm

2006-03-30 Thread maestro
Am Mittwoch, den 29.03.2006, 21:26 -0500 schrieb Andrew Barr:
 The virtual keyboard and mouse appear to be confused after loadvm'ing on 
 Windows XP SP2 (and 2000 SP4 as well) guest (Qemu CVS on Linux host). The 
 control key appears to be stuck down. While looking for something unrelated 
 in the mailing list archives, I found these:
 
 http://lists.gnu.org/archive/html/qemu-devel/2005-05/msg00021.html
 http://lists.gnu.org/archive/html/qemu-devel/2005-05/msg0.html
 
 It appears to be describing the exact same problem, but on a Linux guest. The 
 suggested solution was to press Ctrl, Shift, Alt one after the other after 
 restoring the VM. This doesn't appear to work on my Windows guest. Is there 
 another way to fix this?
 

i dont know if it is the exactly same bahavior i encountered:
here the keys were totaly messed up (i used cvs version) on #qemu
irc-channel a patch for this was posted at the url:
http://jma-box.student.umd.edu:8080/ps2.diff


this might help - at least it did help fixing my problem.

cheers
maestro

p.s. paul brooks: is this to be going into cvs at some point, or did it
already happen and i missed it



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] [PATCH] Add MIPS ELF loader

2006-03-30 Thread Dirk Behme

Thiemo Seufer wrote:

On Tue, Mar 28, 2006 at 08:57:15AM +0200, Dirk Behme wrote:

What about the patch in attachment? It first tries to load
image as an ELF file. If this fails it falls back to raw
image load. Additionally, it takes feature of patch above to
go on even if no BIOS is found.



A slightly more polished version with less noisy messages is appended.
It also adjusts the ramdisk load address to physical addressing,
similiar to the binary kernel load.


One question I just found:

If we go on if no BIOS is found/executed and we load some 
stuff to e.g. 0x8001, where is the default address 
translation made? As I understand MIPS, code in kseg0 
(0x8000) and kseg1 (0xA000) should be executable 
without MMU/TLB setup because it is mapped by default to 
physical 0x0. But looks to me that I get a


cpu_mips_handle_mmu_fault pc 8001 ad 8001 rw 2 
is_user 0 smmu 1


for it.

Dirk



___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] [PATCH] Add MIPS ELF loader

2006-03-30 Thread Thiemo Seufer
On Thu, Mar 30, 2006 at 03:40:25PM +0200, Dirk Behme wrote:
 Thiemo Seufer wrote:
 On Tue, Mar 28, 2006 at 08:57:15AM +0200, Dirk Behme wrote:
 What about the patch in attachment? It first tries to load
 image as an ELF file. If this fails it falls back to raw
 image load. Additionally, it takes feature of patch above to
 go on even if no BIOS is found.
 
 
 A slightly more polished version with less noisy messages is appended.
 It also adjusts the ramdisk load address to physical addressing,
 similiar to the binary kernel load.
 
 One question I just found:
 
 If we go on if no BIOS is found/executed and we load some 
 stuff to e.g. 0x8001, where is the default address 
 translation made? As I understand MIPS, code in kseg0 
 (0x8000) and kseg1 (0xA000) should be executable 
 without MMU/TLB setup because it is mapped by default to 
 physical 0x0. But looks to me that I get a
 
 cpu_mips_handle_mmu_fault pc 8001 ad 8001 rw 2 
 is_user 0 smmu 1

That comes not from the MIPS TLB mapping (which is for KSEG0/1 a fixed
translation involving the high bits) but the underlying qemu softmmu
support.

The whole thing works but eats significant performance, there should
be room for improvements.


Thiemo


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


[Qemu-devel] savevm

2006-03-30 Thread malc

Hello,

http://www.boblycat.org/~malc/savevm.patch.gz

The problem is Paul Brook had broken the save state for keyboard by
introducing translate and not saving/loading it.

--
mailto:[EMAIL PROTECTED]


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] [PATCH] Add MIPS ELF loader

2006-03-30 Thread Alexander Voropay

Thiemo Seufer [EMAIL PROTECTED] wrote:

cpu_mips_handle_mmu_fault pc 8001 ad 8001 rw 2 
is_user 0 smmu 1


That comes not from the MIPS TLB mapping (which is for KSEG0/1 a fixed
translation involving the high bits) but the underlying qemu softmmu
support.


I'm trying to implement a mips_bios, unfortunately, quemu seems can't
run a code at the 0xbfc0 region.

See a http://pastebin.com/628591

The conventional 'move k0,zero' instruction (line 35) causes an general
exceprion to 0xbfc00380, see line 70

--
-=AV=-


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] Missing ARMv6 instructions?

2006-03-30 Thread Jamie Lokier
Wolfgang Schildbach wrote:
 The way I understand this is that anyone who got ARM documentation with 
 the license that Paul mentioned, could not contribute patches that 
 implement v6 emulation. If, however, someone else (who has not signed such 
 a license) were to buy documentation about the ARMv6 architecture that 
 comes without a license (for example, the ARM System Developer's Guide, 
 by Sloss, Symes, and Wright, Elsevier 2004), that someone should be able 
 to contribute (at least in those aspects of the ARM that are disclosed by 
 the book). In that case, ARM should not have any legal hooks except 
 copyright, and since at that point you are not using any of their code, 
 there is no case. However, I am not a lawyer, so don't take my word for 
 it.

I wonder about patents (and their validity).

A MIPS hardware implementation that I worked with had all the basic
MIPS integer instructions except one small group, on the ground that
those instructions were covered by a MIPS patent and so they dared not
include it.  It was the instruction used for unaligned memory word
access.  For that reason, we used a modified GCC specially for that
chip.

 I also find it hard to believe that building a product competitive
 to an ARM is possible using a description of the instruction set alone.

(I meant a description of the architectural behaviour... not just the
instruction set.  Compilers are moving beyond merely implementing
user space code, to optimising paths between security levels,
analysing memory orderings between threads, etc.  And for that matter,
so are decompilers.)

It's not possible.. yet.  Believe me, there are people working on it.

And it doesn't have to be competitive for ARM to have a reaction... as
we're seeing with software emulatation.

 That said, I agree with Paul that lobbying ARM to change their license is 
 probably a better route to go. I believe software emulators like qemu are 
 really in ARMs best interest since they support ARM development and 
 thereby increase the availability of software for ARM cores.

That makes sense to me.

-- Jamie


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] Missing ARMv6 instructions?

2006-03-30 Thread Lennert Buytenhek
On Thu, Mar 30, 2006 at 03:30:30PM +0100, Jamie Lokier wrote:

 I wonder about patents (and their validity).
 
 A MIPS hardware implementation that I worked with had all the basic
 MIPS integer instructions except one small group, on the ground that
 those instructions were covered by a MIPS patent and so they dared not
 include it.  It was the instruction used for unaligned memory word
 access.  For that reason, we used a modified GCC specially for that
 chip.

Note that the new ARM ABI being pushed by ARM ltd, which is called
EABI, mandates using a thumb-related instruction (bx) in the function
exit path.

In other words, if the arm-compatible core that you wrote for your
FPGA board to play with does not implement that instruction (possibly
because you want to avoid infringing on ARM patents), you won't be
able to run any EABI-using ARM distros on it.  


--L


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] Missing ARMv6 instructions?

2006-03-30 Thread Paul Brook
 Note that the new ARM ABI being pushed by ARM ltd, which is called
 EABI, mandates using a thumb-related instruction (bx) in the function
 exit path.

No it doesn't. The EABI mandates that code be interworking safe.
It's possible to implement this is an way that only uses bx when actually 
returning to Thumb code, ie when you already know your hardware supports bx.

In practice many distros may assume Thumb capable hardware in the same way 
many x86 distros assume at least i486 or i686, but that's an entirely 
different issue.

Paul


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] [PATCH] Add MIPS ELF loader

2006-03-30 Thread Dirk Behme

Alexander Voropay wrote:

I'm trying to implement a mips_bios, unfortunately, quemu seems can't
run a code at the 0xbfc0 region.

See a http://pastebin.com/628591

The conventional 'move k0,zero' instruction (line 35) causes an general
exceprion to 0xbfc00380, see line 70


Try to change the following lines in hw/mips_r4k.c:

//#define KERNEL_LOAD_ADDR 0x8001
#define KERNEL_LOAD_ADDR 0xBFC0

//cpu_register_physical_memory(0, ram_size, IO_MEM_RAM);
cpu_register_physical_memory(0x1fc0, ram_size, IO_MEM_RAM);

//kernel_size = load_image(kernel_filename,
//phys_ram_base + (kernel_base - 0x8000));
kernel_size = load_image(kernel_filename, phys_ram_base);

Works for me:

(gdb) p/x $pc
$1 = 0xbfc0
(gdb) x/2i $pc
0xbfc0 _start:b   0xbfc00400 reset
0xbfc4 _start+4:  nop
(gdb) x/2i 0x1fc0
0x1fc0: b   0x1fc00400
0x1fc4: nop
(gdb)

Best regards

Dirk


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


[Qemu-devel] [PATCH] Improving timer/clock for win32

2006-03-30 Thread Kazu
Hi,

This patch improves timer/clock for win32. Here is the patch and a binary.

http://www.h7.dion.ne.jp/~qemu-win/download/qemu-20060330-timer.patch
http://www.h6.dion.ne.jp/~kazuw/qemu-win/qemu-20060330-timer.zip

It supports 1ms interval interrupt.
It also improves the delay when it is used with Kqemu/Qvm86.

A main reason of delay of time is that when main_loop_wait is slept and an
interrupt timer is expired, the timer interrupt doesn't occured. I used an
event object to wake up the main loop.

I used QueryPerformanceCounter/QueryPerformanceFrequency to measure time. It
uses ACPI PM Timer on my system. Some system use RDTSC value. It depends on
your system.

It might be possible to run on SMP(HT or Multi-core) system. I haven't
tested it, though.

Regards,
Kazu




___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] kqemu version 1.3.0pre5

2006-03-30 Thread Christian MICHON
I tried various guests today on winXP host.

* No crash and good speed for std kqemu (no kernel-kqemu)
* Crash of winXP host systematically on all guests (linux + ms)

It's hard to debug what is the problem. The only thing I have the
time to see is a BSOD (blue screen of d**th) and the error
message, informative ?

TRAP_CAUSE_UNKNOWN

Good job overall :) Kudos to the developpers.

Maybe we can make it a bartpe plugin one day, automatically
started with kqemu on ? That would be nice to promote
qemu virtualization features...

On 3/27/06, Fabrice Bellard [EMAIL PROTECTED] wrote:
 Hi,

 I just released a new version of kqemu which fixes some recently
 discovered issues. The fixes are the following:

 - Workaround for full virtualization on Windows host (more tests needed).


--
Christian


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel


Re: [Qemu-devel] kqemu version 1.3.0pre5

2006-03-30 Thread denis . scheidt
Hello,

I have the same issues as Christian : I'm unable to get -kernel-kqemu option to
work.

My configuration :

Host : Windows XPpro SP2 on Intel P4HT

QEMU : 0.8.0 latest CVS version.
qemu.exe process' affinity set to second 'CPU' (with ImageCfg, but the result is
the same if set with ProcExp or with TaskMgr)

Guests :
* Windows 2000 SP4 : freezes just after loading splash screen...
* Ubuntu 5.10  : gives a kernel panic...

Procexp shows about 100% CPU usage in kernel mode... but it's possible to switch
to QEMU console and 'q'uit.

Everything works great when I don't use kernel-kqemu...

Am I missing something ?


___
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel