20021006 linux-2.4.19-rmk2-5mx2 - Cleaned up the serial driver to be more in sync with the AMBA driver (serial_amba.c). The errors I was having with the serial port turned out to be caused by my flakey serial port switch box, not by the linux-2.4.19-rmk2-5mx1 update. - Finally added Justin Cormack's patch for using CompactFlash modem cards. This involved copying arch-sa1100/serial.h to psionw/serial.h. - Finally added Marc Grunberg's French keyboad support files. - Added Frodo Looijaard's FAT file system patch. This patch should show the contents of the System directory on the CompactFlash Epoc partition. 20021004 linux-2.4.19-rmk2-5mx1 - Updated to the new kernel. This included updating the NUMA memory support macros. Hopefully it still boots on Revo. - Updated the serial driver to remove the key_wait support, which was removed in 2.4.19-pre6. The serial console has now started producing missing or replaced character, though. Also, the upload speed from Psion over ppp is now really slow. Have to look more into it. - Produced some Perl scripts to split the patch into smaller chunks for producing a patch for rmk inclusion, and small patches for the bitkeeper for Matthias. Still needs some work... 20020608 linux-2.4.18-rmk6-5mx1 - Changed back to the NW Floating Point Emulator instead of the Fast Floating Point Emulator because of the Perl problems in Debian. - Updated the arch/arm/def-configs as they had not been updated for a long time, and were missing the UNIX PTY support for some machines. The psilinux_release_build.pl script now has a command line option "def-configs" that only updates the machine specific default config files. It only creates config files with UK keyboard locale, so the naming is now missing the _uk, _us, _de in arch/arm/def-configs. - Applied Simon Howard's sound driver patch. Currently only the playback works. Can't wait to get that dictaphone to work once the recording works! To use: cat somesoundfile.au > /dev/dsp - Applied Simon Howard's one liner fix to restore the contrast after waking from sleep mode to psionw-power.c. - Measured the current with just batteries as then the green mains led is not on. The battery voltage was at 2.46 without load: Linux running idle at 36 MHz with no serial connection ~70 mA Linux running idle at 36 MHz with a serial connection ~87 mA Linux running idle at 18 MHz with no serial connection ~45 mA Linux running idle at 18 MHz with a serial connection ~62 mA Sleep mode ~2 mA The values were measured on a 5mx Pro 32 MB. Please note that the sleep mode current is less for 5mx 16MB as there is less RAM. - Applied Simon D Howard's /proc/psionw patch to allow viewing the external power status (/proc/psionw/mains) and whether the case is open (/proc/psionw/case). - Added code to Simon's /proc/psionw/case patch to make sure the PBDR data direction is set for read in PBDDR. Looks like after booting it defaults to write at least on 5mx Pro using Proboot, meaning the case open status would not show up correctly. - Started getting ready to split the Psion patch for a patch that can included to RMK's patch, and a non-standard additional Psion patch. The patch areas that cannot be sent to RMK will be tagged with PSIONW_NONSTANDARD. 20020421 linux-2.4.18-rmk4-5mx2 - Applied Vak's patch to merge all the /proc/psionw code to Thilo's psionw_utils.c module. - Renamed Thilo's /proc module from psionw_utils.c to psionw_procfs.c. - Removed unused option for Psion touchpanel support from drivers/char/Config.in - Applied Thilo's patch for /proc/psionw/uart entries. Should have done this first, ended up manually merging it... - Added psion_get_contrast and psion_set_contrast to keyboard_psionw.c. Removed the contrast functions from psionw_procfs.c. - Added /proc/psionw/cpu entry to changing the CPU speed. At 18MHz the display flickers pretty bad right now, I'll try to fix that at some point. The power consumption drops from ~59mA to ~47mA with echo 0 >/proc/psionw/cpu. (I think mostly because of the lower display refresh rate) Then when adding echo 0 >/proc/psionw/uart2 it drops to ~38mA. So that might be handy for some longer sessions on batteries. 20020417 linux-2.4.18-rmk4-5mx1 - Applied Vaklav Kulakovsky's autosleep and /proc/psionw/sleep patch. - Modified the psion_off function to work better with Vak's autosleep patch. On my machine Vak's patch triggered something with the psion_off where the CompactFlash would not come back up after a sleep mode. Changing the locking in psion_off seemed to fix it. - Cleaned up the keyboard driver a bit to allow it to be used for Series 5 once somebody gets that ported to 2.4. Also moved all non-keyboard stuff to the associated device drivers. Also moved Vak's autosleep functions to arch/arm/mach-psionw/psionw-power.c. - Renamed kbd_psion.c to keyboard_psion.c. - Applied Thilo Hille's /proc/psionw patch. This patch allows setting the machine to sleep with echo 0 >/proc/psionw/state. It also allows toggling the LCD backlight and changing the display contrast with /proc/psionw/backlight and /proc/psionw/contrast. Vak's stuff should be probably moved into the same module with Thilo's other /proc stuff at some point? - Messed up the website. 20020331 linux-2.4.18-rmk3-5mx1 - Fixed that annoying keyboad bug where the Fn key would stay in X11 mode, and turn off the backlight when hitting the space. The problem was solved by only allowing sticky keys in non-raw mode. - Added mapping for Fn-"Shift Right" to produce a slash (/). Using Fn-4 for slash just was not cutting it. - Verified that SYSRQ works; It's Ctrl-Menu-, (Or . on German kbd) If you need to use it, you must hold down Ctrl-Menu, then almost the same time press , and the desired SYSRQ key. For example .-M to see memory information. 20020327 linux-2.4.18-rmk2-5mx2-experimental - Hopefully started to figure out why the writes required a delay. Added some extra experimental checking to ide_wait_stat in ide.c Now the delay is only needed for some of the writes. This problem may be caused by unnecessary ETNA interrupts? In any case, this approach should improve the write speed in most cases. BACK UP YOUR CARD before trying it!!! - Hopefully fixed the CompactFlash card initialization problems. Thanks everybody for the debugging work! There is now a little loop that tries to initialize the card up to 20 times before giving up. - Changed the LCD initialization to be less hardcoded. Only tested on 5mx, hopefully works with Revo too. Now the LCD timing values are calculated based on the resolution and the clock speed. - Fixed some virtual resolution setting problems in the framebuffer driver. Hopefully someday we can have different virtual size screens in X. Who knows, maybe it works already? Xfbdev seems to use the physical resolution, so something else needs to be used to test it. - Moved the LCD interrupt handler to the fb driver where it belongs. Looks like we don't really get any LCD interrupts except after returning from the sleep mode. - Changed the LCD contrast default startup value from 24 to 40, as this seems to be closer to the default setting. - Added some test code to toggle the CPU speed between 36 and 18MHz. This does not seem to make a big difference in the idle power usage, so it may not be worth doing. Lowering the LCD refresh rate seems to make a big difference, so maybe we should have that configurable. The CPU speed toggling is commented out in kbd_psion.h. - Cleaned up the irq handling code a bit. - Changed the CPU masking to work for both ARM 720T and 710T 20020314 linux-2.4.18-rmk2-5mx2 - Fixed the special keys, such as power, for X. Turns out the keyboard driver was filtering out most special keys unless the keyboard is in raw mode. Added code to support architecture specific keys, and changed the masking for TYPES_ALLOWED_IN_RAW_MODE to allow architecture specific keys to be handled even when not in raw mode. So when running X, you can turn off the power with Fn-Esc, change to other virtual consoles with Fn-1, Fn-2, etc. Ctrl-Menu (Ctrl-Alt) is still filtered out. - Added a fast interrupt (FIQ) handler for the battery low interrupt. The battery low interrupt handler currently just disables the LCD backlight, and writes 'B' characters to the serial port. So if you notice that the LCD back light does not stay on, it's time to replace the battery. 20020313 linux-2.4.18-rmk2-5mx1 - Finally figured out why entering the sleep mode consumed more power than in Epoc. The problem was that the keyboard needs to be reset before entering the STBY sleep mode, otherwise the sleep mode power consumption slowly starts creeping up about extra 6mA. The sleep mode power consumptions should be now same or maybe even slightly less than under Epoc. Here are the current measurements on my 5mx Pro with the meter connected to the DC input: Linux 15.5 - 15.6 mA Epoc 15.6 - 15.7 mA Please note that this consumption is probably different from the batteries only consumption, I have not measured that. Also, my current meter may not be accurate. It still shows ratio between Linux and Epoc, though :) Epoc still uses less power under normal idle mode operation. - Updated the DC to DC converted code to move LCD power related stuff to the framebuffer driver. - Removed CF ready check for non-ide CF cards. This makes the network adapters work faster. - Removed dead code for initrd from psionw-arch.c that is no longer used. The code was probably there for the old boot-14 boot loader; Now the initrd size is passed as parameter tags from boot2nd and proboot. 20020218 linux-2.4.17-rmk5-5mx2 - Added support for CF network cards (Only AmbiCom AMB8610 tested so far). This involved creating reparate insw/outsw routines to access the network card from accessing a CF ide card. For some reason ETNA does automatic word access to half-word translation for ide cards, but not for the network card. To flip the cards, you need to boot from an initrd with cardmgr and cardctl installed from pcmcia-cs, and then manually do cardctl eject then cardctl insert. Read the PCMCIA documentation for more information, I'll try to post my initrd at some point too. Meanwhile, just compile IDE and network drivers as modules, and build a little initrd... - Ported the contrast code from the 2.2 kernel, luckily it worked pretty much as it was :) So now the contrast controls work. (Fn-"HalfMoon" - and Fn-"Half Moon" +) - Fixed a potential CF corruption bug where plugging in a serial cable during the sleep state would cause the machine to wake up, but not wake up ETNA. This would then result into no access to the CF card. - Removed ETNA sleep/wake debug keys. Now the only debug key is to view the ETNA state with Ctrl-Menu-x. - Changed VMALLOC_END as some kernel modules would not load with "can't allocate kernel memory" error. 200020213 linux-2.4.17-rmk5-5mx1-test - Added Thomas A. de Ruiter's touchscreen polling patch. - Added the memory map for 5mx Pro 24MB tested from Chris Halls. - Added support for initializing the DC to DC converter as it was needed to initialize the hardware properly when using proboot. This should work on Revo/Mako too. - Hopefully finally figured out what the PDDR registers do, kinda. This caused changes to the ETNA and LCD driver, and the power on/off. Turns out some registers in PDDR were for the DC to DC converter. - Hopefully figured out how to set the ETNA disk write waits based on a register in PDDR instead of fixed delay time. - Updated to linux-2.4.17-rmk5 kernel version. CHANGES 20011130 - Added more minimal power management. Now ETNA, LCD and timer are turned of, and the system is put into sleep mode. This makes a big difference in power consumption, here's some measurements: System after cold reboot with no OS running 16 mA Epoc Linux System off 16 mA 27 mA System off, serial cable disconnected 16 mA 20 mA System running idle, serial cable disconnected 44 mA 50 mA System running idle 44 mA 58 mA with serial cable connected System peak with serial cable connected 160 mA Backlight 33 mA 33 mA As you can notice, the power management can still be improved. - Finally got ETNA working after a sleep mode. A big pain with lots of reboots. - Hopefully figured out why Mako 16MB was not working; ETNA was mapped into the third RAM bank area. This may help with 5mx Pro's also. CHANGES 20011122 - Created a little Perl script to build the most common locales and memory configs until we have some memory configuration passed from ArLo in parameters, or something similar. - Updated the framebuffer to support timings for Revos and Mako. Thanks to Ilmar Kotte on all the testing! NOTE: You will need the latest ArLo to boot on Revo or Mako. If the 16MB Mako version does not work, try the 8MB version. Please report any problems to the mailing list. - Got the framebuffer working with 4bpp mode. The colormaps may not be right currently. - Added capability to turn on and off the LCD with Fn-On. No other power management done yet. - Found and fixed a bug where turning off the LCD would cause CF card corruption. - Updated the serial driver to be more like the AMBA serial driver. No support for break, anyone know how that could be done? - Started working on better PCMCIA support. CHANGES 20011107 - Updated to 2.4.13-ac5-rmk2. This was somewhat of a pain, as I managed to accidentally change the processor type to ARMv4 from 720T. It took quite a few hours of tinkering to figure out why the interrupts did work... - Added support for Infrared. To use it, just do: irattach /dev/ttyAM0 or run /etc/init.d/irda {start|stop}. Remember to turn it of after you are done by killing irattach, or running irda stop, to save batteries. - Updated the serial port driver a bit. It still probably does not work properly with ftp protocol, though. - Configured a base Debian Woody image with ppp, gsmlib, and telnetd support. - Hooked up the keyboard to the SysRq keys like in Psion 5. Luckily the keyboard works like in Psion 5, that saves some develpment time. - Added support for toggling the backlight on or off. To use it, use Fn-Space. - Hooked up the Ctrl-Menu-Del to reboot. Looks like this feature was left out in Psion 5 in crash+burn-22. - Changed the frame buffer default depth to 2 from 4 as the 4bpp mode has still problems with the color mapping. To change, just use: fbset -a 4bpp or fbset -a 2bpp or fbset -a mono - Fixed the backward fonts in the mono framebuffer mode. - Added Thilo Hille's patch for the memory configuration for Psion 5MX Pro 32MB. - Added Ilmar Kotte's patch for the memory configuration for Psion Revo Plus 16MB and Diamond Mako. (Untested) CHANGES 20011010 - The flash card seems to work fine now! The corruption was fixed by doing 32-bit writes to the ETNA, as the Windermere memory controller translates 32-bit writes to 16-bit writes. - Changed to use boot2nd instead of the old boot boot-14. Kernels don't need to be glued any longer. If you still want to use boot-14, you need to modify it for the 0xc0048000 TEXTADDR, and the new boot parameters offset. See arch/arm/mach-psionw/psionw-arch.c BOOT_PARAMS entry. You will also need to set the machine version to 60 in boot-14. It is highly recommended to use boot2nd as boot-14 does not provide any debug output on 5mx. - Changed TEXTADDR from 0xc0038000 to 0xc0048000 as the kernel parameters were overwriting the LCD registers. - Changed the kernel boot parameters offset to be compatible with boot2nd. CHANGES 20011002 - The flash card finally mounts. Not much anything else has been changed, except for some clean up. The flash card support is VERY buggy, and always corrupts the partition eventually. To try it out anyway, please do the following: 1. Partition your flash card on your Linux computer using a flash card reader, such as the SanDisk ImageMate CompactFlash reader, or if you have a laptop, an adapter for the PCMCIA card. You will need a small FAT partition for Epoc in the beginning of the card. I have about 10MB for FAT, and the rest Linux: Device Boot Start End Blocks Id System /dev/sdc1 1 81 10352 6 FAT16 /dev/sdc2 82 734 83584 83 Linux 2. Install Arlo and the Linux image on the FAT partition. See some other documentation on this... 3. Edit the arlo.cfg so you have an option to mount root from the second partition on the flash card: [Linux with LCD & root on flash using bash] image=d:\linux.image boot = init=/bin/bash root=/dev/hda2 rw console=ttyAM1,115200 console=tty0 4. Set up a shell script to prepare the Linux partition on the flash. Since the driver will hose the partition currently, you may want to use a shell script like this: #!/bin/sh mkfs /dev/sdc2 mount /dev/sdc2 /mnt/flash cd /mnt/flash tar zpxf /home/arm/initrd/root-011002.tar.gz cd .. umount /mnt/flash You will of course have to modify it for your purposes :) CHANGES 20010614 - Not much changes, just some slowly progressing work on the CF driver. The driver fails to register the ide drive after running cardmgr: Trying to free nonexistent resource ide0: ports already in use, skipping probe ... ide_cs: ide_register() at 0xe0000000 & 0xe000000e, irq 5 failed If anybody has any clues, go for it! CHANGES 20010516 - Cleaned up some old CLPS711x architecture memory mappings, such as the syspld stuff. - Changed some interrupt masking to enable the CF card interrupts. - The patch now contains the development version of the cf card driver if anybody is interested in hacking it. The driver detects the interrupts when the card is inserted, and dumps the right card info when the user space dump_cis utility is run. To enable the driver, you must uncomment the psion_etna entry in the drivers/pcmcia/Makefile, and then recompile the kernel. This is because the driver does not work, but could cause some corruption. CHANGES 20010507 - Just updated to linux-2.4.4-rmk2 to keep up with the rest of the world... CHANGES 20010429 - Moved the source to the psionw from clps771x. Psionw is short for Psion Windermere, which is the name Psion uses for the chip that's used in 5MX and Revo. This change means that we are not patching the clps711x architecture any any longer. This change left out quite a few ifdefs from the code, and we are one step closer to start feeding back the patches to Russell King. We could also set up a partial CVS tree for the arch-psionw and mach-psionw directories, and the device drivers. To find the new location of the files, please check the following directories: include/asm/arm/psionw arch/arm/mach-psionw - Searched and replaced the file and function names in the device drivers. Please let me know if I messed up something. The new drivers names are: Keyboard kbd_psion.c Serial port serial_psionw.c Frame buffer psionwfb.c - Changed the hardware definitions. The new hardware definitions are: The Psion Windermere architecture CONFIG_ARCH_PSIONW Machine type 5MX CONFIG_PSIONW_5MX Machine type 5MX Pro 24MB CONFIG_PSIONW_5MXPRO24MB Machine type 5MX Pro 32MB CONFIG_PSIONW_5MXPRO32MB Machine type Revo CONFIG_PSIONW_REVO So the CONFIG_ARCH_PSION5MX is not in use any longer. - Added configuration options for selecting the machine type, hopefully we can autodetect the machine type at some point. If you want to try to configure the memory for your machine type, please select the option in the configuration under Psion Windermere, and try to configure the RAM banks in the arch/arm/mach-psionw/psionw-arch.c. Only the 5MX configuration seems to be correct at this point. - Got the memory bug fixed where some user space programs crashed, such as bash. I think this was related to the fact that we had two hardware architectures defined earlier, and some memory translation stuff did not work the right way. This may also help with the memory allocation problems in the framebuffer driver. CHANGES 20010423 - Thanks to Shane Nay, we now have first version of 4bpp frame buffer support and a pen driver! The 4bpp driver text colors look a bit faded, but I put in Shane's patch anyways, despite Shane not recommending it. This puts some pressure on Shane to fix the faded colors before he can demo the device to his friends :) The pen driver works great, you just have to make sure you have the right device entry. You can create the device with: mknod /dev/tpanel c 10 11 Then you can do od < /dev/tpanel and move the pen on the LCD and see octals fill the screen. - Updated the patch to kernel 2.4.3-rmk2. I experienced some problems getting the system booted in 2.4.3, but after a bit of tinkering figured out that it had something to do with the framebuffer driver. I changed to Shane's 4bpp driver, and that worked, so there it is. Most likely the old 2bpp driver does not work any longer, I think it could be related to mapping more memory for the 4bpp driver. - Updated the initrd.gz to include the /dev/tpanel entry. - Initrd loading problems seem to continue. Unfortunately I have not been able to download Peter's new boot code to try. Meanwhile, if you experience problems loading the initrd, try hard rebooting the Psion first. - You need to apply this patch from the linux directory, as my directory names were a bit different: cd linux zcat ../linux-2.4.3-rmk2-5mx1.patch.gz | patch -p1 CHANGES 20010318 - Integrated Yuji's patch linux-2.4.2-rmk1-5mx2-ysh1, which adds following: 1. RTC support 2. Improved interrupt handler by changing INTMR1 to INTENS/INTENC. The interrupt handler changes also fixed the internal clock. 3. Serial port fixes to enable serial port regardless of bootup condition. - Removed the CF card drivers for now, as they don't do anything yet. CHANGES 20010315 - The non-contiguous memory is now configured as it should be, which solves a lot of the issues running programs from initrd. - The boot options are now being passed from Arlo to the kernel. You need Arlo version 1.23 or later for this. - Thanks to Philip Blundell noticing it, the floating point emulation is now compiled in. This was left out in the 2.4.2-rmk1 patch as it added another floating point emulator. - The initrd of the week is based on initrd_ks.gz from WearableGroup at: http://www.wearablegroup.org/software/pcmcia/ I added ash there, as bash still causes a segfault. Any ideas why? Ldd segfaults too, and reboot. - The PCMCIA stuff is included, but does not work at all yet. - I also created a quick patch for boot-13 to use the 5mx memory map, and the compile options suggested by Honza Fikar earlier on the mailing list. CHANGES 20010308 - Added a patch from Yuji Shinokawa for serial port support! The default console is now on the serial port. Set you terminal to 115200 8 N 1, and enjoy the capability to scroll back to view the dmesg log. The serial console makes development easier, so until we have something that can be carried without batteries being drained, the default will be on the console. To change this, simply change the "Default kernel command string" in the kernel configuration with make menuconfig or make xconfig, and leave out console=ttyAM1,115200. - Changed the patch name to linux-2.4.2-rmk1-5mx1.patch, as it now contains other patches too. Maybe this is the first 'official' 5MX patch? - Added support for 2bpp rendering of Tux to the fb driver, it looks pretty bad... - Changed the mem.psion5mx and freelist.psion5mx to map more memory. I figured that some parts of the initrd got corrupted with not enough free memory mapped, which showed up as crc errors trying to mount the initrd. If you are developing on 5mx Pro, or Revo, these settings may not work. Ideally we would fix the free memory detection in boot.S now that the serial support for 5MX could be added there for debugging. Any takers? - Updated the sample initrd.gz. The new image is the Debian potato root.bin.gz with ash, ld* libs and libc* libs replaced. I don't understand why the Debian image does not work unless these are replaced? Could it still be related to the initrd being corrupted by incorrect free memory settings to boot.S? - Well, at least most of the commands on the initrd now work without locking up the system :) CHANGES 20010304 - Woohoo, open the champagne bottles, shell now works after lots of trouble. Ash only works if compiled with debug options, I wonder if this all is related to the libraries? I'm now compiling with the emdebian croos toolkit and the libraries on the initrd.gz are from the debian arm potato ditribution. Programs running on Psion 5mx crash all the time. - The attached ash sources are from redhat 7 distribution, I modified the makefile so it builds for arm with x86 compiler. - The initrd.gz contains the updated ash, and the debian arm potato libs. - Busybox just barely ran with the potato libs, so I compiled it staticly. I think the embedian environment is not same as what arm potato was built with. - Not really any changes in the kernel patch, all the problems were solved in the user space so far. There is some clean up from rmk1-tml1 patch, and the init now points to the ash. - And of course there is the mandatory screenshot of 5mx with root! CHANGES 20010303 - Modified the Psion 5 keyboard driver to work with 5MX. Left out all power related stuff for now. - Upgraded to linux 2.4.2-rmk1 just to clean up all debug code :) - Console does not yet work right, the keyboard works, the console works but they don't work together??? If anybody has any clues, let me know. The kernel is set to load /bin/csh, and you can try it out with the test initrd.gz from my site to see what happends. (I think it's based on initrds2.gz initrd) Basically the root prompt # shows up, but the keyboard does not go to the console. (The keys appear on the LCD though) The "undefined instruction: pc=40040084" errors did not show up with kernel 2.4.1, by the way, so you can ignore those for now. - There's also binary boot.bin.gz that can be uncompressed and used for glueing the kernel with: ./glue.pl -f freelist.psion5mx /path/to/Image > image (I think the www.emdebian.org cross compile environment works for building both the kernel and glue, but I've been too lazy to try it out) CHANGES 20010226-2 - The printk.c output stuff is back, and now gets switched off when the console driver kicks in. - Thanks to some help from Roger Gammans, I found the problem with the initrd locating. The problem is the memory detection in boot.S, which finds more memory than there is. I managed to get around that by setting up a minimal freemem.psion5mx file, that needs to be used with glue.pl. It maps only 4MB of memory, the rest gets detected by the kernel. To use it, you need to run: glue.pl -f freelist.psion5mx /path/to/Image > image - I also figured out that the problem compiling boot.S with the newer gcc is in the arm-linux-as. If you modify the Makefile for boot to use the old arm-linux-old-as, you only need the newer gcc. - I'm using the mem.psion5mx file when compiing boot.S, and that's the only mem file in my Makefile there. I put only 8Mb to it, so maybe it will work with Revo too? I don't have a Revo, so I don't know. CHANGES 20010226 - Fixed memory detection. It now works with NUMA, although the memory seems to be continuous. I think all the memory chips are in node 1 in 5mx. - First stab at getting the initrd mounted. It now works only occasionally, and the epoc physical address of the initrd must be compiled into the kernel. This is flakey, what it should do is to use the parameters from boot, but for some reason the parameters from boot do not make sense at least for me. The initrd.gz load only after a soft reboot, so you need to check the physical address in the arlos5mx.exe for 0xa1c000, and compile that into the kernel. The place to change it is in arch/arm/mach-clps711x/p720t-arch.c. Look for params->u1.s.initrd_start = (0xc0630000). It changes depending on the kernel size too... - Created a minimal console frame buffer driver out of the clps711x driver. - Printk.c patch for outputting the data is in kernel/printk.c.tony for now, I'll create a separate patch out of that, as it is only needed for debugging the kernel start. CHANGES 2001022 - Configured irq and timer thanks to the information that Peter van Sebille got from PSION! What a pain it would have been without it... - Kernel now boots to the point where it tries to mount root. It should be now possible to try to mount initrd. CHANGES 20010217 Here is a brief description of what I did to get Psion 5MX to try to boot Linux. - Added a CPU definition for ARM710T, which seems to be pretty close to 720T - Tweaked the printk.c to produce output to the LCD (ouch! ugly hack...) - Added a psionwait() function to init.c to see what goes on before it crashes FILES CHANGED TO GET SYSTEM BOOTED arch/arm/config.in - Added CONFIG_ARCH_PSION5MX as a sub-option for CLPS711X. We should probably change this later on to a separate architecture as the ports don't match??? arch/arm/kernel/head-armv.S - Forced the processror type to 720T in the beginning by mov r1 #24 (This should be done by the boot loader...) include/asm-arm/hardware/clps7111.h - The IO ports are NOT correct at all compared to the CLPS711X architecture I don't think any of these are the same... arch/arm/mm/mm-clps711x.c - Added the NUMA file for discotigous memory support, it does not detect the full memory though... arch/arm/mach-clps711x/irq.c - Added some temp hack code to keep the LCD on. Basically resetting the interrupts kills the LCD. I suspect that this is simply because it is incorrect IO port. include/asm-arm/proc-armv/assembler.h - Disabled save_and_disable_irqs and restore_irqs, as they would kill the LCD include/asm-arm/arch-clps711x/mmzone.h - Added this file for discontigous memory support arch/arm/kernel/entry-armv.S - Added defined entry for CONFIG_ARCH_PSION5MX to the P720T area kernel/printk.c - Added an ugly temporary display driver to get some output to the LCD init/main.c - Added a delay loop to pause the machine to see what goes on, and commented out the cli() from start_kernel arch/arm/Makefile - Changed the TEXTADDR=0xc0038000 arch/arm/mm/proc-arm720.S - Changed the CPU type masking to include ARM710T arch/arm/kernel/head-armv.S - Added a primitive error output for processor error arch/arm/mach-clps711x/p720t-arch.c - Added NUMA configuration for the memory, but it does not work and commenting out BOOT_MEM causes "invalid architecture" error in head-armv.S...