OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [newlib-1.17.0/] [libgloss/] [hp74x/] [README] - Diff between revs 158 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 158 Rev 816
*** Registers
*** Registers
        GR0     *always zero
        GR0     *always zero
        GR1     scratch
        GR1     scratch
        GR2     normal return register
        GR2     normal return register
        GR27    Global Data Pointer (Must be set in crt0)
        GR27    Global Data Pointer (Must be set in crt0)
        GR30    SP stack pointer
        GR30    SP stack pointer
        GR31    milicode return pointer
        GR31    milicode return pointer
        SR*     Space registers
        SR*     Space registers
        CR24-31 Temporary Control Registers
        CR24-31 Temporary Control Registers
        CR14    Vector Table Register (like VBR on an m68020)
        CR14    Vector Table Register (like VBR on an m68020)
        CR0     Put in a count, causes exception when decremented to 0.
        CR0     Put in a count, causes exception when decremented to 0.
FORTH's magic number is 031240
FORTH's magic number is 031240
***
***
    Series 700/800
    Series 700/800
      The following options are also supported:
      The following options are also supported:
           -snnn          set the initial system load (ISL) start address to
           -snnn          set the initial system load (ISL) start address to
                          nnn in the volume label.  This is useful when
                          nnn in the volume label.  This is useful when
                          building boot media for Series 700/800 systems.
                          building boot media for Series 700/800 systems.
           -lnnn          specifies the length in bytes of the ISL code in
           -lnnn          specifies the length in bytes of the ISL code in
                          the LIF volume.
                          the LIF volume.
           -ennn          set the ISL entry point to nnn bytes from the
           -ennn          set the ISL entry point to nnn bytes from the
                          beginning of the ISL.  For example, specifying -
                          beginning of the ISL.  For example, specifying -
                          e3272 means that the ISL entry point is 3272
                          e3272 means that the ISL entry point is 3272
                          (decimal) bytes from the beginning of the ISL
                          (decimal) bytes from the beginning of the ISL
                          object module.
                          object module.
           -Knnn          forces the directory start location to be the
           -Knnn          forces the directory start location to be the
                          nearest multiple of nnn x 1024 bytes from the
                          nearest multiple of nnn x 1024 bytes from the
                          beginning of the volume.  This is necessary for
                          beginning of the volume.  This is necessary for
                          booting Series 700/800 systems from LIF media.
                          booting Series 700/800 systems from LIF media.
           -n xxx         Sets the volume name to be xxx.
           -n xxx         Sets the volume name to be xxx.
        lifinit -v64000000 -d64 -nISL10 -K2 -s4096 -l61440 -e5336 this_lif
        lifinit -v64000000 -d64 -nISL10 -K2 -s4096 -l61440 -e5336 this_lif
# lifcp --
# lifcp --
#       -r      Forces RAW mode copying. (file type BIN (-23951))
#       -r      Forces RAW mode copying. (file type BIN (-23951))
#       -T      Sets the file type of the directory entry.
#       -T      Sets the file type of the directory entry.
#       -Knnn   forces each file copied in to begin on a nnn x
#       -Knnn   forces each file copied in to begin on a nnn x
#               1024-byte boundary from the beginning of the volume
#               1024-byte boundary from the beginning of the volume
#       Note: the word echoed below MUST be 10 characters exactly.
#       Note: the word echoed below MUST be 10 characters exactly.
#
#
        (echo "FORTH    ") | lifcp -r -T-030001 -K2 - this_lif:AUTO
        (echo "FORTH    ") | lifcp -r -T-030001 -K2 - this_lif:AUTO
#
#
# somxtract infile outfile --
# somxtract infile outfile --
#       converts a series 800 file *only* into a raw image
#       converts a series 800 file *only* into a raw image
It turns out the native cc and our current gcc produce series 700
It turns out the native cc and our current gcc produce series 700
output, so in this case it runs till if fills up the hard disk.
output, so in this case it runs till if fills up the hard disk.
*** rombootlf5 is a FORTH interpreter in a "boot" image. (it won't run on
*** rombootlf5 is a FORTH interpreter in a "boot" image. (it won't run on
the HP742 board)
the HP742 board)
lifls -l rombootlf5
lifls -l rombootlf5
volume ISL10 data size 249984 directory size 8 94/04/20 10:26:36
volume ISL10 data size 249984 directory size 8 94/04/20 10:26:36
filename   type   start   size     implement  created
filename   type   start   size     implement  created
===============================================================
===============================================================
ISL        -12800 16      240      0          94/04/20 10:26:36
ISL        -12800 16      240      0          94/04/20 10:26:36
HPUX       -12928 256     496      0          94/04/20 10:26:37
HPUX       -12928 256     496      0          94/04/20 10:26:37
 IOMAP      -12960 752     1504     0          94/04/20 10:26:37
 IOMAP      -12960 752     1504     0          94/04/20 10:26:37
AUTO       -12289 2256    1        0          94/04/20 10:26:38
AUTO       -12289 2256    1        0          94/04/20 10:26:38
FORTH      -12960 2264    208      0          94/04/20 10:26:38
FORTH      -12960 2264    208      0          94/04/20 10:26:38
HPFORTH    ASCII  2472    420      0          94/04/20 10:26:38
HPFORTH    ASCII  2472    420      0          94/04/20 10:26:38
BOOTROM    ASCII  2896    3849     0          94/04/20 10:26:40
BOOTROM    ASCII  2896    3849     0          94/04/20 10:26:40
PAD1       -12290 6752    1172     0          94/04/20 10:26:40
PAD1       -12290 6752    1172     0          94/04/20 10:26:40
*** The ISL is only needed when booting the raw hardware. As we're runing
*** The ISL is only needed when booting the raw hardware. As we're runing
on a monitor (barely) all we need is a crt0 that initiallizes the GR27
on a monitor (barely) all we need is a crt0 that initiallizes the GR27
Global Data Pointer and zero's bss.
Global Data Pointer and zero's bss.
*** Initial Program Load
*** Initial Program Load
--------------------
--------------------
From page 11-56, architecture book.
From page 11-56, architecture book.
0x00000000 +------------------------------------+ 0
0x00000000 +------------------------------------+ 0
           |    LIF_MAGIC       |               |
           |    LIF_MAGIC       |               |
0x00000004 +------------------------------------+ 4
0x00000004 +------------------------------------+ 4
           |                                    |
           |                                    |
0x000000F0 +------------------------------------+ 240
0x000000F0 +------------------------------------+ 240
           |            IPL_ADDR                |
           |            IPL_ADDR                |
0x000000F4 +------------------------------------+ 244
0x000000F4 +------------------------------------+ 244
           |            IPL_SIZE                |
           |            IPL_SIZE                |
0x000000F8 +------------------------------------+ 248
0x000000F8 +------------------------------------+ 248
           |            IPL_ENTRY               |
           |            IPL_ENTRY               |
0x000000FC +------------------------------------+ 252
0x000000FC +------------------------------------+ 252
           |                                    |
           |                                    |
IPL_ADDR   +------------------------------------+ IPL_ADDR
IPL_ADDR   +------------------------------------+ IPL_ADDR
           |        Position Independant        |
           |        Position Independant        |
           |            IPL Code                |
           |            IPL Code                |
           |    (including IPL_CHECKSUM)        |
           |    (including IPL_CHECKSUM)        |
           +------------------------------------+ IPL_ADDR + IPL_SIZE
           +------------------------------------+ IPL_ADDR + IPL_SIZE
           |                                    |
           |                                    |
           +------------------------------------+
           +------------------------------------+
IPL_ADDR        2 Kbyte aligned, nonzero
IPL_ADDR        2 Kbyte aligned, nonzero
IPL_SIZE        Multiple of 2Kbytes, <= 256 Kbytes
IPL_SIZE        Multiple of 2Kbytes, <= 256 Kbytes
IPL_ENTRY       Word aligned, less than IPL_SIZE
IPL_ENTRY       Word aligned, less than IPL_SIZE
Loads at IPL_START
Loads at IPL_START
This is based on Cobra/Coral hardware:
This is based on Cobra/Coral hardware:
      LED register at 0xf080024
      LED register at 0xf080024
      I/O status register at 0xf0800000
      I/O status register at 0xf0800000
      EEPROM at 0xf0810000 (LAN ID begins at byte 0)
      EEPROM at 0xf0810000 (LAN ID begins at byte 0)
Here's a dump of the LIF volume header using "xd" (od with hex output)
Here's a dump of the LIF volume header using "xd" (od with hex output)
*
*
00000f0 0000 1000 0000 9800 0000 0000 0000 0000
00000f0 0000 1000 0000 9800 0000 0000 0000 0000
                       ^^^^
                       ^^^^
                This is the size
                This is the size
*
*
0000800 5445 5354 2020 2020 2020 a271 0000 0010
0000800 5445 5354 2020 2020 2020 a271 0000 0010
        ^^^^ ^^^^ ^^^^ ^^^^ ^^^^           ^^^^<-- this is the ipl offset
        ^^^^ ^^^^ ^^^^ ^^^^ ^^^^           ^^^^<-- this is the ipl offset
        this is the vol name     ^^^^<- this is the type
        this is the vol name     ^^^^<- this is the type
0000810 0000 0098 9407 1919 1426 8001 0000 0000
0000810 0000 0098 9407 1919 1426 8001 0000 0000
             ^^^^
             ^^^^
        This is the ipl size
        This is the ipl size
Interupts
Interupts
---------
---------
The vector table is access by %iva (%cr14). The address here must be a
The vector table is access by %iva (%cr14). The address here must be a
multiple of 2048. The indexes are:
multiple of 2048. The indexes are:
1       high-priority
1       high-priority
2       power failure
2       power failure
3       recovery counter
3       recovery counter
4       external interrupt
4       external interrupt
5       low-priority machine check
5       low-priority machine check
6       instruction TLB miss/instruction page fault
6       instruction TLB miss/instruction page fault
7       instruction memory protection
7       instruction memory protection
8       illegal instruction
8       illegal instruction
9       break instruction
9       break instruction
10      priviledged operation
10      priviledged operation
11      priviledged register
11      priviledged register
12      overflow
12      overflow
13      conditional
13      conditional
14      assist exception
14      assist exception
15      data TLB miss fault/data page fault
15      data TLB miss fault/data page fault
16      non access instruction TLB miss fault
16      non access instruction TLB miss fault
17      non access page TLB miss fault/non access data page fault
17      non access page TLB miss fault/non access data page fault
18      data memory protection/unaligned data reference
18      data memory protection/unaligned data reference
19      data memory break
19      data memory break
20      TLB dirty bit
20      TLB dirty bit
21      page reference
21      page reference
22      assist emulation
22      assist emulation
23      higher-priority transfer
23      higher-priority transfer
24      lower-priority transfe
24      lower-priority transfe
25      taken branch
25      taken branch
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.