patch-2.0.36 linux/arch/i386/mm/init.c

Next file: linux/arch/m68k/amiga/cyberfb.c
Previous file: linux/arch/i386/math-emu/reg_u_sub.S
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.0.35/linux/arch/i386/mm/init.c linux/arch/i386/mm/init.c
@@ -140,6 +140,17 @@
 		 */
 		if (!smp_scan_config(639*0x400,0x400))	/* Scan the top 1K of base RAM */
 			smp_scan_config(0xF0000,0x10000);	/* Scan the 64K of bios */
+		/*
+		 * If it is an SMP machine we should know now, unless the
+		 * configuration is in an EISA/MCA bus machine with an
+		 * extended bios data area. 
+		 *
+		 * there is a real-mode segmented pointer pointing to the
+		 * 4K EBDA area at 0x40E, calculate and scan it here:
+		 */
+		address = *(unsigned short *)phys_to_virt(0x40E);
+		address<<=4;
+		smp_scan_config(address, 0x1000);
 	}
 	/*
 	 *	If it is an SMP machine we should know now, unless the configuration

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov