RTEMS, Bootloaders and HW parameters

Thomas Dörfler Thomas.Doerfler at embedded-brains.de
Sun Nov 8 17:57:54 UTC 2009


some days ago I onve again added support to pass parameters from a
specific boot loader (Freescale DBug) to an RTEMS BSP. While I was
modifying the ethernet driver and the console driver and the bsp startup
to get bts and pieces from the boot loader, I got the impression that
this is all wrong :-(

The parameters I am talking about are:
- console baud rate
- UART port to be used for console
- actual memory start/end address (or addresses...)
- CPU clock speed
- BUS clock speed
- base clock speed for peripherals (like UART, timers...)
- ethernet MAC addresses
- primary ethernet port to be used
- initial IP addesses for client, server, DNS, gateway....

Wouldn't it make sense to establish a different structure to collect and
then spread this information? What I have in mind is sort of a database,
(in fact this can be an extended BSP configuration  structure or
something similar), that allows to:

- write a routine like "bsp_params_init_from_boot()", that fetches as
much info as possible from the boot loader and stores it in this
bsp_params database

- have a mechanism to override these parameters from bspopts.h, of set there

- have a function that can be used by all drivers to get the relevant

This would allow us to make many drivers generic again, even the
questions "where do I get the initial baudrate", "which port should be
/dev/console", "what is the system bus frequency" etc. would get generic

What do you all think about this?
Should I make a proposal for such a database?



Embedded Brains GmbH
Thomas Doerfler        Obere Lagerstrasse 30
D-82178 Puchheim       Germany
email: Thomas.Doerfler at embedded-brains.de
Phone: +49-89-18908079-2
Fax:   +49-89-18908079-9

More information about the users mailing list