From: aoyama Date: Wed, 15 Feb 2023 12:43:32 +0000 (+0000) Subject: Now Puffy comes on luna88k bootloader! X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=684cac8db8ccc6cef5c286bbf265a3504cda0680;p=openbsd Now Puffy comes on luna88k bootloader! "Of course!" miod@ --- diff --git a/sys/arch/luna88k/stand/boot/Makefile b/sys/arch/luna88k/stand/boot/Makefile index 032d9ce407b..fc5d118b38c 100644 --- a/sys/arch/luna88k/stand/boot/Makefile +++ b/sys/arch/luna88k/stand/boot/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.15 2023/01/13 15:49:26 deraadt Exp $ +# $OpenBSD: Makefile,v 1.16 2023/02/15 12:43:32 aoyama Exp $ # $NetBSD: Makefile,v 1.9 2013/01/22 15:48:40 tsutsui Exp $ # @(#)Makefile 8.2 (Berkeley) 8/15/93 @@ -35,6 +35,7 @@ SRCS+= sio.c SRCS+= bmc.c bmd.c font.c kbd.c SRCS+= sc.c sd.c SRCS+= ufs_disksubr.c +SRCS+= logo.c # netboot support SRCS+= if_le.c lance.c getsecs.c diff --git a/sys/arch/luna88k/stand/boot/bmc.c b/sys/arch/luna88k/stand/boot/bmc.c index 51ab37c466e..8aaa4883bef 100644 --- a/sys/arch/luna88k/stand/boot/bmc.c +++ b/sys/arch/luna88k/stand/boot/bmc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bmc.c,v 1.2 2023/01/10 17:10:57 miod Exp $ */ +/* $OpenBSD: bmc.c,v 1.3 2023/02/15 12:43:32 aoyama Exp $ */ /* $NetBSD: bmc.c,v 1.4 2013/01/21 11:58:12 tsutsui Exp $ */ /* @@ -110,6 +110,7 @@ bmccninit(struct consdev *cp) { sioinit(); bmdinit(); + draw_logo(); } int diff --git a/sys/arch/luna88k/stand/boot/bmd.c b/sys/arch/luna88k/stand/boot/bmd.c index 4cb70ded0b7..d336c619f7b 100644 --- a/sys/arch/luna88k/stand/boot/bmd.c +++ b/sys/arch/luna88k/stand/boot/bmd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bmd.c,v 1.5 2021/03/11 11:16:58 jsg Exp $ */ +/* $OpenBSD: bmd.c,v 1.6 2023/02/15 12:43:32 aoyama Exp $ */ /* $NetBSD: bmd.c,v 1.2 2013/01/20 13:35:43 tsutsui Exp $ */ /* @@ -299,8 +299,8 @@ bmdinit(void) bp->bc_stat = STAT_NORMAL; - bp->bc_xmin = 8; - bp->bc_xmax = 96; + bp->bc_xmin = 12; + bp->bc_xmax = 92; bp->bc_ymin = 2; bp->bc_ymax = 48; diff --git a/sys/arch/luna88k/stand/boot/logo.c b/sys/arch/luna88k/stand/boot/logo.c new file mode 100644 index 00000000000..08319821c0a --- /dev/null +++ b/sys/arch/luna88k/stand/boot/logo.c @@ -0,0 +1,178 @@ +/* $OpenBSD: logo.c,v 1.1 2023/02/15 12:43:32 aoyama Exp $ */ + +/* + * Copyright (c) 2023 Kenji Aoyama + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +#define LUNAFB_OFFSET 2 /* LUNA's fb has 2 words (64 pixels) offset */ +#define WORDS_PER_LINE 64 +#define LOGO_XSIZE 4 /* in word, i.e. 4 x 32 = 128 pixels */ +#define LOGO_YSIZE 128 +#define LOGO_XOFFSET 0 /* in word */ +#define LOGO_YOFFSET 40 + +u_int32_t pattern[LOGO_YSIZE][LOGO_XSIZE]; + +void +draw_logo(void) +{ + int i, j; + u_int32_t *p = (u_int32_t *)(BMAP_BMP) + LUNAFB_OFFSET + + LOGO_XOFFSET + LOGO_YOFFSET * WORDS_PER_LINE; + u_int32_t *q; + + for(i = 0; i < LOGO_YSIZE; i++) { + q = p; + for (j = 0; j < LOGO_XSIZE; j++) { + *p++ = pattern[i][j]; + } + p = q + WORDS_PER_LINE; + } +} + +/* OpenBSD Puffy 128x128, displayed in black on while */ +u_int32_t pattern[LOGO_YSIZE][LOGO_XSIZE] = { + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 0 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 1 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 2 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 3 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 4 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 5 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 6 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 7 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 8 */ + { 0x00000000, 0x00000000, 0x00400000, 0x00000000, }, /* 9 */ + { 0x00000000, 0x00000000, 0x00c00000, 0x00000000, }, /* 10 */ + { 0x00000000, 0x00000000, 0x00c00000, 0x00000000, }, /* 11 */ + { 0x00000000, 0x00000000, 0x00c00000, 0x00000000, }, /* 12 */ + { 0x00000000, 0x00000002, 0x00c00000, 0x00000000, }, /* 13 */ + { 0x00000000, 0x00002003, 0x00c00000, 0x00000000, }, /* 14 */ + { 0x00000000, 0x00003003, 0x00c02000, 0x00000000, }, /* 15 */ + { 0x00000000, 0x00003803, 0x11e23000, 0x00000000, }, /* 16 */ + { 0x00000000, 0x00001823, 0x99a27001, 0x00000000, }, /* 17 */ + { 0x00000000, 0x000c1c33, 0x99267001, 0x00000000, }, /* 18 */ + { 0x00000000, 0x000e1e32, 0xdf3e7103, 0x00000000, }, /* 19 */ + { 0x00000000, 0x000e0b3a, 0x7e1ff103, 0x00000000, }, /* 20 */ + { 0x00000000, 0x000709fe, 0x7001f106, 0x00000000, }, /* 21 */ + { 0x00000000, 0x0005087e, 0x6000db0e, 0x00000000, }, /* 22 */ + { 0x00000000, 0x00079802, 0x60009f9a, 0x00000000, }, /* 23 */ + { 0x00000000, 0x0002f802, 0x200093f2, 0x00000000, }, /* 24 */ + { 0x00000000, 0x20227002, 0x200110e2, 0x20000000, }, /* 25 */ + { 0x00000000, 0x30336002, 0x11011002, 0xe0000000, }, /* 26 */ + { 0x00000000, 0x181b2080, 0x11021007, 0xd8000000, }, /* 27 */ + { 0x00000000, 0x0c1f10c0, 0x01801001, 0x98000000, }, /* 28 */ + { 0x00000000, 0x0f1d88c0, 0x01801080, 0xf0000000, }, /* 29 */ + { 0x00000000, 0x07f880e0, 0x03801080, 0x70000000, }, /* 30 */ + { 0x0000000e, 0x02608060, 0x02800180, 0xb1018000, }, /* 31 */ + { 0x00000007, 0x83008070, 0x02400301, 0x3f038000, }, /* 32 */ + { 0x00000006, 0xc3008050, 0x02400302, 0x2e0f0000, }, /* 33 */ + { 0x00000003, 0x33000048, 0x02400504, 0x667e0000, }, /* 34 */ + { 0x00000001, 0x9e00004c, 0x00000900, 0x43ec0000, }, /* 35 */ + { 0x00000000, 0xc60c0040, 0x00001100, 0x41880000, }, /* 36 */ + { 0x00000002, 0x63860040, 0x20040100, 0x40100000, }, /* 37 */ + { 0x00000003, 0xf0e70000, 0x60040100, 0x40300000, }, /* 38 */ + { 0x00000781, 0xf8038000, 0x700a0100, 0x00600000, }, /* 39 */ + { 0x000003c0, 0xf8016000, 0x50120000, 0x00600000, }, /* 40 */ + { 0x000001ff, 0xfc000180, 0x10000000, 0x007e0000, }, /* 41 */ + { 0x000000c7, 0x060000c0, 0x00000000, 0x08380000, }, /* 42 */ + { 0x00000060, 0x02000020, 0x000000c0, 0x18380000, }, /* 43 */ + { 0x00000030, 0x00000000, 0x000001c0, 0x78100000, }, /* 44 */ + { 0x00000018, 0x00000000, 0x00000000, 0x8c180000, }, /* 45 */ + { 0x000000f8, 0x00040001, 0x00020081, 0x041c0000, }, /* 46 */ + { 0x00000038, 0x00030000, 0x00000002, 0x021e0000, }, /* 47 */ + { 0x00000008, 0x38018000, 0x00000004, 0x030b0000, }, /* 48 */ + { 0x00000008, 0x1f01e000, 0x0000000c, 0x01098000, }, /* 49 */ + { 0x00000e18, 0x07f08000, 0x00000008, 0x00888000, }, /* 50 */ + { 0x00000f90, 0x03008000, 0x0000000b, 0xff88c000, }, /* 51 */ + { 0x00000e78, 0x01000000, 0x0000001e, 0x01cfc000, }, /* 52 */ + { 0x00000387, 0x80800000, 0x0000001c, 0x0089e000, }, /* 53 */ + { 0x000001c0, 0x00800000, 0x00000004, 0x0c8cc000, }, /* 54 */ + { 0x00000060, 0x00400000, 0x00000004, 0x1e8ec000, }, /* 55 */ + { 0x00000078, 0x00000000, 0x00000006, 0x0c8ec000, }, /* 56 */ + { 0x07f00e78, 0x00000000, 0x0000000f, 0x008cc000, }, /* 57 */ + { 0x1e1c03fc, 0x18080000, 0x00000001, 0xc08ce000, }, /* 58 */ + { 0x3c0600e2, 0x30e00000, 0x00000000, 0x718ce000, }, /* 59 */ + { 0xfc018040, 0x60600000, 0x00000000, 0x190d3000, }, /* 60 */ + { 0x0700c040, 0x08000000, 0x00000000, 0x0f0f1800, }, /* 61 */ + { 0x030060c0, 0x00000000, 0x00000000, 0x060f0800, }, /* 62 */ + { 0x018030c0, 0x00000000, 0x00000000, 0x0619cc00, }, /* 63 */ + { 0x01c01fc1, 0x00000000, 0x00000000, 0x06206c00, }, /* 64 */ + { 0x00c00646, 0x00000080, 0x00000000, 0x06002600, }, /* 65 */ + { 0x0060005c, 0x00000000, 0x00000008, 0x06402600, }, /* 66 */ + { 0x0030001b, 0x8100c000, 0x00000004, 0x06802600, }, /* 67 */ + { 0x00180000, 0xc2000000, 0x00040000, 0x07002200, }, /* 68 */ + { 0x00180000, 0x02000000, 0x00000000, 0x06086300, }, /* 69 */ + { 0x000c0000, 0x04000000, 0x00000000, 0x06784300, }, /* 70 */ + { 0x000c0000, 0x080000f8, 0x40000000, 0x0ff8c3c0, }, /* 71 */ + { 0x00060000, 0x11e40387, 0xc0000000, 0x0e0fc3c0, }, /* 72 */ + { 0x00020004, 0x3f080700, 0x00000000, 0x1e04c260, }, /* 73 */ + { 0x00030020, 0x60080600, 0x10000000, 0x16044220, }, /* 74 */ + { 0x0001c038, 0x001e0c00, 0x30000000, 0x22004610, }, /* 75 */ + { 0x00018038, 0x00000800, 0xc0000180, 0x62004618, }, /* 76 */ + { 0x0001803e, 0x10001801, 0x00000080, 0xc100440f, }, /* 77 */ + { 0x0000c070, 0x20081002, 0x00000000, 0x81004c07, }, /* 78 */ + { 0x0000c0d0, 0x60082002, 0x00004001, 0x01004f1e, }, /* 79 */ + { 0x0000c098, 0x4010c004, 0x4001c000, 0x0180dffc, }, /* 80 */ + { 0x00006088, 0xc8318018, 0x00008000, 0x01c1b1f0, }, /* 81 */ + { 0x0000610d, 0xf020e030, 0x01000000, 0x01e76000, }, /* 82 */ + { 0x0000630d, 0xe0703fe0, 0x02000000, 0x033c4000, }, /* 83 */ + { 0x0000670f, 0xc0e007c0, 0x02000440, 0x42008000, }, /* 84 */ + { 0x00007e0f, 0x81800000, 0x00000140, 0x40030000, }, /* 85 */ + { 0x0000f81f, 0x00000020, 0x80000080, 0x20260000, }, /* 86 */ + { 0x0001e039, 0x004000c0, 0x800400c1, 0x202e0000, }, /* 87 */ + { 0x00000020, 0x80400080, 0x00040060, 0xd03f0000, }, /* 88 */ + { 0x00000040, 0xc0c04400, 0x600c0000, 0x711b8000, }, /* 89 */ + { 0x00000000, 0xe0804800, 0x600c0000, 0x38d88000, }, /* 90 */ + { 0x00000001, 0xf0805000, 0x00000200, 0x18f80000, }, /* 91 */ + { 0x00000001, 0xf9866000, 0x00002200, 0x00dc0000, }, /* 92 */ + { 0x00000001, 0xfd8c6008, 0x00001200, 0x00c00000, }, /* 93 */ + { 0x00000003, 0xc7184008, 0x81001a00, 0x81c00000, }, /* 94 */ + { 0x00000003, 0x83300809, 0x81100800, 0x83c00000, }, /* 95 */ + { 0x00000007, 0x02600805, 0x00900420, 0x07e00000, }, /* 96 */ + { 0x00000006, 0x02600805, 0x00900318, 0x4ff00000, }, /* 97 */ + { 0x0000000c, 0x02b80826, 0x00d00304, 0x5cf80000, }, /* 98 */ + { 0x00000008, 0x071c0846, 0x00541106, 0x303c0000, }, /* 99 */ + { 0x00000000, 0x06060c46, 0x41621103, 0xb00c0000, }, /* 100 */ + { 0x00000000, 0x06078c80, 0x41231003, 0xd0000000, }, /* 101 */ + { 0x00000000, 0x0407fc80, 0x23211003, 0xd0000000, }, /* 102 */ + { 0x00000000, 0x0007f900, 0x2321900c, 0x28000000, }, /* 103 */ + { 0x00000000, 0x00078980, 0x32009038, 0x1c000000, }, /* 104 */ + { 0x00000000, 0x00070be0, 0x3200d1f0, 0x1c000000, }, /* 105 */ + { 0x00000000, 0x00070a3e, 0x3200cff0, 0x0e000000, }, /* 106 */ + { 0x00000000, 0x00060e1f, 0xfa01cff0, 0x00000000, }, /* 107 */ + { 0x00000000, 0x000e0e1f, 0xffffe8f0, 0x00000000, }, /* 108 */ + { 0x00000000, 0x000c0c0f, 0x9e7e2878, 0x00000000, }, /* 109 */ + { 0x00000000, 0x000c000f, 0x0c7c2838, 0x00000000, }, /* 110 */ + { 0x00000000, 0x0000000f, 0x0c3c3818, 0x00000000, }, /* 111 */ + { 0x00000000, 0x0000000e, 0x0c3c180c, 0x00000000, }, /* 112 */ + { 0x00000000, 0x0000000e, 0x0c1c1804, 0x00000000, }, /* 113 */ + { 0x00000000, 0x0000000c, 0x081c0800, 0x00000000, }, /* 114 */ + { 0x00000000, 0x0000000c, 0x00180000, 0x00000000, }, /* 115 */ + { 0x00000000, 0x0000000c, 0x00080000, 0x00000000, }, /* 116 */ + { 0x00000000, 0x00000000, 0x00080000, 0x00000000, }, /* 117 */ + { 0x00000000, 0x00000000, 0x00080000, 0x00000000, }, /* 118 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 119 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 120 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 121 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 122 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 123 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 124 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 125 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 126 */ + { 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 127 */ +}; diff --git a/sys/arch/luna88k/stand/boot/samachdep.h b/sys/arch/luna88k/stand/boot/samachdep.h index 6295c0b8569..3d180cd091d 100644 --- a/sys/arch/luna88k/stand/boot/samachdep.h +++ b/sys/arch/luna88k/stand/boot/samachdep.h @@ -1,4 +1,4 @@ -/* $OpenBSD: samachdep.h,v 1.6 2023/01/10 17:10:57 miod Exp $ */ +/* $OpenBSD: samachdep.h,v 1.7 2023/02/15 12:43:32 aoyama Exp $ */ /* $NetBSD: samachdep.h,v 1.10 2013/03/05 15:34:53 tsutsui Exp $ */ /* @@ -101,6 +101,9 @@ extern volatile uint32_t tick; int setjmp(label_t *); void delay(int); +/* logo.c */ +void draw_logo(void); + /* sc.c */ struct scsi_softc; int scinit(struct scsi_softc *, uint);