Create an initialisation function called openbios_init(), similar to modules_init(), for use by libopenbios and make sure all

architectures are updated to use it. This is required to allow binding of C functions into Forth by libopenbios (i.e. cross 
architecture) rather than having to update everything in every arch/*/ initialisation file.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@725 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
Mark Cave-Ayland
2010-04-02 11:41:35 +00:00
committed by Mark Cave-Ayland
parent 075e485628
commit 9661f91432
12 changed files with 64 additions and 0 deletions

View File

@@ -7,6 +7,7 @@
*/
#include "config.h"
#include "libopenbios/openbios.h"
#include "libopenbios/bindings.h"
#include "asm/types.h"
#include "dict.h"
@@ -38,6 +39,7 @@ arch_init( void )
{
void setup_timers(void);
openbios_init();
modules_init();
#ifdef CONFIG_DRIVER_IDE
setup_timers();

View File

@@ -20,6 +20,7 @@
*/
#include "config.h"
#include "libopenbios/openbios.h"
#include "libopenbios/bindings.h"
#include "arch/common/nvram.h"
#include "briq/briq.h"

View File

@@ -16,6 +16,7 @@
*/
#include "config.h"
#include "libopenbios/openbios.h"
#include "libopenbios/bindings.h"
#include "arch/common/nvram.h"
#include "mol/mol.h"
@@ -86,6 +87,7 @@ arch_of_init( void )
devtree_init();
node_methods_init();
nvram_init("/pci/mac-io/nvram");
openbios_init();
modules_init();
pseudodisk_init();
osiblk_init();

View File

@@ -21,6 +21,7 @@
*/
#include "config.h"
#include "libopenbios/openbios.h"
#include "libopenbios/bindings.h"
#include "arch/common/nvram.h"
#include "pearpc/pearpc.h"
@@ -94,6 +95,7 @@ arch_of_init( void )
devtree_init();
nvram_init("/pci/mac-io/nvram");
openbios_init();
modules_init();
setup_timers();
#ifdef CONFIG_DRIVER_PCI

View File

@@ -21,6 +21,7 @@
*/
#include "config.h"
#include "libopenbios/openbios.h"
#include "libopenbios/bindings.h"
#include "drivers/pci.h"
#include "arch/common/nvram.h"
@@ -490,6 +491,7 @@ arch_of_init( void )
ofmem_t *ofmem = ofmem_arch_get_private();
openbios_init();
modules_init();
setup_timers();
#ifdef CONFIG_DRIVER_PCI

View File

@@ -7,6 +7,7 @@
*/
#include "config.h"
#include "libopenbios/openbios.h"
#include "libopenbios/bindings.h"
#include "drivers/drivers.h"
#include "asm/types.h"
@@ -130,6 +131,7 @@ static void init_memory(void)
static void
arch_init( void )
{
openbios_init();
modules_init();
ob_init_mmu();
ob_init_iommu(hwdef->iommu_base);

View File

@@ -7,6 +7,7 @@
*/
#include "config.h"
#include "libopenbios/openbios.h"
#include "libopenbios/bindings.h"
#include "drivers/drivers.h"
#include "dict.h"
@@ -470,6 +471,7 @@ static void init_memory(void)
static void
arch_init( void )
{
openbios_init();
modules_init();
#ifdef CONFIG_DRIVER_PCI
ob_pci_init();

View File

@@ -32,6 +32,7 @@
#include "kernel/stack.h"
#include "arch/unix/plugins.h"
#include "libopenbios/bindings.h"
#include "libopenbios/openbios.h"
#include "openbios-version.h"
#include "blk.h"
@@ -358,6 +359,7 @@ void exception(__attribute__((unused)) cell no)
static void
arch_init( void )
{
openbios_init();
modules_init();
if(diskemu!=-1)
blk_init();

View File

@@ -7,6 +7,7 @@
*/
#include "config.h"
#include "libopenbios/openbios.h"
#include "libopenbios/bindings.h"
#include "asm/types.h"
#include "dict.h"
@@ -50,6 +51,7 @@ arch_init( void )
{
void setup_timers(void);
openbios_init();
modules_init();
#ifdef CONFIG_DRIVER_PCI
arch = &default_pci_host;

View File

@@ -0,0 +1,22 @@
/*
* Creation Date: <2010/04/02 12:00:00 mcayland>
* Time-stamp: <2010/04/02 12:00:00 mcayland>
*
* <openbios.h>
*
* General OpenBIOS initialization
*
* Copyright (C) 2010 Mark Cave-Ayland (mark.cave-ayland@siriusit.co.uk)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2
*
*/
#ifndef _H_LIBOPENBIOS
#define _H_LIBOPENBIOS
extern void openbios_init( void );
#endif /* _H_LIBOPENBIOS */

View File

@@ -12,6 +12,7 @@
<object source="font_8x16.c" condition="FONT_8X16"/>
<object source="fcode_load.c" condition="LOADER_FCODE"/>
<object source="forth_load.c" condition="LOADER_FORTH"/>
<object source="init.c"/>
<object source="ipchecksum.c"/>
<object source="linuxbios_info.c" condition="LINUXBIOS"/>
<object source="ofmem_common.c" condition="OFMEM"/>

24
libopenbios/init.c Normal file
View File

@@ -0,0 +1,24 @@
/*
* Creation Date: <2010/04/02 12:00:00 mcayland>
* Time-stamp: <2010/04/02 12:00:00 mcayland>
*
* <init.c>
*
* OpenBIOS intialization
*
* Copyright (C) 2010 Mark Cave-Ayland (mark.cave-ayland@siriusit.co.uk)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2
*
*/
#include "config.h"
#include "libopenbios/openbios.h"
void
openbios_init( void )
{
// TODO
}