linux-mips
[Top] [All Lists]

Re: [PATCH 2/5] mips: PMC MSP71xx mips common

To: Marc St-Jean <stjeanma@pmc-sierra.com>
Subject: Re: [PATCH 2/5] mips: PMC MSP71xx mips common
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Date: Fri, 23 Feb 2007 23:35:32 +0300
Cc: linux-mips@linux-mips.org
In-reply-to: <200702231956.l1NJu4Zd032458@pasqua.pmc-sierra.bc.ca>
Organization: MontaVista Software Inc.
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <200702231956.l1NJu4Zd032458@pasqua.pmc-sierra.bc.ca>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; U; Linux i686; rv:1.7.2) Gecko/20040803
Hello.

Marc St-Jean wrote:

[PATCH 2/5] mips: PMC MSP71xx mips common

Patch to add mips common support for the PMC-Sierra
MSP71xx devices.

These 5 patches along with the previously posted serial patch
will boot the PMC-Sierra MSP7120 Residential Gateway board.

Signed-off-by: Marc St-Jean <Marc_St-Jean@pmc-sierra.com>

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 5da6b0d..d512389 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
[...]

+menu "Options for PMC-Sierra MSP chipsets"
+       depends on PMC_MSP
+
+config PMC_MSP_EMBEDDED_ROOTFS
+       bool "Root filesystem embedded in kernel image"
+       select MTD
+       select MTD_BLOCK
+       select MTD_PMC_MSP_RAMROOT
+       select MTD_RAM
+

   Hm, why not just use initramfs?

+config PMC_MSP_UNCACHED
+       bool "Run uncached"
+       select MIPS_UNCACHED
+       
+endmenu
+

   Erm, was there really a need for separate option?

diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 18f56a9..610e169 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -70,6 +70,7 @@ extern asmlinkage void handle_reserved(void);
 extern int fpu_emulator_cop1Handler(struct pt_regs *xcp,
        struct mips_fpu_struct *ctx, int has_fpu);
+void (*board_watchpoint_handler)(struct pt_regs *regs);
 void (*board_be_init)(void);
 int (*board_be_handler)(struct pt_regs *regs, int is_fixup);
 void (*board_nmi_handler_setup)(void);
@@ -860,13 +861,17 @@ asmlinkage void do_mdmx(struct pt_regs *regs)
asmlinkage void do_watch(struct pt_regs *regs)
 {
-       /*
-        * We use the watch exception where available to detect stack
-        * overflows.
-        */
-       dump_tlb_all();
-       show_regs(regs);
-       panic("Caught WATCH exception - probably caused by stack overflow.");
+       if (board_watchpoint_handler) {
+               (*board_watchpoint_handler)(regs);
+       } else {
+               /*
+                * We use the watch exception where available to detect stack
+                * overflows.
+                */
+               dump_tlb_all();
+               show_regs(regs);
+               panic("Caught WATCH exception - probably caused by stack 
overflow.");
+       }
 }

There was no real need for else and massive change, just add return right after calling the handler...

WBR, Sergei

<Prev in Thread] Current Thread [Next in Thread>