Date: Thu, 16 Jul 1998 12:17:11 -0400 From: sbabkin@dcn.att.com To: k@numeri.campus.luth.se, freebsd-hackers@FreeBSD.ORG Subject: RE: Special memory board on ISA bus Message-ID: <C50B6FBA632FD111AF0F0000C0AD71EEFF8B66@dcn71.dcn.att.com>
next in thread | raw e-mail | index | archive | help
> -----Original Message----- > From: Johan Karlsson [SMTP:k@numeri.campus.luth.se] > > I have a special memory board on the ISA bus that responds to > addresses from > BOARD_BASE up to BOARD_BASE+BOARD_MASK. > Is it mapped in ISA hole under 1M or over it ? > Now I need to make sure that the memory manager in FreeBSD does not > use this > part of the memory address space. Is there an "easy" way to do this or > do I > have to rewrite init386 in /usr/src/sys/i386/i386/machdep.c to ensure > that it > will not use the board. > There exists such a thing as 1M address hole at 15M address, configured in BIOS (some BIOSes also have ability to configure 2M hole at 14M). The problem is that FreeBSD does not support it if you have over 16M of memory. You can add it to machdep.c, to the memory size probe routine and add one more entry to the array describing the physical memory. But there is a catch: the kernel is loaded over 1M, into the second contiguous piece of memory that is normally the biggest. But if you have 15M hole and 32M of memory, the third piece would be the biggest, and the VM initialization code is thinking that the kernel is in the biggest piece, not the second. That would be wrong and need to be fixed. > I also need to make sure that the cache is not used when I read/write > to my > board. To do this one can use the MTRR:s (Memory Type Range > Registers). > I guess, if you configure the memory hole in BIOS, it does all the necessary setups during bootstrapping and then you just use it in FreeBSD (and for range 640K-1M it's already preconfigured). -Serge To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C50B6FBA632FD111AF0F0000C0AD71EEFF8B66>