ARM Software FAQs¶
- Table of contents
- ARM Software FAQs
- Why does Linux only show 512MB of Available System Memory when my MitySOM has >512MB?
- How is the SD card partitioned and configured?
- How do I update u-boot on the SD card?
- How do I update the preloader on the SD card?
- How do I boot a zImage instead of a uImage for the kernel?
- Why is my USB drive not detected when using a USB OTG to Host adapter?
- Why do I get a "calibration failed" error during boot?
Why does Linux only show 512MB of Available System Memory when my MitySOM has >512MB?¶
For modules included in our development kits they are configured to boot from the MMC card. In our UBoot environment we define the "mmcboot" argument to allocate 512MB of memory for the ARM core(s). The other 512MB are made available for one of our FPGA examples, "bert_test", that transfers data to and from the remaining memory space.
Here is the UBoot environment variable as shipped in a development kit image:
mmcboot=setenv bootargs console=ttyS0,115200 root=${mmcroot} rw rootwait mem=512M;bootm ${loadaddr} - ${fdtaddr}
As long as you do not run the "bert_test" FPGA example you can increase this allocation up to 1024MB.
ARM Memory set to 768MB:
mmcboot=setenv bootargs console=ttyS0,115200 root=${mmcroot} rw rootwait mem=768M;bootm ${loadaddr} - ${fdtaddr}
How is the SD card partitioned and configured?¶
The SD card (post 80-000615 kits) have 3 partitions: 2 ext3 partions and 1 partition without a filesystem. Partiton one is a scratch pad partition. Partition two is the root filesystem, with the kernel, device tree, and fpga image in the /boot directory. Partition 3 is where the preloader and uboot are stored.
How do I update u-boot on the SD card?¶
To update uboot you need to dd the image over as the partition that contains this file does not utilize a filesystem. To do this first you need a build u-boot image file. Then in a terminal use dd to write the files to the proper partition shown of your Dev Kit SD card.
Note that you need to confirm that you are writing to your SD card and not another drive on your system. You can confirm this with either viewing the "df" command output or using the "Disk Utility" GUI and confirming your SD card (reader) device (I.E. /dev/sdd). You can view your drive partitions in Linux using the "sudo fdisk -l" command.
Replace the 'X' shown in the command below with your drive letter:
sudo dd if=u-boot.img of=/dev/sdX3 bs=64k seek=4
How do I update the preloader on the SD card?¶
To update the preloader you need to dd the image over as the partition that contains this file does not utilize a filesystem.
Note that you need to confirm that you are writing to your SD card and not another drive on your system. You can confirm this with either viewing the "df" command output or using the "Disk Utility" GUI and confirming your SD card (reader) device (I.E. /dev/sdd). You can view your drive partitions in Linux using the "sudo fdisk -l" command.
Replace the 'X' shown in the command below with your drive letter:
sudo dd if=preloader-mkpimage.bin of=/dev/sdX3 bs=64k seek=0
How do I boot a zImage instead of a uImage for the kernel?¶
To boot the zImage you first need to create one, this can be achieved by following our yocto guide and change the following in conf/local:
KERNEL_IMAGETYPE = "uImage"
to
KERNEL_IMAGETYPE = "zImage"
This will create a zImage and put it in /boot of your filesystem when you run bitbake core-image-basic.
Now you will need to change two uboot environment variables, which can be done by booting into uboot (press any key in the first 5 seconds of boot). Then change:
bootimage=/boot/uImage
to
bootimage=/boot/zImage
and
mmcboot=setenv bootargs console=ttyS0,115200 root=${mmcroot} rw rootwait mem=512M;bootm ${loadaddr} - ${fdtaddr}
to
mmcboot=setenv bootargs console=ttyS0,115200 root=${mmcroot} rw rootwait mem=512M;bootz ${loadaddr} - ${fdtaddr}
This can be done with the editenv command. Once done save the environment to the SD card using saveenv.
Why is my USB drive not detected when using a USB OTG to Host adapter?¶
Critical Link has found that in the current 3.12 version of the kernel that USB Host mode is no longer functional. It did work and was validated using the 3.8 kernel but after that kernel version the USB sub-system was refactored. Resolution of this issue is planned for early Q1 of 2015. If you would like an updated status please contact your Critical Link representative.
USB Peripheral mode however does work in the 3.12 kernel, it did not work in the 3.8 kernel.
Why do I get a "calibration failed" error during boot?¶
Error Message:
U-Boot SPL 2013.01.01 (Mar 02 2015 - 22:42:56) BOARD : Critical Link MitySOM-5CSx Module CLOCK: EOSC1 clock 25000 KHz CLOCK: EOSC2 clock 25000 KHz CLOCK: F2S_SDR_REF clock 0 KHz CLOCK: F2S_PER_REF clock 0 KHz CLOCK: MPU clock 800 MHz CLOCK: DDR clock 400 MHz CLOCK: UART clock 100000 KHz CLOCK: MMC clock 50000 KHz CLOCK: QSPI clock 400000 KHz RESET: COLD INFO : Watchdog enabled SDRAM: Initializing MMR registers SDRAM: Calibrating PHY SEQ.C: Preparing to start memory calibration SEQ.C: CALIBRATION FAILED ### ERROR ### Please RESET the board ###
At this time the 5CSX SD card images may not be used with 5CSE modules. If you end up using the 5CSX SD card with a 5CSE module the memory calibration will fail. Use or re-flash your SD card with the proper files (https://support.criticallink.com/redmine/projects/mityarm-5cs/wiki/Building_SD_Card_Image).
Go to top