patch-2.4.20 linux-2.4.20/arch/mips/sibyte/sb1250/setup.c
Next file: linux-2.4.20/arch/mips/sibyte/sb1250/smp.c
Previous file: linux-2.4.20/arch/mips/sibyte/sb1250/prom.c
Back to the patch index
Back to the overall index
- Lines: 89
- Date:
Thu Nov 28 15:53:10 2002
- Orig file:
linux-2.4.19/arch/mips/sibyte/sb1250/setup.c
- Orig date:
Fri Aug 2 17:39:43 2002
diff -urN linux-2.4.19/arch/mips/sibyte/sb1250/setup.c linux-2.4.20/arch/mips/sibyte/sb1250/setup.c
@@ -10,58 +10,45 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-/* Setup code likely to be common to all SB1250 platforms */
-#include <linux/config.h>
-#include <linux/errno.h>
-#include <linux/hdreg.h>
-#include <linux/init.h>
-#include <linux/ioport.h>
-#include <linux/sched.h>
-#include <linux/kernel.h>
-#include <linux/mm.h>
-#include <linux/stddef.h>
-#include <linux/string.h>
-#include <linux/unistd.h>
-#include <linux/ptrace.h>
-#include <linux/slab.h>
-#include <linux/user.h>
-#include <linux/utsname.h>
-#include <linux/a.out.h>
-#include <linux/tty.h>
-#include <linux/bootmem.h>
-#ifdef CONFIG_BLK_DEV_RAM
-#include <linux/blk.h>
-#endif
-#include <linux/ide.h>
-#ifdef CONFIG_RTC
-#include <linux/timex.h>
-#endif
-
-#include <asm/asm.h>
-#include <asm/bootinfo.h>
-#include <asm/cachectl.h>
-#include <asm/cpu.h>
-#include <asm/io.h>
-#include <asm/stackframe.h>
-#include <asm/system.h>
-#include <asm/cpu.h>
-#include <asm/mmu_context.h>
-#include <asm/sibyte/swarm.h>
-#include <asm/sibyte/sb1250_defs.h>
+#include <asm/sibyte/sb1250.h>
#include <asm/sibyte/sb1250_regs.h>
-
+#include <asm/sibyte/sb1250_scd.h>
+#include <asm/sibyte/64bit.h>
-/*
- *
- */
+/* Setup code likely to be common to all BCM1250 platforms */
+unsigned int sb1250_pass;
void sb1250_setup(void)
{
+ int bad_config = 0;
+
+ sb1250_pass = G_SYS_REVISION(in64(IO_SPACE_BASE | A_SCD_SYSTEM_REVISION));
+ /* sb1250_pass is more specific than "1", "2" etc. There are
+ many revision numbers corresponding to "Pass 2". */
+ switch(sb1250_pass) {
+ case 1:
+#ifndef CONFIG_SB1_PASS_1_WORKAROUNDS
+ printk("@@@@ This is a pass 1 board, and the kernel doesn't have the proper workarounds compiled in. @@@@");
+ bad_config = 1;
+#endif
+ break;
+ default:
+#if defined(CONFIG_CPU_HAS_PREFETCH) || !defined(CONFIG_SB1_PASS_2_WORKAROUNDS)
+ printk("@@@@ This is a pass 2 board, and the kernel doesn't have the proper workarounds compiled in. @@@@");
+ printk("@@@@ Prefetches are enabled in this kernel, but are buggy on this board. @@@@");
+ bad_config = 1;
+#endif
+ break;
+ }
+ /* XXXKW this is too early for panic/printk to actually do much! */
+ if (bad_config) {
+ panic("Invalid configuration for this pass.");
+ }
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)