This is a snapshot diff of my development tree. So, no warranty what so ever, like usual. Release 4: - This one is quite stable but not bullet proof yet. It seems there is some cache corruption or so once in a while under heavy load. Don't know why... I played with proc-sa1100.S but don't know what to try next. The problem is now harder to trigger so it's not easy to fix and test. - The sound driver is (incompletely) modified to be compatible with the OSS API. Some details are still missing. Release 5: - The PCMCIA space is now mapped in, ready to be driven. As well for the CPLD which controls signals on the Brutus' slots. Corresponding - GPIOs are configured to drive the PCMCIA's IRQs. I'm still trying to make an IDE PCMCIA card to work, but it still fails with IRQ probing. Release 7: - My previous patch had the above PCMCIA support broken because the in*()/out*() macros were wrong. These should be fixed. It now works on our own hardware but I still can't probe my IDE drive on Brutus. - Now this patch works on Brutus with Angel 1.02! - Be sure you have the right entry point. See step 8 above. Release 9: - Workaround for what looks like two silicon bugs: 1- The data cache flush instruction has been removed. 2- The wait-for-irq instruction is now aligned on the beginning of a cache line. ***** Note that this patch won't probably be developed much further. I intend to concentrate on the 2.2.x SA1100 patch instead. Only odd fixes will be added to this one. ***** Don't hesitate to comment, fix bugs, or even send patches to me if you feel like it! :-) ----- This is quick and dirty... just to give you some clues if you need them. Step 1: Grab a fresh 2.0.35 source archive and untar it tar -xzf linux-2.0.35.tar.gz Step 2: Grab the ARM patch for this kernel from the ARM Linux FTP site and apply it gunzip < patch-arm-2.0.35-1998.09.14.gz | patch -p0 Step 3: Apply the Brutus patch gunzip < diff-brutus-2.0.35.x.gz | patch -p0 Step 4: Configure the kernel cd linux make config Step 5: Make the kernel binary. You should have your cross compiler all set. make vmlinux (for the normal binary) or make zImage (for the compressed image) The following steps are very similar to the instructions provided by the Itsy team for the original Brutus distribution (http://www.research.digital.com/wrl/itsy/linux/linux-distrib-notes). Step 6: You need angelboot to load the kernel and a ramdisk image. A version of angelboot is provided in angelboot.tgz where you found diff-brutus-xx.tgz. tar -xzf angelboot.tgz cd angelboot make cd .. Step 7: You need a ramdisk image. You may use the one provided with the original Brutus Linux distribution. The image used is specified as "otherfile" in the opts file from the angelboot.tgz archive. The file can be gzipped. It will be loaded along with the kernel image in the next step. Step 8: Load and start the kernel. I provided the "go" script in the angelboot.tgz archive which makes use of angelboot with the right options. If you want to use the uncompressed kernel image, you must strip it otherwise it won't work (uncomment the appropriate lines in the go script). Beware that the kernel entry point must be 0xc0008020. Previously it worked with 0x8020 -- it won't anymore. That's it! Have fun! Nicolas Pitre nico@cam.org nico@visuaide.com