source: rtems/c/src/lib/libbsp/i386/pc386/startup/bspstart.c @ 938ef78c

5
Last change on this file since 938ef78c was 7cdabc49, checked in by Joel Sherrill <joel.sherrill@…>, on 12/14/14 at 22:27:06

pc386: Add Edison base support

The current support for the Edison supports a single polled
UART for input and output plus a simulated clock tick. The
activities forward for supporting the Edison have been posted
on the RTEMS mailing lists and at:

http://rtemsramblings.blogspot.com/2014/12/intel-edison-and-rtems-road-forward.html

  • Property mode set to 100644
File size: 3.1 KB
Line 
1/*-------------------------------------------------------------------------+
2| This file contains the PC386 BSP startup package. It includes application,
3| board, and monitor specific initialization and configuration. The generic CPU
4| dependent initialization has been performed before this routine is invoked.
5+--------------------------------------------------------------------------+
6| (C) Copyright 1997 -
7| - NavIST Group - Real-Time Distributed Systems and Industrial Automation
8|
9| http://pandora.ist.utl.pt
10|
11| Instituto Superior Tecnico * Lisboa * PORTUGAL
12+--------------------------------------------------------------------------+
13| Disclaimer:
14|
15| This file is provided "AS IS" without warranty of any kind, either
16| expressed or implied.
17+--------------------------------------------------------------------------+
18| This code is based on:
19|   bspstart.c,v 1.8 1996/05/28 13:12:40 joel Exp - go32 BSP
20| With the following copyright notice:
21| **************************************************************************
22| *  COPYRIGHT (c) 1989-2008.
23| *  On-Line Applications Research Corporation (OAR).
24| *
25| *  The license and distribution terms for this file may be
26| *  found in the file LICENSE in this distribution or at
27| *  http://www.rtems.org/license/LICENSE.
28| **************************************************************************
29+--------------------------------------------------------------------------*/
30
31#include <bsp.h>
32#include <bsp/irq.h>
33#include <rtems/pci.h>
34#include <libcpu/cpuModel.h>
35
36/*
37 * Helper to initialize the PCI Bus
38 */
39static void bsp_pci_initialize_helper(void)
40{
41#if (BSP_IS_EDISON == 0)
42  int pci_init_retval;
43
44  pci_init_retval = pci_initialize();
45  if (pci_init_retval != PCIB_ERR_SUCCESS) {
46      printk("PCI bus: could not initialize PCI BIOS interface\n");
47  }
48#endif
49}
50
51/*-------------------------------------------------------------------------+
52|         Function: bsp_start
53|      Description: Called before main is invoked.
54| Global Variables: None.
55|        Arguments: None.
56|          Returns: Nothing.
57+--------------------------------------------------------------------------*/
58static void bsp_start_default( void )
59{
60  /*
61   *  We need to determine how much memory there is in the system.
62   */
63  bsp_size_memory();
64
65  /*
66   * Turn off watchdog
67   */
68#if (BSP_IS_EDISON == 1)
69  volatile uint32_t *edison_wd = (volatile uint32_t *)0xff009000;
70  *edison_wd = 0x11f8;
71#endif
72
73
74  /*
75   * Calibrate variable for 1ms-loop (see timer.c)
76   */
77#if (BSP_IS_EDISON == 0)
78  Calibrate_loop_1ms();
79#endif
80
81  /*
82   * Init rtems interrupt management
83   */
84  rtems_irq_mngt_init();
85
86  /*
87   * Init rtems exceptions management
88   */
89  rtems_exception_init_mngt();
90
91  /*
92   * init PCI Bios interface...
93   */
94  bsp_pci_initialize_helper();
95
96#if (BSP_IS_EDISON == 0)
97  Clock_driver_install_handler();
98#endif
99
100#if BSP_ENABLE_IDE
101  bsp_ide_cmdline_init();
102#endif
103
104} /* bsp_start_default */
105
106/*
107 *  By making this a weak alias for bsp_start_default, a brave soul
108 *  can override the actual bsp_start routine used.
109 */
110void bsp_start (void) __attribute__ ((weak, alias("bsp_start_default")));
Note: See TracBrowser for help on using the repository browser.