Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 97f3f68c authored by Finn Thain's avatar Finn Thain Committed by Geert Uytterhoeven
Browse files

m68k: Toward platform agnostic framebuffer debug logging



Code subject to #ifdef CONSOLE is made more generic, as was apparently
intended by the original author.

Remove console_put_stats() routine. If it should be somehow useful, it
should also be useful on platforms without framebuffer debug logging. The
present implementation is only built #if defined CONFIG_MAC && defined
CONSOLE even though puts() works everywhere.

Signed-off-by: default avatarFinn Thain <fthain@telegraphics.com.au>
Tested-by: default avatarStephen N Chivers <schivers@csc.com.au>
Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
parent a19f8165
Loading
Loading
Loading
Loading
+26 −86
Original line number Diff line number Diff line
@@ -153,7 +153,7 @@
 * ------------
 *	The console is also able to be turned off.  The console in head.S
 * is specifically for debugging and can be very useful.  It is surrounded by
 * #ifdef CONSOLE/#endif clauses so it doesn't have to ship in known-good
 * #ifdef / #endif clauses so it doesn't have to ship in known-good
 * kernels.  It's basic algorithm is to determine the size of the screen
 * (in height/width and bit depth) and then use that information for
 * displaying an 8x8 font or an 8x16 (widthxheight).  I prefer the 8x8 for
@@ -198,9 +198,8 @@
 * CONFIG_xxx:	These are the obvious machine configuration defines created
 * during configuration.  These are defined in autoconf.h.
 *
 * CONSOLE:	There is support for head.S console in this file.  This
 * console can talk to a Mac frame buffer, but could easily be extrapolated
 * to extend it to support other platforms.
 * CONSOLE_DEBUG:  Only supports a Mac frame buffer but could easily be
 * extended to support other platforms.
 *
 * TEST_MMU:	This is a test harness for running on any given machine but
 * getting an MMU dump for another class of machine.  The classes of machines
@@ -274,7 +273,7 @@
#include <asm/machw.h>

#ifdef CONFIG_FRAMEBUFFER_CONSOLE
#define CONSOLE
#define CONSOLE_DEBUG
#endif

#ifdef CONFIG_EARLY_PRINTK
@@ -480,22 +479,21 @@ func_define serial_putc,1
func_define	console_putc,1

func_define	console_init
func_define	console_put_stats
func_define	console_put_penguin
func_define	console_plot_pixel,3
func_define	console_scroll

.macro	putc	ch
#if defined(CONSOLE) || defined(SERIAL_DEBUG)
#if defined(CONSOLE_DEBUG) || defined(SERIAL_DEBUG)
	pea	\ch
#endif
#ifdef CONSOLE
#ifdef CONSOLE_DEBUG
	func_call	console_putc
#endif
#ifdef SERIAL_DEBUG
	func_call	serial_putc
#endif
#if defined(CONSOLE) || defined(SERIAL_DEBUG)
#if defined(CONSOLE_DEBUG) || defined(SERIAL_DEBUG)
	addql	#4,%sp
#endif
.endm
@@ -515,7 +513,7 @@ func_define putn,1
.endm

.macro	puts		string
#if defined(CONSOLE) || defined(SERIAL_DEBUG)
#if defined(CONSOLE_DEBUG) || defined(SERIAL_DEBUG)
	__INITDATA
.Lstr\@:
	.string	"\string"
@@ -651,11 +649,9 @@ ENTRY(__start)
	lea	%pc@(L(mac_rowbytes)),%a1
	movel	%a0@,%a1@

#ifdef SERIAL_DEBUG
	get_bi_record	BI_MAC_SCCBASE
	lea	%pc@(L(mac_sccbase)),%a1
	movel	%a0@,%a1@
#endif

L(test_notmac):
#endif /* CONFIG_MAC */
@@ -885,13 +881,12 @@ L(nothp):
 */
#ifdef CONFIG_MAC
	is_not_mac(L(nocon))
#  ifdef CONSOLE
#  ifdef CONSOLE_DEBUG
	console_init
#    ifdef CONFIG_LOGO
	console_put_penguin
#    endif /* CONFIG_LOGO */
	console_put_stats
#  endif /* CONSOLE */
#  endif /* CONSOLE_DEBUG */
L(nocon):
#endif /* CONFIG_MAC */

@@ -1396,15 +1391,13 @@ L(mmu_fixup_done):
	andl	L(mac_videobase),%d0
	addl	#VIDEOMEMBASE,%d0
	movel	%d0,L(mac_videobase)
#if defined(CONSOLE)
#ifdef CONSOLE_DEBUG
	movel	%pc@(L(phys_kernel_start)),%d0
	subl	#PAGE_OFFSET,%d0
	subl	%d0,L(console_font)
	subl	%d0,L(console_font_data)
#endif
#ifdef SERIAL_DEBUG
	orl	#0x50000000,L(mac_sccbase)
#endif
1:
#endif

@@ -2734,7 +2727,11 @@ func_return get_new_page
 */

#ifdef CONFIG_MAC
/* You may define either or both of these. */
#define MAC_USE_SCC_A /* Modem port */
#define MAC_USE_SCC_B /* Printer port */

#if defined(MAC_USE_SCC_A) || defined(MAC_USE_SCC_B)
L(scc_initable_mac):
	.byte	4,0x44		/* x16, 1 stopbit, no parity */
	.byte	3,0xc0		/* receiver: 8 bpc */
@@ -2748,6 +2745,7 @@ L(scc_initable_mac):
	.byte	-1
	.even
#endif
#endif /* CONFIG_MAC */

#ifdef CONFIG_ATARI
/* #define USE_PRINTER */
@@ -2843,6 +2841,7 @@ func_start serial_init,%d0/%d1/%a0/%a1
|	movew	#61,CUSTOMBASE+C_SERPER-ZTWOBASE
1:
#endif

#ifdef CONFIG_ATARI
	is_not_atari(4f)
	movel	%pc@(L(iobase)),%a1
@@ -2877,21 +2876,14 @@ func_start serial_init,%d0/%d1/%a0/%a1
	jra	L(serial_init_done)
4:
#endif

#ifdef CONFIG_MAC
	is_not_mac(L(serial_init_not_mac))

#ifdef SERIAL_DEBUG

/* You may define either or both of these. */
#define MAC_USE_SCC_A /* Modem port */
#define MAC_USE_SCC_B /* Printer port */

#if defined(MAC_USE_SCC_A) || defined(MAC_USE_SCC_B)
#define mac_scc_cha_b_ctrl_offset	0x0
#define mac_scc_cha_a_ctrl_offset	0x2
#define mac_scc_cha_b_data_offset	0x4
#define mac_scc_cha_a_data_offset	0x6

#if defined(MAC_USE_SCC_A) || defined(MAC_USE_SCC_B)
	movel	%pc@(L(mac_sccbase)),%a0
	/* Reset SCC register pointer */
	moveb	%a0@(mac_scc_cha_a_ctrl_offset),%d0
@@ -2905,7 +2897,6 @@ func_start serial_init,%d0/%d1/%a0/%a1
	subq	#1,%d0
	jne	5b
#endif

#ifdef MAC_USE_SCC_A
	/* Initialize channel A */
	lea	%pc@(L(scc_initable_mac)),%a1
@@ -2916,7 +2907,6 @@ func_start serial_init,%d0/%d1/%a0/%a1
	jra	5b
6:
#endif	/* MAC_USE_SCC_A */

#ifdef MAC_USE_SCC_B
	/* Initialize channel B */
	lea	%pc@(L(scc_initable_mac)),%a1
@@ -2927,9 +2917,6 @@ func_start serial_init,%d0/%d1/%a0/%a1
	jra	7b
8:
#endif	/* MAC_USE_SCC_B */

#endif	/* SERIAL_DEBUG */

	jra	L(serial_init_done)
L(serial_init_not_mac):
#endif	/* CONFIG_MAC */
@@ -2998,27 +2985,19 @@ func_start serial_putc,%d0/%d1/%a0/%a1

#ifdef CONFIG_MAC
	is_not_mac(5f)

#ifdef SERIAL_DEBUG

#if defined(MAC_USE_SCC_A) || defined(MAC_USE_SCC_B)
	movel	%pc@(L(mac_sccbase)),%a1
#endif

#ifdef MAC_USE_SCC_A
3:	btst	#2,%a1@(mac_scc_cha_a_ctrl_offset)
	jeq	3b
	moveb	%d0,%a1@(mac_scc_cha_a_data_offset)
#endif	/* MAC_USE_SCC_A */

#ifdef MAC_USE_SCC_B
4:	btst	#2,%a1@(mac_scc_cha_b_ctrl_offset)
	jeq	4b
	moveb	%d0,%a1@(mac_scc_cha_b_data_offset)
#endif	/* MAC_USE_SCC_B */

#endif	/* SERIAL_DEBUG */

	jra	L(serial_putc_done)
5:
#endif	/* CONFIG_MAC */
@@ -3195,7 +3174,7 @@ func_start puts,%d0/%a0
	movel	ARG1,%a0
	jra	2f
1:
#ifdef CONSOLE
#ifdef CONSOLE_DEBUG
	console_putc	%d0
#endif
#ifdef SERIAL_DEBUG
@@ -3224,7 +3203,7 @@ func_start putn,%d0-%d2
	jls	2f
	addb	#'A'-('9'+1),%d2
2:
#ifdef CONSOLE
#ifdef CONSOLE_DEBUG
	console_putc	%d2
#endif
#ifdef SERIAL_DEBUG
@@ -3256,7 +3235,7 @@ ENTRY(mac_early_print)
	movel	%sp@(22),%d1		/* fetch parameter */
	jra	2f
1:
#ifdef CONSOLE
#ifdef CONSOLE_DEBUG
	console_putc	%d0
#endif
#ifdef SERIAL_DEBUG
@@ -3292,7 +3271,7 @@ func_start set_leds,%d0/%a0
func_return	set_leds
#endif

#ifdef CONSOLE
#ifdef CONSOLE_DEBUG
/*
 *	For continuity, see the data alignment
 *	to which this structure is tied.
@@ -3396,43 +3375,6 @@ L(console_clear_loop):
1:
func_return	console_init

func_start	console_put_stats,%a0/%d7
	/*
	 *	Some of the register usage that follows
	 *		a0 = pointer to boot_info
	 *		d7 = value of boot_info fields
	 */
	puts	"\nMacLinux\n"

#ifdef SERIAL_DEBUG
	puts	"\n vidaddr:"
	putn	%pc@(L(mac_videobase))		/* video addr. */

	puts	"\n  _stext:"
	lea	%pc@(_stext),%a0
	putn	%a0

	puts	"\nbootinfo:"
	lea	%pc@(_end),%a0
	putn	%a0

	puts	"\n   cpuid:"
	putn	%pc@(L(cputype))

#  ifdef CONFIG_MAC
	puts	"\n sccbase:"
	putn	%pc@(L(mac_sccbase))
#  endif
#  ifdef MMU_PRINT
	putc	'\n'
	jbsr	mmu_print_machine_cpu_types
#  endif
#endif /* SERIAL_DEBUG */

	putc	'\n'

func_return	console_put_stats

#ifdef CONFIG_LOGO
func_start	console_put_penguin,%a0-%a1/%d0-%d7
	/*
@@ -3774,7 +3716,7 @@ L(white_16):

L(console_plot_pixel_exit):
func_return	console_plot_pixel
#endif /* CONSOLE */
#endif /* CONSOLE_DEBUG */


__INITDATA
@@ -3787,7 +3729,7 @@ L(iobase):
	.long 0
#endif

#if defined(CONSOLE)
#ifdef CONSOLE_DEBUG
L(console_globals):
	.long	0		/* cursor column */
	.long	0		/* cursor row */
@@ -3798,7 +3740,7 @@ L(console_font):
	.long	0		/* pointer to console font (struct font_desc) */
L(console_font_data):
	.long	0		/* pointer to console font data */
#endif /* CONSOLE */
#endif /* CONSOLE_DEBUG */

#if defined(MMU_PRINT)
L(mmu_print_data):
@@ -3856,10 +3798,8 @@ L(mac_dimensions):
	.long	0
L(mac_rowbytes):
	.long	0
#ifdef SERIAL_DEBUG
L(mac_sccbase):
	.long	0
#endif
#endif /* CONFIG_MAC */

#if defined (CONFIG_APOLLO)