Thread (9 messages) 9 messages, 3 authors, 2013-09-25

Re: [PATCH 2/2] MIPS: mm: Use scratch for PGD when !CONFIG_MIPS_PGD_C0_CONTEXT

From: Hauke Mehrtens <hauke@hauke-m.de>
Date: 2013-09-24 21:49:57

On 08/11/2013 01:40 PM, Jayachandran C wrote:
Allow usage of scratch register for current pgd even when
MIPS_PGD_C0_CONTEXT is not configured. MIPS_PGD_C0_CONTEXT is set
for 64r2 platforms to indicate availability of Xcontext for saving
cpuid, thus freeing Context to be used for saving PGD. This option
was also tied to using a scratch register for storing PGD.

This commit will allow usage of scratch register to store the current
pgd if one can be allocated for the platform, even when
MIPS_PGD_C0_CONTEXT is not set. The cpuid will be kept in the CP0
Context register in this case.

The code to store the current pgd for the TLB miss handler is now
generated in all cases. When scratch register is available, the PGD
is also stored in the scratch register.

Signed-off-by: Jayachandran C <redacted>
This patch breaks booting for me on bcm47xx. I found this commit by
bisecting and then reverted it and it made bcm47xx boot again. The boot
process stops after: [    0.000000] Inode-cache hash table entries: 4096
(order: 2, 16384 bytes)

The next message would be: [    0.000000] Writing ErrCtl register=00000000

This issue was seen on bcm4716.

This is the boot log:

CFE> boot -tftp -elf
192.168.1.195:/brcm47xx/openwrt-brcm47xx-vmlinux-initramfs.elf
Loader:elf Filesys:tftp Dev:eth0
File:192.168.1.195:/brcm47xx/openwrt-brcm47xx-vmlinux-initramfs.elf
Options:(null)
Loading: 0x80001000/4593328 0x804626b0/279760 Entry at 0x80264800
Closing network.
Starting program at 0x80264800
[    0.000000] Linux version 3.12.0-rc1+ (hauke@hauke-desktop) (gcc
version 4.6.4 (OpenWrt/Linaro GCC 4.6-2013.05 r37948) ) #151 Tue Sep 24
23:35:35 CEST 2013
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU revision is: 00019740 (MIPS 74Kc)
[    0.000000] bcm47xx: using bcma bus
[    0.000000] bcma: bus0: Found chip with id 0x4716, rev 0x01 and
package 0x0A
[    0.000000] bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id
0x800, rev 0x1F, class 0x0)
[    0.000000] bcma: bus0: Core 3 found: MIPS 74K (manuf 0x4A7, id
0x82C, rev 0x01, class 0x0)
[    0.000000] bcma: bus0: Found M25P64 serial flash (size: 8192KiB,
blocksize: 0x10000, blocks: 128)
[    0.000000] bcma: bus0: Early bus registered
[    0.000000] MIPS: machine is Netgear WNDR3400 V1
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 04000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x00000000-0x03ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00000000-0x03ffffff]
[    0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32
bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases,
linesize 32 bytes
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.
Total pages: 16256
[    0.000000] Kernel command line:  noinitrd console=ttyS0,115200
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help