This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to change kernel start address on am437x-gp-evm Linux?

We will have a smaller RAM than AM437x-gp-evm, so we need to relocate kernel from its current location 0xC0000000 (see System.map) to another lower location. I tried to change the following in linux arch/arm/config/tisdk-cam437x-evm-defconfig but it didn’t seem to have any effect.

from

CONFIG_PAGE_OFFSET=0xC0000000

To

CONFIG_PAGE_OFFSET=0x90000000

I found a wiki page for Davinci for this topic,

http://processors.wiki.ti.com/index.php/HOWTO_Change_the_Linux_Kernel_Start_Address

however the instructions don’t seem to apply to am437x. Could you provide some pointers?

 

Thank you!

Jan

 

  • What Linux version are you using? Where did you see that kernel is loading at 0xC0000000?
  • Hi Biser,
    Linux version 4.1.13-rt11-g2046db6.

    Kernel image seems to be at the following location based on:
    /arch/arm/kernel/vmlinux.lds (generated from vmlinux.lds.S)
    . = 0xC0000000 + 0x00008000;
    .head.text : {
    _text = .;
    *(.head.text)
    }
    .text : { /* Real text segment */
    _stext = .; /* Text and read-only data */

    Also in System.map
    c0008000 T _text
    c0008000 T stext

    Both show that kernel image location starts from 0xC0000000 onwards.

    In arch/arm/config/tisdk-cam437x-evm-defconfig there is a setting:
    CONFIG_PAGE_OFFSET=0xC0000000
    Is this related?

    Thank you!
    Jan
  • Hello Jan,

    To reflect this change you should also modify the default PAGE_OFFSET value in arch/arm/Kconfig.

    Best regards,
    Kemal
  • Thank you Kemal for the info. I changed Kconfig to set PAGE_OFFSET default to 0x90000000. I confirmed the System.map changed as expected. I loaded the new zImage to my SD card and was able to boot kernel although with many errors, and finally failed to load Matrix app. I have the following questions:

    (1) Does u-boot need to know the kernel address change?

    (2) I experimented with this change to try to use less memory but without too much knowledge of the rest of the system, i.e. how much memory does 437x-GP-EVM require in general? Does relocating kernel from 0xC00000000 to 0x90000000 conflict with the app? What other changes are needed?

    (3) Can you take a look at the attach boot up log and let me know why the following error?

    U-Boot SPL 2015.07-gcb406a2-dirty (Mar 31 2016 - 14:40:12)
    SPL: Please implement spl_start_uboot() for your board
    SPL: Direct Linux boot not active!
    reading u-boot.img
    reading u-boot.img
    
    
    U-Boot 2015.07-gcb406a2-dirty (Mar 31 2016 - 14:40:12 -0700)
    
    I2C:   ready
    DRAM:  2 GiB
    PMIC:  TPS65218
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading uboot.env
    
    ** Unable to read "uboot.env" from mmc1:1 **
    Using default environment
    
    Net:   <ethaddr> not set. Validating first E-fuse MAC
    cpsw, usb_ether
    **SUAS: main_loop
    Hit any key to stop autoboot:  0
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    reading uEnv.txt
    717 bytes read in 4 ms (174.8 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc0 ...
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    3280568 bytes read in 177 ms (17.7 MiB/s)
    49863 bytes read in 32 ms (1.5 MiB/s)
    Booting from mmc0 ...
    Kernel image @ 0x82000000 [ 0x000000 - 0x320eb8 ]
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 8fff0000, end 8ffff2c6 ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Initializing cgroup subsys cpuset
    [    0.000000] Initializing cgroup subsys cpu
    [    0.000000] Initializing cgroup subsys cpuacct
    [    0.000000] Linux version 4.1.13-rt11-g2996c0e-dirty (user@user-VirtualBox) (gcc version 4.9.3 20150413 (prerelease) (Linaro GCC 4.9-2015.05) ) #2 PREEMPT RT Mon Apr 4 09:35:37 PDT 2016
    [    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] Machine model: TI AM437x GP EVM
    [    0.000000] cma: Reserved 24 MiB at 0xfe400000
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM437x ES1.1 (sgx neon )
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 520849
    [    0.000000] Kernel command line: console=ttyO0,115200n8 video=HDMI-A-1:800x600 root=PARTUUID=00000000-02 rw rootfstype=ext4 rootwait
    [    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.000000] Dentry cache hash table entries: 262144 (order: 8, 1048576 bytes)
    [    0.000000] Inode-cache hash table entries: 131072 (order: 7, 524288 bytes)
    [    0.000000] Memory: 2043084K/2097148K available (6151K kernel code, 271K rwdata, 2164K rodata, 272K init, 256K bss, 29488K reserved, 24576K cma-reserved, 507900K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
    [    0.000000]     lowmem  : 0x90000000 - 0xef800000   (1528 MB)
    [    0.000000]     pkmap   : 0x8fe00000 - 0x90000000   (   2 MB)
    [    0.000000]     modules : 0x8f000000 - 0x8fe00000   (  14 MB)
    [    0.000000]       .text : 0x90008000 - 0x90827064   (8317 kB)
    [    0.000000]       .init : 0x90828000 - 0x9086c000   ( 272 kB)
    [    0.000000]       .data : 0x9086c000 - 0x908afee0   ( 272 kB)
    [    0.000000]        .bss : 0x908b2000 - 0x908f2368   ( 257 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000]  Additional per-CPU info printed with stalls.
    [    0.000000]  RCU kthread priority: 1.
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] L2C: platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [    0.000000] L2C: DT/platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [    0.000000] L2C-310 enabling early BRESP for Cortex-A9
    [    0.000000] OMAP L2C310: ROM does not support power control setting
    [    0.000000] L2C-310 ID prefetch enabled, offset 1 lines
    [    0.000000] L2C-310 dynamic clock gating disabled, standby mode disabled
    [    0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
    [    0.000000] L2C-310: CACHE_ID 0x410000c9, AUX_CTRL 0x7e430000
    [    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [    0.000011] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [    0.000021] clocksource timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000026] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000163] Console: colour dummy device 80x30
    [    0.000300] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
    [    0.000302] This ensures that you still see kernel messages. Please
    [    0.000303] update your kernel commandline.
    [    0.059256] Calibrating delay loop... 1987.37 BogoMIPS (lpj=9936896)
    [    0.059261] pid_max: default: 32768 minimum: 301
    [    0.059349] Security Framework initialized
    [    0.059386] Mount-cache hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.059392] Mountpoint-cache hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.060080] Initializing cgroup subsys blkio
    [    0.060091] Initializing cgroup subsys memory
    [    0.060126] Initializing cgroup subsys devices
    [    0.060135] Initializing cgroup subsys freezer
    [    0.060145] Initializing cgroup subsys perf_event
    [    0.060208] CPU: Testing write buffer coherency: ok
    [    0.060543] Setting up static identity map for 0x80008200 - 0x80008270
    [    0.062538] devtmpfs: initialized
    [    0.073304] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    [    0.086472] omap_hwmod: tptc0 using broken dt data from edma
    [    0.086609] omap_hwmod: tptc1 using broken dt data from edma
    [    0.086718] omap_hwmod: tptc2 using broken dt data from edma
    [    0.145584] clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.147408] pinctrl core: initialized pinctrl subsystem
    [    0.148577] NET: Registered protocol family 16
    [    0.150228] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.155403] omap_gpio 44e07000.gpio: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/gpio0_pins, deferring probe
    [    0.156246] OMAP GPIO hardware version 0.1
    [    0.158315] omap_gpio 48322000.gpio: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/display_mux_pins, deferring probe
    [    0.161902] omap-gpmc 50000000.gpmc: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/nand_flash_x8_default, deferring probe
    [    0.165433] No ATAGs?
    [    0.165463] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    [    0.165474] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [    0.206220] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
    [    0.210034] vgaarb: loaded
    [    0.210477] SCSI subsystem initialized
    [    0.210983] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/i2c0_pins, deferring probe
    [    0.211028] omap_i2c 4802a000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/i2c1_pins_default, deferring probe
    [    0.211151] media: Linux media interface: v0.10
    [    0.211216] Linux video capture interface: v2.00
    [    0.211271] pps_core: LinuxPPS API ver. 1 registered
    [    0.211277] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.211303] PTP clock support registered
    [    0.212001] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.212262] Advanced Linux Sound Architecture Driver Initialized.
    [    0.212925] Switched to clocksource timer1
    [    0.221759] NET: Registered protocol family 2
    [    0.222506] TCP established hash table entries: 16384 (order: 4, 65536 bytes)
    [    0.222691] TCP bind hash table entries: 16384 (order: 6, 393216 bytes)
    [    0.223920] TCP: Hash tables configured (established 16384 bind 16384)
    [    0.224125] UDP hash table entries: 1024 (order: 4, 65536 bytes)
    [    0.224339] UDP-Lite hash table entries: 1024 (order: 4, 65536 bytes)
    [    0.224866] NET: Registered protocol family 1
    [    0.225360] RPC: Registered named UNIX socket transport module.
    [    0.225374] RPC: Registered udp transport module.
    [    0.225379] RPC: Registered tcp transport module.
    [    0.225385] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.227410] futex hash table entries: 256 (order: 1, 8192 bytes)
    [    0.227523] audit: initializing netlink subsys (disabled)
    [    0.227584] audit: type=2000 audit(0.210:1): initialized
    [    0.233513] VFS: Disk quotas dquot_6.6.0
    [    0.233689] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [    0.235561] NFS: Registering the id_resolver key type
    [    0.235617] Key type id_resolver registered
    [    0.235624] Key type id_legacy registered
    [    0.235692] jffs2: version 2.2. (NAND) (SUMMARY)  � 2001-2006 Red Hat, Inc.
    [    0.238072] NET: Registered protocol family 38
    [    0.238167] bounce: pool size: 64 pages
    [    0.238183] io scheduler noop registered
    [    0.238193] io scheduler deadline registered
    [    0.238383] io scheduler cfq registered (default)
    [    0.240601] pinctrl-single 44e10800.pinmux: 199 pins at pa f9e10800 size 796
    [    0.242796] backlight supply power not found, using dummy regulator
    [    0.244631] 4832a000.dss supply vdda_video not found, using dummy regulator
    [    0.244769] OMAP DSS rev 2.0
    [    0.245113] omapdss_dss 4832a000.dss: bound 4832a400.dispc (ops dispc_component_ops)
    [    0.247217] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
    [    0.248376] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
    [    0.250629] omap8250 44e09000.serial: No clock speed specified: using default: 48000000
    [    0.251022] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 25, base_baud = 3000000) is a 8250
    [    1.014618] console [ttyS0] enabled
    [    1.018555] omap8250 481a6000.serial: No clock speed specified: using default: 48000000
    [    1.026957] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 26, base_baud = 3000000) is a 8250
    [    1.036651] [drm] Initialized drm 1.1.0 20060810
    [    1.051776] brd: module loaded
    [    1.059644] loop: module loaded
    [    1.063867] mtdoops: mtd device (mtddev=name/number) must be supplied
    [    1.132949] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [    1.139086] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
    [    1.146196] libphy: 4a101000.mdio: probed
    [    1.150240] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver Micrel KSZ9031 Gigabit PHY
    [    1.160547] cpsw 4a100000.ethernet: Detected MACID = 34:b1:f7:31:25:2f
    [    1.168972] mousedev: PS/2 mouse device common for all mice
    [    1.174638] i2c /dev entries driver
    [    1.253624] omap-aes 53501000.aes: OMAP AES hw accel rev: 0.1
    [    1.256892] mmc0: MAN_BKOPS_EN bit is not set
    [    1.260540] mmc0: new high speed MMC card at address 0001
    [    1.269850] mmcblk0: mmc0:0001 MMC04G 3.60 GiB
    [    1.274597] mmcblk0boot0: mmc0:0001 MMC04G partition 1 16.0 MiB
    [    1.280857] mmcblk0boot1: mmc0:0001 MMC04G partition 2 16.0 MiB
    [    1.288042] omap-des 53701000.des: OMAP DES hw accel rev: 0.33
    [    1.294695]  mmcblk0: p1 p2
    [    1.303864] omap-sham 53100000.sham: hw accel on OMAP rev 0.0
    [    1.312144]  remoteproc0: wkup_m3 is available
    [    1.317555]  remoteproc0: Note: remoteproc is still under development and considered experimental.
    [    1.326569]  remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [    1.337136]  remoteproc0: Direct firmware load for am335x-pm-firmware.elf failed with error -2
    [    1.345457] Initializing XFRM netlink socket
    [    1.345486] NET: Registered protocol family 17
    [    1.345526] NET: Registered protocol family 15
    [    1.345628] Key type dns_resolver registered
    [    1.345817] omap_voltage_late_init: Voltage driver support not added
    [    1.346269] ThumbEE CPU extension supported.
    [    1.346286] Registering SWP/SWPB emulation handler
    [    1.355491] omapdrm omapdrm.0: DMM not available, disable DMM support
    [    1.356346] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [    1.356350] [drm] No driver support for vblank timestamp query.
    [    1.412356]  remoteproc0: Falling back to user helper
    [    1.449864] Console: switching to colour frame buffer device 100x30
    [    1.478218] omapdrm omapdrm.0: fb0: omapdrm frame buffer device
    [    1.484166] omapdrm omapdrm.0: registered panic notifier
    [    1.512966] [drm] Initialized omapdrm 1.0.0 20110917 on minor 0
    [    1.519554] GPIO line 119 (SelEMMCorNAND) hogged as output/low
    [    1.526364] GPIO line 136 (SelLCDorHDMI) hogged as output/high
    [    1.533092] omap-gpmc 50000000.gpmc: GPMC revision 6.0
    [    1.538265] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    [    1.545534] nand: No NAND device found
    [    1.549306] omap2-nand 8000000.nand: scan failed, may be bus-width mismatch
    [    1.588177] omap_i2c 44e0b000.i2c: bus 0 rev0.12 at 100 kHz
    [    1.595172] omap_i2c 4802a000.i2c: bus 1 rev0.12 at 100 kHz
    [    1.602125] omap_hsmmc 48060000.mmc: Got CD GPIO
    [    1.643635] hctosys: unable to open rtc device (rtc0)
    [    1.653637] vmmcwl_fixed: disabling
    [    1.662990] ALSA device list:
    [    1.665974]   No soundcards found.
    [    1.670192] Waiting for root device PARTUUID=00000000-02...
    [    1.732486] mmc2: host does not support reading read-only switch, assuming write-enable
    [    1.743785] mmc2: new high speed SDHC card at address e624
    [    1.749770] mmcblk1: mmc2:e624 SS04G 3.69 GiB
    [    1.755732]  mmcblk1: p1 p2
    [    1.796888] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
    [    1.805154] VFS: Mounted root (ext4 filesystem) on device 179:26.
    [    1.814679] devtmpfs: mounted
    [    1.818161] Freeing unused kernel memory: 272K (90828000 - 9086c000)
    INIT: version 2.88 booting
    Starting udev
    [    2.542576] udevd[145]: starting version 182
    depmod: ERROR: could not open directory /lib/modules/4.1.13-rt11-g2996c0e-dirty: No such file or directory
    depmod: WARNING: -e needs -E or -F
    depmod: ERROR: could not open directory /lib/modules/4.1.13-rt11-g2996c0e-dirty: No such file or directory
    depmod: FATAL: could not search modules: No such file or directory
    [    3.748025]  remoteproc0: powering up wkup_m3
    [    3.767515] EXT4-fs (mmcblk1p2): re-mounted. Opts: data=ordered
    [    3.780854]  remoteproc0: Booting fw image am335x-pm-firmware.elf, size 219807
    [    3.781675]  remoteproc0: remote processor wkup_m3 is now up
    [    3.781825] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x191
    bootlogd: cannot allocate pseudo tty: No such file or directory
    Starting random number generator daemonUnable to open file: /dev/tpm0
    can't open any entropy source
    Maybe RNG device modules are not loaded
    
    .
    [    5.731010] random: dd urandom read with 42 bits of entropy available
    
    udevadm settle - timeout of 3 seconds reached, the event queue contains:
      /sys/devices/platform/44000000.ocp/48060000.mmc/mmc_host/mmc2/mmc2:e624/block/mmcblk1/mmcblk1p1 (845)
      /sys/devices/platform/44000000.ocp/48060000.mmc/mmc_host/mmc2/mmc2:e624/block/mmcblk1/mmcblk1p2 (846)
      /sys/devices/platform/44000000.ocp/481d8000.mmc/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p1 (864)
      /sys/devices/platform/44000000.ocp/481d8000.mmc/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p2 (865)
    [    6.604064] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    ALSA: Restoring mixer settings...
    /usr/sbin/alsactl: load_state:1729: No soundcards found...
    hwclock: can't open '/dev/misc/rtc': No such file or directory
    Sat Jan  9 17:27:25 UTC 2016
    hwclock: can't open '/dev/misc/rtc': No such file or directory
    INIT: Entering runlevel: 5
    Configuring network interfaces... [    7.892494] net eth0: initializing cpsw version 1.15 (0)
    [    7.973226] net eth0: phy found : id is : 0x221622
    udhcpc (v1.23.1) started
    Sending discover...
    [   10.973838] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    Sending discover...
    Sending select for 149.63.35.58...
    Lease of 149.63.35.58 obtained, lease time 691200
    /etc/udhcpc.d/50default: Adding DNS 149.63.2.6
    /etc/udhcpc.d/50default: Adding DNS 149.63.2.5
    done.
    Starting system message bus: dbus.
    UIM SYSFS Node Not Found
    Initializing the graphics driver ...
    PVR:(Warning): PVRDRMSetFD: could not get plugin ioctl base: -19 [71, /pvr_bridge_u.c]
    PVR:(Error): OpenServices: drmOpen failed [123, /pvr_bridge_u.c]
    PVR:(Error): PVRSRVInitSrvConnect: PVRSRVConnect failed [2572, /bridged_pvr_glue.c]
    PVR:(Error): SrvInit: PVRSRVInitSrvConnect failed (4) [37, /srvinit.c]
    PVR:(Error): main: SrvInit failed (4) [47, /pvrsrvinit.c]
    Starting Dropbear SSH server: dropbear.
    Starting telnet daemon.
    Starting rpcbind daemon...rpcbind: cannot create socket for udp6
    rpcbind: cannot create socket for tcp6
    done.
    starting statd: done
    hwclock: can't open '/dev/misc/rtc': No such file or directory
    Starting syslogd/klogd: done
    Starting thttpd.
    Starting Lighttpd Web Server: lighttpd.
    2016-01-09 17:27:30: (/home/gtbldadm/processor-sdk-linux-rt-fido-build/build-CORTEX_1/arago-tmp-external-linaro-toolchain/work/cortexa9hf-vfp-neon-linux-gnueabi/lighttpd/1.4.35-r1/lighttpd-1.4.35/src/log.c.164) server started
    /
    Starting Matrix GUI application.
    Enabling thermal zones...
    /etc/rc5.d/S98thermal-zone-init: line 7: /sys/class/thermal/thermal_zone*/mode: No such file or directory
    [   15.011294] random: nonblocking pool is initialized
    ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the following GPLv3 packages:
            autoconf
            binutils
            cpp-symlinks
            cpp
            g++-symlinks
            g++
            gcc-symlinks
            gcc
            gdb
            gdbserver
            gstreamer1.0-libav
            libgmp10
            libmpc3
            libmpfr4
            make
    
    If you do not wish to distribute GPLv3 components please remove
    the above packages prior to distribution.  This can be done using
    the opkg remove command.  i.e.:
        opkg remove <package>
    Where <package> is the name printed in the list above
    
    NOTE: If the package is a dependency of another package you
          will be notified of the dependent packages.  You should
          use the --force-removal-of-dependent-packages option to
          also remove the dependent packages as well
    ***************************************************************
    ***************************************************************
    
     _____                    _____           _         _
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
                  |___|                    |___|
    
    Arago Project http://arago-project.org am437x-evm /dev/ttyO0
    
    Arago 2015.12 am437x-evm /dev/ttyO0
    
    am437x-evm login:
    

    [    2.550025] udevd[145]: starting version 182
    depmod: ERROR: could not open directory /lib/modules/4.1.13-rt11-g2996c0e-dirty: No such file or directory
    depmod: WARNING: -e needs -E or -F
    depmod: ERROR: could not open directory /lib/modules/4.1.13-rt11-g2996c0e-dirty: No such file or directory
    depmod: FATAL: could not search modules: No such file or directory

    Jan

  • I want to clarify that my goal is to reduce the overall RAM usage from 2G to 512M. My 1st change was to move the kernel down from 0xC0000000 to 0x90000000. I would need more pointers to reconfigure to use only 512M of RAM. Is that doable? When I did "cat proc/meminfo", it seemed to show plenty of unused memory.
    MemTotal: 2068632 kB
    MemFree: 1896736 kB
    MemAvailable: 1980188 kB

    Thanks for your help!
    Jan
  • Hi Jan,

    Janice Nygren said:

    (1) Does u-boot need to know the kernel address change?

    No, when the kernel loads, it takes the control of U-Boot.

    Janice Nygren said:

    (2) I experimented with this change to try to use less memory but without too much knowledge of the rest of the system, i.e. how much memory does 437x-GP-EVM require in general? Does relocating kernel from 0xC00000000 to 0x90000000 conflict with the app? What other changes are needed?

    The U-Boot passes the detected amount of memory to the kernel. In your case if the bdinfo shows the DRAM -> size = 0x20000000 (512MB), the kernel will be able to get the size and scale the virtual kernel memory layout automatically. Otherwise you have to setup the U-Boot source and make it detect the proper amount of memory or add the desired memory size (mem=512M) to the kernel command line.

    Janice Nygren said:

    (3) Can you take a look at the attach boot up log and let me know why the following error?boot_kernel@90000000.log

    To suppress these errors you should install the new kernel modules to your target.

    Janice Nygren said:

    I want to clarify that my goal is to reduce the overall RAM usage from 2G to 512M. My 1st change was to move the kernel down from 0xC0000000 to 0x90000000. I would need more pointers to reconfigure to use only 512M of RAM. Is that doable?

    To understand how the Linux manages the memory under 1GB, please check the following material.
    users.nccs.gov/.../lk_addressing.txt
    learnlinuxconcepts.blogspot.bg/.../linux-addressing.html

    Best regards,
    Kemal
  • Thank you so much for the reply!