ARCHITECTURE-44 MODS
m98k/mmu_32_macros.h
Defined bounds on htab size in terms of pteg's.
Moved bat definitions into separate file (bat_32.h) to parallel
m98601_bat.h.
Ifdef'ed out tlb invalidate functions, probably need to implement
these where used since they require a lock.
m98k/bat_32.h
Created. Contains bat definitions that conform to PPC architecture.
(As opposed, to m98601_bat.h which conforms to m98601 spec.)
m98k/basic_regs.h
Changed prog_mode_t to pmr_t to be consistent with other reg names.
Defined PVR_VERSION_M98601 for code that must switch on processor
implementation.
m98k/cache.h
Renamed all routines from icache_invalidate to m98k_icache_invalidate,
etc, etc...
Added definition of CACHE_LINE_SIZE (which should probably be removed
along with CACHE_BLOCK_SIZE since these aren't architectural
and code shouldn't be encouraged to think so. Should
create m98601_cache.h just to hold these constants?).
m98k/mmu_32.h
In a fit of personal pique, change the name of VSID_NULL to
VSID_INVALID (1 place as opposed to N place change).
Added definition of MAX_VSID.
Added definitions for wim_t and pp_t and modified referencing
structs.
Added definitions of pte_t (pte_u_t and pte_l_t) and pteg_t
(what hash table is made up of -- 8 pte_t's).
Moved bat definitions into separate file (bat_32.h) to parallel
m98601_bat.h.
Added definitions to convert from htab address to htab org,
and htabmask to size.
m98k/m98601_bat.h
Converted to use wim_t and pp_t. Defined enum for bl.
Added a couple of macros to convert to and from BPN's to addresses
and BL to len.
Doug's definitions of BAT0 and BAT1 addresses and lengths.
m98k/m98601_regs.h
Defined enum's for run bits and resp bits in m98601_data_bp_mode_t
and changed struct definition.
ARCHITECTURE-43 MODS
Makefile
Added m98k/hw_workarounds to LOCAL_SOURCE
Added m98k TAGS_ARCH
Added rules to build and install m98k/workaround.s
Added ALWAYS to workaround.s rules, since dependencies don't work
Added workaround.s to clean target
ARCHITECTURE-42 MODS
m98k/asm_help.h
Import's m98k/reg_help.h instead fo nrw/reg_help.h -- this gets
STACK_INCR defined.
Made all comments, symbols, variables, etc... conform to new
GRF/grf and FPF/fpf naming convention.
Improved comments for BUILD_FRAME.
BEWARE: Macro's of the BUILD_FRAME ilk are NOT DIRECT replacements
for the 88k macros! You'll have to read the comments and obey.
ARCHITECTURE-41 MODS
m98k/pseudo_inst.h
Fixed a few bugs in the definition of 32-bit literal compare insts.
ARCHITECTURE-40 MODS
m98k/pseudo_inst.h
Noted that these macros don't attempt to be 64-bit functional.
Added "32" to all macros. You must append "32" to the name
of any opcode (but before the trailing "." if there is one)
to get the 32-bit version of the instruction.
Fixed a couple of bugs in the initial release.
Added macros for the cmpi family of instructions.
The following instructions support 32-bit immediates:
li32 rD,IMMED -- load 32-bit immediate
andi32. rD,rS1,IMMED -- and with 32-bit immediate
ori32 rD,rS1,IMMED -- or with 32-bit immediate
xori32 rD,rS1,IMMED -- xor with 32-bit immediate
lbz32 rD,rS1,IMMED -- load byte w/ zero extend, 32-bit displ
Also in this family: lhz32, lha32,
lwz32, lwa32, ld32, stb32, sth32,
stw32, std32, lmw32, lmd32, stmw32
stmd32.
The following forms are also
recognized:
lbz32 rD,IMMED
lbz32 rD,rS1
addi32 rD,rS1,IMMED
subi32 rD,rS1,IMMED
addic32 rD,rS1,IMMED
subic32 rD,rS1,IMMED
addic32. rD,rS1,IMMED
subic32. rD,rS1,IMMED
mulli32 rD,rS1,IMMED
cmpdi32 [crN,]rS1,IMMED
cmpwi32 [crN,]rS1,IMMED
cmpldi32 [crN,]rS1,IMMED
cmplwi32 [crN,]rS1,IMMED
cmpi32 BF,L,rS1,IMMED
cmpli32 BF,L,rS1,IMMED
ARCHITECTURE-38 MODS
m88k/scc_reg.h
Added defines for idle/delay timer resolution and Z85C30
clock frequencies.
zs85C30.h
Minor clean-up. Typo and wrapping comment.
ARCHITECTURE-35 MODS
m88k/inlines.h
Another change to implementation of ST_WT_WORKAROUND.
Now does st, serialize, FLUSH_CACHE.
m88k/m88110_mmu.h
Changed name of ldcr_fix bit to wim (windowed interrupt mode)
to reflect Motorola's upgrade of this bit from "grey" status
to a real control bit.
Added define of new "allocate load disable" bit. Kernel
and mon now turn this bit on by default do to problem with
allocate load implementation -- this is a serious design
problem which may result in allocate load being unusable.
m88k/m88110_sfu.h
Added, but ifdef'ed out, new versions of GET_SFU0_CR() and
SET_SFU0_CR() macros. These versions generate significantly
better code; unfortunately, the compiler has an "internal
abort" when compiling these -O2.
m88k/pseudo_inst.h
Added new xmem workaround from latest errata -- xmem are followed
by a serialize.
m88k/fp_regs.h
Added comment noting that we should convert get/set fp control
register macros to the same style as new GET_SFU0_CR() macro.
m88k/scc_reg.h
Additions for kernel serial driver. Reordered stuff a little,
changed a couple of names. (Modified mon driver to match; talked
to Bassanio to let him know things were modified.)
m88k/workaround.h
Updated xmem workaround to add serialize after xmem.
Added new st.wt workaround.
m88k/siff_cc
Added option to save temp files to help with debugging workaround
problems.
m88k/hw_workarounds/ld_allocate_workaround.h
New workaround flag that disables load allocates.
m88k/hw_workarounds/int_overflow_workaround.h
New workaround flag that causes kernel to ignore integer
overflow exceptions.
ARCHITECTURE-34 MODS
m88k/inlines.h
Changed implementation of ST_WT_WORKAROUND. It used to flush
the cache, now it sets FWT (force write-thru) while doing the
write. ... looking for pmap_set_modify2 panic cause.
m88k/m88110_sfu0.h
Allocated another supervisor storage register to "processor
frozen" use. Needed it to be able to cswitch DCTL at exception
time.
m88k/revision.h
Made defines for board rev's. Now you don't have to count
A, B, C, ... to figure out that Rev AD is 3.
m88k/workaround.h
If building workaround.s, output assembler equates for
eq0, ne0, etc...
Makefile
Tweaks to makefile for building and installing m88k/workaround.s.