From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Sun, 1 Oct 1995 02:30:12 -0400 From: peter@plan9.com peter@plan9.com Subject: Exception #4 with net booting a NeXT Cube Topicbox-Message-UUID: 29ecf7a8-eac8-11e9-9e20-41e7f4b1d025 Message-ID: <19951001063012.8Hz6DRP4KuWkRw3okAddYyLqKYCZjcMgGpwBkzLjv4Q@z> > I was trying to boot my NeXT Cube (ROM 2.4) into a Plan 9 terminal > with u9fs running on a PC running NeXTSTEP. While loading > 9nextstation, I got Exception #4. What does this mean and how can I > fix it? The problem is the 2l program that produced the 9nextstation kernel does not setup for the entry point properly. This problem will not show itself if you use an early verson of the NeXT boot program. A quick fix if you don't have an early version boot program is to start the kernel manually with the following commands to the ROM monitor, after the exception occurs: > r pc ? 4000000 > c This changes the program counter to the correct entry point 4000000 and then execution is begun at that point. Geoff Collyer of Bell Labs gave me considerable help while I was tracking this problem down. Be sure you have his bug fix installed ih the kernel. If you don't it won't get very far. I repeat it here. These diffs are relative to the cd rom. diff ./io.h /sys/src/9/next/io.h 19a20 > #define VIDEOOUTLIMIT IO(0x02004184) diff ./main.c /sys/src/9/next/main.c 66a67,76 > > /* > * the boot rom is supposed to set all the video out registers sensibly, > * and indeed the v2.2 boot rom does so. The v2.1 boot rom does not, > * and the video limit register contains a very large garbage number; > * thus we need to set the limit register here in order to get `clock' > * interrupts near each frame end to run the scheduler. The value 0xea > * is what the v2.2 boot rom sets the limit register to. > */ > *(ulong*)VIDEOOUTLIMIT = 0xea; Regards, Peter G. Weiner