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: Finn Thain <fthain@telegraphics.com.au>
Tested-by: Stephen N Chivers <schivers@csc.com.au>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
This commit is contained in:
Finn Thain 2014-04-11 15:27:58 +10:00 committed by Geert Uytterhoeven
parent a19f8165dc
commit 97f3f68c21

View file

@ -153,7 +153,7 @@
* ------------ * ------------
* The console is also able to be turned off. The console in head.S * 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 * 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 * 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 * (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 * 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 * CONFIG_xxx: These are the obvious machine configuration defines created
* during configuration. These are defined in autoconf.h. * during configuration. These are defined in autoconf.h.
* *
* CONSOLE: There is support for head.S console in this file. This * CONSOLE_DEBUG: Only supports a Mac frame buffer but could easily be
* console can talk to a Mac frame buffer, but could easily be extrapolated * extended to support other platforms.
* to extend it to support other platforms.
* *
* TEST_MMU: This is a test harness for running on any given machine but * 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 * getting an MMU dump for another class of machine. The classes of machines
@ -274,7 +273,7 @@
#include <asm/machw.h> #include <asm/machw.h>
#ifdef CONFIG_FRAMEBUFFER_CONSOLE #ifdef CONFIG_FRAMEBUFFER_CONSOLE
#define CONSOLE #define CONSOLE_DEBUG
#endif #endif
#ifdef CONFIG_EARLY_PRINTK #ifdef CONFIG_EARLY_PRINTK
@ -480,22 +479,21 @@ func_define serial_putc,1
func_define console_putc,1 func_define console_putc,1
func_define console_init func_define console_init
func_define console_put_stats
func_define console_put_penguin func_define console_put_penguin
func_define console_plot_pixel,3 func_define console_plot_pixel,3
func_define console_scroll func_define console_scroll
.macro putc ch .macro putc ch
#if defined(CONSOLE) || defined(SERIAL_DEBUG) #if defined(CONSOLE_DEBUG) || defined(SERIAL_DEBUG)
pea \ch pea \ch
#endif #endif
#ifdef CONSOLE #ifdef CONSOLE_DEBUG
func_call console_putc func_call console_putc
#endif #endif
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
func_call serial_putc func_call serial_putc
#endif #endif
#if defined(CONSOLE) || defined(SERIAL_DEBUG) #if defined(CONSOLE_DEBUG) || defined(SERIAL_DEBUG)
addql #4,%sp addql #4,%sp
#endif #endif
.endm .endm
@ -515,7 +513,7 @@ func_define putn,1
.endm .endm
.macro puts string .macro puts string
#if defined(CONSOLE) || defined(SERIAL_DEBUG) #if defined(CONSOLE_DEBUG) || defined(SERIAL_DEBUG)
__INITDATA __INITDATA
.Lstr\@: .Lstr\@:
.string "\string" .string "\string"
@ -651,11 +649,9 @@ ENTRY(__start)
lea %pc@(L(mac_rowbytes)),%a1 lea %pc@(L(mac_rowbytes)),%a1
movel %a0@,%a1@ movel %a0@,%a1@
#ifdef SERIAL_DEBUG
get_bi_record BI_MAC_SCCBASE get_bi_record BI_MAC_SCCBASE
lea %pc@(L(mac_sccbase)),%a1 lea %pc@(L(mac_sccbase)),%a1
movel %a0@,%a1@ movel %a0@,%a1@
#endif
L(test_notmac): L(test_notmac):
#endif /* CONFIG_MAC */ #endif /* CONFIG_MAC */
@ -885,13 +881,12 @@ L(nothp):
*/ */
#ifdef CONFIG_MAC #ifdef CONFIG_MAC
is_not_mac(L(nocon)) is_not_mac(L(nocon))
# ifdef CONSOLE # ifdef CONSOLE_DEBUG
console_init console_init
# ifdef CONFIG_LOGO # ifdef CONFIG_LOGO
console_put_penguin console_put_penguin
# endif /* CONFIG_LOGO */ # endif /* CONFIG_LOGO */
console_put_stats # endif /* CONSOLE_DEBUG */
# endif /* CONSOLE */
L(nocon): L(nocon):
#endif /* CONFIG_MAC */ #endif /* CONFIG_MAC */
@ -1396,15 +1391,13 @@ L(mmu_fixup_done):
andl L(mac_videobase),%d0 andl L(mac_videobase),%d0
addl #VIDEOMEMBASE,%d0 addl #VIDEOMEMBASE,%d0
movel %d0,L(mac_videobase) movel %d0,L(mac_videobase)
#if defined(CONSOLE) #ifdef CONSOLE_DEBUG
movel %pc@(L(phys_kernel_start)),%d0 movel %pc@(L(phys_kernel_start)),%d0
subl #PAGE_OFFSET,%d0 subl #PAGE_OFFSET,%d0
subl %d0,L(console_font) subl %d0,L(console_font)
subl %d0,L(console_font_data) subl %d0,L(console_font_data)
#endif #endif
#ifdef SERIAL_DEBUG
orl #0x50000000,L(mac_sccbase) orl #0x50000000,L(mac_sccbase)
#endif
1: 1:
#endif #endif
@ -2734,7 +2727,11 @@ func_return get_new_page
*/ */
#ifdef CONFIG_MAC #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): L(scc_initable_mac):
.byte 4,0x44 /* x16, 1 stopbit, no parity */ .byte 4,0x44 /* x16, 1 stopbit, no parity */
.byte 3,0xc0 /* receiver: 8 bpc */ .byte 3,0xc0 /* receiver: 8 bpc */
@ -2748,6 +2745,7 @@ L(scc_initable_mac):
.byte -1 .byte -1
.even .even
#endif #endif
#endif /* CONFIG_MAC */
#ifdef CONFIG_ATARI #ifdef CONFIG_ATARI
/* #define USE_PRINTER */ /* #define USE_PRINTER */
@ -2843,6 +2841,7 @@ func_start serial_init,%d0/%d1/%a0/%a1
| movew #61,CUSTOMBASE+C_SERPER-ZTWOBASE | movew #61,CUSTOMBASE+C_SERPER-ZTWOBASE
1: 1:
#endif #endif
#ifdef CONFIG_ATARI #ifdef CONFIG_ATARI
is_not_atari(4f) is_not_atari(4f)
movel %pc@(L(iobase)),%a1 movel %pc@(L(iobase)),%a1
@ -2877,21 +2876,14 @@ func_start serial_init,%d0/%d1/%a0/%a1
jra L(serial_init_done) jra L(serial_init_done)
4: 4:
#endif #endif
#ifdef CONFIG_MAC #ifdef CONFIG_MAC
is_not_mac(L(serial_init_not_mac)) is_not_mac(L(serial_init_not_mac))
#if defined(MAC_USE_SCC_A) || defined(MAC_USE_SCC_B)
#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 */
#define mac_scc_cha_b_ctrl_offset 0x0 #define mac_scc_cha_b_ctrl_offset 0x0
#define mac_scc_cha_a_ctrl_offset 0x2 #define mac_scc_cha_a_ctrl_offset 0x2
#define mac_scc_cha_b_data_offset 0x4 #define mac_scc_cha_b_data_offset 0x4
#define mac_scc_cha_a_data_offset 0x6 #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 movel %pc@(L(mac_sccbase)),%a0
/* Reset SCC register pointer */ /* Reset SCC register pointer */
moveb %a0@(mac_scc_cha_a_ctrl_offset),%d0 moveb %a0@(mac_scc_cha_a_ctrl_offset),%d0
@ -2905,7 +2897,6 @@ func_start serial_init,%d0/%d1/%a0/%a1
subq #1,%d0 subq #1,%d0
jne 5b jne 5b
#endif #endif
#ifdef MAC_USE_SCC_A #ifdef MAC_USE_SCC_A
/* Initialize channel A */ /* Initialize channel A */
lea %pc@(L(scc_initable_mac)),%a1 lea %pc@(L(scc_initable_mac)),%a1
@ -2916,7 +2907,6 @@ func_start serial_init,%d0/%d1/%a0/%a1
jra 5b jra 5b
6: 6:
#endif /* MAC_USE_SCC_A */ #endif /* MAC_USE_SCC_A */
#ifdef MAC_USE_SCC_B #ifdef MAC_USE_SCC_B
/* Initialize channel B */ /* Initialize channel B */
lea %pc@(L(scc_initable_mac)),%a1 lea %pc@(L(scc_initable_mac)),%a1
@ -2927,9 +2917,6 @@ func_start serial_init,%d0/%d1/%a0/%a1
jra 7b jra 7b
8: 8:
#endif /* MAC_USE_SCC_B */ #endif /* MAC_USE_SCC_B */
#endif /* SERIAL_DEBUG */
jra L(serial_init_done) jra L(serial_init_done)
L(serial_init_not_mac): L(serial_init_not_mac):
#endif /* CONFIG_MAC */ #endif /* CONFIG_MAC */
@ -2998,27 +2985,19 @@ func_start serial_putc,%d0/%d1/%a0/%a1
#ifdef CONFIG_MAC #ifdef CONFIG_MAC
is_not_mac(5f) is_not_mac(5f)
#ifdef SERIAL_DEBUG
#if defined(MAC_USE_SCC_A) || defined(MAC_USE_SCC_B) #if defined(MAC_USE_SCC_A) || defined(MAC_USE_SCC_B)
movel %pc@(L(mac_sccbase)),%a1 movel %pc@(L(mac_sccbase)),%a1
#endif #endif
#ifdef MAC_USE_SCC_A #ifdef MAC_USE_SCC_A
3: btst #2,%a1@(mac_scc_cha_a_ctrl_offset) 3: btst #2,%a1@(mac_scc_cha_a_ctrl_offset)
jeq 3b jeq 3b
moveb %d0,%a1@(mac_scc_cha_a_data_offset) moveb %d0,%a1@(mac_scc_cha_a_data_offset)
#endif /* MAC_USE_SCC_A */ #endif /* MAC_USE_SCC_A */
#ifdef MAC_USE_SCC_B #ifdef MAC_USE_SCC_B
4: btst #2,%a1@(mac_scc_cha_b_ctrl_offset) 4: btst #2,%a1@(mac_scc_cha_b_ctrl_offset)
jeq 4b jeq 4b
moveb %d0,%a1@(mac_scc_cha_b_data_offset) moveb %d0,%a1@(mac_scc_cha_b_data_offset)
#endif /* MAC_USE_SCC_B */ #endif /* MAC_USE_SCC_B */
#endif /* SERIAL_DEBUG */
jra L(serial_putc_done) jra L(serial_putc_done)
5: 5:
#endif /* CONFIG_MAC */ #endif /* CONFIG_MAC */
@ -3195,7 +3174,7 @@ func_start puts,%d0/%a0
movel ARG1,%a0 movel ARG1,%a0
jra 2f jra 2f
1: 1:
#ifdef CONSOLE #ifdef CONSOLE_DEBUG
console_putc %d0 console_putc %d0
#endif #endif
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
@ -3224,7 +3203,7 @@ func_start putn,%d0-%d2
jls 2f jls 2f
addb #'A'-('9'+1),%d2 addb #'A'-('9'+1),%d2
2: 2:
#ifdef CONSOLE #ifdef CONSOLE_DEBUG
console_putc %d2 console_putc %d2
#endif #endif
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
@ -3256,7 +3235,7 @@ ENTRY(mac_early_print)
movel %sp@(22),%d1 /* fetch parameter */ movel %sp@(22),%d1 /* fetch parameter */
jra 2f jra 2f
1: 1:
#ifdef CONSOLE #ifdef CONSOLE_DEBUG
console_putc %d0 console_putc %d0
#endif #endif
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
@ -3292,7 +3271,7 @@ func_start set_leds,%d0/%a0
func_return set_leds func_return set_leds
#endif #endif
#ifdef CONSOLE #ifdef CONSOLE_DEBUG
/* /*
* For continuity, see the data alignment * For continuity, see the data alignment
* to which this structure is tied. * to which this structure is tied.
@ -3396,43 +3375,6 @@ L(console_clear_loop):
1: 1:
func_return console_init 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 #ifdef CONFIG_LOGO
func_start console_put_penguin,%a0-%a1/%d0-%d7 func_start console_put_penguin,%a0-%a1/%d0-%d7
/* /*
@ -3774,7 +3716,7 @@ L(white_16):
L(console_plot_pixel_exit): L(console_plot_pixel_exit):
func_return console_plot_pixel func_return console_plot_pixel
#endif /* CONSOLE */ #endif /* CONSOLE_DEBUG */
__INITDATA __INITDATA
@ -3787,7 +3729,7 @@ L(iobase):
.long 0 .long 0
#endif #endif
#if defined(CONSOLE) #ifdef CONSOLE_DEBUG
L(console_globals): L(console_globals):
.long 0 /* cursor column */ .long 0 /* cursor column */
.long 0 /* cursor row */ .long 0 /* cursor row */
@ -3798,7 +3740,7 @@ L(console_font):
.long 0 /* pointer to console font (struct font_desc) */ .long 0 /* pointer to console font (struct font_desc) */
L(console_font_data): L(console_font_data):
.long 0 /* pointer to console font data */ .long 0 /* pointer to console font data */
#endif /* CONSOLE */ #endif /* CONSOLE_DEBUG */
#if defined(MMU_PRINT) #if defined(MMU_PRINT)
L(mmu_print_data): L(mmu_print_data):
@ -3856,10 +3798,8 @@ L(mac_dimensions):
.long 0 .long 0
L(mac_rowbytes): L(mac_rowbytes):
.long 0 .long 0
#ifdef SERIAL_DEBUG
L(mac_sccbase): L(mac_sccbase):
.long 0 .long 0
#endif
#endif /* CONFIG_MAC */ #endif /* CONFIG_MAC */
#if defined (CONFIG_APOLLO) #if defined (CONFIG_APOLLO)