Date: Sat, 8 Jul 2006 13:58:34 GMT From: "Wojciech A. Koszek" <wkoszek@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 101016 for review Message-ID: <200607081358.k68DwYOn042459@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=101016 Change 101016 by wkoszek@wkoszek_laptop on 2006/07/08 13:57:39 Bring intr_enable() to cpufunc.h and uncomment calling in machdep.c. It might be useful to make sure some portions of the code are called with interrupts enabled/disabled (we already have intr_destroy() and intr_restore() couple). XXXMIPS: For know I've been given free hand with modifications on this branch. Since it's P4, we accept things going wrong for a while. It will be basically related with directory structure, since we will have to spend some time on good planning and reviewing, if the chip versions bring big differences between themselves. Affected files ... .. //depot/projects/mips2/src/sys/mips/include/cpufunc.h#11 edit .. //depot/projects/mips2/src/sys/mips/mips/machdep.c#8 edit Differences ... ==== //depot/projects/mips2/src/sys/mips/include/cpufunc.h#11 (text+ko) ==== @@ -188,6 +188,17 @@ return (s); } +static __inline register_t +intr_enable(void) +{ + register_t s; + + s = mips_rd_status(); + mips_wr_status(s | MIPS_SR_IE); + + return (s); +} + #define intr_restore(s) mips_wr_status((s)) static __inline void ==== //depot/projects/mips2/src/sys/mips/mips/machdep.c#8 (text+ko) ==== @@ -295,6 +295,42 @@ } +void +platform_start(int argc, char **argv) +{ + volatile uint32_t * dest_ch; + +#define MALTA_FPGA_BASE 0x1f000000 /* FPGA: */ +#define MALTA_FPGA_SIZE 0x00c00000 /* 12 MByte */ + +#define MALTA_LEDBAR (MALTA_FPGA_BASE + 0x408) +#define MALTA_ASCIIWORD (MALTA_FPGA_BASE + 0x410) +#define MALTA_ASCII_BASE (MALTA_FPGA_BASE + 0x418) +#define MALTA_ASCIIPOS0 0x00 +#define MALTA_ASCIIPOS1 0x08 +#define MALTA_ASCIIPOS2 0x10 +#define MALTA_ASCIIPOS3 0x18 +#define MALTA_ASCIIPOS4 0x20 +#define MALTA_ASCIIPOS5 0x28 +#define MALTA_ASCIIPOS6 0x30 +#define MALTA_ASCIIPOS7 0x38 + +#define MALTA_PUTCHAR(pos, ch) \ + dest_ch = (uint32_t *) \ + MIPS_PHYS_TO_KSEG0(MALTA_ASCII_BASE + MALTA_ASCIIPOS ## pos); \ + *dest_ch = (uint32_t) (ch); + + MALTA_PUTCHAR(0, 'F'); + MALTA_PUTCHAR(1, 'r'); + MALTA_PUTCHAR(2, 'e'); + MALTA_PUTCHAR(3, 'E'); + MALTA_PUTCHAR(4, 'B'); + MALTA_PUTCHAR(5, 'S'); + MALTA_PUTCHAR(6, 'D'); + + memset((char *)MIPS_PHYS_TO_KSEG0(0x1fc00500 + 0x04), 'x', 10); +} + void setPQL2(int *const size, int *const ways); void
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607081358.k68DwYOn042459>