/*
* Setup pointers to hardware dependent routines .
*
* This file is subject to the terms and conditions of the GNU General Public
* License . See the file " COPYING " in the main directory of this archive
* for more details .
*
* Copyright ( C ) 1996 , 1997 , 2004 , 05 by Ralf Baechle ( ralf @ linux - mips . org )
* Copyright ( C ) 2001 , 2002 , 2003 by Liam Davies ( ldavies @ agile . tv )
*
*/
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/ioport.h>
#include <linux/memblock.h>
#include <linux/pm.h>
#include <asm /bootinfo.h>
#include <asm /reboot.h>
#include <asm /setup.h>
#include <asm /gt64120.h>
#include <cobalt.h>
const char *get_system_type(void )
{
switch (cobalt_board_id) {
case COBALT_BRD_ID_QUBE1:
return "Cobalt Qube" ;
case COBALT_BRD_ID_RAQ1:
return "Cobalt RaQ" ;
case COBALT_BRD_ID_QUBE2:
return "Cobalt Qube2" ;
case COBALT_BRD_ID_RAQ2:
return "Cobalt RaQ2" ;
}
return "MIPS Cobalt" ;
}
/*
* Cobalt doesn ' t have PS / 2 keyboard / mouse interfaces ,
* keyboard controller is never used .
* Also PCI - ISA bridge DMA controller is never used .
*/
static struct resource cobalt_reserved_resources[] = {
{ /* dma1 */
.start = 0 x00,
.end = 0 x1f,
.name = "reserved" ,
.flags = IORESOURCE_BUSY | IORESOURCE_IO,
},
{ /* keyboard */
.start = 0 x60,
.end = 0 x6f,
.name = "reserved" ,
.flags = IORESOURCE_BUSY | IORESOURCE_IO,
},
{ /* dma page reg */
.start = 0 x80,
.end = 0 x8f,
.name = "reserved" ,
.flags = IORESOURCE_BUSY | IORESOURCE_IO,
},
{ /* dma2 */
.start = 0 xc0,
.end = 0 xdf,
.name = "reserved" ,
.flags = IORESOURCE_BUSY | IORESOURCE_IO,
},
};
void __init plat_mem_setup(void )
{
int i;
_machine_restart = cobalt_machine_restart;
_machine_halt = cobalt_machine_halt;
pm_power_off = cobalt_machine_halt;
set_io_port_base(CKSEG1ADDR(GT_DEF_PCI0_IO_BASE));
/* I/O port resource */
ioport_resource.end = 0 x01ffffff;
/* These resources have been reserved by VIA SuperI/O chip. */
for (i = 0 ; i < ARRAY_SIZE(cobalt_reserved_resources); i++)
request_resource(&ioport_resource, cobalt_reserved_resources + i);
}
/*
* Prom init . We read our one and only communication with the firmware .
* Grab the amount of installed memory .
* Better boot loaders ( CoLo ) pass a command line too : - )
*/
void __init prom_init(void )
{
unsigned long memsz;
int argc, i;
char **argv;
memsz = fw_arg0 & 0 x7fff0000;
argc = fw_arg0 & 0 x0000ffff;
argv = (char **)fw_arg1;
for (i = 1 ; i < argc; i++) {
strlcat(arcs_cmdline, argv[i], COMMAND_LINE_SIZE);
if (i < (argc - 1 ))
strlcat(arcs_cmdline, " " , COMMAND_LINE_SIZE);
}
memblock_add(0 , memsz);
setup_8250_early_printk_port(CKSEG1ADDR(0 x1c800000), 0 , 0 );
}
Messung V0.5 in Prozent C=92 H=84 G=87
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-09-29)
¤
*© Formatika GbR, Deutschland