<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://elinux.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://elinux.org/index.php?title=Test_Lab_Board_Suppliers_Guide&amp;feed=atom&amp;action=history</id>
		<title>Test Lab Board Suppliers Guide - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://elinux.org/index.php?title=Test_Lab_Board_Suppliers_Guide&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Test_Lab_Board_Suppliers_Guide&amp;action=history"/>
		<updated>2013-06-19T18:18:11Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.22alpha</generator>

	<entry>
		<id>http://elinux.org/index.php?title=Test_Lab_Board_Suppliers_Guide&amp;diff=5606&amp;oldid=prev</id>
		<title>Glenn: +Category:Community</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Test_Lab_Board_Suppliers_Guide&amp;diff=5606&amp;oldid=prev"/>
				<updated>2008-02-10T21:09:40Z</updated>
		
		<summary type="html">&lt;p&gt;+&lt;a href=&quot;/Category:Community&quot; title=&quot;Category:Community&quot;&gt;Category:Community&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 21:09, 10 February 2008&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 183:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 183:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* contact the lab manager&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* contact the lab manager&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* provide shipping information&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* provide shipping information&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Community]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Glenn</name></author>	</entry>

	<entry>
		<id>http://elinux.org/index.php?title=Test_Lab_Board_Suppliers_Guide&amp;diff=2123&amp;oldid=prev</id>
		<title>RBot: Bot (Edward's framework)</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Test_Lab_Board_Suppliers_Guide&amp;diff=2123&amp;oldid=prev"/>
				<updated>2007-03-06T03:38:37Z</updated>
		
		<summary type="html">&lt;p&gt;Bot (Edward&amp;#039;s framework)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Table Of Contents:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This document describes the features required and procedures to follow to put&lt;br /&gt;
a board in the CELF open test lab (see [[Open Test Lab]]). This document is primarily&lt;br /&gt;
targeted at semi-conductor vendors or product vendors who wish to add a board&lt;br /&gt;
to the lab.&lt;br /&gt;
&lt;br /&gt;
The requirements section describes:&lt;br /&gt;
* what is required of the firmware&lt;br /&gt;
* what is required on the host&lt;br /&gt;
* what is required on the target&lt;br /&gt;
* hardware required to control reset and power on the target&lt;br /&gt;
&lt;br /&gt;
The procedures section describes:&lt;br /&gt;
[ more stuff, see below]&lt;br /&gt;
 &lt;br /&gt;
== Overview ==&lt;br /&gt;
Each target board in the lab will be connected to a single Linux host,&lt;br /&gt;
which will be an x86 Linux desktop machine.  A single host may connect to&lt;br /&gt;
more than one target. On the host will be installed&lt;br /&gt;
a complete Linux development environment, as well as cross-compilers, tools,&lt;br /&gt;
and any special programs required to access and control the target board.&lt;br /&gt;
&lt;br /&gt;
Because the lab uses the boards in an automated fashion&lt;br /&gt;
it is required that the host be able to perform a number of&lt;br /&gt;
control operations via (unattended) Linux command line programs.&lt;br /&gt;
This includes:&lt;br /&gt;
* compiling and installing a kernel for use on the board,&lt;br /&gt;
* installing a new root filesystem for use on the board,&lt;br /&gt;
* compiling and installing user-space programs for use on the board&lt;br /&gt;
&lt;br /&gt;
== Desirable configurations ==&lt;br /&gt;
=== Preferred configuration (1) ===&lt;br /&gt;
The preferred configuration for testing most features of the board&lt;br /&gt;
will be as follows:&lt;br /&gt;
* target connected to host via ethernet&lt;br /&gt;
* target connected to host via serial line&lt;br /&gt;
* kernel loaded from host via tftp&lt;br /&gt;
* root file system mounted from host via NFS&lt;br /&gt;
* root account with no password&lt;br /&gt;
* telnetd running on target, with root account accessible&lt;br /&gt;
* ability to reboot target from target command line&lt;br /&gt;
* ability to reset target from host command line&lt;br /&gt;
* ability to power cycle target from host command line&lt;br /&gt;
* Linux console available over serial line connected to host&lt;br /&gt;
&lt;br /&gt;
=== Desired alternate configuration (2) ===&lt;br /&gt;
Some tests results will be better if the kernel&lt;br /&gt;
and root filesystem more closely match those of a shipping&lt;br /&gt;
product.  For these tests, the following configuration is&lt;br /&gt;
highly desirable:&lt;br /&gt;
[ same as above, except:]&lt;br /&gt;
* kernel loaded from local storage (either flash or rotating media)&lt;br /&gt;
* root file system accessed/loaded from local storage&lt;br /&gt;
* mechanism for file transfer to/from target&lt;br /&gt;
&lt;br /&gt;
This will require programs on the host to install the kernel&lt;br /&gt;
and root filesystem to target-local storage.  This can&lt;br /&gt;
be accomplished via any one of: interaction with a known-good Linux&lt;br /&gt;
system operating on target, serial output to target firmware,&lt;br /&gt;
or interaction with board via secondary hardware (such as a jtag module, if one&lt;br /&gt;
is provided to the lab).  However, in any case, the&lt;br /&gt;
control of these operations needs to be automatable,&lt;br /&gt;
and needs to be operable in spite of previous Linux kernel&lt;br /&gt;
boot failures.  (That is, the control program on the host&lt;br /&gt;
needs to be able to reboot the machine and re-install&lt;br /&gt;
the kernel via good-kernel, firmware or hardware (even&lt;br /&gt;
if the last Linux kernel on the hardware was dead), WITHOUT&lt;br /&gt;
manual user intervention (such as changing board pins).)&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The following items are needed for each board:&lt;br /&gt;
* cross-compile toolchains&lt;br /&gt;
** gcc is required&lt;br /&gt;
* kernel source code (and a location to get updates)&lt;br /&gt;
** default kernel configuration for the target board&lt;br /&gt;
* libraries and headers for user-space applications&lt;br /&gt;
** glibc is required&lt;br /&gt;
** uclibc as an alternate option is desirable but not required&lt;br /&gt;
* a binary distribution (user-space libraries and programs) for the board&lt;br /&gt;
** glibc is required&lt;br /&gt;
** busybox is required&lt;br /&gt;
** uclibc is desirable but optional&lt;br /&gt;
* mechanism to install a kernel via host command line&lt;br /&gt;
* mechanism to install a root filesystem via host command line&lt;br /&gt;
* mechanism to copy a program to the target file system&lt;br /&gt;
* mechanism to copy a program from the target filesystem to the host&lt;br /&gt;
* mechanism to reset and/or reboot the machine from&lt;br /&gt;
   the host Linux command line.&lt;br /&gt;
** Sony has used a very simple control module connected to the parallel port of the host machine and the reset switch and power switch pins on the target board, with information available at:&lt;br /&gt;
http://tree.celinuxforum.org/CelfPubWiki/TargetSwitchControlFromParallelPort&lt;br /&gt;
** anything similar would be fine.&lt;br /&gt;
** if absolutely required, we can install a console switcher (which allows for power cycling via a telnet command), but I'd prefer something less drastic than cutting and restoring wall power to the board.&lt;br /&gt;
&lt;br /&gt;
== Procedures ==&lt;br /&gt;
This section documents the following procedures related to board management in the CELF Open Test Lab:&lt;br /&gt;
* pre-testing a board in a lab configuration&lt;br /&gt;
* adding a board to the lab&lt;br /&gt;
* maintaining Linux software for the board in the lab&lt;br /&gt;
* providing hardware support for the board in the lab&lt;br /&gt;
* removing a board from the lab&lt;br /&gt;
&lt;br /&gt;
=== Board pre-test ===&lt;br /&gt;
The board supplier should pre-test their configuration of the board&lt;br /&gt;
by running a sample test at their own facility, prior to sending&lt;br /&gt;
the board to the CELF open test lab facility.&lt;br /&gt;
&lt;br /&gt;
This can be done by installing the necessary software on the host&lt;br /&gt;
machine and target machines, connecting the machines together, &lt;br /&gt;
and running the sample test.  If the sample test is successful,&lt;br /&gt;
then the board can be sent to the lab with greater assurance&lt;br /&gt;
that it can be integrated without problems.&lt;br /&gt;
&lt;br /&gt;
Here is an outline of the steps involved:&lt;br /&gt;
# download the 'target' program (with sample test: 'preset-test.py')&lt;br /&gt;
# install the cross toolchains&lt;br /&gt;
# install the kernel source&lt;br /&gt;
    (this can be as simple as putting the kernel source in a tar file)&lt;br /&gt;
*** it is preferable that the kernel source be in the format: baseline (kernel.org) source + patches&lt;br /&gt;
# install the root filesystem&lt;br /&gt;
# install (or create) auxiliary programs for resetting and rebooting the target&lt;br /&gt;
# install the 'target' program&lt;br /&gt;
# configure the 'target' program by creating an appropriate '/etc/target.conf' file&lt;br /&gt;
# run preset-test.py&lt;br /&gt;
&lt;br /&gt;
=== Adding a board to the lab ===&lt;br /&gt;
Here are the steps for adding a new board to the CELF open test lab:&lt;br /&gt;
* perform the board pre-test&lt;br /&gt;
* package the software for lab&lt;br /&gt;
** create tar files for toolchains&lt;br /&gt;
** create patch sets for kernel&lt;br /&gt;
** create tar file with auxiliary programs&lt;br /&gt;
* send the software to the lab:&lt;br /&gt;
** testlabmanager@tree.celinuxforum.org&lt;br /&gt;
** [or upload it to the lab web site - when web site is active - not yet]&lt;br /&gt;
* ship the board&lt;br /&gt;
** San Jose lab address:&lt;br /&gt;
please send it to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     attn: Tim Bird&lt;br /&gt;
     Sony Electronics&lt;br /&gt;
     3300 Zanker Road, SJ3B6&lt;br /&gt;
     San Jose, CA, 95134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
or directly to the lab at:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     CE Linux Forum Lab Manager&lt;br /&gt;
     Office #171&lt;br /&gt;
     50 Airport Parkway&lt;br /&gt;
     San Jose, CA 95110-1011&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since the lab is unmanned most days, please notify the lab manager&lt;br /&gt;
when you sending hardware directly to the lab, so we can know to&lt;br /&gt;
go in to the office to receive it.&lt;br /&gt;
&lt;br /&gt;
** Tokyo lab address:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    [ need Tokyo lab address here ]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* provide a board support contact&lt;br /&gt;
&lt;br /&gt;
=== Updating board-specific software the lab ===&lt;br /&gt;
[describe updating kernel source or patches here.]&lt;br /&gt;
&lt;br /&gt;
=== Providing hardware support to the lab ===&lt;br /&gt;
Each board supplier should provide contact information for a person&lt;br /&gt;
from their organization that can provide support assistance for their&lt;br /&gt;
target board in the lab.  This person will be contacted by the lab&lt;br /&gt;
manager of the lab where their board is located, in the event that&lt;br /&gt;
there is an unrecoverable hardware failure of the board.&lt;br /&gt;
&lt;br /&gt;
=== Removing a board from the lab ===&lt;br /&gt;
* contact the lab manager&lt;br /&gt;
* provide shipping information&lt;/div&gt;</summary>
		<author><name>RBot</name></author>	</entry>

	</feed>