digiBLAST's build of Linux wants an ARM920 specifically, and it gets instantly cranky if the expected CoproID doesn't match.
Now it boots even further, but it looks like the I2S implementation leaves something to be desired. At least, that's going off of the console messages about DMA triggering an IRQ without an active buffer, and the fact that it hangs on a black screen.
Code
NAND read: device 0 offset 262144, size 65536, cmd 5...
65536 bytes read: OK
## Booting image at 30c00000 ...
Image Name:
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 825483 Bytes = 806.1 kB
Load Address: 30008000
Entry Point: 30008000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Starting kernel ...
Linux version 2.6.11 (shaun.adolphson@malbec.greyinnovation.com) (gcc version 3.4.1) #6 Mon Nov 14 10:18:56 EST 2005
CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)
CPU0: D VIVT write-back cache
CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
CPU0: D cache: 4096 bytes, associativity 4, 32 byte lines, 32 sets
Machine: DIGIBLAST
Memory policy: ECC disabled, Data cache writeback
CPU S3C2410A (id 0x32410002)
S3C2410: core 180.000 MHz, memory 90.000 MHz, peripheral 45.000 MHz
S3C2410 Clock control, (c) 2004 Simtec Electronics
USB Power Control, (c) 2005 Grey Innovation
Built 1 zonelists
Kernel command line: console=ttySAC0,115200 mem=16M devfs=mount panic=30 init=/linuxrc root=/dev/mtdblock/5 ro rootfstype=squashfs splash=0x30310000
PID hash table entries: 128 (order: 7, 2048 bytes)
timer tcon=00500008, tcnt 927b, tcfg 0000020c,00000000, usec 00002222
Console: colour dummy device 80x30
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 16MB = 16MB total
Memory: 14388KB available (1418K code, 289K data, 68K init)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
Linux NoNET1.0 for Linux 2.6
S3C2410: Initialising architecture
SCSI subsystem initialized
usbcore: registered new driver hub
S3C2410 DMA Driver, (c) 2003-2004 Simtec Electronics
DMA channel 0 at c1800000, irq 33
DMA channel 1 at c1800040, irq 34
DMA channel 2 at c1800080, irq 35
DMA channel 3 at c18000c0, irq 36
NetWinder Floating Point Emulator V0.97 (double precision)
Squashfs 2.2 (released 2005/07/03) (C) 2002-2005 Phillip Lougher
devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
Displaying splash screen at 0x30310000, stand well clear
fb0: s3c2410fb frame buffer device
s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2410
s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2410
s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2410
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
loop: loaded (max 8 devices)
Battery Driver loaded for Digiblast
Linux video capture interface: v1.00
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2410-nand: mapped registers at c1880000
s3c2410-nand: timing: Tacls 11ns, Twrph0 33ns, Twrph1 11ns
s3c2410-nand: timing: Tacls 1 HCLK, Twrph0 3 HCLK, Twrph1 1 HCLK with HCLK = 90000000
NAND device: Manufacturer ID: 0x98, Chip ID: 0x76 (Toshiba NAND 64MiB 3,3V 8-bit)
Scanning device for bad blocks
Skipping bad block check
Creating 6 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x0002c000 : "u-boot"
0x0002c000-0x00030000 : "bootscript"
0x00030000-0x00040000 : "bootsplash0"
0x00040000-0x00050000 : "bootsplash1"
0x00050000-0x00170000 : "kernel"
0x00170000-0x04000000 : "rootfs"
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
cpia2: V4L-Driver for Vision CPiA2 based cameras v1.0.0
usbcore: registered new driver cpia2
s3c2410 usb gadget driver loaded. Version 1.3.6 Grey Innovation
mice: PS/2 mouse device common for all mice
Probing Grey-keypad...
s3c2410-i2c s3c2410-i2c: slave address 0x10
s3c2410-i2c s3c2410-i2c: bus frequency set to 9 KHz
s3c2410-i2c s3c2410-i2c: i2c-0: S3C I2C adapter
eeprom_24cxx module initialised
Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC).
i2c/cs43l43.o : created PROC entry driver/cs43l43
cs43l43 module initialised
i2c/cs43l43.o : Adapter registered: s3c2410-i2c
probing for s3c2410-iis
s3c2410-iis s3c2410-iis: attached cs43l43 driver
s3c2410-iis s3c2410-iis: clock pclk, rate 45000000Hz
s3c2410-iis s3c2410-iis: probe called
s3c2410-iis s3c2410-iis: soundcard attached ok (c03385d0)
ALSA device list:
#0: S3C24XX CS43L43
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
Freeing init memory: 68K
snd_pcm_hw_params:
snd_pcm_action_single: res=0
snd_pcm_action_single: res=0
snd_pcm_drop: pcm stopping
snd_pcm_stop:
snd_pcm_action_single: res=0
snd_pcm_hw_params:
snd_pcm_drop: pcm stopping
snd_pcm_stop:
snd_pcm_action_single: res=0
snd_pcm_hw_params:
snd_pcm_action_single: res=0
dma2: IRQ with no loaded buffer?
dma2: IRQ with no loaded buffer?
snd_pcm_lib_write1: avail: 2048, threshold: 1
s3c24xx_snd_pcm_trigger: substream=c0346e20, cmd=1
snd_pcm_action_single: res=0
snd_pcm_action_single: res=0
snd_pcm_update_hw_ptr_post: avail: 8192, stop_threshold: 8192, buffer_size: 8192, hw_ptr 81920
snd_pcm_drain_done:
s3c24xx_snd_pcm_trigger: substream=c0346e20, cmd=0
snd_pcm_action_single: res=0
Average speed: 19.11% (6 seconds)
Nice. I was talking to some of the people involved with this last year, and despite it being a recent system, it's an open design and they're happy to see it emulated as emulation helps with development of new software etc.
It'll be interesting to see if MAME compatibility ends up better than the other emulators, as while we're not emulating it at an FPGA level, we are a lot more flexible and emulate more of the extra peripherals.
I would call it FPGA "translation", not emulation. Trying to use original FPGA "language" as close as possible but unfortunately have to take shortcuts sometimes. Not sure about whole varaity of peripherals - current goal is implement Next specific features whatever others Spectrums in MAME can't provide now.
yep, it's a different scene, and the NEXT is well suited to arcade conversions using the original code for game logic but which reinterpret the video / sound. In cases like that emulation helps greatly.
not a bad product, but supply issues will likely condemn the hardware to being not much more than a historical footnote.
Sega Ferie's pen calibration screen. Colors are approximations, and the crosshair char is missing its rightmost dots, but the rest looks accurate.
Probably more interesting is the CPU itself: T6A84 seems to use distinct address spaces for code, data, and stack, with ROM and RAM address range mappings configured via I/O ports. This allows it to fetch and execute instructions from code space (0x10000 bytes), while reading another range from ROM (also 0x10000 bytes), or manipulating RAM in data space (0x8000 bytes). At least this is what makes sense from disassembled code, can't really find any documentation for it...