Commit graph

7979 commits

Author SHA1 Message Date
Miguel Serrano
fa1512e206 changes
console/console.c:
    fixed bootstrap stack
h/rpb.h:
    ctb_term_type instead of ctb_baud
2005-07-28 12:26:05 -04:00
Nathan Binkert
e61899cbbf Add missing TSUNAMI ipi code. 2005-06-29 22:15:32 -04:00
Nathan Binkert
fce2978d41 console code cleanup
console/console.c:
    the go parameter to unixBoot is never used, so get rid of it.
    just panic if we return from unixBoot since it's never supposed
    to happen.
    remove the MAX_CPUS parameter and the bootStrapImpure variable
    and just allocate memory as needed.  (Can in theory support many
    more CPUs.)
2005-06-28 23:22:28 -04:00
Nathan Binkert
941db36a67 pass the location of the m5 backdoor via the m5AlphaAccess variable
only compile one console

console/Makefile:
    Now that the location of the m5 backdoor is passed into the
    console via the m5AlphaAccess variable, we only need to
    compile one console, and don't need to define TLASER or TSUNAMI
console/console.c:
    Don't hardcode the location of the AlphaAccess structure, but
    rely on m5 to pass in the correct value.
    Setup "volatile struct AlphaAccess *m5AlphaAccess" for use and
    get rid of the hardcoded usage.
2005-06-28 01:13:20 -04:00
Nathan Binkert
0b01f18603 Add tlaser.h, required by platform.S 2005-06-27 17:58:44 -04:00
Nathan Binkert
55e3b9f743 Major system code cleanup and formatting
remove unused code

console/Makefile:
    cleanup Makefile.  Remove unneeded -D options
console/console.c:
    Major cleanup and formatting
    remove unused #ifdef code
    remove unused #includes
    rename xxm -> m5
    rename simos -> m5
console/dbmentry.S:
console/paljtokern.S:
console/paljtoslave.S:
console/printf.c:
    Major cleanup and formatting
    remove unused #ifdef code
    remove unused #includes
    rename __start -> _start to get rid of warning.
h/cserve.h:
h/dc21164FromGasSources.h:
h/ev5_alpha_defs.h:
h/ev5_defs.h:
h/ev5_osfalpha_defs.h:
h/ev5_paldef.h:
h/fromHudsonMacros.h:
h/fromHudsonOsf.h:
h/rpb.h:
    Major cleanup and formatting
h/ev5_impure.h:
    Major cleanup and formatting
    remove unused #ifdef code
palcode/Makefile:
    cleanup Makefile
    remove unused -D options
    unify platform_tlaser.S and platform_tsunami.S into platform.S and
    generate multiple .o files using various #defines
    unify osfpal.S osfpal_cache_copy.S and osfpal_cache_copy_unaligned.S into
    osfpal.S and generate multiple .o files using various #defines
palcode/osfpal.S:
    Major cleanup and formatting
    remove unused #defines
    remove unused #if code
    merge copy code into this file.
palcode/platform.S:
    Major cleanup and formatting
    remove unused #defines
    remove unused #if code
    merge platform code into this file.
2005-06-27 17:25:54 -04:00
Ali Saidi
8cefbc93cf HP copyrights
console/Makefile:
    Added copyright
    added CROSS_COMPILE variable
    removed install target
console/console.c:
console/dbmentry.S:
console/paljtokern.S:
console/paljtoslave.S:
console/printf.c:
h/cia.h:
h/cserve.h:
h/dc21164FromGasSources.h:
h/eb164.h:
h/ev5_alpha_defs.h:
h/ev5_defs.h:
h/ev5_impure.h:
h/ev5_osfalpha_defs.h:
h/ev5_paldef.h:
h/fromHudsonMacros.h:
h/fromHudsonOsf.h:
h/lib.h:
h/platform.h:
h/regdefs.h:
h/rpb.h:
palcode/Makefile:
palcode/osfpal.S:
palcode/osfpal_cache_copy.S:
palcode/osfpal_cache_copy_unaligned.S:
palcode/platform_m5.S:
palcode/platform_tlaser.S:
    added hp and our copyright
2005-06-04 18:59:06 -04:00
Ali Saidi
d60a6c86c5 removed tlaserreg.h, rewrote necessary parts
deleted simos.h
deleted tlaserreg.h

palcode/platform_m5.S:
palcode/platform_tlaser.S:
    removed tlaserreg.h, rewrote necessary parts
2005-01-30 16:50:55 -05:00
Ali Saidi
5821f37cb6 Add support for tsunami with 64 processors and fix some console bugs
I steped on while doing it

console/console.c:
    Allocate more HWRPB pages so we have room for 64 percpu_rpbs
    Fix writing of Console Relocation Block virtual addresses so that
    if they are outside of the first page, which they will be with more
    than 8 processors, the correct adress is written
palcode/Makefile:
    Update makefile for tsunami with 64 processors
palcode/platform_m5.S:
    Add support for tsunami with 64 processors
2004-12-06 11:44:22 -05:00
Ali Saidi
99a522fb8b do a better job of always locking printf. We used to only lock on
secondary cpus, this also locks on the primary cpu.
Now the initial print out doesn't get garbled with more than 1 cpu.
2004-11-23 04:04:13 -05:00
Ali Saidi
66b80038ed Makefile cleanup, no seperate middle preprocessing steps anymore 2004-11-23 03:40:32 -05:00
Ali Saidi
8d148125f2 cleanup makefile and fix platform bug introduced in last commit
palcode/Makefile:
    Cleanup make file, no more ugly preprocessing steps
palcode/platform_m5.S:
    fix a mistake with m5 platform cleanup from before
2004-11-23 03:20:27 -05:00
Ali Saidi
8cfbcbdb9c update platform code to use PALTemp Whami register to get cpu id
instead of reading register from tsunami chipset, saving an uncached
read
2004-11-23 02:01:30 -05:00
Ali Saidi
8b1db1cf98 Fix from Adam: Strip the kseg off the physical address in the RPB structure. 2004-10-06 11:27:46 -04:00
Ali Saidi
1940fcdd29 changes to make smp work in linux
console/console.c:
    Remove Printed SimOS references and replace with M5
    Rework the SMP stuff, so we don't trash any stacks, or what we
    thought were stacks, but are actually other ppls memory.
console/dbmentry.s:
    add a carefully crafted piece of assembly that doesn't use the stack,
    so we don't clobber anthing in the time between when we are spinning
    and when the OS tells us to go.
palcode/platform_m5.s:
    add/fix code for IPI, multiprocessor interrupts (DIR), and initial
    bootstrapping of the cpu
2004-09-01 00:23:00 -04:00
Ali Saidi
29c5218e4f changed to generate tlaser and tsunami console code at different
addresses so the uncachable bit is set for tsunami.

console/Makefile:
console/console.c:
    changed to generate tlaser and tsunami console code at different addresses
2004-08-01 00:50:26 -04:00
Ali Saidi
ae3ba61665 changed the code not to use r11 (specifically) and r8,r9 for good
measure. The rest of the registers I used are touched by the tlaser
platform code so I would guess their are fair game.
Random memory troubles hopefully over.
2004-07-01 01:28:45 -04:00
Ali Saidi
ad63f2e67e Copy variables over one at a time rather than copying 4 bytes at a
time. Easiest way to deal with the endian issue.
2004-06-23 15:12:15 -04:00
Ali Saidi
ea03f8e35d Rather than using a loop to calculate the interrupt vector, use the ctlz instruction. 2004-06-06 19:33:50 -04:00
Ali Saidi
120825c1e2 Added ALPHA_ACCESS_BASE to get rid of machine_defs.h 2004-05-18 20:11:58 -04:00
Ali Saidi
0d184b3bc9 erik and I made the the same modification... merged. 2004-05-18 16:32:59 -04:00
Ali Saidi
496c48d9b2 Major clean up of alpha system files.
console/Makefile:
palcode/Makefile:
    moved header files to /h so updated make file for that
console/dbmentry.s:
console/paljtokern.s:
console/paljtoslave.s:
    upadated to use osf file that the palcode uses, one less file
2004-05-18 16:26:16 -04:00
Erik Hallnor
30d0b3a354 Setup makefile to compile the 3 flavors of palcode for each platform. 2004-05-17 21:09:20 -04:00
Ali Saidi
c5d815dc2d Deleted a whole bunch of files that we didn't nede in the header
directory

console/dbmentry.s:
console/printf.c:
    removed unneeded includes
2004-05-17 19:23:48 -04:00
Ali Saidi
8810fb73c6 Merge zeep.eecs.umich.edu:/m5/Bitkeeper/alpha-system
into zeep.eecs.umich.edu:/.automount/zizzer/y/saidi/work/alpha-system
2004-05-17 17:49:47 -04:00
Ali Saidi
31ac4ce140 console code now builds on zizzer
console/Makefile:
    Updated to build on linux and removed
    lots of crud that compiled, disassembled, and then reassembled
console/dbmentry.s:
    the assembler didn't like they comments, so I removed them
console/printf.c:
    Gcc was very unhappy, so I fixed this line
h/lib.h:
    time_t is defined in a std header, and this was causing some problems
2004-05-17 17:49:19 -04:00
Erik Hallnor
f33cf070c7 Add copy implementations to palcode.
palcode/osfpal.s:
    Add copypal loop copy implementation.
2004-05-17 17:18:32 -04:00
Ali Saidi
b582b5058e palcode updated to deal with interrupts correctly
deleted and then upon realizing we needed them undeleted a bunch of
header files in the palcode dir

console/Makefile:
    fixed so it will work with tru64... still haven't got the console to build under linux
palcode/platform_m5.s:
    fixed code to "fake" srm console interrupt handling correctly
    include serial interrupts
2004-05-17 02:04:19 -04:00
Ali Saidi
ce9b1a1e37 added some comments to palcode and zeroed system type in HWPRB (m5 will fill in)
console/console.c:
    0 the system type, let m5 overwrite
palcode/platform_m5.s:
    add some comments and make the timer interrupt actually care what CPU it happened on
2004-05-11 17:31:28 -04:00
Andrew Schultz
8283dbcf3a Change addressing in interrupt code to meet physical addressing requirements 2004-02-19 16:33:36 -05:00
Andrew Schultz
941530d061 Fixed device I/O interrupt handling 2004-02-15 22:31:19 -05:00
Andrew Schultz
76461ae54f Fix improper shift for loading address 2004-02-03 15:09:09 -05:00
Andrew Schultz
4d3d5d7a3c Fix the sys_int_20 handler for doing low priority device interrupts.
Now reads the MISC register to handle interrupts from multiple CPUs
2004-02-03 15:03:34 -05:00
Ali Saidi
5d3149b69d Added platfrom_m5 - Our hacked up tsunami palcode and modified palcode
makefile to that end. Additionally made a change in console to
preserve t7 on call back because linux uses it for the "current"
pointer.

console/Makefile:
    Changed makefile back to using gcc and gas rather then trying to
    cross-compile for now
console/console.c:
    Put code in to save t7 on CallBackFixup() call and changed the
    system type to Tsunami
palcode/Makefile:
    updated palcode makefile to have targets for tlaser and tsunami
2004-02-02 17:40:11 -05:00
Ali Saidi
ae7e8a4660 makefiles updated to make use of cross compile tools
console/Makefile:
    All tools are variables now
palcode/Makefile:
    tool names changed to variables, can build palcode on zizzer
2004-01-15 02:59:57 -05:00
Ali Saidi
edd7e46eb8 Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/alpha-system
into zizzer.eecs.umich.edu:/y/saidi/alpha-system
2004-01-14 04:07:07 -05:00
Ali Saidi
d23ad6c0c4 Added support for OPEN_CONSOLE and CLOSE_CONSOLE; fixed PUTS bug 2004-01-14 04:06:44 -05:00
Nathan Binkert
fbe8ff04da Implement GetChar()
console/Makefile:
    Quick install target to copy the binary to zizzer
2003-12-22 13:04:23 -05:00
Ali Saidi
d7fba9784e The palcode will now build by simply typing make in this directory.
Most of the changes were to fix broken macros in platfrom_tlaser.s

palcode/Makefile:
    Completly new makefile to build palcode
palcode/ev5_alpha_defs.h:
    fixed a broken define
palcode/ev5_impure.h:
    macro fixes
palcode/platform_srcmax.s:
    manual macro expansion of broken macros... this file isn't needed to
    build tlaser palcode
palcode/platform_tlaser.s:
    lots of fixups to make the code assemble
2003-12-19 14:24:01 -05:00
Nathan Binkert
f6bfca014b Implement support for more console environment variables. There
are some default values here, but they can be changed from the
simulator itself.  (Search in m5 for boot_osflags)
2003-12-17 21:39:42 -05:00
Nathan Binkert
492fa2ae5e Get the console code to compile correctly
Add support for some thigns that M5 needs
Make this better support Tru64 v5.1

console/Makefile:
    I couldn't figure out the old build system since I was missing
    a bunch of tools at the time, so I kinda rewrote it.
console/console.c:
    Get the includes right, and make things compile
    little bit of cleanup along the way
console/paljtokern.s:
    formatting junk
console/printf.c:
    Formatting
    get const right
h/lib.h:
    fiddle with the includes that we need
console/console.c:
    Get the BOOTDEVICE_NAME right
    Add a bit of support for grabbing console environment variables
2003-11-14 12:32:52 -05:00
Lisa Hsu
b8612cbda3 Import changeset 2003-11-14 10:52:42 -05:00
Nilay Vaish
488280e48b MESI CMP: Unset TBE pointer in L2 cache controller
The TBE pointer in the MESI CMP implementation was not being set to NULL
when the TBE is deallocated. This resulted in segmentation fault on testing
the protocol when the ProtocolTrace was switched on.
2011-02-08 07:47:02 -06:00
Gabe Black
0851580aad Stats: Re update stats. 2011-02-07 19:23:13 -08:00
Gabe Black
1b64bfa933 Stats: Back out broken update. 2011-02-07 19:23:11 -08:00
Tim Harris
44e5e7e053 X86: Obey the wp bit of CR0.
If cr0.wp ("write protect" bit) is clear then do not generate page faults when
writing to write-protected pages in kernel mode.
2011-02-07 15:18:52 -08:00
Tim Harris
6da83b8a1b X86: Use all 64 bits of the lstar register in the SYSCALL_64 macroop.
During SYSCALL_64, use dataSize=8 when handling new rip (ref
http://www.intel.com/Assets/PDF/manual/253668.pdf 5.8.8 IA32_LSTAR is a 64-bit
address)
2011-02-07 15:16:27 -08:00
Tim Harris
2ea1aa8a4f X86: Fix JMP_FAR_I to unpack a far pointer correctly.
JMP_FAR_I was unpacking its far pointer operand using sll instead of srl like
it should, and also putting the components in the wrong registers for use by
other microcode.
2011-02-07 15:12:59 -08:00
Tim Harris
5810ab121c X86: Read the LDT/GDT at CPL0 when executing an iret.
During iret access LDT/GDT at CPL0 rather than after transition to user mode
(if I'm reading the Intel IA-64 architecture spec correctly, the contents of
the descriptor table are read before the CPL is updated).
2011-02-07 15:05:28 -08:00
Nilay Vaish
10b4b364d9 Orion: Replace printf() with fatal()
The code for Orion 2.0 makes use of printf() at several places where there as
an error in configuration of the model. These have been replaced with fatal().
2011-02-07 12:42:23 -06:00