From owner-svn-src-projects@FreeBSD.ORG Fri Nov 20 16:30:35 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9755E10656AD; Fri, 20 Nov 2009 16:30:35 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 862CD8FC29; Fri, 20 Nov 2009 16:30:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAKGUZj4049880; Fri, 20 Nov 2009 16:30:35 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAKGUZiR049878; Fri, 20 Nov 2009 16:30:35 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <200911201630.nAKGUZiR049878@svn.freebsd.org> From: Warner Losh Date: Fri, 20 Nov 2009 16:30:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199598 - projects/mips/sys/mips/mips X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Nov 2009 16:30:35 -0000 Author: imp Date: Fri Nov 20 16:30:35 2009 New Revision: 199598 URL: http://svn.freebsd.org/changeset/base/199598 Log: Horrible kludge to make octeon32 work. I think a better way is to move the generic code into the config files.... Modified: projects/mips/sys/mips/mips/bus_space_generic.c Modified: projects/mips/sys/mips/mips/bus_space_generic.c ============================================================================== --- projects/mips/sys/mips/mips/bus_space_generic.c Fri Nov 20 16:27:50 2009 (r199597) +++ projects/mips/sys/mips/mips/bus_space_generic.c Fri Nov 20 16:30:35 2009 (r199598) @@ -196,6 +196,25 @@ static struct bus_space generic_space = NULL, }; +/* Ultra-gross kludge */ +#include "opt_cputype.h" +#if defined(TARGET_OCTEON) && defined(ISA_MIPS32) +#include +#define rd8(a) oct_read8(a) +#define rd16(a) oct_read16(a) +#define rd32(a) oct_read32(a) +#define wr8(a, v) oct_write8(a, v) +#define wr16(a, v) oct_write16(a, v) +#define wr32(a, v) oct_write32(a, v) +#else +#define rd8(a) readb(a) +#define rd16(a) readw(a) +#define rd32(a) readl(a) +#define wr8(a, v) writeb(a, v) +#define wr16(a, v) writew(a, v) +#define wr32(a, v) writel(a, v) +#endif + /* generic bus_space tag */ bus_space_tag_t mips_bus_space_generic = &generic_space; @@ -233,7 +252,7 @@ generic_bs_r_1(void *t, bus_space_handle bus_size_t offset) { - return (readb(handle + offset)); + return (rd8(handle + offset)); } u_int16_t @@ -241,7 +260,7 @@ generic_bs_r_2(void *t, bus_space_handle bus_size_t offset) { - return (readw(handle + offset)); + return (rd16(handle + offset)); } u_int32_t @@ -249,7 +268,7 @@ generic_bs_r_4(void *t, bus_space_handle bus_size_t offset) { - return (readl(handle + offset)); + return (rd32(handle + offset)); } @@ -259,7 +278,7 @@ generic_bs_rm_1(void *t, bus_space_handl { while (count--) - *addr++ = readb(bsh + offset); + *addr++ = rd8(bsh + offset); } void @@ -269,7 +288,7 @@ generic_bs_rm_2(void *t, bus_space_handl bus_addr_t baddr = bsh + offset; while (count--) - *addr++ = readw(baddr); + *addr++ = rd16(baddr); } void @@ -279,7 +298,7 @@ generic_bs_rm_4(void *t, bus_space_handl bus_addr_t baddr = bsh + offset; while (count--) - *addr++ = readl(baddr); + *addr++ = rd32(baddr); } @@ -295,7 +314,7 @@ generic_bs_rr_1(void *t, bus_space_handl bus_addr_t baddr = bsh + offset; while (count--) { - *addr++ = readb(baddr); + *addr++ = rd8(baddr); baddr += 1; } } @@ -307,7 +326,7 @@ generic_bs_rr_2(void *t, bus_space_handl bus_addr_t baddr = bsh + offset; while (count--) { - *addr++ = readw(baddr); + *addr++ = rd16(baddr); baddr += 2; } } @@ -319,7 +338,7 @@ generic_bs_rr_4(void *t, bus_space_handl bus_addr_t baddr = bsh + offset; while (count--) { - *addr++ = readl(baddr); + *addr++ = rd32(baddr); baddr += 4; } } @@ -333,7 +352,7 @@ generic_bs_w_1(void *t, bus_space_handle bus_size_t offset, u_int8_t value) { - writeb(bsh + offset, value); + wr8(bsh + offset, value); } void @@ -341,7 +360,7 @@ generic_bs_w_2(void *t, bus_space_handle bus_size_t offset, u_int16_t value) { - writew(bsh + offset, value); + wr16(bsh + offset, value); } void @@ -349,7 +368,7 @@ generic_bs_w_4(void *t, bus_space_handle bus_size_t offset, u_int32_t value) { - writel(bsh + offset, value); + wr32(bsh + offset, value); } /* @@ -363,7 +382,7 @@ generic_bs_wm_1(void *t, bus_space_handl bus_addr_t baddr = bsh + offset; while (count--) - writeb(baddr, *addr++); + wr8(baddr, *addr++); } void @@ -373,7 +392,7 @@ generic_bs_wm_2(void *t, bus_space_handl bus_addr_t baddr = bsh + offset; while (count--) - writew(baddr, *addr++); + wr16(baddr, *addr++); } void @@ -383,7 +402,7 @@ generic_bs_wm_4(void *t, bus_space_handl bus_addr_t baddr = bsh + offset; while (count--) - writel(baddr, *addr++); + wr32(baddr, *addr++); } /* @@ -397,7 +416,7 @@ generic_bs_wr_1(void *t, bus_space_handl bus_addr_t baddr = bsh + offset; while (count--) { - writeb(baddr, *addr++); + wr8(baddr, *addr++); baddr += 1; } } @@ -409,7 +428,7 @@ generic_bs_wr_2(void *t, bus_space_handl bus_addr_t baddr = bsh + offset; while (count--) { - writew(baddr, *addr++); + wr16(baddr, *addr++); baddr += 2; } } @@ -421,7 +440,7 @@ generic_bs_wr_4(void *t, bus_space_handl bus_addr_t baddr = bsh + offset; while (count--) { - writel(baddr, *addr++); + wr32(baddr, *addr++); baddr += 4; } } @@ -437,7 +456,7 @@ generic_bs_sm_1(void *t, bus_space_handl bus_addr_t addr = bsh + offset; while (count--) - writeb(addr, value); + wr8(addr, value); } void @@ -447,7 +466,7 @@ generic_bs_sm_2(void *t, bus_space_handl bus_addr_t addr = bsh + offset; while (count--) - writew(addr, value); + wr16(addr, value); } void @@ -457,7 +476,7 @@ generic_bs_sm_4(void *t, bus_space_handl bus_addr_t addr = bsh + offset; while (count--) - writel(addr, value); + wr32(addr, value); } /* @@ -471,7 +490,7 @@ generic_bs_sr_1(void *t, bus_space_handl bus_addr_t addr = bsh + offset; for (; count != 0; count--, addr++) - writeb(addr, value); + wr8(addr, value); } void @@ -481,7 +500,7 @@ generic_bs_sr_2(void *t, bus_space_handl bus_addr_t addr = bsh + offset; for (; count != 0; count--, addr += 2) - writew(addr, value); + wr16(addr, value); } void @@ -491,7 +510,7 @@ generic_bs_sr_4(void *t, bus_space_handl bus_addr_t addr = bsh + offset; for (; count != 0; count--, addr += 4) - writel(addr, value); + wr32(addr, value); } /* @@ -509,12 +528,12 @@ generic_bs_c_1(void *t, bus_space_handle if (addr1 >= addr2) { /* src after dest: copy forward */ for (; count != 0; count--, addr1++, addr2++) - writeb(addr2, readb(addr1)); + wr8(addr2, rd8(addr1)); } else { /* dest after src: copy backwards */ for (addr1 += (count - 1), addr2 += (count - 1); count != 0; count--, addr1--, addr2--) - writeb(addr2, readb(addr1)); + wr8(addr2, rd8(addr1)); } } @@ -529,12 +548,12 @@ generic_bs_c_2(void *t, bus_space_handle if (addr1 >= addr2) { /* src after dest: copy forward */ for (; count != 0; count--, addr1 += 2, addr2 += 2) - writew(addr2, readw(addr1)); + wr16(addr2, rd16(addr1)); } else { /* dest after src: copy backwards */ for (addr1 += 2 * (count - 1), addr2 += 2 * (count - 1); count != 0; count--, addr1 -= 2, addr2 -= 2) - writew(addr2, readw(addr1)); + wr16(addr2, rd16(addr1)); } } @@ -549,12 +568,12 @@ generic_bs_c_4(void *t, bus_space_handle if (addr1 >= addr2) { /* src after dest: copy forward */ for (; count != 0; count--, addr1 += 4, addr2 += 4) - writel(addr2, readl(addr1)); + wr32(addr2, rd32(addr1)); } else { /* dest after src: copy backwards */ for (addr1 += 4 * (count - 1), addr2 += 4 * (count - 1); count != 0; count--, addr1 -= 4, addr2 -= 4) - writel(addr2, readl(addr1)); + wr32(addr2, rd32(addr1)); } }