117 lines
5.2 KiB
Plaintext
117 lines
5.2 KiB
Plaintext
Hymod Board Database
|
|
|
|
(C) Copyright 2001
|
|
Murray Jensen <Murray.Jensen@csiro.au>
|
|
CSIRO Manufacturing Science and Technology, Preston Lab
|
|
|
|
25-Jun-01
|
|
|
|
This stuff is a set of PHP/MySQL scripts to implement a custom board
|
|
database. It will need *extensive* hacking to modify it to keep the
|
|
information about your custom boards that you want, however it is a good
|
|
starting point.
|
|
|
|
How it is used:
|
|
|
|
1. a board has gone through all the hardware testing etc and is
|
|
ready to have the flash programmed for the first time - first you
|
|
go to a web page and fill in information about the board in a form
|
|
to register it in a database
|
|
|
|
2. the web stuff allocates a (unique) serial number and (optionally)
|
|
a (locally administered) ethernet address and stores the information
|
|
in a database using the serial number as the key (can do whole
|
|
batches of boards in one go and/or use a previously registered board
|
|
as defaults for the new board(s))
|
|
|
|
3. it then creates a file in the tftp area of a server somewhere
|
|
containing the board information in a simple text format (one
|
|
per serial number)
|
|
|
|
4. all hymod boards have an i2c eeprom, and when U-Boot sees that
|
|
the eeprom is unitialised, it prompts for a serial number and
|
|
ethernet address (if not set), then transfers the file created
|
|
in step 3 from the server and initialises the eeprom from its
|
|
contents
|
|
|
|
What this means is you can't boot the board until you have allocated a serial
|
|
number, but you don't have to type it all twice - you do it once on the web
|
|
and the board then finds the info it needs to initialise its eeprom. The
|
|
other side of the coin is the reading of the eeprom and how it gets passed
|
|
to Linux (or another O/S).
|
|
|
|
To see how this is all done for the hymod boards look at the code in the
|
|
"board/hymod" directory and in the file "include/asm/hymod.h". Hymod boards
|
|
can have a mezzanine card which also have an eeprom that needs allocating,
|
|
the same process is used for these as well - just a different i2c address.
|
|
|
|
Other forms provide the following functions:
|
|
|
|
- browsing the board database
|
|
- editing board information (one at a time)
|
|
- maintaining/browsing a (simple) per board event log
|
|
|
|
You will need: MySQL (I use version 3.23.7-alpha), PHP4 (with MySQL
|
|
support enabled) and a web server (I use Apache 1.3.x).
|
|
|
|
I originally started by using phpMyBuilder (http://kyber.dk/phpMyBuilder)
|
|
but it soon got far more complicated than that could handle (but I left
|
|
the copyright messages in there anyway). Most of the code resides in the
|
|
common defs.php file, which shouldn't need much alteration - all the work
|
|
will be in shaping the front-end php files to your liking.
|
|
|
|
Here's a quick summary of what needs doing to use it for your boards:
|
|
|
|
1. get phpMyAdmin (http://phpwizard.net/projects/phpMyAdmin/) - it's an
|
|
invaluable tool for this sort of stuff (this step is optional of course)
|
|
|
|
2. edit "bddb.css" to your taste, if you could be bothered - I have no
|
|
idea what is in there or what it does - I copied it from somewhere else
|
|
("user.css" from the phpMyEdit (http://phpmyedit.sourcerforge.net) package,
|
|
I think) - I figure one day I'll see what sort of things I can change
|
|
in there.
|
|
|
|
3. create a mysql database - call it whatever you like
|
|
|
|
4. edit "create_tables.sql" and modify the "boards" table schema to
|
|
reflect the information you want to keep about your boards. It may or
|
|
may not be easier to do this and the next step in phpMyAdmin. Check out
|
|
the MySQL documentation at http://www.mysql.com/doc/ in particular the
|
|
column types at http://www.mysql.com/doc/C/o/Column_types.html - Note
|
|
there is only support for a few data types:
|
|
|
|
int - presented as an html text input
|
|
char/text - presented as an html text input
|
|
date - presented as an html text input
|
|
enum - presented as an html radio input
|
|
|
|
I also have what I call "enum_multi" which is a set of enums with the
|
|
same name, but suffixed with a number e.g. fred0, fred1, fred2. These
|
|
are presented as a number of html select's with a single label "fred"
|
|
this is useful for board characteristics that have multiple items of
|
|
the same type e.g. multiple banks of sdram.
|
|
|
|
5. use the "create_tables.sql" file to create the "boards" table in the
|
|
database e.g. mysql dbname < create_tables.sql
|
|
|
|
6. create a user and password for the web server to log into the MySQL
|
|
database with; give this user select, insert and update privileges
|
|
to the database created in 3 (and delete, if you want the "delete"
|
|
functions in the edit forms to work- I have this turned off). phpMyAdmin
|
|
helps in this step.
|
|
|
|
7. edit "config.php" and set the variables: $mysql_user, $mysql_pw, $mysql_db,
|
|
$bddb_cfgdir and $bddb_label - keep the contents of this file secret - it
|
|
contains the web servers username and password (the three $mysql_* vars
|
|
are set from the previous step)
|
|
|
|
8. edit "defs.php" and a. adjust the various enum value arrays and b. edit
|
|
the function "pg_foot()" to remove my email address :-)
|
|
|
|
9. do major hacking on the following files: browse.php, doedit.php, donew.php,
|
|
edit.php and new.php to reflect your database schema - fortunately the
|
|
hacking is fairly straight-forward, but it is boring and time-consuming.
|
|
|
|
These notes were written rather hastily - if you find any obvious problems
|
|
please let me know.
|