diff --git a/board/gdsys/common/osd.c b/board/gdsys/common/osd.c
index 6e4edaebb371a2d39b00e716bfe9a4fee3aa0e89..5065f9d5e40a3ad729e88c5be2d1ec14036f0464 100644
--- a/board/gdsys/common/osd.c
+++ b/board/gdsys/common/osd.c
@@ -376,6 +376,8 @@ int osd_probe(unsigned screen)
 	out_le16(&osd->control, 0x0049);
 
 	out_le16(&osd->xy_size, ((32 - 1) << 8) | (16 - 1));
+	out_le16(&osd->x_pos, 0x007f);
+	out_le16(&osd->y_pos, 0x005f);
 
 	return 0;
 }
diff --git a/include/gdsys_fpga.h b/include/gdsys_fpga.h
index eaf6daafb9b653cb61f0a7e00c4df22830c691a5..b02e28c8ee49ccc031c0defc1e0e2f07c0428b65 100644
--- a/include/gdsys_fpga.h
+++ b/include/gdsys_fpga.h
@@ -50,6 +50,9 @@ typedef struct ihs_osd {
 	u16 features;
 	u16 control;
 	u16 xy_size;
+	u16 xy_scale;
+	u16 x_pos;
+	u16 y_pos;
 } ihs_osd_t;
 
 #ifdef CONFIG_IO
@@ -79,7 +82,7 @@ typedef struct ihs_fpga {
 	u16 reserved_2[93];	/* 0x0044 */
 	u16 reflection_high;	/* 0x00fe */
 	ihs_osd_t osd;		/* 0x0100 */
-	u16 reserved_3[892];	/* 0x0108 */
+	u16 reserved_3[88];	/* 0x010e */
 	u16 videomem;		/* 0x0800 */
 } ihs_fpga_t;
 #endif
@@ -98,7 +101,7 @@ typedef struct ihs_fpga {
 	u16 videocontrol;	/* 0x009e */
 	u16 reserved_3[176];	/* 0x00a0 */
 	ihs_osd_t osd;		/* 0x0200 */
-	u16 reserved_4[764];	/* 0x0208 */
+	u16 reserved_4[761];	/* 0x020e */
 	u16 videomem;		/* 0x0800 */
 } ihs_fpga_t;
 #endif