Dosemu cpu exception

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

 



Hello DOSEMU team,

I could not find where to report bugs, so I hope this is a valid way.

It seems that DOSEMU does not support newer CPU's. Maybe simply, because
it was not updated since they arrived. I've checked the SVN version at
http://dosemu.svn.sourceforge.net/viewvc/dosemu/trunk/src/base/init/


My /proc/cpuinfo says:

vendor_id       : AuthenticAMD
cpu family      : 16
model           : 2
model name      : AMD Phenom(tm) 9550 Quad-Core Processor


The

  switch (get_proc_intvalue_by_key(
          kernel_version_code > 0x20100+74 ? "cpu family" : "cpu" )) {

in src/base/init/config.c tests for values 5, 6, 586, 686, 15.

The result is that config.cpu_spd is zero, which causes a "Division by
zero" on booting dos.



If you run dosemu with options
  -h0 -O
it dumps the configuration to stderr.

It dumps (among a lot else):
  CPUclock infMHz

That is a (poorly formatted) "infinity" result of the division:

  (((double)LLF_US)/config.cpu_spd)

in src/base/init/config.c

Adding a case 16 to the switch statement solves this. It reports the CPU
speed as 2210.17 MHz

It also makes my DOSEMU boot. I'm not sure whether it's completely OK, yet.
See the attached patch to the 1.4.0 version.

There are more newer processors around. Here's number 17 in this Ubuntu
bug report:

https://lists.ubuntu.com/archives/universe-bugs/2009-January/036704.html

Hans


151c151
<     (*print)("CPUclock %gMHz\ncpu_spd 0x%lx\ncpu_tick_spd 0x%lx\n",
---
>     (*print)("CPUclock %g MHz\ncpu_spd 0x%lx\ncpu_tick_spd 0x%lx\n",
482a483,484
>       case 16:
>       case 17:

[Index of Archives]     [Linux Console]     [Linux Audio]     [Linux for Hams]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite Camping]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Samba]     [Linux Media]     [Fedora Users]

  Powered by Linux