mips_options
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT) {
if (MIPS_PRID_COPTS(mips_options.mips_cpu_id) != MIPS_AU1500)
if (MIPS_PRID_COPTS(mips_options.mips_cpu_id) != MIPS_AU1550)
const mips_prid_t cpu_id = mips_options.mips_cpu_id;
if (MIPS_PRID_COPTS(mips_options.mips_cpu_id) != MIPS_AU1500)
if (MIPS_PRID_COPTS(mips_options.mips_cpu_id) != MIPS_AU1550)
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT)
octeon_cpu_model(mips_options.mips_cpu_id));
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT) {
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT)
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT)
switch ((mips_options.mips_cpu_id >> 8) & 0xff) {
switch (mips_options.mips_cpu_id & 0xff) {
(mips_options.mips_cpu_id >> 8) & 0xff,
(mips_options.mips_cpu_id >> 4) & 0x0f,
mips_options.mips_cpu_id & 0x0f);
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT)
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT)
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT)
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT)
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT)
cpu_setmodel("%s", mips_options.mips_cpu->cpu_name);
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT)
switch(cpu_rmixl_chip_type(mips_options.mips_cpu)) {
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT) {
model = MIPS_PRID_REV(mips_options.mips_cpu_id);
if (MIPS_PRID_COPTS(mips_options.mips_cpu_id) == MIPS_AU1000) {
if (MIPS_PRID_COPTS(mips_options.mips_cpu_id) == MIPS_AU1100) {
if (MIPS_PRID_COPTS(mips_options.mips_cpu_id) == MIPS_AU1500) {
if (MIPS_PRID_COPTS(mips_options.mips_cpu_id) == MIPS_AU1550) {
mips_options.mips_cpu_id);
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT)
const u_int cid = MIPS_PRID_CID(mips_options.mips_cpu_id);
const u_int pid = MIPS_PRID_IMPL(mips_options.mips_cpu_id);
if (MIPS_PRID_IMPL(mips_options.mips_cpu_id) <= MIPS_CN30XX) {
const mips_prid_t cpu_id = mips_options.mips_cpu_id;
switch (MIPS_PRID_IMPL(mips_options.mips_cpu_id)) {
const mips_prid_t cpu_id = mips_options.mips_cpu_id;
switch (MIPS_PRID_IMPL(mips_options.mips_cpu_id)) {
if (MIPS_PRID_IMPL(mips_options.mips_cpu_id) == MIPS_CN68XX)
if (MIPS_PRID_IMPL(mips_options.mips_cpu_id) == MIPS_CN68XX)
if (MIPS_PRID_IMPL(mips_options.mips_cpu_id) == MIPS_CN50XX) {
(MIPS_XKPHYS_START | ((uint64_t)(mips_options.mips3_cca_devmem) << 59) | (x))
(mips_options.mips3_xkphys_cached | (x))
# define MIPS_HAS_LLSC (mips_options.mips_has_llsc)
# define MIPS_HAS_LLADDR ((mips_options.mips_cpu_flags & CPU_MIPS_NO_LLADDR) == 0)
# define MIPS_HAS_LMMI ((mips_options.mips_cpu_flags & CPU_MIPS_LOONGSON2) != 0)
# define MIPS_HAS_LLADDR ((mips_options.mips_cpu_flags & CPU_MIPS_NO_LLADDR) == 0)
# define MIPS_HAS_LLADDR ((mips_options.mips_cpu_flags & CPU_MIPS_NO_LLADDR) == 0)
# define MIPS_HAS_DSP (mips_options.mips_cpu_flags & CPU_MIPS_HAVE_DSP)
# define MIPS_HAS_USERLOCAL (mips_options.mips_cpu_flags & CPU_MIPS_HAVE_USERLOCAL)
# define MIPS_HAS_LLADDR ((mips_options.mips_cpu_flags & CPU_MIPS_NO_LLADDR) == 0)
# define MIPS_HAS_LLADDR ((mips_options.mips_cpu_flags & CPU_MIPS_NO_LLADDR) == 0)
# define MIPS_HAS_DSP (mips_options.mips_cpu_flags & CPU_MIPS_HAVE_DSP)
# define MIPS_HAS_USERLOCAL (mips_options.mips_cpu_flags & CPU_MIPS_HAVE_USERLOCAL)
#define MIPS_HAS_R4K_MMU (mips_options.mips_has_r4k_mmu)
#define MIPS_HAS_LLSC (mips_options.mips_has_llsc)
#define MIPS_HAS_LLSC (mips_options.mips_has_llsc)
#define MIPS_HAS_LLADDR ((mips_options.mips_cpu_flags & CPU_MIPS_NO_LLADDR) == 0)
#define MIPS_HAS_DSP (mips_options.mips_cpu_flags & CPU_MIPS_HAVE_DSP)
#define MIPS_HAS_USERLOCAL (mips_options.mips_cpu_flags & CPU_MIPS_HAVE_USERLOCAL)
#define CPUISMIPS3 ((mips_options.mips_cpu_arch & \
#define CPUISMIPS4 ((mips_options.mips_cpu_arch & CPU_ARCH_MIPS4) != 0)
#define CPUISMIPS5 ((mips_options.mips_cpu_arch & CPU_ARCH_MIPS5) != 0)
#define CPUISMIPS32 ((mips_options.mips_cpu_arch & CPU_ARCH_MIPS32) != 0)
#define CPUISMIPS32R2 ((mips_options.mips_cpu_arch & CPU_ARCH_MIPS32R2) != 0)
#define CPUISMIPS64 ((mips_options.mips_cpu_arch & CPU_ARCH_MIPS64) != 0)
#define CPUISMIPS64R2 ((mips_options.mips_cpu_arch & CPU_ARCH_MIPS64R2) != 0)
#define CPUISMIPSNN ((mips_options.mips_cpu_arch & \
#define CPUISMIPSNNR2 ((mips_options.mips_cpu_arch & \
#define CPUIS64BITS ((mips_options.mips_cpu_arch & \
#define MIPS_HAS_CLOCK (mips_options.mips_cpu_arch >= CPU_ARCH_MIPS3)
extern struct mips_options mips_options;
#define MIPS3_XPHYS_ACC MIPS_PHYS_TO_XKPHYS(mips_options.mips3_cca_devmem, 0)
#define MIPS3_PG_ACC MIPS3_CCA_TO_PG(mips_options.mips3_cca_devmem)
#define MIPS3_PG_CACHED mips_options.mips3_pg_cached
#define MIPS3_PG_SHIFT mips_options.mips3_pg_shift
return MIPS3_PG_TO_CCA(pte) == MIPS3_PG_TO_CCA(mips_options.mips3_pg_cached);
cca = mips_options.mips3_cca_devmem;
if (((mips_options.mips_cpu_flags & CPU_MIPS_D_CACHE_COHERENT)
if (((mips_options.mips_cpu_flags & CPU_MIPS_D_CACHE_COHERENT)
(mips_options.mips_cpu_flags & CPU_MIPS_D_CACHE_COHERENT) != 0;
if (mips_options.mips_cpu_flags & CPU_MIPS_D_CACHE_COHERENT)
if (mips_options.mips_cpu_flags & CPU_MIPS_D_CACHE_COHERENT)
if (mips_options.mips_cpu_flags & CPU_MIPS_D_CACHE_COHERENT)
if (mips_options.mips_cpu_flags & CPU_MIPS_D_CACHE_COHERENT)
(mips_options.mips_cpu_flags & CPU_MIPS_D_CACHE_COHERENT);
struct mips_options * const opts = &mips_options;
const mips_prid_t cpu_id = mips_options.mips_cpu_id;
const mips_prid_t cpu_id = mips_options.mips_cpu_id;
const mips_prid_t cpu_id = mips_options.mips_cpu_id;
const mips_prid_t cpu_id = mips_options.mips_cpu_id;
if (mips_options.mips_cpu_arch < CPU_ARCH_MIPS2)
if (mips_options.mips_cpu_arch < CPU_ARCH_MIPS3)
if (mips_options.mips_cpu_arch < CPU_ARCH_MIPS4)
if (mips_options.mips_cpu_arch < CPU_ARCH_MIPS5)
if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS64R2) {
} else if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS64) {
} else if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS32R2) {
} else if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS32) {
} else if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS5) {
} else if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS4) {
} else if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS3) {
} else if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS2) {
if (mips_options.mips_cpu_arch < CPU_ARCH_MIPS2)
if (mips_options.mips_cpu_arch < CPU_ARCH_MIPS3)
if (mips_options.mips_cpu_arch < CPU_ARCH_MIPS4)
if (mips_options.mips_cpu_arch < CPU_ARCH_MIPS5)
if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS64) {
} else if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS32) {
} else if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS5) {
} else if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS4) {
} else if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS3) {
} else if (mips_options.mips_cpu_arch & CPU_ARCH_MIPS2) {
const int cp0flags = mips_options.mips_cpu->cpu_cp0flags;
for (i = 0; i < mips_options.mips_num_tlb_entries; i++) {
mips_options.mips_num_tlb_entries > 100 ? 3 : 2;
for (i = 0; i < mips_options.mips_num_tlb_entries; i++) {
u_int cp0flags = mips_options.mips_cpu->cpu_cp0flags;
if (mips_options.mips_cpu_arch >= CPU_ARCH_MIPS3) {
if (mips_options.mips_cpu_arch >= CPU_ARCH_MIPS3) {
if ((mips_options.mips_cpu->cpu_flags & CPU_MIPS_HAVE_MxCR) == 0) {
if ((mips_options.mips_cpu->cpu_flags & CPU_MIPS_HAVE_MxCR) == 0) {
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT) {
if (ebase == mips_options.mips_cpu_id
mips_options.mips_cpu_flags |= CPU_MIPS_HAVE_USERLOCAL;
mips_options.mips_cpu_flags |= CPU_MIPS_HAVE_DSP;
struct mips_options * const opts = &mips_options;
struct mips_options * const opts = &mips_options;
const struct mips_options * const opts = &mips_options;
struct mips_options mips_options = {
mips_options.mips_cpu_flags |= CPU_MIPS_HAVE_USERLOCAL;
mips_options.mips_cpu_flags |= CPU_MIPS_HAVE_DSP;
mips_options.mips_cpu_mhz = mips_mcclock_to_mhz(iters);
iters, mips_options.mips_cpu_mhz, cpuspeed);
KASSERT(mips_options.mips3_xkphys_cached);
struct mips_options * const opts = &mips_options;
for (size_t i = 0; i < mips_options.mips_num_tlb_entries; i++) {
if (mips_options.mips_cpu->cpu_pid == MIPS_XLS616) {
if (!cpu_rmixl(mips_options.mips_cpu))
nthreads = MIPS_CIDFL_RMI_NTHREADS(mips_options.mips_cpu->cpu_cidflags);
if (!cpu_rmixl(mips_options.mips_cpu))
if (!cpu_rmixl(mips_options.mips_cpu))
const u_int cpu_cidflags = mips_options.mips_cpu->cpu_cidflags;
switch (MIPS_PRID_IMPL(mips_options.mips_cpu_id)) {
MIPS_PRID_IMPL(mips_options.mips_cpu_id));
switch(cpu_rmixl_chip_type(mips_options.mips_cpu)) {
cpu_rmixl_chip_type(mips_options.mips_cpu));
KASSERT(cpu_rmixlr(mips_options.mips_cpu)
|| cpu_rmixls(mips_options.mips_cpu));
switch(cpu_rmixl_chip_type(mips_options.mips_cpu)) {
switch (MIPS_PRID_IMPL(mips_options.mips_cpu_id)) {
switch (MIPS_PRID_IMPL(mips_options.mips_cpu_id)) {
mips_options.mips_cpu_id);
if (cpu_rmixlp(mips_options.mips_cpu)) {
if (! cpu_rmixls(mips_options.mips_cpu)) {
if (cpu_rmixls(mips_options.mips_cpu))
switch (MIPS_PRID_IMPL(mips_options.mips_cpu_id)) {
__func__, MIPS_PRID_IMPL(mips_options.mips_cpu_id));
switch (MIPS_PRID_IMPL(mips_options.mips_cpu_id)) {
__func__, MIPS_PRID_IMPL(mips_options.mips_cpu_id));
if (! cpu_rmixls(mips_options.mips_cpu))
switch (MIPS_PRID_IMPL(mips_options.mips_cpu_id)) {
const mips_prid_t cpu_id = mips_options.mips_cpu_id;
switch (MIPS_PRID_IMPL(mips_options.mips_cpu_id)) {
if (! cpu_rmixlr(mips_options.mips_cpu))
if (! cpu_rmixlr(mips_options.mips_cpu))
__func__, mips_options.mips_cpu_id);
if (mips_options.mips_cpu_mhz < 15)
tc3.tc_frequency = mips_options.mips_cpu_mhz * 1000000;
cpu_setmodel("DECstation 5000/1%d (3MIN)", mips_options.mips_cpu_mhz);
tc.tc_frequency = mips_options.mips_cpu_mhz * 1000000;
cpu_setmodel("Personal DECstation 5000/%d (MAXINE)", mips_options.mips_cpu_mhz);
tc3.tc_frequency = mips_options.mips_cpu_mhz * 1000000;
if (mips_options.mips_cpu_flags & CPU_MIPS_DOUBLE_COUNT)
switch (MIPS_PRID_IMPL(mips_options.mips_cpu_id)) {