* acrux (acrux_it@libero.it) wrote:
little hints i collected these days using this board... maybe they are usefull.
Great great greeeeat... This starts to smell well. Good job.
kernel: as you already know the best way is still to get sources from the Genesi overlay here: http://gitorious.org/efikamx/linux-kernel
The source package provided in crux-arm is from that location. I downloaded and packaged it (from master branch, the one recommended in efika's irc channel). I used default config got from it, mx51_efikamx_defconfig, to create the config-2.6.31.14.22-efikamx_20110510 provided in git. I made some changes to don't build ralink's firmware and let users get it and put it the right place (/lib/firmware).
To build it, you need to remember to build uImage too because isn't still automatically done but is, anyway, correctly done using zImage:
cd linux make menuconfig make make uImage make modules_install
We provide a cross build for all devices. These steps are good to make a native build (which is right too with this powerfull machine) and they are the same like in efikamx's git collection but providing the right vars.
here my working kernel config: http://cruxppc.org/~acrux/arm/kernel/linux-2.6.31.14.22-efikamx.config
Checking it and testing. If it builds I'll update the config provided in the kernel collection. It finally was built and I uploaded the files to the same location: http://crux-arm.nu/files/devices/efikamx All feddback is welcome.
EfikaMX does use an u-boot forks (specific for mx5) that looks for the bootfile "boot.scr" in the first readble partition on MMC (i.e. SD) and then on the SSD PATA. It's capable to read ext2/ext3 and vfat and to hanlde dos partiton table.
you can understand why reading here on line #13 http://pastebin.com/RUvrBuFm
bootcmd=for device in "mmc ide"; do if strcmp ${device} == mmc; then; mmcinit; setenv units "0 1"; else; setenv units "0"; fi; for interface in ${units}; do if strcmp ${device} == mmc; then mmcprobe ${interface}; else; ide reset; fi; for fs in "ext2 fat"; do setenv loadcmd "${fs}load ${device} 0:1"; if ${loadcmd} ${scriptaddr} boot.scr; then; if imi ${scriptaddr}; then; autoscr ${scriptaddr}; fi; fi; done; done; done;
Anyway the safer scenario is that the partition where the kernel image resides should be a primary one and formatted as ext2 with 128-byte inodes.
mkfs.ext2 -I128 /dev/mmcblk0p or mkfs.ext2 -I128 /dev/sda1
Now we can work on boot.scr In my scenario i don't use any initrd or others...
A good scenario to work could be the "standard" one used in other devices. We can make 2 partitions, vfat to store the kernel (uImage) and the second one where we'll provide the rootfs. I think that will work. Gentoo uses this way too for this device.
This is my working boot.script http://cruxppc.org/~acrux/arm/boot.script.efikamx It seems that you are using 3 partitions (mmcblk0p3).
and you can build it to be readble from u-boot with:
mkimage -A arm -O linux -a 0 -e 0 -T script -C none -n "EfikaMX Boot Script" -d myboot.script.efikamx boot.scr
ummmm this sounds interesting. I used this in wm8505's uboot too. Very good info in this thread for this device.
# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 0b95:772a ASIX Electronics Corp. Bus 002 Device 002: ID 1a40:0101 TERMINUS TECHNOLOGY INC. USB-2.0 4-Port HUB Bus 002 Device 003: ID 13d3:3273 IMC Networks 802.11 n/g/b Wireless LAN USB Mini-Card
# cat /proc/cpuinfo Processor : ARMv7 Processor rev 5 (v7l) BogoMIPS : 799.53 Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x2 CPU part : 0xc08 CPU revision : 5
Hardware : Genesi Efika MX (Smarttop) Revision : 51030 Serial : 0000000000000000 _______________________________________________
Learning bit by bit Victor Martinez | http://lokalix.dyndns.org