- 07 11月, 2013 1 次提交
-
-
由 Michal Simek 提交于
The kernel needs to setup the first two tlbs with pad which is used for early page allocation which is used by mapin_ram() to allocate tables for lowmem memory before memory initialisation is done. Calculate pad directly from lowmem size. Signed-off-by: NMichal Simek <michal.simek@xilinx.com>
-
- 09 5月, 2013 1 次提交
-
-
由 Michal Simek 提交于
r6 stores pointer to ramdisk and shouldn't be used before it is passed to machine_early_init. Signed-off-by: NMichal Simek <michal.simek@xilinx.com>
-
- 04 10月, 2012 1 次提交
-
-
由 Michal Simek 提交于
When u-boot passes control over to Linux it places the Linux command line between to the end of __init_end. When space between __init_end and __bss_start is not COMMAND_LINE_SIZE then the part of cmdline can be lost. In extreme case if __init_end == __bss_start u-boot can't pass any cmdline to Linux kernel. This patch fix this issue by copying cmd line directly to cmd_line char array which is placed in data section. Reported-by: NDavid Mc Andrew <david.mcandrew@xilinx.com> Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
- 23 3月, 2012 4 次提交
-
-
由 Michal Simek 提交于
This patch fix the problem with rootfs on JFFS2 with early printk console turned on. The origin version used TLB63 for temporary early printk mapping. The code expect that kernel is not able to use all 64 TLB entries till early printk console is remapped by ioremap. After that temporary mapping on TLB63 is silently lost. This expectation give the opportunity to have early console pretty early. Microblaze systems with JFFS2 rootfs with early printk console turned on used more than 64 TLB entries before kernel can remap early console. Based on that kernel does access to bad area because early printk mapping is rewritten. This patch introduces tlb_skip variable which dynamically stores number of skipped TLB entries from the TLB0. skip_tlb=2 means that TLB0 and TLB1 should be skipped. MICROBLAZE_TLB_SKIP defines how many TLB is skipped at the kernel start. They can be used for user purpose. TLB 63 is used for temporary LMB mapping (MICROBLAZE_LMB_TLB_ID). Also clean TLBLO when kernel starts. For specific kernel sizes kernel can use just one TLB. Detect this case and use the second TLB for general purpose. Change _tlbia function to flush TLB entries from tlb_skip to TLB_SIZE. Export tlb_skip size through debugfs. Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
由 Michal Simek 提交于
Systems with small amount of memory need to be handled differently. Linux can't allocate the whole 32MB with two TLBs because then there is no MMU protection. Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
由 Michal Simek 提交于
Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
由 Michal Simek 提交于
The main reason is bug because of dynamic TLB allocation. U-BOOT didn't disable dcache and then writing to physical address from ASM wan't visible for reading through MMU. Disabling caches and clearing all flags from previous code is good to do so. Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
- 09 3月, 2011 2 次提交
-
-
由 Michal Simek 提交于
"la" pseudo instruction is only translation to "addik". Use directly "addik" which is described in the MB reference guide. Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
由 Michal Simek 提交于
Save 0x1 word to rodata section and remove online value loading if DTB is passed from bootloader. It saves two asm instructions in bootup. Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
- 08 2月, 2011 1 次提交
-
-
由 Michal Simek 提交于
Fix msr instructions detection. The current code just use msrclr for loading msr content and compare it with proper MSR content. If msrclr is not implemented r8 contains pc address. Previous code wanted to use MSR carry bit but if msrclr wasn't implemented carry wasn't cleared. Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
- 28 1月, 2011 1 次提交
-
-
由 Michal Simek 提交于
Little endian system needs to check OF_DT_HEADER but it is swapped because it is in big-endian. Microblaze LE provides lwr instruction which loads magic number in BIG endian format which can be compared. There is used the fact that if you write 0x1 as word and load it as byte then you get for big-endian zero and 1 for little-endian. Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
- 04 8月, 2010 1 次提交
-
-
由 Steven J. Magnani 提交于
Allow developer to configure memory page size at compile time. Larger pages can improve performance on some workloads. Based on PowerPC code. Signed-off-by: NSteven J. Magnani <steve@digidescorp.com> Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
- 06 5月, 2010 1 次提交
-
-
由 Steven J. Magnani 提交于
_start is located in .text, which causes mismatch warnings with machine_early_init() and start_kernel() in .init.text. Signed-off-by: NSteven J. Magnani <steve@digidescorp.com> Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
- 01 4月, 2010 3 次提交
-
-
由 Michal Simek 提交于
I forget to change register name in comments. Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
由 Michal Simek 提交于
TLB size was hardcoded in asm code. This patch brings ability to change TLB size only in one place. (mmu.h). Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
由 Michal Simek 提交于
When the system has no lmb bram, main memory should be start from zero because of microblaze vectors. DTS fragment could look like: DDR2_SDRAM: memory@0 { device_type = "memory"; reg = < 0x0 0x10000000 >; } ; Then you have to setup CONFIG_KERNEL_BASE_ADDR=0 which caused that kernel physical start address will be zero. On reset vector place will be jump to 0x100 and on 0x100 starts kernel text. You have to solve how to load the kernel before cpu starts. Tested with XMD. Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
- 11 3月, 2010 1 次提交
-
-
由 Michal Simek 提交于
For copy was used r7 register when CONFIG_CMDLINE_BOOL option is enabled. But r7 stores pointer to fdt that's why machine_early_init not detect compiled-in DTB. I also moved kernel PID setup to have TLB init in one block Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
- 16 10月, 2009 1 次提交
-
-
由 Grant Likely 提交于
Add a common header file for working with the flattened device tree data structure and merge the shared data tags used by Microblaze and PowerPC Signed-off-by: NGrant Likely <grant.likely@secretlab.ca> Acked-by: NDavid S. Miller <davem@davemloft.net> Acked-by: NWolfram Sang <w.sang@pengutronix.de> Acked-by: NMichal Simek <monstr@monstr.eu> Acked-by: NStephen Neuendorffer <stephen.neuendorffer@xilinx.com> Acked-by: NStephen Rothwell <sfr@canb.auug.org.au>
-
- 21 9月, 2009 2 次提交
-
-
由 Michal Simek 提交于
It is more safe to use clear instead of msrset. We save some instructions too. Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
由 Michal Simek 提交于
It was necessary to use fourth parameter(r8) in early_printk to show messages on console. Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
- 27 7月, 2009 3 次提交
-
-
由 Michal Simek 提交于
It is necessary to zeroed r7 when r7 points to bad dtb - this caused that we have correct messages about compiled-in dtb or passing via r7 Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
由 Michal Simek 提交于
I can't clear r7 because if I do it I lose information where DTB come from. Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
由 John Williams 提交于
If r7 is zero at kernel boot, or does not point to a valid DTB, then we fall back to a DTB (assumed to be) linked statically in the kernel, instead of blindly copying bogus cruft into the kernel DTB memory region Signed-off-by: NJohn Williams <john.williams@petalogix.com> Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
- 26 5月, 2009 1 次提交
-
-
由 Michal Simek 提交于
Signed-off-by: NMichal Simek <monstr@monstr.eu>
-
- 27 3月, 2009 1 次提交
-
-
由 Michal Simek 提交于
Reviewed-by: NIngo Molnar <mingo@elte.hu> Acked-by: NStephen Neuendorffer <stephen.neuendorffer@xilinx.com> Acked-by: NJohn Linn <john.linn@xilinx.com> Acked-by: NJohn Williams <john.williams@petalogix.com> Signed-off-by: NMichal Simek <monstr@monstr.eu>
-