Date: Sun, 28 Dec 2003 04:13:09 -0800 (PST) From: Juli Mallett <jmallett@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 44440 for review Message-ID: <200312281213.hBSCD9c1019683@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=44440 Change 44440 by jmallett@jmallett_oingo on 2003/12/28 04:12:46 A quick ARCS frontend to provide console and other basic things. Still *need* to add the tree walking stuff to get the system ID crap. This is good enough for what I need right at this moment, and works with the new ABI by way of nasty contortions that would make bde blush and full of me sticking my fingers in my ears and yelling "la la la I can't use a packed structure" twice as loud as phk ever has done. I feel dirty. Affected files ... .. //depot/projects/mips/sys/conf/Makefile.mips#11 edit .. //depot/projects/mips/sys/conf/files.mips#23 edit .. //depot/projects/mips/sys/conf/options.mips#11 edit .. //depot/projects/mips/sys/dev/arcs/arcs.c#1 add .. //depot/projects/mips/sys/dev/arcs/arcs.h#1 add .. //depot/projects/mips/sys/dev/arcs/arcs_console.c#1 add .. //depot/projects/mips/sys/mips/conf/INDY#3 edit .. //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#25 edit Differences ... ==== //depot/projects/mips/sys/conf/Makefile.mips#11 (text+ko) ==== @@ -41,7 +41,7 @@ .include "$S/conf/kern.pre.mk" MIPSOPTS?= -mips3 -COPTS+= ${MIPSOPTS} -mno-abicalls -fno-pic -msoft-float -mabi=o64 -mlong64 +COPTS+= ${MIPSOPTS} -mno-abicalls -fno-pic -msoft-float CFLAGS+= -D${PLATFORM} ==== //depot/projects/mips/sys/conf/files.mips#23 (text+ko) ==== @@ -50,6 +50,9 @@ dev/arcbios/arcbios.c optional arcbios dev/arcbios/arcbios_tty.c optional arcbios +dev/arcs/arcs.c optional arcs +dev/arcs/arcs_console.c optional arcs + libkern/bcmp.c standard libkern/divdi3.c standard libkern/ffs.c standard ==== //depot/projects/mips/sys/conf/options.mips#11 (text+ko) ==== ==== //depot/projects/mips/sys/mips/conf/INDY#3 (text+ko) ==== @@ -17,9 +17,7 @@ options IP22 #IP22 (Indy, Indigo2, ...) # Hardware support -device arcbios #ARCBIOS -#options ARCBIOS64 #ARCBIOS uses 64-bit pointers in - #structures. Disable for IP22. +device arcs #ARCS Firmware + Console # Debugging for use in -current options DDB #Enable the kernel debugger ==== //depot/projects/mips/sys/mips/sgimips/machdep_sgimips.c#25 (text+ko) ==== @@ -43,8 +43,7 @@ #include <platform/models.h> #include <platform/sysconf.h> -#include <dev/arcbios/arcbios.h> -#include <dev/arcbios/arcbiosvar.h> +#include <dev/arcs/arcs.h> #include "opt_model.h" @@ -67,19 +66,19 @@ void platform_halt(void) { - ARCBIOS->EnterInteractiveMode(); + ARCS_EnterInteractiveMode(); } void platform_reset(void) { - ARCBIOS->Reboot(); + ARCS_Reboot(); } void platform_start(int argc, char **argv) { - struct arcbios_mem *mem; + struct ARCS_Mem *mem; struct machine_type *mtp; const char *cpufreq; int first, i, j, last, size; @@ -88,16 +87,14 @@ kend = 0; /* - * Initialise the ARCBIOS stuff. + * Initialise the ARCS stuff. */ - arcbios_init(MIPS_PHYS_TO_KSEG1(0x00001000)); - arcbios_cnattach(); + arcs_attach((void *)MIPS_PHYS_TO_KSEG1(0x00001000)); + arcs_cnattach(); bootverbose = 1; /* XXX */ - ARCBIOS->FlushAllCaches(); - - cpufreq = ARCBIOS->GetEnvironmentVariable("cpufreq"); + cpufreq = ARCS_GetEnvironmentVariable("cpufreq"); if (cpufreq == NULL) panic("$cpufreq not set"); @@ -105,7 +102,7 @@ init_param1(); for (mtp = machines; mtp->identifier != NULL; mtp++) { - if (strcmp(mtp->identifier, arcbios_system_identifier) == 0) + if (strcmp(mtp->identifier, arcs_systemid()) == 0) break; } if (mtp->identifier == NULL) @@ -116,26 +113,26 @@ } printf("%s (IP%d), subtype %x, board rev. %x at %sMHz\n", - arcbios_system_identifier, mach_type, mach_subtype, mach_boardrev, cpufreq); + arcs_systemid(), mach_type, mach_subtype, mach_boardrev, cpufreq); mem = NULL; j = 0; for (i = 0;; i++) { - mem = ARCBIOS->GetMemoryDescriptor(mem); + mem = ARCS_GetMemoryDescriptor(mem); if (mem == NULL) break; - first = round_page(mem->BasePage * ARCBIOS_PAGESIZE); - last = trunc_page(first + mem->PageCount * ARCBIOS_PAGESIZE); + first = round_page(mem->BasePage << ARCS_PAGESHIFT); + last = trunc_page(first + (mem->PageCount << ARCS_PAGESHIFT)); size = last - first; switch (mem->Type) { - case ARCBIOS_MEM_FirmwareTemporary: - case ARCBIOS_MEM_FirmwarePermanent: + case ARCS_Mem_Type_FirmwareTemporary: + case ARCS_Mem_Type_FirmwarePermanent: arcsmem += btoc(size); break; - case ARCBIOS_MEM_LoadedProgram: + case ARCS_Mem_Type_LoadedProgram: /* XXX does not allow for kernels loaded * at the very end of the available space. * XXX assumes sorted memory, but it is? @@ -150,13 +147,13 @@ kend = MIPS_PHYS_TO_KSEG0(last); lpmem += btoc(size); break; - case ARCBIOS_MEM_FreeContiguous: - case ARCBIOS_MEM_FreeMemory: + case ARCS_Mem_Type_FreeContiguous: + case ARCS_Mem_Type_FreeMemory: availmem += btoc(size); phys_avail[j + 0] = first; phys_avail[j + 1] = last; if (bootverbose) - printf("ARCBIOS MEM %#x -> %#x\n", first, last); + printf("ARCS MEM %#x -> %#x\n", first, last); j += 2; break; default: @@ -174,7 +171,7 @@ void platform_identify(void) { - printf("machine: %s\n", arcbios_system_identifier); + printf("machine: %s\n", arcs_systemid()); printf("ARCS memory = %d (%d KB)\n", ctob(arcsmem), ctob(arcsmem) / 1024); printf("Loaded program memory = %d (%d KB)\n", ctob(lpmem),
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200312281213.hBSCD9c1019683>
