mirror of
https://github.com/holub/mame
synced 2025-07-01 16:19:38 +03:00
sgi/ip20: enable memory configuration
* add a minimal nvram dump to set eaddr and netaddr
This commit is contained in:
parent
f74fd47f1f
commit
b47bbbc581
@ -3739,7 +3739,7 @@ void r4000_base_device::address_error(int intention, u64 const address)
|
|||||||
|
|
||||||
template <typename T> void r4000_base_device::accessors(T &m)
|
template <typename T> void r4000_base_device::accessors(T &m)
|
||||||
{
|
{
|
||||||
space(AS_PROGRAM).cache(m);
|
space(AS_PROGRAM).specific(m);
|
||||||
|
|
||||||
read_byte = [&m](offs_t offset) { return m.read_byte(offset); };
|
read_byte = [&m](offs_t offset) { return m.read_byte(offset); };
|
||||||
read_word = [&m](offs_t offset) { return m.read_word(offset); };
|
read_word = [&m](offs_t offset) { return m.read_word(offset); };
|
||||||
|
@ -400,8 +400,8 @@ protected:
|
|||||||
address_space_config m_program_config_be;
|
address_space_config m_program_config_be;
|
||||||
|
|
||||||
// memory access helpers
|
// memory access helpers
|
||||||
memory_access<36, 3, 0, ENDIANNESS_LITTLE>::cache m_le;
|
memory_access<32, 3, 0, ENDIANNESS_LITTLE>::specific m_le;
|
||||||
memory_access<36, 3, 0, ENDIANNESS_BIG>::cache m_be;
|
memory_access<32, 3, 0, ENDIANNESS_BIG>::specific m_be;
|
||||||
|
|
||||||
std::function<u8(offs_t offset)> read_byte;
|
std::function<u8(offs_t offset)> read_byte;
|
||||||
std::function<u16(offs_t offset)> read_word;
|
std::function<u16(offs_t offset)> read_word;
|
||||||
|
@ -140,6 +140,10 @@ void ip20_state::cpu_map(address_map &map)
|
|||||||
map(0x1fc0'0000, 0x1fc7'ffff).rom().region("prom", 0);
|
map(0x1fc0'0000, 0x1fc7'ffff).rom().region("prom", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static DEVICE_INPUT_DEFAULTS_START(ip20_mc)
|
||||||
|
DEVICE_INPUT_DEFAULTS("VALID", 0x0f, 0x07)
|
||||||
|
DEVICE_INPUT_DEFAULTS_END
|
||||||
|
|
||||||
static void scsi_devices(device_slot_interface &device)
|
static void scsi_devices(device_slot_interface &device)
|
||||||
{
|
{
|
||||||
device.option_add("cdrom", NSCSI_CDROM_SGI).machine_config(
|
device.option_add("cdrom", NSCSI_CDROM_SGI).machine_config(
|
||||||
@ -172,6 +176,7 @@ void ip20_state::ip20(machine_config &config)
|
|||||||
|
|
||||||
SGI_MC(config, m_mc, m_cpu, m_eerom, 50'000'000);
|
SGI_MC(config, m_mc, m_cpu, m_eerom, 50'000'000);
|
||||||
m_mc->eisa_present().set_constant(0);
|
m_mc->eisa_present().set_constant(0);
|
||||||
|
m_mc->set_input_default(DEVICE_INPUT_DEFAULTS_NAME(ip20_mc));
|
||||||
|
|
||||||
SGI_HPC1(config, m_hpc, 0);
|
SGI_HPC1(config, m_hpc, 0);
|
||||||
m_hpc->set_gio(m_cpu, AS_PROGRAM);
|
m_hpc->set_gio(m_cpu, AS_PROGRAM);
|
||||||
@ -281,6 +286,10 @@ void ip20_state::ip20(machine_config &config)
|
|||||||
ROM_START(indigo_r4000)
|
ROM_START(indigo_r4000)
|
||||||
ROM_REGION64_BE(0x80000, "prom", 0)
|
ROM_REGION64_BE(0x80000, "prom", 0)
|
||||||
ROMX_LOAD("ip20prom.070-8116-004.bin", 0x000000, 0x080000, CRC(940d960e) SHA1(596aba530b53a147985ff3f6f853471ce48c866c), ROM_GROUPDWORD | ROM_REVERSE)
|
ROMX_LOAD("ip20prom.070-8116-004.bin", 0x000000, 0x080000, CRC(940d960e) SHA1(596aba530b53a147985ff3f6f853471ce48c866c), ROM_GROUPDWORD | ROM_REVERSE)
|
||||||
|
|
||||||
|
// hand-made content sets eaddr 08:00:69:12:34:56 and netaddr 192.168.137.2
|
||||||
|
ROM_REGION16_LE(0x100, "nvram", 0)
|
||||||
|
ROM_LOAD("nvram.bin", 0x000, 0x100, CRC(b8367798) SHA1(61af4c9dba69e9f0552c10770f16044421730b6d))
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
#define rom_indigo_r4400 rom_indigo_r4000
|
#define rom_indigo_r4400 rom_indigo_r4000
|
||||||
|
@ -18,25 +18,37 @@
|
|||||||
* TODO:
|
* TODO:
|
||||||
* - audio, printer
|
* - audio, printer
|
||||||
* - devicify ioc1 and ctl1
|
* - devicify ioc1 and ctl1
|
||||||
*
|
|
||||||
* Status:
|
|
||||||
* - parity and cache diagnostics fail
|
* - parity and cache diagnostics fail
|
||||||
* - irix 4.0.5 working
|
|
||||||
* - ide test failures
|
* - ide test failures
|
||||||
* - lca2 (unimplemented fpga program/readback)
|
* - lca2 (unimplemented fpga program/readback)
|
||||||
* - nvram4 (security mode?)
|
* - nvram4 (security mode?)
|
||||||
* - fpu (cvt.?.? invalid operation exceptions)
|
* - fpu (cvt.?.? invalid operation exceptions)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Installation instructions
|
* WIP
|
||||||
* --
|
* --
|
||||||
* 1. boot, enter monitor, set ethernet address: eaddr 08:00:69:12:34:56
|
* 4D/2x doesn't support CDROM, so to install IRIX, mount the .iso
|
||||||
* 2. start mame with CDROM iso image as hard disk ID 6: mame 4d20 ... -scsi:6 harddisk -hard2 pathname.iso
|
* as if it's a hard disk: ... -scsi:6 harddisk -hard2 pathname.iso
|
||||||
* 3. boot, enter monitor, launch sash: boot -f dksc(0,6,8)sash.IP6
|
*
|
||||||
* 4.
|
* install IRIX 4.0.5/5.3:
|
||||||
|
* - monitor: eaddr 08:00:69:12:34:56 # set ethernet mac address
|
||||||
|
* - monitor: init
|
||||||
|
* - monitor: dksc(0,6,8)sash.IP6 dksc(0,6,7)stand/fx.IP6 -x # start fx disk partition/label utility
|
||||||
|
* - fx: r; ro; ..; l; sync; ..; exit # create root partition and label disk
|
||||||
|
* - monitor: setenv tapedevice dksc(0,6,8)
|
||||||
|
* - monitor: dksc(0,6,8)sash.IP6 -m # copy/boot from miniroot
|
||||||
|
* - inst: sh # escape to shell from inst
|
||||||
|
* - sh: mkdir /mnt; mount /dev/dsk/dks0d6s7 /mnt; exit # mount distribution media
|
||||||
|
* - inst: from /mnt/dist
|
||||||
|
* - inst: go # may take ~1.5 hours
|
||||||
|
* - inst: shroot
|
||||||
|
* - sh: chkconfig windowsystem off; chkconfig xdm off # disable graphics subsystems (until graphics works)
|
||||||
|
* - sh: edit /etc/hosts and /etc/inittab # change host IP address, enable getty on console
|
||||||
|
* - inst: quit # complete installation and reboot
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
|
|
||||||
// cpu and memory
|
// cpu and memory
|
||||||
|
Loading…
Reference in New Issue
Block a user