68030 ATC (Address Translation Cache) is differ from and faster than the real 68030.+MMU、キャッシュあたりはほぼ実装していると思います。 +命令の実行サイクルについてはある程度似せているつもりですが、 +68000 のようにサイクル数を正確に数えるのは困難です。
--- nono/doc/index.php 2026/04/29 17:05:52 1.1.1.23 +++ nono/doc/index.php 2026/04/29 17:05:56 1.1.1.24 @@ -91,7 +91,7 @@ For clang, at least 7.0 or later.)
@@ -113,7 +113,7 @@ Ubuntu 24.04 ではたぶん以下のパ
bmake,
build-essential,
gettext,
-libasound2-dev,
+libasound2-dev,
libbsd-dev,
libkqueue-dev,
libslirp-dev,
@@ -529,8 +529,8 @@ config_item("clock-sync = value",
仮想マシン内の時刻の同期方法を指定します。
real なら実時間に同期、virtual なら仮想時間に同期します。
Specifies how to synchronize the time in the virtual machine.
-If real, synchronize with the real time;
-if virtual, synchronize with the virtual time.
+real means synchronizing with the real time.
+virtual means synchronizing with the virtual time.
Specifies whether to install FPU co-processor or not. This item is meaningful only if mpu-type is 68030. -If none, FPU co-processor is not installed. -If 68881, 68881 FPU co-processor is installed. +If set to none, FPU co-processor is not installed. +If set to 68881, 68881 FPU co-processor is installed. 68882 is not supported yet. And, none can also be written as 0, 68881 can also be written as 1. @@ -840,7 +841,7 @@ config_item("hostcomN-tcp-port = _EOM_ ); -config_item("hostcpu-avx2 = string", <<<_EOM_ +config_item("hostcpu-avx2 = string", <<<_EOM_ ホストが amd64(x86_64) の場合にレンダリングに AVX2 アクセラレーションを使うかどうかを指定します。 auto なら起動時にホスト CPU が AVX2 をサポートしているか確認し、 @@ -848,38 +849,33 @@ config_item("hostcpu-a no なら AVX2 コードを実行しません。 デフォルトは auto です。 amd64(x86_64) 以外のホストではこの設定は無視されます。 -ver 1.5.0 までは host-avx2 という名前でした。-Specifies whether to use AVX2 acceleration for rendering on amd64(x86_64) host. -If auto, nono checks whether the host CPU supports AVX2 +If set to auto, nono checks whether the host CPU supports AVX2 on startup and use it if it does. -If no, nono will not execute AVX2 instructions. +If set to no, nono will not execute AVX2 instructions. The default is auto. Note that this item is ignored if the host is not amd64(x86_64). -Up to ver 1.5.0, it was called host-avx2._EOM_ ); -config_item("hostcpu-neon = string", <<<_EOM_ +config_item("hostcpu-neon = string", <<<_EOM_ ホストが aarch64 の場合にレンダリングに NEON アクセラレーションを使うかどうかを指定します。 auto なら使用し、 no なら使用しません。 デフォルトは auto です。 aarch64 以外のホストではこの設定は無視されます。 -ver 1.5.0 までは host-neon という名前でした。Specifies whether to use NEON acceleration for rendering on aarch64 host. -If auto, nono uses NEON code. -If no, nono don't use NEON code. +If set to auto, nono uses NEON code. +If set to no, nono don't use NEON code. The default is auto. Note that this item is ignored if the host is not aarch64. -Up to ver 1.5.0, it was called host-neon._EOM_ ); -config_item("hostcpu-fastcore = string", <<<_EOM_ - +config_item("hostcpu-fastcore = string", <<<_EOM_ ホストの CPU がヘテロジニアス構成の場合の高性能コアを列挙します。 コアの番号は 0,1,2 のようにカンマ区切りで指定します。 ハイフンで範囲指定も出来ます。 @@ -890,7 +886,6 @@ config_item("hostcpu-f auto と書くと自動判別ですが現状 Intel CPU のみ対応しています。 対称構成の CPU なら指定不要です。 デフォルトは auto です。 - _EOM_ ); @@ -1086,8 +1081,7 @@ IPv6 には対応していません。 _EOM_ ); -config_item("hostsound-driver = string", <<<_EOM_ - +config_item("hostsound-driver = string", <<<_EOM_ サウンドデバイスのホスト側ドライバを指定します。 alsa、netbsd、sndio のうち configure で検出したものと wav、none、auto が選択可能です。 @@ -1095,7 +1089,7 @@ config_item("hostsound alsa, netbsd, and sndio are available only if detected by configure. wav, none, and auto are always selectable.
alsa uses Linux's ALSA library.
The default is auto.- _EOM_ ); -config_item("hostsound-alsa-device = string", <<<_EOM_ - +config_item("hostsound-alsa-device = string", <<<_EOM_ ホストドライバが alsa の時のデバイス名を指定します。 デフォルトは default です。 - _EOM_ ); -config_item("hostsound-netbsd-device = string", <<<_EOM_ - +config_item("hostsound-netbsd-device = string", <<<_EOM_ ホストドライバが netbsd の時のデバイスパスを指定します。 デフォルトは /dev/sound です。 - _EOM_ ); @@ -1351,6 +1340,26 @@ On virt-m68k, it's less meaningful but 2 _EOM_ ); +config_item("mpu-force-disable-dcahce = integer
You can forcibly disable MPU data cache (dcache)/instruction cache (icache). +0 means forcibly disable the cache. +1 means normal operation. +The default is 1. +On 68030, forcibly disable means that even if +you write 1 to EI, ED on CACR, it will remain 0. +Not supported for m88k.+ +_EOM_ +); + config_item("mpu-type = value", <<<_EOM_ (X68030, virt-m68k Only) MPU 種別を 68030 か 68040 で指定します。 @@ -1384,13 +1393,13 @@ Nereid 拡張ボードを装着するか Nereid は同時に2枚まで使用することができます。 値は 0 なら装着せず、1 なら装着します。 デフォルトは 0 (装着しない) です。 -詳細は 4.6 Nereid の章を参照してください。 +詳細は Nereid エミュレーション の項を参照してください。
Specifies whether install Nereid expansion board or not. Up to two board can be operated at the same time. -If 0, the board is not installed. -If 1, the board is installed. +If set to 0, the board is not installed. +If set to 1, the board is installed. The default value is 0. -See also Section 4.6 Nereid below for details.+See also Nereid emulation section below for details. _EOM_ ); @@ -1425,7 +1434,7 @@ Nereid ボードのバンクメモリの (ボードを装着しない) の場合は意味を持ちません。
Specifies bank memory size in MB of Nereid expansion board. The valid values are 0, 4 or 16. -If 0, disable the bank memory. +If set to 0, disable the bank memory. The default is 16. This item will be ignored if the corresponding nereidN-enable is 0.@@ -1581,7 +1590,8 @@ _EOM_ config_item("spc0-idN-image = devtype[,path]", <<<_EOM_ (LUNA and X68030 Only) -SCSI デバイスとイメージを指定します。キーの N には 0 から 7 が入ります。 +SCSI デバイス種別とディスクイメージを指定します。 +キーの N には 0 から 7 が入ります。 ただし ID 7 は本体が使用しますので指定しないでください。 値はデバイス種別 devtype とディスクイメージパス path を ","(カンマ) で区切って並べた形式です。 @@ -1606,19 +1616,19 @@ If devtype is cd or If the path is relative path, it is from the VM directory.
-例えば、nono.cfg と同じディレクトリに置いた sd0.img を
+例えば、nono.cfg と同じディレクトリに置いた sd0.qcow2 を
起動 HDD ディスクイメージとして使い
(LUNA では通常 ID 6 をプライマリ HDD に割り当てます)、
ID 5 に同じディレクトリの install.iso をセットした CD ドライブを、
ID 4 に起動時メディアなしの MO ドライブを接続する場合は次のようになります。
-
+
+QCOW2 形式のうち、外部バッキングファイル (CoW) を持つもの、
+zstd 圧縮されたもの、
+暗号化されているもの
+は未対応です。
+また refcount が 16 ビットでないものも未対応ですが通常遭遇しないはず。
+イメージがスナップショットを持っている場合、
+スナップショットに関与せず最新の状態だけを読み書きします。
+イメージが zlib 圧縮されているものについては読み込み専用でのみ対応しています。
+書き込みは技術的には可能ですが仕組みを考えると嬉しくないので対応しません。
+
+For example, if you use a harddisk image sd0.img placed in the same
+
"); ?>
For example, if you use a harddisk image sd0.qcow2 placed in the same
directory as nono.cfg
(LUNA usually assigns ID 6 to the primary HDD),
ID 5 for CD-ROM drive that loads install.iso in the same directory,
and ID 4 for MO drive without media on boot,
write as following:
@@ -1682,8 +1692,8 @@ SRAM の \$ed0008.L (RAM 容量) を ram
デフォルトは 1 です。
-spc0-id6-image = hd,sd0.img
+spc0-id6-image = hd,sd0.qcow2
spc0-id5-image = cd,install.iso
spc0-id4-image = mo
Specifies whether to synchronize a RAM size field in SRAM
with real RAM size or not.
-If 0, the application will do nothing (as same as the real).
-If 1, the application updates(synchronizes)
+If set to 0, the application will do nothing (as same as the real).
+If set to 1, the application updates(synchronizes)
\$ed0008.L (RAM size) in SRAM with configuration value of ram-size.
This update is performed once only if
the SRAM magic string is correct at the application startup.
@@ -1693,7 +1703,7 @@ _EOM_
config_item("virtio-blockN-image = path", <<<_EOM_
(virt-m68k Only)
-VirtIO ブロックデバイスのイメージを指定します。
+VirtIO ブロックデバイスのディスクイメージを指定します。
キーの N は現状 0 から 7 が指定可能です。
イメージパスが相対パスなら VM ディレクトリからの相対パスになります。
"); ?>
+Specifies VirtIO block device's image.
@@ -1712,9 +1722,42 @@ See spc0-idN-writeignore
_EOM_
);
+config_item("virtio-entropy = integer", <<<_EOM_
+
+VirtIO エントロピーデバイスを無効にすることが出来ます。
+0 なら無効、1 なら有効です。デフォルトは 1 です。
+
"); ?>
You can disable VirtIO entropy device.
+0 means disabled, 1 means enabled.
+The default is 1.
+
+_EOM_
+);
+
+config_item("virtio-net = integer", <<<_EOM_
+
+VirtIO ネットワークデバイスを無効にすることが出来ます。
+0 なら無効、1 なら有効です。デフォルトは 1 です。
+You can disable VirtIO network device.
+0 means disabled, 1 means enabled.
+The default is 1.
+
+_EOM_
+);
+
+config_item("virtio-scsi = integer", <<<_EOM_
+
+VirtIO SCSI デバイスを無効にすることが出来ます。
+0 なら無効、1 なら有効です。デフォルトは 1 です。
+You can disable VirtIO SCSI device.
+0 means disabled, 1 means enabled.
+The default is 1.
+
+_EOM_
+);
+
config_item("virtio-scsi-idN-image = devtype[,path]", <<<_EOM_
(virt-m68k Only)
-VirtIO SCSI デバイスとイメージを指定します。
+VirtIO SCSI デバイス種別とディスクイメージを指定します。
イニシエータ ID が不要なため、
キーの N には 0 から 7 が指定できます。
詳細は spc0-idN-image を参照してください。
@@ -1752,8 +1795,9 @@ MPU (68030) の FC2 ピンを切断す
デフォルトは 1 です。
NetBSD/x68k で X サーバを起動する場合のみ 1 にする必要があります。
Specifies whether to cut MPU(68030) FC2 pin.
-If 0, the FC2 pin is connected as usual.
-If 1, it is disconnected.
+If set to 0, no modification is applied
+(the original FC2 pin is kept).
+If set to 1, the FC2 pin is cut.
The default is 1.
Only if you run the X server on NetBSD/x68k, it needs to be 1.
_EOM_
@@ -1763,6 +1807,8 @@ config_item("xp-clock = value", <
(LUNA Only)
XP プロセッサのクロック数を MHz 単位で指定します。
デフォルトは 6.144 [MHz] です。
+Specifies the XP processor's clock in MHz.
+The default value is 6.144 MHz.
_EOM_
);
@@ -1842,7 +1888,7 @@ DMAC △
CRTC/VC △ 768x512 画面モードのみサポート Only 768x512 screen mode is supported
FDC/FDD ○
標準・拡張エリアセット Areaset
◎
-ADPCM ○ フィルタ未実装、録音は実装予定なし Filter is not implemented. Recording is not planned
+ADPCM ○ フィルタ未実装、録音は実装予定なし Filter is not implemented. Recording is not planned
OPM ×
テキスト画面Text screen
○
コントラスト Contrast
◎
@@ -1918,8 +1964,9 @@ __EOM__;
68030 ATC (Address Translation Cache) is differ from and faster than the real 68030.
+MMU、キャッシュあたりはほぼ実装していると思います。
+命令の実行サイクルについてはある程度似せているつもりですが、
+68000 のようにサイクル数を正確に数えるのは困難です。
Disk image
"); ?>
+QCOW2 and raw format are supported for the disk images for
+HD, CD, MO and FDs.
+
+This is a page table monitor on 68030 and 68040.
+It doesn't support 88200 yet.
+It doesn't support all variations of 68030 because it's too complex.
+
+
+Up to 3-levels (From TIA to TIC). No FCL supported.
+An early termination and indirect descriptor are not distinguished
+in the display.
+The root pointer switching on 68040 is SRP/URP as is.
+On 68030, it switches supervisor-state/user-state.
+
Here I will introduce how to install NetBSD/virt68k.+ここでは NetBSD/virt68k 11.0_RC2 をインストールする手順を紹介します。 +
Here I will introduce how to install NetBSD/virt68k 11.0_RC2.
As of the time of writing, +NetBSD 11.0 including virt68k has not yet been released. +However, images of RC (Release Candidate) are available on the official site. +Download netbsd-GENERIC.gz (kernel) and inst-ramdisk.fs +(installer image) from the following links.
-https://nycdn.netbsd.org/pub/NetBSD-daily/netbsd-11/latest/virt68k/binary/kernel/netbsd-GENERIC.gz
-https://nycdn.netbsd.org/pub/NetBSD-daily/netbsd-11/latest/virt68k/installation/ramdisks/inst-ramdisk.fs +https://cdn.netbsd.org/pub/NetBSD/NetBSD-11.0_RC2/virt68k/binary/kernel/netbsd-GENERIC.gz
+https://cdn.netbsd.org/pub/NetBSD/NetBSD-11.0_RC2/virt68k/installation/ramdisks/inst-ramdisk.fs
Prepare an empty disk image file. You can install it with 1GB at least, -but it would be safer if it was a little larger.+but it would be safer if it was a little larger. +(If you doesn't have qemu-img, create a raw image by using dd instead.) +
++qemu-img create -f qcow2 virt68k.qcow2 2G +
or
@@ -2958,20 +3073,22 @@ dd if=/dev/zero of=virt68k.img bs=1m cou with following contents.dd if=/dev/zero of=virt68k.img bs=1m count=2048
-vmtype = virt-m68k +fast-mode = 1 +virtio-block0-image = virt68k.qcow2 # or virt68k.img exec-file = netbsd-GENERIC.gz exec-bootparam = root=ld0 -virtio-block0-image = virt68k.img -fast-mode = 1
Run the installer by specifying installer RAM disk. -By the way, configuration file specifies root device as ld0, -but RAM disk specified by the command line will take precedence.+
Run installer from specified installer image. +The configuration file specifies root device as ld0 for normal operation, +but since we want to boot from ramdisk this time, +use the -V option to reset exec-bootparam.
-nono -c ~/nono/virt68k --initrd inst-ramdisk.fs +nono -c ~/nono/virt68k --initrd inst-ramdisk.fs -V exec-bootparam=
To boot from the installed disk, -run without --initrd option. +run without --initrd and -V option. It still uses the kernel on the host filesystem, just like the installer does.