All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fredrik Noring <noring@nocrew.org>
To: linux-mips@vger.kernel.org
Subject: [PATCH 076/120] MIPS: PS2: GS: Define privileged Graphics Synthesizer registers
Date: Sun, 1 Sep 2019 18:17:50 +0200	[thread overview]
Message-ID: <51240db505d6c5acf84b80f044ce5393dfa907fd.1567326213.git.noring@nocrew.org> (raw)
In-Reply-To: <cover.1567326213.git.noring@nocrew.org>

All privileged GS registers are write-only except CSR (system status)
and SIGLBLID (signal and label id)[1][2]. Reading write-only registers
is emulated by shadow registers in memory. Reading unwritten registers
is not permitted. Predicate functions indicate whether registers are
readable.

The following privileged registers are available:

Register | Description
---------+---------------------------------------------------
PMODE    | PCRTC mode setting
SMODE1   | Mode setting related to video synchronisation
SMODE2   | Mode setting related to video synchronisation
SYNCH1   | Mode setting related to video synchronisation
SYNCH2   | Mode setting related to video synchronisation
SYNCHV   | Mode setting related to video synchronisation
SRFSH    | DRAM refresh
DISPFB1  | Setting for rectangular area read output circuit 1
DISPLAY1 | Setting for rectangular area read output circuit 1
DISPFB2  | Setting for rectangular area read output circuit 2
DISPLAY2 | Setting for rectangular area read output circuit 2
EXTBUF   | Feedback write buffer setting
EXTDATA  | Feedback write setting
EXTWRITE | Feedback write control
BGCOLOR  | Background colour setting
CSR      | System status
IMR      | Interrupt mask control
BUSDIR   | Host interface bus switching
SIGLBLID | Signal and label identification value read
---------+---------------------------------------------------

References:

[1] "EE User's Manual", version 6.0, Sony Computer Entertainment Inc.,
    p. 26.

[2] "GS User's Manual", version 6.0, Sony Computer Entertainment Inc.,
    pp. 142-157, 159.

Signed-off-by: Fredrik Noring <noring@nocrew.org>
---
 arch/mips/include/asm/mach-ps2/gs-registers.h | 548 ++++++++++++++++++
 1 file changed, 548 insertions(+)
 create mode 100644 arch/mips/include/asm/mach-ps2/gs-registers.h

diff --git a/arch/mips/include/asm/mach-ps2/gs-registers.h b/arch/mips/include/asm/mach-ps2/gs-registers.h
new file mode 100644
index 000000000000..ab59c751190f
--- /dev/null
+++ b/arch/mips/include/asm/mach-ps2/gs-registers.h
@@ -0,0 +1,548 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * PlayStation 2 privileged Graphics Synthesizer (GS) registers
+ *
+ * Copyright (C) 2019 Fredrik Noring
+ */
+
+/**
+ * DOC: Privileged Graphics Synthesizer (GS) registers
+ *
+ * All privileged GS registers are write-only except CSR (system status)
+ * and SIGLBLID (signal and label id). Reading write-only registers is
+ * emulated by shadow registers in memory. Reading unwritten registers
+ * is not permitted. Predicate functions indicate whether registers are
+ * readable.
+ */
+
+#ifndef __ASM_MACH_PS2_GS_REGISTERS_H
+#define __ASM_MACH_PS2_GS_REGISTERS_H
+
+#include <asm/types.h>
+
+/* Privileged GS registers must be accessed using LD/SD instructions. */
+
+#define GS_PMODE	0x12000000  /* (WO) PCRTC mode setting */
+#define GS_SMODE1	0x12000010  /* (WO) Sync */
+#define GS_SMODE2	0x12000020  /* (WO) Sync */
+#define GS_SRFSH	0x12000030  /* (WO) DRAM refresh */
+#define GS_SYNCH1	0x12000040  /* (WO) Sync */
+#define GS_SYNCH2	0x12000050  /* (WO) Sync */
+#define GS_SYNCV	0x12000060  /* (WO) Sync */
+#define GS_DISPFB1	0x12000070  /* (WO) Rectangle read output circuit 1 */
+#define GS_DISPLAY1	0x12000080  /* (WO) Rectangle read output circuit 1 */
+#define GS_DISPFB2	0x12000090  /* (WO) Rectangle read output circuit 2 */
+#define GS_DISPLAY2	0x120000a0  /* (WO) Rectangle read output circuit 2 */
+#define GS_EXTBUF	0x120000b0  /* (WO) Feedback write buffer */
+#define GS_EXTDATA	0x120000c0  /* (WO) Feedback write setting */
+#define GS_EXTWRITE	0x120000d0  /* (WO) Feedback write function control */
+#define GS_BGCOLOR	0x120000e0  /* (WO) Background color setting */
+#define GS_CSR		0x12001000  /* (RW) System status */
+#define GS_IMR		0x12001010  /* (WO) Interrupt mask control */
+#define GS_BUSDIR	0x12001040  /* (WO) Host interface bus switching */
+#define GS_SIGLBLID	0x12001080  /* (RW) Signal and label id */
+
+/**
+ * enum gs_pmode_mmod - &gs_pmode.mmod alpha blending value
+ * @gs_mmod_circuit1: FIXME
+ * @gs_mmod_alp: FIXME
+ */
+enum gs_pmode_mmod {
+	gs_mmod_circuit1,
+	gs_mmod_alp
+};
+
+/**
+ * enum gs_pmode_amod - &gs_pmode.amod OUT1 alpha output
+ * @gs_amod_circuit1: FIXME
+ * @gs_amod_circuit2: FIXME
+ */
+enum gs_pmode_amod {
+	gs_amod_circuit1,
+	gs_amod_circuit2
+};
+
+/**
+ * enum gs_pmode_slbg - &gs_pmode.slbg alpha blending method
+ * @gs_slbg_circuit2: FIXME
+ * @gs_slbg_bgcolor: FIXME
+ */
+enum gs_pmode_slbg {
+	gs_slbg_circuit2,
+	gs_slbg_bgcolor
+};
+
+/**
+ * struct gs_pmode - PMODE privileged Graphics Synthesizer register
+ * @en1: enable read circuit 1
+ * @en2: enable read circuit 2
+ * @crtmd: CRT output switching (always 001)
+ * @mmod: alpha blending value
+ * @amod: OUT1 alpha output
+ * @slbg: alpha blending method
+ * @alp: fixed alpha (0xff = 1.0)
+ * @zero: must be zero
+ */
+struct gs_pmode {
+	u64 en1 : 1;
+	u64 en2 : 1;
+	u64 crtmd : 3;
+	u64 mmod : 1;
+	u64 amod : 1;
+	u64 slbg : 1;
+	u64 alp : 8;
+	u64 zero : 1;
+	u64 : 47;
+};
+
+/**
+ * enum gs_smode1_cmod - &gs_smode1.cmod value
+ * @gs_cmod_vesa: VESA
+ * @gs_cmod_ntsc: NTSC broadcast
+ * @gs_cmod_pal: PAL broadcast
+ */
+enum gs_smode1_cmod {
+	gs_cmod_vesa,
+	/* Reserved */
+	gs_cmod_ntsc = 2,
+	gs_cmod_pal
+};
+
+/**
+ * enum gs_smode1_gcont - &gs_smode1.gcont value
+ * @gs_gcont_rgbyc: Output RGBYc
+ * @gs_gcont_ycrcb: Output YCrCb
+ */
+enum gs_smode1_gcont {
+	gs_gcont_rgbyc,
+	gs_gcont_ycrcb
+};
+
+/**
+ * struct gs_smode1 - SMODE1 privileged Graphics Synthesizer register
+ * @rc: PLL reference divider
+ * @lc: PLL loop divider
+ * @t1248: PLL output divider
+ * @slck: FIXME
+ * @cmod: @enum gs_smode1_cmod display mode (PAL, NTSC or VESA)
+ * @ex: FIXME
+ * @prst: PLL reset
+ * @sint: PLL (phase-locked loop)
+ * @xpck: FIXME
+ * @pck2: FIXME
+ * @spml: FIXME
+ * @gcont: @enum gs_smode1_gcont select RGBYC or YCrCb
+ * @phs: HSync output
+ * @pvs: VSync output
+ * @pehs: FIXME
+ * @pevs: FIXME
+ * @clksel: FIXME
+ * @nvck: FIXME
+ * @slck2: FIXME
+ * @vcksel: FIXME
+ * @vhp: FIXME
+ *
+ * The video clock VCK = (13500000 * @lc) / ((@t1248 + 1) * @spml * @rc).
+ */
+struct gs_smode1 {
+	u64 rc : 3;
+	u64 lc : 7;
+	u64 t1248 : 2;
+	u64 slck : 1;
+	u64 cmod : 2;
+	u64 ex : 1;
+	u64 prst : 1;
+	u64 sint : 1;
+	u64 xpck : 1;
+	u64 pck2 : 2;
+	u64 spml : 4;
+	u64 gcont : 1;
+	u64 phs : 1;
+	u64 pvs : 1;
+	u64 pehs : 1;
+	u64 pevs : 1;
+	u64 clksel : 2;
+	u64 nvck : 1;
+	u64 slck2 : 1;
+	u64 vcksel : 2;
+	u64 vhp : 1;
+	u64 : 27;
+};
+
+/**
+ * enum gs_smode2_intm - &gs_smode2.intm interlace mode
+ * @gs_intm_progressive: progressive (noninterlace) mode
+ * @gs_intm_interlace: interlace mode
+ */
+enum gs_smode2_intm {
+	gs_intm_progressive,
+	gs_intm_interlace
+};
+
+/**
+ * enum gs_smode2_ffmd - &gs_smode2.ffmd FIELD or FRAME mode
+ * @gs_ffmd_field:
+ * @gs_ffmd_frame:
+ *
+ * In FIELD mode every other line is read: 0, 2, 4, ... / 1, 3, 5, ...
+ *
+ * In FRAME mode every line is read: 1, 2, 3, 4, 5, ...
+ */
+enum gs_smode2_ffmd {
+	gs_ffmd_field,
+	gs_ffmd_frame
+};
+
+/**
+ * enum gs_smode2_dpms - &gs_smode2.dpms VESA display power management
+ *      signaling (DPMS) levels
+ * @gs_dpms_on: in use
+ * @gs_dpms_standby: blanked, low power
+ * @gs_dpms_suspend: blanked, lower power
+ * @gs_dpms_off: shut off, awaiting activity
+ */
+enum gs_smode2_dpms {
+	gs_dpms_on,
+	gs_dpms_standby,
+	gs_dpms_suspend,
+	gs_dpms_off
+};
+
+/**
+ * struct gs_smode2 - SMODE2 privileged Graphics Synthesizer register
+ * @intm: &enum gs_smode2_intm progressive or interlace mode
+ * @ffmd: &enum gs_smode2_ffmd FIELD or FRAME mode
+ * @dpms: &enum gs_smode2_dpms VESA display power management signaling (DPMS)
+ *      level
+ */
+struct gs_smode2 {
+	u64 intm : 1;
+	u64 ffmd : 1;
+	u64 dpms : 2;
+	u64 : 60;
+};
+
+/**
+ * struct gs_srfsh - DRAM refresh privileged Graphics Synthesizer register
+ * @rfsh: FIXME
+ */
+struct gs_srfsh {
+	u64 rfsh : 4;		/* FIXME: Number of bits? */
+	u64 : 60;
+};
+
+/**
+ * struct gs_synch1 - SYNCH1 privileged Graphics Synthesizer register
+ * @hfp: horizontal front porch
+ * @hbp: horizontal back porch
+ * @hseq: FIXME
+ * @hsvs: FIXME
+ * @hs: FIXME
+ */
+struct gs_synch1 {
+	u64 hfp : 11;
+	u64 hbp : 11;
+	u64 hseq : 10;
+	u64 hsvs : 11;
+	u64 hs : 21;		/* FIXME: Number of bits? */
+};
+
+/**
+ * struct gs_synch2 - SYNCH2 privileged Graphics Synthesizer register
+ * @hf: FIXME
+ * @hb: FIXME
+ */
+struct gs_synch2 {
+	u64 hf : 11;
+	u64 hb : 11;
+	u64 : 42;
+};
+
+/**
+ * struct gs_syncv - SYNCHV privileged Graphics Synthesizer register
+ * @vfp: vertical front porch, halflines with color burst after video data
+ * @vfpe: halflines without color burst after @vfp
+ * @vbp: vertical back porch, halflines with color burst after @vbpe
+ * @vbpe: halflines without color burst after @vbp
+ * @vdp: halflines with with video data
+ * @vs: halflines with VSYNC
+ */
+struct gs_syncv {
+	u64 vfp : 10;
+	u64 vfpe : 10;
+	u64 vbp : 12;
+	u64 vbpe : 10;
+	u64 vdp : 11;
+	u64 vs : 11;
+};
+
+/**
+ * struct gs_dispfb - DISPFB privileged Graphics Synthesizer register
+ * @fbp: base pointer address/2048
+ * @fbw: buffer width/64
+ * @psm: pixel storage format FIXME
+ * @dbx: upper left x position
+ * @dby: upper left y position
+ */
+struct gs_dispfb {
+	u64 fbp : 9;
+	u64 fbw : 6;
+	u64 psm : 5;
+	u64 : 12;
+	u64 dbx : 11;
+	u64 dby : 11;
+	u64 : 10;
+};
+
+/**
+ * struct gs_display - DISPLAY privileged Graphics Synthesizer register
+ * @dx: display x position (VCK)
+ * @dy: display y position (px)
+ * @magh: horizontal magnification
+ * @magv: vertical magnification
+ * @dw: display area width-1 (VCK)
+ * @dh: display area height-1 (px)
+ *
+ * @magh and @magv are factor-1, so 0 is 1x, 1 is 2x, 2 is 3x, etc.
+ */
+struct gs_display {
+	u64 dx : 12;
+	u64 dy : 11;
+	u64 magh : 4;
+	u64 magv : 5;
+	u64 dw : 12;
+	u64 dh : 11;
+	u64 : 9;
+};
+
+/**
+ * enum gs_extbuf_fbin - &&gs_extbuf.fbin selection of input source
+ * @gs_fbin_out1: FIXME
+ * @gs_fbin_out2: FIXME
+ */
+enum gs_extbuf_fbin {
+	gs_fbin_out1,
+	gs_fbin_out2
+};
+
+/*
+ * enum gs_extbuf_wffmd - &gs_extbuf.wffmd interlace mode
+ * @gs_wffmd_field: write to every other raster
+ * @gs_wffmd_frame: write to every raster
+ */
+enum gs_extbuf_wffmd {
+	gs_wffmd_field,
+	gs_wffmd_frame
+};
+
+/**
+ * enum gs_extbuf_emoda - &gs_extbuf.emoda processing of input alpha
+ * @gs_emoda_alpha: input alpha is written as it is
+ * @gs_emoda_y: FIXME
+ * @gs_emoda_yhalf: FIXME
+ * @gs_emoda_zero: FIXME
+ */
+enum gs_extbuf_emoda {
+	gs_emoda_alpha,
+	gs_emoda_y,
+	gs_emoda_yhalf,
+	gs_emoda_zero
+};
+
+/**
+ * enum gs_extbuf_emodc - &gs_extbuf.emodc processing of input color
+ * @gs_emodc_rgb: FIXME
+ * @gs_emodc_y: FIXME
+ * @gs_emodc_ycbcr: FIXME
+ * @gs_emodc_alpha: FIXME
+ */
+enum gs_extbuf_emodc {
+	gs_emodc_rgb,
+	gs_emodc_y,
+	gs_emodc_ycbcr,
+	gs_emodc_alpha
+};
+
+/**
+ * struct gs_extbuf - EXTBUF privileged Graphics Synthesizer register
+ * @exbp: buffer base pointer/64
+ * @exbw: width of buffer/64
+ * @fbin: @enum gs_extbuf_fbin selection of input source
+ * @wffmd: @enum gs_extbuf_wffmd interlace mode
+ * @emoda: @enum gs_extbuf_emoda processing of input alpha
+ * @emodc: @enum gs_extbuf_emodc processing of input color
+ * @wdx: upper left x position
+ * @wdy: upper left y position
+ */
+struct gs_extbuf {
+	u64 exbp : 14;
+	u64 exbw : 6;
+	u64 fbin : 2;
+	u64 wffmd : 1;
+	u64 emoda : 2;
+	u64 emodc : 2;
+	u64 : 5;
+	u64 wdx : 11;
+	u64 wdy : 11;
+	u64 : 10;
+};
+
+/**
+ * struct gs_extdata - EXTDATA privileged Graphics Synthesizer register
+ * @sx: upper left x position (VCK)
+ * @sy: upper left y position (VCK)
+ * @smph: horizontal sampling rate interval (VCK)
+ * @smpv: vertical sampling rate interval (VCK)
+ * @ww: rectangular area width-1
+ * @wh: rectangular area height-1
+ */
+struct gs_extdata {
+	u64 sx : 12;
+	u64 sy : 11;
+	u64 smph : 4;
+	u64 smpv : 2;
+	u64 : 3;
+	u64 ww : 12;
+	u64 wh : 11;
+	u64 : 9;
+};
+
+/**
+ * enum gs_extwrite_write - &gs_extwrite.write enable feedback write
+ * @gs_write_complete_current: FIXME
+ * @gs_write_start_next: FIXME
+ */
+enum gs_extwrite_write {
+	gs_write_complete_current,
+	gs_write_start_next
+};
+
+/**
+ * struct gs_extwrite - EXTWRITE privileged Graphics Synthesizer register
+ * @write: &enum gs_extwrite_write enable feedback write
+ */
+struct gs_extwrite {
+	u64 write : 1;
+	u64 : 63;
+};
+
+/**
+ * struct gs_bgcolor - BGCOLOR privileged Graphics Synthesizer register
+ * @r: red background color
+ * @g: green background color
+ * @b: blue background color
+ */
+struct gs_bgcolor {
+	u64 r : 8;
+	u64 g : 8;
+	u64 b : 8;
+	u64 : 40;
+};
+
+/**
+ * enum gs_csr_fifo - &gs_csr.fifo host interface FIFO status
+ * @gs_fifo_neither: neither empty nor almost full
+ * @gs_fifo_empty: FIXME
+ * @gs_fifo_almost_full: FIXME
+ */
+enum gs_csr_fifo {
+	gs_fifo_neither,
+	gs_fifo_empty,
+	gs_fifo_almost_full
+};
+
+/**
+ * enum gs_csr_field - &gs_csr.field field display currently FIXME
+ * @gs_field_even: FIXME
+ * @gs_field_odd: FIXME
+ */
+enum gs_csr_field {
+	gs_field_even,
+	gs_field_odd
+};
+
+/**
+ * struct gs_csr - CSR privileged Graphics Synthesizer register FIXME
+ * @signal: SIGNAL event control
+ * @finish: FINISH event control
+ * @hsint: HSync interrupt control
+ * @vsint: VSync interrupt control
+ * @edwint: rectangular area write termination interrupt control
+ * @zero: must be zero
+ * @flush: drawing suspend and FIFO clear (enabled during data write)
+ * @reset: Graphics Synthesizer reset (enabled during data write)
+ * @nfield: VSync sampled FIELD
+ * @field: &enum gs_csr_field field display currently
+ * @fifo: &enum gs_csr_fifo host interface FIFO status
+ * @rev: Graphics Synthesizer revision (hex)
+ * @id: Graphics Synthesizer id (hex)
+ */
+struct gs_csr {
+	u64 signal : 1;
+	u64 finish : 1;
+	u64 hsint : 1;
+	u64 vsint : 1;
+	u64 edwint : 1;
+	u64 zero : 2;
+	u64 : 1;
+	u64 flush : 1;
+	u64 reset : 1;
+	u64 : 2;
+	u64 nfield : 1;
+	u64 field : 1;
+	u64 fifo : 2;
+	u64 rev : 8;
+	u64 id : 8;
+	u64 : 32;
+};
+
+/**
+ * struct gs_imr - IMR privileged Graphics Synthesizer register FIXME
+ * @sigmsk: SIGNAL event interrupt mask
+ * @finishmsk: FINISH event interrupt mask
+ * @hsmsk: HSync interrupt mask
+ * @vsmsk: VSync interrupt mask
+ * @edwmsk: rectangular area write termination interrupt mask
+ * @ones: should be set to all ones (= 3)
+ */
+struct gs_imr {
+	u64 : 8;
+	u64 sigmsk : 1;
+	u64 finishmsk : 1;
+	u64 hsmsk : 1;
+	u64 vsmsk : 1;
+	u64 edwmsk : 1;
+	u64 ones : 2;
+	u64 : 49;
+};
+
+/**
+ * enum gs_busdir_dir - &gs_busdir.dir host to local direction, or vice versa
+ * @gs_dir_host_to_local: host to local bus transfer direction
+ * @gs_dir_local_to_host: local to host bus transfer direction
+ */
+enum gs_busdir_dir {
+	gs_dir_host_to_local,
+	gs_dir_local_to_host
+};
+
+/**
+ * struct gs_busdir - BUSDIR privileged Graphics Synthesizer register FIXME
+ * @dir: &enum gs_busdir_dir host to local direction, or vice versa
+ */
+struct gs_busdir {
+	u64 dir : 1;
+	u64 : 63;
+};
+
+/**
+ * struct gs_siglblid - SIGLBLID privileged Graphics Synthesizer register FIXME
+ * @sigid: id value set by SIGNAL register
+ * @lblid: id value set by LABEL register
+ */
+struct gs_siglblid {
+	u64 sigid : 32;
+	u64 lblid : 32;
+};
+
+#endif /* __ASM_MACH_PS2_GS_REGISTERS_H */
-- 
2.21.0


  parent reply	other threads:[~2019-09-01 16:17 UTC|newest]

Thread overview: 162+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-01 15:35 [PATCH 000/120] Linux for the PlayStation 2 Fredrik Noring
2019-09-01 15:35 ` [PATCH 001/120] MIPS: R5900: Initial support for the Emotion Engine in " Fredrik Noring
2019-09-01 21:14   ` Maciej W. Rozycki
2019-09-02 15:09     ` Fredrik Noring
2019-09-01 15:36 ` [PATCH 002/120] MIPS: R5900: Trap the RDHWR instruction as an SQ address exception Fredrik Noring
2019-09-01 22:00   ` Maciej W. Rozycki
2020-11-19  7:15   ` Philippe Mathieu-Daudé
2020-11-19 13:28     ` Maciej W. Rozycki
2020-11-19 13:42       ` Maciej W. Rozycki
2020-12-12 10:58       ` Fredrik Noring
2020-12-12 11:36         ` Maciej W. Rozycki
2020-12-12 12:14           ` Fredrik Noring
2020-12-13 11:43           ` Fredrik Noring
2019-09-01 15:36 ` [PATCH 003/120] MIPS: R5900: Sign-extend o32 system call registers Fredrik Noring
2019-09-01 15:37 ` [PATCH 004/120] MIPS: R5900: Reset bits 127..64 of GPRs in RESTORE_SOME Fredrik Noring
2019-09-01 15:38 ` [PATCH 005/120] MIPS: R5900: Reset the funnel shift amount (SA) register " Fredrik Noring
2019-09-01 15:38 ` [PATCH 006/120] MIPS: R5900: Workaround for the short loop bug Fredrik Noring
2019-09-01 15:39 ` [PATCH 007/120] MIPS: R5900: Add the SYNC.P instruction Fredrik Noring
2019-09-01 15:39 ` [PATCH 008/120] MIPS: R5900: Add implicit SYNC.P to the UASM_i_M[FT]C0 macros Fredrik Noring
2019-09-01 15:39 ` [PATCH 009/120] MIPS: R5900: Add mandatory SYNC.P to all M[FT]C0 instructions Fredrik Noring
2019-09-01 15:39 ` [PATCH 010/120] MIPS: R5900: Workaround exception NOP execution bug (FLX05) Fredrik Noring
2019-09-01 23:01   ` Philippe Mathieu-Daudé
2019-09-01 15:40 ` [PATCH 011/120] MIPS: R5900: Avoid pipeline hazard with the TLBP instruction Fredrik Noring
2019-09-01 17:15   ` Sergei Shtylyov
2019-09-01 17:36     ` Fredrik Noring
2019-09-01 15:40 ` [PATCH 012/120] MIPS: R5900: Avoid pipeline hazards with the TLBW[IR] instructions Fredrik Noring
2019-09-01 15:40 ` [PATCH 013/120] MIPS: R5900: Avoid pipeline hazard with the TLBR instruction Fredrik Noring
2019-09-01 15:41 ` [PATCH 014/120] MIPS: R5900: Install final length of TLB refill handler rather than 256 bytes Fredrik Noring
2019-09-01 15:41 ` [PATCH 015/120] MIPS: R5900: Verify that the TLB refill handler does not overflow Fredrik Noring
2019-09-01 15:41 ` [PATCH 016/120] MIPS: R5900: The ERET instruction has issues with delay slot and CACHE Fredrik Noring
2019-09-01 15:42 ` [PATCH 017/120] MIPS: R5900: Define CACHE instruction operation field encodings Fredrik Noring
2019-09-01 15:42 ` [PATCH 018/120] MIPS: R5900: Workaround where MSB must be 0 for the instruction cache Fredrik Noring
2019-09-01 15:42 ` [PATCH 019/120] MIPS: R5900: Use SYNC.L for data cache and SYNC.P for " Fredrik Noring
2019-09-01 15:43 ` [PATCH 020/120] MIPS: R5900: Define CP0.Config register fields Fredrik Noring
2019-09-01 23:04   ` Philippe Mathieu-Daudé
2019-09-01 15:43 ` [PATCH 021/120] MIPS: R5900: Workaround for CACHE instruction near branch delay slot Fredrik Noring
2019-09-01 15:46 ` [PATCH 022/120] MIPS: R5900: Support 64-bit inq() and outq() macros in 32-bit kernels Fredrik Noring
2019-09-04  1:04   ` Jiaxun Yang
2019-09-04 16:00     ` Maciej W. Rozycki
2019-09-01 15:46 ` [PATCH 023/120] MIPS: R5900: Add MFSA and MTSA instructions for the special SA register Fredrik Noring
2019-09-01 15:46 ` [PATCH 024/120] MIPS: PS2: Define PlayStation 2 I/O port, ROM and RAM address spaces Fredrik Noring
2019-09-01 15:47 ` [PATCH 025/120] MIPS: PS2: Define interrupt controller, DMA and timer IRQs Fredrik Noring
2019-09-01 15:47 ` [PATCH 026/120] MIPS: PS2: Interrupt controller (INTC) IRQ support Fredrik Noring
2019-09-01 15:47 ` [PATCH 027/120] MIPS: PS2: DMAC: Define DMA controller registers Fredrik Noring
2019-09-01 15:47 ` [PATCH 028/120] MIPS: PS2: DMAC: Define tag structures Fredrik Noring
2019-09-01 15:48 ` [PATCH 029/120] MIPS: PS2: DMAC: IRQ support Fredrik Noring
2019-09-01 15:48 ` [PATCH 030/120] MIPS: PS2: Timer support Fredrik Noring
2019-09-01 15:48 ` [PATCH 031/120] MIPS: PS2: SCMD: System command support Fredrik Noring
2019-09-01 15:48 ` [PATCH 032/120] MIPS: PS2: SCMD: System power off command Fredrik Noring
2019-09-01 15:48 ` [PATCH 033/120] MIPS: PS2: SCMD: Read system machine name command Fredrik Noring
2019-09-01 15:49 ` [PATCH 034/120] MIPS: PS2: SCMD: Read system command for the real-time clock (RTC) Fredrik Noring
2019-09-01 15:49 ` [PATCH 035/120] MIPS: PS2: SCMD: Set " Fredrik Noring
2019-09-01 15:49 ` [PATCH 036/120] MIPS: PS2: ROM: Iterate over the files in a given ROM directory Fredrik Noring
2019-09-01 15:49 ` [PATCH 037/120] MIPS: PS2: ROM: Find ROM files with a given name, if they exist Fredrik Noring
2019-09-01 15:50 ` [PATCH 038/120] MIPS: PS2: ROM: Read data for a given ROM file name Fredrik Noring
2019-09-02  9:05   ` Sergei Shtylyov
2019-09-04 11:46     ` Sergei Shtylyov
2019-09-06 13:07       ` Fredrik Noring
2019-09-01 15:50 ` [PATCH 039/120] MIPS: PS2: ROM: Read extended information for a given ROM file Fredrik Noring
2019-09-01 15:50 ` [PATCH 040/120] MIPS: PS2: ROM: Read and decode the ROMVER file Fredrik Noring
2019-09-01 15:52 ` [PATCH 041/120] MIPS: PS2: ROM: Resolve the name for the type in " Fredrik Noring
2019-09-01 15:52 ` [PATCH 042/120] MIPS: PS2: ROM: Resolve the name for the region " Fredrik Noring
2019-09-01 15:53 ` [PATCH 043/120] MIPS: PS2: ROM: Permit /dev/mem to access read-only memory Fredrik Noring
2019-09-01 15:53 ` [PATCH 044/120] MIPS: PS2: ROM: Sysfs module to inspect ROM files Fredrik Noring
2019-09-01 15:54 ` [PATCH 045/120] MIPS: PS2: ROM: Provide extended file information via sysfs Fredrik Noring
2019-09-01 15:54 ` [PATCH 046/120] MIPS: PS2: Identify the machine by model name Fredrik Noring
2019-09-01 15:54 ` [PATCH 047/120] MIPS: PS2: Let the system type be Sony PlayStation 2 Fredrik Noring
2019-09-01 23:09   ` Philippe Mathieu-Daudé
2019-09-01 15:55 ` [PATCH 048/120] MIPS: Define and use cpu_relax_forever() for various halting loops Fredrik Noring
2019-09-01 15:55 ` [PATCH 049/120] MIPS: PS2: Power off support Fredrik Noring
2019-09-01 15:55 ` [PATCH 050/120] MIPS: PS2: Real-time clock (RTC) driver Fredrik Noring
2019-09-01 15:56 ` [PATCH 051/120] MIPS: PS2: IOP: I/O processor DMA register PCR2 set and clear Fredrik Noring
2019-09-01 15:57 ` [PATCH 052/120] MIPS: PS2: SIF: Sub-system interface reset of the I/O processor (IOP) Fredrik Noring
2019-09-01 15:57 ` [PATCH 053/120] MIPS: PS2: IOP: Define error numbers, descriptions and errno mapping Fredrik Noring
2019-09-01 15:58 ` [PATCH 054/120] MIPS: PS2: SIF: SIF register write command support Fredrik Noring
2019-09-01 15:58 ` [PATCH 055/120] MIPS: PS2: SIF: Respond to remote procedure call (RPC) bind command Fredrik Noring
2019-09-01 15:58 ` [PATCH 056/120] MIPS: PS2: SIF: Respond to RPC bind end command Fredrik Noring
2019-09-01 15:59 ` [PATCH 057/120] MIPS: PS2: SIF: Reset the SIF0 (sub-to-main) DMA controller Fredrik Noring
2019-09-01 15:59 ` [PATCH 058/120] MIPS: PS2: SIF: Handle SIF0 (sub-to-main) RPCs via interrupts Fredrik Noring
2019-09-01 15:59 ` [PATCH 059/120] MIPS: PS2: SIF: Enable the IOP to issue SIF commands Fredrik Noring
2019-09-01 16:00 ` [PATCH 060/120] MIPS: PS2: SIF: Enable the IOP to issue SIF RPCs Fredrik Noring
2019-09-01 16:01 ` [PATCH 061/120] MIPS: PS2: SIF: sif_rpc_bind() to request an RPC server connection Fredrik Noring
2019-09-01 16:02 ` [PATCH 062/120] MIPS: PS2: SIF: sif_rpc_unbind() to release " Fredrik Noring
2019-09-01 16:02 ` [PATCH 063/120] MIPS: PS2: SIF: sif_rpc() to issue a remote procedure call Fredrik Noring
2019-09-01 16:03 ` [PATCH 064/120] MIPS: PS2: IOP: Permit /dev/mem to access IOP memory Fredrik Noring
2019-09-01 16:03 ` [PATCH 065/120] MIPS: PS2: IOP: I/O processor memory support Fredrik Noring
2019-09-01 16:10 ` [PATCH 066/120] FIXME: Export _dma_cache_{wback,wback_inv,inv} Fredrik Noring
2019-09-01 16:10 ` [PATCH 067/120] MIPS: PS2: IOP: Module linking support Fredrik Noring
2019-09-01 16:11 ` [PATCH 068/120] MIPS: PS2: IOP: Verify that modules are IRX objects Fredrik Noring
2019-09-01 16:11 ` [PATCH 069/120] MIPS: PS2: IOP: Module version compatibility verification Fredrik Noring
2019-09-01 16:11 ` [PATCH 070/120] MIPS: PS2: IOP: Avoid linking already linked library modules Fredrik Noring
2019-09-01 16:12 ` [PATCH 071/120] MIPS: PS2: IOP: Resolve module dependencies Fredrik Noring
2019-09-01 16:12 ` [PATCH 072/120] MIPS: PS2: IOP: SIF printk command support Fredrik Noring
2019-09-01 17:44   ` Sergei Shtylyov
2019-09-01 18:08     ` Fredrik Noring
2019-09-01 16:16 ` [PATCH 073/120] MIPS: PS2: IOP: Heap memory allocate and free Fredrik Noring
2019-09-01 16:16 ` [PATCH 074/120] MIPS: PS2: SIF: Request RPC IRQ command Fredrik Noring
2019-09-01 16:17 ` [PATCH 075/120] MIPS: PS2: IOP: IRQ support Fredrik Noring
2019-09-01 16:17 ` Fredrik Noring [this message]
2019-09-01 16:18 ` [PATCH 077/120] MIPS: PS2: GS: Write privileged registers Fredrik Noring
2019-09-01 16:18 ` [PATCH 078/120] MIPS: PS2: GS: Read " Fredrik Noring
2019-09-01 16:18 ` [PATCH 079/120] MIPS: PS2: GS: Define privileged register structures Fredrik Noring
2019-09-01 16:19 ` [PATCH 080/120] MIPS: PS2: GS: Define gs_xorq_imr() Fredrik Noring
2019-09-01 16:20 ` [PATCH 081/120] MIPS: PS2: GS: Privileged register write macros with named fields Fredrik Noring
2019-09-01 16:20 ` [PATCH 082/120] MIPS: PS2: GS: IRQ support Fredrik Noring
2019-09-01 16:21 ` [PATCH 083/120] MIPS: PS2: GS: Define Graphics Synthesizer primitive structures Fredrik Noring
2019-09-01 16:21 ` [PATCH 084/120] MIPS: PS2: GIF: Define Graphics Synthesizer interface structures Fredrik Noring
2019-09-01 16:22 ` [PATCH 085/120] MIPS: PS2: GIF: Graphics Synthesizer interface support Fredrik Noring
2019-09-01 16:22 ` [PATCH 086/120] MIPS: PS2: GS: Graphics Synthesizer device init and video clock Fredrik Noring
2019-09-01 16:23 ` [PATCH 087/120] MIPS: PS2: GS: Compute block count and indices Fredrik Noring
2019-09-01 16:23 ` [PATCH 088/120] MIPS: PS2: GS: Primitive and texel coordinate transformations Fredrik Noring
2019-09-01 16:23 ` [PATCH 089/120] MIPS: PS2: GS: Approximate video region with ROM region Fredrik Noring
2019-09-01 16:24 ` [PATCH 090/120] macro: Extend COUNT_ARGS() from 12 to 32 arguments Fredrik Noring
2019-09-01 16:25 ` [PATCH 091/120] MIPS: PS2: GS: Show privileged registers with sysfs Fredrik Noring
2019-09-01 16:25 ` [PATCH 092/120] MIPS: PS2: GS: Store " Fredrik Noring
2019-09-01 16:25 ` [PATCH 093/120] fbdev: Add fb_warn_once() variant that only prints a warning once Fredrik Noring
2019-09-01 23:12   ` Philippe Mathieu-Daudé
2019-09-01 16:26 ` [PATCH 094/120] MIPS: PS2: FB: Frame buffer driver for the PlayStation 2 Fredrik Noring
2019-09-02  1:12   ` Jiaxun Yang
2019-09-02 14:40     ` Fredrik Noring
2019-09-02 17:47       ` Aaro Koskinen
2019-09-03 14:32         ` Fredrik Noring
2019-09-03  4:01       ` Jiaxun Yang
2019-09-03 17:42         ` Fredrik Noring
2019-09-03 17:59           ` Maciej W. Rozycki
2019-09-03 18:46             ` Fredrik Noring
2020-12-13 13:20     ` Fredrik Noring
2022-01-29 11:23   ` Fredrik Noring
2022-01-29 11:23     ` Fredrik Noring
2019-09-01 16:30 ` [PATCH 095/120] MIPS: PS2: FB: fb_set_par() standard-definition television support Fredrik Noring
2019-09-01 16:30 ` [PATCH 096/120] MIPS: PS2: FB: fb_set_par() high-definition " Fredrik Noring
2019-09-01 16:31 ` [PATCH 097/120] MIPS: PS2: FB: fb_set_par() VESA computer display mode support Fredrik Noring
2019-09-01 16:31 ` [PATCH 098/120] MIPS: PS2: FB: Preconfigure standard PAL, NTSC and VESA display modes Fredrik Noring
2019-09-01 16:31 ` [PATCH 099/120] MIPS: PS2: FB: Reset the Graphics Synthesizer drawing environment Fredrik Noring
2019-09-01 16:32 ` [PATCH 100/120] MIPS: PS2: FB: Clear the display buffer when changing video modes Fredrik Noring
2019-09-01 16:32 ` [PATCH 101/120] MIPS: PS2: FB: fb_setcolreg() 256 colour pseudo palette support Fredrik Noring
2019-09-01 16:32 ` [PATCH 102/120] MIPS: PS2: FB: fb_settile() with font stored as palette indexed textures Fredrik Noring
2019-09-01 16:32 ` [PATCH 103/120] MIPS: PS2: FB: Hardware accelerated fb_tilecopy() support Fredrik Noring
2019-09-01 16:33 ` [PATCH 104/120] MIPS: PS2: FB: Hardware accelerated fb_tilefill() support Fredrik Noring
2019-09-01 16:33 ` [PATCH 105/120] MIPS: PS2: FB: Simplified fb_tileblit() support Fredrik Noring
2019-09-01 16:33 ` [PATCH 106/120] MIPS: PS2: FB: fb_tilecursor() placeholder Fredrik Noring
2019-09-01 16:33 ` [PATCH 107/120] MIPS: PS2: FB: Hardware accelerated fb_pan_display() support Fredrik Noring
2019-09-01 16:34 ` [PATCH 108/120] MIPS: PS2: FB: fb_blank() display power management signaling (DPMS) Fredrik Noring
2019-09-01 16:34 ` [PATCH 109/120] MIPS: PS2: FB: Disable GIF DMA completion interrupts Fredrik Noring
2019-09-01 16:34 ` [PATCH 110/120] MIPS: PS2: FB: PAL and NTSC grayscale support Fredrik Noring
2019-09-01 16:34 ` [PATCH 111/120] MIPS: PS2: FB: Analogue display mode adjustment module parameter Fredrik Noring
2019-09-01 16:35 ` [PATCH 112/120] USB: OHCI: Support for the PlayStation 2 Fredrik Noring
2019-09-01 16:35 ` [PATCH 113/120] USB: OHCI: OHCI_INTR_MIE workaround for freeze on " Fredrik Noring
2019-09-01 16:35 ` [PATCH 114/120] MIPS: PS2: Workaround for unexpected uLaunchELF CP0 Status user mode Fredrik Noring
2019-09-01 16:35 ` [PATCH 115/120] MIPS: PS2: Define initial PlayStation 2 devices Fredrik Noring
2019-09-01 16:35 ` [PATCH 116/120] MIPS: PS2: Define workarounds related to the PlayStation 2 Fredrik Noring
2019-09-01 16:36 ` [PATCH 117/120] MIPS: PS2: Define R5900 feature overrides Fredrik Noring
2019-09-01 16:36 ` [PATCH 118/120] MIPS: PS2: Define the PlayStation 2 platform Fredrik Noring
2019-09-01 16:36 ` [PATCH 119/120] MIPS: PS2: Initial support for the Sony PlayStation 2 Fredrik Noring
2019-09-01 16:37 ` [PATCH 120/120] MIPS: Fix name of BOOT_MEM_ROM_DATA Fredrik Noring
2019-09-01 23:15   ` Philippe Mathieu-Daudé
2019-09-02  1:02   ` Jiaxun Yang
2019-09-02 15:26     ` Fredrik Noring
2019-09-03  3:50       ` Jiaxun Yang
2019-09-03 16:06         ` Fredrik Noring
2019-09-04 14:19 ` [PATCH 000/120] Linux for the PlayStation 2 Paul Burton
2019-09-05 18:32   ` Fredrik Noring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51240db505d6c5acf84b80f044ce5393dfa907fd.1567326213.git.noring@nocrew.org \
    --to=noring@nocrew.org \
    --cc=linux-mips@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.