[U-Boot] [PATCH] malta: define CONFIG_MEMSIZE_IN_BYTES

Gabor Juhos juhosg at openwrt.org
Thu Oct 24 14:32:00 CEST 2013


The memsize environment variable must contain the
memory size in bytes on the Malta board. Otherwise
Linux will use wrong memory size which causes a kernel
panic.

Define CONFIG_MEMSIZE_IN_BYTES in malta.h to avoid
that.

Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
Cc: Daniel Schwierzeck <daniel.schwierzeck at googlemail.com>
Cc: Paul Burton <paul.burton at imgtec.com>
---
Note:

The patch depends on Paul's 'MIPS Malta board support' series.
If we want to fix the problem before his patches will be merged,
I will send a different patch.

-Gabor

For the record, the kernel panic looks like this:

  qemu-malta # setenv ipaddr 10.0.2.1
  qemu-malta # setenv serverip 10.0.2.2
  qemu-malta # setenv ethadd 00:11:22:33:44:55
  qemu-malta # tftp 0xa1000000 openwrt-malta-be-uImage-gzip
  Using pcnet#0 device
  TFTP from server 10.0.2.2; our IP address is 10.0.2.1
  Filename 'openwrt-malta-be-uImage-gzip'.
  Load address: 0xa1000000
  Loading:
           #################################################################
           #################################################################
           #################################################################
           #################################################################
           #################################################################
           #################################################################
           #################################################################
           #######################################################
           45.2 MiB/s
  done
  Bytes transferred = 2940191 (2cdd1f hex)
  qemu-malta # bootm
  ## Current stack ends at 0x8ff83a38
  ## Booting kernel from Legacy Image at a1000000 ...
     Image Name:   MIPS OpenWrt Linux-3.8.13
     Image Type:   MIPS Linux Kernel Image (gzip compressed)
     Data Size:    2940127 Bytes = 2.8 MiB
     Load Address: 80100000
     Entry Point:  80104a90
     Verifying Checksum ... OK
     Uncompressing Kernel Image ... OK
  ## Giving linux memsize in MB, 256
  ## Transferring control to Linux (at address 80104a90) ...

  Starting kernel ...

  [    0.000000] Linux version 3.8.13 (juhosg at mag2) (gcc version 4.6.4 20121210 (prerelease) (Linaro GCC 4.6-2012.12) ) #1 SMP Wed May 22 14:28:37 CEST 2013
  [    0.000000] Config serial console: console=ttyS0,38400n8r
  [    0.000000] bootconsole [early0] enabled
  [    0.000000] CPU revision is: 00019300 (MIPS 24Kc)
  [    0.000000] FPU revision is: 00739300
  [    0.000000] Determined physical RAM map:
  [    0.000000]  memory: 00001000 @ 00000000 (reserved)
  [    0.000000]  memory: 000ef000 @ 00001000 (ROM data)
  [    0.000000]  memory: 00676000 @ 000f0000 (reserved)
  [    0.000000]  memory: ff899100 @ 00766000 (usable)
  [    0.000000] Wasting 60608 bytes for tracking 1894 unused pages
  [    0.000000] Initrd not found or empty - disabling initrd
  [    0.000000] Zone ranges:
  [    0.000000]   DMA      [mem 0x00000000-0x00ffffff]
  [    0.000000]   Normal   [mem 0x01000000-0x1fffffff]
  [    0.000000] Movable zone start for each node
  [    0.000000] Early memory node ranges
  [    0.000000]   node   0: [mem 0x00000000-0x1fffffff]
  [    0.000000] Primary instruction cache 2kB, VIPT, 2-way, linesize 16 bytes.
  [    0.000000] Primary data cache 2kB, 2-way, VIPT, no aliases, linesize 16 bytes
  [    0.000000] PERCPU: Embedded 7 pages/cpu @81404000 s6464 r8192 d14016 u32768
  [    0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048
  [    0.000000] Kernel command line:  console=ttyS0,38400n8r
  [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
  [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
  [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
  [    0.000000] __ex_table already sorted, skipping sort
  [    0.000000] Writing ErrCtl register=00000000
  [    0.000000] Readback ErrCtl register=00000000
  [    0.000000] Memory: 512156k/516712k available (2519k kernel code, 4556k reserved, 622k data, 3320k init, 0k highmem)
  [    0.000000] CPU 0 Unable to handle kernel paging request at virtual address 00000004, epc == 8019c018, ra == 8019bec0
  [    0.000000] Oops[#1]:
  [    0.000000] Cpu 0
  [    0.000000] $ 0   : 00000000 00000030 00000000 00000000
  [    0.000000] $ 4   : 80407174 00100100 00000000 803ffe54
  [    0.000000] $ 8   : 00000001 81404a54 803ffe54 00000000
  [    0.000000] $12   : 80401a2c 00000000 00000019 00000000
  [    0.000000] $16   : 80407100 9f801000 80407164 8043e340
  [    0.000000] $20   : ffffffff ffffffff 00008000 8043e350
  [    0.000000] $24   : 00000003 80401be4
  [    0.000000] $28   : 803f0000 803f1e10 80760000 8019bec0
  [    0.000000] Hi    : 00000050
  [    0.000000] Lo    : 005214c3
  [    0.000000] epc   : 8019c018 cache_alloc_refill+0x1e4/0x698
  [    0.000000]     Not tainted
  [    0.000000] ra    : 8019bec0 cache_alloc_refill+0x8c/0x698
  [    0.000000] Status: 10000002    KERNEL EXL
  [    0.000000] Cause : 4080840c
  [    0.000000] BadVA : 00000004
  [    0.000000] PrId  : 00019300 (MIPS 24Kc)
  [    0.000000] Modules linked in:
  [    0.000000] Process swapper (pid: 0, threadinfo=803f0000, task=80402458, tls=00000000)
  [    0.000000] Stack : 8075b03e 00000000 00000001 00000000 00000000 8043e364 00000080 00000006
          8043e3ec 00000000 80407100 00008000 80400000 8043e340 80440000 80440000
          a12cdd1f 8019c6b8 000011cc 80760000 80760000 80760000 80407100 8043e3ec
          803ad668 00000020 00002000 8041f098 00000000 00000000 803a6170 803f1ea4
          803f1ea4 8043e3ec 80760000 80440000 8040704c 80420e0c 0007e268 000009d7
          ...
  [    0.000000] Call Trace:
  [    0.000000] [<8019c018>] cache_alloc_refill+0x1e4/0x698
  [    0.000000] [<8019c6b8>] kmem_cache_alloc+0x98/0x108
  [    0.000000] [<8041f098>] create_kmalloc_cache+0x34/0xa8
  [    0.000000] [<80420e0c>] kmem_cache_init+0x124/0x2c4
  [    0.000000] [<8041274c>] start_kernel+0x1c4/0x3b8
  [    0.000000]
  [    0.000000]
  Code: 8e230000  3c050010  34a50100 <ac620004> ac430000  8e230014 3c020020  24420200  ae220004
  [    0.000000] ---[ end trace 139ce121c98e96c9 ]---
  [    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
  qemu: terminating on signal 15 from pid 4169
---
 include/configs/malta.h |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/configs/malta.h b/include/configs/malta.h
index 19acf3a..a4370ae 100644
--- a/include/configs/malta.h
+++ b/include/configs/malta.h
@@ -15,6 +15,8 @@
  */
 #define CONFIG_MALTA
 
+#define CONFIG_MEMSIZE_IN_BYTES
+
 #define CONFIG_PCI
 #define CONFIG_PCI_GT64120
 #define CONFIG_PCI_MSC01
-- 
1.7.10


More information about the U-Boot mailing list