diff --git a/bsps/arm/beagle/README.JTAG b/bsps/arm/beagle/README.JTAG deleted file mode 100644 index 8d30590b54..0000000000 --- a/bsps/arm/beagle/README.JTAG +++ /dev/null @@ -1,20 +0,0 @@ -To run RTEMS from scratch (without any other bootcode) on the beagles, -you can comfortably load the executables over JTAG using gdb. This is -necessarily target-specific however. - -1. BBXM - - - For access to JTAG using openocd, see simscripts/bbxm.cfg. - - openocd then offers access to gdb using simscripts/gdbinit.bbxm. - - start openocd using bbxm.cfg - - copy your .exe to a new dir and that gdbinit file as .gdbinit in the same dir - - go there and start gdb: - $ arm-rtems4.11-gdb hello.exe - - gdb will invoke the BBXM hardware initialization in the bbxm.cfg - and load the ELF over JTAG. type 'c' (for continue) to run it. - - breakpoints, C statement and single-instruction stepping work. - -2. beaglebone white - -This has been tested with openocd and works but not in as much detail as for -the BBXM yet (i.e. loading an executable from scratch). diff --git a/bsps/arm/beagle/README.md b/bsps/arm/beagle/README.md index 4a464f2ad7..1b4a09159d 100644 --- a/bsps/arm/beagle/README.md +++ b/bsps/arm/beagle/README.md @@ -124,3 +124,51 @@ Good luck & enjoy! Ben Gras beng@shrike-systems.com + + +JTAG +---- +To run RTEMS from scratch (without any other bootcode) on the beagles, +you can comfortably load the executables over JTAG using gdb. This is +necessarily target-specific however. + +1. BBXM + + - For access to JTAG using openocd, see simscripts/bbxm.cfg. + - openocd then offers access to gdb using simscripts/gdbinit.bbxm. + - start openocd using bbxm.cfg + - copy your .exe to a new dir and that gdbinit file as .gdbinit in the same dir + - go there and start gdb: + $ arm-rtems4.11-gdb hello.exe + - gdb will invoke the BBXM hardware initialization in the bbxm.cfg + and load the ELF over JTAG. type 'c' (for continue) to run it. + - breakpoints, C statement and single-instruction stepping work. + +2. beaglebone white + +This has been tested with openocd and works but not in as much detail as for +the BBXM yet (i.e. loading an executable from scratch). + + +Testing +------- +To build and run the tests for this BSP, use the RTEMS tester. +The necessary software can be built with the RTEMS source builder. + +To build the BSP for testing: + - set CONSOLE_POLLED=1 in the configure environment, some tests + assume console i/o is polled + - add --enable-tests to the configure line + +1. Qemu + +Linaro Qemu can emulate the beagleboard xm and so run all regression +tests in software. Build the bbxm.bset from the RTEMS source builder and +you will get qemu linaro that can run them. There is a beagleboardxm_qemu +bsp in the RTEMS tester to invoke it with every test. + +2. bbxm hardware + +This requires JTAG, see README.JTAG. Use the beagleboardxm bsp in the +RTEMS tester. It starts gdb to connect to openocd to reset the target +and load the RTEMS executable for each test iteration. diff --git a/bsps/arm/beagle/TESTING b/bsps/arm/beagle/TESTING deleted file mode 100644 index 2fea12b714..0000000000 --- a/bsps/arm/beagle/TESTING +++ /dev/null @@ -1,20 +0,0 @@ -To build and run the tests for this BSP, use the RTEMS tester. -The necessary software can be built with the RTEMS source builder. - -To build the BSP for testing: - - set CONSOLE_POLLED=1 in the configure environment, some tests - assume console i/o is polled - - add --enable-tests to the configure line - -1. Qemu - -Linaro Qemu can emulate the beagleboard xm and so run all regression -tests in software. Build the bbxm.bset from the RTEMS source builder and -you will get qemu linaro that can run them. There is a beagleboardxm_qemu -bsp in the RTEMS tester to invoke it with every test. - -2. bbxm hardware - -This requires JTAG, see README.JTAG. Use the beagleboardxm bsp in the -RTEMS tester. It starts gdb to connect to openocd to reset the target -and load the RTEMS executable for each test iteration. diff --git a/bsps/arm/csb337/README.kit637_v6 b/bsps/arm/csb337/README.kit637_v6 deleted file mode 100644 index 23a3cb759c..0000000000 --- a/bsps/arm/csb337/README.kit637_v6 +++ /dev/null @@ -1,26 +0,0 @@ -# Fernando Nicodemos -# from NCB - Sistemas Embarcados Ltda. (Brazil) -# - -This is the BSP for Cogent Computer System's KIT637_V6. It implements an -updated version of the CSB337 board with a number of optional peripherals. - -This KIT is implemented by CSB637 single board computer using the -Atmel AT91RM9200 CPU and the CSB937 target main board. It uses an -Optrex LCD (T-51750AA, 640x480) and Touchscreen (not supported in this -BSP). The IDE and USB (host and device) interfaces are also not supported. -The SD and Compact Flash cards drivers are still under development. - -The differences in the CSB637 single board computer are very slight but -important: - - CSB337 CSB637 - ========== ========== -Clock speed 184MHz 184MHz -External memory 16MB SDRAM 64MB SDRAM -Flash memory 8MB Strata 8/16MB Strata (8MB used by default) -Video buffer 1MB 8MB -Video driver S1D13706 S1D13506 -PHY Layer LXT971ALC BCM5221 - -?? Some GPIO or interrupts moved around. diff --git a/bsps/arm/csb337/README.md b/bsps/arm/csb337/README.md index 96fa0167b2..0ac7c55655 100644 --- a/bsps/arm/csb337/README.md +++ b/bsps/arm/csb337/README.md @@ -13,3 +13,34 @@ The differences in the board are very slight but important: Please check README.kit637_v6 for more explanation about the Cogent's Development Kit that uses the CSB637 single board computer. + + +kit637_v6 +--------- +Fernando Nicodemos +from NCB - Sistemas Embarcados Ltda. (Brazil) + +This is the BSP for Cogent Computer System's KIT637_V6. It implements an +updated version of the CSB337 board with a number of optional peripherals. + +This KIT is implemented by CSB637 single board computer using the +Atmel AT91RM9200 CPU and the CSB937 target main board. It uses an +Optrex LCD (T-51750AA, 640x480) and Touchscreen (not supported in this +BSP). The IDE and USB (host and device) interfaces are also not supported. +The SD and Compact Flash cards drivers are still under development. + +The differences in the CSB637 single board computer are very slight but +important: + +``` + CSB337 CSB637 + ========== ========== +Clock speed 184MHz 184MHz +External memory 16MB SDRAM 64MB SDRAM +Flash memory 8MB Strata 8/16MB Strata (8MB used by default) +Video buffer 1MB 8MB +Video driver S1D13706 S1D13506 +PHY Layer LXT971ALC BCM5221 +``` + +?? Some GPIO or interrupts moved around. diff --git a/bsps/i386/pc386/HOWTO b/bsps/i386/pc386/HOWTO deleted file mode 100644 index 9b7733ab4f..0000000000 --- a/bsps/i386/pc386/HOWTO +++ /dev/null @@ -1,396 +0,0 @@ -+-----------------------------------------------------------------------------+ -| RTEMS 4.6.0 PC386 BSP HOWTO - 2003/05/08 | -| | -+-----------------------------------------------------------------------------+ -| (C) Copyright 1998 - | -| - NavIST Group - Real-Time Distributed Systems and Industrial Automation | -| | -| http://pandora.ist.utl.pt | -| | -| Instituto Superior Tecnico * Lisboa * PORTUGAL | -+-----------------------------------------------------------------------------+ -| Disclaimer: | -| | -| This file is provided "AS IS" without warranty of any kind, either | -| expressed or implied. | -+-----------------------------------------------------------------------------+ -| History: | -| 12 June 2000 - Updated to 4.5 (Joel) | -| 8 May 2003 - PXE GRUB (Chris Johns) | -+-----------------------------------------------------------------------------+ - - -1. Introduction ---------------- - - This tries to explain how to setup the RTEMS host environment so -that RTEMS applications can be built for and run in a bare PC 386 or -above. - - It covers essentially the aspects of loading images, since -information concerning other issues such as building the development -tools and the RTEMS distribution can be found in the 'RTEMS 4.6.0 -On-Line Library' under 'Getting Started with RTEMS for C/C++ Users'. - - Please note that everything in the following text using the -notation '<...>' is just an alias to something and should always be -substituted by the real thing! - - -2. Building the GNU C/C++ Cross Compiler Toolset ------------------------------------------------- - - Obtaining, building and installing the tools for building the -PC386 BSP of RTEMS is covered in detail in the 'RTEMS 4.6.0 On-Line -Library' -> 'Getting Started with RTEMS for C/C++ Users'. You can -either use pre-built toolset executables or build your own from -the instructions given there. - - This BSP is designed to work only with ELF toolset configurations. -This is format used by the i386-rtems target. - - -4. Building RTEMS ------------------ - Obtaining, building and installing the tools for building the -PC386 BSP is covered in detail in the 'RTEMS 4.6.0 On-Line Library' -> -'Getting Started with RTEMS for C/C++ Users' -> 'Building RTEMS'. - - When running configure, use the following values for the listed -options with an i386-rtems toolset: - - --target=i386-rtems - --enable-rtemsbsp=pc386 - - -5. RTEMS Tests --------------- - - If you've completed the last step successfully, you'll find the -RTEMS sample and test files that can be loaded with GRUB in the -'/pc386/tests' directory, RTEMS sample and test files in -a format suitable for use with NetBoot in the -'/pc386/BootImgs' directory. - - -6. Loading RTEMS PC386 applications ------------------------------------ - -6.1. Unarchiving ----------------- - - Files which have been "tarred, gzipped" (i.e. .tar.gz or .tgz -extension) may be unarchived with a command similar to one of the -following: - - zcat .tgz | tar xvof - - - OR - - gunzip -c .tgz | tar xvof - - - OR - - tar xzvf .tgz - - NOTE: gunzip -c is equivalent to zcat. On commercial (non-Linux) -Unices, since the GNU utilities are not the standard 'tar' will be -gtar (GNU tar) and 'zcat' will be 'gzcat'. - - Given that the necessary utility programs are installed, any of -the above commands will extract the contents of .tar.gz into the -current directory. To view the contents of an archive without -restoring any files, use a command similar to the following: - - zcat .tgz | tar tvf - - - -6.2 Using GRUB to load RTEMS PC386 applications from Floppy ------------------------------------------------------------ - - Using GRUB (GRand Unified Bootloader) is the simplest way to load -and run your PC386 BSP samples, tests and programs. You will need to build GRUB -so you need a working GCC and friends. The online documentation for GRUB lists -what you need: - - - http://www.gnu.org/manual/grub/html_node/index.html - - You can get the latest release of GRUB from its homepage: - - - http://www.gnu.org/software/grub/ - - Once you obtain the .tar.gz archive from: - - - ftp://alpha.gnu.org/gnu/grub/ - -Download the lastest version (grub-0.93.tar.gz), change to a temporary -directory (you won't need the grub files after this and can just go ahead and -delete the whole directory structure that was generated) and unarchive -'grub-0.93.tar.gz' following the instructions given above in [2. Unarchiving]. - - $ cd /tmp - $ mkdir grub - $ cd grub - $ cat grub-0.93.tar.gz | gzip -d | tar xf - - -after this is done create a build directory and decend into it: - - $ mkdir build - $ cd build - -then configure GRUB with the standard options: - - $ ../grub-0.93/configure - -and if successful run make: - - $ make - - Once complete you should have the 'stage1' and 'stage2' files. They will be -in the directories with the same name. - - You should have two (2) formatted diskettes available. One of -these will only be used temporarily to create the other one, and we'll -refer to it as 'RAW GRUB' diskette (you can label it accordingly if -you wish). The other diskette, which we will refer to as 'GRUB FS' -should be high-level formatted with one of GRUB's supported file -systems, which are: DOS FAT, BSD FFS, and Linux ext2fs. - - A DOS FAT diskette can, obviously, be created under DOS with the -'FORMAT' command. Under Linux, the following commands are available to -add file systems to low-level formatted diskettes: - - 1. To add a DOS FAT file system to a low-level formatted diskette: - - a) If you have mtools installed: - - 'mformat a:'. - - b) Assuming that you are formatting the diskette in the first - floppy disk drive ('/dev/fd0' under Linux): - - 'mkdosfs /dev/fd0' or - - 'mkfs.msdos /dev/fd0'. - - 2. To add a Linux ext2fs file system to a low-level formatted - diskette, assuming that you are formatting the diskette in the - first floppy disk drive ('/dev/fd0' under Linux): - - 'mke2fs /dev/fd0' or - - 'mkfs.ext2 /dev/fd0'. - - Next we will install using 'rawrite' or 'dd' to the 'GRUB RAW' -diskette. - - NOTE: This will destroy any data currently on the diskette. - - Execute your OS's equivalent of (this should work for recent -FreeBSD versions and Linux just fine): - - dd if=stage1/stage1 of=/dev/fd0 bs=512 count=1 - dd if=stage2/stage2 of=/dev/fd0 bs=512 seek=1 - - Under DOS/Windows/NT, courtesy of Eric Hanchrow (erich@microsoft.com): - - * Use the copy /b command to binary concatenate the stage1 and - stage2 files together via: - - copy /b stage1\stage1 stage2\stage2 grub.raw - - * Use rawrite.exe (which is available in many places on the net and - in some Linux distributions) to write grub.raw to a diskette. - -(CCJ: I am not sure about the Windows location etc) - - Next stage: copy the 'stage1' and 'stage2' files to the 'GRUB FS' -diskette (if you are using Linux you can mount the diskette in an -appropriate mount point and then 'cp' the files to it, if it is either -a DOS FAT or an EXT2FS diskette, or in the case of a DOS FAT diskette -you can use 'mcopy' from 'mtools'.) - - After this is done boot a PC using the 'GRUB RAW' diskette. After -this is done, you will get GRUB's command line interface. Exchange -'GRUB RAW' with the 'GRUB FS' diskette in the drive and issue the -following command from GRUB's prompt: - - install=(fd0)/stage1 (fd0) (fd0)/stage2 0x8000 (fd0)/grubmenu - - This command will make the 'GRUB FS' diskette bootable. After this -is done, you won't require the 'GRUB RAW' diskette anymore and you can -delete the 'stage1' file from the 'GRUB FS' diskette. - - Next copy all the files you wish to load to the diskette. The GRUB -loadable test and sample files in the RTEMS distribution have '.exe' -extension and can be found under the build point in the 'pc386/tests' -directory. You can compress this files with gzip to save space if you -wish. GRUB loads 'gzipped' files transparently. - - Finally you have to create a GRUB menu configuration file. We will -call this file 'grubmenu'. You can call it anything as long as you use -the correct name in the 'install' command where we used 'grubmenu'. - - The 'grubmenu' file, as far as we are interested has the following -syntax: - - title= Hello World Test - kernel= (fd0)/hello.exe.gz - - You can add as many of this entries as you want to the 'grubmenu' -file. There should be one for each program you wish to load. The -'title=' line provides a description for the program that will appear -after boot in the GRUB menu for the user to choose and the 'kernel=' -line describes where the file can be found by GRUB (you should leave -the '(fd0)/' part and just substitute the rest if you've copied the -files to the root directory of the diskette. - - Just boot the PC with the 'GRUB FS' diskette and you will be able -to choose which program you want to load from GRUB's menu. - - The GRUB documentation is available in HTML format in the 'docs' -directory of the GRUB tree starting with the 'index.html' file. - - -6.3 Using GRUB to load RTEMS PC386 applications via PXE NetBoot ----------------------------------------------------------------- - -PXE is the Intel Preboot Execution Environment. A number of PC -manufactures provide a PXE option in the BIOS. This is usually a -Net Boot option in a BIOS configuration screen. The simplist way to -load an RTEMS application via PXE is to use GRUB as a first stage -loader. - -You will need to determine your network card, and have a working -network with a DHCP (or BOOTP), and TFTP server. - -You may to find a TFTP server that does not support option -negotiations. A google search shows a number of PC's have a buggy -PXE loader. Supressing option negotiations seems to make them -work. - -You will need to build GRUB for your network card. Follow the -procedure in item 6.2 up to the configure point. At this point -run the following configure command: - - $ ../grub-0.93/configure --enable-diskless --enable-eepro100 - -for an Etherexpress Pro 100 network card, then run make: - - $ make - - Once complete you should have the 'stage2/pxegrub' file. Copy -this to your TFTP server's download directory. Configure your -DHCP server to provide an IP address and download the image. For -the ISC server found on operating systems such as Linux something -like the following should do: - - # - # PC loading RTEMS via PXE and GRUB - # - - group - { - filename "/tftpboot/pxeboot"; - host rtems-pc { hardware ethernet 00:08:c7:73:41:65; } - } - -If all works your PC should boot and load GRUB over the network: - - GRUB version 0.93 (639K lower / 64512K upper memory) - - Address: 10.10.10.10 - NetMask: 255.255.255.0 - Server: 10.10.10.1 - Gateway: 10.10.10.1 - - [ Minimal BASH-like line editing is supported. For the first word, TAB - lists possible command completions. Anywhere else TAB lists the possible - completions of a device/filename. ] - - grub> - -Copy your RTEMS executable to the TFTP server directory then enter -the following GRUB commands: - - grub> root (nd) - Filesystem type is tftp, using whole disk - - grub> kernel ticker.exe - [Multiboot-elf, <0x100000:0x1e5a4:0x2b08>, shtab=0x122140, entry=0x10000c] - - grub> boot - -The GRUB documents how to get GRUB to load a configuration file. - - -6.4 Using NetBoot to load RTEMS PC386 applications ---------------------------------------------------- - - To load the '*.bt' files you can - - Alternatively, if you have a PC connected to a network with a -BOOTP server and a TFTP server (this can very well be you're Linux -RTEMS host system), you can use Gero Kuhlmann's NetBoot loader, to -load RTEMS to a diskless PC across a network. You can get it from: - - ftp://sunsite.unc.edu/pub/Linux/system/boot/ethernet/netboot-0.7.3.tar.gz - -or in any of Sunsite's mirrors. It is also available from NetBoot's -homepage: - - http://www.han.de/~gero/netboot - - After unarchiving 'netboot-0.7.3.tar.gz' you should change to the -base directory of this and run: - - ./configure --disable-mknbi-dos --disable-mknbi-linux --disable-mknbi-mgl - - Afterwards, you should follow the instructions contained in the -'INSTALL' file also contained in the base directory, on how to setup the -server(s) and to build a boot ROM for the client PC network card, or a -boot diskette, and the PC client should be able to load the '*.bt' files -from the server. - - The important sections to check in the 'INSTALL FILE' are the last two: - - - Setup of the server (only the BOOTP and TFTP parts - ignore NFS). - =================== - - - Setup of the client including building the bootrom - ================================================== - -all the rest can be safely ignored if you don't care to examine it. - - -7. Technical Information ------------------------- - - NOTE: All the following paths are relative to the base directory -of the RTEMS distribution. - - As of the writing of this HOWTO, PC386 images can be loaded either -in low memory 0x10000 (64KB) until 0x97C00 (607K) using NetBoot or in -high memory from 0x100000 (1024KB) until the top of the available -memory using either NetBoot or GRUB. - - If you want to change the default loading address from 1024KB to -something else, just change the value of the variable RELOCADDR in the -'make/custom/pc386.cfg' file to the new value you want (make sure you -follow the instructions indicated before the definition of RELOCADDR). - - Remember that GRUB restricts the loading addresses to values above -0x100000 (1024KB), only NetBoot can load images in low memory. - - After you make any changes to RELOCADDR and if you are using -NetLoader, you'll have to recompile the -'c/src/lib/libbsp/i386/pc386/start/start16.s' file. The easiest way to -achieve this is just to 'make clean' and the 'make all' again. The -quickest way is to change to -'/c/src/lib/libbsp/i386/pc386/start' and 'make -RTEMS_BSP=pc386 clean all'. - - When programming interrupt handlers take into account that the PIC -is reprogrammed and so you should use the interface functions provided -in '/pc386/lib/include/irq.h> to guarantee that everything -works ok. diff --git a/bsps/i386/pc386/README.dec21140 b/bsps/i386/pc386/README.dec21140 deleted file mode 100644 index 674f2624a1..0000000000 --- a/bsps/i386/pc386/README.dec21140 +++ /dev/null @@ -1 +0,0 @@ -The dec21140 network driver is found in libchip/networking. diff --git a/bsps/i386/pc386/README.md b/bsps/i386/pc386/README.md index 05c98d6da7..05d38be09d 100644 --- a/bsps/i386/pc386/README.md +++ b/bsps/i386/pc386/README.md @@ -83,3 +83,475 @@ GDB can be support using: ``` The GDB stub details and in shared/comm/GDB.HOWTO. + + +SMP +--- +The following files were developed by Erich Boleyn . +The original files were copied from http://www.uruk.org/mps/ and committed +into cvs as is. These files will be modified for RTEMS smp support, +but the original files are being committed in order to track any file +changes that occur. We are attempting to keep these changes as minimal +and conainted as possible. + + * start/smp-imps.c + * ../include/bsp/smp-imps.h + * ../include/bsp/apic.h + + +Status +------ +There are a wide range of PC configurations. This BSP has been tested +on only a handful. There are configurations which do not yet work. The +failure is suspected to be video card related. Here is a list of +successes and failures. + +``` +SUCCESSES +========= + GRUB - AMD K6 MMX 200Mhz + S3 ViRGE + GRUB - 486 DX 33Mhz + Cirrus Logic CL-GD540x/542x + GRUB - Pentium MMX 166Mhz + S3 Trio 64V2 + GRUB - Pentium (P54C) 120Mhz + S3 Trio 64V+ + GRUB - Pentium-S 133Mhz + S3 Trio 64V2 + +FAILURES +======== + GRUB - 486 DX2 66Mhz + Cirrus Logic CL-GD5428 - reset + GRUB - PII 333 Mhz + STB Vision 128 - reset + GRUB - PII 300 Mhz + Permedia - reset + GRUB - Pentium 60 Mhz + Mach 32/64 - reset +``` + + +dec21140 +-------- +The dec21140 network driver is found in libchip/networking. + + +HOWTO +----- ++-----------------------------------------------------------------------------+ +| RTEMS 4.6.0 PC386 BSP HOWTO - 2003/05/08 | +| | ++-----------------------------------------------------------------------------+ +| (C) Copyright 1998 - | +| - NavIST Group - Real-Time Distributed Systems and Industrial Automation | +| | +| http://pandora.ist.utl.pt | +| | +| Instituto Superior Tecnico * Lisboa * PORTUGAL | ++-----------------------------------------------------------------------------+ +| Disclaimer: | +| | +| This file is provided "AS IS" without warranty of any kind, either | +| expressed or implied. | ++-----------------------------------------------------------------------------+ +| History: | +| 12 June 2000 - Updated to 4.5 (Joel) | +| 8 May 2003 - PXE GRUB (Chris Johns) | ++-----------------------------------------------------------------------------+ + + +1. Introduction +--------------- + + This tries to explain how to setup the RTEMS host environment so +that RTEMS applications can be built for and run in a bare PC 386 or +above. + + It covers essentially the aspects of loading images, since +information concerning other issues such as building the development +tools and the RTEMS distribution can be found in the 'RTEMS 4.6.0 +On-Line Library' under 'Getting Started with RTEMS for C/C++ Users'. + + Please note that everything in the following text using the +notation '<...>' is just an alias to something and should always be +substituted by the real thing! + + +2. Building the GNU C/C++ Cross Compiler Toolset +------------------------------------------------ + + Obtaining, building and installing the tools for building the +PC386 BSP of RTEMS is covered in detail in the 'RTEMS 4.6.0 On-Line +Library' -> 'Getting Started with RTEMS for C/C++ Users'. You can +either use pre-built toolset executables or build your own from +the instructions given there. + + This BSP is designed to work only with ELF toolset configurations. +This is format used by the i386-rtems target. + + +4. Building RTEMS +----------------- + Obtaining, building and installing the tools for building the +PC386 BSP is covered in detail in the 'RTEMS 4.6.0 On-Line Library' -> +'Getting Started with RTEMS for C/C++ Users' -> 'Building RTEMS'. + + When running configure, use the following values for the listed +options with an i386-rtems toolset: + +```shell + --target=i386-rtems + --enable-rtemsbsp=pc386 +``` + +5. RTEMS Tests +-------------- + + If you've completed the last step successfully, you'll find the +RTEMS sample and test files that can be loaded with GRUB in the +'/pc386/tests' directory, RTEMS sample and test files in +a format suitable for use with NetBoot in the +'/pc386/BootImgs' directory. + + +6. Loading RTEMS PC386 applications +----------------------------------- + +6.1. Unarchiving +---------------- + + Files which have been "tarred, gzipped" (i.e. .tar.gz or .tgz +extension) may be unarchived with a command similar to one of the +following: + +```shell + zcat .tgz | tar xvof - +``` + OR + +```shell + gunzip -c .tgz | tar xvof - +``` + OR + +```shell + tar xzvf .tgz +``` + NOTE: gunzip -c is equivalent to zcat. On commercial (non-Linux) +Unices, since the GNU utilities are not the standard 'tar' will be +gtar (GNU tar) and 'zcat' will be 'gzcat'. + + Given that the necessary utility programs are installed, any of +the above commands will extract the contents of .tar.gz into the +current directory. To view the contents of an archive without +restoring any files, use a command similar to the following: + +```shell + zcat .tgz | tar tvf - +``` + +6.2 Using GRUB to load RTEMS PC386 applications from Floppy +----------------------------------------------------------- + + Using GRUB (GRand Unified Bootloader) is the simplest way to load +and run your PC386 BSP samples, tests and programs. You will need to build GRUB +so you need a working GCC and friends. The online documentation for GRUB lists +what you need: + + - http://www.gnu.org/manual/grub/html_node/index.html + + You can get the latest release of GRUB from its homepage: + + - http://www.gnu.org/software/grub/ + + Once you obtain the .tar.gz archive from: + + - ftp://alpha.gnu.org/gnu/grub/ + +Download the lastest version (grub-0.93.tar.gz), change to a temporary +directory (you won't need the grub files after this and can just go ahead and +delete the whole directory structure that was generated) and unarchive +'grub-0.93.tar.gz' following the instructions given above in [2. Unarchiving]. + +```shell + $ cd /tmp + $ mkdir grub + $ cd grub + $ cat grub-0.93.tar.gz | gzip -d | tar xf - +``` + +after this is done create a build directory and decend into it: + +```shell + $ mkdir build + $ cd build +`` +then configure GRUB with the standard options: + +```shell + $ ../grub-0.93/configure +``` + +and if successful run make: + +```shell + $ make +``` + + Once complete you should have the 'stage1' and 'stage2' files. They will be +in the directories with the same name. + + You should have two (2) formatted diskettes available. One of +these will only be used temporarily to create the other one, and we'll +refer to it as 'RAW GRUB' diskette (you can label it accordingly if +you wish). The other diskette, which we will refer to as 'GRUB FS' +should be high-level formatted with one of GRUB's supported file +systems, which are: DOS FAT, BSD FFS, and Linux ext2fs. + + A DOS FAT diskette can, obviously, be created under DOS with the +'FORMAT' command. Under Linux, the following commands are available to +add file systems to low-level formatted diskettes: + + 1. To add a DOS FAT file system to a low-level formatted diskette: + + a) If you have mtools installed: + + 'mformat a:'. + + b) Assuming that you are formatting the diskette in the first + floppy disk drive ('/dev/fd0' under Linux): + + 'mkdosfs /dev/fd0' or + + 'mkfs.msdos /dev/fd0'. + + 2. To add a Linux ext2fs file system to a low-level formatted + diskette, assuming that you are formatting the diskette in the + first floppy disk drive ('/dev/fd0' under Linux): + + 'mke2fs /dev/fd0' or + + 'mkfs.ext2 /dev/fd0'. + + Next we will install using 'rawrite' or 'dd' to the 'GRUB RAW' +diskette. + + NOTE: This will destroy any data currently on the diskette. + + Execute your OS's equivalent of (this should work for recent +FreeBSD versions and Linux just fine): + +```shell + dd if=stage1/stage1 of=/dev/fd0 bs=512 count=1 + dd if=stage2/stage2 of=/dev/fd0 bs=512 seek=1 +``` + + Under DOS/Windows/NT, courtesy of Eric Hanchrow (erich@microsoft.com): + + * Use the copy /b command to binary concatenate the stage1 and + stage2 files together via: + +```shell + copy /b stage1\stage1 stage2\stage2 grub.raw +``` + + * Use rawrite.exe (which is available in many places on the net and + in some Linux distributions) to write grub.raw to a diskette. + +(CCJ: I am not sure about the Windows location etc) + + Next stage: copy the 'stage1' and 'stage2' files to the 'GRUB FS' +diskette (if you are using Linux you can mount the diskette in an +appropriate mount point and then 'cp' the files to it, if it is either +a DOS FAT or an EXT2FS diskette, or in the case of a DOS FAT diskette +you can use 'mcopy' from 'mtools'.) + + After this is done boot a PC using the 'GRUB RAW' diskette. After +this is done, you will get GRUB's command line interface. Exchange +'GRUB RAW' with the 'GRUB FS' diskette in the drive and issue the +following command from GRUB's prompt: + +```shell + install=(fd0)/stage1 (fd0) (fd0)/stage2 0x8000 (fd0)/grubmenu +``` + This command will make the 'GRUB FS' diskette bootable. After this +is done, you won't require the 'GRUB RAW' diskette anymore and you can +delete the 'stage1' file from the 'GRUB FS' diskette. + + Next copy all the files you wish to load to the diskette. The GRUB +loadable test and sample files in the RTEMS distribution have '.exe' +extension and can be found under the build point in the 'pc386/tests' +directory. You can compress this files with gzip to save space if you +wish. GRUB loads 'gzipped' files transparently. + + Finally you have to create a GRUB menu configuration file. We will +call this file 'grubmenu'. You can call it anything as long as you use +the correct name in the 'install' command where we used 'grubmenu'. + + The 'grubmenu' file, as far as we are interested has the following +syntax: + + title= Hello World Test + kernel= (fd0)/hello.exe.gz + + You can add as many of this entries as you want to the 'grubmenu' +file. There should be one for each program you wish to load. The +'title=' line provides a description for the program that will appear +after boot in the GRUB menu for the user to choose and the 'kernel=' +line describes where the file can be found by GRUB (you should leave +the '(fd0)/' part and just substitute the rest if you've copied the +files to the root directory of the diskette. + + Just boot the PC with the 'GRUB FS' diskette and you will be able +to choose which program you want to load from GRUB's menu. + + The GRUB documentation is available in HTML format in the 'docs' +directory of the GRUB tree starting with the 'index.html' file. + + +6.3 Using GRUB to load RTEMS PC386 applications via PXE NetBoot +---------------------------------------------------------------- + +PXE is the Intel Preboot Execution Environment. A number of PC +manufactures provide a PXE option in the BIOS. This is usually a +Net Boot option in a BIOS configuration screen. The simplist way to +load an RTEMS application via PXE is to use GRUB as a first stage +loader. + +You will need to determine your network card, and have a working +network with a DHCP (or BOOTP), and TFTP server. + +You may to find a TFTP server that does not support option +negotiations. A google search shows a number of PC's have a buggy +PXE loader. Supressing option negotiations seems to make them +work. + +You will need to build GRUB for your network card. Follow the +procedure in item 6.2 up to the configure point. At this point +run the following configure command: + +```shell + $ ../grub-0.93/configure --enable-diskless --enable-eepro100 +``` + +for an Etherexpress Pro 100 network card, then run make: + +```shell + $ make +``` + + Once complete you should have the 'stage2/pxegrub' file. Copy +this to your TFTP server's download directory. Configure your +DHCP server to provide an IP address and download the image. For +the ISC server found on operating systems such as Linux something +like the following should do: + +```shell + # + # PC loading RTEMS via PXE and GRUB + # + + group + { + filename "/tftpboot/pxeboot"; + host rtems-pc { hardware ethernet 00:08:c7:73:41:65; } + } +``` + +If all works your PC should boot and load GRUB over the network: + +```shell + GRUB version 0.93 (639K lower / 64512K upper memory) + + Address: 10.10.10.10 + NetMask: 255.255.255.0 + Server: 10.10.10.1 + Gateway: 10.10.10.1 + + [ Minimal BASH-like line editing is supported. For the first word, TAB + lists possible command completions. Anywhere else TAB lists the possible + completions of a device/filename. ] + + grub> +``` +Copy your RTEMS executable to the TFTP server directory then enter +the following GRUB commands: + +```shell + grub> root (nd) + Filesystem type is tftp, using whole disk + + grub> kernel ticker.exe + [Multiboot-elf, <0x100000:0x1e5a4:0x2b08>, shtab=0x122140, entry=0x10000c] + + grub> boot +``` + +The GRUB documents how to get GRUB to load a configuration file. + + +6.4 Using NetBoot to load RTEMS PC386 applications +--------------------------------------------------- + + To load the '*.bt' files you can + + Alternatively, if you have a PC connected to a network with a +BOOTP server and a TFTP server (this can very well be you're Linux +RTEMS host system), you can use Gero Kuhlmann's NetBoot loader, to +load RTEMS to a diskless PC across a network. You can get it from: + + ftp://sunsite.unc.edu/pub/Linux/system/boot/ethernet/netboot-0.7.3.tar.gz + +or in any of Sunsite's mirrors. It is also available from NetBoot's +homepage: + + http://www.han.de/~gero/netboot + + After unarchiving 'netboot-0.7.3.tar.gz' you should change to the +base directory of this and run: + +```shell + ./configure --disable-mknbi-dos --disable-mknbi-linux --disable-mknbi-mgl +``` + + Afterwards, you should follow the instructions contained in the +'INSTALL' file also contained in the base directory, on how to setup the +server(s) and to build a boot ROM for the client PC network card, or a +boot diskette, and the PC client should be able to load the '*.bt' files +from the server. + + The important sections to check in the 'INSTALL FILE' are the last two: + + - Setup of the server (only the BOOTP and TFTP parts - ignore NFS). + =================== + + - Setup of the client including building the bootrom + ================================================== + +all the rest can be safely ignored if you don't care to examine it. + + +7. Technical Information +------------------------ + + NOTE: All the following paths are relative to the base directory +of the RTEMS distribution. + + As of the writing of this HOWTO, PC386 images can be loaded either +in low memory 0x10000 (64KB) until 0x97C00 (607K) using NetBoot or in +high memory from 0x100000 (1024KB) until the top of the available +memory using either NetBoot or GRUB. + + If you want to change the default loading address from 1024KB to +something else, just change the value of the variable RELOCADDR in the +'make/custom/pc386.cfg' file to the new value you want (make sure you +follow the instructions indicated before the definition of RELOCADDR). + + Remember that GRUB restricts the loading addresses to values above +0x100000 (1024KB), only NetBoot can load images in low memory. + + After you make any changes to RELOCADDR and if you are using +NetLoader, you'll have to recompile the +'c/src/lib/libbsp/i386/pc386/start/start16.s' file. The easiest way to +achieve this is just to 'make clean' and the 'make all' again. The +quickest way is to change to +'/c/src/lib/libbsp/i386/pc386/start' and 'make +RTEMS_BSP=pc386 clean all'. + + When programming interrupt handlers take into account that the PIC +is reprogrammed and so you should use the interface functions provided +in '/pc386/lib/include/irq.h> to guarantee that everything +works ok. diff --git a/bsps/i386/pc386/STATUS b/bsps/i386/pc386/STATUS deleted file mode 100644 index c66877acdf..0000000000 --- a/bsps/i386/pc386/STATUS +++ /dev/null @@ -1,21 +0,0 @@ - -There are a wide range of PC configurations. This BSP has been tested -on only a handful. There are configurations which do not yet work. The -failure is suspected to be video card related. Here is a list of -successes and failures. - -SUCCESSES -========= - GRUB - AMD K6 MMX 200Mhz + S3 ViRGE - GRUB - 486 DX 33Mhz + Cirrus Logic CL-GD540x/542x - GRUB - Pentium MMX 166Mhz + S3 Trio 64V2 - GRUB - Pentium (P54C) 120Mhz + S3 Trio 64V+ - GRUB - Pentium-S 133Mhz + S3 Trio 64V2 - -FAILURES -======== - GRUB - 486 DX2 66Mhz + Cirrus Logic CL-GD5428 - reset - GRUB - PII 333 Mhz + STB Vision 128 - reset - GRUB - PII 300 Mhz + Permedia - reset - GRUB - Pentium 60 Mhz + Mach 32/64 - reset - diff --git a/bsps/i386/pc386/start/README-SMP b/bsps/i386/pc386/start/README-SMP deleted file mode 100644 index dd6de52b0d..0000000000 --- a/bsps/i386/pc386/start/README-SMP +++ /dev/null @@ -1,10 +0,0 @@ -The following files were developed by Erich Boleyn . -The original files were copied from http://www.uruk.org/mps/ and committed -into cvs as is. These files will be modified for RTEMS smp support, -but the original files are being committed in order to track any file -changes that occur. We are attempting to keep these changes as minimal -and conainted as possible. - - + smp-imps.c - + smp-imps.h - + ../irq/apic.h diff --git a/bsps/lm32/milkymist/Documentation/uart.txt b/bsps/lm32/milkymist/Documentation/uart.txt deleted file mode 100644 index b5b93043e9..0000000000 --- a/bsps/lm32/milkymist/Documentation/uart.txt +++ /dev/null @@ -1,31 +0,0 @@ -Initialization : - - set the CSR_UART_DIVISOR to the correct VALUE, - depending on the internal frequency of the LatticeMico32 softcore. - - for the ML401 board, this value is calculated using this formula : clk_frequency/230400/16 - clk_frequency = 100000000 Hz - => we must set CSR_UART_DIVISOR to 27 - -How to send a byte to uart : - -void writechar(char c) -{ - CSR_UART_RXTX = c; - while(!(irq_pending() & IRQ_UARTTX)); - irq_ack(IRQ_UARTTX); -} - -How to receive a byte from uart : - - -char readchar() -{ - char c; - while(!(irq_pending() & IRQ_UARTRX)); - irq_ack(IRQ_UARTRX); - c = CSR_UART_RXTX; - return c; -} - - diff --git a/bsps/lm32/milkymist/README.md b/bsps/lm32/milkymist/README.md index 28d9bf5cba..bf40956e41 100644 --- a/bsps/lm32/milkymist/README.md +++ b/bsps/lm32/milkymist/README.md @@ -17,3 +17,40 @@ Includes drivers for: - RS232 debug port For more information: http://www.milkymist.org/ + + +UART +---- +Initialization: + + set the CSR_UART_DIVISOR to the correct VALUE, + depending on the internal frequency of the LatticeMico32 softcore. + + for the ML401 board, this value is calculated using this formula : clk_frequency/230400/16 + clk_frequency = 100000000 Hz + => we must set CSR_UART_DIVISOR to 27 + +How to send a byte to uart : + +```c +void writechar(char c) +{ + CSR_UART_RXTX = c; + while(!(irq_pending() & IRQ_UARTTX)); + irq_ack(IRQ_UARTTX); +} +``` + +How to receive a byte from uart : + + +```c +char readchar() +{ + char c; + while(!(irq_pending() & IRQ_UARTRX)); + irq_ack(IRQ_UARTRX); + c = CSR_UART_RXTX; + return c; +} +``` diff --git a/bsps/m68k/uC5282/README.md b/bsps/m68k/uC5282/README.md index 17a64a0877..166da6aa9a 100644 --- a/bsps/m68k/uC5282/README.md +++ b/bsps/m68k/uC5282/README.md @@ -253,3 +253,314 @@ External interrupt lines (priority is fixed between 3 and 4): +-----+--------+--------+--------+--------+--------+--------+--------+--------+ ``` + + +Timing tests +------------ +``` +TIMING TESTS 2005-01-28 +======================== + +*** TIME TEST 1 *** +rtems_semaphore_create 19 +rtems_semaphore_delete 21 +rtems_semaphore_obtain: available 4 +rtems_semaphore_obtain: not available -- NO_WAIT 5 +rtems_semaphore_release: no waiting tasks 12 +*** END OF TEST 1 *** + +*** TIME TEST 2 *** +rtems_semaphore_obtain: not available -- caller blocks 34 +*** END OF TEST 2 *** + +*** TIME TEST 3 *** +rtems_semaphore_release: task readied -- preempts caller 27 +*** END OF TEST 3 *** + +*** TIME TEST 4 *** +rtems_task_restart: blocked task -- preempts caller 54 +rtems_task_restart: ready task -- preempts caller 52 +rtems_semaphore_release: task readied -- returns to caller 18 +rtems_task_create 87 +rtems_task_start 24 +rtems_task_restart: suspended task -- returns to caller 27 +rtems_task_delete: suspended task 66 +rtems_task_restart: ready task -- returns to caller 28 +rtems_task_restart: blocked task -- returns to caller 38 +rtems_task_delete: blocked task 69 +*** END OF TEST 4 *** + +*** TIME TEST 5 *** +rtems_task_suspend: calling task 23 +rtems_task_resume: task readied -- preempts caller 22 +*** END OF TEST 5 *** + +*** TIME TEST 6 *** +rtems_task_restart: calling task 30 +rtems_task_suspend: returns to caller 9 +rtems_task_resume: task readied -- returns to caller 12 +rtems_task_delete: ready task 69 +*** END OF TEST 6 *** + +*** TIME TEST 7 *** +rtems_task_restart: suspended task -- preempts caller 44 +*** END OF TEST 7 *** + +*** TIME TEST 9 *** +rtems_message_queue_create 55 +rtems_message_queue_send: no waiting tasks 20 +rtems_message_queue_urgent: no waiting tasks 21 +rtems_message_queue_receive: available 20 +rtems_message_queue_flush: no messages flushed 8 +rtems_message_queue_flush: messages flushed 12 +rtems_message_queue_delete 29 +*** END OF TEST 9 *** + +*** TIME TEST 10 *** +rtems_message_queue_receive: not available -- NO_WAIT 10 +rtems_message_queue_receive: not available -- caller blocks 38 +*** END OF TEST 10 *** + +*** TIME TEST 11 *** +rtems_message_queue_send: task readied -- preempts caller 37 +*** END OF TEST 11 *** + +*** TIME TEST 12 *** +rtems_message_queue_send: task readied -- returns to caller 23 +*** END OF TEST 12 *** + +*** TIME TEST 13 *** +rtems_message_queue_urgent: task readied -- preempts caller 35 +*** END OF TEST 13 *** + +*** TIME TEST 14 *** +rtems_message_queue_urgent: task readied -- returns to caller 24 +*** END OF TEST 14 *** + +*** TIME TEST 15 *** +rtems_event_receive: obtain current events 0 +rtems_event_receive: not available -- NO_WAIT 5 +rtems_event_receive: not available -- caller blocks 28 +rtems_event_send: no task readied 5 +rtems_event_receive: available 9 +rtems_event_send: task readied -- returns to caller 16 +*** END OF TEST 15 *** + +*** TIME TEST 16 *** +rtems_event_send: task readied -- preempts caller 27 +*** END OF TEST 16 *** + +*** TIME TEST 17 *** +rtems_task_set_priority: preempts caller 39 +*** END OF TEST 17 *** + +*** TIME TEST 18 *** +rtems_task_delete: calling task 83 +*** END OF TEST 18 *** + +*** TIME TEST 19 *** +rtems_signal_catch 5 +rtems_signal_send: returns to caller 12 +rtems_signal_send: signal to self 20 +exit ASR overhead: returns to calling task 15 +exit ASR overhead: returns to preempting task 18 +*** END OF TEST 19 *** + +*** TIME TEST 20 *** +rtems_partition_create 20 +rtems_region_create 40 +rtems_partition_get_buffer: available 11 +rtems_partition_get_buffer: not available 7 +rtems_partition_return_buffer 12 +rtems_partition_delete 11 +rtems_region_get_segment: available 28 +rtems_region_get_segment: not available -- NO_WAIT 29 +rtems_region_return_segment: no waiting tasks 29 +rtems_region_get_segment: not available -- caller blocks 55 +rtems_region_return_segment: task readied -- preempts caller 72 +rtems_region_return_segment: task readied -- returns to caller 58 +rtems_region_delete 25 +rtems_io_initialize 1 +rtems_io_open 1 +rtems_io_close 1 +rtems_io_read 1 +rtems_io_write 1 +rtems_io_control 1 +*** END OF TEST 20 *** + +*** TIME TEST 21 *** +rtems_task_ident 60 +rtems_message_queue_ident 60 +rtems_semaphore_ident 69 +rtems_partition_ident 59 +rtems_region_ident 60 +rtems_port_ident 59 +rtems_timer_ident 61 +rtems_rate_monotonic_ident 60 +*** END OF TEST 21 *** + +*** TIME TEST 22 *** +rtems_message_queue_broadcast: task readied -- returns to caller 32 +rtems_message_queue_broadcast: no waiting tasks 14 +rtems_message_queue_broadcast: task readied -- preempts caller 39 +*** END OF TEST 22 *** + +*** TIME TEST 23 *** +rtems_timer_create 8 +rtems_timer_fire_after: inactive 12 +rtems_timer_fire_after: active 12 +rtems_timer_cancel: active 9 +rtems_timer_cancel: inactive 8 +rtems_timer_reset: inactive 14 +rtems_timer_reset: active 15 +rtems_timer_fire_when: inactive 21 +rtems_timer_fire_when: active 21 +rtems_timer_delete: active 12 +rtems_timer_delete: inactive 11 +rtems_task_wake_when 35 +*** END OF TEST 23 *** + +*** TIME TEST 24 *** +rtems_task_wake_after: yield -- returns to caller 3 +rtems_task_wake_after: yields -- preempts caller 18 +*** END OF TEST 24 *** + +*** TIME TEST 25 *** +rtems_clock_tick 7 +*** END OF TEST 25 *** + +*** TIME TEST 26 *** +_ISR_Disable 1 +_ISR_Flash 0 +_ISR_Enable 0 +_Thread_Disable_dispatch 1 +_Thread_Enable_dispatch 3 +_Thread_Set_state 7 +_Thread_Disptach (NO FP) 16 +context switch: no floating point contexts 12 +context switch: self 2 +context switch: to another task 1 +fp context switch: restore 1st FP task 14 +fp context switch: save idle, restore initialized 3 +fp context switch: save idle, restore idle 13 +fp context switch: save initialized, restore initialized 2 +_Thread_Resume 7 +_Thread_Unblock 6 +_Thread_Ready 5 +_Thread_Get 1 +_Semaphore_Get 1 +_Thread_Get: invalid id 0 +*** END OF TEST 26 *** + +*** TIME TEST 27 *** +interrupt entry overhead: returns to interrupted task 3 +interrupt exit overhead: returns to interrupted task 3 +interrupt entry overhead: returns to nested interrupt 2 +interrupt exit overhead: returns to nested interrupt 2 +interrupt entry overhead: returns to preempting task 4 +interrupt exit overhead: returns to preempting task 20 +*** END OF TEST 27 *** + +*** TIME TEST 28 *** +rtems_port_create 12 +rtems_port_external_to_internal 5 +rtems_port_internal_to_external 6 +rtems_port_delete 12 +*** END OF TEST 28 *** + +*** TIME TEST 29 *** +rtems_rate_monotonic_create 13 +rtems_rate_monotonic_period: initiate period -- returns to caller 20 +rtems_rate_monotonic_period: obtain status 10 +rtems_rate_monotonic_cancel 13 +rtems_rate_monotonic_delete: inactive 17 +rtems_rate_monotonic_delete: active 16 +rtems_rate_monotonic_period: conclude periods -- caller blocks 24 +*** END OF TEST 29 *** + +*** TIME CHECKER *** +Units may not be in microseconds for this test!!! +0 100000 +Total time = 0 +Average time = 0 +NULL timer stopped at 0 +LOOP (1000) timer stopped at 188 +LOOP (10000) timer stopped at 1875 +LOOP (50000) timer stopped at 9375 +LOOP (100000) timer stopped at 18750 +*** END OF TIME CHECKER *** + +*** TIME TEST OVERHEAD *** +rtems_initialize_executive 0 +rtems_shutdown_executive 0 +rtems_task_create 0 +rtems_task_ident 0 +rtems_task_start 0 +rtems_task_restart 0 +rtems_task_delete 0 +rtems_task_suspend 0 +rtems_task_resume 0 +rtems_task_set_priority 0 +rtems_task_mode 0 +rtems_task_get_note 0 +rtems_task_set_note 0 +rtems_task_wake_when 1 +rtems_task_wake_after 0 +rtems_interrupt_catch 0 +rtems_clock_get 1 +rtems_clock_set 1 +rtems_clock_tick 0 +rtems_timer_create 0 +rtems_timer_delete 0 +rtems_timer_ident 0 +rtems_timer_fire_after 1 +rtems_timer_fire_when 1 +rtems_timer_reset 0 +rtems_timer_cancel 0 +rtems_semaphore_create 0 +rtems_semaphore_delete 0 +rtems_semaphore_ident 0 +rtems_semaphore_obtain 0 +rtems_semaphore_release 0 +rtems_message_queue_create 0 +rtems_message_queue_ident 0 +rtems_message_queue_delete 0 +rtems_message_queue_send 0 +rtems_message_queue_urgent 0 +rtems_message_queue_broadcast 0 +rtems_message_queue_receive 0 +rtems_message_queue_flush 0 +rtems_event_send 0 +rtems_event_receive 0 +rtems_signal_catch 0 +rtems_signal_send 0 +rtems_partition_create 0 +rtems_partition_ident 0 +rtems_partition_delete 0 +rtems_partition_get_buffer 0 +rtems_partition_return_buffer 0 +rtems_region_create 0 +rtems_region_ident 0 +rtems_region_delete 0 +rtems_region_get_segment 0 +rtems_region_return_segment 0 +rtems_port_create 0 +rtems_port_ident 0 +rtems_port_delete 0 +rtems_port_external_to_internal 0 +rtems_port_internal_to_external 0 +rtems_io_initialize 0 +rtems_io_open 0 +rtems_io_close 0 +rtems_io_read 0 +rtems_io_write 0 +rtems_io_control 0 +rtems_fatal_error_occurred 0 +rtems_rate_monotonic_create 0 +rtems_rate_monotonic_ident 0 +rtems_rate_monotonic_delete 0 +rtems_rate_monotonic_cancel 0 +rtems_rate_monotonic_period 0 +rtems_multiprocessing_announce 0 +*** END OF TIME OVERHEAD *** +``` diff --git a/bsps/m68k/uC5282/TIMES b/bsps/m68k/uC5282/TIMES deleted file mode 100644 index b2cdecd28a..0000000000 --- a/bsps/m68k/uC5282/TIMES +++ /dev/null @@ -1,305 +0,0 @@ -TIMING TESTS 2005-01-28 -======================== - -*** TIME TEST 1 *** -rtems_semaphore_create 19 -rtems_semaphore_delete 21 -rtems_semaphore_obtain: available 4 -rtems_semaphore_obtain: not available -- NO_WAIT 5 -rtems_semaphore_release: no waiting tasks 12 -*** END OF TEST 1 *** - -*** TIME TEST 2 *** -rtems_semaphore_obtain: not available -- caller blocks 34 -*** END OF TEST 2 *** - -*** TIME TEST 3 *** -rtems_semaphore_release: task readied -- preempts caller 27 -*** END OF TEST 3 *** - -*** TIME TEST 4 *** -rtems_task_restart: blocked task -- preempts caller 54 -rtems_task_restart: ready task -- preempts caller 52 -rtems_semaphore_release: task readied -- returns to caller 18 -rtems_task_create 87 -rtems_task_start 24 -rtems_task_restart: suspended task -- returns to caller 27 -rtems_task_delete: suspended task 66 -rtems_task_restart: ready task -- returns to caller 28 -rtems_task_restart: blocked task -- returns to caller 38 -rtems_task_delete: blocked task 69 -*** END OF TEST 4 *** - -*** TIME TEST 5 *** -rtems_task_suspend: calling task 23 -rtems_task_resume: task readied -- preempts caller 22 -*** END OF TEST 5 *** - -*** TIME TEST 6 *** -rtems_task_restart: calling task 30 -rtems_task_suspend: returns to caller 9 -rtems_task_resume: task readied -- returns to caller 12 -rtems_task_delete: ready task 69 -*** END OF TEST 6 *** - -*** TIME TEST 7 *** -rtems_task_restart: suspended task -- preempts caller 44 -*** END OF TEST 7 *** - -*** TIME TEST 9 *** -rtems_message_queue_create 55 -rtems_message_queue_send: no waiting tasks 20 -rtems_message_queue_urgent: no waiting tasks 21 -rtems_message_queue_receive: available 20 -rtems_message_queue_flush: no messages flushed 8 -rtems_message_queue_flush: messages flushed 12 -rtems_message_queue_delete 29 -*** END OF TEST 9 *** - -*** TIME TEST 10 *** -rtems_message_queue_receive: not available -- NO_WAIT 10 -rtems_message_queue_receive: not available -- caller blocks 38 -*** END OF TEST 10 *** - -*** TIME TEST 11 *** -rtems_message_queue_send: task readied -- preempts caller 37 -*** END OF TEST 11 *** - -*** TIME TEST 12 *** -rtems_message_queue_send: task readied -- returns to caller 23 -*** END OF TEST 12 *** - -*** TIME TEST 13 *** -rtems_message_queue_urgent: task readied -- preempts caller 35 -*** END OF TEST 13 *** - -*** TIME TEST 14 *** -rtems_message_queue_urgent: task readied -- returns to caller 24 -*** END OF TEST 14 *** - -*** TIME TEST 15 *** -rtems_event_receive: obtain current events 0 -rtems_event_receive: not available -- NO_WAIT 5 -rtems_event_receive: not available -- caller blocks 28 -rtems_event_send: no task readied 5 -rtems_event_receive: available 9 -rtems_event_send: task readied -- returns to caller 16 -*** END OF TEST 15 *** - -*** TIME TEST 16 *** -rtems_event_send: task readied -- preempts caller 27 -*** END OF TEST 16 *** - -*** TIME TEST 17 *** -rtems_task_set_priority: preempts caller 39 -*** END OF TEST 17 *** - -*** TIME TEST 18 *** -rtems_task_delete: calling task 83 -*** END OF TEST 18 *** - -*** TIME TEST 19 *** -rtems_signal_catch 5 -rtems_signal_send: returns to caller 12 -rtems_signal_send: signal to self 20 -exit ASR overhead: returns to calling task 15 -exit ASR overhead: returns to preempting task 18 -*** END OF TEST 19 *** - -*** TIME TEST 20 *** -rtems_partition_create 20 -rtems_region_create 40 -rtems_partition_get_buffer: available 11 -rtems_partition_get_buffer: not available 7 -rtems_partition_return_buffer 12 -rtems_partition_delete 11 -rtems_region_get_segment: available 28 -rtems_region_get_segment: not available -- NO_WAIT 29 -rtems_region_return_segment: no waiting tasks 29 -rtems_region_get_segment: not available -- caller blocks 55 -rtems_region_return_segment: task readied -- preempts caller 72 -rtems_region_return_segment: task readied -- returns to caller 58 -rtems_region_delete 25 -rtems_io_initialize 1 -rtems_io_open 1 -rtems_io_close 1 -rtems_io_read 1 -rtems_io_write 1 -rtems_io_control 1 -*** END OF TEST 20 *** - -*** TIME TEST 21 *** -rtems_task_ident 60 -rtems_message_queue_ident 60 -rtems_semaphore_ident 69 -rtems_partition_ident 59 -rtems_region_ident 60 -rtems_port_ident 59 -rtems_timer_ident 61 -rtems_rate_monotonic_ident 60 -*** END OF TEST 21 *** - -*** TIME TEST 22 *** -rtems_message_queue_broadcast: task readied -- returns to caller 32 -rtems_message_queue_broadcast: no waiting tasks 14 -rtems_message_queue_broadcast: task readied -- preempts caller 39 -*** END OF TEST 22 *** - -*** TIME TEST 23 *** -rtems_timer_create 8 -rtems_timer_fire_after: inactive 12 -rtems_timer_fire_after: active 12 -rtems_timer_cancel: active 9 -rtems_timer_cancel: inactive 8 -rtems_timer_reset: inactive 14 -rtems_timer_reset: active 15 -rtems_timer_fire_when: inactive 21 -rtems_timer_fire_when: active 21 -rtems_timer_delete: active 12 -rtems_timer_delete: inactive 11 -rtems_task_wake_when 35 -*** END OF TEST 23 *** - -*** TIME TEST 24 *** -rtems_task_wake_after: yield -- returns to caller 3 -rtems_task_wake_after: yields -- preempts caller 18 -*** END OF TEST 24 *** - -*** TIME TEST 25 *** -rtems_clock_tick 7 -*** END OF TEST 25 *** - -*** TIME TEST 26 *** -_ISR_Disable 1 -_ISR_Flash 0 -_ISR_Enable 0 -_Thread_Disable_dispatch 1 -_Thread_Enable_dispatch 3 -_Thread_Set_state 7 -_Thread_Disptach (NO FP) 16 -context switch: no floating point contexts 12 -context switch: self 2 -context switch: to another task 1 -fp context switch: restore 1st FP task 14 -fp context switch: save idle, restore initialized 3 -fp context switch: save idle, restore idle 13 -fp context switch: save initialized, restore initialized 2 -_Thread_Resume 7 -_Thread_Unblock 6 -_Thread_Ready 5 -_Thread_Get 1 -_Semaphore_Get 1 -_Thread_Get: invalid id 0 -*** END OF TEST 26 *** - -*** TIME TEST 27 *** -interrupt entry overhead: returns to interrupted task 3 -interrupt exit overhead: returns to interrupted task 3 -interrupt entry overhead: returns to nested interrupt 2 -interrupt exit overhead: returns to nested interrupt 2 -interrupt entry overhead: returns to preempting task 4 -interrupt exit overhead: returns to preempting task 20 -*** END OF TEST 27 *** - -*** TIME TEST 28 *** -rtems_port_create 12 -rtems_port_external_to_internal 5 -rtems_port_internal_to_external 6 -rtems_port_delete 12 -*** END OF TEST 28 *** - -*** TIME TEST 29 *** -rtems_rate_monotonic_create 13 -rtems_rate_monotonic_period: initiate period -- returns to caller 20 -rtems_rate_monotonic_period: obtain status 10 -rtems_rate_monotonic_cancel 13 -rtems_rate_monotonic_delete: inactive 17 -rtems_rate_monotonic_delete: active 16 -rtems_rate_monotonic_period: conclude periods -- caller blocks 24 -*** END OF TEST 29 *** - -*** TIME CHECKER *** -Units may not be in microseconds for this test!!! -0 100000 -Total time = 0 -Average time = 0 -NULL timer stopped at 0 -LOOP (1000) timer stopped at 188 -LOOP (10000) timer stopped at 1875 -LOOP (50000) timer stopped at 9375 -LOOP (100000) timer stopped at 18750 -*** END OF TIME CHECKER *** - -*** TIME TEST OVERHEAD *** -rtems_initialize_executive 0 -rtems_shutdown_executive 0 -rtems_task_create 0 -rtems_task_ident 0 -rtems_task_start 0 -rtems_task_restart 0 -rtems_task_delete 0 -rtems_task_suspend 0 -rtems_task_resume 0 -rtems_task_set_priority 0 -rtems_task_mode 0 -rtems_task_get_note 0 -rtems_task_set_note 0 -rtems_task_wake_when 1 -rtems_task_wake_after 0 -rtems_interrupt_catch 0 -rtems_clock_get 1 -rtems_clock_set 1 -rtems_clock_tick 0 -rtems_timer_create 0 -rtems_timer_delete 0 -rtems_timer_ident 0 -rtems_timer_fire_after 1 -rtems_timer_fire_when 1 -rtems_timer_reset 0 -rtems_timer_cancel 0 -rtems_semaphore_create 0 -rtems_semaphore_delete 0 -rtems_semaphore_ident 0 -rtems_semaphore_obtain 0 -rtems_semaphore_release 0 -rtems_message_queue_create 0 -rtems_message_queue_ident 0 -rtems_message_queue_delete 0 -rtems_message_queue_send 0 -rtems_message_queue_urgent 0 -rtems_message_queue_broadcast 0 -rtems_message_queue_receive 0 -rtems_message_queue_flush 0 -rtems_event_send 0 -rtems_event_receive 0 -rtems_signal_catch 0 -rtems_signal_send 0 -rtems_partition_create 0 -rtems_partition_ident 0 -rtems_partition_delete 0 -rtems_partition_get_buffer 0 -rtems_partition_return_buffer 0 -rtems_region_create 0 -rtems_region_ident 0 -rtems_region_delete 0 -rtems_region_get_segment 0 -rtems_region_return_segment 0 -rtems_port_create 0 -rtems_port_ident 0 -rtems_port_delete 0 -rtems_port_external_to_internal 0 -rtems_port_internal_to_external 0 -rtems_io_initialize 0 -rtems_io_open 0 -rtems_io_close 0 -rtems_io_read 0 -rtems_io_write 0 -rtems_io_control 0 -rtems_fatal_error_occurred 0 -rtems_rate_monotonic_create 0 -rtems_rate_monotonic_ident 0 -rtems_rate_monotonic_delete 0 -rtems_rate_monotonic_cancel 0 -rtems_rate_monotonic_period 0 -rtems_multiprocessing_announce 0 -*** END OF TIME OVERHEAD ***