Introduction

Some time ago I tried to compile Linux for my Archimedes computer, however, it appeared that over time the ARM26 support had crumbled. This was around the time of 2.4.15 or so.

I tried to fix the code in 2.4.15 and got most of the way there (I could actually run simple programs), However time, or rather lack of it, forced me to abandon the project.

I decided to have another go and started on the 2.5.30 kernel. This time I decided to completely divorce the ARM26 code from the ARM32 code, and created a new architecture. This allowed considerable simplification. I have also been feeding Russell patches to remove the ARM26 code from the ARM32 kernel. the ARM32 kernel code will remain in the 'arch/arm' subdirectory, and my new revision of the code will be in 'arch/arm26'.

Once again, I have run a little short of time, so I am putting some patches up of my 'work so far'. The code can compile a working kernel for an A410/1 (probably any Axxx machine). Currently it crashes when attempting to execute user mode code (07/05/2003) and the keyboard map is seriously messed up. Feel free to take the code and make changes, although I would appreciate it if you would forward and changes to me, the maintainer of the arm26 code.

UPDATE 14/05/2003

Submitted the 2.5.30 files to Alan Cox for inclusion into -ac. Work began on bringing the arch up to 2.5.65 standards. It now boots on my A410/1 but falls over fairly early on, in mm/page_alloc.c. Still, a good start. I need to bone up on linux memory management to fix this I think.

UPDATE 15/05/2003 John Appleby has joined the project. Im looking forward to some fun late-night hacking sessions. Since the code really needs to be shared now, heres a more up to date piece of code than the one Alan has currently. I'll submit patches to Alan to fix what I have given him, but for now, here it is. [see downloads page]

John and I spent the evening getting the code to build on his box, and we're now on the same page. Before I forget, heres some things I remember we need to fix:

  • zImage doesnt build properly (or work)
  • acornfb is broken.
  • dozens of 'FIXME!!!s' in the code ;-)
  • the keyboard driver is wonky

UPDATE 18/05/2003 John and I spent the afternoon hacking through the major problems of the earlier patch (well, some of them). it now boots and can DHCP. John is working on A5K serial / IDE. I've hacked the source up to compile against 2.5.69

UPDATE 19/05/2003 Not quite such a busy day today (many distractions). John has been hacking on zImage, which now at least compiles. I've had no luck finding my nemesis, the evil THREAD_SIZE crash, so I consoled myself with a few minor tidyups. Well, here it is:

UPDATE 21/05/2003 Loads of stuff done today! I found the spinlock bug last night (evil thing - turns out disable_irq was a no-op!!!). The code is really starting to shape up. we're cutting away some of the fat too, which is great. Johns done a TODO list, which I'll add a 'done' to as well, here goes… (NOTE: TODO has its own page now, see above.)

Oh yeah, and I just noticed - the drivers/acorn tree is gone in the latest 2.5-bk. THANK BLOODY GOD!

UPDATE 25/05/2003 I've made some significnt progress - I can now get it to mount a root filesystem on initrd - and it will even attempt to boot. The major problem was the uaccess structs had become out of sync between asm and C. I think I will move the structure declarations to C entirely, which ought to eliminate this issue once and for all. I've also seperated out the existing code into uaccess-{user,kernel}.S which makes things a bit neater and eliminates a few files in lib/, which is always a good thing.

UPDATE 27/05/2003 2.5.70 is out. Im going to bring us up to date today, and hopefully squash some of our bugs :-)

Ok, thats done. heres a preliminary 2.5.70 patch to get us started…[see downloads page]

UPDATE 28/05/2003 No patch today. John and I are working hard on fixing a bug that cropped up when we moved to 2.5.70. The kernel is crashing fairly early, on a bum pointer to switch_to(). This seems to be caused by a corrupt runqueue bitmap, which is all zeros, which b0rks pick_next_task: in schedule(). Watch this space. Oh, and thanks to Russell for the trivial mods to oldlatches.c from his tree. Whilst not very important in itself (prettifying patch) its nice to know he is considering our tree whilst he works on his.

UPDATE 01/06/2003 We've managed to make 2.5.70 boot between us, and learnt a valuble lesson about not ignoring compiler warnings ;-) (ok, so we were lazy). The problem was the return value of do_fork() changed…

UPDATE 02/06/2003 Minor fixes and patches. we're finally settling down to a point where we can work on the more major issues without tripping over our shoelaces.

UPDATE 07/06/2003 Johns got most of the keyboard driver up now. Im still trawling through the mm code. I've learnt a lot about how its done on ARM, and Im doing my best to document things as I go along. pgtable.h has never looked so clean. We'll see if we cant get a patch online soon…

UPDATE 09/06/2003 We're in!! I submitted our arch to Linus and hes put us in the kernel proper!

I've only submitted the arch/arm26/ and include/asm-arm26/ hierarchies, so theres still plenty to stuff into my -im1 patches for now - indeed they are still required to build a kernel.

I also spent the time bringing the kernel up to -bk14 to ease our transition to 2.5.71 which looks imminent. The patch can be got from the usual place. Enjoy!

UPDATE 24/06/2003 Not much to say really. I've begun a memc/vidc/colourcard fb driver which just about works now, and Matthew Wilcox submitted a couple of Kconfig fixes we missed out on. The kernel has been dragged up to .73 and I dont think too much broke on the way (phew!)

UPDATE 11/07/2003 Not much to say again. dragged things up to 2.5.75, compiles, runs no worse than before, and the patch is tidier than it used to be.

UPDATE 18/08/2003 Got XIP to work last night, based on Nicholas Pitres work in 2.4. I can now create ROMable kernel images that actually execute from ROM, which is really handy for testing under arcem. I have been using a modified version of DAGs lkb source to boot these images. The kernel is linked at 0×03480000, allowing some space for the lkb bootloader to be put in front of it. The kernel copies its own data segment to the correct address (0×02080000). XIP kernels are compiled by selecting XIP in the kernel config and doing 'make xipImage'

Released XIP capable 2.5.75-im2 and 2.6.0-test3-im1

UPDATE 27/08/2003 Brought us up to date and tidied XIP support. Also, put bootable image on the website. I am slightly bugged by a change in i2c, will need to ask about it.

UPDATE 06/09/2003 Minimal XIP fixes and a bug squished in the memory init code. LKB updated and tidied. John seems to have some more free time again too (w00t!)

UPDATE 10/09/2003 Linus accepted my arch patch for 2.6.0-test4, so we're now up to date on 2.6.0-test5. Im still working on that damned intractable vector_undef bug, which is driving me nuts. Well, progress anyhow ;-)

 
home/projects/linux/arm26linux/development_diary.txt · Last modified: 2008/02/05 23:13 (external edit)
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Debian Driven by DokuWiki