From owner-svn-src-stable@FreeBSD.ORG Sat Dec 31 15:11:47 2011 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B6AF9106566B; Sat, 31 Dec 2011 15:11:47 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9FC4A8FC14; Sat, 31 Dec 2011 15:11:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pBVFBlYv070221; Sat, 31 Dec 2011 15:11:47 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pBVFBlco070215; Sat, 31 Dec 2011 15:11:47 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201112311511.pBVFBlco070215@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 31 Dec 2011 15:11:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229114 - stable/9/sys/powerpc/ps3 X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 31 Dec 2011 15:11:47 -0000 Author: nwhitehorn Date: Sat Dec 31 15:11:47 2011 New Revision: 229114 URL: http://svn.freebsd.org/changeset/base/229114 Log: MFC r228688,228689: Support infrastructure for X11 on PS3. Submitted by: geoffrey dot levand at mail dot ru Modified: stable/9/sys/powerpc/ps3/ps3-hv-asm.awk stable/9/sys/powerpc/ps3/ps3-hvcall.S stable/9/sys/powerpc/ps3/ps3-hvcall.h stable/9/sys/powerpc/ps3/ps3-hvcall.master stable/9/sys/powerpc/ps3/ps3_syscons.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/powerpc/ps3/ps3-hv-asm.awk ============================================================================== --- stable/9/sys/powerpc/ps3/ps3-hv-asm.awk Sat Dec 31 15:08:33 2011 (r229113) +++ stable/9/sys/powerpc/ps3/ps3-hv-asm.awk Sat Dec 31 15:11:47 2011 (r229114) @@ -9,6 +9,7 @@ # $FreeBSD$ BEGIN { + printf("/* $FreeBSD$ */\n\n"); printf("#include \n\n"); printf("#define hc .long 0x44000022\n\n"); } Modified: stable/9/sys/powerpc/ps3/ps3-hvcall.S ============================================================================== --- stable/9/sys/powerpc/ps3/ps3-hvcall.S Sat Dec 31 15:08:33 2011 (r229113) +++ stable/9/sys/powerpc/ps3/ps3-hvcall.S Sat Dec 31 15:11:47 2011 (r229114) @@ -1081,13 +1081,25 @@ ASENTRY(lv1_gpu_memory_free) ASENTRY(lv1_gpu_context_allocate) mflr %r0 std %r0,16(%r1) - stdu %r1,-56(%r1) + stdu %r1,-88(%r1) std %r5,48(%r1) + std %r6,56(%r1) + std %r7,64(%r1) + std %r8,72(%r1) + std %r9,80(%r1) li %r11,217 hc extsw %r3,%r3 ld %r11,48(%r1) std %r4,0(%r11) + ld %r11,56(%r1) + std %r5,0(%r11) + ld %r11,64(%r1) + std %r6,0(%r11) + ld %r11,72(%r1) + std %r7,0(%r11) + ld %r11,80(%r1) + std %r8,0(%r11) ld %r1,0(%r1) ld %r0,16(%r1) mtlr %r0 @@ -1144,6 +1156,18 @@ ASENTRY(lv1_gpu_context_intr) mtlr %r0 blr +ASENTRY(lv1_gpu_attribute) + mflr %r0 + std %r0,16(%r1) + stdu %r1,-48(%r1) + li %r11,228 + hc + extsw %r3,%r3 + ld %r1,0(%r1) + ld %r0,16(%r1) + mtlr %r0 + blr + ASENTRY(lv1_get_rtc) mflr %r0 std %r0,16(%r1) Modified: stable/9/sys/powerpc/ps3/ps3-hvcall.h ============================================================================== --- stable/9/sys/powerpc/ps3/ps3-hvcall.h Sat Dec 31 15:08:33 2011 (r229113) +++ stable/9/sys/powerpc/ps3/ps3-hvcall.h Sat Dec 31 15:11:47 2011 (r229114) @@ -124,11 +124,12 @@ int lv1_gpu_device_map(uint64_t dev, uin int lv1_gpu_device_unmap(uint64_t dev); int lv1_gpu_memory_allocate(uint64_t ddr_size, uint64_t zero1, uint64_t zero2, uint64_t zero3, uint64_t zero4, uint64_t *handle, uint64_t *ddr_lpar); int lv1_gpu_memory_free(uint64_t handle); -int lv1_gpu_context_allocate(uint64_t handle, uint64_t , uint64_t *zero); +int lv1_gpu_context_allocate(uint64_t handle, uint64_t flags, uint64_t *chandle, uint64_t *lpar_dma_control, uint64_t *lpar_driver_info, uint64_t *lpar_reports, uint64_t *lpar_reports_size); int lv1_gpu_context_free(uint64_t chandle); int lv1_gpu_context_iomap(uint64_t changle, uint64_t gpu_ioif, uint64_t xdr_lpar, uint64_t fbsize, uint64_t ioflags); int lv1_gpu_context_attribute(uint64_t chandle, uint64_t op, uint64_t p1, uint64_t p2, uint64_t p3, uint64_t p4); int lv1_gpu_context_intr(uint64_t chandle, uint64_t *v1); +int lv1_gpu_attribute(uint64_t p1, uint64_t p2, uint64_t p3, uint64_t p4, uint64_t p5); int lv1_get_rtc(uint64_t *rtc_val, uint64_t *timebase); int lv1_storage_read(uint64_t dev, uint64_t region, uint64_t sector, uint64_t nsectors, uint64_t flags, uint64_t buf, uint64_t *dma_tag); int lv1_storage_write(uint64_t dev, uint64_t region, uint64_t sector, uint64_t nsectors, uint64_t flags, uint64_t buf, uint64_t *dma_tag); Modified: stable/9/sys/powerpc/ps3/ps3-hvcall.master ============================================================================== --- stable/9/sys/powerpc/ps3/ps3-hvcall.master Sat Dec 31 15:08:33 2011 (r229113) +++ stable/9/sys/powerpc/ps3/ps3-hvcall.master Sat Dec 31 15:11:47 2011 (r229114) @@ -125,11 +125,12 @@ HVCALL 212 lv1_gpu_device_map dev l HVCALL 213 lv1_gpu_device_unmap dev HVCALL 214 lv1_gpu_memory_allocate ddr_size,zero1,zero2,zero3,zero4 handle,ddr_lpar HVCALL 216 lv1_gpu_memory_free handle -HVCALL 217 lv1_gpu_context_allocate handle, zero chandle,lpar_dma_control,lpar_driver_info,lpar_reports,lpar_reports_size +HVCALL 217 lv1_gpu_context_allocate handle,flags chandle,lpar_dma_control,lpar_driver_info,lpar_reports,lpar_reports_size HVCALL 218 lv1_gpu_context_free chandle HVCALL 221 lv1_gpu_context_iomap changle,gpu_ioif,xdr_lpar,fbsize,ioflags HVCALL 225 lv1_gpu_context_attribute chandle,op,p1,p2,p3,p4 HVCALL 227 lv1_gpu_context_intr chandle v1 +HVCALL 228 lv1_gpu_attribute p1,p2,p3,p4,p5 HVCALL 232 lv1_get_rtc UNUSED rtc_val,timebase HVCALL 245 lv1_storage_read dev,region,sector,nsectors,flags,buf dma_tag HVCALL 246 lv1_storage_write dev,region,sector,nsectors,flags,buf dma_tag Modified: stable/9/sys/powerpc/ps3/ps3_syscons.c ============================================================================== --- stable/9/sys/powerpc/ps3/ps3_syscons.c Sat Dec 31 15:08:33 2011 (r229113) +++ stable/9/sys/powerpc/ps3/ps3_syscons.c Sat Dec 31 15:11:47 2011 (r229114) @@ -121,6 +121,13 @@ struct ps3fb_softc { u_char *sc_font; int sc_font_height; + + uint64_t sc_fbhandle; + uint64_t sc_fbcontext; + uint64_t sc_dma_control; + uint64_t sc_driver_info; + uint64_t sc_reports; + uint64_t sc_reports_size; }; static video_switch_t ps3fbvidsw = { @@ -276,8 +283,10 @@ ps3fb_configure(int flags) void ps3fb_remap(void) { + struct ps3fb_softc *sc; vm_offset_t va, fb_paddr; - uint64_t fbhandle, fbcontext; + + sc = &ps3fb_softc; lv1_gpu_close(); lv1_gpu_open(0); @@ -290,12 +299,13 @@ ps3fb_remap(void) 0,L1GPU_DISPLAY_SYNC_VSYNC,0,0); lv1_gpu_context_attribute(0, L1GPU_CONTEXT_ATTRIBUTE_DISPLAY_SYNC, 1,L1GPU_DISPLAY_SYNC_VSYNC,0,0); - lv1_gpu_memory_allocate(PS3FB_SIZE, 0, 0, 0, 0, &fbhandle, &fb_paddr); - lv1_gpu_context_allocate(fbhandle, 0, &fbcontext); + lv1_gpu_memory_allocate(PS3FB_SIZE, 0, 0, 0, 0, &sc->sc_fbhandle, &fb_paddr); + lv1_gpu_context_allocate(sc->sc_fbhandle, 0, &sc->sc_fbcontext, &sc->sc_dma_control, + &sc->sc_driver_info, &sc->sc_reports, &sc->sc_reports_size); - lv1_gpu_context_attribute(fbcontext, + lv1_gpu_context_attribute(sc->sc_fbcontext, L1GPU_CONTEXT_ATTRIBUTE_DISPLAY_FLIP, 0, 0, 0, 0); - lv1_gpu_context_attribute(fbcontext, + lv1_gpu_context_attribute(sc->sc_fbcontext, L1GPU_CONTEXT_ATTRIBUTE_DISPLAY_FLIP, 1, 0, 0, 0); for (va = 0; va < PS3FB_SIZE; va += PAGE_SIZE) @@ -405,6 +415,11 @@ ps3fb_set_mode(video_adapter_t *adp, int ps3fb_blank_display(&sc->sc_va, V_DISPLAY_ON); + lv1_gpu_context_attribute(sc->sc_fbcontext, + L1GPU_CONTEXT_ATTRIBUTE_DISPLAY_FLIP, 0, 0, 0, 0); + lv1_gpu_context_attribute(sc->sc_fbcontext, + L1GPU_CONTEXT_ATTRIBUTE_DISPLAY_FLIP, 1, 0, 0, 0); + return (0); }