[Solved]Seagate GoFlex Failed after installing the ArchLinux

This forum is for topics dealing with problems with software specifically in the ARMv5 repo.

Re: Seagate GoFlex Failed after installing the ArchLinux

Postby tomkuang » Thu Aug 13, 2020 11:32 pm

summers wrote:As you have access to uboot, I'd be tempted just to type the commands by hand in uboot, and understand which bit is failing. So suggest boot with the just hdd installed.

This *seems* to me the easiest way of finding your problem, error messages tell a story, so thats what you need to listen to ...


It's interesting that I don't have the zImage file, nor the kirkwood-goflexnet.dtb in the /boot folder to begin with, yet it still boot from USB no problem. Just I can't sign in as root through SSH, but I was able to through serial port. Were there some documents I can refer to as the boot sequence or the uboot command? I was an IT 25 years ago and gave up on other position for many years already. So kind of familiar with all the commands, but not really. BTW, I don't have that part or partuuid command so kind of stuck here. All the commands that I can use is listed below:

Code: Select all
?       - alias for ‘help’
base    - print or set address offset
bdinfo  - print Board Info structure
boot    - boot default, i.e., run ‘bootcmd’
bootd   - boot default, i.e., run ‘bootcmd’
bootefi - Boots an EFI payload from memory
bootelf - Boot from an ELF image in memory
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bootvx  - Boot vxWorks from an ELF image
bootz   - boot Linux zImage image from memory
chpart  - change active partition
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
date    - get/set/reset date & time
dhcp    - boot image via network using DHCP/TFTP protocol
diskboot- boot from IDE device
dns     - lookup the IP of a hostname
echo    - echo args to console
editenv - edit environment variable
env     - environment handling commands
exit    - exit script
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
ext4load- load binary file from a Ext4 filesystem
ext4ls  - list files in a directory (default /)
ext4size- determine a file’s size
false   - do nothing, unsuccessfully
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fatsize - determine a file’s size
fdt     - flattened device tree utility commands
fsinfo  - print information about jffs filesystems
fsload  - load binary file from a jffs filesystem image
fsls    - list jffs files in a directory (default /)
fstype  - Look up a filesystem type
go      - start application at address ‘addr’
gpio    - query and control gpio pins
gpt     - GUID Partition Table
help    - print command description/usage
ide     - IDE sub-system
iminfo  - print header information for application image
imxtract- extract a part of a multi-image
itest   - return true/false on integer compare
load    - load binary file from a filesystem
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loadx   - load binary file over serial line (xmodem mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
ls      - list files in a directory (default /)
md      - memory display
mii     - MII utility commands
mm      - memory modify (auto-incrementing address)
mtdparts- define flash/nand partitions
mw      - memory write (fill)
nand    - NAND sub-system
nboot   - boot from NAND device
nfs     - boot image via network using NFS protocol
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
save    - save file to a filesystem
saveenv - save environment variables to persistent storage
setenv  - set environment variables
setexpr - set environment variable as the result of eval expression
showvar - print local hushshell variables
size    - determine a file’s size
sleep   - delay execution for some time
sntp    - synchronize RTC via network
source  - run script from memory
test    - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
true    - do nothing, successfully
ubi     - ubi commands
ubifsload- load file from an UBIFS filesystem
ubifsls - list files in a directory
ubifsmount- mount UBIFS volume
ubifsumount- unmount UBIFS volume
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor, compiler and linker version
tomkuang
 
Posts: 7
Joined: Sat Aug 08, 2020 5:55 am

Re: Seagate GoFlex Failed after installing the ArchLinux

Postby moonman » Fri Aug 14, 2020 5:24 am

My suggestion to you is to install proper arhclinuxarm u-boot by booting from USB drive and running "pacman -S uboot-goflexhome"
This will ensure you have all variables in order to boot up ALArm. There is nothing wrong with bodhi's u-boot, but it may not be setup the same way. You gain nothing feature-wise with either.

You do not have *.dtb and zImage is because by default rootfs is supplied with uImage which does not need dtb file (old method of booting these devices). After you get these booting problems solved, you can upgrade to zImage+dtb by install linux-kirkwood-dt package.Our U-Boot environment is setup so it will boot up with either zImage + dtb or uImage.
Pogoplug V4 | GoFlex Home | Raspberry Pi 4 4GB | CuBox-i4 Pro | ClearFog | BeagleBone Black | Odroid U2 | Odroid C1 | Odroid XU4
-----------------------------------------------------------------------------------------------------------------------
[armv5] Updated U-Boot | [armv5] NAND Rescue System
moonman
Developer
 
Posts: 3302
Joined: Sat Jan 15, 2011 3:36 am

Re: Seagate GoFlex Failed after installing the ArchLinux

Postby summers » Fri Aug 14, 2020 9:38 am

Yes just load the uImage instead (and change the boot command to a "bootm"). You also won't need the dtb in that case.

The partuuid of the HDD, you can get when you boot up from USB, with the HDD installed. The command "blkid" - just note the PARTUUID of the root on the HDD, and type that number by hand. You could also use /dev/sdX name - but PARTUUID should ensure its the HDD that is selected as root.

As moonman says, once you do manage to boot, with upgrading to modern kernel, which uses the dtb. Do check if you need GoFlex Home or GoFlex Net - you mention both in the thread, and not clear to me which you have.
summers
 
Posts: 869
Joined: Sat Sep 06, 2014 12:56 pm

Re: Seagate GoFlex Failed after installing the ArchLinux

Postby tomkuang » Fri Aug 14, 2020 9:41 pm

Thanks moonman and summer for your effort trying to save me! Okay, I'll do this all over again:

1. Flash the uboot downloaded from this site here. It is a .tar.xz file. So I extract it on to my laptop and copy the uboot-goflexthome.kwb file to a FAT32 formatted USB.

Code: Select all
GoFlexHome> usb reset
resetting USB…
USB0:   USB EHCI 1.00
scanning bus 0 for devices… 2 USB Device(s) found
       scanning usb for storage devices… 1 Storage Device(s) found
GoFlexHome> fatload usb 0:1 0x0800000 uboot-goflexhome.kwb
reading uboot-goflexhome.kwb
524288 bytes read in 40 ms (12.5 MiB/s)
GoFlexHome> nand erase 0x0 0x80000

NAND erase: device 0 offset 0x0, size 0x80000

Erasing at 0x0 —  25% complete.
Erasing at 0x20000 —  50% complete.
Erasing at 0x40000 —  75% complete.
Erasing at 0x60000 — 100% complete.
OK
GoFlexHome> nand write.e 0x800000 0x0 0x80000

NAND write: device 0 offset 0x0, size 0x80000
 524288 bytes written: OK
GoFlexHome> reset
resetting …


It seems the new (older?) uboot successfully write into the NAND, however it still not load from HDD.

Code: Select all
U-Boot 2016.09.01-1 (Oct 10 2016 - 23:11:39 -0600) Arch Linux ARM
Seagate GoFlex Home

SoC:   Kirkwood 88F6281_A1
DRAM:  128 MiB
WARNING: Caches not enabled
NAND:  256 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
88E1116 Initialized on egiga0
IDE:   Bus 0: OK Bus 1: not available 
  Device 0: Model: ST2000DL003-9VT166 Firm: CC98 Ser#: 5YD45PSQ
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 1907729.0 MB = 1863.0 GB (3907029168 x 512)
Hit any key to stop autoboot:  3  2  1  0

Reset IDE: Bus 0: OK Bus 1: not available 
  Device 0: Model: ST2000DL003-9VT166 Firm: CC98 Ser#: 5YD45PSQ
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 1907729.0 MB = 1863.0 GB (3907029168 x 512)
starting USB…
USB0:   USB EHCI 1.00
scanning bus 0 for devices… 2 USB Device(s) found
       scanning usb for storage devices… 1 Storage Device(s) found

Partition Map for IDE device 0  —   Partition Type: DOS

Part   Start Sector   Num Sectors   UUID      Type
  1   2048         41943040     47c3842a-01   83
  2   41945088     3865084080   47c3842a-02   83

Partition Map for USB device 0  —   Partition Type: DOS

Part   Start Sector   Num Sectors   UUID      Type
  1   2048         30527488     00000000-01   0b
Attempting to boot from usb 0:1…
reading /boot/uEnv.txt
** Unable to read file /boot/uEnv.txt **
Checking if uenvcmd is set …
Running default loadzimage …
reading /boot/zImage
** Unable to read file /boot/zImage **
Running default loaduimage …
reading /boot/uImage
** Unable to read file /boot/uImage **


printenv gives this

Code: Select all
GoFlexHome> printenv
baudrate=115200
bootcmd=ide reset; usb start; setenv letter 9;for type in ide usb; do for disk in 0; do if ${type} part ${disk};then setexpr letter $letter + 1;run load;fi;done;done;
bootdelay=3
bootm=echo Booting from ${disk} …; run setargs; bootm ${loadaddr};
bootz=echo Booting from ${disk} …; run setargs; bootz ${loadaddr} - ${fdt_addr};
console=ttyS0
ethact=egiga0
ethaddr=xx:xx:xx:xx:xx:xx (masked)
fdt_addr=0x800000
fdt_file=/boot/dtbs/kirkwood-goflexnet.dtb
fileaddr=800000
filesize=80000
importbootenv=echo Importing environment (uEnv.txt)…; env import -t $loadaddr $filesize
letter=a
load=echo Attempting to boot from ${type} ${disk}:1…;if run loadbootenv; then run importbootenv;fi;echo Checking if uenvcmd is set …;if test -n $uenvcmd; then echo Running uenvcmd …;run uenvcmd;fi;echo Running default loadzimage …;if run loadzimage; then run loadfdt;run bootz;fi;echo Running default loaduimage …;if run loaduimage; then run bootm;fi;
loadaddr=0x810000
loadbootenv=load ${type} ${disk}:1 ${loadaddr} /boot/uEnv.txt
loadfdt=load ${type} ${disk}:1 ${fdt_addr} ${fdt_file}
loaduimage=load ${type} ${disk}:1 ${loadaddr} ${uimage}
loadzimage=load ${type} ${disk}:1 ${loadaddr} ${zimage}
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:1M(u-boot),-(rootfs)
setargs=setenv bootargs console=${console},${baudrate} ${optargs} root=/dev/sd${letter}1 rw rootwait ${mtdparts}
uimage=/boot/uImage
zimage=/boot/zImage

Environment size: 1479/131068 bytes


Now I'm following what summer suggests as follow. Seems the only things failed were loading the initramfs-linux.img.

Code: Select all
GoFlexHome> ide reset

Reset IDE: Bus 0: OK Bus 1: not available 
  Device 0: Model: ST2000DL003-9VT166 Firm: CC98 Ser#: 5YD45PSQ
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 1907729.0 MB = 1863.0 GB (3907029168 x 512)
GoFlexHome> ext4ls ide 0:1 /
<DIR>       4096 .
<DIR>       4096 ..
<DIR>      16384 lost+found
       453736436 ArchLinuxARM-kirkwood-latest.tar.gz
<SYM>          7 bin
<DIR>       4096 boot
<DIR>       4096 dev
<DIR>       4096 etc
<DIR>       4096 home
<SYM>          7 lib
<DIR>       4096 mnt
<DIR>       4096 opt
<DIR>       4096 proc
<DIR>       4096 root
<DIR>       4096 run
<SYM>          7 sbin
<DIR>       4096 srv
<DIR>       4096 sys
<DIR>       4096 tmp
<DIR>       4096 usr
<DIR>       4096 var
GoFlexHome> ext4ls ide 0:1 /boot
<DIR>       4096 .
<DIR>       4096 ..
         4623320 uImage
         7764705 initramfs-linux.img
GoFlexHome>
GoFlexHome> load ide 0:1 ${loadaddr} /boot/uImage
4623320 bytes read in 908 ms (4.9 MiB/s)
GoFlexHome> load ide 0:1 ${fdtaddr} /boot/btbs/kirkwood-goflexhome.dtb
load - load binary file from a filesystem

Usage:
load <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
    - Load binary file ‘filename’ from partition ‘part’ on device
       type ‘interface’ instance ‘dev’ to address ‘addr’ in memory.
      ‘bytes’ gives the size to load in bytes.
      If ‘bytes’ is 0 or omitted, the file is read until the end.
      ‘pos’ gives the file byte position to start reading from.
      If ‘pos’ is 0 or omitted, the file is read from the start.
GoFlexHome> part uuid ide 0:1 uuid
GoFlexHome> setenv root PARTUUID=${uuid}
GoFlexHome> setenv bootargs console=${console} ${mtdparts} root=${root} rw rootwait ${optargs} ${ncargs}
GoFlexHome> saveenv
Saving Environment to NAND…
Erasing NAND…

Erasing at 0xc0000 — 100% complete.
Writing to NAND… OK
GoFlexHome> load ide 0:1 ${rdaddr} /boot/initramfs-linux.img
load - load binary file from a filesystem

Usage:
load <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
    - Load binary file ‘filename’ from partition ‘part’ on device
       type ‘interface’ instance ‘dev’ to address ‘addr’ in memory.
      ‘bytes’ gives the size to load in bytes.
      If ‘bytes’ is 0 or omitted, the file is read until the end.
      ‘pos’ gives the file byte position to start reading from.
      If ‘pos’ is 0 or omitted, the file is read from the start.
GoFlexHome> load ide 0:1 ${rdaddr} /boot/initramfs-linux-img
load - load binary file from a filesystem

Usage:
load <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
    - Load binary file ‘filename’ from partition ‘part’ on device
       type ‘interface’ instance ‘dev’ to address ‘addr’ in memory.
      ‘bytes’ gives the size to load in bytes.
      If ‘bytes’ is 0 or omitted, the file is read until the end.
      ‘pos’ gives the file byte position to start reading from.
      If ‘pos’ is 0 or omitted, the file is read from the start.
GoFlexHome> bootz ${loadaddr} ${rdaddr}:${filesize} ${fdtaddr}
Bad Linux ARM zImage magic!
GoFlexHome> boot

Reset IDE: Bus 0: OK Bus 1: not available 
  Device 0: Model: ST2000DL003-9VT166 Firm: CC98 Ser#: 5YD45PSQ
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 1907729.0 MB = 1863.0 GB (3907029168 x 512)

Partition Map for IDE device 0  —   Partition Type: DOS

Part   Start Sector   Num Sectors   UUID      Type
  1   2048         41943040     47c3842a-01   83
  2   41945088     3865084080   47c3842a-02   83

Partition Map for USB device 0  —   Partition Type: DOS

Part   Start Sector   Num Sectors   UUID      Type
  1   2048         30527488     00000000-01   0b
Attempting to boot from usb 0:1…
reading /boot/uEnv.txt
** Unable to read file /boot/uEnv.txt **
Checking if uenvcmd is set …
Running default loadzimage …
reading /boot/zImage
** Unable to read file /boot/zImage **
Running default loaduimage …
reading /boot/uImage
** Unable to read file /boot/uImage **


So I redownloaded the ArchLinux from here. Copied it to the HDD and bsdtar it hoping that was the problem, but still no go :shock:

Code: Select all
[root@alarm /]# cp mnt/sdb1/ArchLinuxARM-kirkwood-latest.tar.gz .
[root@alarm /]# ls
ArchLinuxARM-kirkwood-latest.tar.gz  dev   lib          opt   run   sys   var
bin                 etc   lost+found  proc  sbin  tmp
boot                 home  mnt          root  srv   usr
[root@alarm /]# bsdtar -xpf ArchLinuxARM-kirkwood-latest.tar.gz
[root@alarm /]# cd boot
[root@alarm boot]# ls -l
total 12596
-rw-r—r— 1 root root 8249092 Aug  9 17:58 initramfs-linux.img
-rw-r—r— 1 root root 4621184 Jun 13 03:57 uImage


moonman wrote:My suggestion to you is to install proper arhclinuxarm u-boot by booting from USB drive and running "pacman -S uboot-goflexhome"
This will ensure you have all variables in order to boot up ALArm. There is nothing wrong with bodhi's u-boot, but it may not be setup the same way. You gain nothing feature-wise with either.

You do not have *.dtb and zImage is because by default rootfs is supplied with uImage which does not need dtb file (old method of booting these devices). After you get these booting problems solved, you can upgrade to zImage+dtb by install linux-kirkwood-dt package.Our U-Boot environment is setup so it will boot up with either zImage + dtb or uImage.


summers wrote:Yes just load the uImage instead (and change the boot command to a "bootm"). You also won't need the dtb in that case.

The partuuid of the HDD, you can get when you boot up from USB, with the HDD installed. The command "blkid" - just note the PARTUUID of the root on the HDD, and type that number by hand. You could also use /dev/sdX name - but PARTUUID should ensure its the HDD that is selected as root.

As moonman says, once you do manage to boot, with upgrading to modern kernel, which uses the dtb. Do check if you need GoFlex Home or GoFlex Net - you mention both in the thread, and not clear to me which you have.
tomkuang
 
Posts: 7
Joined: Sat Aug 08, 2020 5:55 am

Re: Seagate GoFlex Failed after installing the ArchLinux

Postby moonman » Fri Aug 14, 2020 10:29 pm

1. Yes 2016 U-Boot is older, but there is nothing new in 2017,2018 etc worthy of inclusion. That's why these aren't really updated anymore.
2. You flashed the U-Boot image, but you didn't flash the u-boot environment. That's why I said flash from within ArchLinuxARM by installing the package uboot-goflexhome. If you can still boot form USB flash drive, then do install the package and flash U-Boot from within ArchLinuxARM.
Right now you ended up with ArchLinuxARM U-Boot, and bodhi's U-Boot environment. Essentially nothing has changed since the environment was the important bit.
3. You were trying to bootz a uImage. For uImage the command is "bootm". "bootz" is used with zImage
Pogoplug V4 | GoFlex Home | Raspberry Pi 4 4GB | CuBox-i4 Pro | ClearFog | BeagleBone Black | Odroid U2 | Odroid C1 | Odroid XU4
-----------------------------------------------------------------------------------------------------------------------
[armv5] Updated U-Boot | [armv5] NAND Rescue System
moonman
Developer
 
Posts: 3302
Joined: Sat Jan 15, 2011 3:36 am

Re: Seagate GoFlex Failed after installing the ArchLinux

Postby summers » Sat Aug 15, 2020 9:51 am

The init ram fs didn't load because ${rdaddr} is not set. You'll need to find an address in ram that isn't used by uImage. Now I don't know the memory layout of your machine, but usually install it somewhere after the uImage location (e.g. give the uImage space to be loaded into memory). then boot using "bootm" and pass the location of the uImage and the initramfs.

[Actually if you examine the arm arch uboot env file, you be able to read the rdaddr that is used there, or google is your friend - usually someone else has done this first ...]
Last edited by summers on Sat Aug 15, 2020 11:18 am, edited 1 time in total.
summers
 
Posts: 869
Joined: Sat Sep 06, 2014 12:56 pm

Re: Seagate GoFlex Failed after installing the ArchLinux

Postby summers » Sat Aug 15, 2020 10:02 am

1. Yes 2016 U-Boot is older, but there is nothing new in 2017,2018 etc worthy of inclusion. That's why these aren't really updated anymore.

Not sure I agree with this moonman. Modern uboot have distro option enabled, and this is what means we can use boot.scr. That would make kirkwood common with all the other arm distributions; and so make maintenance easier.

Now of course, the problem with this is two fold,

1) uboot patches for kirkwood comes from bodhi, they havn't been mainlined. So can't just go to mainlined uboot.
2) The arch arm maintainers IIRC no longer have a functioning NSA325 (believe flash developed a fault) so that can't be used. Not sure what other kirkwood devices are avaiable, and if any can be recoved from faulty uboot being written.

However would say I'm not sure there is any interest in doing the upgrade, but such an upgrade I think we should agree would be an improvement.
summers
 
Posts: 869
Joined: Sat Sep 06, 2014 12:56 pm

Re: Seagate GoFlex Failed after installing the ArchLinux

Postby moonman » Sat Aug 15, 2020 5:33 pm

boot scripts can be enabled on 2016 version as well, but I'm pretty sure it isn't enabled on either our or bodhi's U-Boot. I know I didn't enable it on ALARM U-Boot specifically, but I would have to check as it may have been enabled by default (unlikely).

Enabling this means the boot process/script has to be rewritten, and current one works well so I see no benefit in this. These devices are getting really old too.

1. AFAIK there are no patches from bodhi, besides the config. I know ALARM U-Boot does not use any bodhi's patches, if he added something himself to his U-Boot version. It's mostly mainline U-Boot + different config. NSA325 reboot bug was fixed with the help of our forum member.
2. True. That wasn't an issue for 2016.09 though as I got users to test what I had. I don't understand your point here as NSA325 is one of many kirkwood devices.

I see no benefit in boot.scr for kirkwoods, as current system works well for most, but few corner cases. You are free to submit a pull request though, to make it happen, and if it's up to the standards I will accept it :)
https://github.com/archlinuxarm/PKGBUIL ... t-kirkwood
Pogoplug V4 | GoFlex Home | Raspberry Pi 4 4GB | CuBox-i4 Pro | ClearFog | BeagleBone Black | Odroid U2 | Odroid C1 | Odroid XU4
-----------------------------------------------------------------------------------------------------------------------
[armv5] Updated U-Boot | [armv5] NAND Rescue System
moonman
Developer
 
Posts: 3302
Joined: Sat Jan 15, 2011 3:36 am

Re: Seagate GoFlex Failed after installing the ArchLinux

Postby tomkuang » Sun Aug 16, 2020 2:34 am

moonman wrote:1. Yes 2016 U-Boot is older, but there is nothing new in 2017,2018 etc worthy of inclusion. That's why these aren't really updated anymore.
2. You flashed the U-Boot image, but you didn't flash the u-boot environment. That's why I said flash from within ArchLinuxARM by installing the package uboot-goflexhome. If you can still boot form USB flash drive, then do install the package and flash U-Boot from within ArchLinuxARM.
Right now you ended up with ArchLinuxARM U-Boot, and bodhi's U-Boot environment. Essentially nothing has changed since the environment was the important bit.
3. You were trying to bootz a uImage. For uImage the command is "bootm". "bootz" is used with zImage


I understand what are you saying. Things getting piece by piece because they were found all over the place when I have no idea where to find them after first installation from the instructions on this very website went failed. I agreed with someone who posted somewhere here that the instruction should be rewritten using some more relative/updated information. Anyway, I managed to connect the seagate to a working network (don't have internet was part of the problem so I have to downloaded and copied files/configs into the drive instead of grab them directly from the seagate) so it can grab the files through internet. I re-run everything again and the problem solved! Now I have move on to the next level of challenge now: setup the samba, DNLA, transmission server, etc. on it.

Thanks very much summer and moonman! Learnt a lot things for the old man!
tomkuang
 
Posts: 7
Joined: Sat Aug 08, 2020 5:55 am

Re: Seagate GoFlex Failed after installing the ArchLinux

Postby moonman » Sun Aug 16, 2020 3:00 am

tomkuang wrote:I re-run everything again and the problem solved!


Glad you managed to solve it. Cheers
Pogoplug V4 | GoFlex Home | Raspberry Pi 4 4GB | CuBox-i4 Pro | ClearFog | BeagleBone Black | Odroid U2 | Odroid C1 | Odroid XU4
-----------------------------------------------------------------------------------------------------------------------
[armv5] Updated U-Boot | [armv5] NAND Rescue System
moonman
Developer
 
Posts: 3302
Joined: Sat Jan 15, 2011 3:36 am

PreviousNext

Return to ARMv5

Who is online

Users browsing this forum: No registered users and 4 guests