52ade599e3440d188c20e57c3e34934784f9cb52 |
|
19-Nov-2013 |
Michal Simek <michal.simek@xilinx.com> |
microblaze: Fix compilation error for BS=0 This bug was introduced by: "microblaze: Do not used hardcoded value in exception handler" (sha1: 9f78d3b5ab97a22a7e836312c495804ee4bca4ab) System without barrel shifter are pretty rare that's why this bug has been fixed so late. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
|
edf6844ebf4d66546caf2a75e9d05e579990678c |
|
04-Nov-2013 |
Michael Opdenacker <michael.opdenacker@free-electrons.com> |
microblaze: Remove unused NO_MMU Kconfig parameter This removes the NO_MMU Kconfig parameter, which was no longer used anywhere in the source code and Makefiles. This also updates a comment refering to this parameter. Signed-off-by: Michael Opdenacker <michael.opdenacker@free-electrons.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
|
1f26076084678d0edecc07aad7671d8140f97b91 |
|
01-Aug-2012 |
Michal Simek <monstr@monstr.eu> |
microblaze: Remove additional andi which has been already done Remove one additional step. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
91836710c73497bdbd4eef966c560d178910400a |
|
31-Jul-2012 |
Michal Simek <monstr@monstr.eu> |
microblaze: Use predefined macro for ESR_DIZ Just use macro instead of hardcoded value. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
6e80cff5430efb9dc8c12cb066e12c62d0a2d9d2 |
|
01-Aug-2012 |
Michal Simek <monstr@monstr.eu> |
microblaze: Support 4k/16k/64k pages Add support for page size which is supported by MMU. Remove 8k and 32k page size because they are not supported by MMU. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
9f78d3b5ab97a22a7e836312c495804ee4bca4ab |
|
31-Jul-2012 |
Michal Simek <monstr@monstr.eu> |
microblaze: Do not used hardcoded value in exception handler Use predefined macros to support more page sizes. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
e02db0aa3e1976ae4e23a66077d252a2f3ba74c7 |
|
08-Feb-2010 |
Michal Simek <monstr@monstr.eu> |
microblaze: Handle TLB skip size dynamically 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: Michal Simek <monstr@monstr.eu>
|
1451d1d88b9aa32ac9ee54180239e9b34b6f9e86 |
|
04-Apr-2011 |
Michal Simek <monstr@monstr.eu> |
microblaze: Introduce TLB skip size TLB skip size direct how many TLBs is skipped. Currently TLB0 and TLB1 are used for Linux kernel mapping that's why their are skipped. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
c11389406f19e4bddc7b347e5259aebda02b23f1 |
|
20-May-2011 |
Michal Simek <monstr@monstr.eu> |
microblaze: Fix unaligned value saving to the stack for system with MMU Several registers weren't saved correctly to the stack. Unaligned expection for system with MMU stores value in ex_tmp_data_loc_X address which is load to registers r3. The next step is to move this value from r3 to a destination register which caused unaligned exception. For several registers this value was directly moved to the register. For example for r28: by "or r28, r0, r3" but register r28 was rewritten when kernel returns from exception handler by value saved on stack. This patch changed r3 saving to the correct address on the stack. For example for r28: by "swi r3, r1, 4 * 28" When kernel returns from the exception handler, correct value is restored. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
cd3415779bdb13e3daaf13965c89d286a0cf0480 |
|
01-Feb-2011 |
Michal Simek <monstr@monstr.eu> |
microblaze: Do not use "la" pseudo instruction - use addik instead "la" pseudo instruction is only translation to "addik". Use directly "addik" which is described in the MB reference guide. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
6e83557c38b40d6e9d1c82ad0ae59d8e5db9c50c |
|
31-Jan-2011 |
Michal Simek <monstr@monstr.eu> |
microblaze: Remove r0_ram pointer and PTO alignment r0_ram pool was used for saving/restoring register content if hw exception happen. This poll was replaced by pt_pool_space with PT_SIZE size. Based on this change SAVE_STATE_ARG_SPACE was removed which caused that PTO offset is zero that's why is also removed. r0_ram space was used as scratchpad by v850. In early Microblaze Linux developing phase was this part of code blindly copied. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
c06b3a068223cb885d85ac4f6c31e870ca2b5aac |
|
31-Jan-2011 |
Michal Simek <monstr@monstr.eu> |
microblaze: Do not use r0_ram space for hw exception debugging Remove hw exception counting space from r0_ram. Use special exception_debug_table poll for exception statistic. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
9c749e177ccc0b3ee9589425c7255079e7a726fc |
|
28-Jan-2011 |
Michal Simek <monstr@monstr.eu> |
microblaze: Fix unaligned issue on MMU system with BS=0 DIV=1 Unaligned code use shift for finding register operand. There is used BSRLI(r8,r8,2) macro which is expand for BS=0, DIV=1 by ori rD, r0, (1 << imm); \ idivu rD, rD, rA but if rD is equal rA then ori instruction rewrite value which should be devide. The patch remove this macro which use idivu instruction because idivu takes 32/34 cycles. The highest shifting is 20 which takes 20 cycles. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
e3288f310111f7d18c323d95ae998765dee8c825 |
|
29-Dec-2010 |
Michal Simek <monstr@monstr.eu> |
microblaze: Fix unaligned exception for little endian platform Half word unaligned accesses need to be fixed. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
ce3266c047389443d5f433d605c769e878cbe46e |
|
27-Apr-2010 |
Steven J. Magnani <steve@digidescorp.com> |
microblaze: Add stack unwinder Implement intelligent backtracing by searching for stack frame creation, and emitting only return addresses. Use print_hex_dump() to display the entire binary kernel stack. Limitation: MMU kernels are not currently able to trace beyond a system trap (interrupt, syscall, etc.). It is the intent of this patch to provide infrastructure that can be extended to add this capability later. Changes from V1: * Removed checks in find_frame_creation() that prevented location of the frame creation instruction in heavily optimized code * Various formatting/commenting/file location tweaks per review comments * Dropped Kconfig option to enable STACKTRACE as something logically separate Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
|
3765d6958dfff34a15588e23c5d1274e1f6ba200 |
|
22-Mar-2010 |
Michal Simek <monstr@monstr.eu> |
microblaze: Use instruction with delay slot Sync labels. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
bd1637d63e82aaf732ffbe907ba887fa12e82df4 |
|
19-Mar-2010 |
Michal Simek <monstr@monstr.eu> |
microblaze: Remove additional resr and rear loading RESR and REAR uses the same regs in whole file. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
b175bcfe31cba846d8bfa35a3a4820667f7af383 |
|
19-Mar-2010 |
Michal Simek <monstr@monstr.eu> |
microblaze: Change register usage for ESR and EAR This change synchronize register usage in code. ESR = R4 EAR = R3 Signed-off-by: Michal Simek <monstr@monstr.eu>
|
7a6bbdc9304b45cc759e03623cbe63d81aff7337 |
|
22-Mar-2010 |
Michal Simek <monstr@monstr.eu> |
microblaze: Prepare work for optimization in exception code Any sync branch must follow mts instructions not mfs. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
708e7153d6fc4d2e5fe15c6ccc5d2907fe8a9c8d |
|
18-Mar-2010 |
Michal Simek <monstr@monstr.eu> |
microblaze: Add DEBUG option Disable debug option in asm code. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
131e4e97bfee809dc64febe8accef2f042a92722 |
|
28-Sep-2009 |
Michal Simek <monstr@monstr.eu> |
microblaze: Clear sticky FSR register after saving it to func parametr Previous patch d63678d607d0e37ec7abe5ceb545d7e8aab956a4 clear it for noMMU kernel. This one do it for MMU. Correct noMMU version Signed-off-by: Michal Simek <monstr@monstr.eu>
|
71b23d547b5a06f49acacaf742ebf1a85673f8d1 |
|
14-Sep-2009 |
John Williams <john.williams@petalogix.com> |
microblaze: Clear sticky FSR register after generating exception signals FSR is sticky, so after the userspace exception/signal generation, clear it ready for next time. Signed-off-by: John Williams <john.williams@petalogix.com>
|
ac854ff1fc779101ff1989c3a20c1f238a2b5f3a |
|
17-Sep-2009 |
Michal Simek <monstr@monstr.eu> |
microblaze: Save and restore msr in hw exception I thought that this part of code could be removed because just save and restore MSR but any code can't change it. But seems to that any part of code works with this information. This patch solved problem with allocation. Signed-off-by: Michal Simek <monstr@monstr.eu>
|
3863dbceac7e69642b95f43de1c12c6236fdbe5b |
|
21-Jul-2009 |
Michal Simek <monstr@monstr.eu> |
microblaze: Support unaligned address for put/get_user macros This patch add support for cases where load/store instruction in put/get_user macro gets unaligned pointer to data and this address is not valid. I prevent all cases which can failed. I had to disable first stage of unaligned handler which is used only for noMMU kernel and the whole work is done when interrupt is enabled. You have enable HW support for detect unaligned access in Microblaze. This patch fixed three LTP tests: getpeername01, getsockname01, socketpair01 Signed-off-by: Michal Simek <monstr@monstr.eu>
|
7db29dde731db02143418cfa008b7b77ccb2fa57 |
|
26-May-2009 |
Michal Simek <monstr@monstr.eu> |
microblaze_mmu_v2: Update exception handling - MMU exception Signed-off-by: Michal Simek <monstr@monstr.eu>
|
c4df4bc155bbe18fb91800bb9d29499a4fb211ad |
|
27-Mar-2009 |
Michal Simek <monstr@monstr.eu> |
microblaze_v8: exception handling Reviewed-by: Ingo Molnar <mingo@elte.hu> Acked-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com> Acked-by: John Linn <john.linn@xilinx.com> Acked-by: John Williams <john.williams@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
|