75 lines
1.9 KiB
Diff
75 lines
1.9 KiB
Diff
---
|
|
arch/m68k/amiga/config.c | 30 +++++++++++++++++++++---------
|
|
1 file changed, 21 insertions(+), 9 deletions(-)
|
|
|
|
--- a/arch/m68k/amiga/config.c
|
|
+++ b/arch/m68k/amiga/config.c
|
|
@@ -109,6 +109,7 @@ static void amiga_mem_console_write(stru
|
|
unsigned int count);
|
|
void amiga_serial_console_write(struct console *co, const char *s,
|
|
unsigned int count);
|
|
+static void __init amiga_savekmsg_init(void);
|
|
#ifdef CONFIG_HEARTBEAT
|
|
static void amiga_heartbeat(int on);
|
|
#endif
|
|
@@ -119,6 +120,8 @@ static struct console amiga_console_driv
|
|
.index = -1,
|
|
};
|
|
|
|
+static int __initdata amiga_enable_debug_mem;
|
|
+
|
|
|
|
/*
|
|
* Motherboard Resources present in all Amiga models
|
|
@@ -465,6 +468,9 @@ void __init config_amiga(void)
|
|
/* initialize chipram allocator */
|
|
amiga_chip_init();
|
|
|
|
+ if (amiga_enable_debug_mem && AMIGAHW_PRESENT(CHIP_RAM))
|
|
+ amiga_savekmsg_init();
|
|
+
|
|
/* our beloved beeper */
|
|
if (AMIGAHW_PRESENT(AMI_AUDIO))
|
|
amiga_init_sound();
|
|
@@ -783,18 +789,10 @@ static void amiga_mem_console_write(stru
|
|
}
|
|
}
|
|
|
|
-static int __init amiga_savekmsg_setup(char *arg)
|
|
+static void __init amiga_savekmsg_init(void)
|
|
{
|
|
static struct resource debug_res = { .name = "Debug" };
|
|
|
|
- if (!MACH_IS_AMIGA || strcmp(arg, "mem"))
|
|
- goto done;
|
|
-
|
|
- if (!AMIGAHW_PRESENT(CHIP_RAM)) {
|
|
- printk("Warning: no chipram present for debugging\n");
|
|
- goto done;
|
|
- }
|
|
-
|
|
savekmsg = amiga_chip_alloc_res(SAVEKMSG_MAXMEM, &debug_res);
|
|
savekmsg->magic1 = SAVEKMSG_MAGIC1;
|
|
savekmsg->magic2 = SAVEKMSG_MAGIC2;
|
|
@@ -803,6 +801,20 @@ static int __init amiga_savekmsg_setup(c
|
|
|
|
amiga_console_driver.write = amiga_mem_console_write;
|
|
register_console(&amiga_console_driver);
|
|
+}
|
|
+
|
|
+static int __init amiga_savekmsg_setup(char *arg)
|
|
+{
|
|
+ if (!MACH_IS_AMIGA || strcmp(arg, "mem"))
|
|
+ goto done;
|
|
+
|
|
+ if (!AMIGAHW_PRESENT(CHIP_RAM)) {
|
|
+ printk("Warning: no chipram present for debugging\n");
|
|
+ amiga_enable_debug_mem = 1;
|
|
+ goto done;
|
|
+ }
|
|
+
|
|
+ amiga_savekmsg_init();
|
|
|
|
done:
|
|
return 0;
|