10 |
|
|
11 |
<!-- |
<!-- |
12 |
|
|
13 |
$Id: experiments.html,v 1.105 2006/12/30 13:30:50 debug Exp $ |
$Id: experiments.html,v 1.110 2007/06/15 18:07:08 debug Exp $ |
14 |
|
|
15 |
Copyright (C) 2003-2007 Anders Gavare. All rights reserved. |
Copyright (C) 2003-2007 Anders Gavare. All rights reserved. |
16 |
|
|
65 |
|
|
66 |
<p> |
<p> |
67 |
<ul> |
<ul> |
68 |
<li>Build and install a cross-compiler for your chosen target. |
<li>Build and install a cross-compiler for your chosen target, |
69 |
|
e.g. <tt>mips64-unknown-elf</tt>. |
70 |
GCC is usually a good compiler choice, because it is portable |
GCC is usually a good compiler choice, because it is portable |
71 |
and in wide-spread use. (Other compilers should work too.) |
and in wide-spread use. (Other compilers should work too.) |
72 |
|
|
232 |
<tr> |
<tr> |
233 |
<td align="left" valign="top"><tt>0x00d0</tt></td> |
<td align="left" valign="top"><tt>0x00d0</tt></td> |
234 |
<td align="left" valign="top">Read: <b><tt>ncycles()</tt></b>. |
<td align="left" valign="top">Read: <b><tt>ncycles()</tt></b>. |
235 |
Returns approximately the number of cycles executed. |
Returns approximately the number of cycles executed on |
236 |
Note: this value is not updated for every instruction, |
this CPU. Note: this value is not updated for every instruction, |
237 |
so it cannot be used for small measurements.</td> |
so it cannot be used for small measurements.</td> |
238 |
</tr> |
</tr> |
239 |
</table> |
</table> |
416 |
</td> |
</td> |
417 |
</tr> |
</tr> |
418 |
|
|
419 |
|
<tr height="15"> |
420 |
|
<td height="15"> </td> |
421 |
|
</tr> |
422 |
|
|
423 |
|
<tr> |
424 |
|
<td align="left" valign="top"> |
425 |
|
<a name="expdevices_irqc"><b><tt>irqc</tt>:</b></a> |
426 |
|
<p>An Interrupt Controller. (Note: Not used for the MIPS test machine.) |
427 |
|
<p>Source code: <font color="#0000f0"><tt>src/devices/dev_irqc.c</tt></font> |
428 |
|
<p>Include file: <font color="#0000f0"><tt>dev_irqc.h</tt></font> |
429 |
|
<br>Default physical address:  <font color="#0000f0">0x16000000</font> |
430 |
|
</td> |
431 |
|
<td></td> |
432 |
|
<td align="left" valign="top"> |
433 |
|
<table border="0"> |
434 |
|
<tr> |
435 |
|
<td align="left" valign="top"><i><u>Offset:</u></i> </td> |
436 |
|
<td align="left" valign="top"><i><u>Effect:</u></i></td> |
437 |
|
</tr> |
438 |
|
<tr> |
439 |
|
<td align="left" valign="top"><tt>0x0</tt></td> |
440 |
|
<td align="left" valign="top">Read: IRQ status as a 32-bit word, one bit per interrupt source.</td> |
441 |
|
</tr> |
442 |
|
<tr> |
443 |
|
<td align="left" valign="top"><tt>0x4</tt></td> |
444 |
|
<td align="left" valign="top">Write: Mask one interrupt source. Value should be an integer 0..31.</td> |
445 |
|
</tr> |
446 |
|
<tr> |
447 |
|
<td align="left" valign="top"><tt>0x8</tt></td> |
448 |
|
<td align="left" valign="top">Write: Unmask one interrupt source. Value should be an integer 0..31.</td> |
449 |
|
</tr> |
450 |
|
</table> |
451 |
|
</td> |
452 |
|
</tr> |
453 |
|
|
454 |
</table></center> |
</table></center> |
455 |
|
|
456 |
<p> |
<p>The include files for the test machine devices are found in |
457 |
While these devices may resemble real-world hardware, they are |
<a href="../src/include/testmachine/"><tt>src/include/testmachine/</tt></a>. |
458 |
|
|
459 |
|
<p>While these devices may resemble real-world hardware, they are |
460 |
intentionally made simpler to use. (An exception is the framebuffer; |
intentionally made simpler to use. (An exception is the framebuffer; |
461 |
some machines actually have simple linear framebuffers like this.) |
some machines actually have simple linear framebuffers like this.) |
462 |
|
|
466 |
<tt>0xffffffff90000000</tt> too, but devices should usually be accessed in |
<tt>0xffffffff90000000</tt> too, but devices should usually be accessed in |
467 |
a non-cached manner.) |
a non-cached manner.) |
468 |
|
|
469 |
<p>When using the Alpha, ARM, or PPC test machines, the addresses are |
<p>When using the ARM or PPC test machines, the addresses are |
470 |
<tt>0x10000000</tt>, <tt>0x11000000</tt> etc., so no need to add any |
<tt>0x10000000</tt>, <tt>0x11000000</tt> etc., so no need to add any |
471 |
virtual displacement. |
virtual displacement. |
472 |
|
|
500 |
<p><center> |
<p><center> |
501 |
<table border="1"> |
<table border="1"> |
502 |
<tr><td align="center"> |
<tr><td align="center"> |
503 |
<b><tt>testmips</tt></b> |
<b><tt>testmips</tt></b> (as native MIPS interrupts) |
504 |
</td></tr> |
</td></tr> |
505 |
<tr><td> |
<tr><td> |
506 |
<table border="0"> |
<table border="0"> |
519 |
</table> |
</table> |
520 |
</td></tr> |
</td></tr> |
521 |
</table> |
</table> |
522 |
|
|
523 |
|
<p><table border="1"> |
524 |
|
<tr><td align="center"> |
525 |
|
<b><tt>testarm</tt> and others</b> (via the <tt>irqc</tt> device) |
526 |
|
</td></tr> |
527 |
|
<tr><td> |
528 |
|
<table border="0"> |
529 |
|
<tr><td align="center">IRQ:</td><td> </td> |
530 |
|
<td>Used for:</td></tr> |
531 |
|
<tr><td align="center">6</td><td></td> |
532 |
|
<td><tt>mp</tt> (inter-processor interrupts)</td></tr> |
533 |
|
<tr><td align="center">4</td><td></td> |
534 |
|
<td><tt>rtc</tt></td></tr> |
535 |
|
<tr><td align="center">3</td><td></td> |
536 |
|
<td><tt>ether</tt></td></tr> |
537 |
|
<tr><td align="center">2</td><td></td> |
538 |
|
<td><tt>cons</tt></td></tr> |
539 |
|
</table> |
540 |
|
</td></tr> |
541 |
|
</table> |
542 |
</center> |
</center> |
543 |
|
|
|
<p>Other machines: TODO |
|
544 |
|
|
545 |
|
|
546 |
<p><br> |
<p><br> |