› Foros › Retro y descatalogado › DreamCast
G2 bus
The G2 bus is supported by HOLLY. This bus supports the audio chip AICA, a modem, external expansion devices, and other synchronous devices. The G2 bus is basically a PCI-like bus, with a bus clock of 25MHz and a bus width of 16 bits. The bus supports three interrupt lines, one for each of the supported devices listed above. Aside from the modem, DMA transfer is possible with the AICA and expansion devices.
Enlaces significativos a proyectos G2
DCiberia
http://www.dciberia.net/tiki-view_forum.php?forumId=23
G2 Ethernet Adapter NETBSD
http://www.ceres.dti.ne.jp/~tsutsui/netbsd/dcext-20040820.diff
http://mail-index.netbsd.org/port-dreamcast/2002/06/11/0000.html
http://mail-index.netbsd.org/port-dreamcast/2002/06/26/0000.html
Discusion en DCEmu
http://www.dcemu.co.uk/vbulletin/archive/index.php/t-2518.html
G2 Código e Información
http://fxr.watson.org/fxr/source/arch/dreamcast/dev/g2/g2bus_bus_mem.c?v=NETBSD
Extraer el Bus G2 del modem por Semicolo
http://semicolo.free.fr/Dreamcast/tutorialfr.html
Para montar un PCB por Semicolo
http://semicolo.free.fr/Dreamcast/dc-ext-002-600dpi.png
Montar PCB a externo con el conector de Modem
http://semicolo.free.fr/Dreamcast/ConnecteurG2.html
http://semicolo.free.fr/Dreamcast/xfer/indexfr.html
nu_kru escribió:Una pregunta desde la completa ignorancia, para la modificacion de la bios, no seria mas facil, siempre que quepa por temas de tamaño, la reescritura de esta? Me refiero con lo que sacaron no hace mucho para la escritura de la bios de otras regiones en nuestra dc.
Saludos.
[G2 bus 50pin]
1 : +5V
2 : +5V
3 : +5V
4 : +5V
5 : ???
6 : /IRQA * interrupt request A {input} (used modem unit / lan adapter [HIT-0300])
7 : ???
8 : ???
9 : ???
10 : GND
11 : GND
12 : GND
13 : /IRQB * interrupt request B {input} (used BBA [HIT-0400])
14 : /LBE * lower byte enable {output} (direction / lower byte enable)
15 : ???
16 : /UBE * upper byte enable {output}
17 : +3.3V
18 : +3.3V
19 : +3.3V
20 : /BTB * bus termination B {input} (access time control / burst transfer)
21 : /AEN * address enable {output} (address enable / bus cycle start)
22 : /BTA * bus termination A {input} (access time control / burst trabsfer)
23 : GND
24 : GND
25 : AD15 *
. . * AD[15:0] {output/input} (address / data multiplexed 16bit bus)
. . * 25pin to 40pin
40 : AD0 *
41 : GND * (guard GND of system clock)
42 : GND * (guard GND of system clock)
43 : CLK * system clock {output} (25MHz)
44 : GND
45 : GND
46 : /RESET * system reset {output}
47 : GND
48 : GND
49 : ???
50 : ???
thank's bITmASTER and Dan Potter
■ G2 bus signal timing ▲
byte or word access:
/AEN -__--------------
/BTA -------_---------
/BTB -------_---------
ADxx aADDDDD D: byte data (AD[15:8] or AD[7:0]) or word data (AD[15:0])
/xBE -_______--------- /LBE and /UBE (lower byte enable / upper byte enable)
long word access:
/AEN -____________----
/BTA -------_----_----
/BTB -------______----
ADxx aAdddddDDDDD d: low word data D: high word data
/xBE -____________---- /LBE and /UBE (lower byte enable / upper byte enable)
-: one step equal one system clock cycle (40nSEC)
a: low word address (A[15:1] lsb 1bit alway '0' {A[0]})
A: high word address (A[28:16] msb 3bit always '0' {A[31:29]})
(There is a possibility that the address overlaps when the SPU side is accessed
when the decipherment is done only with low word address.)
G2 bus 22pin / 20pin ('/BTA' and '/BTB') controls the access time.
If this control is not used, it ends automatically by the time-out (1.2uSEC).
When a long word is accessed, it is always necessary.
(It becomes only the bus cycle of lower word if it doesn't control.)
direction information of '/LBE': (read / write operation)
read operation:
CLK __--__--__--__--_
/AEN --________-------
/LBE ------___________ direction (read) / lower byte enable
/UBE ------___________
write operation:
CLK __--__--__--__--_
/AEN --________-------
/LBE --_______________ direction (write) / lower byte enable
/UBE ------___________
* this timing is word access
melovampire escribió:si os sirve de consuelo yo en verano kiero pilarme un dreamcast dev kit.Pero hay que esperar un tiempecito a ke me recupere económicamente jejejeje
5 V. en DC
VozdeLosMuertos escribió:Si alguien quiere intentar programar el loader ese para usarlo desde la VMU: http://www.linenoise.info/electronica/programacion-de-vmus-1/
RAYDEN01 escribió:Exelente informacion Ron, por cierto, con un disco duro se reducirian los tiempos de carga,
pero algun area del disco se podria usar como memoria virtual para mas posibilidades?
como neo4all o mas homebrew o para optimizar al propio shenmue?
o la bios tiene un limite de los 16 megas de ram actuales que posee la consola?
Se que son muchas preguntas, pero esque la verdad me interesa todo esto, y al ser un estudiante de electornica y computacion, me parece muy interesante este proyecto
rondc escribió:
Ese punto vale, pero cuidado que los consumos estan limitados, hay varios puntos donde pillar , incluido en donde conecta la fuente con la placa.
Buena info, pero en este caso no nos sirve de ayuda. Hemos investigado las opciones que nos da la VMU. De momento no podemos lanzar ningún bin desde la VMU y eso que el hack del puyopuyo abría una serie de puertas para aprovecharnos de ello.
Desgraciadamente no podemos hacer nada, a ver, me explico. Yo mediante un loader KOS puede acceder a la VMU como si una unidad independiente se tratase y acceder a los ficheros de la misma y hacer lo mismo que con una unidad convencional, pero para ello necesito arrancar mi programa y eso solo es viable de dos formas, o bien cargando un loader desde GD o previa carga del DCToolIP / DCLoad Serial tambien desde GD/CD, por tanto la teoría de la carga previa de un loader desde GD sigue siendo necesario.
Se ha mirado de modificar la flash para forzar al mapple bus a hacer boot desde la VMU.
P.D. ¿Se me había olvidado que la DC no es la Katana ni un prototipo ?. Hay que ajustarse al HW que tenemos, ahora mismo el objetivo es un bus G2 a PCI funcional.
En el momento que podamos tener listo el bus, la tarea se debe focalizar en la búsqueda de tarjetas controladoras IDE/ATA que no se exactamente cuantas se comercualizan o si es complicado encontrar estas mismas. Lo mismo digo para las de red, obviamente tendrán que llevar el chip Realtek RT8019AS.
Por otro lado una cosa, esto es más lento emociona menos que el post del Chavo del HD de la DC pero ¿a que es más serio ? xD
si se podria utilizar parte del disco como memoria swap para el homebrew y si la bios tiene limitacion de memoria si tu como hice yo consigues memoria compatible con la que tiene la dc y la sueldas ( cirugia avanzada) la consola te arrancara pero si arrancas con linux por mucha memoria que la pongas veras que solo esta la original.
Ron si mal no recuerdo atraves del hack del puyo puyo y con un linux adaptado se consiguio subir la memoria virtual de la dc conectando la dc con el cable que habia al pc y utilizando el disco duro del pc pero es mucho montaje, lo de la vmu habria que seguir mirandolo, yo sigo emperrado en modificar la bios original para que acepte mas memoria
Rondc escribió:Ese punto vale, pero cuidado que los consumos estan limitados, hay varios puntos donde pillar , incluido en donde conecta la fuente con la placa.
Rondc escribió:Ese punto vale, pero cuidado que los consumos estan limitados, hay varios puntos donde pillar , incluido en donde conecta la fuente con la placa.
Rondc escribió:Ese punto vale, pero cuidado que los consumos estan limitados, hay varios puntos donde pillar , incluido en donde conecta la fuente con la placa.
rondc escribió:PUCH, me alegro que andes por el hilo.
¿Podrías dar una explicación sintetizada de tus descubrimientos con las bios de la DC / Katana para ilustrar a los colegas ?
Maxpako escribió:Pero en la PSP, el Firmware es la BIOS + el Sistema Operativo (por asi decirlo)...
Y en la Dreamcast (pienso) que es lo mismo (BIOS + Sistema Operativo), o no?
Y sino, el Sistema Operativo de la DC esta en algun otro chip aparte de el de la BIOS?
SEGA Dreamcast
general exception handler: 308 byte
TLB miss exception handler: 224 byte
interrupt exception handler: 228 byte
total memory = 16384 KB
avail memory = 14032 KB
using 230 buffers containing 920 KB of memory
mainbus0 (root)
shb0 at mainbus0
scif0 at shb0
maple0 at shb0
mapleA at maple0 port 0: Dreamcast Controller
mapleB at maple0 port 1: Dreamcast Controller
mapleB1 at maple0 port 1 subunit 1: Visual Memory
mapleC at maple0 port 2: Keyboard
mkbd0 at mapleC: Unknown keyboard 4
wskbd0 at mkbd0 (mux ignored): console keyboard
pvr0 at shb0: 640 x 480, 16bpp, VGA, RGB
wsdisplay0 at pvr0 (kbdmux ignored): console (80x30, vt100 emulation), using wskbd0
gdrom0 at shb0: SH4 IRL 9
g2bus0 at shb0
gapspci0 at g2bus0: SEGA GAPS PCI Bridge
pci0 at gapspci0 bus 0
pci0: memory space enabled
rtk0 at pci0 dev 0 function 0: SEGA Broadband Adapter
rtk0: interrupting at SH4 IRL 11
rtk0: Ethernet address 00:d0:f1:02:9c:38
ukphy0 at rtk0 phy 7: Generic IEEE 802.3u media interface
ukphy0: OUI 0x000000, model 0x0000, rev. 0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
Ethernet address: 00:00:00:00:00:00
lana_detect: invalid ethernet address
lana_match: lana_detect failed
SEGA Dreamcast
general exception handler: 308 byte
TLB miss exception handler: 224 byte
interrupt exception handler: 228 byte
total memory = 16384 KB
avail memory = 14032 KB
using 230 buffers containing 920 KB of memory
mainbus0 (root)
shb0 at mainbus0
scif0 at shb0
maple0 at shb0
mapleA at maple0 port 0: Dreamcast Controller
mapleB at maple0 port 1: Dreamcast Controller
mapleB1 at maple0 port 1 subunit 1: Visual Memory
mapleC at maple0 port 2: Keyboard
mkbd0 at mapleC: Unknown keyboard 4
wskbd0 at mkbd0 (mux ignored): console keyboard
pvr0 at shb0: 640 x 480, 16bpp, VGA, RGB
wsdisplay0 at pvr0 (kbdmux ignored): console (80x30, vt100 emulation), using wskbd0
gdrom0 at shb0: SH4 IRL 9
g2bus0 at shb0
Ethernet address: 00:d0:f1:02:19:0b
lana0 at shb0
Ethernet address: 00:d0:f1:02:19:0b
lana0: Sega LAN-Adapter Ethernet
lana0: Ethernet address 00:d0:f1:02:19:0b
Anyway, Broadband Adapter is connected over gapspci bridge,
so it should have own bus_space functions, I think.
Lan Adapter has "sparse" address space, so it requires "stride"
support if you would like to share bus_space among all devices.W
BTW, wdc adapter made by Kiyoshi Ikehara also requires different
bus_space functions.
/*
* The !gapspci_config_access case really shouldn't happen, ever, unless
* someone implicitly messes around with the last devfn value.. otherwise we
* only support a single device anyways, and if we didn't have a BBA, we
* wouldn't make it terribly far through the PCI setup anyways.
*
* Also, we could very easily support both Type 0 and Type 1 configurations
* here, but since it doesn't seem that there is any such implementation in
* existence, we don't bother.
*
* I suppose if someone actually gets around to ripping the chip out of
* the BBA and hanging some more devices off of it, then this might be
* something to take into consideration. However, due to the cost of the BBA,
* and the general lack of activity by DC hardware hackers, this doesn't seem
* likely to happen anytime soon.
*/
interface G2
interface PCI
SRAM Bufer for PCI DMA
operating logic
file arch/dreamcast/dreamcast/autoconf.c
file arch/dreamcast/dreamcast/procfs_machdep.c procfs
file arch/dreamcast/dreamcast/clock.c
-file arch/sh3/sh3/disksubr.c disk
+file arch/dreamcast/dreamcast/disksubr.c disk
defopt opt_memsize.h IOM_ROM_BEGIN IOM_ROM_SIZE IOM_RAM_BEGIN IOM_RAM_SIZE
defopt opt_led_addr.h LED_ADDR
@@ -90,3 +90,14 @@
file arch/dreamcast/dev/g2/gapspci.c gapspci
file arch/dreamcast/dev/g2/gapspci_dma.c gapspci
file arch/dreamcast/dev/g2/gapspci_pci.c gapspci
+
+device dppbus { }
+attach dppbus at shb
+file arch/dreamcast/dev/dpp/dppbus.c dppbus
+file arch/dreamcast/dev/dpp/dppbus_bus_mem.c dppbus
+
+attach wdc at dppbus with wdc_dppbus
+file arch/dreamcast/dev/dpp/wdc_dppbus.c wdc_dppbus
+
+#attach ne at dppbus with ne_dppbus: rtl80x9
+#file arch/dreamcast/dev/dpp/if_ne_dppbus.c ne_dppbus
--- sys/arch/dreamcast.orig/conf/shl.x
+++ sys/arch/dreamcast/conf/shl.x
@@ -1,4 +1,5 @@
-OUTPUT_FORMAT("elf32-shl-unx")
+/*OUTPUT_FORMAT("elf32-shl-unx")*/
+OUTPUT_FORMAT("coff-shl")
OUTPUT_ARCH(sh)
MEMORY
{
arch/sh/drivers: Makefile
arch/sh/drivers/dma: Kconfig Makefile dma-api.c dma-g2.c
dma-isa.c dma-pvr2.c dma-sh.c dma-sh.h
arch/sh/drivers/pci: Kconfig Makefile dma-dreamcast.c
fixups-dreamcast.c ops-bigsur.c
ops-dreamcast.c ops-snapgear.c pci-auto.c
pci-dma.c pci-sh7751.c pci-sh7751.h
pci-st40.c pci-st40.h pci.c
arch/sh/kernel : smp.c
arch/sh/kernel/cpu: init.c
arch/sh/kernel/cpu/sh3: ex.S
arch/sh/kernel/cpu/sh4: ex.S sq.c
manugarrote escribió:Pedona si pongo una burrada, por lo quie he entendido la mayoría del trabajo está hecho y habéis cunmplido las espectativas, me refiero a que sea fácil y barato, pese a que haya que sacrificar el modem (al que no le doy ningún uso). Ahora bién, se ha conseguido implementar soporte ISA, IDE, Compact Flash... es una placa. ¿Habéis conseguido algo en el tema de la amplicación de RAM?
Muchas GRACIAS por vuestro trabajo. änimo y un saludo.
rondc escribió:RAM
La bios de la DC direcciona fisicamente 16 Mb de RAM, para eso como dije hackear la bios y ampliar, pero eso no está al alcance de todos.
Lo de aprovechar el conector del modem es la idea mas fácil y barata dado que encontrar conectores G2 es cuanto menos IMPOSIBLE.
Olvidaros de ampliar la RAM, en todo caso sería RAM basada en SWAP tal cual lo hace el linux, es decir memoria virtual, pero de momento a ese punto no se ha llegado. Y cuando este listo el tema del MMU sobre HD o CF ya se contará, en la cabeza está.
Ahora mismo el Compact Flash es la opción más barata y económica con memorias de hasta 4 Gb.
Maxpako escribió:Por lo menos hasta 128MB