I've just upgraded my Nslu2 to 64MB of RAM, so I'm trying to upgrade APEX to let me use the new memory.
To start with, I downloaded the Lenny di-nslu2.bin, and unpacked it using slugimage: ./slugimage.pl -u -i di-nslu2.bin Read 2 blocks into <RedBoot> Read 0x00006 bytes into <EthAddr> Read 1 blocks into <SysConf> Read 0x1FFE0 bytes into <Loader> Read 11 blocks into <Kernel> Read 48 blocks into <Ramdisk> Read 1 blocks into <FIS directory> Read 0x00010 bytes into <Trailer> Wrote 0x00040000 bytes from <RedBoot> into "RedBoot" Wrote 0x00020000 bytes from <SysConf> into "SysConf" Wrote 0x0001FFE0 bytes from <Loader> into "apex.bin" Wrote 0x0015FFE0 bytes from <Kernel> into "vmlinuz" Wrote 0x005FFFF0 bytes from <Ramdisk> into "ramdisk.gz" Wrote 0x00000010 bytes from <Trailer> into "Trailer" Then I went to the APEX download site (ftp://ftp.buici.com/pub/apex) and picked the latest version 1.6.8. There are 3 prebuilt images for debian slug: apex-1.6.8-debian-nslu2-arm.zip apex-1.6.8-debian-nslu2-armeb.zip apex-1.6.8-debian-nslu2-armel.zip Though apex-1.6.8-debian-nslu2-arm.zip and apex-1.6.8-debian-nslu2-armel.zip appear to be identical. I tried repacking my di-nslu2.bin using slugimage: ./slugimage.pl -p -o di-nslu2-newapex.bin -b RedBoot -s SysConf -L apex-1.6.8-debian-nslu2-arm/apex.bin -k vmlinuz -r ramdisk.gz -t Trailer Read 0x00040000 bytes from "RedBoot" into <RedBoot> (2 blocks / 2 blocks) Read 0x00020000 bytes from "SysConf" into <SysConf> (1 blocks / 1 blocks) Read 0x0000DE98 bytes from "apex-1.6.8-debian-nslu2-arm/apex.bin" into <Loader> (1 blocks / 1 blocks) Read 0x0015FFE0 bytes from "vmlinuz" into <Kernel> (11 blocks / 11 blocks) Read 0x005FFFF0 bytes from "ramdisk.gz" into <Ramdisk> (48 blocks / 48 blocks) Read 0x00000010 bytes from "Trailer" into <Trailer> (0x00010 bytes / 0x00010 bytes) Wrote 2 blocks (0x00000000 to 0x00040000) from <RedBoot> into "di-nslu2-newapex.bin" Wrote 1 blocks (0x00040000 to 0x00060000) from <SysConf> into "di-nslu2-newapex.bin" Wrote 1 blocks (0x00060000 to 0x00080000) from <Loader> into "di-nslu2-newapex.bin" Wrote 11 blocks (0x00080000 to 0x001E0000) from <Kernel> into "di-nslu2-newapex.bin" Wrote 48 blocks (0x001E0000 to 0x007E0000) from <Ramdisk> into "di-nslu2-newapex.bin" Wrote 1 blocks (0x007E0000 to 0x00800000) from <FIS directory> into "di-nslu2-newapex.bin" Wrote 0x00010 bytes (0x007FFFF0 to 0x00800000) from <Trailer> into "di-nslu2-newapex.bin" Then I flashed the resulting di-nslu2-newapex.bin using upslug2 When I tried booting this I got the following out of the serial terminal: RedBoot(tm) bootstrap and debug environment [ROMRAM] Red Hat certified release, version 1.92 - built 15:16:07, Feb 3 2004 Platform: IXDP425 Development Platform (XScale) Copyright (C) 2000, 2001, 2002, Red Hat, Inc. RAM: 0x00000000-0x02000000, 0x000723a0-0x01ff3000 available FLASH: 0x50000000 - 0x50800000, 64 blocks of 0x00020000 bytes each. == Executing boot script in 2.000 seconds - enter ^C to abort RedBoot> boot;exec 0x01d00000 have eRcOmM copy kernel code from flash to RAM copy ramdisk file from flash to RAM run kernel Using base address 0x01d00000 and length 0x0000de98 Then nothing more... So I tried repacking di-nslu2.bin using the apex.bin file from the apex-1.6.8-debian-nslu2-armeb.zip prebuilt image. That resulted in the following output from the serial terminal: RedBoot(tm) bootstrap and debug environment [ROMRAM] Red Hat certified release, version 1.92 - built 15:16:07, Feb 3 2004 Platform: IXDP425 Development Platform (XScale) Copyright (C) 2000, 2001, 2002, Red Hat, Inc. RAM: 0x00000000-0x02000000, 0x000723a0-0x01ff3000 available FLASH: 0x50000000 - 0x50800000, 64 blocks of 0x00020000 bytes each. == Executing boot script in 2.000 seconds - enter ^C to abort RedBoot> boot;exec 0x01d00000 have eRcOmM copy kernel code from flash to RAM copy ramdisk file from flash to RAM run kernel Using base address 0x01d00000 and length 0x0000dd80 Ans APEX Boot Loader 1.6.8 -- Copyright (c) 2004-2008 Marc Singer compiled for Debian NSLU2 (bigendian) on 2009.Jan.23-09:27:53 APEX comes with ABSOLUTELY NO WARRANTY. It is free software and you are welcome to redistribute it under certain circumstances. For details, refer to the file COPYING in the program source. apex => mem:0x00200000+0xdd80 (56704 bytes) env => nor:0x7c000+15k (empty) Use the command 'help help' to get started. # sdram-init 1 bank of 2 256Mib chips # memscan -u 0+256m 0x0 0x04000000 (64 MiB) # copy $kernelsrc $bootaddr # copy fis://kernel 0x00008000 1441760 bytes transferred # copy $ramdisksrc $ramdiskaddr # copy fis://ramdisk 0x01000000 6291440 bytes transferred # wait 10 Type ^C key to cancel autoboot. Type ^C key to cancel autoboot. # boot ARCH_ID: 597 (0x255) ATAG_HEADER ATAG_MEM: start 0x00000000 size 0x04000000 ATAG_CMDLINE: (55 bytes) 'console=ttyS0,115200 rtc-x1205.probe=0,0x6f noirqdebu' ATAG_INITRD2: start 0x01000000 size 0x005ffff0 ATAG_END Booting kernel at 0x00008000... ocnUerpmnissiL g.xun dabpizggam n ciebmu- now I have 64MB recognised by Apex (big endian) but I can't boot the debian installer kernel. I noticed that the apex environment in the original di-nslu2.bin used copy -s instead of copy, but changing that in the new apex environment didn't seem to improve anything. Please can someone point out where I'm going wrong here? Thanks Chris -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org