Configuring DRAM size when compiling an ARM (linux-sunxi) kernel for an allwinner a10 tablet

0

I've got a goclever a103 tablet (http://goclever.com/goclever_tab_a103) and I want to install linux on it to boot it from an SD card.

First thing I found online were SD card images for a very similar tablet with 1GB RAM instead of 512MB: pengpod a1000 (http://pengpod.net/dl/images/)

These images all work fine (even the touchscreen which usually doesn't work by default on most available precompiled SD card images which rely on the HDMI port to provide a display), but there is a problem with the memory allocation that keeps bringing segmentation faults: The kernel was configured to use 1GB of physical memory instead of 512MB.

Using sunxi-tools, I edited script.bin from boot partition and set the available memory option for 512MB, but that didn't fix the problem: top or free still show 1GB of physical memory when there is only 512MB, and the segfaults are still there. I even tried copying the whole boot partition from the android boot partition located on the tablet's internal flash memory (nanda), with the same results.

I figured out I would have to recompile the kernel with the proper options regarding the available physical memory, so I cloned the linux-sunxi repository from pengpod (https://github.com/npeacock/linux-sunxi) and now I want to tweak and compile my own kernel image, but since I don't know what's exactly wrong with the precompiled images I've tried so far, I don't know how to fix the physical memory settings problem.

I tried to search the documentation but it's all a little over my head, and I found no step by step tutorials which is what I need right now. Any suggestions?

TL;DR: I want to compile a linux-sunxi kernel but first I have to edit the options for a device with 512MB of RAM instead of 1GB, but I don't know where this settings are. Help, please.

NotGaeL

Posted 2013-07-19T15:29:52.687

Reputation: 375

Answers

2

I had a similar issue with a Guruplug - before I fixed u-boot it would think it had more than 512MB of RAM and crash randomly.

Is there some type of bootloader or something where you can specify command line options for the kernel? Try adding mem=512m to the kernel command line options - this will tell the kernel to not use any memory higher than 512MB.

LawrenceC

Posted 2013-07-19T15:29:52.687

Reputation: 63 487

It worked! I did dd bs=1 skip=72 if=/mnt/boot/boot.scr of=/mnt/boot/boot.script and edited boot.script line adding mem=512m setenv bootargs console=ttyS0,115200 console=tty0 root=/dev/mmcblk0p2 rootwait panic=rw mem=512m and then used mkimage from uboot-tools mkimage -A arm -T script -C none -n "My Boot.scr" -d /mnt/boot/boot.script /mnt/boot/boot.scr. Thanks for putting me into the right track :) – NotGaeL – 2013-07-19T16:38:08.327