/[gxemul]/trunk/src/machines/machine_landisk.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/machines/machine_landisk.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 34 by dpavlin, Mon Oct 8 16:21:17 2007 UTC revision 38 by dpavlin, Mon Oct 8 16:21:53 2007 UTC
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *     *  
27   *   *
28   *  $Id: machine_landisk.c,v 1.3 2006/12/30 13:31:02 debug Exp $   *  $Id: machine_landisk.c,v 1.8 2007/04/13 16:07:26 debug Exp $
29   *   *
30   *  SH4-based LANDISK.   *  I-O DATA LANDISK USL-5P.
31     *
32     *  This machine consists of:
33     *
34     *      o)  An SH4 processor, which includes serial console etc,
35     *      o)  an IDE controller at address 0x14000000,
36     *      o)  and a minimal SH-IPL+G PROM emulation layer (required to make
37     *          OpenBSD/landisk boot).
38   */   */
39    
40  #include <stdio.h>  #include <stdio.h>
# Line 41  Line 48 
48  #include "memory.h"  #include "memory.h"
49  #include "misc.h"  #include "misc.h"
50    
51    #include "sh4_exception.h"
52    #include "sh4_scireg.h"
53    
54    
55  MACHINE_SETUP(landisk)  MACHINE_SETUP(landisk)
56  {  {
57          machine->machine_name = "Landisk";          char tmpstr[300];
58    
59            machine->machine_name = "Landisk USL-5P";
60    
61            /*  200 MHz SH4 CPU clock:  */
62          if (machine->emulated_hz == 0)          if (machine->emulated_hz == 0)
63                  machine->emulated_hz = 200000000;                  machine->emulated_hz = 200000000;
64    
65          /*  50 MHz SH4 PCLOCK:  */          /*  50 MHz SH4 PCLOCK:  */
66          machine->cpus[0]->cd.sh.pclock = 50000000;          machine->cpus[machine->bootstrap_cpu]->cd.sh.pclock = 50000000;
67    
68          dev_ram_init(machine, 0x0c000000, 64 * 1048576, DEV_RAM_RAM, 0x0);          dev_ram_init(machine, 0x0c000000, 64 * 1048576, DEV_RAM_RAM, 0x0);
69    
70            /*  wdc0 at obio0 port 0x14000000-0x1400000f irq 10  */
71            snprintf(tmpstr, sizeof(tmpstr), "wdc irq=%s.cpu[%i].irq[0x%x]"
72                " addr_mult=2 addr=0x14000000",
73                machine->path, machine->bootstrap_cpu, SH4_INTEVT_IRQ10);
74            device_add(machine, tmpstr);
75    
76            /*  rsclock0 at shb0: RS5C313 real time clock  */
77            snprintf(tmpstr, sizeof(tmpstr), "rs5c313 addr=0x%"PRIx64,
78                (uint64_t) SCI_DEVICE_BASE);
79            device_add(machine, tmpstr);
80    
81          if (!machine->prom_emulation)          if (!machine->prom_emulation)
82                  return;                  return;
83    
84          /*  TODO?  */          /*
85             *  Ugly hardcoded register contents at bootup:
86             *
87             *  r4 (arg 0) = boot howto flags
88             *  r5 (arg 1) = bootinfo pointer for NetBSD (?) and
89             *               symbol end pointer for OpenBSD (?)
90             *
91             *  TODO: Make nicer.
92             */
93            cpu->cd.sh.r[4] = 0;
94            cpu->cd.sh.r[5] = 0x8c000000 + 8 * 1048576;     /*  Note/TODO:
95                                    Assuming hardcoded 8 MB kernel size!  */
96    
97            sh_ipl_g_emul_init(machine);
98  }  }
99    
100    
101  MACHINE_DEFAULT_CPU(landisk)  MACHINE_DEFAULT_CPU(landisk)
102  {  {
103          /*  Hitachi SH4, 200 MHz  */          /*  Hitachi SH4 7751R, 200 MHz  */
104          machine->cpu_name = strdup("SH7750");          machine->cpu_name = strdup("SH7751R");
105  }  }
106    
107    

Legend:
Removed from v.34  
changed lines
  Added in v.38

  ViewVC Help
Powered by ViewVC 1.1.26